[Python] Zerlegen Sie die erfasste Twitter-Timeline mit MeCab in Morphologie

Zweck

Die Twitter-Timeline ist eine txt-Datei. Die Zeitleiste mehrerer Benutzer wird in einem Ordner gespeichert. Das Ziel dieser Zeit ist es, alle diese Dateien mit MeCab zu analysieren.

Hintergrund / Vorbereitung

Holen Sie sich die Zeitleiste

Ich habe die Zeitleiste wie im nächsten Artikel. [Python] Twitter-Timeline für mehrere Benutzer abrufen

Vorbereitung für MeCab

Verwenden Sie für die morphologische Analyse die morphologische Analyse-Engine 'MeCab'. Wie auf Mac verwenden Mecab-Installationsverfahren Ich durfte mich beziehen.

Implementierung

  1. Holen Sie sich die Liste der Dateinamen im Ordner in die Liste der Python

  2. Eine Funktion, die aus einer Liste von Dateinamen eine Liste von Zeitleisten erstellt

  3. Morphologische Analysefunktion

  4. Morphologische Analyse aller Dateien im Ordner

1. Rufen Sie eine Liste der Dateinamen in einem Ordner ab

Die Datei'timelines 'enthält alle txt-Dateien, mit denen Sie arbeiten möchten. Speichern Sie diese Dateinamen (Zeichenfolgen) in der Liste 'Dateinamen'.

import glob

file_names=[]

files = glob.glob("./timelines/*")
for file in files:
    file_names.append(file)

Die erhaltenen Dateinamen haben die folgende Form.

['./timelines/20191210_user0_***.txt',..,'./timelines/20191210_user199_***.txt']

2. Eine Funktion, die aus einer Liste von Dateinamen eine Liste von Zeitleisten erstellt

timelines.py



def timelines(file_list):
    timelines=[]
    for file in file_list:
        text=open(file).read()
        open(file).close()

        timelines.append([text])
    return timelines

3. Morphologische Analysefunktion

Definiert eine Funktion für die morphologische Analyse. Das Argument der Funktion ist eine Zeichenfolge, und der Rückgabewert ist eine Liste der Ergebnisse der morphologischen Analyse.

mecab_list.py


import MeCab

def mecab_list(text):
    tagger = MeCab.Tagger("-Ochasen")
    tagger.parse('')
    node = tagger.parseToNode(text)
    mecab_output = []
    while node:
        word = node.surface
        wclass = node.feature.split(',')
        if wclass[0] != u'BOS/EOS':
            if wclass[6] == None:
                mecab_output.append([word,wclass[0],wclass[1],wclass[2],""])
            else:
                mecab_output.append([word,wclass[0],wclass[1],wclass[2],wclass[6]])
        node = node.next
    return mecab_output

Lassen Sie uns den Betrieb der Funktion 'mecab_list' überprüfen.


