[PYTHON] Verarbeitung natürlicher Sprache 2 Wortähnlichkeit

Aidemy 2020/10/29

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! Diesmal wird es ein Beitrag sein. Freut mich, dich kennenzulernen.

Was diesmal zu lernen ・ Über Wortähnlichkeit ・ Kennen Sie die Eigenschaften der Sprache

Wortähnlichkeit

Morphologische Analyse des Inhalts von Sprachdaten

・ Dieses Mal lernen wir __ "Eigenschaften der Sprache" aus __ "Wortähnlichkeit" für die Sprachdaten des Korpus. Dazu müssen wir zuerst __ "Wortähnlichkeit" __ erhalten. -In diesem Abschnitt führen wir eine Vorverarbeitung durch, um "Wortähnlichkeit" zu erhalten. Insbesondere ist das Flag "O", dh von den Äußerungsdaten werden nur __natürliche Äußerungen morphologisch analysiert __.

·Verfahren (1) Von dem in "Verarbeitung natürlicher Sprache 1 Extraktion von Analysedaten" erstellten "df_label_text" werden nur diejenigen mit dem __-Flag "O" __ extrahiert. (df_label_text_O) (2) Konvertieren Sie das extrahierte df_label_text_O (NumPy-Array) in eine Python-Liste mit ".tolist ()" und entfernen Sie die Zahlen und Alphabete Zeile für Zeile mit __re.sub () __. (Reg_row) ③ morphologische Analyse von reg_row mit __Janome __. Von diesen wird nur das Oberflächensystem (Wort) zur Liste "morpO" hinzugefügt.

・ Code![Screenshot 2020-10-18 17.52.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/1ddf364b-1a9b-8b5b- 3d0f-ec0417ab21dd.png)

Word-Dokumentmatrix

-__ Word-Dokumentmatrix __ ist eine der Methoden zum Konvertieren von Wortdaten in numerische Daten. ・ Dies ist ein numerischer Wert für die Häufigkeit von Wörtern, die in documents erscheinen. Um diese Wortdokumentmatrix auszuführen, wurde das Dokument durch morphologische Analyse in Wörter unterteilt. -Für die Ausführung verwenden Sie __CountVectorizer () __ von scicit-learn.

-Für das CountVectorizer () -Objekt (CV) kann die Anzahl der Vorkommen von Wörtern in ein Array umgewandelt werden, indem __CV.fit_transform ('Zeichenfolge zum Erstellen einer Wortdokumentmatrix') __ ausgeführt wird.

-Code Ausgabe Ergebnis (nur Teil) スクリーンショット 2020-10-18 18.39.40.png

Gewichtete Word-Dokumentmatrix

-In der obigen Wortdokumentmatrix nimmt die Häufigkeit des Auftretens universeller Wörter wie __ "I" und "desu" unvermeidlich zu. __ Bei dieser Rate werden Wörter, die nur in einem bestimmten Dokument vorkommen, nicht hervorgehoben, und "Sprachmerkmale" können nicht richtig extrahiert werden. ・ Verwenden Sie in einem solchen Fall eine Technik wie __ "Reduzieren Sie das Gewicht universeller Wörter, die in einem Dokument vorkommen, und erhöhen Sie das Gewicht von Wörtern, die nur in einem bestimmten Dokument vorkommen" __ Dokumentmatrizen werden häufig erstellt und dies wird als __ "gewichtete Wortdokumentmatrix" __ bezeichnet.

Berechnen Sie die Wortähnlichkeit

・ Dieses Mal erstellen wir ein unbeaufsichtigtes Modell __ mit der Ähnlichkeit des Erscheinungsbilds von __Wörtern als Feature.

Analysieren Sie die Eigenschaften der Sprache

Erstellen einer Ähnlichkeitsliste

