
今天,我们将尝试训练我们自己的神经网络来为歌曲写歌词。 培训样本将是动手组的文本。 没有什么可以阻止您为自己喜欢的组的文本交换数据。 为了从网站提取数据,我们使用Python3(模块BeautifulSoup)。
任务是从网站下载数据(文本),然后基于它们训练神经网络。
实际上,您可以将工作分为两个阶段:
阶段1:以方便的格式卸载并保存歌词。
阶段2:训练自己的神经网络。
为了让巨魔和业余爱好者搜索秘密含义,我将立即说:
- 我不是“举起手来”的成员。
- 本文不是任何团体的广告。
- 我没得到她一分钱。
- 我不会赞成那些仅引起作者困扰的关于错别字的评论。 当然,我会尽一切努力做到无误,但不幸的是,我不是俄语母语人士,有时我没有注意到任何事情,请以亲切的态度写出来。 对于其他人,我带着不愉快的玩笑,提议在树林里散步。
第一阶段
项目的虚拟环境(virtualenv)。
回购
#start virtualenv -p python3 my_song #
#run source my_song/bin/activate
#install modules pip install -r requirements.txt
从网站上以* .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'
下一步是将文本音译为拉丁文版本(该模型对拉丁字母而言比对西里尔字母更有效)。
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') ' ' '''
第二阶段
from textgenrnn import textgenrnn textgen = textgenrnn() textgen.train_from_file('trans.csv', num_epochs=1) # created file textgenrnn_weights.hdf5
仅此而已! 使用(textgenrnn)[ https://github.com/minimaxir/textgenrnn ]既方便又方便,文本仍然不现实,但是您必须自己更改模型参数。

textgenrnn的优点是您不需要处理任何类型的数据处理,只需加载文本数据集并坐在咖啡旁,一边观看模型培训。
# textgen_2 = textgenrnn('textgenrnn_weights.hdf5') textgen_2.generate(3, temperature=1.0) textgen_2.generate_to_file('lyrics.txt')
接下来是什么?
现在,在学习了如何使textgenrnn创建文本之后,可以使用以下知识做很多事情:
- 创建Wikipedia文章。
- 在社交网络上的帖子。
- 新闻。
使用的来源清单:
https://github.com/minimaxir/textgenrnn
https://towardsdatascience.com/ai-generates-taylor-swifts-song-lyrics-6fd92a03ef7e