Ideas for Google Summer of Code/Rule-based finite-state disambiguation
Currently Apertium only has a bigram/trigram part-of-speech tagger. The objective of this task would be to implement a disambiguation framework for Apertium that can be expressed as a finite-state transducer. It might be a good idea to express this as constraint rules, in a novel XML-based file format.
For some languages, bigram/trigram POS disambiguation really doesn't work, especially when you want to disambiguate morphology (e.g. number, case) along with part-of-speech. So far we've been using constraint grammar for some of these languages. But although Constraint Grammar is great and powerful, it is also pretty slow. It would be a good idea to look at LanguageTool, and IceParser and Apertium's own apertium-lex-tools to get ideas on how this might be accomplished.
- Define an XML format for writing finite-state constraint rules.
- Write a compiler which turns these rules into a binary finite-state representation.
- Write a processor which applies these rules to an Apertium input stream.
- Write a stream processor (see Apertium stream format) for the output of
lt-procthat parses character by character, respecting superblanks.
Frequently asked questions
- none yet, ask us something! :)
- User:Krvoje/Foma script for testing finite-state disambiguation (Partially working implemention using Foma)