如何在word2vec上应用pandas数据



我正在尝试使用W2V。我将我的预处理数据保存为一个pandas数据框架,我想对我的预处理数据应用word2vec算法。

这是我的数据。http://naver.me/IFjLAHld

这是我的代码。

from gensim.models.word2vec import Word2Vec
import pandas as pd
import numpy as np
df = pd.read_excel('re_nlp0820.xlsx')
model = Word2Vec(df['nlp'],
sg=1,           
window=3,       
min_count=1,     
workers=4,       
iter=1)        
model.init_sims(replace=True) 
model_result1 = model.wv.most_similar('국민', topn =20)  
print(model_result1)

请帮帮我

首先,您需要将传递给Word2Vec实例的数据转换为嵌套列表其中每个列表包含文本的标记形式. 您可以这样做:

from gensim.models.word2vec import Word2Vec
import pandas as pd
import numpy as np
import nltk
df = pd.read_excel('re_nlp0820.xlsx')
nlp = [nltk.word_tokenize(i) for i in df['nlp']]
model = Word2Vec(nlp,
sg=1,           
window=3,       
min_count=1,     
workers=4,       
iter=1)        
model.init_sims(replace=True) 
model_result1 = model.wv.most_similar('국민', topn =20)  
print(model_result1)

Gensim的Word2Vec需要一个可重复迭代的序列作为其训练语料库,其中每个项目都是一个单词列表。

df['nlp']可能只是一个字符串序列,所以它的格式不正确。你应该确保它的每一项都被分解成一个Pythonlist,其中包含你想要的单词作为单独的字符串。

(单独:min_count=1对于这个算法来说几乎总是一个坏主意,如果丢弃使用示例很少的罕见词,则会得到更好的结果。而且,您根本不需要调用.init_sims()。)

相关内容

  • 没有找到相关文章

最新更新