・ Die Vorgehensweise des folgenden Codes (1) _ Erstellen Sie eine gewichtete Wortdokumentmatrix __ und erstellen Sie dann eine Matrix, die den __Korrelationskoeffizienten __ (corr_matrixO) berechnet, und konvertieren Sie ihn in das __Listenformat __. (Corr_stackO) (2) Von diesen werden Index (Wortmenge) und Wert (Korrelationskoeffizient) extrahiert, deren Korrelationskoeffizient "0,5 bis 1,0" beträgt, um __positiv korrelierte (ähnliche) Paare zu extrahieren. (Wert von) wird extrahiert, __ verkettet und __ angezeigt. ![Screenshot 2020-10-18 21.55.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/328d870b-566e-41ea-e394- 85aa33954369.png)

Erstellen eines Ähnlichkeitsnetzwerks

-__ Ähnlichkeitsnetzwerk__ ist kurz gesagt ein Diagramm und eine Visualisierung der Ähnlichkeitsbeziehung.

-Das erstellte Diagramm kann angezeigt werden, indem die optimale Anzeigeposition mit __pos = nx.spling_layout (Diagramm) __ berechnet, mit __nx.draw_networkx (Diagramm, pos) __ und dann mit plt.show () gezeichnet wird.

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

Ähnlichkeitsnetzwerkfunktionen

-Obwohl ich das Diagramm ausgeben konnte, ist es schwierig, die Merkmale auf den ersten Blick im obigen Diagramm zu erfassen. ・ Daher werden wir einen neuen Index festlegen und eine quantitative Beurteilung vornehmen. ・ Derzeit werden verschiedene Indikatoren verwendet, die hier jedoch nicht näher erläutert werden. Die diesmal verwendeten Indikatoren heißen __ "durchschnittlicher Clusterkoeffizient" __ und __ "Vermittlungszentralität" __. -Der Cluster-Koeffizient gibt die Verbindungsdichte zwischen __Wörtern __ an. Wenn dieser Durchschnitt hoch ist, kann gesagt werden, dass das gesamte Netzwerk ebenfalls dicht ist __. Die Mediationszentralität ist ein Wert, der angibt, wie viele "Knoten (eines der Korrelationspaare)" auf dem kürzesten Weg zwischen allen Knoten enthalten sind. Je größer der Wert, desto effizienter werden Informationen übertragen. Man kann sagen, dass es sich um einen Knoten mit hoher Vermittlung und Zentralität handelt.

・ Die Berechnung der Mediationszentralität erfolgt wie folgt. __nx.betweenness_centrality (Grafik, Gewicht = Keine) __

・ Code![Screenshot 2020-10-19 11.21.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/261279ff-7db1-c716- 2b08-436df546fbd4.png)

Extrahieren Sie Ähnlichkeitsnetzwerkthemen

スクリーンショット 2020-10-19 12.01.32.png

Zusammenfassung

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

Recommended Posts

Verarbeitung natürlicher Sprache 2 Wortähnlichkeit
Verarbeitung natürlicher Sprache 3 Wortkontinuität
Sprachverarbeitung 100 Knock-87: 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
100 Sprachverarbeitung Knock-51: Wortausschnitt
Verarbeitung natürlicher Sprache 1 Morphologische Analyse
Studieren Sie die Verarbeitung natürlicher Sprache mit Kikagaku
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
100 Sprachverarbeitung Knock 2020 Kapitel 7: Word Vector
Vorbereitung zum Starten der Verarbeitung natürlicher Sprache
Installationszusammenfassung des Analysators für die Verarbeitung natürlicher Sprache
100 Sprachverarbeitungsklopfen (2020): 40
100 Sprachverarbeitungsklopfen (2020): 32
100 Sprachverarbeitungsklopfen (2020): 35
100 Sprachverarbeitungsklopfen (2020): 47
100 Sprachverarbeitungsklopfen (2020): 39
100 Sprachverarbeitungsklopfen (2020): 22
100 Sprachverarbeitungsklopfen (2020): 26
100 Sprachverarbeitungsklopfen (2020): 34
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): 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
Sprachverarbeitung 100 Klopfen-88: 10 Wörter mit hoher Ähnlichkeit
100 Sprachverarbeitungsklopfen (2020): 36
3. Verarbeitung natürlicher Sprache durch Python 2-2. Koexistenznetzwerk [mecab-ipadic-NEologd]
[Python] Ich habe mit der Verarbeitung natürlicher Sprache ~ Transformatoren ~ gespielt
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