Неправильное пространственное сходство - PullRequest
0 голосов
/ 01 октября 2018

Я просто устанавливаю spacy пакет в Python с MacBook, и начинаю изучать spacy функцию подобия;однако я наблюдал неправильные результаты.

Ввод:

import spacy

nlp = spacy.load('en_core_web_sm') 
tokens = nlp(u'dog cat banana')

for token1 in tokens:
    for token2 in tokens:
        print(token1.text, token2.text, token1.similarity(token2))

Output:
dog dog 1.0
dog cat -1.8432091e-22
dog banana -0.00349403
cat dog -1.8432091e-22
cat cat 1.0
cat banana -1.8395509e-22
banana dog -0.00349403
banana cat -1.8395509e-22
banana banana 1.0

Я делал подобные вещи на ПК с windows10, результат имеет смысл.Я не знаю, что не так с настройками MacBook.Я пытался с en_core_web_md моделью, она все еще имеет ту же проблему.

1 Ответ

0 голосов
/ 08 октября 2018

Я не знаю, в чем проблема, но позвольте мне предложить вам обходной путь.Вы можете рассчитать оценку сходства, используя:

import spacy
import numpy as np

nlp = spacy.load('en')
tokens = nlp(u'dog cat banana')

def similarity(token1, token2):
    return np.dot(token1.vector / token1.vector_norm, token2.vector / token2.vector_norm)

for token1 in tokens:
    for token2 in tokens:
        print(token1.text, token2.text, similarity(token1, token2))

Если вы попробуете это, это может пролить свет на проблему.

...