[PYTHON] Verarbeitung natürlicher Sprache 3 Wortkontinuität

Aidemy 2020/10/30

Einführung

Hallo, es ist ja! Ich bin eine knusprige Literaturschule, aber ich war an den Möglichkeiten der KI interessiert, also ging ich zur AI-spezialisierten Schule "Aidemy", um zu studieren. Ich möchte das hier gewonnene Wissen mit Ihnen teilen und habe es in Qiita zusammengefasst. Ich freue mich sehr, dass viele Menschen den vorherigen zusammenfassenden Artikel gelesen haben. Vielen Dank! Dies ist der dritte Beitrag zur Verarbeitung natürlicher Sprache. Freut mich, dich kennenzulernen.

Was diesmal zu lernen ・ ・

Vorbereitung auf Wortkontinuität

Erstellen eines Wortwörterbuchs

・ Um eine "Wortkontinuitätsanalyse" durchzuführen, werden Wortdaten als Vorbereitung quantifiziert.

-Counter () zählt die Anzahl der Elemente. Da das Ergebnis jedoch in mehreren Dimensionen zurückgegeben wird, kann nicht auf jedes Element einzeln zugegriffen werden. Dies wird mithilfe von __itertools.chain () __ auf eine Dimension zurückgegeben. Fügen Sie __ "*" __ zur mehrdimensionalen Liste hinzu, die an diese itertools.chain () übergeben wird.

-Verwenden Sie __most_common (n) __, um in absteigender Reihenfolge zu sortieren. Wenn n angegeben ist, wird die Anzahl der Taples in absteigender Reihenfolge zurückgegeben.

・ Sobald Sie dies getan haben, können Sie ein Wortwörterbuch erstellen, indem Sie jeder der sortierten Erscheinungszähllisten eine ID zuweisen und diese in einem leeren Wörterbuch speichern.

・ Code![Screenshot 2020-10-19 12.50.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/27647f46-ce71-8d11- 4745-85d91fbe0912.png)

Konvertieren Sie Wortdaten in numerische Daten

-Nachdem das Wörterbuch erstellt wurde, führen Sie die beabsichtigte __ "Quantifizierung des Datensatzes" __ aus.

-Der Code lautet wie folgt. スクリーンショット 2020-10-19 13.02.59.png

・ Dieser Code ist leicht zu verstehen, wenn Sie ihn von hinten betrachten. Erstens gibt der Teil __ "für Waka in Wakati O" __ an, dass jede Wortliste (durch einen Satz getrennt) des Datensatzes "WakatiO" in Waka gespeichert ist. Als nächstes zeigt __ "für Wort in Waka" __ an, dass die Wortliste in jedes Wort unterteilt und im Wort gespeichert ist.

Merkmalsextraktion aus der Wortkontinuität

N-gram -__ N-Gramm__ ist ein Modell, das beim Extrahieren von Themen aus Text verwendet wird und die Methode zum Teilen von __text in N aufeinanderfolgende Zeichen verwendet. ・ Wenn für N Unterteilungen eine Zeichenfolge "aiueo" vorhanden ist, wird N.=1 "1-Für "Gramm" "Ah|ich|U.|e|Unterteilt in "O" und "2-Für "Gramm" "Ahich|ichU.|U.e|eお」と分割される。 ・ Ich habe versucht, Themen aus der "Word-Dokumentmatrix" zu extrahieren, die in "Natural Language Processing 2" angezeigt wurde, aber das ist __ "Wort-Koexistenz (erscheint es im selben Satz)" __ Im Gegensatz dazu steht N-Gramm für __ "Wortkontinuität (in welcher Reihenfolge)" __.

list = []
word = ['Gut','Wetter','ist','Hallo','。']
#3-Erstellen eines Gramm-Modells
for i range(len(word)-2):
    list.append([word[i],word[i+1],word[i+2]])
print(list)
#[['Gut','Wetter','ist']['Wetter','ist','Hallo']['ist','Hallo','。']]

-Für __ "len (Wort) -2" __ geben Sie dieselbe Zahl an, damit "i + 2" darunter die Länge des Wortes nicht überschreitet.

2-Erstellen einer Grammliste

-Für das obige N-Gramm wird durch Erstellen einer 2-Gramm-Liste aus "wakatiO_n" __ die Anzahl der Vorkommen (Gewichte) der beiden Knoten berechnet __.

·Code スクリーンショット 2020-10-19 16.15.39.png

2-Erstellen Sie ein Gramm-Netzwerk

·Code スクリーンショット 2020-10-19 16.51.44.png

・ Ergebnis![Screenshot 2020-10-19 16.52.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/7770095a-ae2c-b57d- 92b7-b7b396299952.png)

2-Gramm-Netzwerkfunktionen

Sehen Sie die Wirkung jedes Wortes

・ Um zu sehen, wie sich die einzelnen Wörter gegenseitig beeinflussen, visualisieren Sie __ "Auftragsverteilung" __. -Im Fall eines gerichteten Graphen wird es in "von anderen Wörtern beeinflusst" __ in der Reihenfolge __ und "in anderen Worten beeinflusst" __ in der Reihenfolge __ unterteilt. -Überprüfen Sie die Eingabereihenfolge mit der Methode __in_degree (weight) __. Es wird in Form von (Knotennummer, Eingabereihenfolge) zurückgegeben.

·Code スクリーンショット 2020-10-19 17.20.57.png

