Доклад на 3-ей конференции «Конкурентная разведка в металлургии» (19-20 января 2005 г., Москва, гостиница «Балчуг Кемпински»)
Доклад освещает проблемы, возникающие при ведении конкурентной разведки по документам СМИ, и рассказывает о программе RCO Fact Extractor, которая предназначена для автоматического анализа текста и поиска фактов, связанных с заданными персонами и организациями.
Введение
Всплеск интереса к теме сегодняшней конференции, появление ряда монографий и коммерческих программных систем [1] позволяют предположить, что к настоящему моменту уже сформировались определенные схемы для хранения, обработки и утилизации знаний, связанных с объектами конкурентной разведки. Отработаны или будут вскоре отработаны методики эффективного применения этих знаний для решения конечных задач, вызванных потребностями оперативного анализа ситуации на рынке, сбора досье на его игроков, оценки эффективности PR-компаний и других сфер обеспечения безопасности бизнеса.
Но сегодня в любой технологической схеме, обеспечивающей сбор и обработку информации из открытых источников (электронных документов СМИ), существует узкое место. В этом месте сырые данные – мега- и гига-байты текста на естественном языке – должны превращаться в первичные знания об интересующих объектах – гипотезы и факты. Именно эти первичные знания представляют собой тот исходный материал, работая с которым – отсеивая, верифицируя, сопоставляя (возможно, с привлечением специальных компьютерных программ) – аналитик формирует конечное знание, которое представляет собой аналитический отчет, прогноз или просто новую запись в досье или базе данных.
Необходимость в столь трудоемкой операции, как превращение текста в знания, породила две различные стратегии хранения и переработки электронных документов.
Наиболее популярный подход предполагает использование поисковой машины в качестве средства фильтрации информационного массива, а в качестве хранилища документов – электронный архив, базу данных или Интернет. При этом всякий раз, когда возникает необходимость в подборе информации для формирования первичных знаний об объекте для решения конкретной задачи, человек формирует запрос, а затем перебирает заголовки найденных документов и просматривает текст в тех из них, которые показались интересными. Недостатки использования поисковиков в Интернете настолько известны всем, что обосновывать тезис об их непригодности в качестве инструмента ведения компьютерной разведки не имеет смысла, тем более что их целевое назначение иное. Важнейший же недостаток – невозможность качественного поиска документов по персонам и организациям – сегодня отсутствует и во всех остальных поисковых машинах, за исключением одной, насколько мне известно [2]. Другой принципиальный недостаток всех поисковых систем заключается в том, что они изначально ориентированны на поиск документов по содержащимся в них словам, а не на поиск информации, связанной с предметом поиска. При индексировании документов любая поисковая машины сохраняет лишь информацию о позициях слов, встретившихся в документах, но ничего не знает о значениях этих слов и их связях друг с другом. В лучшем случае такие системы способны грубо классифицировать найденные документы или выдать статистику слов, часто употреблявшихся в тексте совместно со словами запроса, например [3]. Однако точность классификации и установления связей оказывается низка вследствие принципиальной примитивности используемых для этих целей подходов. Можно составлять сколь угодно сложные поисковые запросы, можно применять сколь угодно изощренную математику, но если программа не понимает язык, на котором написан текст, то никакое шаманство не обеспечит приличную точность поиска и классификации. В итоге всю “свалку” вываленных поисковиком документов обычно приходится разгребать руками за исключением тех тривиальных случаев, когда искомые факты лежат на поверхности. Тем не менее, какую-то информацию в ряде случаев удается выудить и при таком подходе, что, с учетом его дешевизны, делает его популярным.
Рис. 1. Типовая схема ведения конкурентной разведки с использованием поисковой машины. Красным цветом отмечены изменения в схеме, возникающие при использовании программы RCO Fact Extractor.
Второй подход предполагает обязательное ведение собственного электронного архива, в котором все входящие документы, число которых обычно составляет тысячи и даже десятки тысяч в день, просматриваются экспертами и индексируются по тем критериям, которые считаются целесообразными в данной организации. Так, обычно к каждому документу эксперт приписывает упомянутые в нем персоны и организации, заранее определенные рубрики, к которым относится документ. Наиболее сложная обработка предполагает выделение из документов фактов различного типа (биографические данные, контакты, участие в событиях) и занесение их в установленном формате в базу данных или специализированную программу для хранения знаний, ведения досье и т.п. Очевидно, что именно такой подход с предварительной семантической обработкой текста документа и избирательным занесением в индекс той информации, которая может оказаться востребованной, обеспечивает впоследствии максимальную точность и скорость поиска. Недостаток подхода: высокая стоимость, связанная с необходимостью ручной обработки документов.
Рис. 2. Типовая схема ведения конкурентной разведки с предварительным индексированием документов. Красным цветом отмечены изменения в схеме, возникающие при использовании программы RCO Fact Extractor.
Для эффективного решения задачи превращения текста электронных документов в первичные знания мы разработали интеллектуальную программу RCO Fact Extractor, которая может применяться в составе и первой, и второй из вышеописанных схем, что иллюстрируют рисунки 1 и 2.
RCO Fact Extractor: программа для поиска фактов
RCO Fact Extractor – это интеллектуальная программа для компьютерного анализа текста на русском языке, которая находит в нем описания фактов (или артефактов) нужного типа, например, упоминания о встречах, договоренностях, приобретении собственности, классифицирует и упорядочивает их. Основная сфера приложения программы – аналитические задачи из области компьютерной разведки, требующие высокоточного поиска информации, например, автоматический подбор материала к досье на целевой объект или же мониторинг определенных сторон его активности, освещаемых в СМИ. Помимо собственно программы с графическим интерфейсом для Windows мы выпускаем пакет для разработки программного обеспечения (SDK), на базе которого построен Fact Extractor и который позволяет включать возможности анализа текста в собственные приложения.
Программа может обрабатывать документы в популярных текстовых форматах из различных источников – файловой системы, баз данных, заданных web-сайтов.
Скорость анализа документов зависит от количества объектов, по которым ведется мониторинг, и от частоты их упоминания в документах и находится в пределах от 15 до 100 Мб в час (на персональном компьютере класса Pentium-IV). Такая скорость позволяет производить либо оперативный анализ информации (дневная подборка документов) в реальном времени, либо ретроспективный анализ большого текстового массива, предварительно отфильтрованного при помощи любой поисковой машины.
Результат работы программы – таблица, которая содержит информацию о найденных фактах, связанных с объектами мониторинга, и может экспортироваться в html-формат для формирования отчета или для загрузки в стороннее приложение, работающее с уже структурированными данными – первичными знаниями.
Основные логические сущности, которыми оперирует Fact Extractor:
- факты, описания которых ищутся в тексте;
- объекты мониторинга, по которым производится сбор фактов;
- атрибуты объектов, к которым относятся факты;
- досье, в которое собирается информация обо всех найденных фактах;
Фактом называется некоторая ситуация (событие), которая представляет интерес для пользователя программы, и описание которой следует искать в тексте. Каждый факт имеет свой тип – название ситуации (например, “покупка акций”) и список ролей возможных участников-фигурантов (“покупатель”, “продавец”, “эмитент акций”). Лингвистические описания фактов требуемого типа – шаблоны для поиска в тексте – либо создаются пользователем при помощи дополнительной программы-настройщика, либо приобретаются у производителя. В стандартный пакет поставки Fact Extractor входят готовые описания для нескольких типов фактов общего характера, позволяющие выделить все события, в которых участвует объект, и всех соучастников этих событий, без детальной классификации.
К объектам мониторинга, по которым ведется сбор фактов, относятся персоны и организации. Описание объекта включает в себя целый ряд полей, значения которых должны задаваться пользователем. Например, для персоны необходимо задать обязательные поля “Фамилия” и “Имя”, желательно указать “Отчество”, а при возможности полезно задать такие поля, как “Синонимы”, “Контекстные синонимы”, “Референтный контекст”, “Эквивалентные по смыслу”. Не вдаваясь в смысл этих полей, отмечу, что полное описание объекта позволяет правильно выделить все его упоминания в тексте, включая полные и краткие наименования, косвенные обозначения, а также различить объекты с одинаковыми фамилиями, именами, должностями и др.
Атрибут – это комплексная характеристика определенной стороны объекта или его деятельности, которая представляет конечный интерес для пользователя-аналитика. Экспертное суждение об атрибуте объекта может складываться на основе фактов различного типа. Например, атрибут “политический профиль персоны” может формироваться из множества фактов типа “кого поддержал на выборах?”, “за что критикует власть?” и т.п. В то же время один и тот же факт может интерпретироваться по-разному и отражать несколько сторон объекта, т.е. относиться к нескольким его атрибутам. Поэтому каждый атрибут определяется пользователем, который задает способ объединения и интерпретации фактов.
В итоге все найденные программой факты группируются по атрибутам объектов и собираются в таблицу, называемую досье (Рис. 3). Каждая запись досье содержит следующую информацию об одном найденном факте или о множестве похожих фактов:
- объект мониторинга и его атрибут, к которым относится факт;
- значение атрибута – фигурант факта в интересующей роли, извлеченный из текста;
- количество упоминаний о факте в обработанных документах;
- комментарий – прочие фигуранты факта, упомянутые в тексте.
..
Рис. 3. Общий вид интерфейса пользователя Fact Extractor. В окне слева – объекты и атрибуты, для удобства, объединенные в логические группы. С каждым объектом можно связать свои атрибуты, перетащив их мышью. В окне справа – список найденных фактов, связанных с атрибутом “покупает” выбранной группы объектов “МДМ”. Атрибут настроен так, что факты сгруппированы по значению фигуранта “предмет покупки”. В окне снизу – найденные описания факта покупки Петровского народного банка – 6 цитат из документов с возможностью просмотра их полного текста.
Особенности технологии, реализованной в программе
RCO Fact Extractor воплотил в себе комплекс наиболее продвинутых технических решений из области искусственного интеллекта и компьютерной лингвистики, непрерывно развиваемых в нашей компании на протяжении четырех последних лет. Аналогов большинства из этих решений на рынке не существует, не говоря уже обо всем их комплексе. Часть наших решений уже используется в дополнительных компонентах к системам X-files [4], Медиалогия [5], Convera RetrievalWare [6].
Ниже описаны две ключевые особенности, делающие программу RCO Fact Extractor уникальным продуктом как потребительской, так и с инженерной точки зрения.
Высокоточное выделение всех упоминаний об объектах в тексте документа
Рисунок 4 иллюстрирует качество, с которым Fact Extractor выделяет упоминания обо всех заранее неизвестных персонах и организациях. А привлечение априорной информации об известных объектах (задание детализированного описания) позволяет правильно распознать еще большее количество упоминаний о них.
Рис. 4. Пример автоматического выделения программой всех упоминаний о заранее неизвестных объектах в тексте документа “Черная металлургия”. Красным цветом выделены персоны, синим – организации. В квадратных скобках программой указано имя объекта, приведенное к канонической форме, со ссылкой на предшествующее упоминание этого объекта в документе, если таковое имелось. Как видно, программа не только выделила и привела к единообразному виду имена всех объектов, но и сумела отождествить местоимение “он” с “Липухиным Юрием”, “ГОК” c “Лебединским горно-обогатительным комбинатом”, “банк” c “Кредобанком”, а “предприятие” – c “Запсибом”.
Лингвистический анализ содержания текста
Для поиска описаний фактов содержание текста представляется в форме семантической сети, которая строится лингвистическим процессором – интеллектуальным ядром программы. Семантическая сеть содержит все значимые слова и словосочетания, упоминавшиеся в тексте – наименования предметов, персон, организаций, событий и признаков, связанные различными типами связей (Рис. 5).
Семантическая сеть позволяет абстрагироваться от многих особенностей текста, не существенных для описания фактов. Такая сеть инвариантна к форме предложения и порядку слов с точностью до логической структуры, выбранной автором для описания ситуации – пропозиции. Например, конструкциям “Иванов купил акции” и “акциях, которые были куплены Ивановым”, как разным способам выражения одной пропозиции, будут соответствовать одинаковые сети. В то же время пропозициям вида “Иванов становится покупателем акций Лукойла” и “покупка акций Лукойла – дело рук Иванова” будут соответствовать иные сети.
Рис. 5. Пример семантической сети, соответствующей предложению “В ноябре 2003 года Ивановым была совершена сделка по покупке акций Лукойла у Петрова”. Прямоугольники со скругленными углами представляют узлы сети, которые имеют атрибуты: слова-словосочетания (Name) и их семантические разряды (SemanticType). Элипсы представляют связи между узлами, имеющие атрибуты: тип связи (RelationName), семантический падеж (RelationCase) и предлог (RelationConnector).
Шаблон факта, используемый при поиске, задается также в виде семантической сети, подобной искомой в тексте, но в ее узлах и связях при помощи логических выражений указываются условия, которым должны удовлетворять узлы и связи искомой сети (Рис. 6). Как правило, в некоторых узлах содержатся конкретные слова и их синонимы, которые должны присутствовать в описании факта. Некоторые узлы, соответствующие искомым фигурантам факта, содержат не слова, а метки, которые обозначают роли этих фигурантов.
Рис. 6. Пример шаблона, распознающего факты, выраженные пропозицией вида “Покупатель совершает действие по приобретению у продавца акций предприятия”. Три узла, обозначенные метками BUYER, ISSUER и SELLER, представляют возможных фигурантов факта “покупка акций” в ролях “покупатель”, “эмитент” и “продавец” соответственно. Любые слова из текста, соответствующие этим узлам, заносятся в досье при нахождении факта. Наличие узла SELLER вместе с идущей к нему связью является не обязательным при поиске, так как продавец может и не указываться в тексте, и именно пара “покупатель-эмитент” представляет интерес для факта покупки акций.
Для настройки шаблонов фактов используется модуль с графическим интерфейсом, который позволяет строить шаблоны на основе типовых фраз русского языка, т.е. обучать программу на примерах. Основа шаблона – узлы и связи сети – автоматически строится программой, после чего остается проставить ограничения в узлы в виде списков синонимов, указать роли искомых фигурантов факта, пометить обязательных и факультативных фигурантов. Эта процедура не требует специальных лингвистических знаний, однако предполагает хорошее владение русским языком для понимания тех способов, которыми факт может быть описан в тексте, учета возможных синонимов. После приобретения определенной сноровки через несколько дней работы с программой, создание и тестирование набора шаблонов для хорошего выделения одного типа фактов (обычно достаточно 5-10 шаблонов) занимает около часа.
Возможность подключения словарей-фильтров на выбранных фигурантов факта позволяет легко создавать клоны поисковых шаблонов для решения частных задач. Например, при наличии общего шаблона для выделения фактов типа “покупка” очень легко создаются шаблоны для фактов типа “покупка акций”, “покупка недвижимости” и другие. На базе универсальных шаблонов для выделения всех событий, в которых участвует объект, легко создаются шаблоны для выделения конкретных классов событий – например, конфликтов, скандалов, намерений и планов.
Заключение
Как видно, идеология обработки информации, реализованная в программе RCO Fact Extractor, совершенно отличается от идеологии, принятой в поисковых системах – наша программа ориентирована на поиск и классификацию описаний фактов, а не самих документов. Человеку не нужно листать сотни страниц с заголовками найденных документов, одна половина которых вообще не относится к делу, а девяносто процентов другой половины содержит описание одних и тех же, уже известных фактов. Человеку не нужно читать документ, название которого не позволяет точно идентифицировать ту информацию в нем, которая относится к объекту поиска. Документы вторичны и их просмотр необходим лишь в качестве источников, позволяющих получить дополнительную информацию по заинтересовавшим фактам.
Когда сегодня я слышу рекламу какой-нибудь интеллектуальной системы, возникает скептический вопрос “А каково на практике качество анализа информации, каковы полнота и точность, насколько можно доверять системе?”. Причина скепсиса в том, что все, периодически заявляемые то здесь, то там, якобы ”интеллектуальные” системы в области компьютерного анализа текста на поверку оказывались фикцией. Но это не относится к Fact Extractor’у – программа действительно находит в тексте около половины нужных описаний фактов с весьма небольшим количеством ошибок. Формальные эмпирические оценки полноты и точности составляют примерно 55 и 95 процентов. По итогам работы программа выглядит достаточно «умной», а кроме того, потенциал ее интеллекта и интеллекта ее разработчиков пока не исчерпан – компьютерная лингвистика в нашей компании продолжает развиваться.
Игорь Ашманов однажды сказал приблизительно следующее: “разработчики сегодняшних поисковиков дали клятву полноте поиска. В итоге, черпая из большой помойки, они просто выливают тебе ведро, но его содержимое остается прежним”. Разработчики Fact Extractor’а дали клятву точности! Черпая из помойки – текстового массива из открытых источников – мы выдаем качественно переработанное содержимое…
Литература
- http://go.it2b.ru/ [обзорный сайт по конкурентной разведке]
- http://www.integrum.ru/service/af-corp-new.html [ИПС Артефакт]
- http://www.galaktika.ru/2/products/zoom/ [Галактика ZOOM]
- http://go.it2b.ru/it2b3.view8.page1.html [ИАС X-Files]
- http://www.medialogia.ru/ [ИАС Медиалогия]
- http://www.convera.ru/ru/products/ [Convera RetrievalWare] .