How to bootstrap a new pair

Шаблон:TOCD
How to use apertium-init to bootstrap a new language pair (optionally with new monolingual data packages as well).

## Предварительные требования

Сначала нужно установить это:

* apertium/lttoolbox/hfst, см. раздел Установка, в частности, раздел "Необходимые условия". (Скорее всего, вам не нужно проходить весь путь, поскольку вы должны получить эти материалы из репозиториев Тино. Если вы работаете под Windows, воспользуйтесь Apertium VirtualBox.).
* apertium-init.py – поместите этот скрипт в рабочий каталог, куда вы будете загружать языковые данные. Вы можете получить скрипт по адресу https://apertium.org/apertium-init

## Получение одноязычных пакетов

Для любой языковой пары, если она уже существует, вы можете скачать и компилировать её, запустив

```
apertium-get XXX

```

Где XXX это ISO 639-3 код языка.

Если модуль не существует (если его нет в этом списке или apertium-get не может его найти), то вы можете создать его следующим образом:

```
# compile the module
make -j

```

## Загрузка пары

В последующих пунктах замените XXX и YYY на коды ISO 639-3 ваших языков:

Создайте пару:

```
python3 apertium-init.py XXX-YYY

```

Затем скомпилируйте пару:

```
cd apertium-XXX-YYY
./autogen.sh --with-lang1=../apertium-XXX --with-lang2=../apertium-YYY
make -j

```

И проверьте:

```
echo house | apertium -d . XXX-YYY
echo Haus | apertium -d . YYY-XXX

```

Теперь вы можете добавить слова в apertium-XXX-YYY.XXX-YYY.dix, а затем снова проверить:

```
make -j
echo house | apertium -d . XXX-YYY
echo Haus | apertium -d . YYY-XXX

```

Если вам нужно добавить слова в одноязычные словари, вам придется набрать "make". в этих каталогах в первую очередь. В качестве альтернативы существует ярлык из каталога пар: "make langs" должен создать одноязычные словари, даже если вы находитесь в каталоге пар.

Еще одна полезная информация о "make langs": Также можно ускорить процесс с помощью команды "make -j8 langs", где 8 заменяется количеством ядер процессора в вашем компьютере.

## Checking the tagger Проверка маркера

Unfortunately, `apertium-tagger` will crash if given the wrong arguments. This will generally result in no output being produced when you try to translate something. Currently the best way to deal with this is to open the `modes.xml` files in the two monolingual and checking what options they give in their `XXX-tagger` and `YYY-tagger` modes.

If you find `-x`, `-u 1`, `-u 2`, or `-u 3` after `apertium-tagger`, add it to the corresponding line of the `modes.xml` file in the bilingual directory.

If you just initialized the monolingual directory, add `-u 2` in both places.

If the monolingual `modes.xml` does not mention `apertium-tagger`, bootstrap the pair again but add the argument `--no-prob1` or `--no-prob2`. If you have made changes that you don't want overwritten, add the argument `--rebuild` as well, otherwise it will be simplest to delete the entire directory.

## HFST and other alternative setups

If you're making a monolingual module that should use HFST/lexc, pass the option `--analyser=hfst` to apertium-init.py.

If you're making a pair where the "left" side (XXX in the above examples) uses HFST/lexc, pass the option `--analyser1=hfst` to apertium-init.py.

If you're making a pair where the "right" side (YYY in the above examples) uses HFST/lexc, pass the option `--analyser2=hfst` to apertium-init.py.

If you're making a pair where the both sides use HFST/lexc, pass the option `--analysers=hfst` to apertium-init.py.

See https://github.com/apertium/apertium-init for more documentation, or run `./apertium-init.py --help` for all options (you can e.g. also make pairs that don't use a statistical disambiguator, or don't use a Constraint Grammar disambiguator).

## Choosing an Analyser

Monolingual dictionaries can be set up to use 1 of 3 available formats: monodix, lexc, and lexd.

Monodix is best for languages that have very little conjugation (such as English) or where the conjugation is entirely with suffixes but the stem doesn't change (such as Spanish). Monodix is the default setting for apertium-init or it can be explicitly specified with `--analyser=lttoolbox`.

Lexc is best for languages where most of the conjugation is done with suffixes, potentially with some stem changes. Apertium-init will generate a Lexc dictionary with the option `--analyser=hfst`.

Lexd should be used for any language with prefixes, infixes, circumfixes, or other morphology that isn't suffixes. Apertium-init will generate a Lexd dictionary with the option `--analyser=lexd`.

If you're unsure which one to pick, Lexd will probably work well and generally involves less typing than either Monodix or Lexc.