当前位置: 首页 > news >正文

Hanlp自然语言处理如何再Spring Boot中使用

一、HanLP

HanLP (Hankcs' NLP) 是一个自然语言处理工具包,具有功能强大、性能高效、易于使用的特点。HanLP 主要支持中文文本处理,包括分词、词性标注、命名实体识别、依存句法分析、关键词提取、文本分类、情感分析等多种功能。 HanLP 可以在 Java、Python、Go 等多种编程语言中使用,也提供了各种语言的 API 接口,方便用户进行二次开发。HanLP 采用了深度学习和传统机器学习相结合的方法,具有较高的准确度和通用性。

二、java中用HanLP做情感分词场景

首先,下载HanLP jar包。可以从官方网站(https://github.com/hankcs/HanLP/releases)下载或者使用Maven配置。

<dependency>
    <groupId>com.hankcs</groupId>
    <artifactId>hanlp</artifactId>
    <version>portable-1.7.8</version>
</dependency>

引入完成后,在代码中调用HanLP工具类的方法,例如:

import com.hankcs.hanlp.HanLP;public class TestHanLP {public static void main(String[] args) {String text = "中华人民共和国成立了!";System.out.println(HanLP.segment(text));}
}

运行以上代码,可以得到分词结果:

[中华人民共和国, 成立, 了, !]

除了分词外,HanLP还提供了许多其他功能,例如实体识别、关键词提取、自动摘要等。可以通过调用不同的方法来实现这些功能,具体可参考HanLP官方文档(https://github.com/hankcs/HanLP)。

需要注意的是,HanLP默认使用的是繁体中文模型,如果需要使用简体中文模型,可以在代码中添加以下语句:

HanLP.Config.enableDebug();
HanLP.Config.Normalization = true;

这样就可以使用简体中文模型进行处理了。

三、SpringBoot中如何使用Hanlp进行文本情感分析

        第一步:

                在pom.xml文件中添加Hanlp的依赖

<dependency><groupId>com.hankcs</groupId><artifactId>hanlp</artifactId><version>portable-1.7.8</version>
</dependency>

        第二步:

                创建一个SpringBoot的Controller,用于接收文本数据,并进行情感分析

@RestController
public class SentimentAnalysisController {@PostMapping("/sentimentAnalysis")public String sentimentAnalysis(@RequestBody String text) {String[] sentences = HanLP.extractSentence(text);int positiveCount = 0;int negativeCount = 0;for (String sentence : sentences) {List<String> keywords = HanLP.extractKeyword(sentence, 5);for (String keyword : keywords) {if (SentimentUtil.isPositive(keyword)) {positiveCount++;} else if (SentimentUtil.isNegative(keyword)) {negativeCount++;}}}if (positiveCount > negativeCount) {return "Positive";} else if (positiveCount < negativeCount) {return "Negative";} else {return "Neutral";}}
}

        第三步:

                上述代码中用到了SentimentUtil类,可以参考以下实现,用于判断一个词语的情感倾向

public class SentimentUtil {private static final Set<String> POSITIVE_WORDS = new HashSet<>(Arrays.asList("好", "美", "乐", "棒", "赞", "爱", "优秀", "高兴", "满意", "友好", "感动"));private static final Set<String> NEGATIVE_WORDS = new HashSet<>(Arrays.asList("坏", "丑", "难受", "差", "批评", "悲", "痛苦", "愤怒", "失望", "憎恶", "恐惧", "忧郁", "抱怨"));public static boolean isPositive(String word) {return POSITIVE_WORDS.contains(word);}public static boolean isNegative(String word) {return NEGATIVE_WORDS.contains(word);}
}

最后:

启动SpringBoot应用,可以使用curl或其他工具,向http://localhost:8080/sentimentAnalysis发送POST请求,请求体为要进行情感分析的文本数据。返回结果可以是Positive、Negative或Neutral。

注意:上述代码仅仅是示例代码,可以根据具体的需求进行修改和优化。在实际使用中,也需要根据具体情况对Hanlp的功能进行扩展和调整。

相关文章:

Hanlp自然语言处理如何再Spring Boot中使用

一、HanLP HanLP (Hankcs NLP) 是一个自然语言处理工具包&#xff0c;具有功能强大、性能高效、易于使用的特点。HanLP 主要支持中文文本处理&#xff0c;包括分词、词性标注、命名实体识别、依存句法分析、关键词提取、文本分类、情感分析等多种功能。 HanLP 可以在 Java、Py…...

MySQL 是什么?

MySQL官方网站&#xff08;http://www.mysql.com/&#xff09;提供关于MySQL软件的最新信息。 MySQL是一个数据库管理系统。 数据库是一种结构化的数据集合。它可以是从简单的购物清单到图片库&#xff0c;再到企业网络中的大量信息等任何形式。要添加、访问和处理存储在计算…...

yarn link使用(npm link)

使用场景 前端开发中&#xff0c;两个项目相互依赖时&#xff0c;使用yarn link(npm link)链接 例如&#xff1a;A项目依赖于本司自己的UI库B&#xff0c;当我们修改了UI库B中的某些代码时&#xff0c;需本地验证后再发布到私服&#xff0c;此时A项目与UI项目B通过yarn link连…...

Docker容器讲解

Docker是一个开源的容器化平台&#xff0c;可以用来在轻量级容器中打包、部署和运行应用程序。Docker的基本概念包括容器、镜像、仓库和服务。 容器是一个独立运行的应用程序包&#xff0c;包括应用程序及其依赖项、运行时环境和配置等。容器相互隔离&#xff0c;可以在不同的…...

three.js模拟太阳系

地球的旋转轨迹目前设置为了圆形&#xff0c;效果&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red"></div><div c…...

WPF仿网易云搭建笔记(1):项目搭建

文章目录 前言项目地址动态样式组合样式批量样式覆盖Prism新建UserControler修改Material Design 笔刷收放列表可以滚动的StackPanel列表点击展开或折叠 实现效果 前言 今天接着继续细化代码&#xff0c;把整体框架写出来 项目地址 WPF仿网易云 Gitee仓库 动态样式 【WPF】C#…...

DDOS 攻击是什么?有哪些常见的DDOS攻击?

DDOS简介 DDOS又称为分布式拒绝服务&#xff0c;全称是Distributed Denial of Service。DDOS本是利用合理的请求造成资源过载&#xff0c;导致服务不可用&#xff0c;从而造成服务器拒绝正常流量服务。就如酒店里的房间是有固定的数量的&#xff0c;比如一个酒店有50个房间&am…...

未来应用从何而来:认知力延伸、边界突破、回归云与产业

文 | 智能相对论 作者 | 沈浪 或许&#xff0c;谁也没想到未来应用来的如此之快&#xff0c;现如今传统应用从开发到体验&#xff0c;已经进入了一个前所未有的颠覆性改革阶段。 不久前&#xff0c;美国人工智能公司OpenAI举办开发者大会。在现场&#xff0c;公司创始人Sam …...

vue零基础

vue 与其他框架的对比 框架设计模式数据绑定灵活度文件模式复杂性学习曲线生态VueMVVM双向灵活单文件小缓完善ReactMVC单向较灵活all in js大陡丰富AngularMVC双向固定多文件较大较陡&#xff08;Typescript&#xff09;独立 更多对比细节&#xff1a;vue 官网&#xff1a;ht…...

html中一个div中平均一行分配四个盒子,可展开与收起所有的盒子

html中一个div中平均一行分配四个盒子&#xff0c;可展开与收起所有的盒子 1.截图显示部分 2.代码展示部分 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"wid…...

Python虚拟环境指南:告别依赖地狱

一、背景 在SAAS&#xff08;软件即服务&#xff09;平台中&#xff0c;用户使用自行定制的Python脚本已经成为司空见惯的做法&#xff0c;然而&#xff0c;由于不同用户对Python三方库的需求各不相同&#xff0c;而底层服务器一般只安装了一个Python版本。举例来说&#xff0…...

【Jeecg Boot 3 - 第二天】第2节 前后端docker部署云服务器

更新完成&#xff0c;点击下面章节进入 一、后端部署 1.1、后端 docker-compose 部署 JEECGBOOT 1.2、jar 包和 lib 依赖分离&#xff0c;部署包缩小100倍 二、前端部署 2.1、nginx 部署 JEECGBOOT VUE3 2.2、开启Nginx压缩&#xff0c;解决前端访问慢问题...

2020年第九届数学建模国际赛小美赛A题自由泳解题全过程文档及程序

2020年第九届数学建模国际赛小美赛 A题 自由泳 原题再现&#xff1a; 在所有常见的游泳泳姿中&#xff0c;哪一种最快&#xff1f;哪个冲程推力最大&#xff1f;在自由泳项目中&#xff0c;游泳者可以选择他们的泳姿&#xff0c;他们通常选择前面的爬行。然而&#xff0c;游泳…...

双端队列和优先级队列

文章目录 前言dequedeque底层设计迭代器设计 priority仿函数数组中的第k个最大元素优先级队列模拟实现pushpop调整仿函数存储自定义类型 前言 今天要介绍比较特殊的结构&#xff0c;双端队列。 还有一个适配器&#xff0c;优先级队列。 deque 栈的默认容器用了一个deque的东西…...

c#读取CSV文件跟Excel导入成DataTble

1.读取CSV文件 /// <summary>/// 读取CSV文件/// </summary>/// <param name"fileName">文件路径</param>public static DataTable ReadCSV(string fileName){DataTable dt new DataTable();FileStream fs new FileStream(fileName, FileM…...

Python编程技巧 – 单字符函数

Python编程技巧 – 单字符函数 Python Programming Skills – Single Character Function By JacksonML 0. 前言 Python有其内建(built-in)的一系列函数&#xff0c;其中&#xff0c;有两个函数为长度为一的字符设计。这样的函数是单字符函数&#xff0c;尽管它们操作的对象…...

xcode-文件

IOSDeviceSupoprt 共享缓存库 当你使用新的 iOS 设备连接到 Xcode 时&#xff0c;Xcode 会自动下载并存储相应版本的设备支持文件。 每个 iOS 版本都有一个对应的设备支持文件集&#xff0c;这些文件包含有关设备架构和操作系统的信息&#xff0c;以便 Xcode 能够正确地调试和…...

云原生之深入解析网络服务Istio、eBPF和RSocket Broker

一、服务治理 ① “服务治理”简介 在微服务时代&#xff0c;一个复杂的应用程序被分解为多个组件化、协作和连接的单元&#xff0c;服务往往会承担越来越多的业务责任&#xff0c;这使得服务治理的难度前所未有&#xff0c;仅仅依靠微服务框架级的治理是不够的&#xff0c;构…...

文件系统和磁盘调度

文件系统 概述 文件系统&#xff1a;一种用于持久性存储的系统抽象 在存储器上&#xff1a;组织、控制、导航、访问和检索数据大多数计算机包含文件系统 文件&#xff1a;文件系统中一个单元的相关数据在操作系统中的抽象 文件系统功能 分配文件磁盘空间 管理文件块管理空…...

C++ stringOJ练习题

目录 把字符串转换成整数 反转字符串 字符串中的第一个唯一字符 字符串最后一个单词的长度 找出字符串中第一个只出现一次的字符 字符串相加 字符串最后一个单词长度 字符串相乘 反转字符串3 反转字符串2 验证回文串 把字符串转换成整数 通过遍历字符串并逐位转换…...

基于CircuitPython与ANCS协议打造iOS蓝牙通知显示器

1. 项目概述&#xff1a;打造你的专属iOS通知“小秘书”你是否也经历过这样的场景&#xff1a;手机放在包里或口袋里&#xff0c;每次有消息进来&#xff0c;都得掏出来看一眼&#xff0c;结果可能只是个无关紧要的推送&#xff0c;不仅打断了手头的工作&#xff0c;还白白消耗…...

实时语音AI对话应用开发:从WebRTC到LLM集成的全栈实践

1. 项目概述&#xff1a;实时语音对话的AI应用实践最近在GitHub上看到一个挺有意思的项目&#xff0c;叫proj-airi/webai-example-realtime-voice-chat。光看名字&#xff0c;就能猜到个大概&#xff1a;这是一个基于Web的、利用AI技术实现的实时语音聊天示例。作为一个在音视频…...

别再卡在‘Setup is running’了!PowerBuilder 9.0保姆级安装避坑指南(附安全模式备用方案)

PowerBuilder 9.0安装全攻略&#xff1a;从卡死困境到高效部署 "Setup is running"这个看似简单的提示框&#xff0c;曾让无数PowerBuilder开发者陷入漫长的等待和反复的重启循环。作为一款承载了二十余年企业级应用开发记忆的经典工具&#xff0c;PowerBuilder 9.0的…...

为什么92%的AIGC剪辑师仍在用手动导出?揭秘Sora 2直连Premiere的7大底层优化与3个避坑红线

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Sora 2与Premiere直连整合的行业悖论与破局起点 当OpenAI正式释放Sora 2的API文档并开放有限开发者预览时&#xff0c;Adobe Premiere Pro团队内部立即启动了“Project Lumen”——一项旨在实现双向帧级…...

QFN封装工艺深度解析:从结构设计到制程优化的关键考量

1. QFN封装基础认知&#xff1a;为什么它成为现代电子产品的宠儿 第一次接触QFN封装是在2015年设计智能手表项目时&#xff0c;当时为了把主控芯片塞进8mm厚的表壳里&#xff0c;传统QFP封装根本放不下。直到供应商推荐了这颗5x5mm的QFN芯片&#xff0c;才真正体会到"小身…...

AI驱动个人网站生成器:基于Next.js与OpenAI的配置化数字名片

1. 项目概述&#xff1a;一个AI驱动的个人数字名片最近在折腾个人品牌和在线展示&#xff0c;发现了一个挺有意思的开源项目&#xff1a;zachlagden/iamjarvis.xyz。这本质上是一个基于AI的个人网站生成器&#xff0c;或者说&#xff0c;是一个高度定制化的“数字名片”。它的核…...

谷歌关键词搜索怎么做上去? 提升首页点击率的4个标题优化细节

某家出口企业耗费6个月将“工业水泵制造”推至搜索结果第三位。搜索控制台报表显示&#xff0c;该网页月度曝光量达45,000次&#xff0c;访客仅有540人。点击率停留在1.2%。排在第五位的同行业公司&#xff0c;凭借52个字符的标题&#xff0c;拿走月均3,200个访客。一份针对海外…...

【职场】聪明人,从不在公司交朋友

聪明人&#xff0c;从不在公司交朋友“你以为你们是朋友。但有一天你会发现&#xff0c;你们之间站着一个共同的雇主。”一、那个"最懂你"的同事 你们一起骂过同一个领导。 一起在茶水间吐槽过公司文化。 一起在深夜加班时互相打气。 你告诉他你想离职&#xff0c;告…...

3大核心能力解析:Vin象棋如何用深度学习重塑中国象棋AI辅助体验

3大核心能力解析&#xff1a;Vin象棋如何用深度学习重塑中国象棋AI辅助体验 【免费下载链接】VinXiangQi Xiangqi syncing tool based on Yolov5 / 基于Yolov5的中国象棋连线工具 项目地址: https://gitcode.com/gh_mirrors/vi/VinXiangQi Vin象棋是一款基于YOLOv5深度学…...

深度解析ArtPlayer.js:5个高级视频播放器实战技巧

深度解析ArtPlayer.js&#xff1a;5个高级视频播放器实战技巧 【免费下载链接】ArtPlayer :art: ArtPlayer.js is a modern and full featured HTML5 video player 项目地址: https://gitcode.com/gh_mirrors/ar/ArtPlayer ArtPlayer.js是一款功能全面且高度可定制的现代…...