word2vec 模型由字符而不是单词组成
word2vec models consist of characters instead of words
我正在尝试通过 Gensim 在波斯语上制作一个 word2vec 模型,它以 "space" 作为字符分隔符,我使用 python 3.5。我遇到的问题是我给了一个文本文件作为输入,它 returns 一个只包含每个字符而不是单词的模型。我还将输入作为建议的单词列表提供:
它对我不起作用,我认为它没有考虑句子中单词的顺序,所以它是不正确的。
我对我的输入做了一些预处理,其中包括:
将多个空格合并为一个空格
通过拆分空格来标记化
删除长度少于 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')
gensim Word2Vec 模型不期望 strings 作为其文本示例(句子),而是 lists-of-tokens。因此,在将文本传递给 Word2Vec 之前,由您的代码对文本进行标记化。
您显示的代码只是将 'aggregate.txt' 文件中的原始数据作为 wFileRead
.
传递到 Word2Vec
查看 gensim 文档中的示例,包括 gensim 附带的 LineSentence
class,以获得想法
您需要使用 nltk
将文本标记为单词。
from nltk import word_tokenize
tokenized_text = word_tokenize(wfileRead)
model = word2vec.Word2Vec(tokenized_text , size=100)
我正在尝试通过 Gensim 在波斯语上制作一个 word2vec 模型,它以 "space" 作为字符分隔符,我使用 python 3.5。我遇到的问题是我给了一个文本文件作为输入,它 returns 一个只包含每个字符而不是单词的模型。我还将输入作为建议的单词列表提供:
它对我不起作用,我认为它没有考虑句子中单词的顺序,所以它是不正确的。
我对我的输入做了一些预处理,其中包括:
将多个空格合并为一个空格
通过拆分空格来标记化
删除长度少于 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')
gensim Word2Vec 模型不期望 strings 作为其文本示例(句子),而是 lists-of-tokens。因此,在将文本传递给 Word2Vec 之前,由您的代码对文本进行标记化。
您显示的代码只是将 'aggregate.txt' 文件中的原始数据作为 wFileRead
.
查看 gensim 文档中的示例,包括 gensim 附带的 LineSentence
class,以获得想法
您需要使用 nltk
将文本标记为单词。
from nltk import word_tokenize
tokenized_text = word_tokenize(wfileRead)
model = word2vec.Word2Vec(tokenized_text , size=100)