{"id":14291,"url":"\/distributions\/14291\/click?bit=1&hash=257d5375fbb462be671b713a7a4184bd5d4f9c6ce46e0d204104db0e88eadadd","hash":"257d5375fbb462be671b713a7a4184bd5d4f9c6ce46e0d204104db0e88eadadd","title":"\u0420\u0435\u043a\u043b\u0430\u043c\u0430 \u043d\u0430 Ozon \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u0442\u0430\u043c \u043d\u0435 \u043f\u0440\u043e\u0434\u0430\u0451\u0442","buttonText":"","imageUuid":""}

Алгоритмы для выделения ключевых слов: Rake, YAKE!, TextRank

Речь пойдет про алгоритмы выделения ключевых слов Rake, YAKE! И TextRank. Выделение ключевых слов становится все более актуальным с постоянным ростом объемов текстовой информации, которую необходимо каким-то образом классифицировать по тематике. Рассмотренные модели обладают интересными свойствами и преимуществами по сравнению с классическими алгоритмами, поскольку не требуют обучения.

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

Алгоритмы без учителя обладают преимуществом в условиях большого объема данных – нет необходимости в разметке данных, которая для данной задачи является достаточно трудоемкой. Дополнительной характеристикой методов, о которых пойдет речь, является отсутствие моделей. Все 3 метода основаны на эвристиках, которые заданы заранее, а не обучаются. Это позволяет обрабатывать каждый текст отдельно и не требует большой выборки текстов.

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

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

Стоп-слова и пунктуация расценивается как разделители фраз – текст разбивается по этим элементам на фразы кандидаты. Далее фразы-кандидаты ранжируются по метрике deg(w)/freq(w) и выбираются k кандидатов с наибольшим значением метрики.

Метрика основана на следующей логике:

  • freq(w) – Частота слова в тексте, поощряет часто встречающиеся слова
  • deg(w) - Определяется как сумма совместных появлений других слов с этим словом. Совместным появлением считается появление в одной фразе. Данная метрика поощряет слова, которые часто встречаются в длинных кандидатах
  • freq(w)/deg(w) – Поощряет слова, которые появляются в основном в длинных кандидатах

YAKE!

Этот метод похож по смыслу на Rake, однако была убрана идея о выделении фраз на основе стоп-слов. В данном методе используется стандартная для текстового анализа методика выделения слов и фраз с помощью токенизации. Фактически такая методика позволяет проверить все сочетания слов на их важность, а не только разделенные стоп-словами. YAKE! использует более сложную метрику, чем Rake – она собирается из 5 отдельных метрик.

Casing

Метрика Casing основана на идее о том, что ключевые слова зачастую могут быть названиями или аббревиатурами. Она измеряет количество раз, когда слово в тексте встречается с большой буквы или является аббревиатурой (написано полностью большими буквами).

Где:

  • TF(U(w)) – Количество раз, когда слово начинается с большой буквы
  • TF(A(w)) – Количество раз, когда слово отмечается алгоритмом, как аббревиатура (Состоит из больших букв)
  • TF(w) – Общая частота слова

Word Position

Авторы утверждают, что ключевые слова чаще стоят в начале текста. Из-за этого вводится метрика Word Position, которая учитывает положение слова относительно других.

Где:

  • Senw – множество позиций слова в документе

Word Frequency

Как и в Rake учитывается частота слова. В данном случае частота слова нормируется с учетом среднего и стандартного отклонения частоты:

Где:

  • TF(w) – Частота слова в тексте

Word Relatedness to Context

Авторы утверждают, что данная метрика способна оценивать насколько слово похоже на стоп-слово – насколько оно важно для контекста. Метрика использует количество слов, появляющихся слева и справа от слова-кандидата

Где:

  • WL – отношение количества слов слева от кандидата к количеству всех слов, которые появляются вместе с ним
  • WR – отношение количества слов справа от кандидата к количеству всех слов, которые появляются вместе с ним
  • PL – Отношение количества разных слов, которые появляются слева от кандидата к MaxTF
  • PR - Отношение количества разных слов, которые появляются справа от кандидата к MaxTF

Утверждается, что стоп-слова имеют высокое значение метрики WRel

DifSentence

Эта метрика учитывает количество предложений, в которых используется слово-кандидат.

Где:

  • SF(w) – Частота появления слова в предложениях
  • # Sentences – Количество предложений в тексте

Итоговая метрика

Итоговая метрика составляется из описанных выше метрик.

Далее происходит сортировка ключевых слов по этой метрике и выбирается k наиболее значимых.

TextRank

Метод TextRank наиболее сильно отличается от двух предыдущих. Он использует идею, что любой текст можно представить в виде графа, где слова являются вершинами, а связи между ними – ребрами графа. После переведения текста в графовое представление используется классическая метрика важности вершин графа PageRank.

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

Для построения графа вокруг каждого слова берется контекст – берутся все слова, которые находятся на расстоянии n-слов от главного. Например, для контекста размера 2 берутся два слова слева и два слова справа от текущего. Все слова в контексте текущего связываются с ним ребрами графа.

PageRank

Рассмотрим метрику, которая используется для выделения важных вершин на графе.

Где:

  • S(Vi)S(Vi) – важность i-ой вершины
  • In(Vi)In(Vi) – множество вершин, имеющих входящие в i-ую вершину ребра
  • Out(Vi) – множество вершин, связанных с i-ой вершиной исходящими из нее ребрами
  • dd –Коэффициент затухания, выбирается пользователем

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

Python-реализация алгоритмов

Для демонстрации работы алгоритмов используем текст про алгоритм Евклида из Википедии.

Rake
YAKE!
TextRank

Все три алгоритма решают одну и ту же задачу с разных сторон и с использованием разной логики. Результаты работы алгоритмов из-за этого отличаются. Нельзя однозначно сказать, какой из них лучше решает конкретную задачу. На отдельной задаче имеет смысл тестировать качество каждого из алгоритмов и делать выбор исходя из этого.

0
Комментарии
-3 комментариев
Раскрывать всегда