KeyBert关键词提取 :原理、方法介绍、代码实践
@创建于:20210708
@修改于:20210708, 20221104
文章目录
- 1 概述
- 2 方法介绍
- 2.1 安装
- 2.2 KeyBERT(model)
- 2.3 extract_keywords参数介绍
- 3、代码实践
- 3.1 英文示例
- 3.2 中文示例
- 4、加载不同的模型库
- 4.1 SentenceTransformers模型调用
- 4.2 Transformers模型调用
- 4.3 Flair模型调用
- 5、ZhKeyBERT的使用
- 5.1 安装
- 5.2 使用
- 6、参考链接
1 概述
KeyBERT 是一种最小且易于使用的关键字提取技术,它利用 BERT 嵌入来创建与文档最相似的关键字和关键短语。可以在此处找到相应的媒
虽然已经有很多方法可用于关键字生成(例如,Rake、YAKE!、TF-IDF 等),但我想创建一个非常基本但功能强大的方法来提取关键字和关键短语。这就是 KeyBERT 的用武之地!它使用 BERT 嵌入和简单余弦相似度来查找文档中与文档本身最相似的子短语。
首先,使用 BERT 提取文档嵌入以获得文档级表示。然后,然后使用词嵌入模型来提取N-gram 词/短语。最后,使用余弦相似度来找到与文档最相似的单词/短语。然后可以将最相似的词识别为最能描述整个文档的词。
KeyBERT 绝不是独一无二的,它是作为创建关键字和关键短语的一种快速简便的方法而创建的。尽管有很多优秀的论文和解决方案使用了 BERT 嵌入(例如 BERT-keyphrase-extraction, BERT-Keyword-Extractor ),但我找不到一个基于 BERT 的解决方案,它不需要从头开始训练并且可以用于初学者(如我错了请纠正我!)。因此,目标是 pip install keybert 和最多使用 3 行代码。
2 方法介绍
2.1 安装
pip install keybert
2.2 KeyBERT(model)
# 该模型只有一个参数,model,默认为 'paraphrase-MiniLM-L6-v2'
__init__(self, model='paraphrase-MiniLM-L6-v2')
# 可以自己设定具体的模型名称
kw_model = KeyBERT(model="paraphrase-multilingual-MiniLM-L12-v2")
KeyBERT的参数只有一个,即预训练好的模型。
KeyBERT 0.4.0中,model默认的是 paraphrase-MiniLM-L6-v2,
KeyBERT 0.6.0中,model默认的是 all-MiniLM-L6-v2
Transformers库中的模型,在 keybert==0.6.0版本支持,0.4.0中不支持。
def __init__(self, model="all-MiniLM-L6-v2"):"""KeyBERT initializationArguments:model: Use a custom embedding model.The following backends are currently supported:* SentenceTransformers*
KeyBert关键词提取 :原理、方法介绍、代码实践相关推荐
- 【NLP】Doc2vec原理解析及代码实践
本文概览: 1. 句子向量简介 Word2Vec提供了高质量的词向量,并在一些任务中表现良好.虽然Word2Vec提供了高质量的词汇向量,但是仍然没有有效的方法将它们结合成一个高质量的文档向量.对于一 ...
- java按顺序售票方法_java_Java代码实践12306售票算法(二),周五闲来无事,基于上一篇关 - phpStudy...
Java代码实践12306售票算法(二) 周五闲来无事,基于上一篇关于浅析12306售票算法(java版)理论,进行了java编码实践供各位读者参考(以下为相关代码的简单描述) 1.订票工具类 1.1 ...
- 【特征提取】Hog特征原理简介与代码实践
前言 在[模式识别]SVM实现人脸表情分类一文中,我曾使用Hog特征+SVM的方式实现表情分类,但对于Hog特征的原理并未做深入整理.此篇将结合scikit-image来简单分析Hog特征的原理和维度 ...
- 爱可可推荐!关于竞赛思路,方法和代码实践,Datawhale数据竞赛Baseline开源分享!...
数据竞赛中baseline是最入门的分享, 它不仅有思路.方法还有内容: 或许你与Top选手的差距就是一个baseline! 01 项目介绍 如果你是数据竞赛的初学者.爱好者,比赛的baseline不 ...
- 爱可可推荐!关于竞赛思路,方法和代码实践,数据竞赛Baseline开源分享!
数据竞赛中baseline是最入门的分享, 它不仅有思路.方法还有内容: 或许你与Top选手的差距就是一个baseline! 01 项目介绍 如果你是数据竞赛的初学者.爱好者,比赛的baseline不 ...
- android 手机资源获取失败,安卓手机刷机原理方法介绍刷机失败解决方案
5风险 说到风险但凡刷机都带有一定的风险关键看你能不能把风险最小化甚至去掉了.首先肯定的是正常的刷机操作是不会损坏手机硬件的.其次刷机可以解决手机有些莫名其妙的毛病.升级手机硬件驱动就象升级电脑的BI ...
- php怎么创建事务,php事务的实现方法介绍(代码示例)
本篇文章给大家带来的内容是关于php事务的实现方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助.<?php $db = new mysqli("loc ...
- php获取回调url方法,php回调函数的实现方法介绍(代码)
本篇文章给大家带来的内容是关于php回调函数的实现方法介绍(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助.名称id说明选项options 回调过滤器(callback)1024 ...
- mysql统计数据的代码_MySQL按时间统计数据的方法介绍(代码示例)
本篇文章给大家带来的内容是关于MySQL按时间统计数据的方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在做数据库的统计时,经常会需要根据年.月.日来统计数据,然 ...
最新文章
- innodb和myisam的区别
- mysql空事务死锁_mysql空当锁导致死锁_mysql
- liberOJ#6006. 「网络流 24 题」试题库 网络流, 输出方案
- VS中代码格式及样式的统一处理
- S3上备份的json文件转存成parquet文件
- 若n = 2; m = 5 则 计算 2 + 22 + 222 + 2222 + 22222的和 ;若n = 3; m = 4 则 计算 3 + 33 + 333 + 3333的和
- 正态分布下含绝对值的期望求解 -- 待验证
- CAN协议 J1939
- Ubuntu下,curl 安装
- 学习利器,借助Tampermonkey写一个B站视频加速器脚本
- 倒车影像辅助线怎么看_倒车影像怎么看图解
- matlab中字体修改,matlab——修改图中字体
- 蓝桥杯2021年PYTHON 真题,跳房子
- 重要的产品分析模型:AARRR模型
- Android 应用市场链接上传地址
- 李宏毅深度学习笔记(CNN)
- HDU 2544 最短路 最短路入门
- PS 快速抠图换背景
- Unity百度地图,支持PC,Android,iOS,支持添加模型,支持卫星图,街道图
- 计算机学院青年教师讲课,计算机学院第六届青年教师讲课比赛成功举行
热门文章
- 计算机恢复数据怎么恢复,电脑不小心删除的文件如何恢复?教你数据恢复方法!...
- app inventor2环境搭建
- 使用openssl_encrypt方法替代mcrypt_encrypt做AES加密
- cesium 实战记录(六)地图通用工具方法的封装
- PLC高速脉冲输入计米轮模块(编码器测速/计米详细讲解)
- ip route show命令
- 工程流体力学笔记暂记30 (管道水力计算)
- xp系统网上邻居看不到局域网电脑_为什么我新装的XP系统局域网上网上邻居找不到其他计算机?...
- SAP 内向交货单介绍
- python实时采集与处理声音信号_Python之音频信号处理(一)音频基础知识