Сейчас я работаю над проектом, пытаясь извлечь ключевые слова из комментариев.

Для начала я провел опрос по извлечению ключевых слов. Есть два известных метода достижения цели:

  1. TF-IDF — на основе частоты
  2. TextRank — на основе графика
  3. Обучение с учителем — на основе лексических и синтаксических особенностей

Из-за отсутствия обучающих данных в моем случае я сосредоточусь на неконтролируемом методе. TextRank выглядит вполне реальным выбором! Давайте начнем!

Идея TextRank аналогична PageRank, если вы уже что-то знаете о PageRank, вам будет несложно.

Давайте взглянем на PageRank. Представьте каждую веб-страницу в виде узла, и между узлами существует связь, если на страницу ссылаются другие. Таким образом, если веб-страница тесно связана с другими, более вероятно, что эта страница является более важной, чем другие. Точно так же мы можем измерить важность слова по TextRank.

Между узлами (или вершинами) есть связи, и каждая вершина может голосовать за другие вершины.

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

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

Итак, как нам преобразовать текст в график?

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

Самая большая проблема заключается в том, как определить отношение (или ребра) между вершинами. Здесь в документе используется отношение, называемое отношением совпадения. Если два слова встречаются на расстоянии меньшем, чем размер окна N, мы говорим, что у них есть связи.(N может быть установлено от 2 до 10)

До сих пор мы уже разобрались с базовой концепцией TextRank. Мы используем слова как вершины графа и определяем отношение между вершинами отношением совпадения.

Чтобы было лучше, мы могли бы применять синтаксические фильтры к вершинам, например, добавлять в граф только глаголы и существительные. Согласно эксперименту, проведенному в статье, выбор только прилагательных и существительных дал лучший результат.

Давайте углубимся в эксперимент, задуманный в этой статье. Ниже приведены упрощенные этапы эксперимента.

  1. токенизировать текст
  2. аннотированный тегами части речи
  3. пропускать слова через синтаксический фильтр
  4. создавать ссылки по определению совпадения в окне размера N
  5. получить неориентированный и невзвешенный граф
  6. инициализировать каждую вершину значением 1
  7. итерация 20~30 раз, пока не будет ниже порога 0,0001
  8. Наконец, получите ключевые слова T (которое T равно трети числа вершин в графе).

PS. TextRank — это неконтролируемый алгоритм, и здесь мы рассматриваем только одно ключевое слово.



Ссылка

TextRank: порядок в текстах