[PYTHON] 100 coups de traitement du langage amateur: 86

C'est un record de défi de 100 langues de traitement knock 2015. L'environnement est Ubuntu 16.04 LTS + Python 3.5.2 : : Anaconda 4.1.1 (64 bits). Cliquez ici pour une liste des coups passés (http://qiita.com/segavvy/items/fb50ba8097d59475f760).

Chapitre 9: Méthode de l'espace vectoriel (I)

enwiki-20150112-400-r10-105752.txt.bz2 Le texte de 105 752 articles est-il échantillonné au hasard au 1/10 des articles composés d'environ 400 mots ou plus parmi les articles de Wikipedia anglais au 12 janvier 2015, compressé au format bzip2. y a-t-il. En utilisant ce texte comme corpus, je souhaite apprendre un vecteur (expression distribuée) qui exprime le sens d'un mot. Dans la première moitié du chapitre 9, le processus d'apprentissage du vecteur de mot est mis en œuvre en le divisant en plusieurs processus en appliquant l'analyse en composantes principales à la matrice de cooccurrence de contexte de mot créée à partir du corpus. Dans la seconde moitié du chapitre 9, le vecteur de mots (300 dimensions) obtenu par apprentissage est utilisé pour calculer la similitude des mots et analyser (analogique).

Notez que si le problème 83 est implémenté de manière obéissante, une grande quantité (environ 7 Go) de stockage principal sera nécessaire. Si vous manquez de mémoire, concevez un processus ou un corpus d'échantillonnage 1/100 enwiki-20150112-400-r100-10576.txt.bz2 Utilisez /nlp100/data/enwiki-20150112-400-r100-10576.txt.bz2).

86. Affichage des vecteurs de mots

Lisez le mot signifiant vecteur obtenu en> 85 et affichez le vecteur "États-Unis". Cependant, notez que "États-Unis" est appelé en interne "États-Unis".

Le code fini:

main.py


# coding: utf-8
import pickle
from collections import OrderedDict
from scipy import io
import numpy as np

fname_dict_index_t = 'dict_index_t'
fname_matrix_x300 = 'matrix_x300'

#Lire le dictionnaire
with open(fname_dict_index_t, 'rb') as data_file:
	dict_index_t = pickle.load(data_file)

#Lecture de la matrice
matrix_x300 = io.loadmat(fname_matrix_x300)['matrix_x300']

# 'United States'Affichage de vecteur de mot
print(matrix_x300[dict_index_t['United_States']])

Résultat de l'exécution:

Résultat d'exécution


[  3.60083662e+00  -7.88128084e-01   2.61994036e-01   6.54614795e+00
   2.77978401e+00  -1.34643069e+00  -4.14679788e-01  -2.36571397e+00
   6.48454026e-01  -1.81798692e-01   8.09115337e-01   1.87915076e+00
   8.89790386e-01   2.91057396e+00  -2.05724474e+00   3.95015466e+00
  -1.16785393e+00  -2.29594086e+00   2.87483314e-01  -3.22295491e-01
   5.27833027e-02   1.32591124e+00   7.19768653e-02  -2.79842130e-01
  -9.13285892e-03  -3.48882763e+00   2.80629048e+00   1.81757020e+00
   1.01202749e+00   4.60392799e+00   4.35931867e-01  -9.47200476e-02
   1.41464997e+00  -1.20815237e+00   1.59811576e+00  -7.90093385e-01
   1.56584573e+00  -5.84883096e-01  -2.98866212e-01  -2.40969175e-01
   2.01912319e+00   1.25522702e+00  -7.00878790e-01   2.54301034e+00
   1.29071807e+00   4.99864524e-01  -2.08366007e-01  -3.34177888e-01
   2.82855195e-01  -2.03289817e+00  -1.83255892e-02   6.94784136e-01
  -1.68611375e-01  -6.54874637e-01   1.68042850e+00   1.89579749e-01
  -4.58780381e-01  -1.39461125e+00   3.96468153e-02   1.07982308e+00
  -2.01647855e+00  -6.31583022e-01   1.17090230e+00  -5.17860032e-01
  -1.54354587e-01  -1.90240747e+00   4.24975361e-01   8.51292185e-01
  -6.75733687e-01  -1.95373302e+00   2.86401504e+00   7.83145997e-01
   3.60769615e-01   2.18517822e-01   9.09328784e-01  -2.31164499e+00
  -5.29962261e-02   4.64315874e-01  -1.14818717e+00   4.37807725e-01
  -8.72936322e-01   2.75689461e-01  -4.98886439e-01  -1.39319595e-01
   1.70818184e+00  -1.42530608e+00   6.12346577e-01  -1.53452675e+00
  -5.78771041e-01   5.74044574e-01   7.92225223e-01  -6.06557682e-01
   4.20942844e-01  -6.44757207e-01   3.01797352e-02  -6.70597324e-01
  -9.94382162e-01  -4.99397126e-01   5.90489124e-01  -3.31522663e-01
  -1.49982021e+00   1.04485370e+00   1.30888498e+00  -7.15508080e-01
   1.19164194e+00   5.10634752e-01  -6.83826569e-01  -1.70204338e+00
  -3.06551527e-01  -7.96233183e-02  -8.78035415e-01   4.85365765e-01
  -1.10059988e-01   1.08476384e+00   3.70272417e-01  -1.66487297e-02
   2.53257364e+00   6.92406581e-01  -1.75201566e+00  -8.92891751e-02
  -1.17317031e+00  -8.04520667e-01  -3.72208639e-01  -5.87968726e-01
   6.33897294e-02  -4.25470101e-03  -1.07647720e-02  -1.43349655e+00
   1.17827771e+00  -3.15443937e-01   1.12394158e+00  -1.26831340e+00
  -9.69257805e-01   2.26313588e-01   2.13254757e-01  -1.03473199e+00
  -9.07201782e-01  -9.96541296e-01  -1.09652409e+00  -1.95598158e+00
  -1.44103220e+00  -6.48140969e-02  -9.82980349e-01  -8.45786568e-02
   5.25832288e-01  -3.41535417e-01   1.67332240e+00   1.04440244e-01
  -4.89830507e-01   1.47568054e-01   1.70129190e+00   1.14422426e+00
   8.26973739e-01   7.07649835e-01   3.63384617e-01  -1.40773247e+00
  -4.84105306e-01  -1.59593171e+00   1.01640270e+00   5.11171720e-01
  -1.81608472e-01   2.09511452e-02  -3.97071523e-01  -3.68544617e-01
  -3.03775580e-01  -7.36060412e-03   3.47125090e-01  -8.10847522e-01
  -5.94050339e-02   1.04952201e+00  -1.81959226e-01   6.39576649e-01
  -2.13652769e+00   2.21193903e-01   2.22833706e+00   3.15404529e-01
   2.94974306e-02   1.81699352e+00  -2.52513345e-01   1.21497867e+00
   1.93127372e+00  -1.40049583e+00  -3.92976140e-01   2.01746604e+00
   3.48323962e-01  -1.27851426e+00  -8.37106664e-01  -6.77627274e-01
  -7.55016169e-01  -7.26088763e-01   8.90254556e-01   2.05618152e+00
   4.35043576e-01  -3.47253538e-01   2.45200710e+00   9.80268307e-01
  -2.27851060e-01   9.84062157e-01  -4.81094077e-02  -2.76938831e-02
  -1.73872055e+00   6.27352186e-01   3.69610149e-01  -2.39375141e+00
   1.20634311e+00   9.16879237e-03   1.88932943e+00  -2.12446506e-01
  -3.73810763e-01  -4.52664744e-01   1.33658447e+00   1.63348846e+00
  -4.04242171e-01   1.24396257e+00   1.13995636e-01   1.56077956e-01
   4.29892571e-01  -2.39289326e-01   7.55437299e-01  -1.35220485e-01
   4.13112184e-01   1.69808593e+00   8.45655139e-01  -3.05053132e-01
   4.26313358e-01   2.01935897e-01  -8.95808938e-02  -1.19706029e-01
   8.58620660e-01   9.59342393e-02   6.90601959e-01  -9.52093790e-02
   2.40653407e+00   1.26924728e+00   1.12005766e+00  -6.04110426e-01
   6.64593790e-01   1.13045660e+00   3.73053754e-01   2.23601520e-01
  -1.83664534e-01  -1.34208051e-01   4.52265923e-01  -1.95617572e-02
  -1.09954830e+00   9.14058618e-01   4.16648849e-01  -1.73232268e-01
   5.54256279e-01   6.43481094e-01  -6.14527995e-01  -9.87756033e-01
   3.97245967e-01  -6.42933978e-02   1.14324979e+00  -5.75599318e-01
   2.42005373e-01  -6.40143947e-01   2.95192002e-01  -7.13038483e-01
   1.85032144e-02  -3.71692793e-01   6.69838053e-01   9.63435135e-01
  -7.09443979e-01   1.12105308e-01   8.40726109e-01   5.08524168e-01
   1.75758555e-01   1.44432107e-01  -2.55235895e-01  -4.54393729e-01
  -5.18120965e-01   4.48156373e-01  -1.44818035e+00   1.51757130e-01
   1.40229798e-01  -8.22383805e-01   5.12547787e-01  -5.62853223e-01
   7.14130048e-01   5.20936783e-01   7.34849473e-01   8.70674020e-01
   4.74195393e-01   7.28794927e-02  -1.08662671e-01  -1.28023393e+00
  -1.21562850e-01  -7.30747051e-02  -6.98371195e-01   9.99403058e-01
   2.21572245e-01   5.06539721e-01  -4.67786005e-02  -2.60209096e-01
   3.52071509e-01  -7.90130862e-01  -4.07834390e-01   2.54070128e-01]

Affichage du vecteur

Problème 85 l'a compressé à 300 dimensions, donc les 300 nombres correspondant à "United_States" sont les vecteurs de mots résultants.

Notez que les éléments et les mots contextuels ne correspondent plus car les éléments sont reconstruits lors de la compression de dimension. C'est juste une ligne de chiffres pour les 300 éléments qui ont été reconstruits pour que l'information ne soit pas diminuée.

C'est tout pour le 87e coup. Si vous avez des erreurs, je vous serais reconnaissant de bien vouloir les signaler.


Recommended Posts

100 coups de traitement du langage amateur: 41
100 coups de traitement du langage amateur: 56
100 coups de traitement du langage amateur: 24
100 coups de traitement du langage amateur: 50
100 coups de traitement du langage amateur: 59
100 coups de traitement du langage amateur: 70
100 coups de traitement du langage amateur: 62
100 coups de traitement du langage amateur: 92
100 coups de langue amateur: 06
100 coups de traitement du langage amateur: 81
100 coups de traitement du langage amateur: 46
100 coups de traitement du langage amateur: 88
100 coups de traitement du langage amateur: 89
100 coups de traitement du langage amateur: 43
100 coups de traitement du langage amateur: 55
100 coups de traitement du langage amateur: 94
100 coups de traitement du langage amateur: 54
100 coups de traitement du langage amateur: 63
100 coups de traitement du langage amateur: 78
100 coups de traitement du langage amateur: 12
100 coups de traitement du langage amateur: 14
100 coups de langue amateur: 08
100 coups de traitement du langage amateur: 42
100 coups de traitement du langage amateur: 73
100 coups de traitement du langage amateur: 75
100 coups de traitement du langage amateur: 98
100 coups de traitement du langage amateur: 83
100 coups de traitement du langage amateur: 95
100 coups de traitement du langage amateur: 32
100 coups de traitement du langage amateur: 96
100 coups de traitement du langage amateur: 87
100 coups de traitement du langage amateur: 72
100 coups de traitement du langage amateur: 79
100 coups de langue amateur: 05
100 coups de langue amateur: 00
100 coups de traitement du langage amateur: 37
100 coups de traitement du langage amateur: 21
100 coups de traitement du langage amateur: 68
100 coups de traitement du langage amateur: 11
100 coups de traitement du langage amateur: 90
100 coups de traitement du langage amateur: 74
100 coups de traitement du langage amateur: 66
100 coups de traitement du langage amateur: 64
100 coups de traitement du langage amateur: 34
100 coups de traitement du langage amateur: 36
100 coups de traitement du langage amateur: 77
100 coups de langue amateur: 01
100 coups de traitement du langage amateur: 16
100 coups de traitement du langage amateur: 27
100 coups de traitement du langage amateur: 10
100 coups de traitement du langage amateur: 82
100 coups de traitement du langage amateur: 69
100 coups de traitement du langage amateur: 53
100 coups de traitement du langage amateur: 18
100 coups de traitement du langage amateur: 35
100 coups de traitement du langage amateur: 91
100 coups de traitement du langage amateur: 15
100 coups de traitement du langage amateur: 38
100 coups de traitement du langage amateur: 86
100 coups de traitement du langage amateur: 44
100 coups de traitement du langage amateur: 65