Home

Awesome

chinese_keyphrase_extractor (CKPE)

一个从 中文自然语言文本 中抽取 关键短语 的工具,只消耗 35M 内存
A tool for automatic keyphrase extraction from Chinese text.

CKPE在线版,可以直接进入试用关键短语抽取功能。

欢迎关注wx公众号“JioNLP”,获取该功能更多相关资讯,并可加入“NLP 交流群”

本项目已经ALREADY迁移至 JioNLP 工具包,性能更好,速度更快哦~~~

当前工具语料最新时间为 2020年6月。此后的出现的新词不容易识别,须根据新语料处理。

应用场景 Application scenario

1.抽取关键短语

>>> text = '朝鲜确认金正恩出访俄罗斯 将与普京举行会谈...'
>>> keywords = ['俄罗斯', '朝鲜', '普京', '金正恩', '俄方']
>>> phrases = ['俄罗斯克里姆林宫', '邀请金正恩访俄', '最高司令官金正恩', 
               '朝方转交普京', '举行会谈']

2.扩展相关短语词汇

功能介绍 Function introduction

为解决以上问题,基于北大分词器 pkuseg 工具,开发了一个关键短语抽取器,它可以方便地从文本中找出表达完成意思的关键短语。
In order to solve the above problem, I developed a keyphrase extractor based on pkuseg segmentation tool, which can easily find out the keyphrases expressing the complete meaning from the text.

使用方法 Usage

安装 Installation

git clone https://github.com/dongrixinyu/chinese_keyphrase_extractor
cd ./chinese_keyphrase_extractor
pip install .
$ pip install jionlp

示例代码 Sample code

1.抽取关键短语
import ckpe    

ckpe_obj = ckpe.ckpe()
# 初次导入时会自动下载北大词性标注模型包,自动加载入内存(50M)  
# 若由于网速原因下载失败,请参考 https://github.com/lancopku/pkuseg-python 如何安装下载 pkuseg 默认模型  
# Speech Tagging Model Package of pkyseg will be downloaded automatically upon initial import  
# If downloading fails due to network speed, please refer to how to install and download pkuseg default model in https://github.com/lancopku/pkuseg-python  

text = '法国媒体最新披露,巴黎圣母院火灾当晚,第一次消防警报响起时,负责查验的保安找错了位置,因而可能贻误了救火的最佳时机。...'
key_phrases = ckpe_obj.extract_keyphrase(text)
print(key_phrases)
print(ckpe_obj.extract_keyphrase.__doc__)
>>> 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)

关键短语抽取技术总结

关于如何自己根据特定语料训练模型,各个文件的计算方法说明

计算主题向量

新版 3.0 New Version 3.0

原理 Principle of algorithm

TODO

Reference

我的窝 My blog

如果觉得方便好用,可以请我喝杯咖啡 (●'◡'●) 也可以关注wx公众号“JioNLP”获取更多资料。

image