Aidemy 2020/10/29
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
・ 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 __ 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)
-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.
Als Wert, der das Gewicht zu diesem Zeitpunkt bestimmt, wird __ "TF-IDF" __ verwendet, der durch Multiplizieren der Worthäufigkeit (TF) mit dem Wert von IDF erhalten wird. -IDF wird durch das Verhältnis der Gesamtzahl der Dokumente zur Anzahl der Dokumente berechnet, in denen das Wort vorkommt. Je kleiner die Anzahl der __ angezeigten Dokumente ist, desto größer ist der IDF-Wert. __ Das heißt, das Gewicht (TF-IDF) nimmt zu.
Führen Sie die gewichtete Word-Dokumentmatrix wie folgt aus. TfidfVectorizer(use_idf=)
Geben Sie True oder False für "use_idf" an und geben Sie __ "an, ob idf für die Gewichtung verwendet wird" __.
Wenn Sie ähnlich wie CountVectorizer () auch nur ein Zeichen als Wort behandeln möchten, geben Sie __ "token_pattern" __ an.
Danach können Sie genau wie CountVectorizer () __ "fit_transform ()" __ verwenden, um ein Array von Wortvorkommen zu erstellen.
・ Dieses Mal erstellen wir ein unbeaufsichtigtes Modell __ mit der Ähnlichkeit des Erscheinungsbilds von __Wörtern als Feature.
・ 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)
-__ Ä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
-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)
Diese Zeit ist vorbei. Vielen Dank für das Lesen bis zum Ende.
Recommended Posts