Модель языка или языковая модель (language model) — это способ вычислять вероятность для всех теоретически возможных предложений языка. Эти способы могут быть разными, поэтому и модели языка сущест- вуют разные.
Чтобы построить модель языка, машине нужен корпус — большой набор текстов. Чем больше, тем лучше. При этом желательно, чтобы его тексты по стилю не очень отличались от тех текстов, с которыми будет работать система. А если система должна работать с самыми разными текстами, то и корпус должен состоять из текстов самых разных.
Множество всех словоформ корпуса обозначим греческой буквой ν. Это множество может быть очень большим, но оно конечное — число слов в нем ограничено. Поэтому множество ν можно задать обычным пе- речислением.
ν = {этот, большой, дракон, мальчик, увидел, мальчика, …} (4)
Предложения в языке — это цепочки слов из множества ν. В конце предложения для технических нужд необходим символ, обозначающий конец предложения. В письменных текстах это обычно точка. Но для ма- шины лучше использовать какое-то другое обозначение. Например, напи- сать слово STOP.
Итак, предложения как цепочки слов могут быть, например, такие:
этот большой дракон увидел мальчика STOP
этот мальчик большой STOP (5) дракон этот этот STOP
дракон дракон дракон STOP
Каждому предложению, составленному из слов множества ν, необхо- димо приписать некоторую вероятность. Число предложений, которые можно построить из слов ν, не ограничено, поскольку длина предложения теоретически может быть какой угодно.
Как посчитать эту вероятность? Есть очень простой и очевидный способ. Считаем общее число предложений в корпусе. Допустим, их 10 000. Затем для каждого предложения подсчитываем, сколько раз оно встретилось в нашем корпусе. Например, предложение Мальчик увидел дракона встретилось 5 раз. Делим 5 на 10 000, получаем вероятность. Для предложения Мальчик увидел дракона вероятность равна 0,0005. Для ос- тальных предложений из корпуса вероятность высчитывается точно так же. А для отсутствующих в корпусе предложений устанавливается веро- ятность, равная нулю.
У этого способа есть один важный недостаток. Оно приписывает ну- левую вероятность всем предложениям, которые в нем не встретились.
Необходимо научиться оценивать вероятность для всех предложений, даже для тех, которые раньше нам никогда не встречались. Это можно сделать, анализируя фрагменты предложений — сочетания слов. При этом важно помнить, что вероятность появления слова зависит от того, какие слова появились перед ним. После слова манная скорее всего будет идти либо каша, либо крупа, либо запеканка. А если нам встретилось сочетание съешь манную, то за ним уже почти наверняка пойдет слово кашу, и ни на что другое надеяться не следует. Съешь манную запеканку в Интернете не встретилось.
Иными словами, нас интересует вероятность слова xn, при условии, что перед ним идут слова x1, x2…xn-1. Это можно записать с помощью фор- мулы условной вероятности:
P (xn | x1, x2…xn-1) (6)
Зная условную вероятность для каждого слова, мы можем посчитать вероятность любого предложения, состоящего из слов x1, x2, x3 … xn. Для этого можно просто перемножить условные вероятности каждого отдель- ного слова:
Р(x1, x2, x3 … xn) =
= P(x1) · P(x2 | x1) · P (x3 | x1, x2) …· P (xn | x1, x2…xn-1) (7)
Эта несколько упрощенная запись означает, что вероятность цепочки слов x1, x2, x3 … xn равна вероятности появления первого слова x1, помно- женной на условную вероятность появления второго слова x2 (при усло- вии, что ему предшествует слово x1), помноженной на условную вероят- ность появления третьего слова x3 (при условии, что предыдущие два сло- ва — это x1 и x2), и так далее, до условной вероятности последнего слова xn.
Однако вычислять такую длинную цепочку очень сложно, особенно учитывая, что для этого нам потребуется слишком большой корпус исход-
ных данных. Но даже и в нем могут не встретиться какие-то необходимые нам длинные цепочки.
Чтобы избежать этого, надо либо сильно увеличить корпус, стараясь включить в него все возможные сочетания, либо изобрести какой-то дру- гой способ вычисления вероятности.
Наиболее естественный альтернативный подход — опираться не на всю цепочку слов в предложении, а только на два-три предшествующих слова.
Этот метод был разработан в конце ХХ века, задолго до появления компьютеров, русским математиком А. А. Марковым. Он предположил, что не так важно, учитываем ли мы всю длинную предшествующую це- почку или берем только один, два или три ближайших элемента — услов- ная вероятность во всех этих случаях будет отличаться не очень сильно. Конечно, из этого обобщения бывают исключения. Но их мало, и для ста- тистики они не очень важны.
Так появились цепи Маркова — статистические модели, позволяю- щие сильно упростить вычисление условной вероятности.
Достарыңызбен бөлісу: |