ฉันกำลังประมวลผลภาษาธรรมชาติอย่างง่ายโดยใช้ 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
ฉันไม่รู้วิธีแก้ไข
โปรดช่วยฉันด้วย