私はgensimでword2vecを作りたい私は、語彙コーパスがユニコードでなければならないと聞きましたので、私はそれをユニコードに変換しました。Python Gensim word2vecボキャブラリーキー
# -*- 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'너'))
上記は私のソースコードです。それはうまくいくようです。しかし、ボキャブラリーキーには問題があります。私はユニコードを使用する韓国語のword2vecを作りたいです。例えば、英語で謝罪を意味し、それはユニコードの言葉사과
は、私がword2vecで사과
を発見しようとすると、キーエラーが発生し\xC0AC\xACFC
...
代わりの\xc0ac\xacfc
\xc0ac
と\xacfc
店舗別途です。 理由と解決方法は何ですか?
Umm ...私は '[u '\ ud504 \ ub791 \ uc2a4'、u '\ uc758'、u '\ uc138 \ uacc4'、u '\ uc801'、u '\ uc774'、u u '\ uc7c \ uc7c \ uc7c8'、u '\ uc758 \ uc0c1'、u '\ uc758 \ uc0c1'、u '\ uc790 \ uc774 \ ub108'、u '\ uc5e0 \ ub9c8 \ ub204 \ uc5d8' u '\ uc9c1 \ ubb3c'、u '\ ub514 \ uc790 \ uc774 \ ub108'、u '\ ub85c'、およびu '\ uc7a5 \ uc2dd' 、u '\ uub5c8'、u '\ ub2e4'] 'とする。ユニコード文字列のリスト。それは有効ではありませんか? – Damotorie
これは 'corpus'リストを作成するためのコードが示すものではありません。 (あなたの実際のコードは質問の内容と異なるのですか?)コーパス[0]とは何ですか?トークンのリストではなく文字列の場合、すべてのWord2Vecは個々の文字になります。 (最近のバージョンのgensimでは、ボキャブラリ全体が1文字のトークンであると思われる場合、警告が記録されます)。 – gojomo