前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Keyphrase Extraction 一个快速从中文里抽取关键短语的工具

Keyphrase Extraction 一个快速从中文里抽取关键短语的工具

作者头像
机器学习AI算法工程
发布2022-03-17 11:10:40
2.5K0
发布2022-03-17 11:10:40
举报

向AI转型的程序员都关注了这个号👇👇👇

机器学习AI算法工程   公众号:datayx

一个从 中文自然语言文本 中抽取 关键短语 的工具,只消耗 35M 内存。

1.抽取关键短语
  • 在很多关键词提取任务中,使用tfidf、textrank等方法提取得到的仅仅是若干零碎词汇。
  • 这样的零碎词汇无法真正的表达文章的原本含义,我们并不想要它。
  • For example:
代码语言:javascript
复制
>>> text = '朝鲜确认金正恩出访俄罗斯 将与普京举行会谈...'
>>> keywords = ['俄罗斯', '朝鲜', '普京', '金正恩', '俄方']
  • 我们往往需要更细化的短语描述,来作为文本的关键信息展示。这样的需求在生成词云、提供摘要阅读、关键信息检索等任务中都非常重要。
  • 例如:For example:
代码语言:javascript
复制
>>> phrases = ['俄罗斯克里姆林宫', '邀请金正恩访俄', '最高司令官金正恩', 
               '朝方转交普京', '举行会谈']
2.扩展相关短语词汇
  • 有时产品和客户给定了一些词汇列表,比如化工经营业务词汇“聚氯乙烯”、“塑料”、“切割”、“金刚石”等。想要找到跟这些词汇相关的短语。
  • 在做NER命名实体识别任务的时候,我们需要从文本中,将已有的类型词汇做扩充,如“机构”类别,但我们仅知道机构的一些特征,如常以“局”、“法院”、“办公室”等特征词结尾。
  • 在下面的使用样例中,给出了上述两种需求的扩展短语识别的方法。

为解决以上问题,基于北大分词器 pkuseg 工具,开发了一个关键短语抽取器,它可以方便地从文本中找出表达完成意思的关键短语。

全部项目代码获取方式:

关注微信公众号 datanlp  然后回复 关键词抽取 即可获取。

使用方法 

安装

  • 仅支持 python3
  • git clone https://github.com/dongrixinyu/chinese_keyphrase_extractor cd ./chinese_keyphrase_extractor pip install .
  • JioNLP 同样支持短语抽取,工具包安装方法:
  • $ pip install jionlp 示例代码 
  • 输入必须为 utf-8 编码字符串
  • 具体函数参数见代码
1.抽取关键短语
代码语言:javascript
复制
import ckpe    

ckpe_obj = ckpe.ckpe()
# 初次导入时会自动下载北大词性标注模型包,自动加载入内存(50M)
# 若由于网速原因下载失败,请参考 https://github.com/lancopku/pkuseg-python如何安装下载 pkuseg 默认模型
text = '法国媒体最新披露,巴黎圣母院火灾当晚,第一次消防警报响起时,负责查验的保安找错了位置,因而可能贻误了救火的最佳时机。...'key_phrases = ckpe_obj.extract_keyphrase(text)
print(key_phrases)
print(ckpe_obj.extract_keyphrase.__doc__)
  • JioNLP 工具包调用方法:
代码语言:javascript
复制
>>> import jionlp as jio
>>> text = '朝鲜确认金正恩出访俄罗斯 将与普京举行会谈...'
>>> key_phrases = jio.keyphrase.extract_keyphrase(text)
>>> print(key_phrases)
>>> print(jio.keyphrase.extract_keyphrase.__doc__)

# ['俄罗斯克里姆林宫', '邀请金正恩访俄', '举行会谈',
#  '朝方转交普京', '最高司令官金正恩']
2.扩展类型短语
代码语言:javascript
复制
text = '聚氯乙烯树脂、塑料制品、切割工具、人造革、人造金刚石、农药(不含危险化学品)、针纺织品自产自销。...'
word_dict = {'聚氯乙烯': 1, '塑料': 1, '切割': 1, '金刚石': 1}  # 词汇: 词频(词频若未知可全设 1)
key_phrases = ckpe_obj.extract_keyphrase(text, top_k=-1, specified_words=word_dict)
print(key_phrases)
3.NER任务的短语扩充
代码语言:javascript
复制
text = '国务院下发通知,山西省法院、陕西省检察院、四川省法院、成都市教育局。...'
word_dict = {'局': 1, '国务院': 1, '检察院': 1, '法院': 1}
key_phrases = ckpe_obj.extract_keyphrase(text, top_k=-1, specified_words=word_dict, 
                                         remove_phrases_list=['麻将局'])
