Обобщение текста НЛП — введение в алгоритм TextRank

искусственный интеллект Python

Один класс задач в НЛП — генерировать резюме на основе содержания статьи. Такие задачи до сих пор в основном делились на две категории:

  • Резюме: этот метод основан на извлечении из текста нескольких частей, таких как фразы, предложения, и их объединении для создания резюме. Поэтому самое главное для этого экстрактивного метода — выявить предложения, подходящие для обобщения текста.
  • Резюме выборки: этот метод применяет передовые методы НЛП для создания совершенно нового резюме. Может быть, текст в резюме даже не появляется в оригинале.

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

  • Если на веб-страницу ссылаются многие другие веб-страницы, это означает, что эта веб-страница более важна, то есть значение PageRank будет относительно высоким.
  • Если страница с высоким PageRank ссылается на другую страницу, PageRank связанной страницы соответственно увеличится.

1. Принцип PageRank

в формуле нижеvjv_jозначает ссылку наviv_iссылка на эту страницу,In(vi)In(v_i)Представляет веб-страницуviv_iСбор всех входящих цепочек,Out(vj)Out(v_j)на страницуvjv_jнабор ссылок на другие веб-страницы,ddУказывает коэффициент демпфирования, который используется для преодоления внутренних дефектов следующей формулы и обычно принимается равным 0,85. такS(vi)S(v_i)Чтобы указать, что значение PR (PageRank) текущей страницы равно:

S(vi)=(1d)+d*jеIn(vi))1Out(vj)S(vj)S(v_i)=(1-d)+d\ast \sum_{j\in In(v_i))}^{}\frac{1}{\left | Out(v_j) \right |}S(v_j)

После того, как все веб-страницы получат значения PR, ранжирование может быть представлено по рекомендации веб-контента.

2. Принцип TextRank

Значение TextRank, полученное из PageRank, выражается следующим образом:

WS(vi)=(1d)+d*vjеIn(vi))wjivkеOut(vj)wjkWS(vj)WS(v_i)=(1-d)+d\ast \sum_{v_j\in In(v_i))}^{}\frac{w_ji}{\sum_{v_k\in Out(v_j)}^{}w_{jk}}WS(v_j)

Если TextRank используется для извлечения ключевых слов, алгоритм следующий:

  1. Во-первых, это разделение текста, сегментация слов и тегирование частей речи.
  2. Создайте карту ключевых слов-кандидатовG=(V,E)G=(V,E)VVпредставляет собой набор узлов, который состоит из обнаружений трубок-кандидатов, а затем использует отношение совпадения для построения ребра между любыми двумя точками.Ребро между двумя узлами существует только в том случае, если их соответствующий словарь имеет длинуKKокно появляется вместе,KKУказывает на то, что окно короткое, то есть максимальное совпадениеKKслова.
  3. В соответствии с приведенной выше формулой вес каждого узла итеративно распространяется до сходимости.
  4. Отсортируйте веса узлов в обратном порядке, чтобы получить наиболее важныеTTслова в качестве ключевых слов-кандидатов.
  5. Самое важное из предыдущего шагаTTКаждое слово в исходном тексте маркируется, а если образуются смежные словосочетания, объединяются многословные ключевые слова.

На основе PageRank алгоритм генерации сводки TextRank заменяет веб-страницы предложениями и рассматривает каждое предложение как узел.Если два предложения похожи, считается, что между узлами, соответствующими двум предложениям, существует ненаправленная связь. правые края, а метод подобия предложений основан на следующей формуле:

Similarity(Si,Sj)=wkwkеSiwkеSjlog(Si)+log(Sj)Similarity(S_i,S_j)=\frac{\left | {w_k |w_k\in S_i \cap w_k\in S_j} \right |}{\log(\left | S_i \right |)+\log(\left | S_j \right |)}

вSiSjS_{i}S_{j}представить два предложения,wkw_kПредставляет слово в предложении, тогда часть числителя означает количество одного и того же слова, которое встречается в обоих предложениях одновременно, а знаменатель представляет собой сумму логарифмов слов в предложении. Такой дизайн, как могила, может свести на нет преимущество более длинных предложений при вычислении сходства. Однако косинусное сходство обычно можно вычислить после построения вектора слова предложения.

Его основной процесс показан на рисунке ниже.

textrank

  1. Сначала статьи синтезируются в текстовые данные.
  2. Разделите текст на отдельные предложения.
  3. Найдите векторные представления слов для каждого предложения.
  4. Вычислите сходство между векторами предложений.
  5. Преобразуйте матрицу сходства в структуру графа с предложениями в качестве узлов и оценками сходства в качестве ребер для расчета TextRank предложения.
  6. Наконец, определенное количество предложений с наивысшим рейтингом составляет окончательное резюме.

3. Вызов TextRank

В python есть две библиотеки, jieba и textrank4zh, которые могут вызывать алгоритм TextRank, использование библиотеки textrank4zh выглядит следующим образом:

  • Найдите ключевые слова:

    from textrank4zh import TextRank4Keyword
    
    tr4w = TextRank4Keyword()
    tr4w.analyze(text=text, lower=True, window=3)
    print('关键词:')
    for item in tr4w.get_keywords(20, word_min_len=2):
        # weight表示权重
        print(item.word, item.weight)
    

    Текст в analysis() принимает статью для анализа, window представляет самую длинную связку слов, а затем использует .get_keywords() для вычисления отсортированных ключевых слов, первый параметр представляет окончательный вывод ключевых слов, word_min_len указывает самую короткую длину ключевое слово.

  • Найдите ключевые предложения (для создания экстрактивных резюме):

    from textrank4zh import TextRank4Sentence
    
    tr4s = TextRank4Sentence()
    tr4s.analyze(text=text, lower=True, source='all_filters')
    print('摘要:')
    for item in tr4s.get_key_sentences(num=3):
    	# index是语句在文本中位置,weight表示权重
        print(item.index, item.weight, item.sentence)
    

    Среди них текст в analysis() принимает статью для анализа, источник генерирует сходство между предложениями, а затем использует .get_key_sentences() для вычисления отсортированных предложений, а nums указывает конечный результат Количество ключевых предложений.

использованная литература: