Генетический алгоритм для улучшения качества семантического поиска по текстам научных публикаций_
Генетический алгоритм для улучшения качества семантического поиска по текстам научных
публикаций
Плешкова И.Ю., Чуприна С.И.
Пермский государственный национальный исследовательский университет е1/_тпа@таИ. ги, скирппа8@тЬох. ги
Аннотация. В статье представлен отличающийся новизной подход к реализации семантического поиска, применимый к большим объёмам текстовых документов, с использованием генетического алгоритма (ГА). В отличие от традиционных подходов к информационному поиску, предлагаемый подход, благодаря использованию методов онтологического инжиниринга и ГА, позволяет учитывать семантику взаимосвязей между понятиями, а также корректно обрабатывать многозначные понятия. Предлагаются эвристики, учитывающие традиционную структуру научной публикации и улучшающие качество семантического поиска.
Ключевые слова: семантический поиск, генетический алгоритм, онтологии
1 Введение
Улучшение качества информационного поиска является насущной задачей для широкого спектра проблемных областей не только в связи с экспоненциальным ростом информации в сети Интернет, но в компаниях, где накапливается большое количество отчётов, аналитических справок, нормативных актов, соглашений, контрактов и т.д.; в научных организациях, где хранятся огромные массивы технической документации и т.д. В данной статье предлагается одно из возможных решений улучшения качества информационного поиска, позволяющее учитывать контекст поискового запроса, на примере анализа научных публикаций.
Традиционные методы анализа текстов в массе своей концентрируются на статистическом анализе, который в недостаточной степени учитывает семантику связей между понятиями. Такие подходы, которые получили название «синтаксических» [Cambria et al., 2014], достаточно хорошо работают во многих задачах анализа текстов, однако им свойственен ряд ограничений при выполнении контекстного информационного поиска. Характерный для традиционных поисковых механизмов поиск по ключевым словам, приводит к тому, что интересующий пользователя текстовый документ может быть не найден, если пользователь сформулировал свой поисковый запрос в терминах, близких по смыслу, но отсутствующих в тексте документа.
В этой связи остановимся на некоторых проблемах, которые в данной работе предлагается решать с использованием генетического алгоритма и
методов онтологического инжиниринга. Первая проблема состоит в том, что если пользователь не может точно сформулировать запрос и использует приблизительно близкие по смыслу понятия, синонимы или обобщения, то в выдачу поисковой системы не попадут многие пертинентные тексты. Например, если пользователь интересуется методами оптимизации и формулирует запрос типа «решение задач оптимизации», то в поисковую выдачу не попадет документ, где описывается один из методов поиска глобального минимума и не употребляется слово «оптимизация». Вторая проблема связана с разрешением многозначности. Например, понятие «поле» в физике и алгебре имеет разные значения.
Существуют различные подходы к решению указанных проблем, в том числе и методами искусственного интеллекта (см., например, [Биряльцев и др., 2010; Осипов и др., 2008; е1;. а1, 2003]). Наш подход основан на интеграции различных методов искусственного интеллекта. В частности, в процессе поиска автоматически учитываются знания из онтологии, описывающей предметной содержание коллекции текстовых документов; используются различные семантические метрики, позволяющие более тонко учитывать контекст запроса и корректно обрабатывать многозначные понятия, а для усовершенствования механизма индексации разработан оригинальный ГА.
2 Семантический поиск и учет особенностей текста научных
Согласно определению Диковицкого [2010], семантический поиск -это вид автоматизированного полнотекстового информационного поиска с учётом смыслового содержания слов и словосочетаний запроса пользователя и предложений текстов проиндексированных информационных ресурсов. Поэтому семантический поиск может найти пертинентные документы, в том числе не содержащие ни одного слова из текста запроса.
При анализе литературы по данной тематике нами были выявлены три основных подхода к осуществлению семантического поиска: кластеризация результатов, синтаксический и семантический анализ предложений на естественном языке и поиск на основе учета семантических связей между понятиями. Одни подходы повышают семантическую мощность поисковых механизмов за счет комбинации традиционного поиска по ключевым словам с последующей кластеризацией результатов (см., например, поисковую систему Нигма). Другие пользуются результатами синтаксического и семантического анализ текстов и учитывают положения теории коммуникативной грамматики естественного языка (см., например, [Осипов и др., 2008]), в соответствии с которой смысл предложения определяется совокупностью входящих в него синтаксем. Последний подход позволяет разделять
публикации
Генетический алгоритм для улучшения качества семантического поиска по текстам
научных публикаций_
различные семантические «роли» понятий (субъект, объект, локатив и т.д.) и находить только те документы, искомые понятия в которых выступают в соответствующих семантических «ролях» (значениях).
Указанные два подхода повышают точность поиска за счёт правильной семантической интерпретации понятий и разрешения нечёткостей в смысле многозначности интерпретации, однако они позволяют находить только те документы, в которых обязательно встречается хотя бы одно слово из запроса. Если же текстовый документ является пертинентным, но не содержит ни одного слова из запроса, то он не попадет в поисковую выдачу. Для преодоления этого ограничения используется третий подход к автоматическому повышению качества семантического поиска - поиск на основе семантических связей между понятиями. Для описания понятий предметной области и связей между ними обычно используются онтологии [Биряльцев и др., 2010; Ehrig е1 а1., 2003].
Обратим внимание на некоторые особенности текстов научных публикаций, которые обычно тем или иным образом, учитываются современными поисковыми системами. Обычно научные публикации имеют задаваемую шаблонами структуру. Несмотря на различные требования к оформлению научных статей, обычно в том или ином виде учитываются следующие составные элементы текстового документа: заголовок, аннотация, ключевые слова, основной текст, заключение. Предлагаемый нами алгоритм семантической индексации также разрабатывался с учетом данной структуры. А именно, исходя из предположения, что наиболее важные понятия текста употребляются в заголовке, аннотации и списке ключевых слов, наш алгоритм приписывает этим понятиям более высокий вес по сравнению с понятиями, которые встречаются только в основном тексте.
Ниже работа нашего алгоритма будет продемонстрирована на примере индексации текста статьи [Семёнов и др., 2014] об искусственных нейронных сетях. По тематике искусственные нейронные сети относятся к области искусственного интеллекта, но в тексте этой статьи ни разу не встречается данное понятие, поэтому традиционный поисковый механизм автоматически не найдёт данную статью по запросу «искусственный интеллект». Простой анализ текста позволяет выделить 10 самых часто встречающихся слов этого текста (без учёта стоп-слов), которые представлены в табл. 1.
Таблица 2.Частота встречаемости слов в статье [Семёнов и др., 2014]
Слово Частота Слово Частота
Сеть 30 Вектор 9
Нейрон 16 Обучение 8
Нейронный 16 Параметр 7
Функция 12 Править 7
Задача 10 Выборка 7
При анализе текста классическими статистическими методами Text Mining эти слова были бы отнесены к разряду ключевых слов. Можно заметить, что среди них нет слов «искусственный», «интеллект» или «оптимизация», что не позволит найти этот документ [Семёнов и др., 2014] в ответ на запрос, состоящий только из этих слов.
3 Семантическая индексация текстовых документов
Для улучшения качества семантического поиска нужно, во-первых, использовать дополнительный источник знаний, позволяющий описывать понятия и семантические связи между ними. В качестве такого источника знаний мы используем хранилище онтологий. Во-вторых, необходим новый механизм индексации, который бы учитывал не только понятия, используемые в тексте, но и понятия, связанные с ними по смыслу.
Кроме того, механизм индексации должен учитывать и обычные статистические характеристики, такие как частота встречаемости понятий, документная частота, дисперсия понятия и т.п., а также структуру, характерную для научных публикаций. Поэтому можно считать, что имеет место задача многокритериальной оптимизации и для ее решения можно применить ГА, которые хорошо справляются с решением задач оптимизации даже в тех случаях, когда нет чётких требований к целевой функции. Важно отметить, что при правильной настройке параметров ГА способны выдавать результат, близкий к оптимальному, за очень короткое время, что немаловажно с т.зр. эффективности реализации.
Введём понятие онтологический профиль документа. Онтологическим профилем документа в контексте данной онтологии назовём список пар «понятие, вес», куда входят только те понятия из онтологии, которые либо встретились в документе, либо семантически связаны с понятиями из документа, причем семантическое расстояние между ними не должно превышать заданное пороговое значение. Семантическая индексация текстовых документов в нашем случае сводится к построению их онтологических профилей в контексте имеющихся онтологий.
Онтологический профиль обладает следующими свойствами:
1) зависит от онтологии;
2) содержит не отдельные слова, а понятия, которые в общем случае состоят из нескольких слов;
3) содержит не только понятия из документа, но и другие семантически связанные понятия из онтологии;
4) содержит вес понятия, зависящий от множества критериев.
Индексация одного документа не зависит от индексации других документов. Индексация документов в контексте различных онтологии выполняется независимо. Поэтому предлагаемый алгоритм хорошо распараллеливается при поиске в больших и сверхбольших коллекциях текстовых документов.
Генетический алгоритм для улучшения качества семантического поиска по текстам научных публикаций_
Рассмотрим алгоритм построения онтологического профиля документа как составную часть алгоритма семантической индексации на примере построения онтологического профиля для одного отдельно взятого документа в контексте заданной онтологии. Построение онтологического профиля состоит из трех этапов: предварительной обработка текста; выделения в тексте понятий из онтологии и связанных с ними по смыслу понятий; оценки веса понятий с помощью ГА.
3.1 Предварительная обработка текста
Предварительная обработка текста заключается в выполнении морфологического анализа: определении начальной формы слов, части речи, номера абзаца и др. Кроме того, на данном этапе определяется, входит ли слово в заголовок, аннотацию или список ключевых слов. Для этих целей используются сторонний свободно распространяемый морфологический анализатор, а также метаданные документа.
3.2 Выделение в тексте понятий из онтологии
На этом этапе вначале из текста выделяются те понятия, которые есть в онтологии. Все остальные слова текста считаются своего рода стоп-словами и не участвуют в дальнейших действиях. Главной сложностью на данном этапе является наличие в онтологии понятий, состоящих из нескольких слов. Поэтому при анализе текстов нужно учитывать не одно, а несколько подряд идущих слов.
Для каждого понятия вычисляются следующие характеристики:
1) Е - количество употреблений понятия в тексте.
2) (х1л х2, - номера позиций, на которых это понятие встретилось.
3) В - дисперсия понятия, которая вычисляется по следующей формуле:
_ ИГ-1 ~ р
где х - среднее значение позиций (хъ%2,
Затем нужно найти в тексте семантически близкие по смыслу понятия к тем, что уже выделены. Для этого используется таблица, содержащая все пары понятий и оценку их семантической близости. Семантическая близость оценивается числом от 0 до 1: чем понятия более близки по смыслу, тем выше оценка их семантической близости.
Оценку семантической близости можно вычислять различными способами, по-разному учитывая наличие множества путей между парами понятий, представленных соответствующими вершинами в графе онтологии; перегибы (изменения типов дуг на пути от одного понятия к другом в графе онтологии); наличие общего предка и т.д. Задача вычисления семантической близости сама по себе заслуживает отдельных исследований, и выходит за пределы тематики данной статьи.
Итак, для каждого документа вычисление оценки семантической близости понятий происходит один раз в контексте каждой из имеющихся онтологий. Таким образом, к моменту построения онтологического профиля документа семантические расстояния между всеми парами выделенных понятий уже известны. Будем считать понятия близкими по смыслу, если их семантическая близость больше некоторого порогового значения. Такие понятия добавляются к списку понятий, найденных в тексте. Поскольку эти понятия не встретились в тексте документа, то их частота и дисперсия будут равны нулю.
Назовём этот обогащённый список понятий ONTOn, где п - это размер списка (т.е. количество понятий). Таким образом, ONTOn = (clf ,„,си), где ct - понятие из онтологии, либо непосредственно встретившееся в тексте документа, либо близкое к нему по смыслу.
3.3 Генетический алгоритм для определения весов понятий
После того как был построен обогащённый список понятий, т.е., когда стали известны понятия из онтологии, связанные с текстом, необходимо оценить вес понятий в документе. Вес понятия - числовая характеристика: чем больше вес, тем более явно выражено данное понятие в документе.
Вес понятия зависит от множества критериев:
1) статистических (частота, дисперсия);
2) онтологических (наличие связей и топология связей между понятиями);
3) структурные (структура текста: заголовок, аннотация, ключевые слова).
В связи с тем, что многие из этих критериев являются неформальными, было решено использовать для оценки весов ГА. При выполнении ГА генерируются веса сразу для всех понятий из списка ONTO», а затем при выполнении генетических операторов и в процессе эволюции отбираются те из них, которые удовлетворяют большему числу критериев. В результате формируется близкое к оптимальному распределение весов в соответствии с указанными критериями.
3.3.1 Пространство поиска и генетические операторы
Пространство поиска - множество векторов (wb... ,wH) длины та, где Wj означает вес понятия cg из ONTO„ и принимает значение от 0 до 100, та -количество понятий онтологии, семантически связанных с текстом. Фактически, вес может принимать произвольное значение: при выполнении поиска важен не столько сам вес, сколько отношения типа «понятие А имеет больший вес, чем понятие В».
Хромосома - вектор (wlt ....,wIt) из пространства поиска. Ген - вес одного понятия. Хромосомы генерируются случайным образом, и для оценки их приспособленности используется специальная фитнесс-функция.
Были выбраны классические варианты генетических операторов:
Генетический алгоритм для улучшения качества семантического поиска по текстам научных публикаций_
1) В скрещивании участвуют р процентов наиболее приспособленных особей.
2) Используется одноточечное скрещивание со случайной точкой разреза:
(%, - , W1U Wt ..., wln) + (w21j ..., w2i, w2J+li..., w2a) ^ (%> ..... W2n) + (wzl, .„ , ..., wl71).
3) При мутации один из генов меняет своё значение на случайное.
Генетический алгоритм завершает работу после стабилизации популяции, т.е. когда лидер не меняется в течение нескольких поколений.
З.З.Юценка приспособленности хромосом
Значение фитнесс-функции характеризует, насколько то или иное распределение весов соответствует данному документу. Поскольку существует множество критериев, было решено каждый критерий представлять с помощью эвристического правила в нотации языка исчисления предикатов первого порядка.
Для описания правил введём следующие обозначения:
1) Переменные: х,у - понятия.
2) Функции:
а- /(а) - количество употреблений понятия в документе.
b. d(x) - дисперсия понятия в документе.
c. с(х,. з?) - семантическая близость понятий.
d. w(x) - вес понятия.
e. р(х) - номер абзаца, в котором впервые встретилось понятие.
3) Предикаты:
a. GT(A, £?), LT(A, В), GE(A.B). LE(A,B),EQ(А,В\ШЕ(А,В) - стандартные предикаты, обозначающие отношения соответственно А > В,А < В,А > В,А < В,А = В,А Ф В.
b. Close (A. S, £•) - А близко К В, Т.е. \А—В\< г.
С. Title (х), Annotation{x), Keyword(x) - понятие х встречается в заголовке статьи, аннотации или списке ключевых слов, соответственно.
Опишем с учётом заданной интерпретации предикатных и функциональных символов эвристические правила для оценки веса понятий:
1) Если понятие х встречается в документе чаще понятия у, то вес понятия х должен быть не меньше веса понятия у:
Vx Vy (ОТ (fix), f(y) ) ^ (GE(wix% w(j)}.
2) Если дисперсия понятия x больше дисперсии у, то вес понятия х должен быть не меньше веса понятия у:
VxVy (GT(d(x),d(у) & GT(d(у), О)) =э (GE(w(x),w(> )).
3) Если понятие встречается в первом абзаце, то его вес должен быть не меньше, чем вес понятий, впервые встретившихся в других абзацах:
Vx Vy (EQ (р fх), 1) && NE(p (у), 1)) =f ^GE(w(x), w Су)) ) ■
4) Веса синонимов должны быть близки:
Vx Vy (GT{c{cty), S) => (Close (w(x)f w(yX г)).
5) Если понятия x и у являются синонимами, и сумма их частот равна fix) +/(у), то вес каждого из этих понятий должен быть не меньше веса любого другого понятия z, частота которого f(z) < f(x) + fiy) (Здесь предполагается, что семантическая близость между синонимами равна 1):
Vx.Vy.Vz (££МхЛу)Д) &NE(c(v,zll) &F(c(x,z),l) &ir(/U),/(x) + /!») ^ (GE(w(X)MZ)) & GEiwlyXwiz)}).
6) Если понятие встречается в заголовке аннотации к документу или списке ключевых слов, то его вес должен быть выше веса понятия, которое встречается лишь в основном тексте.
Vx Vy (Title (х) & -¡Title (у)) =э (ge(m<x), w(y))] ;
Vx Vy (.4rumtation(%) & -¡Annotation(y)j => (JtE[w(x), ;
Vx Vy (ifejworci(%) 8i —¡Keyword(y)) =э wly))^.
3.4 Примеры семантической индексации
В качестве примера использования алгоритма семантической индексации приведём индексацию статьи [Семёнов и др., 2014] в контексте двух небольших предметных онтологий. Первая онтология посвящена искусственным нейронным сетям, а вторая - задачам оптимизации. Фрагменты указанных онтологий представлены на рис. 1.
Рис. 9. Фрагменты онтологий: А - ИНС, В - методов оптимизации
На рисунках цветом выделены понятия, не встречающиеся в тексте статьи. В этих онтологиях используются следующие типы дуг:
■ is a - отношение класс-подкласс;
■ a_part_of- отношение часть-целое;
■ syn - отношение синонимии;
Генетический алгоритм для улучшения качества семантического поиска по текстам научных публикаций_
■ goal - цель;
■ method - метод.
При автоматическом построении онтологических профилей предполагается, что семантическая близость понятий вычисляется как кратчайший путь в графе онтологии, причём расстояние между синонимами равно нулю, расстояние по дуге is а равно 0.1, по дуге a_part_of- 0.3, а по всем остальным типам дугам - 0.6. Онтологические профили документа в контексте указанных онтологий представлены в таблице 2.
Таблица 3. Онтологический профиль документа [Семёнов и др., 2014] в контексте
различных онтологий
Понятие из онтологии ИНС Вес
Нейрон 88
Искусственная нейронная сеть 87
Нейронная сеть 74
Синапс 58
Персептрон 58
Искусственный интеллект 54
ИНС 35
Нейросетъ 35
Понятие из онтологии методов Вес
оптимизации
Минимум 99
Градиентный спуск 61
Итерационный алгоритм 43
Максимум 39
Оптимизация 25
Задача оптимизации 13
Экстремум 7
Из примера можно видеть следующее:
1) Онтологический профиль отражает наличие взаимосвязанных понятий из соответствующей онтологии, на базе которой он построен.
2) Больший вес имеют понятия, встречающиеся в тексте максимальное количество раз и входящие в заголовок и список ключевых слов. Кроме того, учитываются обычные частотных характеристики: чем чаще понятие встречается в документе, тем выше его вес.
3) Если понятие не встречается в тексте, но является семантически связанным с одним из часто встречающихся понятий, то вес такого понятия также будет достаточно высок.
3.5 Поиск по семантическому индексу
Запрос на естественном (русском) языке может представляться в произвольном виде: в форме строки поиска по типу поисковых систем Интернет, либо в виде некоторого текстового документа (или его фрагмента), либо в виде списка понятий, отмеченных в некотором иерархическом представлении понятий из онтологии.
Для выполнения поисковых запросов мы пользуемся стандартным методом Text Mining - определением косинусного расстояния. Идея алгоритма выполнения запросов состоит в том, чтобы провести анализ текста запроса по аналогии с анализом текста документа и представить
запрос в виде: Q = (icq^wqO,....., icqmiwqm)), где cqt - i-e понятие запроса,
wqg - вес понятия cqt, ж - количество понятий в запросе.
Затем для онтологического профиля каждого документа В1 из коллекции вычисляется скалярное произведение < QlBi>. Значение этого скалярного произведения характеризует релевантность документа запросу. В итоговую выдачу попадут только те документы, значение скалярного произведения для которых выше некоторого порогового значения.
4 Заключение
В статье описан генетический алгоритм для семантической индексации больших коллекций текстовых документов в соответствии с контентом онтологии, а также алгоритм поиска по построенному семантическому индексу. Жизнеспособность подхода апробирована в проекте «ONTOC2R», в рамках которого для решения задачи информационного поиска в проблематике Big Data создаётся инновационный программный продукт совместно с ООО МИП «Кнова». Разработанный автором статьи алгоритм используется в подсистеме индексации knova.ontoprofiles. В качестве хранилища данных выбран распределённый масштабируемый репозиторий C2R (Cloud Content Repository), разрабатываемый компанией ИВС [Чуприна и др., 2013; Костарев, 2014].
Работа выполнена при поддержке гранта фонда содействия развитию малых форм предприятий в научно-технической сфере «УМНИК».
Генетический алгоритм для улучшения качества семантического поиска по текстам научных публикаций_
Список литературы
[Биряльцев и др., 2010] Биряльцев Е.В., Елизаров А.М., Жильцов Н.Г., Иванов В.В. Модель семантического поиска в коллекциях математических документов на основе онтологий // 12 Всероссийская научная конференция "Электронные библиотеки: перспективные методы и технологии, электронные коллекции" RCDL'2010. Казань. 2010. С. 296-300.
[Диковицкий и др., 2010] Диковицкий В.В., Шишаев М.Г. Обработка текстов естественного языка в моделях поисковых систем // Труды Кольского научного центра РАН, № 3,2010. С. 29-33.
[Костарев, 2014] Костарев А.Ф. Применение онтологического подхода для анализа текстов в облачном контент-репозитории C2R // Девятая конференция "Свободное программное обеспечение в высшей школе". Переславль. 2014. С. 23-28.
[Осипов и др., 2008] Осипов Г.С., Тихомиров И.А., Смирнов И.В. Семантический поиск в сети интернет средствами поисковой машины Exactus // Труды одиннадцатой национальной конференции по искусственному интеллекту с международным участием КИ-2008. Москва. 2008. Т. 3. С. 323-328.
[Семёнов и др., 2014] Семёнов Е.В., Старченко A.B. Использование искусственных нейронных сетей для решения одной обратной задачи // Молодёжь и современные информационные технологии. Томск. 2014. С. 122-123.
[Чуприна и др., 2013] Чуприна С.И. и др. Платформа C2R: об одном подходе к решению проблем Big Data на базе онтологий // Труды XLI международной конференции "Информационные технологии в науке, социологии и бизнесе" IT+SE'2013 Осенняя сессия. Украина, Крым, Ялта-Гурзуф. 2-10 октября, 2013 г. С. 16-18.
[Cambria et al., 2014] Cambria E., White B. Jumping NLP curves: A review of natural language processing reseach // ШЕЕ Computational Intelligence Magazine, Vol. 9, No. 2, 2014. pp. 48-57.
[Ehrig et al., 2003] Ehrig M., Maedche A. Ontology-focused crawling of Web documents // ACM symposium on Applied computing. ACM. 2003. pp. 1174-1178.