Aidemy 2020/10/30
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 ・ ・
・ Um eine "Wortkontinuitätsanalyse" durchzuführen, werden Wortdaten als Vorbereitung quantifiziert.
Erstellen Sie nach dem Teilen des Datensatzes zunächst ein __Wortwörterbuch (Liste) __ mit dem ID-Satz, um jedem Wort eine ID zuzuweisen und zu quantifizieren. Von diesen möchten wir die Wörter in absteigender Reihenfolge ihres Auftretens nummerieren, also zählen wir die Anzahl der Vorkommen von __Wörtern und sortieren sie in absteigender Reihenfolge __.
Zählen Sie die Anzahl der Wörter mit __Counter () __ und __itertools.chain () __. __Counter (itertools.chain (* Liste der zu zählenden Wortdaten)) __
-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)
-Nachdem das Wörterbuch erstellt wurde, führen Sie die beabsichtigte __ "Quantifizierung des Datensatzes" __ aus.
-Der Code lautet wie folgt.
・ 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.
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.
-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
·Code
・ 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)
・ 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
·Ergebnis
・ 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