HanLp的RESTful部分
安装
无论是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部分相关推荐
- jieba、HanLP、Stanza实现中文文本处理的基本任务
因为课程需要跑通NLP的基本任务,这里记录一下安装使用的过程.参考的官方文档以及我遇到的坑 英文文本见我的另一篇文章:NLTK+StanfordCoreNLP实现英文文本处理的基本任务 一.jieba ...
- RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别
1. 基本概念 PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务.当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手 ...
- RESTful风格及其SpringMVC实现
目录 1.RESTful概念 2.RESTful功能 3.对比:传统方式操作资源 4.SpringMVC实现传统方式操作资源 5.使用RestFul操作资源 6.SpringMVC实现RESTful操 ...
- RESTful API 最佳实践
RESTful是目前最流行的 API 设计规范,用于 Web 数据接口的设计. 它的大原则容易把握,但是细节不容易做对.本文总结 RESTful 的设计细节,介绍如何设计出易于理解和使用的 API. ...
- Spring Boot 集成Swagger2生成RESTful API文档
Swagger2可以在写代码的同时生成对应的RESTful API文档,方便开发人员参考,另外Swagger2也提供了强大的页面测试功能来调试每个RESTful API. 使用Spring Boot可 ...
- java鉴权_一个开箱即用的高效认证鉴权框架,专注于restful api的认证鉴权动态保护...
作者:tomsun28 来源:SegmentFault 思否 写在开头 看了看这个专栏的最近一篇文章已经是两年前了,时间过得好快.应该是出学校后时间就很快了.两年前因为用shiro后,自己就按着想法开 ...
- as 不显示gradle视图_Python构建RESTful网络服务[Django篇:基于类视图的API]
系列文章介绍 本系列文章将详细介绍将Django官方引导教程中的投票项目改写为RESTful网络服务.Django官方教程地址https://docs.djangoproject.com/zh-han ...
- vue项目构建实战基础知识:SPA理解/RESTful接口介绍/static目录配置/axios封装/打包时map文件去除...
一.SPA 不是指水疗.是 single page web application 的缩写.中文翻译为 单页应用程序 或 单页Web应用,更多解释请自行搜索. 所有的前端人员都应该明白我们的页面的 u ...
- [转] 理解RESTful架构
FROM:http://www.ruanyifeng.com/blog/2011/09/restful.html 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件 ...
最新文章
- http://bbs.phome.net/showthread-13-45519-0.html
- 一些算法入门应该明白的东西
- mysql的增_MySQL-----增
- dos下常用网络相关命令解释
- 多线程,多进程选择(了解)
- boost::mp11::mp_set_push_front相关用法的测试程序
- JVM总结---各处总结
- 生成二维码的 jQuery 插件:jquery.qrcode.js
- AttributeError: 'dict' object has no attribute 'iteritems' .iteritems(): 修改为items()
- 模态框 modal.js
- python小甲鱼笔记_小甲鱼python笔记第4讲笔记(个人笔记)
- Linux/Windows/C++网络开源库项目集合
- 百度网盘资源搜索网站,搬运+验证
- 17track逆向分析
- android状态栏华为,状态栏设置华为版
- Eplan教学视频合集-百度网盘-收集于网络,供参考
- Wannafly Winter Camp 2019 Day2 H Cosmic Cleaner (球体相交体积(球冠体积公式))
- 傅里叶变换对照表_实验室仪器中英文及缩写对照表
- hibernate(lazy加载)的意思
- java drm_DRM系统工作原理
热门文章
- 恒宝番外-闪客破玩意儿系列-操作系统源码
- StringUtils工具类安装及使用
- 用c语言实现图片曝光值,几何C渲染图曝光 设计与科技的完美结合
- [转贴]WM越来越实用,诺基亚和Symbian还能风光多久?
- 执行server-start时emacs报错说“The directory `~/.emacs.d/server#39; is unsafe”
- 计算机休眠文件可以删除吗,Win10休眠文件hiberfil.sys怎么彻底删除?
- oh-my-zsh和tmux配置(个人)
- 网络监控工具 Android,监控宝(网站监控工具)
- 夜莺(Flashcat)V6监控(四):categraf-mtail日志收集插件详解
- 电子商务网站的需求分析