前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NLP之pyhanlp安装及其使用

NLP之pyhanlp安装及其使用

作者头像
菲宇
发布2020-10-26 14:31:50
2.6K0
发布2020-10-26 14:31:50
举报
文章被收录于专栏:菲宇菲宇

pyhanlp的github:https://github.com/hankcs/pyhanlp

pyhanlp官方文档:https://pypi.org/project/pyhanlp/

HanLP主文档目录:https://github.com/hankcs/HanLP/blob/1.x/README.md

pyhanlp案例:https://github.com/hankcs/pyhanlp/tree/master/tests/demos

中文分词≠自然语言处理!

中文分词只是第一步;HanLP从中文分词开始,覆盖词性标注、命名实体识别、句法分析、文本分类等常用任务,提供了丰富的API。

不同于一些简陋的分词类库,HanLP精心优化了内部数据结构和IO接口,做到了毫秒级的冷启动、千万字符每秒的处理速度,而内存最低仅需120MB。无论是移动设备还是大型集群,都能获得良好的体验。

不同于市面上的商业工具,HanLP提供训练模块,可以在用户的语料上训练模型并替换默认模型,以适应不同的领域。项目主页上提供了详细的文档,以及在一些开源语料上训练的模型。

HanLP希望兼顾学术界的精准与工业界的效率,在两者之间取一个平衡,真正将自然语言处理普及到生产环境中去。

我们使用的pyhanlp是用python包装了HanLp的java接口。

HanLP.segment 分词,把一句话分词很碎的词,有准的有不准的,但是这个方法是唯一一个能把词性输出的方法,关于词性可以做很多的延伸和拓展,比如分析一段话的精髓,就可以简单的用词性排除和词性组合法; HanLP.extractPhrase 分短语,把一句话分成几个短语,会带一些词语组合(联想),比如A+B组合成一个词,A+C又组合成了一个词; HanLP.extractSummary 提取段落的摘要,提取出该段落/文章的一些摘要信息,建议组合使用,比如 一个for循环 把每个摘要再次进行分词 HanLP.extractKeyword 提取文章段落的关键词,会精准的提取出一些词语,但是在提取出词语的数量少会比 HanLP.segment少很多, 建议和 HanLP.extractSummary 组合使用;

一、python下安装pyhanlp

pip安装

代码语言:javascript
复制
pip install pyhanlp

第一次import pyhanlp会下载一个比较大的数据集,需要耐心等待下,后面再import就不会有了。

代码语言:javascript
复制
from pyhanlp import *

pyhanlp官方文档

二、pyhanlp使用

1.分词

HanLP.segment

代码语言:javascript
复制
from pyhanlp import *
conten_list=HanLP.parseDependency("我爱自然语言处理技术!")

2.分词和词性标注

HanLP.segment

代码语言:javascript
复制
from pyhanlp import *
conten_list=HanLP.parseDependency("我爱自然语言处理技术!")
for item in content_list:
    print(item.word,item.nature)

3.依存句法分析

代码语言:javascript
复制
from pyhanlp import *

s_dep=HanLP.parseDependency("我爱自然语言处理技术!")
print(s_dep)

4.关键词提取

内部采用TextRankKeyword实现,用户可以直接调用TextRankKeyword.getKeywordList(document, size)

代码语言:javascript
复制
from pyhanlp import *
content = (
    "程序员(英文Programmer)是从事程序开发、维护的专业人员。"
    "一般将程序员分为程序设计人员和程序编码人员,"
    "但两者的界限并不非常清楚,特别是在中国。"
    "软件从业人员分为初级程序员、高级程序员、系统"
    "分析员和项目经理四大类。")
TextRankKeyword = JClass("com.hankcs.hanlp.summary.TextRankKeyword")
keyword_list = HanLP.extractKeyword(content, 5)
print(keyword_list)
# print(help(HanLP))

5.摘要提取

采用TextRankSentence = JClass("com.hankcs.hanlp.summary.TextRankSentence")

