Тематическая сегментация семантически однородных документов

Сер. 10. 2011. Вып. 3

ВЕСТНИК САНКТ-ПЕТЕРБУРГСКОГО УНИВЕРСИТЕТА

УДК 519.688 А. Н. Мишенин

ТЕМАТИЧЕСКАЯ СЕГМЕНТАЦИЯ СЕМАНТИЧЕСКИ ОДНОРОДНЫХ ДОКУМЕНТОВ

1. Введение. Во многих задачах информационного поиска часто возникает проблема сегментации документов на отдельные, более узкие поддокументы. Такое разделение может быть полезным в следующих задачах:

• вывод наиболее релевантного фрагмента текста;

• подготовка документов перед обработкой каким-либо алгоритмом (например, исходные документы могут быть слишком большими и неоднородными, что не всегда полезно при кластеризации/классификации);

• задача суммаризации текста (summarization task);

• задача извлечения информации (information extraction).

В случае, если в документе присутствует определенная семантическая разметка (содержание, заголовки и т. д.), сегментация не представляет никаких проблем. Сложнее, когда такой информации нет или сегментацию нужно выполнить на более узком уровне. В таком случае появляется необходимость в алгоритмах, которые позволяют осуществить это автоматически.

Возникает вопрос о корректности постановки задачи, о смысле сегментации и как ее понимать с лингвистической точки зрения. В общем случае текст «имеет» некоторую тему, смысл. Предложения, которые составляют текст, последовательно вносят информацию, связанную с темой, и могут быть разделены на группы, которые описывают некоторые связанные «подтемы». Грубо говоря, общая организация текстов линейна, и границы «подтем» в текстах чаще всего существуют и могут быть с определенной точностью установлены большинством читателей [1]. Более того, «подтемы» можно определять с различной чувствительностью. Чаще всего эти границы явно выделены автором в отдельные абзацы, параграфы, главы.

Цель данной работы - предложить метод сегментации, который применяется в целом к коллекции похожих по содержанию документов, с возможным аннотированием получившихся сегментов. Рассмотрим, где такая задача может быть востребована. Пусть у нас имеются большая коллекция документов, например набор всех статей из Википедии, и некоторый алгоритм кластеризации. Статьи в Википедии носят в основном энциклопедический характер и часто строятся по определенному шаблону. Так, статья о каком-либо крупном городе почти всегда имеет разделы, посвященные географии, истории, населению, экономике, инфраструктуре. Логично предположить, что статьи о городах или подобных географических объектах могут попасть в один

Мишенин Алексей Николаевич — аспирант кафедры технологии программирования факультета прикладной математики-процессов управления Санкт-Петербургского государственного университета. Научный руководитель: кандидат физико-математических наук, доц. В. Ю. Добрынин. Научные направления: обработка естественных языков, информационный поиск, машинное обучение. E-mail: ____alex_©list.ru.

© А. Н. Мишенин, 2011

кластер, где все вышеперечисленные подтемы присутствуют в большинстве документов. Для удобства навигации и построения аннотации кластера желательно найти все такие подтемы и в соответствии с ними разделить каждый документ.

Таким образом, описываемый алгоритм сегментации состоит из следующих этапов:

1) выделение подтем;

2) сегментация на основе выявленных подтем.

2. Обзор алгоритмов сегментации. По особенностям работы и преследуемым целям алгоритмы сегментации можно разделить на группы:

по используемым данным:

• независимая сегментация каждого документа,

• сегментация в контексте всей коллекции;

по наличию фиксированных точек сегментации:

• потенциальные точки сегментации известны, определяются границами крупных

структурных элементов (абзацы, параграфы, главы),

• точки сегментации неизвестны, текст представляется как непрерывный набор термов;

по структуре сегментов:

• линейные сегменты,

• иерархические сегменты.

TextTilling [2] - один из наиболее известных алгоритмов сегментации текста. Основная идея данного алгоритма - поиск точек в тексте, где используемый лексикон резко меняется. Сначала текст делится на небольшие последовательности термов (для английского языка по 20 штук - средняя длина предложения), которые называются окнами. Затем в каждой граничной точке вычисляется мера «похожести» между двумя последовательностями из m подряд идущих влево и вправо окон. Если в какой-то точке образовался «провал», т. е. значение меры сильно меньше, чем в соседних точках, то значит, в этой точке нужно произвести сегментацию.

