自然语言处理(NLP)学习之与HanLP的初相识

目录

前言

 一、自然语言处理基本知识

1、NLP类别

2、核心任务

二、Hanlp简要介绍

三、Hanlp云服务能力

1、全新云原生2.x

 2、Python api调用

 3、Go api调用

4、Java api调用

 四、Hanlp native服务

 1、本地开发

 总结


前言

        在ChatGPT的滚滚浪潮下,也伴随着人工智能技术的发展,生活中的许多应用都用了“AI(人工智能)”的技术,比如可以用计算机帮翻译外文文档,机器自助绘制图片,自动生成视频素材。但有时候人工智也能会出一些小Bug,变得不那么智能,这就是大家俗称的“人工智障”,在人类看来很容易理解的内容,通过计算机来表述或者理解就是特别费劲,尤其在语言处理方面。

        那么我们怎样才能让人工智能变成更加“智能”呢?自然语言处理技术就是一个重要的方式。自然语言处理技术(即natural language processing,简称NPL)是人工智能的一个重要分支,其目的是利用计算机对自然语言进行智能化处理。基础的自然语言处理技术主要围绕语言的不同层级展开,包括音位(语言的发音模式)、形态(字、字母如何构成单词、单词的形态变化)、词汇(单词之间的关系)、句法(单词如何形成句子)、语义(语言表述对应的意思)、语用(不同语境中的语义解释)、篇章(句子如何组合成段落)7个层级。这些基本的自然语言处理技术经常被运用到下游的多种自然语言处理任务中,如机器翻译、对话、问答、文档摘要等。

        科学家研究自然语言处理技术(NLP)的目的是让机器能够理解人类语言,用自然语言的方式与人类交流,最终拥有“智能”。AI时代,我们希望计算机拥有视觉、听觉、语言和行动的能力,其中语言是人类区别于动物的最重要特征之一,语言是人类思维的载体,也是知识凝练和传承的载体。在人工智能领域,研究自然语言处理技术的目的就是让机器理解并生成人类的语言,从而和人类平等流畅地沟通交流。

        本文将简单介绍自然语言处理的相关知识,重点介绍Hanlp组件的功能,从云化和本地化部署两种模式分别介绍,对有需要的朋友有所帮助。

 一、自然语言处理基本知识

1、NLP类别

        1、文本挖掘:主要包含了文本的分类、聚类、信息抽取、摘要、情感分析以及对挖掘的信息和知识的可视化、交互式的呈现界面,这些统称为文本挖掘任务。

        2、信息检索:对大规模文档进行索引。可简单对文档中的词汇,赋予不同的权重来建立索引,也可以使用算法来建立更深层的索引。查询时,首先对输入进行分析,然后在索引里面查找匹配的候选文档,再根据一个排序机制把候选文档排序,最后输出排序得分最高的文档。

        3、句法语义分析:针对目标句子,进行各种句法分析,如分词、词性标记、命名实体识别及句法分析、语义角色识别和多义词消歧等。

        4、机器翻译:随着通信技术与互联网技术的飞速发展、信息的急剧增加以及国际联系愈加紧密,让世界上所有人都能跨越语言障碍获取信息的挑战已经超出了人类翻译的能力范围。机器翻译因其效率高、成本低满足了全球各国多语言信息快速翻译的需求,从最早的基于规则到二十年前的基于统计的方法,再到今天的基于深度学习(编解码)的方法,逐渐形成了一套比较严谨的方法体系。机器翻译属于自然语言信息处理的一个分支,能够根据一种自然语言自动生成另一种自然语言。目前,谷歌翻译、百度翻译、搜狗翻译等人工智能行业巨头推出的翻译平台逐渐凭借其翻译过程的高效性和准确性占据了翻译行业的主导地位。

        5、问答系统:随着互联网的快速发展,网络信息量不断增加,人们需要获取更加精确的信息。传统的搜索引擎技术已经不能满足人们越来越高的需求,而自动问答技术成为了解决这一问题的有效手段。自动问答是指利用计算机自动回答用户所提出的问题以满足用户知识需求的任务,在回答用户问题时,首先要正确理解用户所提出的问题,抽取其中关键的信息,在已有的语料库或者知识库中进行检索、匹配,将获取的答案反馈给用户。

        6、对话系统:系统通过多回合对话,跟用户进行聊天、回答、完成某项任务,主要涉及用户意图识别、通用聊天引擎、问答引擎、对话管理系统等技术。此外,为了提现上下文相关,要具备多轮对话能力。同时,为了提现个性化,对话系统还需要基于用户画像做个性化回复。