print(key_phrases)

原理 

  • 首先基于 pkuseg 工具做分词和词性标注,再使用 tfidf 计算文本的关键词权重,
  • 关键词提取算法找出碎片化的关键词,然后再根据相邻关键碎片词进行融合,重新计算权重,去除相似词汇。得到的融合的多个关键碎片即为关键短语。
    • 短语的 token 长度不超过 12
    • 短语中不可出现超过1个虚词
    • 短语的两端 token 不可是虚词和停用词
    • 短语中停用词数量不可以超过规定个数
    • 短语重复度计算 MMR 添加其中
    • 提供仅抽取名词短语功能
  • 使用预训练好的 LDA 模型,计算文本的主题概率分布,以及每一个候选短语的主题概率分布,得到最终权重
计算主题向量
  • 工具包中默认的主题模型参数由100万篇各个类型的新闻文本,以及少部分社交媒体文本训练得到。
  • 若需要针对特定领域文本处理,则需要根据特定的语料重新训练模型,并按相应的文件格式做替换。
  • 主题模型采用标准的 LDA 模型训练得到,工具包可选择 gensim、sklearn、familia 等,训练完毕后可以得到主题词的分布表示,进而可以得到每个词汇在不同主题下的分布。由此可以得出词汇的主题突出度。

机器学习算法AI大数据技术

 搜索公众号添加: datanlp

长按图片,识别二维码


阅读过本文的人还看了以下文章:

TensorFlow 2.0深度学习案例实战

基于40万表格数据集TableBank,用MaskRCNN做表格检测

《基于深度学习的自然语言处理》中/英PDF

Deep Learning 中文版初版-周志华团队

【全套视频课】最全的目标检测算法系列讲解,通俗易懂!

《美团机器学习实践》_美团算法团队.pdf

《深度学习入门:基于Python的理论与实现》高清中文PDF+源码

《深度学习:基于Keras的Python实践》PDF和代码

特征提取与图像处理(第二版).pdf

python就业班学习视频,从入门到实战项目

2019最新《PyTorch自然语言处理》英、中文版PDF+源码

《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码

《深度学习之pytorch》pdf+附书源码

PyTorch深度学习快速实战入门《pytorch-handbook》

【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》

《Python数据分析与挖掘实战》PDF+完整源码

汽车行业完整知识图谱项目实战视频(全23课)

李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材

笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!

《神经网络与深度学习》最新2018版中英PDF+源码

将机器学习模型部署为REST API

FashionAI服装属性标签图像识别Top1-5方案分享

重要开源!CNN-RNN-CTC 实现手写汉字识别

yolo3 检测出图像中的不规则汉字

同样是机器学习算法工程师,你的面试为什么过不了?

前海征信大数据算法:风险概率预测

【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类

VGG16迁移学习,实现医学图像识别分类工程项目

特征工程(一)

特征工程(二) :文本数据的展开、过滤和分块

特征工程(三):特征缩放,从词袋到 TF-IDF

特征工程(四): 类别特征

特征工程(五): PCA 降维

特征工程(六): 非线性特征提取和模型堆叠

特征工程(七):图像特征提取和深度学习

如何利用全新的决策树集成级联结构gcForest做特征工程并打分?

Machine Learning Yearning 中文翻译稿

蚂蚁金服2018秋招-算法工程师(共四面)通过

全球AI挑战-场景分类的比赛源码(多模型融合)

斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)

python+flask搭建CNN在线识别手写中文网站

中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程

不断更新资源

深度学习、机器学习、数据分析、python

 搜索公众号添加: datayx  

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习AI算法工程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.抽取关键短语
  • 2.扩展相关短语词汇
  • 使用方法 
  • 安装
  • 原理 
    • 计算主题向量
    相关产品与服务
    NLP 服务
    NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档