сходство предложений с использованием вложения слов - PullRequest
0 голосов
/ 06 мая 2018

Я исследователь PhD и начал использовать word2vec для своих исследований. Я просто хочу использовать его для расчета сходства предложений. Я искал и нашел несколько ссылок, но я не мог их запустить. Я смотрел на следующее:

import numpy as np
from scipy import spatial

index2word_set = set(model.wv.index2word)

def avg_feature_vector(sentence, model, num_features, index2word_set):
    words = sentence.split()
    feature_vec = np.zeros((num_features, ), dtype='float32')
    n_words = 0
    for word in words:
        if word in index2word_set:
            n_words += 1
            feature_vec = np.add(feature_vec, model[word])
    if (n_words > 0):
        feature_vec = np.divide(feature_vec, n_words)
    return feature_vec

s1_afv = avg_feature_vector('this is a sentence', model=model,   num_features=300, index2word_set=index2word_set)
s2_afv = avg_feature_vector('this is also sentence', model=model,num_features=300, index2word_set=index2word_set)
sim = 1 - spatial.distance.cosine(s1_afv, s2_afv)
print(sim)

к сожалению, я не смог запустить это, так как я не знаю, как найти "index2word_set". Кроме того, я должен назначить модель =? Или есть ли простые команды или инструкции для реализации этого?

1 Ответ

0 голосов
/ 29 мая 2018

назначить модель для созданной вами модели или для любой предопределенной модели word2vec, которую вы хотите использовать а что касается index2word_set, вы можете установить его в model.wv

Тогда должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...