Текущие планы по вероятностной модели

Dec 17, 2012 09:18

1. У меня пока не исчезли остаточные подозрения в переобучении модели. Поэтому надо внести в обучеющий корпус побольше длинных, сложных предложений, особенно содержащих ФИО, топонимы, а также числовые объекты.

2. В принципе, если подозрения в переобучении не подтвердятся, то можно переносить модель в основной движок. Декодер и sequence labeler там - чистый C++, должен отлично интегрироваться. Модель читает свои параметры из двух бинарных дисковых файлов (собственно матрицы вероятностей и кодовая книга), поэтому вариант движка с SQL хранилищем останется без вер. модели.

3. Из идей на обдумывание - создавать и использовать несколько моделей с разной степенью огрубления. Дело в том, что вер. модель среди настроечных параметров имеет "параметр огрубления". Большее огрубление улучшает поведение в случае появления незнакомых паттернов (этакое сглаживание). Большая точность дает, собственно, повышенную точность выставления тегов, но, как и любая N-грамная модель, начинает ощущать недостаточно большой размер обучающей выборки, в которой не все сочетания слов встречаются.

4. Chunker. Во-первых, можно ввести иерархию - на самом верхнем уровне выделять NP и VP цепочки, на следующем - выделять группы прилагательных и группы наречий/обстоятельств. На самом деле, можно использовать даже нисходящий парсер, так как он умеет отлично работать с неполными предложениями и основными структурными компонентами. Во-вторых, результаты chunker'а напрямую можно использовать для "knowledge extraction". Точнее, меня сейчас интересует возможность для каждого глагола определить типичные паттерны, в которых он участвует. К примеру, глагол ПОЗВОЛИТЬ обычно употребляется с прямым дополнением в дательном падеже и инфинитивным дополнением справа "ПОЗВОЛЬТЕ НАМ СДЕЛАТЬ ЭТО.". А ПОВТОРИТЬ налагает на дательное дополнение еще одно условие - обычно можно ПОВТОРИТЬ кому-то, а не чему-то. Ну и так далее. Зная статистику употребления различных паттернов для глаголов, можно эффективно и устойчиво разбирать весьма искаженные тексты. И дополнительно этот алгоритм разбора позволяет делать интересные технические выкрутасы - например, он очень классно распараллеливается и реализует подход "сначала быстро и грубо, затем точнее и точнее".

chunker, синтаксический анализатор, shallow parser, вероятностная русская морфология, вероятностная модель, Морфологический анализ

Previous post Next post
Up