[Python] Ich habe versucht, die Texte von Arashi mit WordCloud zu visualisieren und herauszufinden, was ich den Fans in 20 Jahren Ausbildung vermitteln wollte

Auslösen

Es ist nur noch ein Jahr, bis die Aktivität des Sturms eingestellt wird. Seit dem Erscheinen des transparenten Kostüms sind 20 Jahre vergangen. Was wollten die im Mehrspielermodus aktiven nationalen Idole ihren Fans in den 20 Jahren seit ihrer Gründung vermitteln? Ich würde Sie gerne persönlich treffen, aber aus diesem Grund. Also habe ich beschlossen, "die Texte zu visualisieren" und die Botschaft, die ich den Fans vermitteln möchte, zu übermitteln ~~ das sechste Mitglied ~~, das ich den Arashi-Fans übermitteln werde.

Umgebung

・ Python 3.7.3 ・ Windows10

Referenzmaterial

"・ Utane t" (hps: // ww. Utane t. This m) ・ Ich habe versucht, die Texte von Genshi Yonezu mit WordCloud zu visualisieren.

Rauer Fluss

  1. Texte sammeln (kratzen)
  2. Verwandeln Sie Texte in Wörter (morphologische Analyse)
  3. Visualisierung (Word Cloud)

1. Texte sammeln (kratzen)

scraping_arashi.py


import requests
from bs4 import BeautifulSoup
import pandas as pd
import time

#Erstellen Sie eine Tabelle mit den Scraped-Daten
list_df = pd.DataFrame(columns=['Text'])

for page in range(1, 3):
	#Top-Adresse der Song-Seite
	base_url = 'https://www.uta-net.com'

	#Textliste Seite
	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'))

		#Lyrics Detail Seite
		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','')
		#Warten Sie 1 Sekunde, bis der Server nicht geladen ist
		time.sleep(1)

		#Fügen Sie die erworbenen Texte zur Tabelle hinzu
		tmp_se = pd.DataFrame([song_lyric], index=list_df.columns).T
		list_df = list_df.append(tmp_se)

print(list_df)

#CSV speichern
list_df.to_csv('list.csv', mode = 'a', encoding='cp932')

2. Verwandeln Sie Texte in Wörter (morphologische Analyse)

morphological_analysis_arashi.py


from janome.tokenizer import Tokenizer
import pandas as pd
import re

#list.CSV-Datei lesen
df_file = pd.read_csv('list.csv', encoding='cp932')

song_lyrics = df_file['Text'].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 ['Substantiv', 'Adjektiv', 'Verb', 'Adverb']:
			r.append(word)

	rl = (' '.join(r)).strip()
	results.append(rl)
	#Ersetzen des zusätzlichen Zeichencodes
	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))

3. Visualisierung (Word Cloud)

wordcloud_arashi.py


from wordcloud import WordCloud

text_file = open('wakati_list.txt', encoding='utf-8')
text = text_file.read()

#Japanischer Schriftpfad
fpath = 'C:/Windows/Fonts/YuGothM.ttc'

#Wortentfernung, die bedeutungslos erscheint
stop_words = ['damit', 'Abwesend', 'Ist', 'Machen', 'Wie es ist', 'Yo', 'Teru', 'Werden', 'Ding', 'Bereits', 'Gut', 'Gibt es', 'gehen', 'Sein']

wordcloud = WordCloud(background_color='white',
	font_path=fpath, width=800, height=600, stopwords=set(stop_words)).generate(text)

#Das Bild ist Wordcloud.Speichern Sie png im selben Verzeichnis wie die py-Datei
wordcloud.to_file('./wordcloud.png')

↓ ↓ Wie wäre es mit dem Ergebnis ↓ ↓

Ausführungsergebnis

Es fühlt sich gut an! wordcloud_sample.png

Zusammenfassung

