Что означают цифры в фразе-таблице giza++?

Я искал значение чисел в выводе таблицы фраз giza++ на официальном сайте (и в руководстве в формате pdf): http://www.statmt.org/moses/?n=FactoredTraining.ScorePhrases

И это то, к чему я пришел.

Допустим, это строка из фразы

načiniti na koji ||| way in which ||| 0.833333 * 0.33333 * ||| * ||| 12 3 1

это означает:

e = "načiniti na koji"
f = "way in which"

count(e) = 12
count(f) = 3
count(e, f) = 1

p(f|e) = count(f, e) / count(e) = 1/12 = 0.833333
p(e|f) = count(f, e) / count(f) = 1/3 = 0.333333

Все это имеет смысл.

Тем не менее, если я сделаю текстовый поиск в текстовом редакторе, я получу:

count("načiniti na koji") = 4
count("way in which") = 9

т.е. совершенно разные цифры.

Еще одна странная вещь:

osnivanje i ||| the ||| 0.000124085 * 1 * ||| 0-0 ||| 8059 1 1

Итак, учитывая объяснение с официального сайта,

count("the) = 1,

а также

count("osnivanje i") = 8059.

Одним из объяснений может быть то, что это может быть просто наоборот.

Но реальный счет ("the") - 21466.

Существуют ли другие учебные пособия / руководства, которые лучше разъясняют содержание выходных файлов giza++?

1 ответ

Итак, я понял, что должно получиться что-то вроде этого:

  • Гиза бежит через параллельный корпус

  • всякий раз, когда две фразы выровнены, они сбрасываются в текстовый файл, назовем его f_phrases

Так что обозначения могут быть:

e - иностранный член Гизы

f - английский член гизы

После того, как это сделано, f_phrases сортируется двумя способами, и вот как мы получаем два файла таблицы

  1. extract.o.sorted

Пары сортируются так, чтобы все английские переводы определенной иностранной фразы (e) были рядом друг с другом, например

analiza i      analysis and
analiza i      analysis and
analiza i      analysis and
analiza i      analysis and
analiza i      analysis and
analiza i      analysis and
analiza i      analysis and
analiza i      analysis and
analiza i      analysis and
analiza i      analysis and
analiza i      analysis and
analiza i      analysis and
analiza i      analysis and
analiza i      and
analiza i      evaluation and
analiza i      the analysis and
analiza i      through evaluation and

поэтому мы заключаем, что

count(e) = count("analiza i") = 17

После этого пары сортируются таким образом, чтобы все переводы на определенный язык определенной фразы (f) на иностранном языке были рядом друг с другом, например

  1. extract.inv.sorted
analysis and              Analysis and
analysis and              analiza i
analysis and              analiza i
analysis and              analiza i
analysis and              analiza i
analysis and              analiza i
analysis and              analiza i
analysis and              analiza i
analysis and              analiza i
analysis and              analiza i
analysis and              analiza i
analysis and              analiza i
analysis and              analiza i
analysis and              analiza i

и мы видим, что count(f) = count("analysis and") = 14

учитывая, что это та же таблица, просто отсортированная другим способом, мы видим, что count("analysis and", "analiza i") = count("analiza i", "analysis and") = 17

Результирующая таблица фраз выглядит так:

analiza i|||analysis and|||     14      |||             17|||               13

e       ||| f        ||| count(f) ||| count(e)   ||| count(e, f) = count(f, e)

Когда вычисляются условные вероятности, используется обратный порядок, как в таблице фраз:

p(e|f) = p(e, f) / p(f) phrase translation probability 
p(f|e) = p(f, e) / p(e) inverse phrase translation probability 
Другие вопросы по тегам