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

共 3873字,需浏览 8分钟

 ·

2022-03-23 11:26


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

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


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


1.抽取关键短语

  • 在很多关键词提取任务中,使用tfidf、textrank等方法提取得到的仅仅是若干零碎词汇。

  • 这样的零碎词汇无法真正的表达文章的原本含义,我们并不想要它。


  • For example:

>>> text = '朝鲜确认金正恩出访俄罗斯 将与普京举行会谈...'
>>> keywords = ['俄罗斯', '朝鲜', '普京', '金正恩', '俄方']
  • 我们往往需要更细化的短语描述,来作为文本的关键信息展示。这样的需求在生成词云、提供摘要阅读、关键信息检索等任务中都非常重要。



  • 例如:For example:

>>> 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.抽取关键短语
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 工具包调用方法

>>> import jionlp as jio
>>> text = '朝鲜确认金正恩出访俄罗斯 将与普京举行会谈...'
>>> key_phrases = jio.keyphrase.extract_keyphrase(text)
>>> print(key_phrases)
>>> print(jio.keyphrase.extract_keyphrase.__doc__)

# ['俄罗斯克里姆林宫', '邀请金正恩访俄', '举行会谈',

# '朝方转交普京', '最高司令官金正恩']


2.扩展类型短语

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任务的短语扩充

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  


浏览 94
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报