Как использовать список в word2vec.s Similarity - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть модель word2vec, использующая предварительно обученный GoogleNews-vectors-positive300.bin.Модель работает отлично, и я могу получить сходство между двумя словами.Например:

word2vec.similarity('culture','friendship')

0.2732939

Теперь я хочу использовать элементы списка вместо слов.Например, предположим, что у меня есть список, который называется «тег».и первые два элемента в первом ряду - это культура и дружба.Итак, тег [0,0] = культура, а тег [0,1] = дружба.Я использую следующий код, который дает мне ошибку:

word2vec.similarity(tag[0,0],tag[0,1])

список "тегов" numpy.ndarray

ошибка:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\s\AppData\Local\Programs\Python6436\Python36\lib\site-packages\gensim\models\keyedvectors.py", line 992, in similarity
    return dot(matutils.unitvec(self[w1]), matutils.unitvec(self[w2]))
  File "C:\Users\s\AppData\Local\Programs\Python6436\Python36\lib\site-packages\gensim\models\keyedvectors.py", line 337, in __getitem__
    return self.get_vector(entities)
  File "C:\Users\s\AppData\Local\Programs\Python6436\Python36\lib\site-packages\gensim\models\keyedvectors.py", line 455, in get_vector
    return self.word_vec(word)
  File "C:\Users\s\AppData\Local\Programs\Python6436\Python36\lib\site-packages\gensim\models\keyedvectors.py", line 452, in word_vec
    raise KeyError("word '%s' not in vocabulary" % word)
KeyError: "word ' friendship' not in vocabulary"

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Я думаю, что в вашем слове «дружба» есть пробелы.

Не могли бы вы попробовать это:

word2vec.similarity(tag[0,0].strip(),tag[0,1].strip())
0 голосов
/ 20 декабря 2018

Если тег, в соответствии с вашим вопросом, является списком python. Тогда проблема в том, что вы не можете индексировать список с помощью кортежа.
Если ваш список похож на [["culture", "дружба"], [...] ...]
Тогда вы должны написать word2vec.simility (тег [0] [0], тег [0] [1])

...