·Ergebnis スクリーンショット 2020-10-19 17.21.32.png

Zusammenfassung

・ Um die Merkmale der __Wortkontinuität __ zu verstehen, schreiben Sie zuerst __ gesprochenen Text __ und erstellen Sie dann ein __Wortwörterbuch __, um __Daten in numerische Werte umzuwandeln. __. -Konvertieren Sie die in numerische Werte konvertierten Daten in eine N-Gramm-Liste, berechnen Sie die Anzahl der Vorkommen jeder Wortkombination __ und erstellen Sie daraus ein gerichtetes Diagramm __. ・ Da es schwierig ist, die Merkmale zu verstehen, wenn der Graph gerichtet bleibt, werden die Merkmale quantitativ erfasst, indem __ "durchschnittlicher Clusterkoeffizient" __ und __ "Vermittlungszentralität" __ berechnet werden.

Diese Zeit ist vorbei. Vielen Dank für das Lesen bis zum Ende.

Recommended Posts

Verarbeitung natürlicher Sprache 3 Wortkontinuität
Verarbeitung natürlicher Sprache 2 Wortähnlichkeit
Python: Verarbeitung natürlicher Sprache
3. Verarbeitung natürlicher Sprache durch Python 1-1. Word N-Gramm
RNN_LSTM2 Verarbeitung natürlicher Sprache
Verarbeitung natürlicher Sprache 1 Morphologische Analyse
Sprachverarbeitung 100 Knock-87: Wortähnlichkeit
Studieren Sie die Verarbeitung natürlicher Sprache mit Kikagaku
100 Klicks in der Verarbeitung natürlicher Sprache Kapitel 4 Kommentar
Verarbeitung natürlicher Sprache für vielbeschäftigte Menschen
[Verarbeitung natürlicher Sprache] Vorverarbeitung mit Japanisch
100 Sprachverarbeitung Knock-82 (Kontextwort): Kontextextraktion
Künstliche Sprache Logivan und Verarbeitung natürlicher Sprache (Verarbeitung künstlicher Sprache)
Sprachverarbeitung 100 knock-86: Wortvektoranzeige
[Sprachverarbeitung 100 Schläge 2020] Kapitel 7: Wortvektor
Vorbereitung zum Starten der Verarbeitung natürlicher Sprache
Installationszusammenfassung des Analysators für die Verarbeitung natürlicher Sprache
100 Sprachverarbeitungsklopfen 03 ~ 05
100 Sprachverarbeitungsklopfen (2020): 40
100 Sprachverarbeitungsklopfen (2020): 32
100 Sprachverarbeitungsklopfen (2020): 47
Verarbeiten Sie den Namen der Yugioh-Karte in natürlicher Sprache - Yugiou Data Science 2. NLP
100 Sprachverarbeitungsklopfen (2020): 22
100 Sprachverarbeitungsklopfen (2020): 26
100 Sprachverarbeitungsklopfen (2020): 34
100 Klopfen der Verarbeitung natürlicher Sprache Kapitel 1 (Vorbereitungsbewegung)
100 Sprachverarbeitungsklopfen (2020): 28
100 Sprachverarbeitungsklopfen (2020): 42
100 Sprachverarbeitungsklopfen (2020): 29
100 Sprachverarbeitungsklopfen (2020): 49
100 Sprachverarbeitungsklopfen 06 ~ 09
100 Sprachverarbeitungsklopfen (2020): 43
100 Sprachverarbeitungsklopfen (2020): 24
100 Sprachverarbeitungsklopfen (2020): 45
3. Verarbeitung natürlicher Sprache durch Python 2-1. Netzwerk für das gleichzeitige Auftreten
100 Sprachverarbeitungsklopfen (2020): 10-19
[WIP] Vorverarbeiten von Notizen in der Verarbeitung natürlicher Sprache
100 Sprachverarbeitungsklopfen (2020): 30
100 Sprachverarbeitungsklopfen (2020): 00-09
100 Sprachverarbeitungsklopfen (2020): 31
100 Sprachverarbeitungsklopfen (2020): 38
100 Sprachverarbeitungsklopfen (2020): 48
100 Sprachverarbeitungsklopfen (2020): 44
100 Sprachverarbeitungsklopfen (2020): 41
100 Sprachverarbeitungsklopfen (2020): 37
100 Sprachverarbeitung klopfen 00 ~ 02
100 Sprachverarbeitungsklopfen (2020): 25
100 Sprachverarbeitungsklopfen (2020): 23
100 Sprachverarbeitungsklopfen (2020): 33
Ich habe versucht, natürliche Sprache mit Transformatoren zu verarbeiten.
100 Sprachverarbeitungsklopfen (2020): 20
100 Sprachverarbeitungsklopfen (2020): 27
Fallstudie zur Verarbeitung natürlicher Sprache: Worthäufigkeit in 'Anne mit einem E'
100 Sprachverarbeitungsklopfen (2020): 46
100 Sprachverarbeitungsklopfen (2020): 21
Praktische Warenmitteilung zur Verarbeitung natürlicher Sprache
100 Sprachverarbeitungsklopfen (2020): 36
Python: Tiefes Lernen in der Verarbeitung natürlicher Sprache: Grundlagen
Lassen Sie uns die Verarbeitung natürlicher Sprache mit der COTOHA-API genießen
Unerträgliche Aufmerksamkeitsmangel bei der Verarbeitung natürlicher Sprache
100 Amateur-Sprachverarbeitungsklopfen: 41