Вложения документов, вложения предложений и библиотека KeyBERT

Здравствуйте, любители НЛП! Сегодня мы видим библиотеку извлечения ключевых слов и фраз, а именно KeyBERT, которая разумно и просто использует модели, подобные BERT. Наслаждаться! 😄

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

В отличие от других методов, доступных для генерации ключевых слов (см. эту статью для обзора методов извлечения ключевых слов, таких как Rake и YAKE!), KeyBERT использует BERT-эмбеддинги и простое косинусное сходство для поиска подфраз в документе. которые наиболее похожи на сам документ.

Процесс извлечения ключевых слов состоит из трех этапов:

  1. Вложения документов извлекаются с помощью BERT для получения представления на уровне документа.
  2. Встраивания извлекаются для N-грамм, взятых из документа, которые являются ключевыми словами-кандидатами (если N = 1) и ключевыми фразами (если N > 1).
  3. Вложения N-грамм ранжируются в соответствии с косинусным сходством с вложением документа, чтобы найти слова/фразы, которые наиболее похожи на документ, которые затем являются извлеченными ключевыми словами/ключевыми фразами.

Вложения, управляемые библиотекой KeyBERT

KeyBERT поддерживает множество моделей встраивания, которые можно использовать для встраивания документов и слов, например:

Пример кода

Давайте посмотрим, как использовать KeyBERT на практике. Сначала мы устанавливаем библиотеку keybert, используя pip, как обычно.

Затем мы создаем экземпляр объекта KeyBERT (который загружает модель встраивания предложений по умолчанию, т. е. all-MiniLM-L6-v2 из Sentence Transformers) и используем его метод extract_keywords в нашем документе. Вот и все!

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

Также есть способы разнообразить набор ключевых слов/фраз, возвращаемых алгоритмом. Установив для параметра use_maxsum значение true, KeyBERT извлекает из документа nr_candidates лучших ключевых слов и возвращает их подмножество, состоящее из top_n ключевых слов, которые имеют как можно меньше сходства друг с другом.

Посетите Документацию KeyBERT, чтобы узнать, какими другими параметрами управляет метод extract_keywords и как они влияют на процесс извлечения ключевых слов.

Наконец, мы видим пример использования KeyBERT с многоязычной моделью от Sentence Transformers, примененной к документу на итальянском языке. Это можно сделать, передав имя модели конструктору KeyBERT.

Выводы и дальнейшие шаги

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

Возможные следующие шаги:

Спасибо за чтение! Если вы хотите узнать больше о НЛП, не забудьте подписаться на NLPlanet в Medium, LinkedIn и Twitter!

Сообщения, связанные с NLPlanet