Я делаю простую обработку естественного языка, используя spacy
. Я работаю над фильтрацией слов, измеряя сходство между словами.
Я написал и использовал следующий простой код, показанный в документации 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.
Я не знаю, как это исправить.
пожалуйста, помогите мне.