Я работаю над проектом НЛП, из приведенного ниже кода. Я мог только сопоставить и найти оценку сходства для слов, приведенных в списке.
Может кто-нибудь помочь мне, как найти сходство из абзаца? Предположим, что список A содержит абзац, а список B содержит ключевое слово. Как найти ключевое слово в списке А?
from collections import Counter
from math import sqrt
import eng_to_ipa as ipa
def word2vec(word):
cw = Counter(word)
sw = set(cw)
lw = sqrt(sum(c*c for c in cw.values()))
return cw, sw, lw
def cosdis(v1, v2):
common = v1[1].intersection(v2[1])
return sum(v1[0][ch]*v2[0][ch] for ch in common)/v1[2]/v2[2]
list_A = ['e-commerce', 'ecomme', 'e-commercy', 'ecomacy', 'E-Commerce', 'E Commerce']
list_B = ['E-Commerce']
IPA_list_a = []
IPA_list_b = []
for each in list_A:
IPA_list_a.append(ipa.convert(each))
for each in list_B:
IPA_list_b.append(ipa.convert(each))
for word in IPA_list_a:
for key in IPA_list_b:
res = cosdis(word2vec(word), word2vec(key))
print(res)