Lexical selection

From LING073
Jump to: navigation, search

Lexical selection

Lexical selection provides a way to deal with what you do when a single word in one language translates to more than one word in another language. In the Apertium pipeline, it modifies the stream after lexical transfer and before structural transfer.

Writing rules

Lexical selection rules are in the apertium-abc-xyz.abc-xyz.lrx file in your language pair. You can find information about and examples of the formalism on the Apertium wiki: constraint-based lexical selection module, how to get started with lexical selection rules.


Can we decide which translation is right from the surrounding words?

  • (kir) кол → (eng) hand; arm
  • (kir) күн → (eng) sun; day
  • (kir) жаш → (eng) age; tear (eye water)
  • (kir) бир → (eng) one; a/an
  • (eng) paper → (kir) кагаз (material); доклад (written work)
  • (eng) horse → (kir) ат (for riding, working); жылкы (for herding, eating)
  • (eng) sister → (kir) сиңди (younger, of female); карындаш (younger, of male); эже (older)

What do we do with examples like this?

  • (eng) tear → (kir) жаш (eye water); айыр (rip)
  • (eng) plant → (kir) өсүмдүк (growing thing); отургуз (put in the ground to grow)
  • (kir) өч → (eng) revenge; be extinguished
  • (kir) кыл → (eng) strand of hair; string (of instrument); do; make


You may wish to make a "default" translation and then some more specific rules. Because of what appears currently be a bug in the lexical selection code, the more less specific rule (the "default") may override the more specific rules. Currently, the best way to do this seems to be with weights—i.e., give a lower weight to the default rule than to the specific ones (e.g., by just giving a weight below 1 to the default rule). You will also want to go through your modes.xml and replace lrx-proc with lrx-proc -m so that the lexical selection module actually uses these weights.

The assignment

Due Friday at noon on the 10th week of class (this semester, Friday, March 31st, 2017, at noon)

  1. Make a new page on the wiki, Language1_and_Language2/Lexical_selection, linking to it from the main page for your language pair, and adding it to the category Category:Sp17_LexicalSelection.
  2. Add two sections, abc → xyz and xyz → abc.
  3. In each section, add the two cases of ambiguous translations you came up with in the previous assignment.
  4. For each ambiguous translation you work on, determine some generalisation for how to decide which translation is right, documenting these generalisations on the wiki. It may be that there is no generalisation that can be made for a given lexical selection problem; in this case, choose a default form to select and find some other one-to-many translation that can be solved with lexical selection. You must have at least one [mostly] solvable problem per translation direction.
  5. Add example sentences or phrases that can be tested for each destination of the word with the ambiguous translation (minimum: two sentences).
  6. In your lrx file, set up any necessary default translations, and at least one set of lexical selection rules for one solvable lexical selection problem. Add the example sentences/phrases in a comment before the relevant rule.
  7. Commit your code.