Статистическая частеречная разметка
Статистический подход к компьютерной морфологии основан на ме- тодах машинного обучения, о которых подробно рассказывается в пятой главе нашей книги. Кроме того, о них можно узнать из тех работ, которые приводятся в списке литературы в конце данной главы. А здесь мы под- робно рассмотрим только один вид статистического анализа слов — авто- матическую частеречную разметку (part of speech tagging, POS-tagging). В результате этой разметки каждому слову в предложении будет простав-
лена метка или тег (от английского слова tag — бирка) соответствующей части речи. Например, если на входе компьютер получит предложение Дождь стучит в стекло, то на выходе он должен выдать последователь- ность частей речи существительное, глагол, предлог, существительное. Или, если заменить существительное символом N, глагол символом V, а предлог символом P, то на выходе получится цепочка NVPN.
Как научить компьютер проводить автоматическую разметку? Каза- лось бы, надо дать ему словарь, где дождь и стекло будут отмечены как существительные, а стучит — как глагол. Но слово стекло может ока- заться глаголом прошедшего времени, ведь язык неоднозначен. Кроме то- го, чисто статистические методы обходятся без словарей.
Тут можно вспомнить, что в русском языке после предлога будет ид- ти, скорее всего, существительное, а не глагол. Поэтому при автоматиче- ской разметке надо учитывать не только тег каждого слова, но и тот кон- текст, в котором оказывается этот тег.
Проще всего, если у нас уже есть хороший размеченный корпус — большой набор текстов, где у каждого слова в предложении проставлен соответствующий ему тег:
Дождь
|
стучит
|
в стекло
|
N
|
V
|
P N
|
С помощью такого корпуса можно обучить компьютер размечать но- вые предложения.
Для начала на основе корпуса надо составить два множества:
Множество словоформ Ψ — набор всех слов этого корпуса в том ви- де, в каком они находятся в тексте. Ведь для компьютера слова дождь и дождя — это разные цепочки символов.
Множество тэгов Ω — набор всех тэгов, которые использовались в этом корпусе. Их может быть, например, два десятка, но вряд ли больше сотни, даже если привычные части речи разбить на несколько категорий.
Каждое предложение в нашем корпусе можно рассматривать как це- почку x1, x2,…xn. Такая цепочка состоит из n элементов множества Ψ, где n
Соответствующие словам этого предложения теги тоже можно рас- смотреть как цепочку, последовательность элементов из множества тегов Ω. Эту цепочку можно представить так: y1, y2,…yn.
Иными словами, можно сказать, что цепочке словоформ x1, x2,…xn из множества Ψ соответствует цепочка тегов y1, y2,…yn из множества Ω.
Задача статистического анализатора — найти для любой цепочки сло- воформ из множества Ψ наиболее вероятную последовательность тегов из множества Ω. Например, если у нас есть предложение Пришел добрый
пёс, то для него теоретически возможны любые последовательности из трех тегов: NNN, NVV, NPV и все другие комбинации. Но компьютер дол- жен прийти к выводу, что самая вероятная последовательность для данно- го предложения — это VAN (глагол, прилагательное, существительное).
Как научиться считать и сравнивать такие вероятности? В следующем разделе мы рассмотрим один способ решения этой проблемы.
Триграммная скрытая Марковская модель
Автоматическую частеречную разметку можно провести с помощью триграммной скрытой Марковской модели (Trigram hidden Markov model — Trigram HMM). Эта модель строится на основе корпуса. Для нее нам понадобятся упоминавшиеся в предыдущем разделе множества Ψ и Ω, а также два набора параметров, каждый из которых соответствует некото- рой условной вероятности:
Параметры s(w|t).
Параметры q(t|u, v).
Параметр s(w|t) — это вероятность того, что тегу t соответствует слово w. Например, s(пёс|N) — это вероятность того, что тегу N (сущест- вительное) соответствует слово пёс. Казалось бы, логичнее использовать обратный параметр — вероятность появления тега t, если у нас есть слово w, но интересующий нас параметр именно такой — в качестве условия выступает тег, и оценивается вероятность соответствия ему того или иного слова.
С помощью имеющегося корпуса этот параметр легко оценить для всех словоформ w из множества Ψ и тегов t из множества Ω. Здесь нужно сделать важное замечание: с помощью корпуса мы не сможем вычислить вероятности чего-либо. Мы сможем только оценить вероятность, выбрать ее правдоподобное значение. Для параметра s(w|t) это можно сделать сле- дующим образом:
Вначале нужно вычислить с(t) — сколько раз в корпусе встретился тег t. Например, сколько раз там встретился тег N (допустим, он встретил- ся 10 000 раз).
Затем посчитать с(t → w) — сколько раз в корпусе тегу t соответст- вовала словоформа w. В нашем примере — сколько раз тегу N соответст- вовала словоформа пёс (допустим, 20 раз).
После этого можно посчитать s(w|t) как результат деления с(t → w) на с(t). Это значение может рассматриваться как вероятность того, что тегу t будет соответствовать словоформа w:
s(w|t) = с(𝑡 → w)
с(𝑡)
В нашем примере s(пёс|N) = с(𝑁 → 𝑘ёс) = 20 = 1
с(𝑁)
10 000
500
4) Оставшийся параметр q(t|u, v) — это вероятность появления тэга t при условии того, что перед ним находятся теги uv. Например, q(N|V, A) — это вероятность появления тега N при условии того, что перед ним нахо- дятся теги VA. Эта вероятность для русского языка довольно велика. Такая последовательность тегов встречается, например, в сочетании съел нев- кусный суп или в предложении Произошла странная история.
На основе корпуса этот параметр можно посчитать для всех возмож- ных сочетаний тегов. Самый простой способ вычислить параметр q( t|u, v) похож на вычисление параметра s( w|t).
Первым делом вычисляется с(uvt) — сколько раз в корпусе встре- чается цепочка из идущих подряд тегов uvt. В нашем примере — сколько раз встречалась цепочка тегов VAN (допустим, 200 раз).
Затем нужно посчитать с(uv) — сколько раз в корпусе встречается цепочка из идущих подряд тегов uv. В нашем примере — сколько раз встретились теги VA (допустим, 80 000 раз).
После этого q(t|u, v) вычисляется путем деления с(uvt) на с(uv). Это соответствует вероятности того, что тег t будет идти после цепочки тегов uv. У нас получится 200/80000 = 1/400.
При вычислении параметра q( t|u, v) необходимо учитывать начала и концы предложений. Если какой-то тег встретился в самом начале пред- ложения, то у него нет словоформ, которые могли бы выступить в роли u и
Достарыңызбен бөлісу: |