Как считать параметры
Чтобы модель IBM-2 работала, необходимо научиться вычислять два основных параметра этой модели: q(j | i, k, m) и t(х | y). Точнее, приходит- ся говорить не о вычислении этих параметров, а об их примерной оценке на основе имеющегося у нас параллельного корпуса.
Представим вначале идеальную ситуацию. У нас есть большой раз- меченный параллельный корпус. Выравнивание в нем проведено не только по предложениям, но и по словам. С помощью такого идеального корпуса параметры оцениваются легко и естественно. Рассмотрим, как это проис- ходит.
Если у нас есть параллельный размеченный корпус, то можно его представить в виде тройки значений (х(l), y(l), a(l)). Количество этих троек равно числу переведенных фрагментов, которое обозначим как n. Мы бу- дем называть их предложениями, но они могут состоять и из других фраг- ментов текста. Рассмотрим каждый элемент этой тройки отдельно.
х(p) — это набор исходных предложений х(1), х(2)… х(n), каждое их них состоит из mp слов: х(p)1 х2(p) … хmp(p), при этом p здесь обозначает порядко- вый номер предложения в корпусе.
y(p) — это набор конечных предложений, переводов. Их тоже n. Каж- дое переведенное предложение состоит из kp слов: у(p)1 у(p)2 … у(p)kp.
a(p)— это массив выравнивания, в нем столько же элементов, сколько в исходном предложении: a(p)1 a(p)2 … a(p)mp. Напомним, что в массиве вы- равнивания a(p) хранятся указания на то, с каким словом в конечном пред- ложении связано определенное слово в исходном предложении. Например, если a(239)2 = 3, это означает, что в исходном предложении номер 239 вто- рое слово переведено с помощью третьего слова в конечном предложении.
Если на материале корпуса определены такие тройки, то параметры считаются очень просто. Для этого компьютер должен просмотреть каж- дую тройку и посчитать следующие значения:
сколько раз в исходном корпусе встретилось каждое слово — значе- ние с(х);
сколько раз это слово было переведено с помощью слова у — обозна- чим его как с(х ►y);
сколько раз слово за номером i в исходном предложении было связано со словом номер j в конечном предложении, если длины предложе- ний, соответственно, m и k — значение с(j| i, m, k);
сколько раз вообще позиция i встречалась в исходном предложении, если длины исходного и конечного предложений были равны, соот- ветственно, m и k — значение с(i, m, k).
После того, как на материале корпуса будут сосчитаны все эти значе- ния, параметры модели вычисляются по принципу оценки максимального правдоподобия:
q(j | i, k, m) = с(j| i,m,k) t(х | y) = с(х►𝑦)
(27)
с (i,m,k ) с(х)
При обработке корпуса просматривается каждая тройка, для которой выполняются однотипные операции:
для каждой тройки просматриваются все слова в переведенном пред- ложении (для всех i от 1 до kp);
для каждого из них просматривается каждое слово в исходном пред- ложении — начиная с нулевого слова (для всех j = 0 до mp; напомним, ноль в массиве выравнивания возникает в тех случаях, когда какое- нибудь слово в исходном предложении не имеет аналога в переводе);
если a(p)i = j, то на единицу увеличиваются следующие значения:
c(х(p) j ►у(p) i) c(х (p)j)
c(j | i, m p, k p)
c(i, m p, k p)
Когда весь корпус обработан, значения параметров вычисляются по формулам (27)
Рассмотрим это на примере. Допустим, No money — это предложение номер 239 в исходном корпусе. Его перевод — русское предложение Денег нет.
х (239) = No money, m 239 = 2 у (239) = Д енег нет, k 239 = 2
а(239) = <2, 1>, значит, а(239)1 = 2, а(239)2 = 1 (первое слово в исходном предложении соответствует второму в переводе, а второе — первому).
Всего получается 6 вариантов, так мы рассматриваем i от 1 до 2 и j от 0 до 2. Для каждого сочетания i и j нас интересует, выполняется ли равен- ство a(239)i = j
Запишем результаты в форме таблицы.
Достарыңызбен бөлісу: |