Такая идея часто применяется в других алгоритмах, меняется в основном метод вычисления расстояния между соседними последовательностями. Например, в [3] используются данные, полученные из всей коллекции.

Dotplotting [4] - «графический» по интерпретации метод. Текст представляется в виде геометрического места точек (ГМТ) на плоскости, задаваемой следующим образом: если в тексте одно и то же слово встречается на позиции x и на позиции у, то точки {(x,x); (x,y); (y,x); (у, у)} принадлежат этому ГМТ. Дальше на плоскости можно выделить «сгустки», определяющие сегменты.

Link Set Median [5] основан на анализе прямых лексических связей между предложениями. Лексическая связь в самом простом случае - повторение одного и того же терма в двух предложениях.

Особенностью трех приведенных алгоритмов является то, что они базируются на анализе лексических связей (распределение термов, связь соседних предложений и т. д.) внутри текста. Преимущество данного подхода в том, что для сегментации не требуется никакая дополнительная информация. Другой подход базируется на статистике, полученной из коллекции документов, например [3, 6], описываемого здесь алгоритма.

3. Описание алгоритма. Пусть имеется некоторая семантически однородная коллекция документов. Разделим каждый документ на небольшие последовательности подряд идущих термов - секции. Если в исходном документе есть информация

о разметке, то границы секций могут совпадать с границами абзацев или предложений. В противном случае каждая секция может состоять из 60-100 термов (3-5 предложений в английском языке).

Первый шаг алгоритма - выделение подтем - основывается на кластеризации термов (слов). То есть каждая подтема представлена в виде некоторого множества термов. Затем каждой секции сопоставляется набор подтем, и на основе этого производится сегментация.

Введем обозначения:

D = {dj} - множество документов в коллекции;

V = {ti} - множество термов;

Pj = {pj,k} - множество секций в j-м документе, где индекс секции к - порядковый номер в документе;

D(t) С D - множество документов, в которых присутствует терм t;

tfj(t) - частота терма t в j-м документе;

tfj,k(t) - частота терма t в к-й секции j-го документа;

nj (t) - число вхождений терма t в j-й документ;

nj,k(t) - число вхождений терма t в к-тую секцию j-го документа.

3.1. Кластеризация термов. Кластеризация термов лежит в основе алгоритмов, описанных в [3, 5], и многих методов суммаризации. Вопрос в том - как и на основе чего проводить кластеризацию. В большинстве случаев каждому терму t сопоставляется вектор

или его нормализованные версии и затем используется какой-либо из известных алгоритмов кластеризации. Размерность векторов равна суммарному числу секций во всей коллекции. В данной работе формирование векторов происходит на основе взаимо-встречаемости термов в секциях. Интуитивно понятно, что, например, слова «мяч» и «футбол» гораздо чаще встречаются рядом со словом «стадион», чем со словом «молоко». На этой основе каждому терму можно сопоставить некоторый вектор размерностью \V\ (число уникальных термов в коллекции). Преимущество такого способа в том, что размерность векторов можно существенно уменьшить, если предварительно выбросить «бесполезные» термы. Более того, аналогичным образом можно уменьшить множество кластеризуемых термов.

3.1.1. Фильтрация. Здесь не учитываются такие технические операции как удаление стоп-слов и наиболее частотных слов для конкретного языка. Предполагается, что такие действия являются обязательными. Используется следующая, зависящая от двух параметров (0 ^ 7 < 1, 0 < v ^ 1) и состоящая из двух этапов процедура.

Этап 1. Удаление редких термов, встречающихся в малой части документов. То есть удаляются все термы, которые встречаются менее чем в 7-й части документов.

Этап 2. Удаление термов, которые в среднем равномерно распределены по документам. Например, если коллекция состоит из энциклопедических статей о городах, то слово «город» должно попасть в эту категорию. Каждому терму t и документу j сопоставляется вектор

Ej (t) = norm(nj,i(t), • • •,nj\Pj \(t)),

где norm - операция нормирования по норме У • ||i. По полученному вектору вычисляется величина

Tj (t)= H (Ej (t))log(\pj\),

здесь Н - информационная энтропия соответствующего дискретного распределения вероятностей. Таким образом, для каждого терма Ь и каждого документа ], в котором данный терм присутствует, рассчитываем соответствующие значения:

