[Python] Von der morphologischen Analyse von CSV-Daten bis zur CSV-Ausgabe und Diagrammanzeige [GiNZA]

Sammeln Sie CSV-Daten

Holen Sie sich zuerst die CSV-Daten. Ich habe mich gefragt, welche Daten ich bekommen soll. Ich werde die Texte meiner Lieblings-Yorushika kratzen und holen.

Installieren Sie zunächst die zum Scraping erforderlichen Module

pip install requests
pip install bs4
pip install lxml
pip install pandas

Schaben!

Ich habe hier darauf hingewiesen. 【https://qiita.com/yuuuusuke1997/items/122ca7597c909e73aad5#%E3%81%8A%E3%82%8F%E3%82%8A%E3%81%AB】

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(10):
    try:
        #Top-Adresse der Song-Seite
        base_url = 'https://www.uta-net.com'

        #Textliste Seite
        artist = "22653"
        url = 'https://www.uta-net.com/artist/'+artist+'/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)
    except:
        print(page)
        import traceback
        traceback.print_exc()

print(list_df)

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

Installation für morphologische Analyse erforderlich

Installieren Sie zuerst, was Sie brauchen

pip install "https://github.com/megagonlabs/ginza/releases/download/v1.0.2/ja_ginza_nopn-1.0.2.tgz"
pip install matplotlib
pip install wordcloud

Japanisierung von Matplotlib

