1
다른 단어 간의 유사성을 간단한 벡터 공간 그래프에 플로팅하고 싶습니다. gensim에서 제공 한 word2vec
모델을 사용하여 계산했지만 문헌에서 그래픽 예제를 찾을 수 없습니다. 은행, 금융, 시장, 부동산, 석유, 에너지, 비즈니스와 경제 : 간단한 벡터 공간 그래프에서 Word2Vec에 의해 주어진 단어 유사도의 그래픽 그림
## Libraries to download
from nltk.tokenize import RegexpTokenizer
from nltk.corpus import stopwords
from nltk.stem.porter import PorterStemmer
from gensim import corpora, models
import gensim
import json
import nltk
import re
import pandas
appended_data = []
#for i in range(20014,2016):
# df0 = pandas.DataFrame([json.loads(l) for l in open('SDM_%d.json' % i)])
# appended_data.append(df0)
for i in range(2005,2016):
if i > 2013:
df0 = pandas.DataFrame([json.loads(l) for l in open('SDM_%d.json' % i)])
appended_data.append(df0)
df1 = pandas.DataFrame([json.loads(l) for l in open('Scot_%d.json' % i)])
df2 = pandas.DataFrame([json.loads(l) for l in open('APJ_%d.json' % i)])
df3 = pandas.DataFrame([json.loads(l) for l in open('TH500_%d.json' % i)])
df4 = pandas.DataFrame([json.loads(l) for l in open('DRSM_%d.json' % i)])
appended_data.append(df1)
appended_data.append(df2)
appended_data.append(df3)
appended_data.append(df4)
appended_data = pandas.concat(appended_data)
# doc_set = df1.body
doc_set = appended_data.body
## Building the deep learning model
import itertools
sent_detector = nltk.data.load('tokenizers/punkt/english.pickle')
sentenized = doc_set.apply(sent_detector.tokenize)
sentences = itertools.chain.from_iterable(sentenized.tolist()) # just to flatten
from gensim.models import word2vec
result = []
for sent in sentences:
result += [nltk.word_tokenize(sent)]
model = gensim.models.Word2Vec(result)
, 나는 다음과 같은 단어를 배치 같은 것입니다 : 다음과 같이 내 코드입니다. 내가 쉽게 기능을 가진 단어의 이러한 쌍 유사성 계산할 수 있습니다
model.similarity('bank', 'property')
0.25089364531360675
주셔서 감사합니다 Word2Vec 모델에있는 모든 단어 벡터를 플로팅 많은
'gensim.models.Word2Vec'가 기본적으로 100 차원 단어 벡터를 생성한다는 점을 고려하십시오. 벡터의 위치를 2 차원 또는 3 차원으로 플롯하려는 경우 먼저 치수를 줄여야합니다. –
아주 좋은 제안 @ Alvaro. 나는 그것을 고려하지 않았다. 그럼에도 불구하고 function model.similarity에 의해 검색된 결과를 기반으로 평면에서 거리를 그리는 간단한 방법을 기대합니다. –
치수를 줄이는 것은 Mikilov가 말한 것입니다. [그들의 논문에서] (https://papers.nips.cc/paper/5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf) (그림 2 참조). 불행히도 다른 방법이 있다고 생각하지 않습니다. –