عندما أقوم بتشغيل هذا الرمز على مجموعة صغيرة ، فإنني أتلقى خطأ رئيسيًا لأن هذا المفتاح ليس موجودًا في dict و corpus vocab ليس كبيرًا أيضًا.
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]]
مخرجاتي مثل هذا:
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
حجم_الدفعة = 16
embedding_size = 128
skip_window = 5
num_skips = 4
valid_size = 16
valid_window = 100
valid_examples = np.random.choice (valid_window ، valid_size ، استبدال = خطأ)
num_sampled = 64
هل يمكن لأي شخص أن يساعد من فضلك؟
مرحبا راهول ،
كنت أواجه نفس المشكلة تمامًا حتى تحققت من حجم مصفوفة "عكس_القاموس" باستخدام "print (len (reverse_dictionary))" قبل حدوث الخطأ مباشرةً.
يجب تعيين سطر "vocabulary_size = 50000" الخاص بك في مستوى أدنى. لقد قمت بتعيينه على القيمة التي تم إرجاعها عن طريق طباعة طول "عكس_القاموس" ولم يعد لدي أي مشاكل.
آمل أن يساعد هذا.
هذا ساعد كثيرا !!!!!! تضمين التغريدة
الإغلاق التلقائي بسبب نقص النشاط الأخير. يرجى إعادة الفتح عندما تتوفر المزيد من المعلومات.
التعليق الأكثر فائدة
مرحبا راهول ،
كنت أواجه نفس المشكلة تمامًا حتى تحققت من حجم مصفوفة "عكس_القاموس" باستخدام "print (len (reverse_dictionary))" قبل حدوث الخطأ مباشرةً.
يجب تعيين سطر "vocabulary_size = 50000" الخاص بك في مستوى أدنى. لقد قمت بتعيينه على القيمة التي تم إرجاعها عن طريق طباعة طول "عكس_القاموس" ولم يعد لدي أي مشاكل.
آمل أن يساعد هذا.