Открыть сервис

TextRank

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

История и происхождение

Алгоритм TextRank был впервые предложен в 2004 году исследователями из Японии Радой Михайловой (Rada Mihalcea) и Полом Тарау (Paul Tarau) в их совместной работе «TextRank: Bringing Order into Text». Идея алгоритма возникла как адаптация известного алгоритма ранжирования веб-страниц PageRank, разработанного основателями Google Ларри Пейджем и Сергеем Брином. В отличие от PageRank, который оценивает важность веб-страниц на основе ссылочной структуры интернета, TextRank применяет аналогичный принцип к текстовым единицам — словам, фразам или предложениям.

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

Принцип работы

Построение графа

Основой алгоритма является построение взвешенного или невзвешенного графа, где вершинами выступают текстовые единицы (слова, n-граммы или предложения), а рёбрами — семантические или синтаксические связи между ними. Для задачи извлечения ключевых слов обычно используется окно совместной встречаемости: два слова считаются связанными, если они встречаются в пределах заданного окна (например, в пределах двух-трёх слов друг от друга). Для реферирования текста вершинами являются предложения, а рёбра определяются на основе меры сходства, например, по коэффициенту Жаккара или косинусной близости векторов.

Ранжирование вершин

После построения графа к нему применяется итеративный алгоритм ранжирования, аналогичный PageRank. Формула расчёта веса вершины имеет вид:

\[ 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 \) — коэффициент затухания (обычно принимается равным 0,85);
  • \( In(V_i) \) — множество вершин, ссылающихся на \( V_i \);
  • \( Out(V_j) \) — множество вершин, на которые ссылается \( V_j \);
  • \( w_{ji} \) — вес ребра между вершинами \( V_j \) и \( V_i \).

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

Постобработка

После завершения ранжирования вершины сортируются по убыванию веса. Для извлечения ключевых слов обычно отбираются первые \( N \) вершин, которые затем могут быть объединены в многословные фразы на основе их последовательности в исходном тексте. Для реферирования текста отбираются предложения с наибольшими весами, которые затем упорядочиваются в порядке их появления в исходном документе.

Применение

Извлечение ключевых слов

TextRank широко используется для автоматического выделения ключевых слов и фраз из текстов. Это приложение востребовано в системах информационного поиска, тегирования контента, анализа тональности и классификации документов. В отличие от методов, основанных на частотности (например, TF-IDF), TextRank учитывает взаимосвязи между словами, что позволяет выявлять термины, которые не обязательно являются самыми частыми, но играют важную роль в структуре текста.

Автоматическое реферирование

В задаче реферирования TextRank позволяет создавать краткие изложения текстов путём отбора наиболее репрезентативных предложений. Этот подход относится к методам экстрактивного реферирования, когда итоговый реферат составляется из фрагментов исходного текста без их переформулирования. Алгоритм показывает хорошие результаты для новостных статей, научных публикаций и технической документации.

Другие области

Помимо основных задач, TextRank применяется в:

  • Системах вопросно-ответного поиска — для выделения релевантных фрагментов текста;
  • Анализе социальных сетей — для выявления ключевых тем в потоках сообщений;
  • Биоинформатике — для аннотирования научных статей по биологии и медицине;
  • Юриспруденции — для автоматического анализа юридических документов и выделения ключевых положений.

Варианты и модификации

PositionRank

Модификация, учитывающая позицию слов в тексте: слова, встречающиеся в начале документа или в заголовках, получают больший начальный вес. Это позволяет улучшить качество извлечения ключевых слов для некоторых типов текстов.

SingleRank

Упрощённая версия, в которой все рёбра графа имеют одинаковый вес, что ускоряет вычисления и снижает требования к ресурсам.

TopicRank

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

RAKE (Rapid Automatic Keyword Extraction)

Хотя RAKE не является прямой модификацией TextRank, он использует схожие принципы графового анализа, но с упором на статистические характеристики слов, такие как частота и длина.

Преимущества и недостатки

Преимущества

  • Не требует обучения — алгоритм работает на основе неразмеченных данных, что делает его применимым для любых языков и доменов.
  • Языковая независимость — TextRank не опирается на лингвистические ресурсы (тезаурусы, стоп-словари), хотя их использование может улучшить результаты.
  • Прозрачность — результаты легко интерпретируются, так как алгоритм основан на простых графовых принципах.
  • Масштабируемость — алгоритм может обрабатывать тексты большого объёма при достаточных вычислительных ресурсах.

Недостатки

  • Чувствительность к размеру окна — выбор параметра совместной встречаемости существенно влияет на качество результатов.
  • Ограниченная точность — для коротких текстов или текстов с высокой степенью синонимии алгоритм может давать неоптимальные результаты.
  • Отсутствие семантического понимания — TextRank оперирует только на уровне поверхностных статистических связей, не учитывая глубинный смысл текста.
  • Зависимость от предобработки — качество работы сильно зависит от этапов токенизации, лемматизации или стемминга, а также от удаления стоп-слов.

Сравнение с альтернативными методами

TF-IDF

Метод TF-IDF (Term Frequency-Inverse Document Frequency) оценивает важность слова на основе его частоты в документе и обратной частоты в коллекции. В отличие от TextRank, TF-IDF не учитывает взаимосвязи между словами, что может приводить к выделению частых, но неинформативных терминов.

LSA (Latent Semantic Analysis)

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

Нейросетевые подходы

Современные методы на основе трансформеров (например, BERT, GPT) обеспечивают более высокую точность, но требуют больших объёмов размеченных данных и значительных вычислительных мощностей. TextRank остаётся востребованным в сценариях, где доступ к обученным моделям ограничен.

Реализации

TextRank реализован во многих библиотеках для обработки естественного языка:

  • Python: библиотеки sumy, gensim, textrank4zh, pytextrank, а также реализации в составе spaCy и NLTK.
  • Java: библиотека Apache OpenNLP и Stanford CoreNLP содержат модули, реализующие графовое ранжирование.
  • R: пакет textrank в экосистеме text2vec.
  • C++: реализация в составе библиотеки MITIE.

Критика

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

В академической среде отмечается, что для многих прикладных задач современные нейросетевые методы превосходят TextRank по точности, однако проигрывают в скорости и простоте внедрения. Тем не менее, TextRank остаётся популярным инструментом для начального анализа текстов и для задач, где важна интерпретируемость результатов.

Интересные факты

  • Название алгоритма является игрой слов: «Text» (текст) и «Rank» (ранжирование) отсылает к PageRank, а также к слову «textrank», которое можно прочитать как «текстовый ранг».
  • Первоначальная реализация TextRank была написана на языке Perl, но впоследствии была портирована на многие другие языки программирования.
  • Алгоритм лёг в основу нескольких коммерческих продуктов для автоматического реферирования новостей и анализа научных публикаций.

Источники

  • Mihalcea, R., & Tarau, P. (2004). TextRank: Bringing Order into Text. Proceedings of the 2004 Conference on Empirical Methods in Natural Language Processing.
  • Page, L., Brin, S., Motwani, R., & Winograd, T. (1999). The PageRank Citation Ranking: Bringing Order to the Web. Stanford InfoLab.
  • Florescu, C., & Caragea, C. (2017). PositionRank: An Unsupervised Approach to Keyphrase Extraction from Scholarly Documents. Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics.
  • Wan, X., & Xiao, J. (2008). Single Document Keyphrase Extraction Using Neighborhood Knowledge. Proceedings of the 23rd AAAI Conference on Artificial Intelligence.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →