[PYTHON] Ich möchte mit dem Reim part3 umgehen

__ Inhalt __

Ich möchte MeCab im vorherigen Ablauf stärker nutzen. Es war in der Abteilung zu unterteilt. Verwenden Sie MeCab, um beispielsweise Segmentierung durchzuführen. Ich weiß nicht, dass es Cabocha und KNP gibt (ich sage es noch einmal, ~~ gelber B-Junge ~~ ich möchte MeCab verwenden). Ich verwende keine morphologische Analyse, daher werde ich eine morphologische Analyse versuchen und die angehängten Wörter (Hilfswörter, Hilfsverben) an die vorherigen Wörter anhängen.

__ Verkettung von angehängten Wörtern __

Aufgrund der Ergebnisse habe ich MeCab nicht verwendet. Ich entschied, dass Janome prägnanter war, weil ich nur die Oberflächenform und einen Teil des Wortes brauchte. ~~ Ich habe jedoch verschiedene Dinge mit MeCab ausprobiert, den Artikel gelesen, um ihn in DataFrame einzufügen, und er hat sich für Minuten seltsam eingestellt und wurde zu einem Speicherfehler, also hat es mir so gut gefallen ~~ Durch Verketten der Zusätze mit dem folgenden Code betrug die durchschnittliche Länge der geteilten Wörter 2,96 (2,16 in getrennter Schrift).

from janome.tokenizer import Tokenizer

with open("./gennama.txt","r") as f:
    data = f.read()
    
tokenizer = Tokenizer()
tokens = tokenizer.tokenize(data)

surface_list = []
part_of_speech_list = []
for token in tokens:
    surface_list.append(token.surface)
    part_of_speech_list.append(token.part_of_speech.split(",")[0])
    
text_data = []
for i in range(len(surface_list)):
    if part_of_speech_list[i] == "Symbol":
        continue
    elif part_of_speech_list[i] == "Partikel" or part_of_speech_list[i] == "Hilfsverb":
        row = text_data.pop(-1) + surface_list[i]
    else:
        row = surface_list[i]
    text_data.append(row)

Damit haben wir wie in der vorherigen Zeit bewertet, welche Vokale in den Eingabedaten angeordnet sind, und die Wörter ausgegeben, die sie enthalten. Das Ausgabeergebnis ist mehr als das des separaten Schreibens, es wurde jedoch keine praktische Anwendbarkeit gefunden. Schließlich ist N-Gramm derzeit am besten geeignet, die Wortreihenfolge bleibt erhalten und es wird geteilt, wo es nicht geteilt werden sollte. Wenn Sie es also verbinden, können Sie den Reim erkennen. Beachten Sie, dass es hier ist. Hiragana für Kanji vor N-Gramm ... Wenn Sie Kanji ursprünglich in Lesen umwandeln, wird die Variation von N-Gramm wahrscheinlich zunehmen. ) Verwenden wir MeCab.

__ In Daten konvertieren __

import MeCab

with open("./gennama.txt","r") as f:
    data = f.read()

yomi_data = ""
mecab = MeCab.Tagger("-Ochasen")
lines = mecab.parse(data).split("\n")
for line in lines:
    if line.split("\t")[0] == "EOS":
        break
    else:
        yomi_data += line.split("\t")[1]        

"Shitamachi" -> "Tamachi" -> "iaai" und 4 Vokale können durch 4 Buchstaben dargestellt werden. Aber was ist mit dem Fall "Moment" -> "Shunkan" -> "ua"? Zwei Vokale sind durch fünf Buchstaben darzustellen. Wenn Sie es in N Zeichen unterteilen, je nachdem, wie Sie es lesen, können Sie Dinge wie "Tama / Chi" tun, bei denen Sie nur "Shita / Machi" tun können. "Shunkan" wird jedoch nutzlos lang. Verwenden Sie dann N-Gramm, nachdem Sie Vokaldaten erstellt haben? Die Oberflächenebene kann nicht abgerufen werden, selbst wenn den Daten ein Index zugewiesen ist. Es kann nicht gut sein, dass die Folge von "aa" in "Innenstadt" nicht erkannt wird. Ich kann mir nicht sofort einen Verbesserungsplan vorstellen, aber ich möchte hier darüber nachdenken.

Plan von nun an