Siehe hierzu [https://qiita.com/osakasho/items/7408d031ca0b2192422f]

Analyse und Grafikanzeige!

# coding: utf-8
import spacy
nlp = spacy.load('ja_ginza_nopn')
import pandas as pd
import matplotlib.pyplot as plt
import collections
from wordcloud import WordCloud

def ginza(word):
    doc = nlp(word)
    #Umfrageergebnisse
    total_ls = []
    Noun_ls = [chunk.text for chunk in doc.noun_chunks]
    Verm_ls = [token.lemma_ for token in doc if token.pos_ == "VERB"]
    for n in Noun_ls:
        total_ls.append(n)
    for v in Verm_ls:
        total_ls.append(v)
    return total_ls, Noun_ls, Verm_ls


"""---------------CSV lesen und voreingestellt--------------"""
csv_read_path = "list.csv"
df = pd.read_csv(csv_read_path)

target_categories = ["Text"]
black_list = ["test"]
"""-------------------------------------------------------------"""



"""---------------Morphologische Verarbeitung------------------------"""
for target in target_categories:
    total_voc = []#Bereiten Sie eine Box vor, um Buchstaben zu platzieren
    for data in df[target]:
        try:
            word_ls, noun_ls, verm_ls = ginza(data)
        except:#Wenn es nicht zerlegt werden kann, verwenden Sie ein Wort.
            word_ls = [data]
        for w in word_ls:
            if not w in black_list:#Überprüfen Sie, ob das Wort auf der schwarzen Liste steht.
                total_voc.append(w)

    print("Die Anzahl der Wörter ist", len(total_voc), "war.")

    #Rangfolge der häufigsten Wörter
    c = collections.Counter(total_voc)

    #Schreiben Sie an CSV
    c_data = (c.most_common())
    csvdf = pd.DataFrame(c_data)
    filename = target + ".csv"
    csvdf.to_csv(filename, encoding='utf_8_sig')
    print("----------------------------")

    #Machen Sie vorerst ein Diagramm
    #Geben Sie zusätzliche Teilschriftarten an.
    plt.rcParams["font.family"] = "IPAexGothic"
    plt.title(target)
    plt.grid(True)
    graph_x_list = []
    graph_y_list = []
    top_num = 0
    for key, value in c.most_common():
        graph_x_list.append(key)
        graph_y_list.append(value)
        if top_num >= 10:
            break
        top_num += 1
    try:
        plt.bar(graph_x_list, graph_y_list)
        #Grafik anzeigen
        plt.show()
    except:
        print(target, "Die Daten konnten nicht gezeichnet werden.")

    #Zeichnen Sie in WordCloud
    font = 'C:/Windows/Fonts/YuGothM.ttc'
    wordcloud = WordCloud(background_color="white", width=1000, height=600, font_path=font)

    wordcloud.generate(" ".join(wordcloud_ls))
    wordcloud.to_file(target+'.png')

"""-------------------------------------------------------------"""

Diagrammergebnisse

Balkendiagrammergebnisse

image.png

Word Cloud-Ergebnisse

image.png

Du verstehst wirklich

Danke für deine harte Arbeit.

Recommended Posts

[Python] Von der morphologischen Analyse von CSV-Daten bis zur CSV-Ausgabe und Diagrammanzeige [GiNZA]
Portiert von der R-Sprache von "Sazae-sans Janken Data Analysis" nach Python
Python> Ausgaben von 1 bis 100, 501 bis 600> Für CSV
Von der Einführung von JUMAN ++ bis zur morphologischen Analyse von Japanisch mit Python
Datenanalyse: Einfache Anwendung deskriptiver Statistiken und Schätzungsstatistiken auf CSV-Daten in Python
[Python] Lesen von Daten aus CIFAR-10 und CIFAR-100
[Python] Fluss vom Web-Scraping zur Datenanalyse
[Python] So benennen Sie Tabellendaten und geben sie mit csv aus (to_csv-Methode)
Verarbeitung von CSV-Daten in voller und halber Breite in Python
[Einführung in Data Scientists] Grundlagen von Python ♬ Funktionen und Klassen
[Einführung in Python] Kombinieren Sie Nikkei-Durchschnitts- und NY Dow-CSV-Daten
Meteorologie x Python ~ Von der Wetterdatenerfassung bis zur Spektrumanalyse ~
[Python / Ruby] Mit Code verstehen Wie man Daten aus dem Internet abruft und in CSV schreibt
Ausgabe in eine CSV-Datei mit Python
Empfohlene Bücher und Quellen für die Datenanalyseprogrammierung (Python oder R)
So vermeiden Sie doppelte Daten bei der Eingabe von Python in SQLite.
Einführung in die Datenanalyse mit Python P17-P26 [ch02 1.usa.gov Daten von bit.ly]
Praxis der Datenanalyse durch Python und Pandas (Tokyo COVID-19 Data Edition)
[Einführung in Data Scientists] Grundlagen von Python ♬ Bedingte Verzweigung und Schleifen
[Einführung in Data Scientists] Grundlagen von Python ♬ Funktionen und anonyme Funktionen usw.
[Python] So legen Sie die Position und Größe der Fensteranzeige von matplotlib fest
Von Python bis zur Verwendung von MeCab (und CaboCha)
Dateneingabe / -ausgabe in Python (CSV, JSON)
Von der Vorbereitung der morphologischen Analyse mit Python unter Verwendung von Polyglot bis zur Teilwortmarkierung
[Data Science-Grundlagen] Ich habe versucht, mit Python von CSV auf MySQL zu speichern
CSV-Ausgabe von Pulsdaten mit Raspberry Pi (Analogeingang mit Python prüfen)
Übertragen Sie Gleitkommadaten von Python ohne Ziffernverlust nach JavaScript
Portieren und Ändern des Doublet-Solvers von Python2 auf Python3.
Lesen Sie Python csv und exportieren Sie es nach txt
Zeichnen Sie Daten einfach in Shell und Python
Grafische Anzeige von AIX- und Linux-Nmon-Daten ohne Verwendung von MS Excel
Von der Re-Environment-Konstruktion von Python bis zur grafischen Zeichnung (auf Visual Studio-Code)
Komprimieren Sie Python-Daten und schreiben Sie in SQLite
[Einführung in Data Scientist] Grundlagen von Python ♬
Ich möchte ein Pfaddiagramm der verteilten co-verteilten Strukturanalyse (SEM) ausgeben, indem ich Python und R verbinde.
Versuchen Sie auch bei der Konvertierung von CSV in Leerzeichenbegrenzer ernsthaft, Eingabe / Ausgabe und Regeln zu trennen
Datenanalyse in Python Zusammenfassung der Quellen, die Anfänger zuerst betrachten sollten
(Sonstige Hinweise) Datenaktualisierungsmuster von der CSV-Datenerfassung / -verarbeitung durch Python nach Excel
Zusammenfassung zum Lesen numerischer Daten mit Python [CSV, NetCDF, Fortran Binary]
Schöne Grafikzeichnung mit Python-Seaborn erleichtert die Datenanalyse und -visualisierung Teil 1
Verwenden Sie libsixel, um Sixel in Python auszugeben und das Matplotlib-Diagramm an das Terminal auszugeben.
Wunderschönes Zeichnen mit Python-Seaborn erleichtert die Datenanalyse und -visualisierung Teil 2
Organisieren Sie Python-Tools, um die anfängliche Bewegung von Datenanalyse-Wettbewerben zu beschleunigen
Von der Excel-Datei zur Exe und Freigabe des Tools, das CSV ausspuckt
CSV-Ausgabe der Google-Suche mit [Python]! 【Einfach】
Kratzen Sie das Essen mit Python und geben Sie es an CSV aus
[Kaggle] Vom Lesen der Daten bis zur Vorverarbeitung und Codierung
Lesen Sie Python-CSV-Daten mit Pandas ⇒ Graph mit Matplotlib
[Python] Konvertieren von DICOM in PNG oder CSV
Lesen Sie JSON mit Python und geben Sie CSV aus
Empfangen und Anzeigen von HTML-Formulardaten in Python
Von der Datei zur Diagrammzeichnung in Python. Grundstufe Grundstufe
Abrufen von Daten von MacNote3 und Migrieren zu Write
Gründlicher Vergleich von drei morphologischen Python-Analysebibliotheken
CSV-Ausgabe von Impulsdaten mit Raspberry Pi (CSV-Ausgabe)
Schreiben Sie CSV-Daten mit AWS-Lambda + Python in AWS-S3
Liste des zu verschiebenden und zu merkenden Python-Codes
Ich habe versucht, morphologische Analyse und Wortvektorisierung
Aufgezeichnete Umgebung für die Datenanalyse mit Python