`

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入门教程

    ### Spring Boot 入门教程详解 #### Spring Boot 框架概述 Spring Boot 是由 Pivotal 团队提供的全新框架,旨在简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式(习惯优于配置)来简化整个 ...

    Spring Boot + Vue3 完整开发全栈项目附资料.zip

    《Spring Boot + Vue3 全栈开发详解及实践指南》 在现代Web开发领域,Spring Boot和Vue3已经成为构建高效、可扩展应用的热门选择。本项目实战将深入讲解如何结合这两个强大的技术栈,实现一个全栈应用。下面,我们...

    自己spring boot 拦截器

    总结起来,Spring Boot中的拦截器是增强应用程序功能的重要工具,通过实现或扩展拦截器接口,我们可以灵活地控制请求处理流程,实现自定义逻辑,如权限验证、日志记录等。在实际项目中,正确配置和使用拦截器能够...

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

    Spring Boot 中使用 Java API 调用 Lucene 实现全文检索 Lucene 是 Apache 软件基金会下的一个子项目,是一个开放源代码的全文检索引擎工具包。它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了...

    spring boot管理系统后台

    【Spring Boot管理后台系统详解】 Spring Boot是一种基于Java的快速开发框架,旨在简化Spring应用程序的初始设置和常规配置。这个“spring boot管理系统后台”项目利用了Spring Boot的强大功能,为后台管理提供了一...

    05-Spring全家桶(Spring Boot)

    **Spring全家桶与Spring Boot详解** 在现代Java开发领域,Spring框架无疑是最为广泛使用的轻量级应用框架之一。Spring的“全家桶”包括了一系列相互协作的组件,旨在简化开发流程,提高生产效率。其中,Spring Boot...

    Spring Boot课件1 —— 创建和运行Spring Boot项目

    **Spring Boot创建与运行项目详解** Spring Boot是Java开发领域中的一个热门框架,它通过简化配置和自动装配,使得创建和运行Spring应用变得更加容易。在本篇内容中,我们将深入探讨如何利用Spring Boot来创建和...

    普通javaweb项目调用springCloud接口(超级实用,很详细)

    - **Spring Cloud**:是基于Spring Boot实现的云应用开发工具包,它提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)操作下...

    【BAT必备】spring面试题,spring MVC面试题,spring boot面试题,spring cloud面试题

    Spring Cloud是一套基于Spring Boot实现的微服务云应用开发工具集。它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群...

    Spring Boot面试题(2022最新版)-重点

    ### Spring Boot面试题详解 #### 一、Spring Boot 基础 **1.1 什么是Spring Boot?** Spring Boot 是 Spring 社区推出的一个基于 Spring 框架的全新子项目,旨在简化 Spring 应用程序的创建过程。通过采用特定的...

    spring boot admin server

    总的来说,Spring Boot Admin Server 是 Spring Boot 生态系统中的重要工具,它极大地简化了对 Spring Boot 应用的监控和管理工作,提高了开发和运维的效率。理解和掌握其工作原理及使用方法,对于任何 Spring Boot ...

    spring boot课程评价系统.rar

    《Spring Boot课程评价系统详解》 在现代软件开发领域,Spring Boot已经成为构建高效、便捷的企业级应用的首选框架。本篇文章将围绕“Spring Boot课程评价系统”这一主题,深入探讨其设计思想、核心技术以及实现...

    Spring Boot开发案例详解.pdf

    ### Spring Boot开发案例详解知识点概览 #### 一、Spring Boot简介及优势 - **快速开发**:Spring Boot 自带的“约定优于配置”理念极大简化了开发过程。 - **易于部署**:支持将应用程序打包成独立的 JAR 或 WAR ...

    spring-boot-dubbo

    《Spring Boot整合Dubbo入门实例详解》 在现代企业级应用开发中,Spring Boot和Dubbo作为两个重要的技术组件,分别扮演着简化Spring应用初始化和构建,以及提供高性能、轻量级服务治理的角色。本教程将详细介绍如何...

    idea maven聚合项目 spring-boot 整合 dubbo

    在现代的微服务架构中,Spring Boot和Dubbo都是极为重要的组件。Spring Boot以其简洁的配置和快速的开发能力,深受开发者喜爱,而Dubbo作为阿里巴巴开源的高性能、轻量级的服务治理框架,被广泛用于服务间的调用与...

    Spring boot shiro

    **Spring Boot Shiro 知识点详解** Spring Boot 和 Apache Shiro 是两个在Java开发中广泛使用的框架。Spring Boot 提供了快速构建和配置Spring应用的便利性,而Shiro则是一个强大且易用的安全管理框架,专注于身份...

    synergy spring boot cloud架子,包含了前后端功能,有完善的用户权限功能

    《Synergy Spring Boot Cloud 架构详解:打造全能的用户权限管理系统》 Spring Boot 和 Spring Cloud 的结合,已经成为现代企业级应用开发中的主流选择。Synergy Spring Boot Cloud 架构充分利用了这两个框架的优势...

    spring-boot级spring-cloud视频教学

    而Spring Cloud则是在Spring Boot基础上封装的一套微服务解决方案,提供了微服务架构中的服务治理、配置管理、消息总线、负载均衡、断路器、数据监控等组件,可以说Spring Cloud是Spring Boot的一个延续和发展。...

    spring-boot-starter-mybatis-spring-boot-1.2.2.tar.gz

    《Spring Boot集成MyBatis详解:以1.2.2版本为例》 在现代Java开发领域,Spring Boot和MyBatis两大框架的结合是极为常见且实用的选择。Spring Boot以其"约定优于配置"的理念,极大地简化了应用的搭建和运行过程,而...

Global site tag (gtag.js) - Google Analytics