安装

无论是Windows、Linux还是macOS,HanLP的安装只需一句话搞定:

pip install hanlp_restful -U

创建客户端

from hanlp_restful import HanLPClient
HanLP = HanLPClient('https://www.hanlp.com/api', auth=None, language='zh') # auth不填则匿名,zh中文,mul多语种

申请秘钥

由于服务器算力有限,匿名用户每分钟限2次调用。如果你需要更多调用次数,建议申请免费公益API秘钥auth。

1.分词

分词

HanLP线上模型训练自9970万字的大型综合语料库,覆盖新闻、社交媒体、金融、法律等多个领域,是已知范围内全世界最大的中文分词语料库。语料库规模决定实际效果,面向生产环境的语料库应当在千万字量级。自然语义的语言学专家一直在持续标注该语料库,与时俱进保持最先进的分词质量。 在分词标准上,HanLP提供细粒度和粗粒度两种颗粒度,细粒度适合搜索引擎业务,粗粒度适合文本挖掘业务。

细粒度分词

默认细粒度:

HanLP.tokenize('商品和服务。阿婆主来到北京立方庭参观自然语义科技公司。')
HanLP('商品和服务。阿婆主来到北京立方庭参观自然语义科技公司。', tasks='tok').pretty_print()

返回类型为Document,是dict的子类,拓展了很多操作各种语言学结构的方法。

两个接口都会对文本进行分句,所以返回的结果一定是句子的列表。推荐在不超过服务器允许的最大长度的前提下,尽量传入整篇文章,以提高分词速度。

粗粒度分词

执行粗颗粒度分词:

HanLP.tokenize('商品和服务。阿婆主来到北京立方庭参观自然语义科技公司', coarse=True)

或者直接当函数调用:

HanLP('阿婆主来到北京立方庭参观自然语义科技公司。', tasks='tok/coarse').pretty_print()

同时执行细粒度和粗粒度分词

HanLP('阿婆主来到北京立方庭参观自然语义科技公司。', tasks='tok*')

多语种分词

得益于语言无关的设计,HanLP支持包括简繁中英日俄法德在内的104种语言上的分词。这一切,只需指定language='mul'即可实现。

HanLP(['In 2021, HanLPv2.1 delivers state-of-the-art multilingual NLP techniques to production environments.','2021年、HanLPv2.1は次世代の最先端多言語NLP技術を本番環境に導入します。','2021年 HanLPv2.1为生产环境带来次世代最先进的多语种NLP技术。'], tasks='tok', language='mul').pretty_print()

自然语言处理分为许多任务,分词只是最初级的一个。也许大家只听说过中文分词,但HanLP并不局限于分词。HanLP的使命是普及最前沿的自然语言处理技术到生产环境,所以在其他教程中你会见到许多更高级的NLP任务以及相应的API用法。

2.词性标注

任务越少,速度越快。如指定仅执行词性标注,默认CTB标准:

HanLP('HanLP为生产环境带来次世代最先进的多语种NLP技术。我的希望是希望张晚霞的背影被晚霞映红。', tasks='pos').pretty_print()
HanLP('HanLP为生产环境带来次世代最先进的多语种NLP技术。我的希望是希望张晚霞的背影被晚霞映红。', tasks='pos/pku').pretty_print()

同时执行所有标准的词性标注:

print(HanLP('HanLP为生产环境带来次世代最先进的多语种NLP技术。我的希望是希望张晚霞的背影被晚霞映红。', tasks='pos*'))

以pos开头的字段为词性,以tok开头的第一个数组为单词,两者按下标一一对应。

为已分词的句子执行词性标注:

HanLP(tokens=[["HanLP", "为", "生产环境", "带来", "次世代", "最", "先进", "的", "多语种", "NLP", "技术", "。"],["我", "的", "希望", "是", "希望", "张晚霞", "的", "背影", "被", "晚霞", "映红", "。"]], tasks='pos').pretty_print()

3.命名实体识别

同时执行所有标准的命名实体识别:

