前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HanLP 分词

HanLP 分词

作者头像
周小董
发布2019-09-18 11:10:33
1.4K0
发布2019-09-18 11:10:33
举报
文章被收录于专栏:python前行者python前行者

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/xc_zhou/article/details/100670066

pyhanlp 安装

其为 HanLP 的 Python 接口,支持自动下载与升级 HanLP,兼容 Python2、Python3。

安装命令为 pip install pyhanlp,使用命令 hanlp 来验证安装。

pyhanlp 目前使用 jpype1 这个 Python 包来调用 HanLP,如果遇到:

building ‘_jpype’ extensionerror: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft VisualC++ Build Tools”: http://landinghub.visualstudio.com/visual-cpp-build-tools

则推荐利用轻量级的 Miniconda 来下载编译好的 jpype1。

代码语言:javascript
复制
conda install -c conda-forge jpype1
pip install pyhanlp

未安装 Java 时会报错

jpype.jvmfinder.JVMNotFoundException: No JVM shared library file (jvm.dll) found. Try setting up the JAVAHOME environment variable properly.

HanLP 主项目采用 Java 开发,所以需要 Java 运行环境,请安装 JDK。

命令行交互式分词模式

在命令行界面,使用命令 hanlp segment 进入交互分词模式,输入一个句子并回车,HanLP 会输出分词结果:

image
image
代码语言:javascript
复制
$ hanlp segment
商品和服务
商品/n 和/cc 服务/vn
当下雨天地面积水分外严重
当/p 下雨天/n 地面/n 积水/n 分外/d 严重/a

C:\Users\WYXCz>hanlp parse
徐先生还具体帮助他确定了把画雄鹰、松鼠和麻雀作为主攻目标。
1       徐      徐      nh      nr      _       2       定中关系        _       _
2       先生    先生    n       n       _       5       主谓关系        _       _
3       还      还      d       d       _       5       状中结构        _       _
4       具体    具体    a       ad      _       5       状中结构        _       _
5       帮助    帮助    v       v       _       0       核心关系        _       _
6       他      他      r       r       _       5       兼语    _       _
7       确定    确定    v       v       _       5       动宾关系        _       _
8       了      了      u       u       _       7       右附加关系      _       _
9       把      把      p       p       _       16      状中结构        _       _
10      画      画      v       v       _       9       介宾关系        _       _
11      雄鹰    雄鹰    n       n       _       10      动宾关系        _       _
12      、      、      wp      w       _       13      标点符号        _       _
13      松鼠    松鼠    n       n       _       11      并列关系        _       _
14      和      和      c       c       _       15      左附加关系      _       _
15      麻雀    麻雀    n       n       _       11      并列关系        _       _
16      作为    作为    v       v       _       7       动宾关系        _       _
17      主攻    主攻    v       vn      _       18      定中关系        _       _
18      目标    目标    n       n       _       16      动宾关系        _       _
19      。      。      wp      w       _       5       标点符号        _       _

可见,pyhanlp 分词结果是带有词性的。

服务器模式

通过 hanlp serve 来启动内置的 HTTP 服务器,默认本地访问地址为:http://localhost:8765

image
image
image
image

也可以访问官网演示页面:http://hanlp.hankcs.com/

通过工具类 HanLP 调用常用接口

通过工具类 HanLP 调用常用接口,这种方式应该是我们在项目中最常用的方式。

(1)分词

代码语言:javascript
复制
from pyhanlp import *
content = "现如今,机器学习和深度学习带动人工智能飞速的发展,并在图片处理、语音识别领域取得巨大成功。"
print(HanLP.segment(content))

结果为:

[现如今/t, ,/w, 机器学习/gi, 和/cc, 深度/n, 学习/v, 带动/v, 人工智能/n, 飞速/d, 的/ude1, 发展/vn, ,/w, 并/cc, 在/p, 图片/n, 处理/vn, 、/w, 语音/n, 识别/vn, 领域/n, 取得/v, 巨大/a, 成功/a, 。/w]

(2)自定义词典分词

在没有使用自定义字典时的分词。

代码语言:javascript
复制
txt = "铁甲网是中国最大的工程机械交易平台。"
print(HanLP.segment(txt))

结果为:

[铁甲/n, 网/n, 是/vshi, 中国/ns, 最大/gm, 的/ude1, 工程/n, 机械/n, 交易/vn, 平台/n, 。/w]

添加自定义新词:

代码语言:javascript
复制
CustomDictionary.add("铁甲网")
CustomDictionary.insert("工程机械", "nz 1024")
CustomDictionary.add("交易平台", "nz 1024 n 1")
print(HanLP.segment(txt))

结果为:

[铁甲网/nz, 是/vshi, 中国/ns, 最大/gm, 的/ude1, 工程机械/nz, 交易平台/nz, 。/w]

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

print(HanLP.segment('你好,欢迎在Python中调用HanLP的API'))
for term in HanLP.segment('下雨天地面积水'):
    print('{}\t{}'.format(term.word, term.nature)) # 获取单词与词性
testCases = [
    "商品和服务",
    "结婚的和尚未结婚的确实在干扰分词啊",
    "买水果然后来世博园最后去世博会",
    "中国的首都是北京",
    "欢迎新老师生前来就餐",
    "工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作",
    "随着页游兴起到现在的页游繁盛,依赖于存档进行逻辑判断的设计减少了,但这块也不能完全忽略掉。"]
for sentence in testCases: print(HanLP.segment(sentence))
# 关键词提取
document = "水利部水资源司司长陈明忠9月29日在国务院新闻办举行的新闻发布会上透露," \
           "根据刚刚完成了水资源管理制度的考核,有部分省接近了红线的指标," \
           "有部分省超过红线的指标。对一些超过红线的地方,陈明忠表示,对一些取用水项目进行区域的限批," \
           "严格地进行水资源论证和取水许可的批准。"
print(HanLP.extractKeyword(document, 2))
# 自动摘要
print(HanLP.extractSummary(document, 3))
# 依存句法分析
print(HanLP.parseDependency("徐先生还具体帮助他确定了把画雄鹰、松鼠和麻雀作为主攻目标。"))

HanLP项目主页:https://github.com/hankcs/HanLP HanLP下载地址:https://github.com/hankcs/HanLP/releases Python接口:https://github.com/hankcs/pyhanlp HanLP在线演示:http://hanlp.hankcs.com/

hanlp、pyhanlp的具体使用方法见: https://go.ctolib.com/hankcs-pyhanlp.html http://www.hankcs.com/nlp/hanlp.html https://github.com/hankcs/HanLP/blob/master/README.md

参考:https://www.jianshu.com/p/009671e56027

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • pyhanlp 安装
  • 命令行交互式分词模式
  • 服务器模式
  • 通过工具类 HanLP 调用常用接口
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档