Kürzlich , Teil des Codes pywsd
wurde in die neueste Version von NLTK
'in derportiertModul, versuchen:
>>> from nltk.wsd import lesk
>>> sent = 'I went to the bank to deposit my money'
>>> ambiguous = 'bank'
>>> lesk(sent, ambiguous)
Synset('bank.v.04')
>>> lesk(sent, ambiguous).definition()
u'act as the banker in a game or in gambling'
Für eine bessere WSD Leistung, verwenden Sie die pywsd
Bibliothek anstelle des NLTK
Modul.Im Allgemeinen ist simple_lesk()
von pywsd
besser als lesk
von NLTK
. Ich werde versuchen, das NLTK
Modul so viel wie möglich zu aktualisieren, wenn ich frei bin.
In Antwort auf Chris Spencer Kommentar Sie bitte die Einschränkungen Lesk Algorithmen beachten. Ich gebe einfach eine genaue Implementierung der Algorithmen. Es ist kein Allheilmittel, http://en.wikipedia.org/wiki/Lesk_algorithm
Geben Sie bitte auch zur Kenntnis, dass obwohl:
lesk("My cat likes to eat mice.", "cat", "n")
nicht wahr, die richtige Antwort geben, können Sie pywsd
Implementierung von max_similarity()
verwenden:
>>> from pywsd.similarity import max_similiarity
>>> max_similarity('my cat likes to eat mice', 'cat', 'wup', pos='n').definition
'feline mammal usually having thick soft fur and no ability to roar: domestic cats; wildcats'
>>> max_similarity('my cat likes to eat mice', 'cat', 'lin', pos='n').definition
'feline mammal usually having thick soft fur and no ability to roar: domestic cats; wildcats'
@ Chris, wenn du ein Python setup.py willst, mache einfach eine höfliche Anfrage, ich schreibe es ...
hier ist eine Python-Implementierung: https: // github .com/alvations/pywsd – alvas