@创建于: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关键词提取 :原理、方法介绍、代码实践相关推荐

  1. 【NLP】Doc2vec原理解析及代码实践

    本文概览: 1. 句子向量简介 Word2Vec提供了高质量的词向量,并在一些任务中表现良好.虽然Word2Vec提供了高质量的词汇向量,但是仍然没有有效的方法将它们结合成一个高质量的文档向量.对于一 ...

  2. java按顺序售票方法_java_Java代码实践12306售票算法(二),周五闲来无事,基于上一篇关 - phpStudy...

    Java代码实践12306售票算法(二) 周五闲来无事,基于上一篇关于浅析12306售票算法(java版)理论,进行了java编码实践供各位读者参考(以下为相关代码的简单描述) 1.订票工具类 1.1 ...

  3. 【特征提取】Hog特征原理简介与代码实践

    前言 在[模式识别]SVM实现人脸表情分类一文中,我曾使用Hog特征+SVM的方式实现表情分类,但对于Hog特征的原理并未做深入整理.此篇将结合scikit-image来简单分析Hog特征的原理和维度 ...

  4. 爱可可推荐!关于竞赛思路,方法和代码实践,Datawhale数据竞赛Baseline开源分享!...

    数据竞赛中baseline是最入门的分享, 它不仅有思路.方法还有内容: 或许你与Top选手的差距就是一个baseline! 01 项目介绍 如果你是数据竞赛的初学者.爱好者,比赛的baseline不 ...

  5. 爱可可推荐!关于竞赛思路,方法和代码实践,数据竞赛Baseline开源分享!

    数据竞赛中baseline是最入门的分享, 它不仅有思路.方法还有内容: 或许你与Top选手的差距就是一个baseline! 01 项目介绍 如果你是数据竞赛的初学者.爱好者,比赛的baseline不 ...

  6. android 手机资源获取失败,安卓手机刷机原理方法介绍刷机失败解决方案

    5风险 说到风险但凡刷机都带有一定的风险关键看你能不能把风险最小化甚至去掉了.首先肯定的是正常的刷机操作是不会损坏手机硬件的.其次刷机可以解决手机有些莫名其妙的毛病.升级手机硬件驱动就象升级电脑的BI ...

  7. php怎么创建事务,php事务的实现方法介绍(代码示例)

    本篇文章给大家带来的内容是关于php事务的实现方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助.<?php $db = new mysqli("loc ...

  8. php获取回调url方法,php回调函数的实现方法介绍(代码)

    本篇文章给大家带来的内容是关于php回调函数的实现方法介绍(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助.名称id说明选项options 回调过滤器(callback)1024 ...

  9. mysql统计数据的代码_MySQL按时间统计数据的方法介绍(代码示例)

    本篇文章给大家带来的内容是关于MySQL按时间统计数据的方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在做数据库的统计时,经常会需要根据年.月.日来统计数据,然 ...

最新文章

  1. Vue-cli3.0Mock数据使用
  2. 优秀程序员写代码一定会用的 11 条经验
  3. weblogic从入门到起飞!(weblogic安装、domain配置、管理控制台)(一)
  4. 使用python来操作redis用法详解
  5. raspberry pi_通过串行蓝牙从Raspberry Pi传感器单元发送数据
  6. LeetCode 993. 二叉树的堂兄弟节点(层序遍历)
  7. 机器学习如何用于芯片系统设计?《机器学习系统芯片设计》
  8. oracle的分支语句,Oracle中的分支语句
  9. java View转换类型_java强制类型转换.
  10. 狗熊冬眠_4本最佳的冬眠书–Spring冬眠书
  11. ajax上传图片springmvc,springmvc ajax上传图片(jquery)
  12. 数据库表结构文档screw
  13. STM32F030F4P6单片机由外部时钟改为内部时钟
  14. hⅰgh怎么读音发音英语_字母h的发音音标
  15. C++著名库的比较和学习经验
  16. POJ原题测试数据合集+使用方法
  17. SpaceSyntax【空间句法】之DepthMapX学习:第二篇 输出了什么东西 与 核心概念
  18. 《一年学完mit计算机课程》,用了这种学习方法,他一年学完了33门MIT计算机课程...
  19. 嵌入式系统开发笔记25:win10防火墙打开特定端口
  20. java 统计数字个数_JAVA统计数字个数

热门文章

  1. 文件批量重命名工具,批量修改文件名的实现思路
  2. (读书笔记)《玩着玩着就能成为PPT高手》——事前准备不能马虎
  3. 基于PHP的自动化售货系统(简洁优雅)
  4. PMP考试中涉及敏捷项目管理方法的主要特点
  5. 一号店静态html源代码,一号店html模板
  6. Java3D实现三维显示
  7. 榕树贷款分布式共识算法分为CFT与BFT(榕树贷款)
  8. Arduino开发实例-MAX30100 脉搏血氧仪传感器驱动
  9. AI语音助手识别动画AE制作教程
  10. xp系统默认网卡服务器,电脑XP系统配置局域网提示无任何网络提供程序接受指定的网络路径的解决方法...