word2vec 模型由字符而不是单词组成

Min*_*smz 2 gensim word2vec

我正在尝试通过 Gensim 在波斯语上制作一个 word2vec 模型,它以“空格”作为字符分隔符,我使用 python 3.5。我遇到的问题是我提供了一个文本文件作为输入,它返回一个模型,该模型仅包含每个字符而不是单词。我还将输入作为推荐的单词列表提供:

Python Gensim word2vec 词汇键

它对我不起作用,我认为它不考虑句子中的单词序列,所以它是不正确的。

我对我的输入做了一些预处理,其中包括:

将多个空格合并为一个,
通过拆分空格来标记化
删除少于 3 个字符的单词删除停用词

我把文本给了 word2vec,它给了我正确的结果,但我在 python 上需要它,所以我的选择仅限于使用 Gensim。

此外,我尝试在 gensim 上加载由 word2vec 源创建的模型,但出现错误,因此我需要通过 Gensim 创建 word2vec 模型。

我的代码是:

  wfile = open('aggregate.txt','r')    
  wfileRead = wfile.read()    
  model = word2vec.Word2Vec(wfileRead , size=100)   
  model.save('Word2Vec.txt')
Run Code Online (Sandbox Code Playgroud)

goj*_*omo 6

gensim Word2Vec 模型不期望字符串作为其文本示例(句子),而是list-of-tokens。因此,在将文本传递给 Word2Vec 之前,由您的代码对文本进行标记。

如图所示,您的代码只是将原始数据从 'aggregate.txt' 文件传递​​到 Word2Vec 作为wFileRead.

查看 gensim 文档中的示例,包括 gensim 包含的LineSentence类,以获取想法