Python Gensim word2vec词汇密钥

时间:2017-03-28 09:32:42

标签: python unicode gensim word2vec

我想用gensim制作word2vec。我听说词汇语料库应该是unicode所以我把它转换成unicode。

# -*- encoding:utf-8 -*-
# !/usr/bin/env python
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
from gensim.models import Word2Vec
import pprint

with open('parsed_data.txt', 'r') as f:
    corpus = map(unicode, f.read().split('\n'))

model = Word2Vec(size=128, window=5, min_count=5, workers=4)
model.build_vocab(corpus,keep_raw_vocab=False)
model.train(corpus)
model.save('w2v')

pprint.pprint(model.most_similar(u'너'))

以上是我的源代码。看起来效果很好。但是词汇密钥存在问题。我想制作使用unicode的韩语word2vec。例如,单词사과表示英语道歉,它的unicode为\xC0AC\xACFC如果我尝试在word2vec中找到사과,则会发生键错误...
而不是\xc0ac\xacfc \xc0ac\xacfc分开存储。 是什么原因以及如何解决?

1 个答案:

答案 0 :(得分:3)

Word2Vec需要将文本示例分解为word-tokens。看起来你只是在为Word2Vec提供字符串,所以当它迭代它们时,它只会看到单个字符作为单词。

韩国人是否使用空格来划分单词?如果是这样,请在将单词列表作为文本示例传递给Word2Vec之前,按空格分隔文本。

如果没有,在将你的句子传递给Word2Vec之前,你需要使用一些外部的word-tokenizer(不是gensim的一部分)。