`

Spring Boot中对自然语言处理工具包hanlp的调用详解

阅读更多

HanLP 是基于 Java开发的 NLP工具包,由一系列模型与算法组成,目标是普及自然语言处理在生产环境中的应用。而且 HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点,因此十分好上手,本文就结合 Spring Boot来将 HanLP用起来!

 



 

下载 HanLP数据和程序

由于 HanLP库将数据与代码分离,因此我们需要分别下载所需数据和 jar包:

(1)所需 data数据包下载地址为 data.zip

(2)所需 jar包下载地址为 hanlp-release.zip

工程搭建

(1)创建一个普通的 Spring Boot工程,不赘述

(2)引入 HanLP数据 和 配置

下载完成以后,首先解压 hanlp-release.zip压缩包,然后将解压出的 HanLPjar包引入 Spring Boot工程,然后需要来放置 HanLP所需配置和数据:

(1)将解压后 hanlp-release.zip压缩包中的 hanlp.properties配置文件置于项目的 resources资源目录下

(2)然后解压 data.zip压缩包,将解压出的 data目录同样至于 resources目录下( data 中的数据包很重要,是 HanLP工作所需的词典和模型 )

创建 IO适配器

HanLP 提供了IO适配器,用户可以实现其提供的 com.hankcs.hanlp.corpus.io.IIOAdapter 接口以在不同的平台(HDFSRedis等)上运行HanLP,默认的 IO适配器 IOAdapter = com.hankcs.hanlp.corpus.io.FileIOAdapter 是基于普通文件系统的。

接下来我们重写一下 IOAdapter类,使用读写静态资源文件的方法来读取HanLP所需的词典和模型数据( 即resources目录下刚放置的 data目录 )



 

 

然后我们配置一下 HanLP的配置文件hanlp.properties,有两处需要改为以下配置:

root=   // 我们不再需要这种指定data目录的方式

IOAdapter=cn.codesheep.springbt_hanlp_userdefine.config.ResourceFileIoAdapter // 指定自定义的IOAdapter

好,现在项目就可以工作了,我们接下来写几个测试用例测试体验一把

实验测试

随便写几个例子来感受一番:

<!--[if !supportLists]-->· <!--[endif]-->分词功能

@Test

public void testSegment() {

    System.out.println( HanLP.segment("www.codesheep.cn是一个技术博客!") );

}

分词结果如下:

[www/nx, ./w, codesheep/nx, ./w, cn/nx, /vshi, 一个/mq, 技术/n, 博客/n, /w]

每个词段后的 /nx/w之类的是 HanLP定义的词性,可以去看 HanLP的接口来获取详情

<!--[if !supportLists]-->· <!--[endif]-->文本推荐



 

 

三个关键字的语句推荐结果为:

机器学习  →  [人工智能如今是非常火热的一门技术”]

危机公共  →  [威廉王子发表演说 呼吁保护野生动物]mayun     →  [《时代》年度人物最终入围名单出炉 普京马云入选]

<!--[if !supportLists]-->· <!--[endif]-->关键字提取

@Test

public void testKeyExtract() {

String content = "苹果公司(Apple Inc. )是美国一家高科技公司。由史蒂夫·乔布斯、斯蒂夫·沃兹尼亚克和罗·韦恩(Ron Wayne)等人于1976年4月1日创立," + "并命名为美国苹果电脑公司(Apple Computer Inc. ),2007年1月9日更名为苹果公司,总部位于加利福尼亚州的库比蒂诺。"; List<String> keywordList = HanLP.extractKeyword(content, 5); System.out.println(keywordList);

提取结果为:

[公司, 苹果, 美国, Inc, Apple]

体验一番我们发现其自带的模型、字典等数据给出的实验效果已经是非常不错了,而且用户还可以自定义或修改 data目录下的模型、字典等数据来满足特定需求,因此还是十分强大的。

作者:CodeSheep
來源:简书

 

  • 大小: 48.2 KB
  • 大小: 36.7 KB
  • 大小: 46 KB
分享到:
评论

相关推荐

    Spring Boot中Controller间的调用

    假定两个Controller都在同一个工程中。 如果有比较合理的分层设计,这样的需求应该是非常...因为Controller B的实例中,Spring Boot为其进行配置和对象注入,这些准备工作不是简单通过实例化Controller B可以完成。

    Spring Boot和Hazelcast使用详解

    主要介绍了Spring Boot和Hazelcast使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Spring boot 示例 官方 Demo

    spring-boot-package-war:spring-boot打包成war包示例 spring-boot-shiro:springboot 整合shiro rbac示例 spring-boot-file-upload:使用Spring Boot 上传文件示例 spring-boot-fastDFS:Spring Boot 整合FastDFS...

    Spring Boot 2 Recipes

    了解Spring Boot 2如何与其他Spring API,工具和框架集成 访问Spring MVC和新的Spring Web Sockets,以实现更简单的Web开发 使用微服务进行Web服务开发并与Spring Boot应用程序集成 无缝添加持久性和数据层,使您的...

    spring boot中英文语言切换

    自己整理的中英文切换模板,使用spring boot为基础架构,页面来回切换,保持当前语言模式,前端使用jquery

    从零开始学Spring Boot

    1.20 Spring Boot普通类调用bean 1.21 使用模板(thymeleaf-freemarker) 1.22 Spring Boot 添加JSP支持 1.23 Spring Boot Servlet 1.24 Spring Boot过滤器、监听器 1.25 Spring Boot 拦截器HandlerInterceptor 1.26...

    LEARNING SPRING BOOT 3.0 - THIRD EDITION

    LEARNING SPRING BOOT 3.0 - THIRD EDITION spring boot spring java spring boot 3

    Spring Boot 进阶笔记(详细全面) 中文PDF完整版.pdf

    本资料主要包含了Spring Boot的高级应用,包括Spring Boot的自动配置、Spring Boot的Web开发、Spring Boot的数据访问、Spring Boot的缓存、Spring Boot的消息队列、Spring Boot的安全、Spring Boot的测试等方面的...

    Spring Boot 整合 Dubbo + Zookeeper 实现服务者与消费者的数据调用

    2.该项目提高了自己对Spring Boot整合Dubbo的理解,并深刻的认识到了服务者与消费者之间的调用及流程 4. Dubbo配置全部采用yml文件配置,方便,易读 5. 简化了开发流程,完整的Spring Boot工程 6. 适用于Dubbo初学者...

    Spring Boot教程.pdf

    错误处理机制是 Spring Boot 中的一个重要组件,通过错误处理机制,我们可以对应用程序的错误信息进行捕获和处理。 Spring Boot 提供了多种错误处理机制,如 try-catch 语句、错误处理器等。 在错误处理机制中,...

    Spring Boot Examples

    Spring boot使用的各种示例,以最简单、最实用为标准 spring-boot-helloWorld:spring-boot的helloWorld...spring-boot-package-war:spring-boot打包成war包示例 spring-boot-shiro:springboot 整合shiro rbac示例

    Spring Boot详解

    分享我的Spring Boot 笔记文档,本文档从Spring 的演变说起,根据文档一步一步学习,让您全面理解Spring Boot的工作原理,以及使用方法。可当做操作手册使用。 主要讲解内容有: 1、spring 的java配置方式; 2、...

    spring boot2.0官网中文文档

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot...

    Spring Boot实战与原理分析视频课程包含14-18

    Spring Boot实战与原理分析视频课程包含14-18,本视频教程为网络整理,如有侵权,请联系删除。谢谢 Spring Boot实战与原理分析视频课程 课程目录: 1 Spring Boot概述与课程概要介绍20:33 2 Spring4 快速入门59:56...

    【ASP.NET编程知识】详解Spring Boot 中使用 Java API 调用 lucene.docx

    【ASP.NET编程知识】详解Spring Boot 中使用 Java API 调用 lucene.docx

    spring-boot示例项目

    本项目示例基于spring boot 最新版本(2.1.9)实现,Spring Boot、Spring Cloud 学习示例,将持续更新…… 在基于Spring Boot、Spring Cloud 分布微服务开发过程中,根据实际项目环境,需要选择、集成符合项目...

    Spring Boot 2.X 实战教程.pdf

    本课程内容包括Spring简介、Spring Boot简介、安装JDK、安装Maven、第一个Spring Boot程序(使用Spring Initializr构建、Spring Boot代码讲解、安装Notepad++)、构建系统、代码、配置、三种方式运行程序、安装...

    Spring Boot整合Spring Batch,实现批处理

    Spring Boot整合Spring Batch的一个小例子,在网上发现这方面的资源比较少,特此将其上传供大家学习。

    基于spring boot + maven + opencv 实现的图像深度学习Demo项目.zip

    基于spring boot + maven + opencv 实现的图像深度学习Demo项目,包含车牌识别、人脸识别、证件识别等功能,贯穿样本处理、模型训练、图像处理、对象检测、对象识别等技术点。 基于spring boot + maven + opencv ...

Global site tag (gtag.js) - Google Analytics