Mam dwie listy i chcę sprawdzić podobieństwo pomiędzy każdymi dwoma słowami w liście i dowiedzieć się, maksymalna similarity.Here jest mój kod,Sprawdź podobieństwo między dwoma słowami z NLTK Pythona
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))
Ale spowoduje to błąd:
wordFromList2 = wordnet.synsets(word2)[0]
IndexError: list index out of range
Proszę mi pomóc to naprawić.
Dziękując
FWIW oto link do dokumentu na '.synsets': http://www.nltk.org/api/nltk.corpus.reader.html#nltk.corpus.reader.wordnet.WordNetCorpusReader.synsets – abathur
spójrz na https://github.com/alvations/pywsd/blob/master/pywsd/similarity.py#L76 – alvas