Автоматическое извлечение понятий и ключевых слов из текста (Часть II: семантический подход)

Опубликовано: 2022-09-20

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

Здесь мы рассмотрим методы с более семантическим подходом. Во-первых, мы познакомимся с встраиваниями слов и трансформерами , т.е. с контекстуальными вложениями. Затем мы поделимся примером с тем же текстом об альбоме Джона Колтрейна Impressions (источник francemusique.fr) на основе модели BERT. Наконец, мы представим некоторые методы оценки, такие как P@k , f1-score , а также новейшие тесты.

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

Вложения слов

Этот метод восходит к 2013 году с введением модели под названием word2vec. Это «простая» архитектура искусственной нейронной сети — в отличие от так называемых архитектур «глубокого обучения», которые предлагают представлять набор слов словаря в виде векторов. Другими словами, каждое слово представлено строкой чисел. Этот набор векторов представляет собой семантическое поле словаря с возможностью сравнения этих векторов друг с другом. Измеряя расстояние между этими векторами, мы можем сказать, являются ли слова семантически похожими . Представление слов в виде массива чисел называется вложением .

word2vec-embedding-example-en

пример внедрения

Когда у вас есть векторное представление вашего набора слов, вы можете сравнить эти слова друг с другом. Два слова будут иметь близкое значение, если два вектора имеют очень малый угол между собой: это семантическое расстояние — значение от -1 до 1. Чем ближе значение к 1, тем больше у слов «похожих». значение. Значение, близкое к -1, напротив, будет указывать на «противоположные» значения, например, «хороший» и «плохой».

Цель этой модели состоит в том, чтобы «изготовить» эти знаменитые вложения из значительного количества текстовых документов. Допустим, у вас есть несколько сотен тысяч текстов, модель научится предсказывать слово на основе слов, которые на него похожи.

word2vec-window-en

слова-окно

Модель примет в качестве входных данных несколько групп слов — например, размером 5 — и попытается найти лучшие альтернативы <mask> . В вашем корпусе есть похожие фразы или группы слов; мы сможем найти слова: «джаз», «рок», «классика» или «регги», например. Таким образом, все эти слова будут иметь достаточно похожие векторы. Таким образом, модель может сводить воедино понятия и слова, находящиеся в сходном лексическом поле.

[Пример успеха] Поиск и устранение проблем с индексацией

От нулевого трафика до экспоненциального роста: узнайте, как GroupM Turkey использовала Oncrawl для решения проблем индексации Unilever.
Читать тематическое исследование

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

Например:

  1. Он сел на берегу Сены.
  2. Она положила деньги в банк «Чейз».

Это ограничение этого типа модели: слово будет иметь одно и то же векторное представление независимо от контекста.

Трансформеры

Более свежий подход появился в основном в 2017 году с помощью Google Attention Is All You Need. Там, где методы word2vec изо всех сил пытались представить два идентичных слова, которые не имели одинакового значения, модели типов преобразователей способны различать значение слова на основе его контекста . Обратите внимание, что существуют также модели NLP, способные учитывать последовательности слов, такие как RNN или LSTM, но мы не будем рассматривать их в этой статье.

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

Модель BERT, созданная Google в 2018 году, является мощной и популярной моделью. Преимущество этих языковых моделей в том, что они основаны на предварительно обученной модели, т.е. модель уже обучена на значительном количестве текстов на английском, французском и т. д. Затем ее можно использовать на основе более подробный анализ. Затем его можно использовать как есть для сравнения текста, получения ответов на вопросы, анализа тональности, тонкой настройки более конкретного текста и т. д.

bert-attention-visualisation

Визуализация внимания

Изображение было создано с помощью инструмента визуализации exBERT . Мы видим, что выбранное слово «деньги» тесно связано со словами « депозит » и « банк ». Тогда модели будет легче устранить двусмысленность слова « банк » благодаря контексту.

В случае KeyBERT это производная от BERT модель, называемая Sentence-BERT, которая позволяет нам легко сравнивать предложения семантически.

Если вы хотите узнать больше обо всех доступных моделях с открытым исходным кодом и предварительно обученных, вы можете посетить центр Huggingface, который специализируется на хранении и совместном использовании наборов данных и моделей, связанных с НЛП (а в последнее время также и с аудио и изображениями).

