[英]Python Gensim word2vec vocabulary key
我想用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
分開存儲。 是什么原因以及如何解決?
Word2Vec需要將文本示例分解為word-tokens。 看起來你只是在為Word2Vec提供字符串,所以當它迭代它們時,它只會看到單個字符作為單詞。
韓國人是否使用空格來划分單詞? 如果是這樣,請在將單詞列表作為文本示例傳遞給Word2Vec之前,按空格分隔文本。
如果沒有,在將句子傳遞給Word2Vec之前,你需要使用一些外部的word-tokenizer(不是gensim的一部分)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.