Bert可以提取关键词了:KeyBERT的介绍与使用

简介: Bert可以提取关键词了:KeyBERT的介绍与使用

7.png


简介


官方文档:https://maartengr.github.io/KeyBERT/

KeyBERT是一种小型且容易上手使用的关键字提取技术,它利用BERT嵌入来创建与文档最相似的关键词和关键字短语。


尽管我们已经有许多可用于关键字生成的方法(例如,RakeYAKE!、TF-IDF等),但是我们还是需要创建一种非常高效并且功能强大的方法来提取关键字和关键字。 这就是KeyBERT诞生的初衷! 它使用BERT嵌入和简单的余弦相似性来查找文档中与文档本身最相似的子短语。


首先,使用BERT提取文档向量(嵌入)以获取文档级表示。 然后,针对N元语法词/短语提取词向量。 最后,我们使用余弦相似度来查找与文档最相似的词/短语。 然后,可以将最相似的词识定义为最能描述整个文档的词。


KeyBERT可能不是唯一的提取关键词的方法,它的定位主要是一种用于创建关键字和关键词的快速简便的方法。 尽管有很多出色的论文和解决方案都使用BERT嵌入(例如123),但是很少有直接基于BERT的解决方案,该工具无需从头开始进行训练模型,初学者也可直接使用 :pip install keybert


安装


可以直接通过pip安装:

pip install keybert


使用教程


下面是提取关键词的一个小例子

from keybert import KeyBERT
doc = """
         Supervised learning is the machine learning task of learning a function that
         maps an input to an output based on example input-output pairs.[1] It infers a
         function from labeled training data consisting of a set of training examples.[2]
         In supervised learning, each example is a pair consisting of an input object
         (typically a vector) and a desired output value (also called the supervisory signal). 
         A supervised learning algorithm analyzes the training data and produces an inferred function, 
         which can be used for mapping new examples. An optimal scenario will allow for the 
         algorithm to correctly determine the class labels for unseen instances. This requires 
         the learning algorithm to generalize from the training data to unseen situations in a 
         'reasonable' way (see inductive bias).
      """
model = KeyBERT('distilbert-base-nli-mean-tokens')


我们可以设置keyphrase_length来设置生成的keyphrase的长度:

>>> model.extract_keywords(doc, keyphrase_ngram_range=(1, 1))
[('learning', 0.4604),
 ('algorithm', 0.4556),
 ('training', 0.4487),
 ('class', 0.4086),
 ('mapping', 0.3700)]


要提取关键字短语,只需将关键字短语_ngram_range设置为(1,2)或更高,具体取决于我们希望在生成的关键字短语中使用的单词数:

>>> model.extract_keywords(doc, keyphrase_ngram_range=(1, 2))
[('learning algorithm', 0.6978),
 ('machine learning', 0.6305),
 ('supervised learning', 0.5985),
 ('algorithm analyzes', 0.5860),
 ('learning function', 0.5850)]


更多材料


相关文章
|
2月前
|
自然语言处理 算法
文本分析-使用jieba库实现TF-IDF算法提取关键词
文本分析-使用jieba库实现TF-IDF算法提取关键词
81 0
|
8月前
|
机器学习/深度学习 算法
JointKPE关键词抽取论文算法解读
这篇论文是清华大学2021年的论文,主要目的是在开放领域进行关键词/短语抽取。作者提出了一种模型叫做JointKPE,是建立在预训练语言模型上的开放领域关键词抽取模型
174 0
JointKPE关键词抽取论文算法解读
|
9月前
|
数据采集
基于Bert文本分类进行行业识别
基于Bert文本分类进行行业识别
161 0
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习应用篇-自然语言处理[10]:N-Gram、SimCSE介绍,更多技术:数据增强、智能标注、多分类算法、文本信息抽取、多模态信息抽取、模型压缩算法等
深度学习应用篇-自然语言处理[10]:N-Gram、SimCSE介绍,更多技术:数据增强、智能标注、多分类算法、文本信息抽取、多模态信息抽取、模型压缩算法等
|
10月前
|
机器学习/深度学习 文字识别 计算机视觉
文本识别 CRNN
文本识别 CRNN
231 0
|
11月前
|
自然语言处理 达摩院 算法
长文本口语语义理解技术系列②:关键词抽取实践
长文本口语语义理解技术系列②:关键词抽取实践
173 0
长文本口语语义理解技术系列②:关键词抽取实践
|
机器学习/深度学习 自然语言处理 算法
快递单信息抽取【二】基于ERNIE1.0至ErnieGram + CRF预训练模型
快递单信息抽取【二】基于ERNIE1.0至ErnieGram + CRF预训练模型
|
人工智能 自然语言处理 算法
基于Ernie-3.0 CAIL2019法研杯要素识别多标签分类任务
基于Ernie-3.0 CAIL2019法研杯要素识别多标签分类任务
基于Ernie-3.0 CAIL2019法研杯要素识别多标签分类任务
|
自然语言处理 算法 Python
基于微博评论的文本情感分析与关键词提取的实战案例~
在评论文本情感分析之前,我们需要将语句通过分词使其成为词语,然后优化分词结果,去掉无关的词语和字符。,以提高文本情感分析的准确度。
754 0
基于微博评论的文本情感分析与关键词提取的实战案例~
|
机器学习/深度学习 存储 自然语言处理
[转]NLP关键词提取方法总结及实现
[转]NLP关键词提取方法总结及实现
934 0
[转]NLP关键词提取方法总结及实现