print(mecab_list('Ich esse oft Katzen, die ich gestern zu halten begonnen habe.'))
'''
Ergebnis
[['gestern', 'Substantiv', 'Anwalt möglich', '*', 'gestern'], ['Domestizierung', 'Verb', 'Unabhängigkeit', '*', 'behalten'], ['Start', 'Verb', '非Unabhängigkeit', '*', 'Startる'], ['Ta', '助Verb', '*', '*', 'Ta'], ['Katze', 'Substantiv', 'Allgemeines', '*', 'Katze'], ['Ist', 'Partikel', '係Partikel', '*', 'Ist'], ['Häufig', 'Adverb', 'Allgemeines', '*', 'Häufig'], ['Essen', 'Verb', 'Unabhängigkeit', '*', 'Essen'], ['。', 'Symbol', 'Phrase', '*', '。']]

Es scheint kein Problem zu geben.

4. Morphologische Analyse aller Dateien im Ordner

mecab_results_list=[]
the_timelines=timelines(file_names)

for the_timeline in the_timelines:
    mecab_result=[]
    for twt in the_timeline:
        mecab_result.append(mecab_list(twt))
    mecab_results_list.append(mecab_result)
print(mecab_results_list)
#Ergebnis
[[[['w', 'Symbol', 'Alphabet', '*', 'w'], ['noch', 'Adverb', 'Hilfsanschluss', '*', 'noch'], ['Sub', 'Substantiv', '固有Substantiv', 'Bereich', 'Sub'], ['Samen', 'Substantiv', 'Suffix', 'Allgemeines', 'Samen'], ['?', 'Symbol', 'Allgemeines', '*', '?'], ['Aber', 'Partikel', '格Partikel', 'Allgemeines', 'Aber'],..,]]]]

Ich habe das gewünschte Ergebnis erzielt.

Umgebung

macOS Catalina Jupyter notebook

Recommended Posts

[Python] Zerlegen Sie die erfasste Twitter-Timeline mit MeCab in Morphologie
Holen Sie sich Twitter-Timeline mit Python
Verwenden Sie Mecab mit Python 3
Sammeln von Informationen von Twitter mit Python (morphologische Analyse mit MeCab)
Crawlen Sie die im Twitter-Tweet enthaltene URL mit Python
Versuchen Sie, mit Python schnell und einfach auf die Twitter-API zuzugreifen
[Python] Morphologische Analyse mit MeCab
Twitter-Grafiknotiz mit Python
Verwenden Sie die Twitter-API mit Python
Erstellen Sie einen Twitter-BOT mit dem GoogleAppEngine SDK für Python
So gelangen Sie mit Vagrant in die Python-Entwicklungsumgebung
Rufen Sie die API mit python3 auf.
Suche nach Twitter-Tweets mit Python
Extrahieren Sie die xz-Datei mit Python
Holen Sie sich das Wetter mit Python-Anfragen
Holen Sie sich das Wetter mit Python-Anfragen 2
Finden Sie die Bearbeitungsentfernung (Levenshtein-Entfernung) mit Python
Klicken Sie mit Python auf die Etherpad-Lite-API
Installieren Sie das Python-Plug-In mit Netbeans 8.0.2
Veröffentlichen Sie mehrere Twitter-Bilder mit Python
Ich mochte den Tweet mit Python. ..
Beherrsche den Typ mit Python [Python 3.9 kompatibel]
Mit Python 3 einfach auf Twitter posten
Greifen Sie mit Python auf die Twitter-API zu
Bei Verwendung von MeCab mit virtualenv python
[Memo] Tweet auf Twitter mit Python
Es wurde ein Fehler behoben, bei dem node.surface mit python3 + mecab nicht abgerufen werden konnte
Machen Sie die Python-Konsole mit UNKO bedeckt
Sammeln von Informationen von Twitter mit Python (Twitter API)
Berühren Sie die Twitter-Liste mit Tweepy
INSERT in MySQL mit Python [Für Anfänger]
[Python] Legen Sie den Diagrammbereich mit matplotlib fest
[Python] Visualisieren Sie die von Wireshark erfassten Informationen
Hinter dem Flyer: Docker mit Python verwenden
Verwenden von Python und MeCab mit Azure Databricks
Überprüfen Sie die Existenz der Datei mit Python
[Python] Ruft den Variablennamen mit str ab
[Python] Runden Sie nur mit dem Operator ab
Zeigen Sie Python 3 im Browser mit MAMP an
Fügen Sie Protokollpuffer mit Python in SQLite ein
Tweet von Python mit Twitter Developer + Tweepy
Tweet mit der Twitter-API in Python
Durchsuche das Labyrinth mit dem Python A * -Algorithmus
Lesen wir die RINEX-Datei mit Python ①
Arbeiten mit OpenStack mit dem Python SDK
Laden Sie mit Python Dateien im Web herunter
[Python] Twitter-Timeline für mehrere Benutzer abrufen
Tweet-Analyse mit Python, Mecab und CaboCha
Lernen Sie das Entwurfsmuster "Singleton" mit Python
[Python] Betreiben Sie den Browser automatisch mit Selenium
Machen wir einen Twitter-Bot mit Python!
Verwenden Sie Python und MeCab mit Azure-Funktionen
Lernen Sie das Designmuster "Facade" mit Python
Der Weg zum Kompilieren zu Python 3 mit Thrift
[Python] Ersetzen Sie den von MeCab ausgegebenen Text durch die wichtigen Wörter, die von MeCab + Term Extract extrahiert wurden.
Erhalten Sie mit Python Informationen zu den 100 einflussreichsten technischen Twitter-Nutzern der Welt.