SpringBoot中对⾃然语⾔处理⼯具包hanlp的调⽤详解
概 述
HanLP 是基于 Java开发的 NLP⼯具包,由⼀系列模型与算法组成,⽬标是普及⾃然语⾔处理在⽣产环境中的应⽤。⽽且 HanLP具备功能完善、性能⾼效、架构清晰、语料时新、可⾃定义的特点,因此⼗分好上⼿,本⽂就结合 Spring Boot来将 HanLP⽤起来!
springboot推荐算法下载 HanLP数据和程序
由于 HanLP库将数据与代码分离,因此我们需要分别下载所需数据和 jar包:
(1)所需 data数据包下载地址为 data.zip
(2)所需 jar包下载地址为 hanlp-release.zip
⼯程搭建
(1)创建⼀个普通的 Spring Boot⼯程,不赘述
(2)引⼊ HanLP数据 和 配置
下载完成以后,⾸先解压 hanlp-release.zip压缩包,然后将解压出的 HanLP的 jar包引⼊ Spring Boot⼯程,然后需要来放置 HanLP所需配置和数据:
(1)将解压后 hanlp-release.zip压缩包中的 hanlp.properties配置⽂件置于项⽬的 resources资源⽬录下
(2)然后解压 data.zip压缩包,将解压出的 data⽬录同样⾄于 resources⽬录下( data 中的数据包很重要,是 HanLP⼯作所需的词典和模型 )
创建 IO适配器
HanLP 提供了IO适配器,⽤户可以实现其提供的 com.pus.io.IIOAdapter 接⼝以在不同的平台(HDFS、Redis等)上运⾏HanLP,默认的 IO适配器 IOAdapter = com.pus.io.FileIOAdapter 是基于普通⽂件系统的。
接下来我们重写⼀下 IOAdapter类,使⽤读写静态资源⽂件的⽅法来读取HanLP所需的词典和模型数据( 即resources⽬录下刚放置的data⽬录 )
然后我们配置⼀下 HanLP的配置⽂件hanlp.properties,有两处需要改为以下配置:
root= // 我们不再需要这种指定data⽬录的⽅式
desheep.springbt_fig.ResourceFileIoAdapter // 指定⾃定义的I
OAdapter 好,现在项⽬就可以⼯作了,我们接下来写⼏个测试⽤例测试体验⼀把 !
实验测试
随便写⼏个例⼦来感受⼀番:
分词功能
@Test
public void testSegment() {
System.out.println( HanLP.segment("desheep是⼀个技术博客!") );
}
分词结果如下:
[www/nx, ./w, codesheep/nx, ./w, cn/nx, 是/vshi, ⼀个/mq, 技术/n, 博客/n, !/w]
每个词段后的 /nx,/w之类的是 HanLP定义的词性,可以去看 HanLP的接⼝来获取详情
⽂本推荐
三个关键字的语句推荐结果为:
机器学习 → [⼈⼯智能如今是⾮常⽕热的⼀门技术”]
危机公共 → [威廉王⼦发表演说 呼吁保护野⽣动物]mayun → [《时代》年度⼈物最终⼊围名单出炉 普京马云⼊选]
关键字提取
@Test
public void testKeyExtract() {
String content = "苹果公司(Apple Inc. )是美国⼀家⾼科技公司。由史蒂夫·乔布斯、斯蒂夫·沃兹尼亚克和罗·韦恩(Ron Wayne)等⼈于1976年4⽉1⽇创⽴," + "并命名为美国苹果电脑公司(Apple Computer Inc. ),2007年1⽉9⽇更名为苹果公司,总部位于加利福尼亚州的库⽐蒂诺。"; List<String> keywordList = actKeyword(content, 5); System.out.println(keywordList);
}
提取结果为:
[公司, 苹果, 美国, Inc, Apple]
体验⼀番我们发现其⾃带的模型、字典等数据给出的实验效果已经是⾮常不错了,⽽且⽤户还可以⾃定义或修改 data⽬录下的模型、字典等数据来满⾜特定需求,因此还是⼗分强⼤的。
作者:CodeSheep
來源:简书
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论