?

Log in

No account? Create an account

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

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

Previous Entry Share Next Entry
Добавлена обработка OOV слов в лемматизаторе rulemma
kelijah
В питоновской библиотеке rulemma добавлена обработка несловарных (out-of-vocabulary) слов. Большинство OOV-слов образуются по относительно небольшому количеству словоизменительных правил русского языка, так что модель неплохо справляется с ними. При этом используются результаты частеречной разметки, чтобы снимать неоднозначности типа крокодил - проходил.

В качестве примера можно посмотреть на разбор фразы "Мяукая, голодные кошки ловят жирненьких хрюнделей":

import rutokenizer
import rupostagger
import rulemma

lemmatizer = rulemma.Lemmatizer()
lemmatizer.load('../tmp/rulemma.dat')

tokenizer = rutokenizer.Tokenizer()
tokenizer.load()

tagger = rupostagger.RuPosTagger()
tagger.load()
print('Loading finished')

sent = u'Мяукая, голодные кошки ловят жирненьких хрюнделей'
tokens = tokenizer.tokenize(sent)
tags = tagger.tag(tokens)
lemmas = lemmatizer.lemmatize(tags)
for word, tags, lemma, *_ in lemmas:
    print(u'{:15}\t{:15}\t{}'.format(word, lemma, tags))


Результат:

Мяукая          мяукать         VERB|VerbForm=Conv
,               ,               PUNCT
голодные        голодный        ADJ|Case=Nom|Degree=Pos|Number=Plur
кошки           кошка           NOUN|Case=Nom|Number=Plur
ловят           ловить          VERB|Mood=Ind|Number=Plur|Person=3|Tense=Notpast|VerbForm=Fin
жирненьких      жирненький      ADJ|Case=Acc|Degree=Pos|Number=Plur
хрюнделей       хрюндель        NOUN|Case=Acc|Number=Plur



Как видно, и частеречная разметка, и лемматизатор корректно обработали слово "хрюнделей".

  • 1
Добрый день! А можно ли такого же результата добиться в основной версии GrammarEngine?

Привет,

>А можно ли такого же результата добиться в основной версии GrammarEngine?

Нечто подобное может консольный парсер (https://github.com/Koziev/GrammarEngine/tree/master/src/demo/ai/solarix/argon/ParseText/Parser). Например, для слова "хрюнделя" в предложении "я вижу хрюнделя" парсер выведет в XML результатах верную лемму "хрюндель":


хрюнделя
2
хрюндель
СУЩЕСТВИТЕЛЬНОЕ


Но для "ты смотрел на хрюнделей" будет неверная лемма, хотя rulemma выведет правильную лемму.


  • 1