Python 从word2vec中提取单词嵌入

Python 从word2vec中提取单词嵌入,python,gensim,word2vec,Python,Gensim,Word2vec,晚上好,我有一个相对简单的问题,主要是因为我对python缺乏经验。我想为单词列表提取单词嵌入。在这里,我创建了一个简单的列表: list_word = [['Word'], ['ant'], ['bear'], ['beaver'], ['bee'], ['bird']] 然后加载gensim和其他所需的库: #import tweepy # Obtain Tweets via API import re # Obtain expre

晚上好,我有一个相对简单的问题,主要是因为我对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)
当模型运行时,我看到vocab大小是1,而它不应该是1。输出如下: Word2Vec(声音=1,大小=12,字母=0.025)


我认为导入的数据格式不正确,可以使用一些建议甚至示例代码来说明如何将其转换为正确的格式。感谢您的帮助。

您的
列表数据
,每个6句话,一个单词,不足以训练
Word2Vec
,这需要大量不同的真实文本数据。除其他问题外:

  • 由于
    minu count=3
    设置,只出现一次的单词将被忽略(&降低该参数不是一个好主意)
  • 单字句子没有算法使用的相邻单词上下文
  • 获得好的“密集”向量需要比向量维度大得多的词汇表,以及每个单词与其他单词的用法的许多不同示例

尝试使用更大的数据集,您将看到更真实的结果。此外,在信息级别启用Python日志记录将在代码运行时显示大量的进度,并且可能会提示问题,因为您注意到发生的步骤有或没有合理的计数和延迟。

您的
列表数据
,6句话,每个单词,不足以训练
Word2Vec
,这需要大量不同的真实文本数据。除其他问题外:

  • 由于
    minu count=3
    设置,只出现一次的单词将被忽略(&降低该参数不是一个好主意)
  • 单字句子没有算法使用的相邻单词上下文
  • 获得好的“密集”向量需要比向量维度大得多的词汇表,以及每个单词与其他单词的用法的许多不同示例

尝试使用更大的数据集,您将看到更真实的结果。此外,在信息级别启用Python日志记录将在代码运行时显示大量的进度,并且可能会提示一些问题,因为您注意到发生的步骤有或没有合理的计数和延迟。

您真的向我们显示了您的数据吗?您定义了
list\u word2
(只有6个单词,它们只出现一次),但随后运行了
list\u word
培训,并设法获得出现次数>=min\u count(=3)的单个单词。而且,您的数据太小了。下载并使用预训练的单词向量,或者获取更大的训练集。哦,有趣的是,我是在这样的假设下操作的,当你像我一样使用word2vec时,它会从预训练的模型中提取嵌入。我的真实数据是一个约1600个名词的列表,我正在尝试为这些名词嵌入单词。谢谢你的回复!好的,从你的数据中训练单词向量,并使用你传递的任何参数。但是对于这样小的输入,输出会很糟糕,所以建议您下载并使用预训练的单词向量。请参阅文档和教程。您是否向我们显示了您的数据?您定义了
list\u word2
(只有6个单词,它们只出现一次),但随后运行了
list\u word
培训,并设法获得出现次数>=min\u count(=3)的单个单词。而且,您的数据太小了。下载并使用预训练的单词向量,或者获取更大的训练集。哦,有趣的是,我是在这样的假设下操作的,当你像我一样使用word2vec时,它会从预训练的模型中提取嵌入。我的真实数据是一个约1600个名词的列表,我正在尝试为这些名词嵌入单词。谢谢你的回复!好的,从你的数据中训练单词向量,并使用你传递的任何参数。但是对于这样小的输入,输出会很糟糕,所以建议您下载并使用预训练的单词向量。请参阅文档和教程。感谢您的回复,正如我对smsci所说的,我是在假设使用word2vec的情况下操作的,正如我在上述代码中使用word2vec一样,我会使用预训练的模型嵌入。谢谢你的信息!不-代码中没有任何内容加载任何预训练的模型,向构造函数提供
list\u word2
意味着您提供的是训练文本的语料库。(在你得到一个单词的情况下,也许那时你的
列表\u word2
是一个简单的字符串列表,所以每个字符串都被解释为一个句子,所以每个字符看起来都像一个单词,字母
e
中的一个“单词”就是创建的一个向量?),正如我对smsci所说的,我是在这样的假设下操作的,即使用word2vec,正如我在上面的代码中所做的那样,拉动了预训练的模型嵌入。谢谢你的信息!不-代码中没有任何内容加载任何预训练的模型,向构造函数提供
list\u word2
意味着您提供的是训练文本的语料库。(在你得到一个单词的情况下,也许那时你的
列表\u word2
是一个简单的字符串列表,所以每个字符串都被解释为一个句子,所以每个字符看起来都像一个单词,字母
e
中的一个“单词”就是创建的一个向量?)