Zum einen kann es sinnvoll sein, verschiedene Arten der Wertung hinzuzufügen. Selbst wenn Sie beispielsweise Konsonanten verlassen und diese übereinstimmen, können Sie sie hinzufügen und mehrere Punkte addieren. In diesem Fall scheint es möglich zu sein, den "Kühlschrank" wie (Reizoko, Reizoko) zu behandeln. Die andere besteht darin, eine Grafik von Wörtern zu zeichnen, die unter Verwendung der Punktzahl an den Kanten in Knoten unterteilt sind. Eigentlich habe ich es versucht, als die Teilungsmethode nur Raumteilung sein konnte, aber es kam nicht so heraus, wie ich es erwartet hatte (vielleicht kommt das Thema zur Vermittlungszentralität?). Ich werde versuchen, networkx von Grund auf neu zu studieren. (~~ Ich mache mir Sorgen darüber, wann der nächste Beitrag veröffentlicht wird. Als ich jedoch die Suchmaschine studierte und die Summe der PageRank- und Wortdistanzwerte sah, dachte ich, dass dies nützlich sein könnte, also habe ich studiert. Ich werde ~~)

Recommended Posts

Ich möchte mit dem Reim part3 umgehen
Ich möchte mit dem Reim part2 umgehen
Ich möchte mit dem Reim part5 umgehen
Ich möchte mit dem Reim part4 umgehen
Ich möchte mit dem Reim part7 (BOW) umgehen
Ich möchte mit dem Reim part6 umgehen (einmal organisieren)
Ich möchte mit dem Reim part8 umgehen (einmal fertig)
Ich möchte ssh mit dem Befehl expected automatisieren! Teil 2
Ich möchte den Fortschrittsbalken anzeigen
Ich möchte das Erscheinungsbild von zabbix anpassen
Ich möchte die Aktivierungsfunktion Mish verwenden
Ich möchte den Fortschritt in Python anzeigen!
Ich möchte den Dateinamen von DataLoader sehen
Ich möchte das Ausführungsergebnis von strace erfassen
Ich möchte in der Django-Verschiebungstabelle scrollen, aber ...
Ich möchte SUDOKU lösen
Ich möchte mit Python-Datenklasse nach hinten erben
Ich möchte die Grundlagen von Bokeh vollständig verstehen
Ich möchte in Python schreiben! (3) Verwenden Sie Mock
Ich habe versucht, den negativen Teil von Meros zu löschen
Ich möchte ssh mit dem Befehl expected automatisieren!
Ich möchte das Produkt zu den niedrigsten Kosten veröffentlichen
Ich möchte R-Datensatz mit Python verwenden
Ich möchte die Sicherheit der SSH-Verbindung erhöhen
[TensorFlow] Ich möchte die Indizierung für Ragged Tensor beherrschen
Ich möchte Daten mit Python analysieren können (Teil 3)
Ich möchte das neueste gcc verwenden, auch wenn ich keine Sudo-Berechtigungen habe! !!
Ich möchte initialisieren, wenn der Wert leer ist (Python)
Ich möchte die von LINE an S3 gesendeten Fotos speichern
maya Python Ich möchte die gebackene Animation wieder reparieren.
Ich möchte vorerst Selen bewegen [für Mac]
Ich möchte Daten mit Python analysieren können (Teil 1)
Ich möchte nur die SudachiPy-Normalisierungsverarbeitung verwenden
Ich möchte Betriebsinformationen über die Yahoo-Route erhalten
Ich möchte mit Numpy die japanische Flagge in die Palau-Flagge ändern
Ich möchte Daten mit Python analysieren können (Teil 4)
Ich möchte die zulässige Ausfallzeit aus der Betriebsrate berechnen
Ich möchte Daten mit Python analysieren können (Teil 2)
[Python] Ich möchte die Option -h mit argparse verwenden
Ich möchte die Authentizität eines Elements eines numpy-Arrays bestimmen
Ich möchte die Natur von Python und Pip kennenlernen
Ich möchte den Wörterbuchtyp in der Liste eindeutig machen
Ich möchte den EDINET-Code und die Wertpapiernummer zuordnen
Keras Ich möchte die Ausgabe einer beliebigen Ebene erhalten !!
Ich möchte die gültigen Zahlen im Numpy-Array ausrichten
Ich möchte die Legende der IT-Technologiewelt kennenlernen
Ich möchte vorerst eine Docker-Datei erstellen.
Ich wollte den AWS-Schlüssel nicht in das Programm schreiben
Ich möchte systemd grob verstehen
Ich habe versucht, das Wahrscheinlichkeitsintegral (I zu Integral) zu berechnen.
Ich möchte Bilder kratzen und trainieren
Ich möchte ○○ mit Pandas machen
Ich möchte Yolos Anmerkung kopieren
Ich möchte mit Python debuggen
Ich habe versucht, den Ball zu bewegen
Ich habe versucht, den Abschnitt zu schätzen.
Ich möchte den Namen der ausgeführten Funktion / Methode erhalten
Ich möchte die Ausführungszeit aufzeichnen und ein Protokoll führen.
Ich möchte automatisch hochwertige Teile aus den von mir aufgenommenen Videos finden
Ich möchte das Wetter mit LINE bot feat.Heroku + Python wissen
[Linux] Ich möchte das Datum wissen, an dem sich der Benutzer angemeldet hat