2、核心任务

        总的来看,自然语言处理有2大核心任务,自然语言理解(NLU)和自然语言生成(NLG)。对人来说,理解语言是一件很自然的事情,但对机器来说却是很困难的事情。语言的鲁棒性都是导致自然语言理解的主要难点,其中包括:语言的多样性、歧义性、知识依赖、上下文关系等。这些难点也将会带来实际处理时的一系列困难:生成语句的语法结构、语义表达是否准确,信息是否重复等。

        为了解决上述问题,一些基本的自然语言处理方向便应运而生,包括:分词、词性标注、词形还原、依赖关系解析、命名实体识别、序列标注、句子关系识别等。

二、Hanlp简要介绍

        Hanlp是一款面向生产环境的前沿多语种自然语言处理技术,根据不同的场景和项目需要,HanLP提供RESTful和native两种API,分别面向轻量级和海量级两种场景。无论何种API何种语言,HanLP接口在语义上保持一致,在代码上坚持开源。

        面向生产环境的多语种自然语言处理工具包,基于PyTorch和TensorFlow 2.x双引擎,目标是普及落地最前沿的NLP技术。HanLP具备功能完善、精度准确、性能高效、语料时新、架构清晰、可自定义的特点。

        Hanlp支持以下的功能,详见下图:

三、Hanlp云服务能力

        Hanlp分为在线调用及本地编程两个大的方向,针对在线应用,在允许访问互联网的情况,可以直接使用RESTful的方式调用Hanlp的云服务,这样对于数据和模型的加载,训练和学习都是很好的处理方式。离线环境可以进行native本地api构建(以Java语言为例)。

1、全新云原生2.x

云环境简介,hanlp官方网站

云环境网页地址:HanLP github地址

 2、Python api调用

        仅数KB,适合敏捷开发、移动APP等场景。简单易用,无需GPU配环境,秒速安装。语料更多、模型更大、精度更高,强烈推荐。服务器GPU算力有限,匿名用户配额较少,建议申请免费公益API秘钥auth

python代码:

pip install hanlp_restful

 创建客户端,填入服务器地址和秘钥:

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

 3、Go api调用

安装go

go get -u github.com/hankcs/gohanlp@main

 创建客户端,填入服务器地址和秘钥

HanLP := hanlp.HanLPClient(hanlp.WithAuth(""),hanlp.WithLanguage("zh")) // auth不填则匿名,zh中文,mul多语种

4、Java api调用

pom.xml中添加依赖:

<dependency>
    <groupId>com.hankcs.hanlp.restful</groupId>
    <artifactId>hanlp-restful</artifactId>
    <version>0.0.12</version>
</dependency>

 创建客户端,填入服务器地址和秘钥:

HanLPClient HanLP = new HanLPClient("https://www.hanlp.com/api", null, "zh"); // auth不填则匿名,zh中文,mul多语种

 四、Hanlp native服务

        hanlp除了提供丰富的云能力,同时也支持本地调用,在官方开源的1.x版本中,开源了Java开发的本地开发能力。在github上需要注意的要切换不同的tag,需要切换到1.X版本可以看到项目源码。这是标准的java工程项目。

        将包下载下来后可以看到完整的项目源码。

 1、本地开发

        将hanlp的代码下载到本地,可以进行本地调试代码。如果仅是进行代码调用,可以直接调用打包好的依赖即可。下面以Eclipse为例,建立一个Hanlp的示例功能,并进行代码的调试。

