Word Sense Disambiguation Module

This module performs word-sense-disambiguation on content words in given sentences. This module is to be used if word sense disambiguation (WSD) is desired. If no disambiguation (or basic most-frequent-sense disambiguation) is needed, the senses module described in section 3.13 is a lighter and faster option.

The module is just a wrapper for UKB algorithm [AS09], which is integrated in FreeLing and distributed as-is under its original GPL license.

UKB algorithm relies on a semantic relation network (in this case, WN and XWN) to disambiguate the most likely senses for words in a text using PageRank algorithm. See [AS09] for details on the algorithm.

The module enriches each analysis of each word (for the selected PoS) with a ranked list of senses. The PageRank value is also provided as a result.

The API of the class is the following:

class disambiguator {
   public:
      /// Constructor. Receives a relation file for UKB, a sense dictionary,
      /// and two UKB parameters: epsilon and max iteration number.
      disambiguator(const std::string &, const std::string &, double, int);

      /// word sense disambiguation for each word in given sentences
      void analyze(std::list<sentence> &);
};

The constructor receives:

Lluís Padró 2010-09-02