В ходе анализа данных часто возникает необходимость извлечения из текста сущностей разных типов, включая названия компаний, организаций, локаций, наименования национальных валют, имена людей и т.д.
Проблема точности при извлечении сущностей из текста
И без того непростая задача по извлечению сущностей из текста осложняется тем, что сами сущности в большинстве случаев сильно зависят от контекста, а одна и та же сущность в пределах текста может принимать самые разнообразные формы. Это легко представить на примере сущностей класса “персоны”. Например, если человека зовут Стив Майкл Джонсон, в одном и том же тексте могут быть использованы его имя (Стив), имя и фамилия (Стив Джонсон), фамилия и официальное обращение (г-н Джонсон) и др. Но все это разнообразие — лишь часть проблемы: в конце концов, не так уж и трудно определить, что все это — варианты одного полного имени. Главная сложность состоит в том, что текст может ссылаться на конкретного человека, не прибегая к его имени.
Трудности анализа гарантийных рекламаций
Рассмотрим для примера отчеты о дорожно-транспортных происшествиях для страховых компаний. В таких данных вместе с именами людей могут быть использованы термины “застрахованное лицо”, “предъявитель страхового иска”, “рекламант” и др. Кроме того, участник ДТП может быть обозначен каким-либо метонимическим оборотом с названием марки автомобиля, например: “красная Тойота превысила скорость”. Если водителей несколько, в таких текстах могут использоваться обозначения “Водитель 1” или “второй водитель”, которые обозначают человека, но не называют его. Наконец, в текстах могут быть использованы личные местоимения: “Он не заметил красный свет светофора”.
Связывание сущностей
Выявление разных форм имени в тексте и их связывание — лишь малая часть задачи. Чаще всего аналитик должен связать эти имена с другими сущностями, которые встречаются в тексте, для того чтобы определить, относятся ли две ссылки к одному объекту реального мира, или к разным, чтобы в конечном итоге гарантировать точность результатов анализа текста. Такая задача называется разрешением или идентификацией сущностей. Ситуация, описанная выше, — хороший пример применения разрешения сущностей. Если страховая компания захочет проанализировать отчет о ДТП на предмет возможной суброгации, судебного разбирательства, или с целью оценки ответственности сторон, начинать ей следует именно с точного определения сторон — застрахованного лица и предъявителя рекламации, анализа их действий и оценки сложившейся ситуации. Как говорилось ранее, участники ДТП могут быть обозначены в анализируемых текстах по-разному. Невозможно просто заранее создать список имен людей и искать в нем нужное имя, поскольку имена людей не уникальны, и некий г-н Смит может быть застрахованным лицом в одной записи, и рекламантом — в другой. То же самое касается и других ссылок, используемых в текстах, например, марок автомобилей или водителей. За рулем красной Тойоты может быть кто угодно, а Водитель 1 не всегда является застрахованным лицом или рекламантом. В связи с этим возникает необходимость динамического извлечения информации из каждой отдельной записи для создания полного профиля каждой из сторон иска с указанием всех его атрибутов.
Решение проблемы с помощью языка XPDL системы PolyAnalyst
Эта задача решается с помощью специального языка XPDL системы PolyAnalyst и предполагает несколько этапов. На первом этапе выполняется сплошной поиск всех подобных ссылок во всех исходных записях. Это значит, что алгоритм разрешения сущностей ищет все имена и названия автомобилей независимо от того, что нам известно об их связях с двумя сторонами иска. Затем извлеченные сущности связываются друг с другом и со сторонами иска. Например, в тексте отчета может быть сказано “В застрахованную машину Стива Джонсона врезался сзади идущий автомобиль”, а также текст может содержать и другие фразы, которые семантически связывают сущности. Это позволяет определить, что имя застрахованного лица — Стив Джонсон. Третий этап анализа называется постобработкой. В ходе постобработки данные, полученные на втором этапе, применяются ко всем извлеченным сущностям. Например, если в записях встречается имя “Стив Джонсон” или его варианты, мы помечаем, что это — застрахованное лицо. Кроме того, теперь становятся возможны некоторые дедуктивные умозаключения. Если в тексте встречаются предложения “В застрахованную машину Стива Джонсона врезался сзади идущий автомобиль” и “Стив был за рулем белого F-150”, мы изначально не можем предположить, что автомобиль Ford F-150 принадлежит застрахованному лицу. А вот на третьем этапе это становится возможным.
Заключение
Такой поэтапный процесс, включающий распознавание отдельных сущностей в тексте, установление логических связей между ними и агрегирование полученных данных в ходе постобработки, позволяет выполнить задачу по разрешению сущностей в ходе анализа текста с помощью инструментов системы PolyAnalyst. Такой подход позволяет пользователям извлекать максимум информации из текста с помощью языка XPDL и может применяться в анализе любого текста, в котором сложные сущности принимают разные формы.