10 рдорд┐рдирдЯ рдореЗрдВ рдЕрдкрдирд╛ рдЧреАрдд рд▓рд┐рдЦреЗрдВ (textgenrnn Python3 рдореЙрдбреНрдпреВрд▓)


рдЖрдЬ рд╣рдо рдЧреАрддреЛрдВ рдХреЗ рдмреЛрд▓ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХрд╛ рдирдореВрдирд╛ рд╣реИрдВрдбреНрд╕ рдЕрдк рд╕рдореВрд╣ рдХреЗ рдЧреНрд░рдВрде рд╣реЛрдВрдЧреЗред рдХреБрдЫ рднреА рдирд╣реАрдВ рдЖрдк рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рд╕рдореВрд╣реЛрдВ рдХреЗ рдЧреНрд░рдВрдереЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо Python3 (рдореЙрдбреНрдпреВрд▓ BeautifulSoup) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред


рдХрд╛рд░реНрдп рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ (рдЧреНрд░рдВрдереЛрдВ) рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рдлрд┐рд░ рдЙрдирдХреЗ рдЖрдзрд╛рд░ рдкрд░ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдк рдХрд╛рд░реНрдп рдХреЛ 2 рдЪрд░рдгреЛрдВ рдореЗрдВ рддреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
рдЪрд░рдг 1: рдЧреАрдд рдХреЛ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЕрдирд▓реЛрдб рдФрд░ рд╕рд╣реЗрдЬреЗрдВред
рд╕реНрдЯреЗрдЬ 2: рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░реЗрдВред


рдЯреНрд░реЛрд▓ рдФрд░ рд╢реМрдХреАрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЧреБрдкреНрдд рдЕрд░реНрде рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рддреБрд░рдВрдд рдХрд╣реВрдВрдЧрд╛


  • рдореИрдВ рд╣реИрдВрдбреНрд╕ рдЕрдк рдХрд╛ рд╕рджрд╕реНрдп рдирд╣реАрдВ рд╣реВрдВред
  • рдпрд╣ рд▓реЗрдЦ рдХрд┐рд╕реА рднреА рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдирд╣реАрдВ рд╣реИред
  • рдореБрдЭреЗ рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрд╕рд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ред
  • рдореИрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрдореЛрджрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рд▓реЗрдЦрдХ рдХреЛ рдирд╛рд░рд╛рдЬ рдХрд░рдиреЗ рдХрд╛ рд╕рд╛рд░ рд╣реИ, рдЯрд╛рдЗрдкреЛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдмреЗрд╢рдХ, рдореИрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВ рд░реВрд╕реА рднрд╛рд╖рд╛ рдХрд╛ рдореВрд▓ рд╡рдХреНрддрд╛ рдирд╣реАрдВ рд╣реВрдВ рдФрд░ рдХрднреА-рдХрднреА рдореИрдВ рдХреБрдЫ рдиреЛрдЯрд┐рд╕ рдирд╣реАрдВ рдХрд░рддрд╛, рдХреГрдкрдпрд╛ рджрдпрд╛рд▓реБ рд░рд╣реЗрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд▓рд┐рдЦреЗрдВред рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдирд┐рд░рд╛рдзрд╛рд░ рднреЛрдЬ рдХреЗ рд╕рд╛рде, рдореИрдВ рдЬрдВрдЧрд▓ рдореЗрдВ рдЯрд╣рд▓рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВред

рд╕реНрдЯреЗрдЬ 1


рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг (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') '      ' ''' 

рд╕реНрдЯреЗрдЬ 2


 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') 

рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?


рдЕрдм, рдЬрдм рдЖрдкрдиреЗ рдкрд╛рда рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдХреНрд╕реНрдЯрдЬреЗрди рдХреЛ рдмрдирд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╕реАрдЦ рд▓рд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рдЬреНрдЮрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╣реБрдд рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


  • рдПрдХ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд▓реЗрдЦ рдмрдирд╛рдПрдБред
  • рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкреЛрд╕реНрдЯред
  • рд╕рдорд╛рдЪрд╛рд░ред

рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕реНрд░реЛрддреЛрдВ рдХреА рд╕реВрдЪреА:


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

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


All Articles