Ho un due liste e voglio controllare la somiglianza tra ogni parola nella lista di secondo e scoprire la massima similarity.Here è il mio codice,Controllare la somiglianza tra due parole con NLTK con 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))
Ma questo risulterà un errore:
wordFromList2 = wordnet.synsets(word2)[0]
IndexError: list index out of range
per favore mi aiuti a risolvere questo problema.
Ringraziandovi
FWIW, ecco un link al documento per '.synsets': http://www.nltk.org/api/nltk.corpus.reader.html#nltk.corpus.reader.wordnet.WordNetCorpusReader.synsets – abathur
dai uno sguardo a https://github.com/alvations/pywsd/blob/master/pywsd/similarity.py#L76 – alvas