[签约/v, 仪式/n, 前/f, ,/w, 秦光荣/nr, 、/w, 李纪恒/nr, 、/w, 仇和/nr, 等/u, 一同/d, 会见/v, 了/ul, 参加/v, 签约/v, 的/uj, 企业家/n, 。/w]
[武大靖/nr, 创/vg, 世界纪录/nz, 夺冠/v, ,/w, 中国代表团/nt, 平昌/ns, 首金/n]
[区长/n, 庄木弟/nr, 新年/t, 致辞/v]
[朱立伦/nr, :/w, 两岸/n, 都/d, 希望/v, 共/d, 创/vg, 双/m, 赢/v,  /w, 习/ng, 朱/nr, 历史/n, 会晤/v, 在即/v]
[陕西/ns, 首富/n, 吴一坚/nr, 被/p, 带走/v,  /w, 与/p, 令计划/nr, 妻子/n, 有/v, 交集/n]
[据/p, 美国之音/n, 电台/n, 网站/n, 4/m, 月/q, 28/m, 日/j, 报道/v, ,/w, 8/m, 岁/q, 的/uj, 凯瑟琳/nrf, ·/w, 克罗尔/nrf, (/w, 凤甫娟/nr, )/w, 和/c, 很多/m, 华裔/n, 美国/ns, 小朋友/n, 一样/u, ,/w, 小小年纪/n, 就/d, 开始/v, 学/v, 小提琴/n, 了/ul, 。/w, 她/r, 的/uj, 妈妈/n, 是/v, 位/q, 虎/n, 妈/n, 么/y, ?/w]
[凯瑟琳/nrf, 和/c, 露西/nrf, (/w, 庐瑞媛/nr, )/w, ,/w, 跟/p, 她们/r, 的/uj, 哥哥/n, 们/k, 有/v, 一些/m, 不同/a, 。/w]
[王国强/nr, 、/w, 高峰/n, 、/w, 汪洋/n, 、/w, 张朝阳/nr, 光着头/l, 、/w, 韩寒/nr, 、/w, 小四/nr]
[张浩和/nr, 胡健康/nr, 复员/vn, 回家/v, 了/ul]
[王总/nr, 和/c, 小丽/nr, 结婚/v, 了/ul]
[编剧/n, 邵钧林/nr, 和/c, 稽道青/nr, 说/v]
[这里/r, 有/v, 关天培/nr, 的/uj, 有关/vn, 事迹/n]
[龚学平/nr, 等/u, 领导/n, 说/v, ,/w, 邓颖超/nr, 生前/t, 杜绝/v, 超生/vn, ,/w, 2023/m, 年/q, 在/p, 湖南省/ns, 长沙市/ns, 天心区/ns, 暮云镇/ns, 开启/v, 的/uj, 互联网/n, 大会/n, ,/w, 首次/mq, 提出/v]
+++++++++++++++++++++++++++++++++++++++++++
[签约/v, 仪式/n, 前/f, ,/w, 秦光荣/nr, 、/w, 李纪恒/nr, 、/w, 仇和/nr, 等/u, 一同/d, 会见/v, 了/ul, 参加/v, 签约/v, 的/uj, 企业家/n, 。/w]
[武大靖/nr, 创/vg, 世界纪录/nz, 夺冠/v, ,/w, 中国代表团/nt, 平昌/ns, 首金/n]
[区长/n, 庄木弟/nr, 新年/t, 致辞/v]
[朱立伦/nr, :/w, 两岸/n, 都/d, 希望/v, 共/d, 创/vg, 双/m, 赢/v,  /w, 习/ng, 朱/nr, 历史/n, 会晤/v, 在即/v]
[陕西/ns, 首富/n, 吴一坚/nr, 被/p, 带走/v,  /w, 与/p, 令计划/nr, 妻子/n, 有/v, 交集/n]
[据/p, 美国之音/n, 电台网站/nt, 4/m, 月/q, 28/m, 日/j, 报道/v, ,/w, 8/m, 岁/q, 的/uj, 凯瑟琳/nrf, ·/w, 克罗尔/nrf, (/w, 凤甫娟/nr, )/w, 和/c, 很多/m, 华裔/n, 美国/ns, 小朋友一/nrj, 样/q, ,/w, 小小年纪/n, 就/d, 开始/v, 学/v, 小提琴/n, 了/ul, 。/w, 她/r, 的/uj, 妈妈/n, 是/v, 位/q, 虎/n, 妈/n, 么/y, ?/w]
[凯瑟琳/nrf, 和/c, 露西/nrf, (/w, 庐瑞媛/nr, )/w, ,/w, 跟/p, 她们/r, 的/uj, 哥哥/n, 们/k, 有/v, 一些/m, 不同/a, 。/w]
[王国强/nr, 、/w, 高峰/n, 、/w, 汪洋/n, 、/w, 张朝阳/nr, 光着头/l, 、/w, 韩寒/nr, 、/w, 小四/nr]
[张浩和/nr, 胡健康/nr, 复员/vn, 回家/v, 了/ul]
[王总/nr, 和/c, 小丽/nr, 结婚/v, 了/ul]
[编剧/n, 邵钧林/nr, 和/c, 稽道青/nr, 说/v]
[这里/r, 有/v, 关天培/nr, 的/uj, 有关/vn, 事迹/n]
[龚学平/nr, 等/u, 领导/n, 说/v, ,/w, 邓颖超/nr, 生前/t, 杜绝/v, 超生/vn, ,/w, 2023/m, 年/q, 在/p, 湖南省/ns, 长沙市/ns, 天心区/ns, 暮云镇/ns, 开启/v, 的/uj, 互联网大会/nt, ,/w, 首次/mq, 提出/v]
over......

 总结

         以上就是文章的主要内容,本文将简单介绍自然语言处理的相关知识,重点介绍Hanlp组件的功能,从云化和本地化部署两种模式分别介绍,对有需要的朋友有所帮助。行文仓促,如有不当之处,欢迎留言批评指正。

参考资料:1、人工智能与自然语言处理技术

                  2、人工智能:自然语言处理

                  3、hanlp官方网站

                  4、NLP(自然语言处理)介绍

猜你喜欢

转载自blog.csdn.net/yelangkingwuzuhu/article/details/133353684
今日推荐