Вложения документов, вложения предложений и библиотека KeyBERT
Здравствуйте, любители НЛП! Сегодня мы видим библиотеку извлечения ключевых слов и фраз, а именно KeyBERT, которая разумно и просто использует модели, подобные BERT. Наслаждаться! 😄
KeyBERT — это минимальная и простая в использовании библиотека извлечения ключевых слов, которая использует встраивания из моделей, подобных BERT, для извлечения ключевых слов и фраз, наиболее похожих на документ.
В отличие от других методов, доступных для генерации ключевых слов (см. эту статью для обзора методов извлечения ключевых слов, таких как Rake и YAKE!), KeyBERT использует BERT-эмбеддинги и простое косинусное сходство для поиска подфраз в документе. которые наиболее похожи на сам документ.
Процесс извлечения ключевых слов состоит из трех этапов:
- Вложения документов извлекаются с помощью BERT для получения представления на уровне документа.
- Встраивания извлекаются для N-грамм, взятых из документа, которые являются ключевыми словами-кандидатами (если N = 1) и ключевыми фразами (если N > 1).
- Вложения 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, и рассказал, как его использовать с помощью нескольких строк кода.
Возможные следующие шаги:
- Узнайте о других методах извлечения ключевых слов/фраз, таких как Rake и YAKE!.
- Попробуйте KeyBERT с другими моделями встраивания предложений.
Спасибо за чтение! Если вы хотите узнать больше о НЛП, не забудьте подписаться на NLPlanet в Medium, LinkedIn и Twitter!
Сообщения, связанные с NLPlanet