NLP 算法工具箱(关键词、实体、摘要、文本相似度)

1.前言

本项目包含几种常用 NLP算法的实现:关键词(keyword)、命名实体(named entity)、自动摘要(abstract)、文本相似度比较(text similarity)等。

另外,本项目基于 python3,依赖 jieba,tensorflow等第三方库。

2.NLP 工具箱简介

2.1 关键词

在 jieba的基础上,进行了一些封装。可以很方便的在 etc/user_words.dict中添加用户词典,以加强对一些领域特有关键词的识别。

调用举例:

kw_extract = KeywordExtraction(stopword_file='etc/stopwords.txt', keyword_weight=0.25)
content = file_util.read_whole_file('data/test001.txt')
keyword_list = kw_extract.extract_keyword(content)

输出:

extract keywords: ['楼市', '分化', '住房', '房子', '房价', '孙宏斌', '城市', '行业', '局部楼市']

2.2 命名实体

利用训练好的模型文件,对 人名地名组织机构名进行识别。模型文件存放在项目的 data目录,可以直接使用。

调用举例:

content = file_util.read_whole_file('data/test001.txt')
entities = named_entity.extract_entity(content)

输出:

extract named entities: ['成都', '土地管理局', '孙宏斌']

2.3 自动摘要

自动摘要是基于 TextRank算法思想,提取文本中比较重要的语句作为摘要。

调用举例:

content = file_util.read_whole_file('data/test005.txt')
abstract = AutoAbstract().generate_abstract(content, 3)

输出:

generate abstract: 
  坚持以人民为中心的价值导向为我国科技创新提供价值导航,就能推动我国科技事业日益强大而美好,更好地造福于人民,造福于世界
科技创新的目的,赋予创新生机与活力,科技创新的目的决定创新的价值取向或导向
加快科技创新,离不开正确价值导向

2.4 文本相似度

文本相似度指的是计算两篇文本的相似度,基于 MinHash算法思想。

调用举例:

text1 = file_util.read_whole_file('data/test001.txt')
text2 = file_util.read_whole_file('data/test002.txt')
similarity = text_similarity.calc_similarity(text1, text2)

输出:

data/test001.txt and data/test002.txt similarity: 0.94

3.总结

本项目最大的特点是以工程化的思维对 NLP常用算法进行了改进封装,真正做到开箱即用

完整代码见 GitHub, https://github.com/Daphnis-z/nlp-ztools

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值