3(ь) = {тз (Ь)}зео(г).

Затем для каждого терма в коллекции рассчитываем медианное значение из элементов

3

МБ(Ь) = med(S (Ь)).

Далее все термы, МБ(Ь) которых попадают в долю и наибольших, удаляются.

Параметры 7 и и могут быть выбраны, исходя из размера коллекции, требований производительности и особенностей алгоритма кластеризации.

3.1.2. Формирование векторов. После фильтрации каждому оставшемуся терму Ьг нужно сопоставить некоторый вектор VI в пространстве термов. Были рассмотрены такие варианты:

1) компоненты вектора - число секций, в которых термы встречаются вместе:

V = ^

^,1 = \ {(], к) \ (и) > 0 А (и) > 0}|;

2) то же самое, что и в п. 1), но вектор нормализуется:

Vi = потт^гд, . . ,^,у |);

3) то же самое, что и в п. 1), но учитывается число вхождений термов в секции:

V = ^

^пм = Щ пз,к (и);

3,к;пз,к (и)>0

4) то же самое, что и в п. 3), но вектор нормализуется:

Vi = потт^пм,...^пг,|у |);

5) доля секций, содержащих терм , в которых встречается также терм Ь:

VI = (раг^д,.. .,раг^,|у|),

, _ I Ш, к) I > 0 Л п3,к(г') > °11

РаГм_ \{и,к)\ъ,к(и)>0}\

3.1.3. Кластеризация. В качестве алгоритма кластеризации был выбран Х-тваив [7] - это расширение наиболее известного алгоритма К-тваив, в котором нет необходимости задавать число кластеров, так как оно выводится из данных. Рассматривался также С-тваиэ [8].

3.2. Сегментация. На входе есть набор кластеров К = {кг}, состоящих из термов, полученный на предыдущем шаге. Сегментация делится на два этапа:

• определение вероятности соответствия каждой секции каждому кластеру;

• склеивание секций, которым соответствуют одинаковые кластеры (при просмотре текста сверху вниз для каждого документа).

Этап 1. Зафиксируем какую-нибудь секцию и введем для нее несколько случайных величин: p(t) - вероятность встретить терм t в рассматриваемой секции, p(k) -вероятность того, что кластер к соответствует рассматриваемой секции. Введем порождающую (generative) модель: p(t) = kp(k)p(t\k). Наблюдаемые данные - текст

секции, к - скрытая случайная величина, 0 = {p(k)} - набор параметров.

Таким образом, для нахождения оптимальных параметров можно воспользоваться алгоритмом EM (Expectation Maximization) [9].

Определим p(t\k) так: p(t\k) = щ-, если t £ к, и р(к) = 0 - в противном случае. Заметим, что эту вероятность можно задать более сложным образом, если учитывать расстояние терма до цетроида кластера.

Примем, что n(t) - число вхождений терма t в текущую секцию, N - общее число термов в секции (с учетом повторов).

Таким образом, мы вывели итеративную формулу (4). После предопределенного числа итераций или после стабилизации алгоритм завершается и на выходе имеем р(к).

Этап 2. Алгоритм ЕМ запускается на каждой секции, которой по результатам работы в соответствии с максимальным значением р(к) сопоставляется один или несколько кластеров термов. Пусть - множество кластеров, ассоциируемых с к-й секцией І-го документа. Тогда сегментация после к-й секции производится, если

E-шаг:

Q

t, к,

М-шаг: для максимизации ^(0(п+1) |0(п)) по 0(п+1), учитывая естественные ограничения ^к, рп+1(к') = 1, воспользуемся методом множителей Лагранжа:

Суммируя правую и левую части в (2) по k, получим

N = т.

Подставляя выражение (3) назад в (2), находим

откуда

Cj,k ^ Cj,k+1 — 0-

4. Экспериментальные результаты. Для экспериментов был выбран набор статей *) о городах из английской Википедии **). При обработке викитекста игнорировались шаблоны и текст после разделов «See also», «References», «External links». Границы секций определялись по параграфам или заголовкам в викитексте. Использовалась реализация X-means из библиотеки Weka***^.

Результат кластеризации термов

Тема Термы

