Я борюсь со следующей проблемой:
Я скачал предварительно обученную модель встраивания слов для Испанский (более 1 миллиона слов 300-мерные векторы словдля испанского) я загрузил его успешно, и мне даже удалось провести пару экспериментов, таких как большинство похожих слов и основные аналогии на испанском языке (от A к B, к C к чему), но когда я пытаюсь сделать следующее:
for pais in 'Italia', 'Francia', 'India', 'China':
print(' is the capital of '
(A_is_to_B_as_C_is_to('Alemania','Berlín',pais),pais))
Возникает ошибка:
KeyError: "word 'Berlín' not in vocabulary"
Я уже проверил, что слово на самом деле находится во вложении слова. Я также исключил возможность ошибки кодирования.
Исходя из моих исследований, этот тип ошибки возникает, когда токен / слово предполагается заключить в список [], однако я не знаю, как применить это к этой конкретной проблеме. Кроме того, этот блок кода является тем же самым кодом, который используется в « Deep Learning Cookbook » в главе 3 (Word2vecMath)
Это полный сценарий:
import os
from keras.utils import get_file
import gensim
from gensim.models.keyedvectors import KeyedVectors
import subprocess
import numpy as np
import matplotlib.pyplot as plt
from IPython.core.pylabtools import figsize
from sklearn.manifold import TSNE
import json
from collections import Counter
from itertools import chain
from keras.models import load_model
path = ("D:\Pretrained_wordEmbeddings_ESP\embeddings-l-model.vec")
model = gensim.models.KeyedVectors.load_word2vec_format(path, binary=False)
data=model.most_similar(positive=["muerte"])
print(data[:])
def A_is_to_B_as_C_is_to(a, b, c, topn=1):
a, b, c = map(lambda x:x if type(x) == list else [x], (a, b, c))
res = model.most_similar(positive=b + c, negative=a, topn=topn)
if len(res):
if topn == 1:
return res[0][0]
return [x[0] for x in res]
return None
A_is_to_B_as_C_is_to('hombre', 'mujer', 'rey')
## for pais in 'Italia', 'Francia', 'India', 'China':
## print(' is the capital of '
## (A_is_to_B_as_C_is_to('Alemania', 'Berlín', pais), pais))
Спасибо от вашей поддержки