Подскажите, пожалуйста, по теме машинного перевода.

38 views
Skip to first unread message

anton.gorunov

unread,
Apr 11, 2012, 9:59:01 AM4/11/12
to kyi...@googlegroups.com
Я совсем недавно занялся изучением библиотеки NLTK (Python) и темы обработки естественных языков в целом. В моей идее, естественно, будут присутствовать неточности терминологии, т.к. в тему полностью я еще не въехал.
На данный момент меня интересует тема машинного перевода текстов. И есть небольшая идея, которая заключается в следующем:

1. Берем какой-либо текст, например, на немецком языке.
2. Переводим его через google translate на английский язык. (На этом этапе, мы позволяем готовому переводчику, разработанному специалистами, сделать наиболее точный машинный перевод. Естественно, в тексте присутствуют стилистические или даже грамматические ошибки и неточности перевода.)
3. Берем основное ключевое слово этого текста (возможно, весь title топика, если это статья в блоге)
4. Вводим запрос в google.com и получаем 100 - 1000 страничек текстов на данную тематику на английском языке.
5. Составляем корпус из всех этих текстов.
6. Полируем переведенный текст с помощью готового корпуса.

Я хотел поинтересоваться у людей, сталкивавшихся с подобными задачами, каким образом/инструментами/алгоритмами можно реализовать 5й и 6й пункт. Обязательно ли наличие пар текстов на немецком и точного перевода на английский? Можно ли откалибровать машинный текст по тематически текстам до вменяемого состояния? Т.к. мне приходит в голову лишь поиск наиболее встречающихся биграмм/триграмм в корпусе и какой-то критерий по которому мы заменяем их в переведенном тексте если они никогда не встречаются рядом. А также, каким образом проверяется грамматика текста с помощью nltk.

Также буду благодарен за тематические полезные ссылки.

Andrey

unread,
Apr 11, 2012, 12:28:40 PM4/11/12
to kyi...@googlegroups.com
По-моему, ваша идея не прокатит.

Объясню почему: гугл-транслейт это типичный пример статистического переводчика основанного на модели построения пар N-грамм на базе параллельных корпусов текстов. При работе он находит в своем корпусе наиболее длинные цепочки вашего исходного текста и ставит им в соответствие цепочки нужного языка. Насколько мне известно, за основу берут 5-граммы, если в корпусе нет нужной 5-граммы, берут 4-грамму и т.д.

То есть, если полученный таким образом перевод вы попытаетесь пофиксить би- и три- граммами из того же корпуса (читай гугля нужные тексты), то скорее всего вы ухудшите качество.

У гугла есть две основных проблемы:
1) Отсутствие тематической направленности перевода, т.е. база параллельных корпусов общая. Последнее время у них идут работы в этом направлении и, вроде, качество начало расти. Возможно, тут сработает ваша задумка по поводу составления тематического корпуса, но тогда его нужно не просто гуглить по ключам, а делать некий семантический фильтр, чтоб документы были действительно по смыслу релевантными  переводу. И второе, скорее всего большую часть "тематичности" исходного документа вы потеряете еще при его переводе, ибо правит бал статистика, а значит более часто употребляемые вещи затирают специфику.
2) Сложности в наборе параллельных корпусов. Когда корпусы параллельных текстов будут достаточно большого объема, качество гугл-транслейта станет значительно лучше. Пока же переводы идут в два этапа: исходный язык -> английский -> нужный язык.
Reply all
Reply to author
Forward
0 new messages