[PYTHON] 100 Sprachverarbeitung Knock-95 (mit Pandas): Bewertung mit WordSimilarity-353

Dies ist die Aufzeichnung der 95. "Evaluierung mit WordSimilarity-353" von Sprachverarbeitung 100 Knock 2015. Berechnet den ** Spearman-Korrelationskoeffizienten ** für das vorherige Klopfergebnis. Das Ergebnis des selbst erstellten Programms liegt bei 23%, und das Ergebnis bei Verwendung von Gensim liegt bei 52%, was ebenfalls eine große Belastung darstellt.

Referenzlink

Verknüpfung Bemerkungen
095.WordSimilarity-Bewertung bei 353.ipynb Antwortprogramm GitHub Link
100 Klicks Amateur-Sprachverarbeitung:95 Ich bin Ihnen immer mit 100 Sprachverarbeitungsklopfen zu Dank verpflichtet

Umgebung

Art Ausführung Inhalt
OS Ubuntu18.04.01 LTS Es läuft virtuell
pyenv 1.2.15 Ich benutze pyenv, weil ich manchmal mehrere Python-Umgebungen benutze
Python 3.6.9 python3 auf pyenv.6.Ich benutze 9
3.7 oder 3.Es gibt keinen tiefen Grund, keine 8er-Serie zu verwenden
Pakete werden mit venv verwaltet

In der obigen Umgebung verwende ich die folgenden zusätzlichen Python-Pakete. Einfach mit normalem Pip installieren.

Art Ausführung
pandas 0.25.3

Aufgabe

Kapitel 10: Vektorraummethode (II)

In Kapitel 10 werden wir weiter daran arbeiten, Wortvektoren aus dem vorherigen Kapitel zu lernen.

95. Auswertung durch WordSimilarity-353

Berechnen Sie anhand der in> 94 erstellten Daten den Spearman-Korrelationskoeffizienten zwischen der Rangfolge der von jedem Modell ausgegebenen Ähnlichkeit und der Rangfolge der Beurteilung der menschlichen Ähnlichkeit.

Problemergänzung (Spearman-Korrelationskoeffizient)

