Как разрешить mkcls, занимающему много памяти и времени для выравнивания слов, используя GIZA++?

Я использую GIZA++ для выравнивания слов по кусочкам от Europarl corpus.

Прежде чем тренировать модель выравнивания, используя GIZA++ мне нужно использовать скрипт mkcls для создания классов, которые необходимы для алгоритма скрытой модели Маркова как такового:

mkcls -n10 -pcorp.tok.low.src -Vcorp.tok.low.src.vcb.classes

Я попробовал это с небольшим корпусом размером 1000 строк, и он работает правильно и завершен в течение нескольких минут. Теперь я пробую это на корпусе с 150000 строк, и он занимает 100% от одного моего процессора (Six-Core AMD Opteron(tm) Processor 2431 × 12)

Прежде чем приступить к занятиям, я предпринял необходимые шаги, чтобы разбить токены, опустить все верхние регистры и отфильтровать строки, содержащие более 40 слов.

Кто-нибудь имеет подобный опыт на mkcls для GIZA++? Как это решается? Если кто-то сделал то же самое в Europarl corpus, сколько времени вам понадобилось, чтобы запустить mkcls ?

2 ответа

Попробуйте mgiza ( http://www.kyloo.net/software/doku.php/mgiza:overview), которые поддерживают многопоточность. Это должно значительно сократить количество времени, необходимое для выполнения вашей задачи.

Поскольку mkcls сценарий для MOSES а также GIZA++ не распараллеливается, и количество предложений и слов в 1,5 миллиона слов в Europarl corpus, занимает около 1-2 часов, чтобы сделать словарный запас классов.

другие этапы обработки до GIZA++ (а именно plain2snt, snt2cooc) занимает гораздо гораздо меньше времени и вычислительной мощности.

Другие вопросы по тегам