Tôi có một hai danh sách và tôi muốn kiểm tra sự tương đồng giữa mỗi từ trong danh sách hai và tìm ra similarity.Here tối đa là mã của tôi,Kiểm tra sự giống nhau giữa hai từ với NLTK với Python
from nltk.corpus import wordnet
list1 = ['Compare', 'require']
list2 = ['choose', 'copy', 'define', 'duplicate', 'find', 'how', 'identify', 'label', 'list', 'listen', 'locate', 'match', 'memorise', 'name', 'observe', 'omit', 'quote', 'read', 'recall', 'recite', 'recognise', 'record', 'relate', 'remember', 'repeat', 'reproduce', 'retell', 'select', 'show', 'spell', 'state', 'tell', 'trace', 'write']
list = []
for word1 in list1:
for word2 in list2:
wordFromList1 = wordnet.synsets(word1)[0]
wordFromList2 = wordnet.synsets(word2)[0]
s = wordFromList1.wup_similarity(wordFromList2)
list.append(s)
print(max(list))
Nhưng điều này sẽ dẫn đến lỗi:
wordFromList2 = wordnet.synsets(word2)[0]
IndexError: list index out of range
Hãy giúp tôi khắc phục lỗi này.
Cám ơn bạn
FWIW đây là một liên kết đến doc cho '.synsets': http://www.nltk.org/api/nltk.corpus.reader.html#nltk.corpus.reader.wordnet.WordNetCorpusReader.synsets – abathur
hãy xem https://github.com/alvations/pywsd/blob/master/pywsd/similarity.py#L76 – alvas