Извлечение ключевых слов с помощью KeyBERT

Итак, как мы можем использовать преобразователи для извлечения релевантных ключевых слов из текста? Существует несколько проектов, в том числе KeyBERT: минимальное извлечение ключевых слов с помощью BERT, библиотеки Python с открытым исходным кодом, использующей модель BERT.

KeyBERT по умолчанию будет использовать преобразователи предложений на основе BERT для представления предложения, а не одного слова, в виде вектора. Это очень эффективный способ сравнения предложений или групп слов. Принцип алгоритма KeyBERT довольно прост. Давайте посмотрим на пример текста, затем:

  1. Код извлечет все уникальные слова из текста. На этом этапе часто удаляются стоп-слова.
  2. Вычисляются вложения всего текста и каждого слова.
  3. Затем мы можем вычислить семантическое расстояние между векторами, исходящими от слов, и вектором, представляющим текст целиком.

После того, как все расстояния будут рассчитаны, мы можем извлечь слова, которые тесно связаны с общим смыслом текста: это будут ключевые слова, выбранные алгоритмом.

Более того, KeyBERT дает вам возможность выбирать длину ключевых фраз : фактически мы можем брать либо отдельные слова, либо пары, либо даже тройки слов. Кроме того, код предоставляет способ реализации метода «Максимальная предельная релевантность» (MMR) для увеличения разнообразия результатов. Это поможет вам избежать повторения термина, который может иметь отношение к содержанию документа, но слишком часто присутствует в результатах, например: «джазовый концерт», «джазовая музыка», «джазовый стиль». , так далее.

В заключение можно также использовать другие модели НЛП для KeyBERT, такие как модели из spaCy или чутье.

Как и в предыдущей статье, вот пример ключевых слов, извлеченных KeyBERT из той же статьи об альбоме Джона Колтрейна Impressions:

«колтрейн впечатления», «музыкальный квартет», «джазовое сокровище», «концерт Джона», «жемчужная последовательность», «грац репертуар», «тенор-саксофоны»

Методы оценки

В этой статье и в предыдущей мы представили несколько методов, используемых для извлечения ключевых слов из документа: RAKE, Yake, TextRank и KeyBERT. Тем не менее, важно иметь возможность выбрать правильный вариант в соответствии с вашим контекстом.

Поэтому уместно рассмотреть методы оценки, чтобы сравнить результаты одного метода с другим. Из данных (document, keywords) где ключевые слова были определены и проверены людьми, можно сравнить результаты модели с этой « реальностью ». У нас есть такие показатели, как точность, полнота и оценка f1 , которые часто используются в задачах классификации . Таким образом, мы можем построить матрицу путаницы, зная, действительно ли данное ключевое слово, извлеченное моделью, находится в списке релевантных ключевых слов.

Поскольку модели могут извлекать ряд ключевых слов, мы часто сравниваем первые k ключевых слов с истинными . Поскольку результаты могут различаться в зависимости от количества ключевых слов , которые мы хотим сравнить, мы несколько раз оцениваем модель в соответствии со значением k . Эти метрики называются Precision@k , что означает: «Я рассчитываю Precision на вершине-k».

[Электронная книга] Как ваша внутренняя схема ссылок влияет на Inrank

Следуйте экспериментам Криса Грина, чтобы понять, как ваша внутренняя схема ссылок влияет на относительную важность ваших страниц с помощью Inrank.
Как ваша внутренняя схема ссылок влияет на Inrank

Точность

Это количество правильных ключевых слов в топ-k из всех предсказанных ключевых слов .

Precision calculation

Отзывать

Это количество правильных ключевых слов в топ-k от общего числа ключевых слов основной истины.

Recall calculation

f1-счет

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

F1 score calculation

КАРТА @ k

Средняя средняя точность

Первым шагом для расчета MAP является расчет средней точности. Мы возьмем все ключевые слова, найденные моделью, и рассчитаем P@k для каждого релевантного ключевого слова, найденного моделью. Например, чтобы рассчитать AP@5 с 3 релевантными ключевыми словами из 5 предложенных:

 ключевые слова: джаз концерт музыка саксофон радио
   актуально: 1 0 1 1 0
   P@k: 1/1 2/3 3/4

   ОД: 1/3 (1 + 2/3 + 3/4) ~= 0,80

