Lesk Algorithm
  • used for Word Sense Disambiguation (WSD)
  • use dictionary or thesaurus as indirect kind of supervision. choose the sense whose gloss shares the most words with target word neighborhood

Lesk Algorithm

# returns best sense of word
def simplified_lesk(word, sentence):
	best_sense = most_frequent_sense_for(word)
	max_overlap = 0
	context = set_of_words_in(sentence)
	for sense in senses_of(word):
		signature = set_of_words_in_gloss_and_example_sentences_of(sense)
		overlap = compute_overlap(signature, context)
		if overlap > max_overlap:
			max_overlap = overlap
			best_sense = sense
	return best_sense

Lesk Algorithm - Example

Lesk Algorithm - Improvements