Il s'agit de l'enregistrement de la 95e "Évaluation avec WordSimilarity-353" de Traitement de la langue 100 knock 2015. Calcule le ** coefficient de corrélation de Spearman ** pour le résultat de frappe précédent. Le résultat du programme auto-conçu est d'environ 23%, et le résultat lors de l'utilisation de Gensim est de 52%, ce qui est également un gros drain.
Lien | Remarques |
---|---|
095.WordSimilarity-Évaluation à 353.ipynb | Lien GitHub du programme de réponse |
100 coups de traitement du langage amateur:95 | Je vous suis toujours redevable de 100 coups de traitement linguistique |
type | version | Contenu |
---|---|---|
OS | Ubuntu18.04.01 LTS | Il fonctionne virtuellement |
pyenv | 1.2.15 | J'utilise pyenv car j'utilise parfois plusieurs environnements Python |
Python | 3.6.9 | python3 sur pyenv.6.J'utilise 9 3.7 ou 3.Il n'y a aucune raison profonde de ne pas utiliser la série 8 Les packages sont gérés à l'aide de venv |
Dans l'environnement ci-dessus, j'utilise les packages Python supplémentaires suivants. Installez simplement avec pip ordinaire.
type | version |
---|---|
pandas | 0.25.3 |
Au chapitre 10, nous continuerons à travailler sur l'apprentissage des vecteurs de mots du chapitre précédent.
À l'aide des données créées en> 94, calculez le coefficient de corrélation de Spearman entre le classement de la sortie de similarité par chaque modèle et le classement du jugement de similarité humaine.
"Coefficient de corrélation de rang de Spearman" est ** ["Coefficient de corrélation de rang de Spearman" ) ”](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) **, la phase utilisant le classement Le nombre de relations. J'entends souvent ["coefficient de corrélation du facteur de produit de Pearson"](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) n'est pas un classement Utilisez la valeur pour obtenir le coefficient de corrélation. Les deux prennent des valeurs comprises entre 1 et -1, et une valeur de 1 signifie une forte corrélation positive.
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')
Le code est très court car j'utilise des pandas. Spécifiez simplement spearman
dans la méthode de la fonction corr
.
print(df.corr(method='spearman'))
C'est le résultat de mon propre programme. L'intersection de «original» et «calculé» est la valeur résultante, qui est de 0,227916. C'est bas ...
original calculated
original 1.000000 0.227916
calculated 0.227916 1.000000
C'est le résultat lors de l'utilisation de Gensim. Il a considérablement augmenté à 0,516526.
original calculated
original 1.000000 0.516526
calculated 0.516526 1.000000
Recommended Posts