Илья Сегалович и лингвистика в Яндексе Михаил Маслов, Алексей Зобнин



Pdf көрінісі
Дата15.03.2017
өлшемі0,74 Mb.
#9767



Илья Сегалович 

 

и лингвистика в Яндексе



 

Михаил Маслов, Алексей Зобнин

 


Лингвистические проекты Ильи

 

 

Участие Яндекса в проекте НКРЯ

 

Морфологический анализ и синтез для неизвестных слов



 

Снятие морфологической омонимии

 

Практическая транскрипция имен собственных 



 

Расстановка ударений и определение размера стиха

 


Морфологический 

анализ и синтез для 

неизвестных слов

 


Морфологический анализ и синтез

 

1995-


96: поисковая система и конкорданс для ЭНИ 

«Грибоедов», «Информ

-

Норматив»



 

Обработка несловарных слов

 

– Поиск в словаре слова  с максимальной длиной совпавшего 



«хвоста»

 

– Генерация гипотез моделей словоизменения



 

– Попытка выбрать лучшую модель по статистике корпуса 

ЭНИ

 

 



(И. Сегалович, М. Маслов. Диалог

-1998) 


Морфологический анализ и синтез

 

1995-


96: поисковая система и конкорданс для ЭНИ 

«Грибоедов», «Информ

-

Норматив»



 

Обработка несловарных слов

 

– Поиск в словаре слова  с максимальной длиной совпавшего 



«хвоста»

 

– Генерация гипотез моделей словоизменения



 

– Попытка выбрать лучшую модель по статистике корпуса 

ЭНИ

 

 



(И. Сегалович, М. Маслов. Диалог

-1998) 


Морфологический анализ и синтез 

 

глокая   

{глокать? глокий?} 



куздра   

{куздра?} 



штеко   

{штекий? штеко?} 



будланула  {будланул? будланула? будлануть?} 

бокра   

{бокр? бокра? бокрый?} 



и   

 

{и} 



кудрячит 

{кудрячит? кудрячита? кудрячитый? кудрячить?} 



бокренка 

{бокренк? бокренка? бокренок?} 

 


Национальный корпус 

русского языка

 


Создание НКРЯ

 


10 

Размер НКРЯ

 

2004 год:



 

– корпус со снятой омонимией: ≈700 тыс. словоуп.

 

– основной корпус: ≈11 млн словоуп.



 

Сейчас:


 

– корпус со снятой омонимией : ≈6 млн. словоуп.

 

– основной корпус: ≈250 млн. словоуп.



 

– всего ≈

500 

млн. словоуп.



 

11 

Снятие 


 

морфологической 

 

омонимии


 

12 

Снятие омонимии

:  

постановка задачи



 

 

 



Цели

 

– поисковый конкорданс (для поиска по Вебу не нужен)



 

– увеличение точности поиска

 

– уменьшение объема индекса



 

 

Задача



 

– построить алгоритм выбора правильного текста леммы с 

высокой точностью и высокой производительностью 

 

(10



3

 



 10

4

 



слов в секунду)

 

 



 

 

 



13 

Снятие омонимии

подходы


 

Детерминированные  методы (ЭТАП, Диалинг)

 

– Недостаточная точность



 

– Небольшая производительность

 

 

«Вероятностные» методы (HMM и т.п.)



 

– Нужен размеченный корпус

 


14 

Идеи метода

 

На входе: результат морфоразбора (mystem)



 

  начала  {начинать=V,пе=прош,ед,изъяв,жен,сов}  

          {начало=S,сред,неод,(им,мн|род,ед|вин,мн)} 

 

Базовая единица словаря контекстов:



 

  <омоним, элемент_контекста, лемма> 

 

Вариант «очевидного» представления контекста



 

  V,пе,…|S,сред,неод,…   



<.>+2   

начало  


p1 

  V,пе,…|S,сред,неод,…   



<.>+2   

начинать  p2 

 

 

 



(Ю. Зеленков, И. Сегалович, В. Титов, Диалог

-2005) 


 

 


15 

Ключевая идея метода

 

 

Нормализующие подстановки!



 

  начала =>  ала(1о|3инать) 

 

Не только 



начала

, но и


 

         гнала 

         знала 

       ужинала 

    вспоминала 

       окунала 

             … 

 

 



 

 

(Ю. Зеленков, И. Сегалович, В. Титов, Диалог



-2005) 

 

 



 

 

(Ю. Зеленков, И. Сегалович, В. Титов, Диалог



-2005) 

16 

Пример из словаря контекстов

 

 

 



 

 

 



 

 

ала(1о|3инать)   <.>+2    1о      0.67 



ала(1о|3инать)   <.>+2    3инать  0.33 

 

 



 

 