代码语言:javascript
复制
from pyhanlp import *
document = '''水利部水资源司司长陈明忠9月29日在国务院新闻办举行的新闻发布会上透露,
    根据刚刚完成了水资源管理制度的考核,有部分省接近了红线的指标,
    有部分省超过红线的指标。对一些超过红线的地方,陈明忠表示,对一些取用水项目进行区域的限批,
    严格地进行水资源论证和取水许可的批准。
     '''
TextRankSentence = JClass("com.hankcs.hanlp.summary.TextRankSentence")
sentence_list = HanLP.extractSummary(document, 3)
print(sentence_list)

sentence_list = HanLP.extractSummary(document, 2)
print(sentence_list)

sentence_list = HanLP.extractSummary(document, 1)
print(sentence_list)

sentence_list = HanLP.getSummary(document, 50)
print(sentence_list)

sentence_list = HanLP.getSummary(document, 30)
print(sentence_list)

sentence_list = HanLP.getSummary(document, 20)
print(sentence_list)

6.感知机词法分析器

代码语言:javascript
复制
from pyhanlp import *

PerceptronLexicalAnalyzer=JClass('com.hankcs.hanlp.model.perceptron.PerceptronLexicalAnalyzer')
analyzer=PerceptronLexicalAnalyzer()
print(analyzer.analyze("广州菲宇科技的董事长陈晴小姐到北京中关村的科技园参观学习"))

7.中国人名识别

代码语言:javascript
复制
from pyhanlp import *

NER=HanLP.newSegment().enableNameRecognize(True)
p_name=NER.seg('马云、雷军、汪洋、张朝阳的搜狗、韩寒的书、马化腾的腾讯')
print(p_name)

8.音译名识别

代码语言:javascript
复制
from pyhanlp import *

sentence = '微软的比尔盖茨、Facebook的扎克伯格跟桑德博格、亚马逊的贝索斯、苹果的库克,这些硅谷的科技人'
person_ner = HanLP.newSegment().enableTranslatedNameRecognize(True)
p_name = person_ner.seg(sentence)
print(p_name)

9.短语提取

代码语言:javascript
复制
from pyhanlp import *

document = '''水利部水资源司司长陈明忠9月29日在国务院新闻办举行的新闻发布会上透露,
    根据刚刚完成了水资源管理制度的考核,有部分省接近了红线的指标,
    有部分省超过红线的指标。对一些超过红线的地方,陈明忠表示,对一些取用水项目进行区域的限批,
    严格地进行水资源论证和取水许可的批准。
     '''
phraseList = HanLP.extractPhrase(document, 3)
print(phraseList)

10.简繁转换

代码语言:javascript
复制
from pyhanlp import *

Jianti = HanLP.convertToSimplifiedChinese("我愛自然語言處理技術!")
Fanti = HanLP.convertToTraditionalChinese("我爱自然语言处理技术!")
print(Jianti)
print(Fanti)

11.拼音转换

代码语言:javascript
复制
from pyhanlp import *

s = '责任重于泰山'
pinyinList = HanLP.convertToPinyinList(s)
for pinyin in pinyinList:
    print(pinyin.getPinyinWithoutTone(),pinyin.getTone(), pinyin, pinyin.getPinyinWithToneMark())

声母、韵母

代码语言:javascript
复制
from pyhanlp import *

s = '责任重于泰山'
pinyinList = HanLP.convertToPinyinList(s)
for pinyin in pinyinList:
    print(pinyin.getShengmu(), pinyin.getYunmu())

12.pyhanlp可视化

pyhanlp提供了一个很好的展示交付界面,只要一句命令就能启动一个web服务 hanlp serve 登录http://localhost:8765就能看下可视化界面,能看到分词结果和依存关系的结果

HanLP词性表

