专栏首页菲宇NLP之pyhanlp安装及其使用

NLP之pyhanlp安装及其使用

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安装

pip install pyhanlp

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

from pyhanlp import *

pyhanlp官方文档

二、pyhanlp使用

1.分词

HanLP.segment

from pyhanlp import *
conten_list=HanLP.parseDependency("我爱自然语言处理技术!")

2.分词和词性标注

HanLP.segment

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

3.依存句法分析

from pyhanlp import *

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

4.关键词提取

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

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")

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.感知机词法分析器

from pyhanlp import *

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

7.中国人名识别

from pyhanlp import *

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

8.音译名识别

from pyhanlp import *

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

9.短语提取

from pyhanlp import *

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

10.简繁转换

from pyhanlp import *

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

11.拼音转换

from pyhanlp import *

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

声母、韵母

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 状态词

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 自然语言处理工具pyhanlp分词与词性标注

    Pyhanlp分词与词性标注的相关内容记得此前是有分享过的。可能时间太久记不太清楚了。以下文章是分享自“baiziyu”所写(小部分内容有修改),供大家学习参考...

    IT小白龙
  • Python中文分词工具大合集:安装、使用和测试

    这篇文章事实上整合了之前文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考。

    AINLP
  • 部分常用分词工具使用整理

    HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、...

    IT小白龙
  • 初学者|一起来看看词性标注

    本文根据自己的学习过程以及查阅相关资料的理解,对自然语言基础技术之词性标注进行了相对全面的简绍,包括定义、目前的难点以及常见方法,还推荐了一大波python实战...

    yuquanle
  • 初学者|一起来看看词性标注

    本文根据自己的学习过程以及查阅相关资料的理解,对自然语言基础技术之词性标注进行了相对全面的简绍,包括定义、目前的难点以及常见方法,还推荐了一大波python实战...

    zenRRan
  • 【一分钟知识】依存句法分析

    本文简要介绍了自然语言处理中极其重要的句法分析,并侧重对依存句法分析进行了重点总结,包括定义、重要概念、基本方法、性能评价、依存分析数据集,最后,分享了一些流行...

    zenRRan
  • Hanlp汉字转拼音使用python调用详解

    HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、...

    IT小白龙
  • 初学者|一文读懂命名实体识别

    本文对自然语言基础技术之命名实体识别进行了相对全面的简绍,包括定义、发展历史、常见方法、以及相关数据集,最后推荐一大波python实战利器,并且包括工具的用法。

    yuquanle
  • 初学者|一文读懂命名实体识别

    本文对自然语言基础技术之命名实体识别进行了相对全面的简绍,包括定义、发展历史、常见方法、以及相关数据集,最后推荐一大波python实战利器,并且包括工具的用法。

    zenRRan
  • pyhanlp 中文词性标注与分词简介

    pyhanlp实现的分词器有很多,同时pyhanlp获取hanlp中分词器也有两种方式

    IT小白龙
  • 初学者|一文掌握HanLP用法

    本文简绍了HanLP的使用方法,HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目前支持很多功能,项目主要是Java的,也支持pyth...

    yuquanle
  • 初学者|一文掌握HanLP用法

    本文简绍了HanLP的使用方法,HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目前支持很多功能,项目主要是Java的,也支持pyth...

    AiTechYun
  • 自然语言处理之hanlp,Python调用与构建,分词、关键词提取、命名主体识别

    HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、...

    学到老
  • 初学者|分词的那些事儿

    本文谈一谈分词的那些事儿,从定义、难点到基本方法总结,文章最后推荐一些不错的实战利器。

    yuquanle
  • 初学者 | 分词的那些事儿

    本文谈一谈分词的那些事儿,从定义、难点到基本方法总结,文章最后推荐一些不错的实战利器。

    zenRRan
  • 一文掌握 HanLP 用法

    本文简绍了 HanLP 的使用方法,HanLP 是一系列模型与算法组成的 NLP 工具包,由大快搜索主导并完全开源,目前支持很多功能,项目主要是 Java 的,...

    用户1737318
  • NLP札记1

    皮大大
  • 《自然语言处理实战入门》 ---- 第4课 :中文分词原理及相关组件简介 之 汉语分词领域主要分词算法、组件、服务(上)...

    《自然语言处理实战入门》 第4课 :中文分词原理及相关组件简介的 主要内容 有如下三个部分:

    流川疯
  • 初学者|别说还不懂依存句法分析

    本文简要介绍了自然语言处理中极其重要的句法分析,并侧重对依存句法分析进行了重点总结,包括定义、重要概念、基本方法、性能评价、依存分析数据集,最后,分享了一些流行...

    yuquanle

扫码关注云+社区

领取腾讯云代金券