(Ю. Зеленков, И. Сегалович, В. Титов, Диалог



-2005) 

17 

Используемые корпуса

 

 

 



 

 

 



 

Корпус со снятой омонимией НКРЯ

-2004   

700 тыс. словоуп.

 

Веб


-

корпус «трудных омонимов»

   

 

 



    

2 млн. словоуп.

 

 

 



 

 

 



(Ю. Зеленков, И. Сегалович, В. Титов, Диалог

-2005) 


18 

Сравнение методов снятия 

омонимии



Зеленков Ю.Г.

  


19 

Практическая 

 

транскрипция 



 

собственной лексики

 


20 

Постановка задачи

 

Личные имена, географические названия, названия групп, 



брендов и т. д.

 

Применение в 200



– запросы к «большому» поиску

 

– запросы Я.Музыке



 

и т.п.


 

– поиск по адресной книге книге

 

в Я.Почте



 

21 

Постановка задачи

 

 

Задача



 

– Построить универсальный вероятностный метод 

автоматической транскрипции

 

Данные



 

– 100 тыс. билингв (из Википедии и т.п.) для 17 языков

 


22 

Методы практической транскрипции 

(Ю. Зеленков)

 

Триграммы



 

Марковские модели

 

Байесовский подход



 

Метод сегментов

 

» Сегмент –



 

группа рядом стоящих гласных 

или рядом стоящих согласных букв

 

И т.п. (всего методов –



 

штук 8)


 

 


23 

Методы практической транскрипции 

(выбор Ильи)

 

Триграммы



 

Марковские модели

 

Байесовский подход



 

Метод сегментов!

 

» Сегмент –



 

группа рядом стоящих гласных 

или рядом стоящих согласных букв

 

И т.п. (всего методов –



 

штук 8)


 

 


24 

Практическая транскрипция: метод 

сегментов

 

 



Обучение

 

– Выравниваем билингвы по сегментам

 

– Строим список пар



-

переводов сегментов

1.

учитываем левый и правый контекст



 

2.

Вычисляем вероятности



 

 

Применение



 

Из всех вариантов переводов выбирается вариант с 

наибольшей суммой вероятностей

 

 



25 

Выравнивание сегментов

 

Выравниванием побуквенно:



 

 

s  t  a  -  t  e  m  e  n  t 



с  т  е  й  т  -  м  е  н  т 

 

 



 

 

 



 

 

 



26 

Выравнивание сегментов

 

Собираем сегменты, убираем пропуски в оригинале:



 

 

st    a     t  e  m  e    nt 



cт    ей    т  -  м  е    нт 

 

 



 

 

 



 

  

 



27 

Выравнивание сегментов

 

 

Убираем пропуски в «переводе»:



 

 

st    a      tem     e    nt 



cт    ей      тм     е    нт 

 

 



 

 

 



 

      


 

 


28 

Метод сегментов

пример


 

 

[

r

 e n au lt] => [

р

 е н о *] (язык fr) 

   r          => 

р(0.95) *(0.03) рь(0.01) ж(0.01) 

(^)r          => 



р(0.99) 

ж(0.01) 


   r(e)       => 

р(0.98) 

ж(0.02) 


   r(e n)     => 

р(0.95) 

ж(0.05) 


29 

Метод сегментов

пример


 

 

[r 

e

 n au lt] => [р 

е

 н о *] (язык fr) 

  

   



e        =>

 е(0.49)*0.40 э(0.07) а(0.02) и(0.02) 

  

(r)e        =>



 

е(0.69)*0.25 

э(0.03) а(0.02) и(0.01) 

     

e(n)     => 



е(0.90)

 э(0.06) а(0.02)*0.02 

(^ r)e        => 

е(0.93)

 э(0.04) ё(0.02) ей(0.01) 

     e(n au)  => 

е(1.00) 


30 

Метод сегментов

пример


 

 

[r e 

n

 au lt] => [р е 

н

 о *] (язык fr) 

     n        => 



н(0.95)

 

нь(0.04)*0.01 



  (e)n        => 

н(0.95)

 

нь(0.03)*0.02 



     n(au)    => 

н(1.00) 

(r e)n        => 



н(0.92)

 

нь(0.07)*0.01 



     n(au lt) 

- отсутствует в выборке 



31 

Метод сегментов

пример


 

 

[r e n 

au

 lt] => [р е н 

о

 *] (язык fr) 

     au       => о(0.54) ау(0.40) 

а(0.03) яу(0.02) оу(0.01) 

  (n)au       => ау(0.54) о(0.38

ай(0.08) 

     au(lt)   => 



о(0.96)

 

ай(0.04) 



(e n)au       => ау(0.50) о(0.50) 

     au(lt $) => о(0.96) 

ай(0.04) 


32 

Метод сегментов

пример


 

 

[r e n au 

lt

] => [р е н о 

*

] (язык fr) 

      lt      => льт(0.43) 

лт(0.39)*0.16 лть(0.01) ль(0.01) 

  (au)lt      => 



λ(0.85)

 

ть(0.06) л(0.03) лт(0.03) льт(0.03) 



      lt($)   => λ(0.48) льт(0.33) лт(0.16)

 л(0.02) ль(0.01) 

(n au)lt      => 



λ(0.80)

 л(0.20) 



33 

Обратная транскрипция 

 

на русский язык



 

 

Проблема



 

– Метод с вероятностями переводов работает плохо, 

точность ≈0.5

 

 



Решение

яндексология



 

– Яндексология всех вариатов  работает тоже плохо

 

– Выбираем 2



-

3 самых вероятных варианта

 

– Применяем к ним яндексологию



 

– Точность ≈

0.9-0.95

 


34 

Обратная транскрипция: примеры

 

 

милен демонжо    => Mylene Demongeot 



 

марион котияр    => Marion Cotillard 

марион котийяр   => Marion Cotillard 

марион котийар   => Marion Cotillard 

марион котилар   => Marion Cotilard 

  

Эйяфьятлайокудль =>  Eyjafjallajokull 



Эйяфьядлайёкюдль => Eyjafjyadlajokull 

Эйяфьядлайёкудль => Eyjafjyadlajokull 

 


35 

Новое применение 2012

-13 



 



карты 

всего мира по

-

русски (В. Титов)



 

36 

Расстановка ударений 

 

и определение размера 



стиха

 


37 

Постановка задачи

 

Автоматическая расстановка ударений и определение 



размера стиха в проекте «Стихолюб» 

(2009) 

 

Решение:



 

Автоматическая расстановка ударений, фонетическая 

транскрипция

 

Определение схемы стиха:



 

– размер (6 силлабо

-

тонических и 3 тонических размера)



  

– клаузула

  

Анализ строфы в целом на основе внутренней симметрии, 



т.е. выбор схемы с наименьшей энтропией

 


38 

Постановка задачи

 

Автоматическая расстановка ударений и определение 



размера стиха в проекте «Стихолюб» 

(2009) 

 

Решение:



 

Автоматическая расстановка ударений, фонетическая 

транскрипция

 

Определение схемы стиха:



 

– размер (6 силлабо

-

тонических и 3 тонических размера)



  

– клаузула

  

Анализ строфы в целом на основе внутренней симметрии, 



т.е. выбор схемы с наименьшей энтропией

 


39 

Определение размера стиха

 

ВАРИАНТ 1

 (AAbb)


 

Шв

е́



д, р

у́

сск



и

й — к


о́

л

е



т, р

у́

б



и

т, р


е́

ж

е



т. 

 

⌣՛−́−́−́−́



 

 

Я4ж



 

Б

о



й б

а

р



а

б

а́



нн

ы

й, кл



и́

к

и



, скр

е́

ж



е

т, 


 

⌣−⌣−́−́−́

 

 

Я4ж



 

Гр

о



м п

у́

ш



е

к, т


о́

п

о



т, рж

а́

нь



е

, ст


о́

н, 


 

⌣−́−́−́−́

 

 

Я4м



 

И

 см



е́

рть, 


и

 

а́



д с

о

 вс



е́

х ст


о

р

о́



н. 

 

⌣−́−́−́−́



 

 

Я4м



 

 

 



ВАРИАНТ 2

 (AAbb)


 

Шв

е́



д, р

у́

сск



и

й — к


о́

л

е



т, р

у́

б



и

т, р


е́

ж

е



т. 

 

(0)−0−1−1−1−(1)



 

 

Дл5



 

Б

о



й б

а

р



а

б

а́



нн

ы

й, кл



и́

к

и



, скр

е́

ж



е

т, 


 

⌣−⌣−́−́−́

 

 

Я4ж



 

Гр

о



м п

у́

ш



е

к, т


о́

п

о



т, рж

а́

нь



е

, ст


о́

н, 


 

⌣−́−́−́−́

 

 

Я4м



 

И

 см



е́

рть, 


и

 

а́



д с

о

 вс



е́

х ст


о

р

о́



н. 

 

⌣−́−́−́−́



 

 

Я4м



 

 


40 

Определение размера стиха: новые 

применения

 

Найдено 60



 

тыс. ошибок в поэтическом корпусе НКРЯ

 

Автопоэт


 

 



составление стихов из поисковых запросов, 

твитов, заголовков новостей и т.п.

 

 


41 

Пример творчества Автопоэта

 

курить бамбук что это значит



 

зачем коту усы и хвост

 

егэ по химии задачи



 

тамбов мужчина средний рост

 

 

куда пойти в москве в июне



 

иван тургенев накануне

 

чикаго платье с бахромой



 

кальян купить курить домой

 

 

все сериалы межсезонья



 

сломался кухонный комбайн

 

малифисента фильм онлайн



 

значенье имени хавронья

 

 

редиска перец лук морковь



 

зачем топтать мою любовь

 

http://autopoet.yandex.ru 



42 

Mystem 3.0 

 


43 

Программа MyStem: новая версия 

 

 

MyStem 



 

свободно распространяемый морфологический 



анализатор для русского языка

 

http://api.yandex.ru/mystem/



 

Первая версия программы была написана Ильёй 

Сегаловичем в 1997 году

 

Мы представляем версию MyStem 3.0



 

Её основные отличия: 

 

– ранжирование разборов, 



 

– поддержка фикслистов, 

 

– разные форматы вывода





44 

Ранжирование разборов

 

Задача №1 —



 

ранжировать разборы без учета контекста:

 

 

 



есть

 

 



есть

 = V, 


несов,

 

пе



 

  

есть



 = INTJ 

  

быть



 = V, 

нп

 



45 

Ранжирование разборов

 

Задача №1 —



 

ранжировать разборы без учета контекста:

 

 

 



есть

 

 



есть

 = V, 


несов,

 

пе



 

  

есть



 = INTJ 

  

быть



 = V, 

нп

 



 

 

айпад

 

 

айпада ?= S, муж, неод = вин, ед | им, ед



 

 

айпад ?= ADV =



 

 

айпад ?= S, муж, од = вин, мн | род, мн



 

 

айпада ?= S, жен, неод = род, мн



 

  

 



  

46 

Ранжирование разборов

 

Должно получиться примерно так:



 

 

 



есть

 

2. 



есть

 = V, 


несов,

 

пе



 = 

инф


 

3.  


есть

 = INTJ = 

1.  

быть


 = V, 

нп

 = (...) 



 

 

есть

 

 

айпада



 ?= S, 

муж,


 

од

 = ( 



вин,

 

мн



 | 

род,


 

мн

 ) 



 

айпад


 ?= ADV= 

1. 


айпад

 ?= S, 


муж,

 

неод



 = ( 

вин,


 

ед

 | 



им,

 

ед



 ) 

 

айпада



 ?= S, 

жен,


 

неод


 = 

род,


 

мн

 



47 

Частоты для ранжирования

 

Берем из корпуса со снятой омонимией (НКРЯ)



 

Учитываем частоты слов из веба

 

 

Однако корпус не полный, и запоминать частоты для каждой 



словоформы расточительно.

 

 



Поэтому мы «факторизуем» эти частоты, настраивая их 

отдельно для

 

‒ окончаний каждой схемы,



 

‒ основ каждой схемы,

 

‒ самих морфологических схем.



 

48 

Более формально

 

Пусть зафиксирована схема морфологического разбора 



s

и в слове 



w 

выделены основа 



stem 

и окончание 



flex

 

Считаем, что события «встретить основу слова» и 



«встретить окончание слова» в рамках этой схемы 

независимы



 





 


 



.

word



P

scheme

P

scheme

|

flex

P

scheme

|

stem

P

=

=

word

P

scheme

P

scheme

|

word

P

=

=

word

|

scheme

P

49 

Оценка качества

 

Тестировали на подкорпусе НКРЯ со снятой омонимией



выбирая самый вероятную лемму из предложенных. 

 

 

Стратегии:



 

‒ первая лемма: 



90%

‒ первая по алфавиту лемма: 



89%

‒ самая вероятная лемма в новой модели: 



95,5%!  

 


50 

Снятие омонимии

 

Опция –d включает переранжирование разборов с учётом 



контекста. 

 

 



Модель обучена с помощью технологии MatrixNet.

 

В качестве факторов используются в том числе 



«нормализующие подстановки» из модели Ю. Зеленкова, И. 

Сегаловича и В. Титова (Диалог

-2005).  

 

Точность первого разбора (по тексту леммы) составляет 



97,8%.  

 


51 

Дополнительные опции

 

Опция --generate-all



 

строит все гипотезы для 

неизвестных слов, а не только те, где совпадение с 

образцом максимально

 

Опция --filter-gram



 

разрешает строить только разборы 

с указанными грамматическими тегами

 

 



mystem --filter-gram V  

батарея


 { 

батареть


 ?= V, ipf, intr = Inpraes, ger }  

 


52 

Спасибо за внимание!



 


Достарыңызбен бөлісу:




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет