Schreiben Sie Ihr Lied in 10 Minuten (textgenrnn Python3-Modul)


Heute werden wir versuchen, unser eigenes neuronales Netzwerk zu trainieren, um Texte für Songs zu schreiben. Das Trainingsbeispiel sind die Texte der Hands Up-Gruppe. Nichts hindert Sie daran, Daten gegen die Texte Ihrer Lieblingsgruppen auszutauschen. Um Daten von Websites abzurufen, verwenden wir Python3 (Modul BeautifulSoup).


Die Aufgabe besteht darin, Daten (Texte) von Websites herunterzuladen und dann das darauf basierende neuronale Netzwerk zu trainieren.


Tatsächlich können Sie die Arbeit in zwei Phasen unterteilen:
Stufe 1: Entladen und speichern Sie die Texte in einem praktischen Format.
Stufe 2: Trainieren Sie Ihr eigenes neuronales Netzwerk.


Zu Trollen und Amateuren, um nach der geheimen Bedeutung zu suchen, werde ich sofort sagen:


  • Ich bin kein Mitglied von Hands Up.
  • Dieser Artikel ist keine Werbung für eine Gruppe.
  • Ich habe keinen Cent für sie bekommen.
  • Ich werde die Kommentare zu Tippfehlern, die den Autor nur nerven, nicht gutheißen. Natürlich versuche ich alles fehlerfrei zu machen, leider bin ich kein Muttersprachler der russischen Sprache und manchmal bemerke ich etwas nicht, bitte sei freundlich und schreibe persönlich darüber. Anderen schlage ich mit meinem unlustigen Geplänkel einen Spaziergang im Wald vor.

Stufe 1


Virtuelle Umgebung für das Projekt (virtualenv).
REPO


#start virtualenv -p python3 my_song # 

 #run source my_song/bin/activate 

 #install modules pip install -r requirements.txt 

Entladen und Speichern der Texte von der Website im Format * .csv.


 #-*- coding: utf-8 -*- import urllib.request from bs4 import BeautifulSoup import pandas as pd URL = 'http://txtmusic.ru/index.php?s=%D0%F3%EA%E8+%C2%E2%E5%F0%F5%21' #  page = urllib.request.urlopen(URL) soup = BeautifulSoup(page) li = soup.body.findAll('li') #   <li>    URL URLS = ['http://txtmusic.ru/'+laget('href') for l in li] df = pd.DataFrame(columns=['name', 'text']) list_of_names = [] list_of_text = [] ind=0 BIG = "" for URL in URLS: page = urllib.request.urlopen(URL) soup = BeautifulSoup(page) article = soup.body.findAll('article') #    ( rticle) text = str(article[0]).split('\n')[8] text = text.split('<br/>') text = [t for t in text if t!=''] text = " ".join(text) name= str(article[0].h1).split(" - ")[1].rstrip("</h1>") list_of_text.append(text) list_of_names.append(name) df.name = list_of_names df.text = list_of_text df.to_csv('songs.csv') #    'songs.csv' 

Der nächste Schritt besteht darin, den Text in die lateinische Version zu übersetzen (das Modell funktioniert besser für das lateinische Alphabet als für das kyrillische Alphabet).


 import pandas as pd df = pd.read_csv('songs.csv') df = df[['name','text']] df.text = df.text.apply(lambda x: cyrtranslit.to_latin(x, 'ru')) df.text.to_csv('trans.csv') '''  cyrtranslit.to_latin('      ', 'ru') 'Moyo sudno na vozdushnoj podushke polno ugrej' cyrtranslit.to_cyrillic('Moyo sudno na vozdushnoj podushke polno ugrej') '      ' ''' 

Stufe 2


 from textgenrnn import textgenrnn textgen = textgenrnn() textgen.train_from_file('trans.csv', num_epochs=1) # created file textgenrnn_weights.hdf5 

Und alle! Es war einfach und bequem zu verwenden (textgenrnn) [ https://github.com/minimaxir/textgenrnn ], die Texte sind immer noch nicht realistisch, aber Sie müssen die Modellparameter selbst ändern.



Der Vorteil von textgenrnn ist, dass Sie sich nicht mit Datenverarbeitung befassen müssen. Laden Sie einfach einen Textdatensatz und setzen Sie sich mit einer Tasse Kaffee hin, während Sie Ihr Modelltraining beobachten.


 #      textgen_2 = textgenrnn('textgenrnn_weights.hdf5') textgen_2.generate(3, temperature=1.0) textgen_2.generate_to_file('lyrics.txt') 

Was weiter?


Nachdem Sie nun gelernt haben, wie Sie Textgenrnn erstellen, um Texte zu erstellen, können Sie mit diesem Wissen viel tun:


  • Erstellen Sie einen Wikipedia-Artikel.
  • Beiträge in sozialen Netzwerken.
  • Nachrichten.

Liste der verwendeten Quellen:


https://github.com/minimaxir/textgenrnn
https://towardsdatascience.com/ai-generates-taylor-swifts-song-lyrics-6fd92a03ef7e

Source: https://habr.com/ru/post/de464973/


All Articles