nltk.wsd module

nltk.wsd.lesk(context_sentence, ambiguous_word, pos=None, synsets=None)[source]

Return a synset for an ambiguous word in a context.

Parameters
  • context_sentence (iter) – The context sentence where the ambiguous word occurs, passed as an iterable of words.

  • ambiguous_word (str) – The ambiguous word that requires WSD.

  • pos (str) – A specified Part-of-Speech (POS).

  • synsets (iter) – Possible synsets of the ambiguous word.

Returns

lesk_sense The Synset() object with the highest signature overlaps.

This function is an implementation of the original Lesk algorithm (1986) [1].

Usage example:

>>> lesk(['I', 'went', 'to', 'the', 'bank', 'to', 'deposit', 'money', '.'], 'bank', 'n')
Synset('savings_bank.n.02')

[1] Lesk, Michael. “Automatic sense disambiguation using machine readable dictionaries: how to tell a pine cone from an ice cream cone.” Proceedings of the 5th Annual International Conference on Systems Documentation. ACM, 1986. https://dl.acm.org/citation.cfm?id=318728