Bilingual dictionary discovery
This page describes a way of discovering new bilingual, or multilingual dictionaries.
We already have apertium-dixtools for crossing dictionaries, but what happens if you want to make a pair where there are no direct crossings available, or alternatively you want to enhance the accuracy of the crossing, or you want to maximise the number of correspondences you can get.
We can try using multiple input dictionaries.
Let's say you want to make a Chuvash--Tatar dictionary, and you have:
- Chuvash--Russian
- Chuvash--Turkish
- Turkish--Russian
- Turkish--Tatar
- Russian--Tatar
You could make a graph out of these dictionaries where each node is a word in a language, and each arc is a language pair. For example like: http://i.imgur.com/SFOsRMv.png
You could then cluster the words using some "strongly-connected subgraph"[1] algorithm. Then assume that the sets of words within a strongly-connected subgraph are translations of each other. Meaning that you could get кил--йорт without having any direct correspondence.
Restrictions on sub-graphs:
- Only one word per input language
- Prune words with only a single output arc.
- Only accept words where there is a cycle(?)
Some ideas:
- Weighting
- Outgoing arcs get 1/number of arcs?
- Using more monolingual data, e.g. each word gets an SL concordance/context vector.