print(HanLP('2021年HanLPv2.1为生产环境带来次世代最先进的多语种NLP技术。阿婆主来到北京立方庭参观自然语义科技公司。', tasks='ner*')

每个四元组表示[命名实体, 类型标签, 起始下标, 终止下标],下标指的是命名实体在单词数组中的下标,单词数组默认为第一个以tok开头的数组。

任务越少,速度越快。如指定仅执行命名实体识别,默认MSRA标准:

HanLP('2021年HanLPv2.1为生产环境带来次世代最先进的多语种NLP技术。阿婆主来到北京立方庭参观自然语义科技公司。', tasks='ner').pretty_print()
HanLP('2021年HanLPv2.1为生产环境带来次世代最先进的多语种NLP技术。阿婆主来到北京立方庭参观自然语义科技公司。', tasks='ner/ontonotes').pretty_print()
HanLP(tokens=[["阿婆主", "来到", "北京立方庭", "参观", "自然语义科技公司", "。"]], tasks='ner').pretty_print()

4.依存句法分析

任务越少,速度越快。如指定仅执行依存句法分析:

doc = HanLP('2021年HanLPv2.1为生产环境带来次世代最先进的多语种NLP技术。', tasks='dep')
doc

doc['dep']为句子们的依存句法树列表,第i个二元组表示第i个单词的[中心词的下标, 与中心词的依存关系]。

可视化依存句法树:

doc.pretty_print()
print(doc.to_conll())
HanLP(tokens=[["HanLP", "为", "生产", "环境", "带来", "次世代", "最", "先进", "的", "多语种", "NLP", "技术", "。"],["我", "的", "希望", "是", "希望", "张晚霞", "的", "背影", "被", "晚霞", "映红", "。"]], tasks='dep').pretty_print()

5.短语句法分析

任务越少,速度越快。如指定仅执行短语句法分析:

doc = HanLP('2021年HanLPv2.1为生产环境带来次世代最先进的多语种NLP技术。', tasks='con')
doc

doc['con']为Tree类型,是list的子类。

可视化短语句法树:

doc.pretty_print()
print(doc['con'][0])

为已分词的句子执行短语句法分析:

HanLP(tokens=[["HanLP", "为", "生产", "环境", "带来", "次世代", "最", "先进", "的", "多语种", "NLP", "技术", "。"],["我", "的", "希望", "是", "希望", "张晚霞", "的", "背影", "被", "晚霞", "映红", "。"]], tasks='con').pretty_print()

6.语义依存分析

任务越少,速度越快。如指定仅执行语义依存分析:

doc = HanLP('2021年HanLPv2.1为生产环境带来次世代最先进的多语种NLP技术。', tasks='sdp')
doc

doc['sdp']字段代表语义依存图的数组格式,数组中第i个子数组代表第i个单词的语义依存关系,子数组中每个二元组的格式为[中心词的下标, 与中心词的语义依存关系]。每个单词的语义依存关系可能有零个、一个或多个(任意数量)。

转换为CoNLLSentence格式更容易观察:

print(doc.to_conll())
print(HanLP(tokens=[["HanLP", "为", "生产", "环境", "带来", "次世代", "最", "先进", "的", "多语种", "NLP", "技术", "。"],["我", "的", "希望", "是", "希望", "张晚霞", "的", "背影", "被", "晚霞", "映红", "。"]], tasks='sdp').to_conll())

7.语义角色分析

任务越少,速度越快。如指定仅执行语义角色分析:

doc = HanLP('2021年HanLPv2.1为生产环境带来次世代最先进的多语种NLP技术。', tasks='srl')
doc

doc['srl']字段为语义角色标注结果,每个四元组的格式为[论元或谓词, 语义角色标签, 起始下标, 终止下标]。其中,谓词的语义角色标签为PRED,起止下标对应以tok开头的第一个单词数组。

可视化谓词论元结构:

doc.pretty_print()

遍历谓词论元结构:

for i, pas in enumerate(doc['srl'][0]):print(f'第{i+1}个谓词论元结构:')for form, role, begin, end in pas:print(f'{form} = {role} at [{begin}, {end}]')

为已分词的句子执行语义角色分析:

HanLP(tokens=[["HanLP", "为", "生产", "环境", "带来", "次世代", "最", "先进", "的", "多语种", "NLP", "技术", "。"],["我", "的", "希望", "是", "希望", "张晚霞", "的", "背影", "被", "晚霞", "映红", "。"]], tasks='srl', skip_tasks='tok*').pretty_print()

HanLp的RESTful部分相关推荐

  1. jieba、HanLP、Stanza实现中文文本处理的基本任务

    因为课程需要跑通NLP的基本任务,这里记录一下安装使用的过程.参考的官方文档以及我遇到的坑 英文文本见我的另一篇文章:NLTK+StanfordCoreNLP实现英文文本处理的基本任务 一.jieba ...

  2. RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别

    1. 基本概念 PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务.当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手 ...

  3. RESTful风格及其SpringMVC实现

    目录 1.RESTful概念 2.RESTful功能 3.对比:传统方式操作资源 4.SpringMVC实现传统方式操作资源 5.使用RestFul操作资源 6.SpringMVC实现RESTful操 ...

  4. RESTful API 最佳实践

    RESTful是目前最流行的 API 设计规范,用于 Web 数据接口的设计. 它的大原则容易把握,但是细节不容易做对.本文总结 RESTful 的设计细节,介绍如何设计出易于理解和使用的 API. ...

  5. Spring Boot 集成Swagger2生成RESTful API文档

    Swagger2可以在写代码的同时生成对应的RESTful API文档,方便开发人员参考,另外Swagger2也提供了强大的页面测试功能来调试每个RESTful API. 使用Spring Boot可 ...

  6. java鉴权_一个开箱即用的高效认证鉴权框架,专注于restful api的认证鉴权动态保护...

    作者:tomsun28 来源:SegmentFault 思否 写在开头 看了看这个专栏的最近一篇文章已经是两年前了,时间过得好快.应该是出学校后时间就很快了.两年前因为用shiro后,自己就按着想法开 ...

  7. as 不显示gradle视图_Python构建RESTful网络服务[Django篇:基于类视图的API]

    系列文章介绍 本系列文章将详细介绍将Django官方引导教程中的投票项目改写为RESTful网络服务.Django官方教程地址https://docs.djangoproject.com/zh-han ...

  8. vue项目构建实战基础知识:SPA理解/RESTful接口介绍/static目录配置/axios封装/打包时map文件去除...

    一.SPA 不是指水疗.是 single page web application 的缩写.中文翻译为 单页应用程序 或 单页Web应用,更多解释请自行搜索. 所有的前端人员都应该明白我们的页面的 u ...

  9. [转] 理解RESTful架构

    FROM:http://www.ruanyifeng.com/blog/2011/09/restful.html 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件 ...

最新文章

  1. http://bbs.phome.net/showthread-13-45519-0.html
  2. 一些算法入门应该明白的东西
  3. mysql的增_MySQL-----增
  4. dos下常用网络相关命令解释
  5. 多线程,多进程选择(了解)
  6. boost::mp11::mp_set_push_front相关用法的测试程序
  7. JVM总结---各处总结
  8. 生成二维码的 jQuery 插件:jquery.qrcode.js
  9. AttributeError: 'dict' object has no attribute 'iteritems' .iteritems(): 修改为items()
  10. 模态框 modal.js
  11. python小甲鱼笔记_小甲鱼python笔记第4讲笔记(个人笔记)
  12. Linux/Windows/C++网络开源库项目集合
  13. 百度网盘资源搜索网站,搬运+验证
  14. 17track逆向分析
  15. android状态栏华为,状态栏设置华为版
  16. Eplan教学视频合集-百度网盘-收集于网络,供参考
  17. Wannafly Winter Camp 2019 Day2 H Cosmic Cleaner (球体相交体积(球冠体积公式))
  18. 傅里叶变换对照表_实验室仪器中英文及缩写对照表
  19. hibernate(lazy加载)的意思
  20. java drm_DRM系统工作原理

热门文章

  1. 恒宝番外-闪客破玩意儿系列-操作系统源码
  2. StringUtils工具类安装及使用
  3. 用c语言实现图片曝光值,几何C渲染图曝光 设计与科技的完美结合
  4. [转贴]WM越来越实用,诺基亚和Symbian还能风光多久?
  5. 执行server-start时emacs报错说“The directory `~/.emacs.d/server#39; is unsafe”
  6. 计算机休眠文件可以删除吗,Win10休眠文件hiberfil.sys怎么彻底删除?
  7. oh-my-zsh和tmux配置(个人)
  8. 网络监控工具 Android,监控宝(网站监控工具)
  9. 夜莺(Flashcat)V6监控(四):categraf-mtail日志收集插件详解
  10. 电子商务网站的需求分析