Durch die Visualisierung der Texte stellte ich fest, dass häufig Wörter wie "Zukunft", "Wir", "Hier" und "Sehen" auftreten, die die Wärme des Sturms spüren (* ´ ▽ ` *).

Nachricht vom Sturm

Gehen wir mit uns in die Zukunft. Und ich werde die ganze Zeit an deiner Seite sein. Noch ein Jahr, bis die Aktivität eingestellt wird, wird es in ganz Japan zu einem Wirbelwind von A, RA und SHI kommen (~~ Nachricht von mir, dem sechsten Mitglied. ~~)

Fans können die Gefühle des Sturms vermitteln, ohne dass ich es sage, oder?

"Wir" Arashi-Fans werden Arashi bis zum Ende mit aller Kraft unterstützen. Viel Glück ARASHI. Und wenn es knallt, ja!

abschließend

Ich habe es genossen, etwas über Scraping, morphologische Analyse und die Verwendung von WordCloud basierend auf Arashis Songs zu lernen. Es ist lange her, aber danke, dass Sie so weit gelesen haben. Wenn Sie Fehler finden, wäre ich Ihnen sehr dankbar, wenn Sie in den Kommentaren darauf hinweisen könnten.

Recommended Posts

[Python] Ich habe versucht, die Texte von Arashi mit WordCloud zu visualisieren und herauszufinden, was ich den Fans in 20 Jahren Ausbildung vermitteln wollte
Da es der 20. Jahrestag der Gründung ist, habe ich versucht, die Texte von Parfüm mit Word Cloud zu visualisieren
[CleanArchitecture mit Python] Wenden Sie CleanArchitecture Schritt für Schritt auf eine einfache API an und versuchen Sie zu verstehen, welche Art von Änderung in der Codebasis stark ist.
[Python] Ich habe versucht, die Nacht der Galaxienbahn mit WordCloud zu visualisieren!
Ich habe versucht, den Text des Romans "Wetterkind" mit Word Cloud zu visualisieren
Ich habe versucht, die Tweets von JAWS DAYS 2017 mit Python + ELK einfach zu visualisieren
Ich wollte die 3D-Partikelsimulation mit der Python-Visualisierungsbibliothek Matplotlib visualisieren.
Ich bin ein Amateur am 14. Tag von Python, aber ich möchte maschinelles Lernen mit Scicit-Learn ausprobieren
Probieren Sie die DB-Operation mit Python aus und visualisieren Sie sie mit d3
Ich habe versucht, das Artikel-Update des Livedoor-Blogs mit Python und Selen zu automatisieren.
Visualisieren Sie den Bereich der internen und externen Einfügungen mit Python
Ich habe versucht, die Eigenschaften der neuen Informationen über mit dem Corona-Virus infizierte Personen mit Wordcloud zu visualisieren
Ich wollte nur die Daten des gewünschten Datums und der gewünschten Uhrzeit mit Django extrahieren
Ich habe versucht, die Verarbeitungsgeschwindigkeit mit dplyr von R und pandas von Python zu vergleichen
Eine Einführung in die GUI-Software der Klassenplattform, die mit Python / Tkinter erstellt wurde! (Und viele Try and Error)! (Während des Schreibens)
Beim 15. Offline-Echtzeitversuch habe ich versucht, das Problem des Schreibens mit Python zu lösen
Ich habe auch versucht, die Funktionsmonade und die Zustandsmonade mit dem Generator in Python nachzuahmen
Ich schrieb einen Test in "Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren".
Versuchen Sie, die Nährstoffe von Cornflakes zu visualisieren, die M-1-Champion Milkboy mit Python sagte
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Versuchen Sie, COVID-19 Tokyo-Daten mit Python zu kratzen
Ich wollte den Panasonic Programming Contest 2020 mit Python lösen
Was ich getan habe, um die Python2 EOL mit Zuversicht zu begrüßen
[Python] Ich habe versucht, Tweets über Corona mit WordCloud zu visualisieren
[Python] Ich habe versucht, die folgende Beziehung von Twitter zu visualisieren
Versuchen Sie, den Betrieb von Netzwerkgeräten mit Python zu automatisieren
Ich möchte die Natur von Python und Pip kennenlernen
[Python] Ich habe versucht, das Preisgeld von "ONE PIECE" über 100 Millionen Zeichen mit matplotlib zu visualisieren.
Ich habe die Geschwindigkeit von Hash mit Topaz, Ruby und Python verglichen
Ich möchte APG4b mit Python lösen (nur 4.01 und 4.04 in Kapitel 4)
[Einführung in Python] Ich habe die Namenskonventionen von C # und Python verglichen.
Was ich mit json.dumps in Pythons base64-Codierung süchtig gemacht habe
Ich möchte den Anfang des nächsten Monats mit Python ausgeben
Geben Sie den Inhalt von ~ .xlsx im Ordner mit Python in HTML aus
Ich habe den Code geschrieben, um den Brainf * ck-Code in Python zu schreiben
Visualisieren Sie die Häufigkeit von Wortvorkommen in Sätzen mit Word Cloud. [Python]
Ich wollte das ABC164 A ~ D-Problem mit Python lösen
Der Versuch, Segmentbäume Schritt für Schritt zu implementieren und zu verstehen (Python)
Ich habe versucht, die Effizienz der täglichen Arbeit mit Python zu verbessern
Wenn ich versuche, den Befehl make von Makefile mit os / exec von golang auszuführen, führen die zweite und nachfolgende Ausführung zu einem Fehler.
Ich habe versucht, die statistischen Daten der neuen Corona mit Python abzurufen und zu analysieren: Daten der Johns Hopkins University
[Abgeschlossene Version] Versuchen Sie, die Anzahl der Einwohner der Stadt anhand der Adressliste mit Python herauszufinden
FBX SDK Welche Fähigkeiten benötige ich, um ein Programm mit Python zu erstellen?
Ich habe die numerische Berechnung von Python durch Rust ersetzt und die Geschwindigkeit verglichen
Setzen Sie Cabocha 0.68 in Windows ein und versuchen Sie, die Abhängigkeit mit Python zu analysieren
Ich habe versucht, die Altersgruppe und die Ratenverteilung von Atcoder zu visualisieren
Was ich getan habe, um die Luftfeuchtigkeit und Temperatur des Archivs zu verfolgen
So ermitteln Sie mit Python den Unterschied zwischen Datum und Uhrzeit in Sekunden
Versuchen Sie, die Höhendaten des National Land Research Institute mit Python abzubilden
Ich habe Umgebungsvariablen in Docker festgelegt und in Python angezeigt.
Ich möchte das Ergebnis von "Zeichenfolge" .split () in Python stapelweise konvertieren
Ich möchte die abstrakte Klasse (ABCmeta) von Python im Detail erklären
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Ich möchte meine Gefühle mit den Texten von Mr. Children ausdrücken
Der Dateiname war in Python schlecht und ich war süchtig nach Import
Ich habe versucht, die Beschleunigung von Python durch Cython zu verifizieren und zu analysieren
Ich habe versucht, die Standardrolle neuer Mitarbeiter mit Python zu optimieren