География North, south, east, river, west, geography, land, surround, point, western, sea, eastern, water, port, northern

Демография, население Capital, population, people, region, language, live, resident, make, unit, common, office, inhabit

Власть Government, administer, municipal, polity, divide, power, mayor, repress, member, council, seat, social,elect, term, status, head

Искусство Museum, art, music, theatre, collect

Экономика Country, develop, industry, base, economy, economic, company, commerce, increase, bank, market, office

История History, time, century, call, war, remain, establish, early, made, great, independent, present, period, move, continue, settlement, empire, control, refer, force, rule, back, kingdom

Транспорт Transport, airport, service, station, road, line, connect, system, run, air, rout, hub, travel, traffic

Спорт Sport, event, club, play, football, team, stadium, league, game

Климат Climate, temperature, summer, average, annual, winter

Образование University, education, school, institute, higher, college

Архитектура Build, built, culture, house, site, modern, origin, history, famous, tradition, notable, oldest, church, design

Параметры фильтрации термов были подобраны так, чтобы в итоге получилось 200, 300 и 500 термов.

В качестве метода формирования векторов был выбран второй (см. (1)) подход, при котором получились наиболее хорошие результаты на выбранной коллекции.

В результате работы X-means выделилось 16, 13 и 9 кластеров соответственно. Причем для большинства из них можно довольно точно сказать, о чем они. Выборка для случая 300 термов представлена в таблице.

При подсчете характеристик - полноты (recall) и точности (precision) - эталонной сегментацией считалась сегментация, совпадающая с заголовками 1-го и 2-го уровней в исходном викитексте. Для случая 500 термов recall — 0.7 и precision — 0.43. В результате работы TextTiling по этой же коллекции получились следующие результаты: recall — 0.32 и precision — 0.42. Эти цифры не имеют смысла сами по себе, но хорошо показывают разницу в работе алгоритмов.

5. Заключение. Предложенный алгоритм показал неплохие результаты при кластеризации слов в документах. В коллекции статей о крупных городах в Википедии удалось выделить все типичные разделы (географическое положение, климат,

*) Список статей взят со страницы «List of largest cities and second largest cities by country».

**) http://en.wikipedia.org.

***) www.cs.waikato.ac.nz/ml/weka.

транспорт, экономика и т. д.). Такая кластеризация также может быть использована в различных задачах информационного поиска (суммаризация, выделение сниппетов и пр.). Благодаря методу фильтрации термов, можно манипулировать размерностью векторов, тем самым находя нужный баланс между качеством и производительностью.

Литература

1. Skorokhod’ko E. F. Adaptive method of automatic abstracting and indexing // Proc. of the IFIP Congress. 1972. Vol. 71. P. 1179-1182.

2. Hears Marti A. Multi-paragraph segmentation of expository text // Proc. of the 32nd Meeting of the Association for Computational Linguistics. Los Cruces, NM, June, 1994. P. 1002-1010.

3. Li Hang, Yamanishi Kenji. Topic analysis using a finite mixture model // Information Processing and Management. 2003. Vol. 39. P. 521-541.

4. Reynar Jeffrey C. An Automatic method for finding topic boundaries // Proc. of the 32nd annual meeting on Association for Computational Linguistics. Stroudsburg, PA, USA, 1994. P. 331-333.

5. Sardinha T. B. Segmenting corpora of texts // DELTA. 2002. Vol. 18. P. 273-286.

6. Caillet Mark, Pessiot Jean-Francois, Massih Reza, Gallinari Patrick. Unsupervised learning with term clustering for thematic segmentation of texts // Proc. of RIAO. 2004. P. 648-656.

7. Pelleg Dan, Moore Andrew. X-means: Extending K-means with efficient estimation of the number of clusters // Proc. of the Seventeenth International Conference on Machine Learning. San Francisco, 2000. P. 727-734.

8. Hamerly Greg, Charles Elkan. Learning the K in K-means // Proc. NIPS. 2003. Vol. 17. P. 281-289.

9. Dempster Arthur, Laird Nan, Rubin Donald. Maximum likelihood from incomplete data via the EM algorithm // J. of the Royal Statistical Society. Ser. B. 1977. Vol. 39, N 1. P. 1-39.

Статья рекомендована к печати доц. В. Ю. Добрыниным.

Статья принята к печати 10 марта 2011 г.