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 →