?

Log in

No account? Create an account

Компьютерная лингвистика

Новостная лента www.solarix.ru

Previous Entry Share Flag Next Entry
Пример претензии к pymorphy2 в качестве поставщика морфологии для парсера
kelijah
Одна из основных проблем при использовании pymorphy2 в качестве морфологического анализатора для парсера видна на следующем примере. Вот результаты анализа слов в тестовом предложении "в огромном сарае лежало старое сено":

#0 в                    PREP
#1 огромном             ADJF,Qual,neut,sing,loct~0.666666 | ADJF,Qual,masc,sing,loct~0.333333
#2 сарае                NOUN,inan,masc,sing,loct
#3 лежало               ADJS,neut,sing~0.5 | VERB,impf,intr,neut,sing,past,indc~0.5
#4 старое               NOUN,inan,neut,sing,nomn~0.25 | NOUN,inan,neut,sing,accs~0.25 | ADJF,Qual,neut,sing,nomn~0.25 | ADJF,Qual,neut,sing,accs~0.25
#5 сено                 NOUN,inan,neut,Sgtm,sing,nomn~0.5 | NOUN,inan,neut,Sgtm,sing,accs~0.5



Смотрим на слово #3 "лежало". С формальной точки зрения краткая форма (ADJS) для прилагательного "лежалый" действительно будет "лежало". Но я даже без статанализа по корпусу уверен, что эта форма не употребляется вообще никогда. Поэтому достоверности 0.5 для варианта прилагательного и глагола выглядят очень странными.

Более того, во многих других случаях веса альтернатив у pymorphy2 такие же необоснованные. Поэтому в парсере пришлось вообще отказаться от учета этих весов, полагаясь только на свою статистику.

Но сделав такой шаг, сталкиваемся с другой напастью - предлоги. Вот список вариантов для "в", выдаваемый pymorphy2.parse():

PREP
NOUN,inan,masc,Fixd,Abbr sing,nomn
NOUN,inan,masc,Fixd,Abbr sing,gent
NOUN,inan,masc,Fixd,Abbr sing,datv
NOUN,inan,masc,Fixd,Abbr sing,accs
NOUN,inan,masc,Fixd,Abbr sing,ablt
NOUN,inan,masc,Fixd,Abbr sing,loct
NOUN,inan,masc,Fixd,Abbr plur,nomn
NOUN,inan,masc,Fixd,Abbr plur,gent
NOUN,inan,masc,Fixd,Abbr plur,datv
NOUN,inan,masc,Fixd,Abbr plur,accs
NOUN,inan,masc,Fixd,Abbr plur,ablt
NOUN,inan,masc,Fixd,Abbr plur,loct



Все падежные формы и оба грамматических числа существительного сильно замусоривают пространство перебора парсера. Для других одно- и двухбуквенных предлогов, союзов и частиц картина такая же неудобная. В первом листинге результатов для "в огромном сарае лежало старое сено" единственный вариант для "в" является как раз следствием подставленного "костыля", подавляющего 12 мусорных вариантов.