lorsque j'exécute ce code sur un petit corpus, j'obtiens une erreur de clé car cette clé n'est pas dans le dict et le vocabulaire du corpus n'est pas non plus si énorme.
sim = similarity.eval()
for i in xrange(valid_size):
valid_word = reverse_dictionary[valid_examples[i]]
print("--",valid_word)
top_k = 5 # number of nearest neighbors
nearest = (-sim[i, :]).argsort()[1:top_k+1]
print(nearest)
log_str = "Nearest to %s:" % valid_word
print(log_str)
for k in xrange(top_k):
close_word = reverse_dictionary[nearest[k]]
Mes sorties sont comme ceci :
Average loss at step 0 : 139.830688477
[[ 0.01613899 -0.06088334 -0.043384 ..., 0.02021606 -0.10094199
0.16063547]
[ 1.00000012 0.10277888 -0.20193034 ..., -0.04780241 0.07802841
0.13258868]
[ 0.09824251 -0.17075592 0.10143445 ..., 0.09903113 -0.08740355
-0.00371696]
...,
[-0.01591019 0.02056946 0.09188825 ..., -0.0506176 0.07684846
0.06354721]
[-0.06749535 0.0028128 -0.09138335 ..., 0.09473826 0.04847325
-0.00853895]
[ 0.01795161 0.01850585 0.04632751 ..., 0.11854959 0.11196665
-0.00684015]]
16
[-0.01613899 0.06088334 0.043384 ..., -0.02021606 0.10094199
-0.16063547]
<type 'numpy.ndarray'>
[ 31 113 118 ..., 650 353 233]
-- using
[113 118 555 298 150]
Nearest to using:
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-129-cf006e08ddb8> in <module>()
87 for k in xrange(top_k):
88
---> 89 close_word = reverse_dictionary[nearest[k]]
90 log_str = "%s %s," % (log_str, close_word)
91 print(log_str)
KeyError: 555
vocab_length = 1155
taille_bat = 16
taille_d'intégration = 128
sauter_fenêtre = 5
nombre_sauts = 4
taille_valide = 16
fenêtre_valide = 100
valid_examples = np.random.choice(valid_window, valid_size, replace=False)
nombre_échantillonné =64
Quelqu'un peut-il aider s'il vous plaît?
Salut Rahoul,
J'avais exactement le même problème que vous jusqu'à ce que je vérifie la taille du tableau "reverse_dictionary" en utilisant "print(len(reverse_dictionary))" juste avant que l'erreur ne se produise.
Votre ligne "vocabulary_size = 50000" doit être inférieure. Je l'ai défini sur la valeur renvoyée en imprimant la longueur de "reverse_dictionary" et je n'ai plus eu de problèmes.
J'espère que ça aide.
ça m'a beaucoup aidé !!!!!! @tcheightyeight
Fermeture automatique en raison d'un manque d'activité récente. Veuillez rouvrir lorsque de plus amples informations seront disponibles.
Commentaire le plus utile
Salut Rahoul,
J'avais exactement le même problème que vous jusqu'à ce que je vérifie la taille du tableau "reverse_dictionary" en utilisant "print(len(reverse_dictionary))" juste avant que l'erreur ne se produise.
Votre ligne "vocabulary_size = 50000" doit être inférieure. Je l'ai défini sur la valeur renvoyée en imprimant la longueur de "reverse_dictionary" et je n'ai plus eu de problèmes.
J'espère que ça aide.