Il ne reste plus qu'un an avant la suspension de l'activité des tempêtes. Cela fait 20 ans depuis l'apparition du costume transparent. Qu'est-ce que les idoles nationales actives en multijoueur voulaient transmettre à leurs fans au cours des 20 années qui ont suivi leur formation? J'aimerais vous rencontrer en personne, mais pour cette raison. J'ai donc décidé de "visualiser les paroles" et de transmettre le message que je veux transmettre aux fans ~~ le sixième membre ~~ que je transmettrai aux fans d'Arashi.
・ Python 3.7.3 ・ Windows10
"・ Utane t" (hps: // ww. Utane t. This m) ・ J'ai essayé de visualiser les paroles de Genshi Yonezu avec WordCloud.
scraping_arashi.py
import requests
from bs4 import BeautifulSoup
import pandas as pd
import time
#Créer une table pour contenir les données récupérées
list_df = pd.DataFrame(columns=['Paroles'])
for page in range(1, 3):
#Adresse du haut de la page de la chanson
base_url = 'https://www.uta-net.com'
#Page de liste des paroles
url = 'https://www.uta-net.com/artist/3891/0/' + str(page) + '/'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
links = soup.find_all('td', class_='side td1')
for link in links:
a = base_url + (link.a.get('href'))
#Page de détail des paroles
response = requests.get(a)
soup = BeautifulSoup(response.text, 'lxml')
song_lyrics = soup.find('div', itemprop='lyrics')
song_lyric = song_lyrics.text
song_lyric = song_lyric.replace('\n','')
#Attendez 1 seconde pour ne pas charger le serveur
time.sleep(1)
#Ajouter les paroles acquises au tableau
tmp_se = pd.DataFrame([song_lyric], index=list_df.columns).T
list_df = list_df.append(tmp_se)
print(list_df)
#csv enregistrer
list_df.to_csv('list.csv', mode = 'a', encoding='cp932')
morphological_analysis_arashi.py
from janome.tokenizer import Tokenizer
import pandas as pd
import re
#list.Lire le fichier csv
df_file = pd.read_csv('list.csv', encoding='cp932')
song_lyrics = df_file['Paroles'].tolist()
t = Tokenizer()
results = []
for s in song_lyrics:
tokens = t.tokenize(s)
r = []
for tok in tokens:
if tok.base_form == '*':
word = tok.surface
else:
word = tok.base_form
ps = tok.part_of_speech
hinshi = ps.split(',')[0]
if hinshi in ['nom', 'adjectif', 'verbe', 'adverbe']:
r.append(word)
rl = (' '.join(r)).strip()
results.append(rl)
#Remplacement du code de caractère supplémentaire
result = [i.replace('\u3000','') for i in results]
print(result)
text_file = 'wakati_list.txt'
with open(text_file, 'w', encoding='utf-8') as fp:
fp.write("\n".join(result))
wordcloud_arashi.py
from wordcloud import WordCloud
text_file = open('wakati_list.txt', encoding='utf-8')
text = text_file.read()
#Chemin de la police japonaise
fpath = 'C:/Windows/Fonts/YuGothM.ttc'
#Suppression de mots qui semble dénuée de sens
stop_words = ['alors', 'Absent', 'Est', 'Faire', 'Tel quel', 'Yo', 'Teru', 'Devenir', 'chose', 'Déjà', 'Bien', 'y a-t-il', 'aller', 'Être']
wordcloud = WordCloud(background_color='white',
font_path=fpath, width=800, height=600, stopwords=set(stop_words)).generate(text)
#L'image est wordcloud.Enregistrez png dans le même répertoire que le fichier py
wordcloud.to_file('./wordcloud.png')
↓ ↓ Et le résultat ↓ ↓
Ça fait du bien!
En visualisant les paroles, j'ai trouvé que des mots tels que «futur», «nous», «ici» et «voir» qui ressentent la chaleur de la tempête apparaissent fréquemment (* ´ ▽ ` *).
Marchons vers l'avenir avec nous. Et je serai à vos côtés tout le temps. Un an avant la suspension de l'activité, cela provoquera un tourbillon de A, RA, SHI dans tout le Japon (~~ Message de moi, le sixième membre. ~~)
Les fans peuvent transmettre les sentiments de la tempête sans que je le dise, non?
"Nous", les fans d'Arashi, soutiendrons Arashi de toutes leurs forces jusqu'à la fin. Bonne chance ARASHI. Et si ça apparaît, oui!
J'ai aimé apprendre le grattage, l'analyse morphologique et comment utiliser WordCloud basé sur les chansons d'Arashi. Cela fait longtemps, mais merci d'avoir lu jusqu'ici. Si vous constatez des erreurs, je vous serais très reconnaissant de les signaler dans les commentaires.
Recommended Posts