metode kesamaan spacy tidak berfungsi dengan benar

Saya melakukan pemrosesan bahasa alami sederhana menggunakan spacy. Saya sedang berupaya menyaring kata-kata dengan mengukur kesamaan antar kata.

Saya menulis dan menggunakan kode sederhana berikut yang ditunjukkan dalam dokumentasi spacy, tetapi hasilnya tidak terlihat seperti dokumentasi.

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))

hasil kode di bawah ini.

   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

Khususnya, kemiripan antara "anjing" dan "kucing" seharusnya sekitar 0,8, namun nilainya tidak terlalu kecil.

Selain itu, kemiripan antara "anjing" dan "pisang" adalah 0,0 tetapi kemiripan antara 'pisang' dan 'anjing' adalah -7.828739256116838e+17.

Saya tidak tahu bagaimana cara memperbaikinya.

tolong bantu aku.


person frhyme    schedule 18.09.2018    source sumber
comment
Cobalah setelah menginstal ulang model en_core_web_lg.   -  person Ajay Srivastava    schedule 19.09.2018
comment
Saya tidak tahu cara menginstalnya kembali. Saya mencoba menemukannya di halaman web dokumentasi spacy, tetapi gagal. Jika Anda tahu cara menginstalnya kembali, tolong beri tahu saya. terima kasih atas komentar dan bantuannya.   -  person frhyme    schedule 21.09.2018
comment
python -m unduhan spacy en_core_web_lg --force   -  person Ajay Srivastava    schedule 21.09.2018
comment
@AjaySrivastava Terima kasih atas bantuan Anda, saya mencobanya seperti yang Anda sebutkan, tetapi sayangnya, tetap tidak ada bedanya. tapi terima kasih atas bantuanmu.   -  person frhyme    schedule 22.09.2018


Jawaban (2)


Pertama instal model EN besar (atau semua model).

python3 -m spacy.en.download all

Selanjutnya, coba dengan kode contoh sesuai dokumentasi menggunakan,

nlp = spacy.load('en_core_web_md')

Jika tidak berhasil, daripada mencoba memuat di atas,

nlp = spacy.load('en')

Setelah melakukan perubahan di atas hasilnya sesuai dokumentasi.

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
person Anil_M    schedule 19.09.2018
comment
Terima kasih atas bantuan Anda. Namun, itu tidak diselesaikan menggunakan solusi Anda. Itu masih menunjukkan hasil kesamaan yang salah berbeda dengan hasil Anda. - person frhyme; 21.09.2018

Saya akhirnya memecahkan masalah ini.

cukup tambahkan kode import numpy as np .

Itu saja.

person frhyme    schedule 30.08.2019
comment
Solusi itu sama sekali tidak masuk akal. Anda bahkan tidak menggunakan numpy dalam kode Anda - person Ateik; 10.02.2020
comment
Ateik @Ateik Ya. Seperti yang Anda katakan, saya tidak menggunakan numpy dalam kode saya. Tapi saya memecahkan masalah dengan menambahkan kode itu. perpustakaan spacy mungkin memiliki ketergantungan pada numpy. - person frhyme; 11.02.2020