Компьютерные Вести, Минск, N 15, 2004
Эксклюзивное интервью, в котором рассказывается об истории создания морфологического анализатора RCO Morphology, а также затрагивается ряд сопутствующих вопросов, связанных с компьютерной лингвистикой и поисковыми системами.
Морфологический анализатор – основа поисковых систем
Современный мир изобилует информацией и даже перегружен ею. Поэтому вопрос обработки текстов становится очень острым, особенно если принять во внимание постоянный рост интернета.
Любопытный продукт для морфологического анализа слов русского языка выпускает российская компания “Гарант-Парк-Интернет”. Рассказать о RCO Morphology любезно согласился ведущий разработчик направления RCO Александр ЕРМАКОВ.
– Александр, каковы практические стороны применения разрабатываемого вами морфологического анализатора?
– Прежде всего это создание механизма поиска, осуществляющего расширение поисковых запросов словоформами. Так, RCO Morphology применяется всеми пользователями наших продуктов RCO for Oracle и RCO for BackOffice для поиска документов в базах данных Oracle, SQL Server и других источниках.
Другое применение – это системы семантического анализа текста, требующие определения грамматических характеристик слов – аналитические системы из области компьютерной или, как сейчас модно говорить, конкурентной разведки. Сюда относятся большинство разрабатываемых нами заказных решений, которые используют другие наши продукты, построенные на базе RCO Morphology: RCO Semantic Network, RCO Syntactic Engine и RCO Pattern Extractor.
- Расскажите, пожалуйста, как создавалась RCO Morphology? Приходится ли проводить научные исследования или все дело в программировании?
– История началась с того, что в 1996 году мы приобрели у компании “Агама” морфологический словарь и исходный программный код простейшего морфологического анализатора, производящего поиск по этому словарю. Накопившийся к 2000 году опыт использования анализатора в информационно-поисковых системах выявил недостаточную точность разбора слов, явные ошибки и невысокое быстродействие старой морфологии. Вследствие этого перед нашими разработчиками встала задача: исследовать различные способы кодирования морфологической системы русского языка и алгоритмы быстрого анализа слов как на основе точного поиска в словаре, так и по аналогии с похожими словами из словаря. В результате была найдена и реализована в программном коде наиболее рациональная система описания русской морфологии, которая обеспечила максимальное быстродействие при минимальном объеме хранимых лингвистических данных. Так, общий объем словаря в 115 тысяч слов (около 4 миллионов словоформ) и данных, необходимых для анализа неизвестных слов, не превышает 3-х Мбайт, обеспечивая при этом разбор 100 тысяч известных слов в секунду или около 20 тысяч неизвестных на процессоре P2-400. От старой морфологии было унаследовано только словарное наполнение, которое было автоматически конвертировано в новую систему описания словоизменения, в процессе чего было сразу выявлено несколько тысяч регулярных ошибок в словаре.
Следующий качественный скачок был сделан нами в 2003 году, когда заказчикам потребовалось решение задачи выделения в тексте имен персон и названий организаций, число которых в языке потенциально неисчислимо и которые часто могут совпадать по написанию с известными словами или географическими наименованиями. Для этих целей был разработан и включен в библиотеку еще один класс алгоритмов, позволяющий анализировать слова на основе правил словообразования и словоизменения с очень высокой степенью достоверности, а также произведен ряд доработок существующих алгоритмов, которые позволяют строить различные гипотезы о природе и словоизменении слов в тексте.
Помимо усовершенствования алгоритмов, происходившего в два этапа, непрерывно производилась коррекция и расширение морфологического словаря. Так, на сегодняшний день хороший морфологический словарь должен содержать около 100 000 слов, т.е. порядка 3-4 миллионов словоформ. Очевидно, что во всех словарях такого объема еще присутствуют ошибки в части редко встречающихся слов, которые постоянно “всплывают” и устраняются. При этом качество морфологического словаря напрямую зависит от того, насколько активно он используется потребителем, насколько устойчива обратная связь с разработчиком и какова ответственность разработчика словаря перед потребителем. Например, если анализатор используется в простых поисковых системах массового пользования типа поисковиков интернета, то в этом случае указанные факторы не работают. Иначе обстоит дело у нас. Наш морфоанализатор используется в самых разных системах, в том числе и в системах компьютерной разведки, будучи включенным в один контур обработки с множеством других алгоритмов синтаксического и семантического анализа, работа которых напрямую зависит от качества морфологического разбора и которые постоянно тестируются. Большинство наших заказчиков – это аналитические отделы государственных силовых ведомств и коммерческих консалтинговых структур, которые выступают промежуточным звеном между нами и конечным потребителем услуг информационного поиска и ответственность которых высока. Соответственно, такие заказчики постоянно нас “достают”, сообщая обо всех неточностях и ошибках в продуктах.
В результате словарь постоянно уточняется. Так, например, только среди глаголов нами были изменены формы более чем 3000 слов. Изменения коснулись, прежде всего, прямых и возвратных форм, которые зачастую представляют разные слова (к примеру: торговать и торговаться, договорить и договориться). Ошибка их отождествления – стандартная ошибка большинства (если не всех) морфоанализаторов, которые ведут свой словарь от словаря Зализняка, в котором информация о возвратных формах вообще отсутствовала, и они были построены по “общим” правилам, которые в действительности постоянно нарушаются в языке. Попробуйте ввести подобные запросы в поисковые машины интернета – при поиске по прямой форме всегда будет искаться и возвратная, что существенно снижает точность. А тонкий семантический анализ текста, который проводим мы, требует на определенном этапе даже различения семантически близких глаголов, имеющих различные модели управления (например: целовать (кого?) и целоваться (с кем?)).
Так что, отвечая на вторую часть вопроса, скажу, что при создании морфологического анализатора основную роль играет не лингвистическая наука и даже не оригинальные алгоритмические решения, а годы постоянной и кропотливой работы по расширению и настройке системы используемых лингвистических правил, а также устранению ошибок в словаре.
- Насколько сейчас востребованы такого рода продукты?
– Рынок зреет, и разработчики информационно-аналитических систем проявляют все больший интерес к нашим продуктам. Но основными пользователями создаваемых систем пока выступают представители силовых структур и консалтинговых компаний.
Говорить о тенденциях продаж эксклюзивных программных продуктов (а именно к таким относится все лингвистическое обеспечение), мне кажется, вообще проблематично. Правда, два последние года интерес явно возрастал, но это во многом было связано с выборами. К сожалению, пока одно из основных применений лингвистических технологий, за которое клиент готов платить деньги – это несколько “грязные” задачи из области политтехнологий: мониторинг образа объекта в информационном поле, автоматизированный подбор информации к досье и т.п. Хочу надеяться, что скоро тенденция изменится, и потребители наших продуктов начнут более активно прибывать и из других, более “мирных”, сфер.
- Каким Вам видится будущее систем поиска?
– Во-первых, в обычных поисковиках при контекстном поиске документов должна существенно возрасти точность выдаваемых результатов. Это будет достигнуто за счет привлечения алгоритмов разрешения омонимии и выделения объектов-словосочетаний, которые должны обрабатываться как единое целое (прежде всего, наименования физических и юридических лиц). Попробуйте сегодня найти в интернете станицы, содержащие публикации с упоминанием “А.Е. Ермаков” – вам дадут всех Ермаковых, а по запросу “Смоленский” для вас не смогут отделить прилагательное от фамилии. Что уж тут говорить об исправлении опечаток, даже самых очевидных! Все это должно решиться в ближайшие годы.
Во-вторых, должны произойти качественные изменения в сфере организации взаимодействия поисковых машин с пользователем – взаимодействие должно становиться все более напоминающим диалог. Речь идет не о естественном языке (это утопия), а о том, что поисковая система, найдя информацию, относящуюся к запросу пользователя (с точки зрения заложенных в нее алгоритмов), должна не просто вываливать “простыни” из сотен документов, а структурировать найденный материал по различным критериям, шаг за шагом сужая область поиска. Например, в ответ на запрос “Смоленский” поисковик должен предложить поискать либо среди прилагательных, либо среди фамилий. После того, как пользователь выбрал фамилию, машина должна предложить уточнить запрос именем, а далее – показать основные темы, связанные с данной персоной, расклассифицировав их по семантическим разрядам: события, персоны и организации, различные классы объектов.
И последнее, что ожидается видеть в недалеком будущем – это поиск документов, содержащих ответ на запрос, заданный на естественном языке. Хочу подчеркнуть: речь, опять же, идет не о поиске машиной ответа на вопрос, что требует от машины интеллектуальных операций и явно нелингвистической компетентности. Речь идет о поиске в тексте синтактико-семантических конструкций, изоморфных конструкций запроса с точки зрения общих правил языка, т.е. готового ответа на вопрос, выраженного в близкой к вопросу форме.
Готовые алгоритмы для всего вышеперечисленного уже есть, однако их применение на масштабах интернета сдерживается высокими требованиями к вычислительным ресурсам.
- Как выглядят RCO Morphology на фоне аналогичных продуктов?
– Спорить о том, чья морфология лучше – дело неблагодарное, в частности, потому, что оценка иногда зависит и от особенностей прикладной задачи. Однако отмечу один прецедент. В прошлом году один из наших государственных клиентов проводил сравнительный анализ морфологических библиотек, представленных на российском рынке, с целью закупки и поставки в российские регионы в составе своих поисковых средств. Во всех заслуживающих внимания библиотеках были обнаружены приблизительно одинаковые недостатки, особенно в области анализа неизвестных слов, однако по критерию быстродействия и наличию дополнительных возможностей была выбрана наша RCO Morphology. Замечу, что это сравнение происходило еще до этапа введения в библиотеку нового класса алгоритмов анализа неизвестных слов и прочих усовершенствований.
Наиболее очевидное достоинство нашей морфологии – цена на продукт ниже, чем в других компаниях. Мне кажется, что причина в том, что этот продукт сам по себе не является основным для нас и наших клиентов, он обычно используется в составе других наших продуктов. Потому, вероятно, цена на RCO Morphology занижена, в чем нас и обвиняют некоторые конкуренты.
- Какие проблемы возникают при разработке алгоритмов для RCO Morphology?
– Для неподготовленного читателя замечу, что хотя RCO Morphology – это всего лишь модуль морфологического разбора отдельных слов, заложенные в нем алгоритмы далеко не тривиальны, а его роль в системах анализа текста трудно переоценить. Морфологический анализатор должен включать в себя как словарь наиболее известных слов языка, так и алгоритмы обработки любых допустимых в языке слов. Кроме того, морфоанализатор должен обладать гибкими настройками, которые позволяют генерировать гипотезы о словоизменении слов с учетом различных допущений, что позволяет использовать модуль совместно со средствами разрешения омонимии, когда грамматические формы различных слов совпадают по написанию. Например, словоформа “Банка” может обозначать не только “банк” или “банку”, но и фамилию. Омонимия – это не исключение, это норма русского языка.
- Спасибо, Александр, что нашли время и ответили на мои вопросы.
Беседовал Павел БАДЯЛИК
Продукт RCO Morphology поставляется в виде динамической библиотеки (DLL) для Windows и предназначен для разработчиков информационно-поисковых и аналитических систем, требующих высокоточной обработки текста. Модуль позволяет: определять все грамматические характеристики словоформ (часть речи, падеж, спряжение и т.п.) и лексико-семантические разряды (имя, фамилия, организация, географическое название), приводить различные грамматические формы слова к нормальной форме, получать все грамматические формы слова и проверять орфографию. Подробнее о разработке можно узнать по адресу: www.rco.ru.