a 形容词 ad 副形词 ag 形容词性语素 al 形容词性惯用语 an 名形词 b 区别词 begin 仅用于始##始 bg 区别语素 bl 区别词性惯用语 c 连词 cc 并列连词 d 副词 dg 辄,俱,复之类的副词 dl 连语 e 叹词 end 仅用于终##终 f 方位词 g 学术词汇 gb 生物相关词汇 gbc 生物类别 gc 化学相关词汇 gg 地理地质相关词汇 gi 计算机相关词汇 gm 数学相关词汇 gp 物理相关词汇 h 前缀 i 成语 j 简称略语 k 后缀 l 习用语 m 数词 mg 数语素 Mg 甲乙丙丁之类的数词 mq 数量词 n 名词 nb 生物名 nba 动物名 nbc 动物纲目 nbp 植物名 nf 食品,比如“薯片” ng 名词性语素 nh 医药疾病等健康相关名词 nhd 疾病 nhm 药品 ni 机构相关(不是独立机构名) nic 下属机构 nis 机构后缀 nit 教育相关机构 nl 名词性惯用语 nm 物品名 nmc 化学品名 nn 工作相关名词 nnd 职业 nnt 职务职称 nr 人名 nr1 复姓 nr2 蒙古姓名 nrf 音译人名 nrj 日语人名 ns 地名 nsf 音译地名 nt 机构团体名 ntc 公司名 ntcb 银行 ntcf 工厂 ntch 酒店宾馆 nth 医院 nto 政府机构 nts 中小学 ntu 大学 nx 字母专名 nz 其他专名 o 拟声词 p 介词 pba 介词“把” pbei 介词“被” q 量词 qg 量词语素 qt 时量词 qv 动量词 r 代词 rg 代词性语素 Rg 古汉语代词性语素 rr 人称代词 ry 疑问代词 rys 处所疑问代词 ryt 时间疑问代词 ryv 谓词性疑问代词 rz 指示代词 rzs 处所指示代词 rzt 时间指示代词 rzv 谓词性指示代词 s 处所词 t 时间词 tg 时间词性语素 u 助词 ud 助词 ude1 的 底 ude2 地 ude3 得 udeng 等 等等 云云 udh 的话 ug 过 uguo 过 uj 助词 ul 连词 ule 了 喽 ulian 连 (“连小学生都会”) uls 来讲 来说 而言 说来 usuo 所 uv 连词 uyy 一样 一般 似的 般 uz 着 uzhe 着 uzhi 之 v 动词 vd 副动词 vf 趋向动词 vg 动词性语素 vi 不及物动词(内动词) vl 动词性惯用语 vn 名动词 vshi 动词“是” vx 形式动词 vyou 动词“有” w 标点符号 wb 百分号千分号,全角:% ‰ 半角:% wd 逗号,全角:, 半角:, wf 分号,全角:; 半角: ; wh 单位符号,全角:¥ $ £ ° ℃ 半角:$ wj 句号,全角:。 wky 右括号,全角:) 〕 ] } 》 】 〗 〉 半角: ) ] { > wkz 左括号,全角:( 〔 [ { 《 【 〖 〈 半角:( [ { < wm 冒号,全角:: 半角: : wn 顿号,全角:、 wp 破折号,全角:—— -- ——- 半角:— —- ws 省略号,全角:…… … wt 叹号,全角:! ww 问号,全角:? wyy 右引号,全角:” ’ 』 wyz 左引号,全角:“ ‘ 『 x 字符串 xu 网址URL xx 非语素字 y 语气词(delete yg) yg 语气语素 z 状态词 zg 状态词

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、python下安装pyhanlp
  • 二、pyhanlp使用
    • 1.分词
      • 2.分词和词性标注
        • 3.依存句法分析
          • 4.关键词提取
            • 6.感知机词法分析器
              • 7.中国人名识别
                • 8.音译名识别
                  • 9.短语提取
                    • 10.简繁转换
                      • 11.拼音转换
                        • 12.pyhanlp可视化
                        • HanLP词性表
                        相关产品与服务
                        NLP 服务
                        NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档