问题描述
晚上好,我有一个相对简单的问题,主要是因为我对 Python 缺乏经验。我想为单词列表提取单词嵌入。我在这里创建了一个简单的列表:
list_word = [['Word'],['ant'],['bear'],['beaver'],['bee'],['bird']]
然后加载 gensim 和其他需要的库:
#import tweepy # Obtain Tweets via API
import re # Obtain expressions
from gensim.models import Word2Vec #Import gensim Word2Fec
现在,当我使用 Word2Vec 函数时,我运行以下命令:
#extract embedding length 12
model = Word2Vec(list_word,min_count = 3,size = 12)
print(model)
当模型运行时,我看到词汇大小为 1,而它不应该是。输出如下: Word2Vec(vocab=1,size=12,alpha=0.025)
我认为导入的数据格式不正确,可以使用一些建议甚至示例代码来了解如何将其转换为正确的格式。感谢您的帮助。
解决方法
您的 list_data
,6 个句子,每个句子都有一个单词,不足以训练 Word2Vec
,这需要大量不同的真实文本数据。除其他问题外:
- 由于
min_count=3
设置,仅出现一次的单词将被忽略(并且降低该参数不是一个好主意) - 单词句子没有算法使用的邻近词上下文
- 获得好的“密集”向量需要远大于向量维度的词汇量,以及每个单词与其他单词使用的许多不同示例
尝试使用更大的数据集,您会看到更真实的结果。此外,在 INFO 级别启用 Python 日志记录将在代码运行时显示很多进展 - 并且可能会提示问题,因为您注意到发生的步骤有或没有合理的计数和延迟。