LexRank
LexRank — это алгоритм автоматического реферирования текстов, основанный на методах машинного обучения и теории графов. Он относится к классу экстрактивных методов суммаризации, то есть выделяет наиболее значимые предложения из исходного документа и формирует из них краткое содержание (реферат). Алгоритм был предложен в 2004 году группой исследователей из Колумбийского университета (США) — Гюнешем Эрканом и Драгомиром Радевым.
Принцип работы
LexRank использует подход, аналогичный алгоритму PageRank, применяемому поисковой системой Google для ранжирования веб-страниц. В основе лежит построение графа, где вершинами являются предложения исходного текста, а рёбрами — связи между ними, определяемые мерой семантической близости (сходства).
Построение графа сходства
- Токенизация и предобработка: Исходный текст разбивается на отдельные предложения. Каждое предложение проходит этапы нормализации: удаление стоп-слов (предлогов, союзов, частиц, не несущих смысловой нагрузки), приведение слов к начальной форме (стемминг или лемматизация).
- Векторизация: Каждое предложение преобразуется в числовой вектор. Чаще всего используется модель TF-IDF (Term Frequency — Inverse Document Frequency). Вектор отражает частоту встречаемости каждого слова в предложении (TF) с поправкой на его редкость во всём корпусе предложений (IDF). Таким образом, редкие и характерные для темы слова получают больший вес.
- Вычисление сходства: Для каждой пары предложений рассчитывается косинусное сходство (cosine similarity) между их векторами. Значение сходства лежит в диапазоне от 0 (полное отсутствие общих слов) до 1 (идентичные векторы).
- Формирование графа: Создаётся взвешенный неориентированный граф. Вершины — предложения. Ребро между двумя вершинами проводится, если косинусное сходство между соответствующими предложениями превышает заданный порог (обычно 0,1–0,3). Вес ребра равен значению косинусного сходства.
Ранжирование предложений (алгоритм PageRank)
После построения графа к нему применяется итеративный алгоритм PageRank. Идея заключается в том, что «важность» (ранг) предложения определяется количеством и «важностью» предложений, которые на него ссылаются (то есть имеют с ним высокое сходство). Формула расчёта ранга предложения \( S(v_i) \) выглядит следующим образом:
\[ S(v_i) = (1 — d) + d \cdot \sum_{v_j \in In(v_i)} \frac{w_{ji}}{\sum_{v_k \in Out(v_j)} w_{jk}} S(v_j) \]
Где:
- \( S(v_i) \) — ранг предложения \( v_i \).
- \( d \) — коэффициент затухания (damping factor), обычно принимается равным 0,85 (как в оригинальном PageRank). Он моделирует вероятность перехода пользователя к случайному предложению, а не по ссылке.
- \( In(v_i) \) — множество предложений, имеющих рёбра к \( v_i \).
- \( Out(v_j) \) — множество предложений, к которым ведут рёбра от \( v_j \).
- \( w_{ji} \) — вес ребра между \( v_j \) и \( v_i \) (косинусное сходство).
Алгоритм выполняется итеративно до тех пор, пока значения рангов не перестанут существенно изменяться (сходимость). В результате каждое предложение получает числовой балл, отражающий его центральность в графе.
Формирование реферата
Предложения сортируются по убыванию полученного ранга. В итоговый реферат включается заданное количество предложений с наивысшими баллами (например, 5–10% от исходного текста). При этом часто применяется эвристика для устранения избыточности: если два высокоранговых предложения практически идентичны по смыслу (их сходство превышает, например, 0,9), одно из них может быть исключено.
Отличия от TextRank
LexRank часто сравнивают с другим популярным графовым алгоритмом — TextRank (предложен в 2004 году Михалиной и Тарау). Основные различия:
| Характеристика | LexRank | TextRank |
|---|---|---|
| Мера сходства | Косинусное сходство на основе TF-IDF (взвешенные векторы). | Часто использует простое совпадение слов (бинарная мера) или нормализованное совпадение. |
| Взвешенность графа | Граф всегда взвешенный (вес ребра = косинусное сходство). | Граф может быть как взвешенным, так и невзвешенным. |
| Порог сходства | Обязательно используется порог (threshold) для отсечения слабых связей. | Порог не является обязательным; связи могут быть установлены между всеми парами предложений. |
| Цель | Создан специально для задачи многодокументного реферирования (обобщение нескольких текстов на одну тему). | Изначально разработан для однодокументного реферирования (обобщение одного текста). |
На практике оба алгоритма показывают схожие результаты, однако LexRank считается более устойчивым к шуму и лучше подходит для работы с большими корпусами текстов.
Применение
LexRank нашёл широкое применение в системах автоматической обработки текста (NLP):
- Автоматическое реферирование: Создание кратких аннотаций к новостным статьям, научным публикациям, юридическим документам.
- Информационный поиск: Выделение ключевых фрагментов в результатах поисковой выдачи.
- Анализ тональности: Выявление наиболее репрезентативных предложений, отражающих общее настроение текста.
- Системы вопросно-ответного поиска: Извлечение релевантных фрагментов текста, содержащих ответ на заданный вопрос.
- Образовательные технологии: Автоматическое создание конспектов лекций и учебных материалов.
Ограничения и критика
Несмотря на эффективность, LexRank имеет ряд недостатков:
- Зависимость от качества предобработки: Алгоритм чувствителен к выбору стоп-слов и методу стемминга/лемматизации. Ошибки на этом этапе могут снизить точность.
- Чувствительность к порогу сходства: Неправильный выбор порога может привести либо к слишком разреженному графу (потеря связей), либо к слишком плотному (все предложения становятся одинаково «важными»).
- Неспособность к генерации: LexRank, как экстрактивный метод, не может создавать новые фразы или перефразировать. Он лишь копирует существующие предложения, что может приводить к неграмматичным или нелогичным рефератам.
- Игнорирование порядка предложений: Алгоритм не учитывает последовательность предложений в исходном тексте, что может нарушить логику изложения в итоговом реферате.
- Склонность к длинным предложениям: Векторы длинных предложений содержат больше слов, что может приводить к искусственному завышению их косинусного сходства с другими предложениями и, как следствие, к более высокому рангу.
Реализации
Алгоритм LexRank реализован в нескольких популярных библиотеках для Python:
- Sumy: Простая библиотека для суммаризации текста, включающая реализацию LexRank.
- Gensim: Библиотека для тематического моделирования, содержит модуль
summarizationс реализацией LexRank (начиная с версии 0.13.0). - LexRank (авторская реализация): Оригинальный код, опубликованный авторами алгоритма, доступен на GitHub.
Источники
- Erkan, G., & Radev, D. R. (2004). LexRank: Graph-based Lexical Centrality as Salience in Text Summarization. Journal of Artificial Intelligence Research, 22, 457–479.
- Mihalcea, R., & Tarau, P. (2004). TextRank: Bringing Order into Text. Proceedings of the 2004 Conference on Empirical Methods in Natural Language Processing (EMNLP), 404–411.
- Manning, C. D., Raghavan, P., & Schütze, H. (2008). Introduction to Information Retrieval. Cambridge University Press. (Глава 21, посвящённая суммаризации).
- Документация библиотек Sumy и Gensim (раздел, посвящённый суммаризации текста).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →