Я использую Gensim
для загрузки немецких .bin
файлов из Fasttext
, чтобы получить векторные представления для слов и фраз, не входящих в словарь. Пока все работает нормально, и в целом я достиг хороших результатов.
Я знаком с KeyError :'all ngrams for word <word> absent from model'.
Очевидно, что модель не обеспечивает векторное представление для всех возможных комбинаций ngram.
Но теперь я столкнулся с запутанной (по крайней мере, для меня) проблема.
Я просто приведу краткий пример:
модель предоставляет представление для фразы AuM Wert
.
Но когда я хочу получить представление для AuM Wert 50 Mio. Eur
, я получу KeyError
упомянутый выше. Таким образом, модель, очевидно, имеет представление для более короткой фразы, но не для расширенной.
Она даже возвращает представление для AuM Wert 50 Mio.Eur
(я просто удалил пробел между «Mio» и «Eur»)
Я имею в виду, что Утверждение в Error просто неверно, потому что первый пример показывает, что он знает некоторые из ngrams. Кто-нибудь может мне это объяснить? Что я тут не понимаю? Является ли мое понимание ngrams неправильным?
Вот код:
from gensim.models.wrappers import FastText
model = FastText.load_fasttext_format('cc.de.300.bin')
model.wv['AuM Wert'] #returns a vector
model.wv['AuM Wert 50 Mio.EUR'] #returns a vector
model.wv['AuM Wert 50 Mio. EUR'] #triggers the error
Заранее спасибо,
Амос