"Spearmans Rangkorrelationskoeffizient" ist ** ["Spearmans Rangkorrelationskoeffizient" ) ”](Https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%94%E3%82%A2%E3%83%9E%E3%83%B3%E3%81 % AE% E9% A0% 86% E4% BD% 8D% E7% 9B% B8% E9% 96% A2% E4% BF% 82% E6% 95% B0) **, die Phase unter Verwendung des Rankings Die Anzahl der Beziehungen. Häufig gehört ["Pearson's Product Factor Correlation Coefficient"](https://ja.wikipedia.org/wiki/%E3%83%94%E3%82%A2%E3%82%BD%E3%83 % B3% E3% 81% AE% E7% A9% 8D% E7% 8E% 87% E7% 9B% B8% E9% 96% A2% E4% BF% 82% E6% 95% B0) ist kein Ranking Verwenden Sie den Wert, um den Korrelationskoeffizienten zu erhalten. Beide nehmen Werte im Bereich von 1 bis -1 an, und ein Wert von 1 bedeutet eine starke positive Korrelation.

Antworten

Antwortprogramm [095.Evaluation by WordSimilarity-353.ipynb](https://github.com/YoheiFukuhara/nlp100/blob/master/10.%E3%83%99%E3%82%AF%E3%83% 88% E3% 83% AB% E7% A9% BA% E9% 96% 93% E6% B3% 95% 20 (II) / 095.WordSimilarity-353%E3%81%A7%E3%81%AE%E8 % A9% 95% E4% BE% A1.ipynb)

import pandas as pd

def calc_corr(file):
    df = pd.read_table(file, header=None, usecols=[2, 3], names=['original', 'calculated'])
    print(df.corr(method='spearman'))

calc_corr('./094.combine_1.txt')

calc_corr('./094.combine_2.txt')

Kommentar beantworten

Der Code ist sehr kurz, weil ich Pandas benutze. Alles was Sie tun müssen, ist spearman als Methode der Funktion corr anzugeben.

print(df.corr(method='spearman'))

Dies ist das Ergebnis meines eigenen Programms. Der Schnittpunkt von "Original" und "berechnet" ist der resultierende Wert, der 0,227916 beträgt. Es ist tief ...

            original  calculated
original    1.000000    0.227916
calculated  0.227916    1.000000

Dies ist das Ergebnis bei Verwendung von Gensim. Es ist erheblich auf 0,516526 gestiegen.

            original  calculated
original    1.000000    0.516526
calculated  0.516526    1.000000

Recommended Posts

100 Sprachverarbeitung Knock-95 (mit Pandas): Bewertung mit WordSimilarity-353
Sprachverarbeitung 100 Knocks-31 (mit Pandas): Verben
100 Sprachverarbeitung Knock-38 (mit Pandas): Histogramm
100 Sprachverarbeitung Knock-33 (mit Pandas): Sahen Nomen
100 Sprachverarbeitung Knock-35 (mit Pandas): Nomenklatur
100 Sprachverarbeitung Knock-39 (mit Pandas): Zipf-Gesetz
100 Sprachverarbeitung Knock-34 (mit Pandas): "B von A"
100 Sprachverarbeitung Knock-90 (mit Gensim): Lernen mit word2vec
100 Sprachverarbeitung Knock-20 (unter Verwendung von Pandas): Lesen von JSON-Daten
100 Sprachverarbeitung Knock-32 (mit Pandas): Prototyp des Verbs
100-Sprach-Verarbeitung Knock-98 (unter Verwendung von Pandas): Clustering nach Ward-Methode
100 Sprachverarbeitung Knock-99 (mit Pandas): Visualisierung durch t-SNE
100 Sprachverarbeitung Knock: Kapitel 2 UNIX-Befehlsgrundlagen (mit Pandas)
100 Sprachverarbeitung Knock-83 (mit Pandas): Messung der Wort- / Kontexthäufigkeit
100 Sprachverarbeitung Knock-30 (unter Verwendung von Pandas): Lesen der Ergebnisse der morphologischen Analyse
100 Sprachverarbeitungsklopfen mit Python (Kapitel 1)
100 Sprachverarbeitungsklopfen mit Python (Kapitel 3)
100 Sprachverarbeitung Knock-73 (mit Scikit-Learn): Lernen
100 Sprachverarbeitung Knock-74 (mit Scicit-Learn): Vorhersage
100 Sprachverarbeitung Knock-84 (mit Pandas): Erstellen einer Wortkontextmatrix
100 Sprachverarbeitungsklopfen (2020): 28
100 Sprachverarbeitungsklopfen (2020): 38
100 Sprachverarbeitung klopfen 00 ~ 02
100 Sprachverarbeitung Knock-97 (mit Scicit-Learn): k-bedeutet Clustering
Ich habe mit GiNZA v3.1 Kapitel 4 100 Sprachverarbeitungsklopfen 2020 durchgeführt
100 Sprachverarbeitung Knock-71 (mit Stanford NLP): Stoppwort
100 Sprachverarbeitungsklopfen mit Python (Kapitel 2, Teil 2)
100 Sprachverarbeitungsklopfen mit Python (Kapitel 2, Teil 1)
Sprachverarbeitung 100 Klopfen-88: 10 Wörter mit hoher Ähnlichkeit
100 Sprachverarbeitung klopfen 2020 [00 ~ 39 Antwort]
100 Sprachverarbeitung klopfen 2020 [00-79 Antwort]
100 Sprachverarbeitung klopfen 2020 [00 ~ 69 Antwort]
100 Sprachverarbeitung Knock 2020 Kapitel 1
100 Amateur-Sprachverarbeitungsklopfen: 17
100 Sprachverarbeitung klopfen 2020 [00 ~ 49 Antwort]
Datensätze mit Pandas verarbeiten (1)
100 Sprachverarbeitung Knock-52: Stemming
100-Sprach-Verarbeitung Knock-79 (mit Scikit-Learn): Präzisions-Recall-Grafikzeichnung
100 Sprachverarbeitung Knock Kapitel 1
100 Amateur-Sprachverarbeitungsklopfen: 07
100 Sprachverarbeitung Knock 2020 Kapitel 3
100 Sprachverarbeitung Knock 2020 Kapitel 2
100 Sprachverarbeitung Knock-75 (mit Scicit-Learn): Gewicht der Identität
100 Amateur-Sprachverarbeitungsklopfen: 09
100 Amateur-Sprachverarbeitungsklopfen: 47
100 Sprachverarbeitung Knock-53: Tokenisierung
100 Amateur-Sprachverarbeitungsklopfen: 97
100 Sprachverarbeitung klopfen 2020 [00 ~ 59 Antwort]
100 Amateur-Sprachverarbeitungsklopfen: 67
100 Sprachverarbeitung Knock-72 (unter Verwendung von Stanford NLP): Identitätsextraktion
100 Sprachverarbeitung Knock-92 (mit Gensim): Anwendung auf Analogiedaten
Sprachverarbeitung 100 Knock-80 (ersetzt durch regulären Ausdruck): Korpusformatierung
Verarbeiten Sie CSV-Daten mit Python (Zählverarbeitung mit Pandas)
100 Sprachverarbeitung Knock-37 (mit Pandas): Top 10 der häufigsten Wörter
Lernen Sie mit "Google Colaboratory" ganz einfach 100 Sprachverarbeitungsklopfen 2020.
100 Sprachverarbeitung Knock-51: Wortausschnitt
100 Sprachverarbeitung Knock-58: Extraktion von Taple
100 Sprachverarbeitung Knock-57: Abhängigkeitsanalyse
100 Sprachverarbeitung Knock-50: Satzumbruch
100 Sprachverarbeitung Knock Kapitel 1 (Python)
100 Sprachverarbeitung Knock Kapitel 2 (Python)