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

Я всегда получаю большую помощь от переполнения стека.Спасибо вам все время.

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

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

import spacy
nlp = spacy.load('en_core_web_lg')
tokens = nlp('dog cat banana')

for token1 in tokens:
    for token2 in tokens:
        sim = token1.similarity(token2)
        print("{:>6s}, {:>6s}: {}".format(token1.text, token2.text, sim))

результат кода ниже.

   dog,    dog: 1.0
   dog,    cat: 2.307269867164827e-21
   dog, banana: 0.0
   cat,    dog: 2.307269867164827e-21
   cat,    cat: 1.0
   cat, banana: -0.04468117654323578
banana,    dog: -7.828739256116838e+17
banana,    cat: -8.242222286053048e+17
banana, banana: 1.0

В частности, сходство между «собакой» и «кошкой» должно составлять около 0,8, но это не очень и очень небольшое значение.

Кроме того, сходство между «собакой»и «банан» равен 0,0, но сходство между «бананом» и «собакой» составляет -7,828739256116838e + 17.

Я не знаю, как это исправить.

пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 20 сентября 2018

Сначала установите большую модель EN (или все модели).

python3 -m spacy.en.download all

Затем попробуйте использовать образец кода в соответствии с документацией, используя

nlp = spacy.load('en_core_web_md')

Если это не сработает, вместо описанной выше попробуйте загрузить,

nlp = spacy.load('en')

После внесения вышеуказанных изменений результат будет соответствовать документации.

python3 /tmp/c.py
   dog,    dog: 1.000000078333395
   dog,    cat: 0.8016855098942641
   dog, banana: 0.2432764518408807
   cat,    dog: 0.8016855098942641
   cat,    cat: 1.0000001375986456
   cat, banana: 0.2815436412709355
banana,    dog: 0.2432764518408807
banana,    cat: 0.2815436412709355
banana, banana: 1.000000107068369
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...