|
Статистический машинный перевод
Blog »Профессия - переводчик
Статистический машинный перевод (SMT) основывается на модели, в которой вычисляется вероятность появления в переводе каждого слова из имеющегося набора переведенных предложений, и выбирается вариант с наибольшими вероятностями. Для того, чтобы метод заработал, требуется наличие большой базы существующих правильных переводов, выполненных людьми: моя оценка минимального объема существующих переводов для получения условно-приемлемого качества SMT - три миллиона слов. Я встречал обоснование достаточности меньших объемов (700 тысяч слов), но я ему не очень верю... На текущий момент SMT является наиболее успешной реализацией идеи машинного перевода: она действительно работает. Ее не всякий может себе позволить (крупные базы переводов есть очень не у всех), но... Приведу пример того, как это работает. Предположим, что нужно перевести "Bush is an idiot" на русский язык. Для начала алгоритмом оптимизации поиска отсекаются переводы, в которых не встречаются слова из исходной фразы, чтобы не перебирать слишком большой объем данных. Дальше определяется набор статистических вероятностей; например, выясняется, что для слова "Bush" есть два всплеска: на слове "куст" и на слове "Буш" (оба этих русских слова встречаются в переводах английских фраз, содержащих слово Bush). Аналогично для "idiot" найдется "идиот" и пара нецензурных вариаций. Для "is" и "an" тоже что-нибудь определится, но, с большой степенью вероятности, результат не будет иметь явно выраженных пиков и будет "прибит" шумодавами SMT (может, и зря). Но на втором проходе выясняется, что вероятность встретить сочетание слов "куст" и "идиот" в одном предложении практически равна нулю, а "Буш" и "идиот" - наоборот, встречается повсеместно. Аналогичные действия производятся для последовательности слов в переводе и синтаксиса. Конечный перевод будет выглядеть как "Буш идиот" (что, безусловно, правильно). На уровне перевода отдельных фраз это работает более-менее сносно. Следующий шаг в развитии SMT - перенести этот прием на уровень текста: должен анализироваться весь текст, потом система спустится на уровень абзацев, а потом - на уровень предложений. Посик и анализ при этом существенно усложняются, но зато MT может начать "улавливать" контекст и выдавать правильный набор слов. Что-то такое в природе есть, но реально работающие системы ограничиваются статистическим анализом уровня предложений, что снижает качество. Интересно тут следующее: для системы совершенно неважно, как устроен язык, какие у него правила и исключения, как переводится то или иное слово, с какого на какой переводим... На предпоследнем Localization World на семинаре по SMT раздел "вопросы и ответы" с ведущим Kirti Vashee
Я млел. Просто млел :) Понятно, что и тут есть куча деталей, которые нужно учитывать.
Comments
|