Мы отмечаем здесь, что позиция релевантных ключевых слов важна. На самом деле AP не будет иметь такой же балл, если первые три ключевых слова из пяти не релевантны (соответственно релевантны).

Затем для каждого (document, keywords) мы рассчитаем среднее значение всех AP , чтобы окончательно получить MAP.

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

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

  • Например, recall@k : оценка может сильно зависеть от размера релевантных ключевых слов истинной истины. Если у вас есть до 20 релевантных ключевых слов, для recall@10 вы будете сравнивать первые 10 ключевых слов в этом наборе из 20 ключевых слов. В лучшем случае, если все ключевые слова, предложенные моделью, релевантны, показатель полноты не превысит 0,5.
  • С другой стороны, если количество релевантных ключевых слов истинности очень мало по сравнению с теми, которые предложены моделью, вы не сможете получить хорошие оценки precision@k . Для пяти релевантных наземных ключевых слов precision@10 в лучшем случае будет иметь оценку 0,5, но не более.

Какие бы метрики ни использовались для оценки результатов, необходимо иметь набор данных (текст, ключевые слова), где ключевые слова были предварительно определены людьми — авторами текстов, читателями, редакторами и т. д. Существует несколько наборов данных, в основном в Английский и на разные темы: научные статьи, рефераты, новости, IT и т. д. Например, вот этот репозиторий Github KeywordExtractor-Datasets, в котором перечислено около двадцати наборов данных.

Ориентиры

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

Первый принадлежит исследователям, которые внедрили Yake! метод в статье «ЯКЭ! Извлечение ключевых слов из отдельных документов с использованием нескольких локальных функций». Они проанализировали свой метод примерно на двадцати различных наборах данных: PubMed, WikiNews, SemEval2010 и KDD для самых известных, используя большинство метрик, описанных выше: P@k recall@k Recot @k и т. д. Yake! будет сравниваться примерно с десятью другими методами, включая Rake, Text Rank и т. д. Объединив все доступные наборы данных и вычислив точность и полноту, Yake ! метод либо лучше, либо очень близок к современным методам. Например, для f1@10 :

Набор данных Яке! Лучший или 2-й
ВикиНовости 0,450 0,337
КДД 0,156 0,115
осмотр 0,316 0,378

Яке! часто на 50-100% лучше, что близко к ведущему методу.

В другой, более поздней статье «TNT-KID: нейротегер на основе трансформатора для идентификации ключевых слов» мы также сравниваем традиционные методы и методы на основе трансформатора . Методы извлечения с использованием трансформаторов работают лучше. Однако будьте осторожны, так как это так называемые «контролируемые» методы, в отличие от Rake, KeyBERT и Yake, которые не нужно обучать на массиве данных для получения результатов.

Наконец, давайте взглянем на два других теста:

  • Простое неконтролируемое извлечение ключевой фразы с использованием встраивания предложений использует встраивание слов и работает лучше по сравнению с TextRank в наборах данных, таких как Inspec и DUC.
  • Сообщение в блоге, в котором сравниваются 7 алгоритмов (в Python): Извлечение ключевых слов — тест 7 алгоритмов в Python. Автор сравнивает производительность методов KeyBERT, RAKE и Yake с точки зрения времени вычислений, а также количества релевантных слов, которые может извлечь каждый метод.

Вывод

Как вы видели в этих двух статьях, существует множество очень разных способов извлечения релевантных ключевых слов из текста. Глядя на различные тесты, вы заметите, что ни один из них не превосходит все остальные с точки зрения показателей. Это будет зависеть от текста и контекста. Более того, как указал автор статьи в блоге о 7 алгоритмах извлечения, мы также можем полагаться на время обработки алгоритма, когда сталкиваемся с длинным текстом.

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

Если бы мне пришлось выбирать, я бы определенно выбрал KeyBERT и Yake. Первый за преобразователи и семантический аспект, второй за эффективность и скорость исполнения.

Библиографические ссылки

  • Внимание - это все, что вам нужно, 2017
  • BERT: предварительная подготовка глубоких двунаправленных преобразователей для понимания языка, 2019 г.
  • Самостоятельный контекстный поиск ключевых слов и фраз с самостоятельным присвоением меток. Шарма П. и Ли Ю. (2019)
  • Изучение различных экстракторов ключевых слов — оценочные показатели и стратегии