- 1 GSoC application: Rule-based finite-state disambiguation
- 2 Why is it you are interested in machine translation?
- 3 Why is it that you are interested in the Apertium project?
- 4 Which of the published tasks are you interested in?
- 5 Work already done
- 6 Work To do
- 7 Bio
GSoC application: Rule-based finite-state disambiguation
krvoje on IRC: #apertium
Why is it you are interested in machine translation?
It's a perfect combination of Computer Science and Linguistics. I am very fascinated with languages, both natural or artificial. With MT it fascinates me to see a natural message transfered across a language barrier via only a process of computation. While the results are rarely perfect, it takes down communication barriers, and opens up new opportunities for learning and communication.
Why is it that you are interested in the Apertium project?
I have worked on a language pair in last year's GSoC, and it gave me great insights on rule based NLP. It gave me an invaluable chance to do real-life work on an immensely interesting topic, and to create an open-source resource. It was a great experience that taught me a lot about software development and NLP - and it also gave me the theme for my master thesis. So, I could say Apertium has a special place in my heart, and I would love to continue working on it.
Which of the published tasks are you interested in?
Writing the module for rule-based finite-state disambiguation.
Why should Google and Apertium sponsor it?
The module is intended to supplement the current bigram tagger, and Constraint Grammar, by implementing constraint based-disambiguation in a finite-state manner. Since the most common disambiguation rules can be expressed in a finite-state way, this will greatly improve speed of disambiguation, and will be beneficial for working with large texts.
How and whom it will benefit in society?
It will provide a fast tool for rule-based disambiguation, which will enable faster processing of larger corpora, and potentialy help improve translation quality in any language pair in Apertium.
What do you plan to do?
I will design an XML formalism for writing disambiguation rules, a validator for it, a compiler for representing the rules as a finite-state transducer that integrates with the lttoolbox API, and a processor which applies the rules to an Apertium input stream.
The compiler and the processor will be written in C++, based on the designs of Apertium's transfer module, and the lexical selection module, and will use the lttoolbox API.
Work already done
Community bonding period
- written a program for the coding challenge
- started familiarising myself with lttoolbox, written a small program that composes strings and regexes into an FST
Work To do
Before the coding period:
- explore the API
- write a simple prototype, that implements a simple hardcoded rule (e.g. preposition-based case disambiguation for Serbo-Croatian)
The coding period:
- Week 1: A thorough design of the XML formalism along with a validator. The basis for functionality will be CG-2, and the syntax will be based on apertium-lex-tools.
- Deliverable #1 : A complete XML formalism for expressing finite-state disambiguation rules, along with preliminary documentation.
- Week 2-8: Writing a compiler and a stream processor and integrate it with lttoolbox.
- Deliverable #2 : A compiler and processor for the complete formalism
- Week 9-12: Testing and polishing the system, writing the documentation, along with use-case examples on various languages.
- Deliverable #3 : The complete disambiguation system, with a compiler, a processor, and the documentation.
I am an Graduate student of Computer Science and Mathematics at the Faculty of Science, University of Zagreb.
I have worked on the language pair apertium-sh-mk for the GSoC of 2011., and have been a mentor for Google Code-In 2011 for several tasks involving that and similar language pairs.
Regarding the technologies used in machine translation we I've been enrolled in courses with finite state machines, and context free grammars (implementation of a parser using yacc+flex), and machine learning.