如何将pandas dataframe存储的预处理数据应用于word2vec算法
Word2Vec在Pandas数据集上的实现问题排查与解决方案
核心问题排查
- 输入格式错误:Gensim的Word2Vec接收的训练语料必须是嵌套的分词列表,格式要求为
[['词1','词2'], ['词3','词4'], ...],直接传入未拆分的字符串列会导致模型把单个字符当做独立词处理,完全无法输出符合语义的相似词结果 - 训练轮次不足:
iter=1的训练轮次远不足以让模型学习到有效的词共现关系,推荐设置为10~20轮 - 可选优化:
min_count=1会纳入所有仅出现一次的低频词,这类词的共现特征非常少,会拉低整体模型质量,建议根据语料规模调整为3~5
正确实现代码
from gensim.models.word2vec import Word2Vec import pandas as pd import numpy as np # 读取数据 df = pd.read_excel('re_nlp0820.xlsx') # 关键转换步骤:将nlp列的字符串转为分词列表(默认你的预处理结果是空格分隔的分词字符串,若本身已是列表格式仅需调用.tolist()即可) corpus = [text.split() for text in df['nlp'].astype(str)] # 训练模型 model = Word2Vec( sentences=corpus, sg=1, window=3, min_count=3, # 可根据实际语料规模调整阈值 workers=4, epochs=15 # 新版本gensim已将原iter参数更名为epochs,15轮保证训练效果足够 ) model.init_sims(replace=True) # 查询相似词 model_result1 = model.wv.most_similar('국민', topn =20) print(model_result1)
运行前可先打印corpus前3条数据,确认每条都是由单个韩文词组成的列表即可。
内容的提问来源于stack exchange,提问作者Doosan Paik
相关产品推荐
相关产品推荐

