KeyError: слово отсутствует в словаре, когда я использую gensim.Word2Vec для обработки китайских токенов - PullRequest
0 голосов
/ 03 мая 2018

код такой:

train_corpus = "sentence_all.txt"
sentences = LineSentence(train_corpus)
model = Word2Vec(sentences, size=vector_size,  window=window_size, min_count=min_count, workers=worker_count, iter=train_epoch)
print(model['一九九八年新年'])

файл корпуса был обработан как список токенов LineSentence в gensim следующим образом:

['本报', '讯', '河北邢台中桥商场', '以', '诚', '待客', ',', '以', '真品', '赢', '来', '回头客', '。', '1997年', ',', '商场', '利税', '比', '上年', '翻', '了', '一番', '多', ',', '员工', '人均', '年', '销售额', '达', '22.1万', '元', '。']
['中桥商场', '虽', '地处', '邢台市', ',', '但', '为了', '扩大', '销售', '半径', ',', '他们', '投资', '近', '万', '元', ',', '向', '邢台市', '19', '个', '县', '、', '市', '、', '区', '部分', '顾客', '赠阅', '《', '公关', '世界', '》', '及', '《', '中国', '质量', '万', '里', '行', '》', '杂志', ',', '扩大', '了', '商店', '的', '影响', '。']

затем получите ошибку:

KeyError: "word '一九九八年新年' not in vocabulary"

но только несколько токенов не включены в словарь, другие могут получить вектор слов, тогда я не знаю причину.

Ответы [ 2 ]

0 голосов
/ 24 июня 2018

Проблема, с которой вы сталкиваетесь, заключается в том, что встраивание слова, которое вы пытаетесь получить, не существует. Вы не можете запросить слово, которого нет в словаре слов, которые были введены в модель во время обучения.

Надеюсь, это ответит на ваш вопрос.

0 голосов
/ 24 июня 2018
gensim.models.Word2Vec(sen, size=100, workers=4, min_count=1)

set min_count=1

min_count означает игнорировать все слова с общей частотой ниже этой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...