Calcolo della somiglianza semantica tra due synset in WordNet può essere facilmente effettuata con diverse misure di similarità built-in, come ad esempio:Come si calcola la distanza del percorso più breve (geodetica) tra due aggettivi in WordNet usando Python NLTK?
synset1.path_similarity(synset2)
synset1.lch_similarity(synset2)
, Leacock-Chodorow somiglianza
synset1.wup_similarity(synset2)
, Wu-Palmer somiglianza
Tuttavia, tutti questi exploit relazioni tassonomiche di WordNet, che sono i rapporti di sostantivi e verbi. Aggettivi e avverbi sono correlati per sinonimi, antonimi e pertinenti. Come si può misurare la distanza (numero di salti) tra due aggettivi?
Ho provato path_similarity()
, ma come previsto, restituisce 'None'
:
from nltk.corpus import wordnet as wn
x = wn.synset('good.a.01')
y = wn.synset('bad.a.01')
print(wn.path_similarity(x,y))
Se non v'è alcun modo per calcolare la distanza tra un aggettivo e un altro, segnalarlo sarebbe molto apprezzato.
Grazie per il consiglio. C'è un lavoro di Kamps et al. (2004), in cui determinano la polarità (ha un sentimento positivo o negativo) di aggettivi all'interno di WordNet. Lo fanno misurando la distanza (adj1, bad) sottratta dalla distanza (adj1, bad). Quindi parlano di questo nel loro articolo, ma non sono sicuro di come diavolo hanno implementato questo !! qualche idea? [Link alla carta] (http://humanities.uva.nl/~kamps/publications/2004/kamp:usin04.pdf) @alvas – modarwish
sembra che costruiscano un grafico e quindi utilizzino le misure della distanza del grafico ma non sono esattamente sicuro di quello che hanno fatto. Forse puoi mandare un'email agli autori: P – alvas