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的功能進行擴展和調整。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/215624.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/215624.shtml
英文地址,請注明出處:http://en.pswp.cn/news/215624.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【LeetCode每日一題】2270.分割數組的方案數

https://leetcode.cn/problems/number-of-ways-to-split-array/description/ 題目&#xff1a; 給定一個數組&#xff0c;從 下標為 index 的地方切開&#xff0c;左邊的數大于右邊&#xff0c;保證右邊至少有一個數。 思路一&#xff1a; 遍歷數組&#xff0c;用prefixArr …

運用企業微信構建內部外部溝通橋梁的策略

隨著互聯網技術的普及和移動設備的廣泛使用&#xff0c;企業微信作為企業內部協作和溝通的重要工具&#xff0c;發揮著越來越重要的作用。其中&#xff0c;企業微信的社群功能為信息的傳播和交流提供了新的途徑。通過建立活躍的企業微信社群&#xff0c;不僅可以加強員工之間的…

部署Nextcloud詳細步驟及優化方法

一、安裝PHP8.0以上 我這里使用PHP8.0.30 [rootlocalhost ~]# php -v PHP 8.0.30 (cli) (built: Aug 3 2023 17:13:08) ( NTS gcc x86_64 ) Copyright (c) The PHP Group Zend Engine v4.0.30, Copyright (c) Zend Technologies [rootlocalhost ~]# 安裝方法參考 二、安裝MY…

[算法基礎 ~排序] Golang 實現

文章目錄 排序什么是排序排序的分類1. 冒泡1.1 冒泡排序1.2. 快速排序 2. 選擇2.1 簡單選擇排序2.2 堆排序 3. 插入3.1 直接插入3.2 折半插入3.3 希爾排序 4. 歸并排序代碼實現 5. 基數排序 排序圖片就不貼了吧 排序 什么是排序 以下部分動圖來自CSDN ::: tip 穩定性的概念 …

linux創建新用戶

在Linux中&#xff0c;可以使用useradd命令來創建新用戶。以下是創建新用戶的基本步驟&#xff1a; 打開終端或命令行界面。輸入以下命令并按下回車鍵創建新用戶&#xff1a; sudo useradd -m -s /bin/bash username 其中&#xff0c;-m選項表示同時創建用戶主目錄&#xff…

【Kubernetes】存儲類StorageClass

存儲類StorageClass 一、StorageClass介紹二、安裝nfs provisioner&#xff0c;用于配合存儲類動態生成pv2.1、創建運行nfs-provisioner需要的sa賬號2.2、對sa授權2.3、安裝nfs-provisioner程序 三、創建storageclass&#xff0c;動態供給pv四、創建pvc&#xff0c;通過storage…

mysql:用SHOW COLUMNS FROM顯示一個表的列信息

可以使用命令SHOW COLUMNS FROM table_name;顯示一個表的列信息&#xff0c;例如&#xff1a;

Java se的語言特征之多態

目錄 滿足多態的條件動態綁定第一步動態綁定第二步動態綁定第三步參數列表,返回類型,訪問修飾限定符區別有動態綁定,那是不是有靜態綁定向下轉型抽象類接口實現多個接口(先繼承再接口,接口用",") 滿足多態的條件 定義:去完成某個狀態的時候,當不同的對象去完成的時候…

MTK Android13 user版本進入engineermode的Bluetooth測試項時閃退

平臺&#xff1a;MT6771 android13 問題描述&#xff1a;進入到工模&#xff0c;點擊進入Bluetooth測試項直接閃退 Log如下&#xff1a; 07-31 10:15:51.480 3605 3605 D EM/EmUtils: getEmAidlService ... 07-31 10:15:51.481 398 398 I servicemanager: Could not fin…

42、JSON 函數

目錄 1. json 的兩個常用方法 json.dumps()方法 &#xff1a;把python對象編碼為json字符串 json.loads()方法&#xff1a;把json字符串編碼成python對象 1. json 的兩個常用方法 json 的存在有兩種形式。 一種是&#xff1a;對象的形式存在&#xff0c;我們叫它 json 對象。…

36V H 橋有刷直流驅動芯片GC8870 GC8871 GC8872的數據選型分析

36V H 橋驅動芯片GC8870 GC8871 GC8872都可替代TI的DRV8870/8871/8872&#xff0c;寬電壓&#xff0c;內置電荷泵&#xff0c;短地短電源保護&#xff0c;限流等功能&#xff0c;可應用于水泵&#xff0c;掃地機器人&#xff0c;開關等產品中

數據庫系統 --- 關系模型

一、關系模型的數據結構以及形式化定義 1.關系 域&#xff1a;一組具有相同數據結構的值的集合。 笛卡爾積&#xff1a;域上的一種集合運算。多個集合做笛卡爾積的結果是每個集合取一個元素組合得到的一個新的集合。 域的基數&#xff1a;一個域上允許的不同取值的個數。 關系&…

mac 安裝anaconda和lightgbm

mac安裝anaconda不要去清華大學的anaconda的安裝包列表去下載安裝包, 去[官網](Free Download | Anaconda)下載, 清華的版本太老了, 老到臉conda 安裝lightgbm都不只支持 安裝好anaconda 后, 能用conda install xxx 的盡量不用pip install 其他的不知道, 用pip install ligh…

護眼臺燈為什么護眼?適合備考使用的臺燈推薦

臺燈是大家生活中必不可少的一盞燈具&#xff0c;尤其是當夜幕降臨時&#xff0c;許多仍然需要工作、或者學習的人&#xff0c;都要使用臺燈來提供充足的照明環境。如今隨著生活的高度發展&#xff0c;大家對臺燈的要求也愈發精進了一步&#xff0c;不僅需要能夠提供照明的&…

報表控件FastReport .NET v2024功能演示—更改圖圖片形狀

報表生成器FastReport .NET 是適用于.NET Core 3&#xff0c;ASP.NET&#xff0c;MVC和Windows窗體的全功能報告庫。使用FastReport .NET&#xff0c;您可以創建獨立于應用程序的.NET報告。 FastReport .net下載&#xff08;qun&#xff1a;585577353&#xff09;https://www.e…

webpack的使用

一、5 大核心概念 entry&#xff08;入口&#xff09; 指示 Webpack 從哪個文件開始打包 output&#xff08;輸出&#xff09; 指示 Webpack 打包完的文件輸出到哪里去&#xff0c;如何命名等 loader&#xff08;加載器&#xff09; webpack 本身只能處理 js、json 等資源…

配電箱安全檢查

配電箱怎么檢查&#xff0c;如何識破電箱安全隱患&#xff1f; &#xff08;1&#xff09;一物一碼&#xff1a;每個配電箱都有獨一無二標識二維碼&#xff0c;巡檢人員到達現場掃碼即可填寫巡檢記錄&#xff0c;查看配電箱的參數、負責人、操作規則等信息&#xff1b; &#x…

如何用PHP寫一個1688平臺下的商品API接口代碼?

一 定義 PHP&#xff08;全稱&#xff1a;Hypertext Preprocessor&#xff09;是一種廣泛用于開發Web應用程序的服務器端腳本語言。它是一種開源的編程語言&#xff0c;特別適用于快速構建動態網頁和Web應用程序。 在PHP中&#xff0c;您可以使用1688商品API接口來獲取和操作…

韻達速遞查詢,韻達速遞單號查詢,對需要的單號記錄進行標記

批量查詢韻達速遞單號的物流信息&#xff0c;對需要的單號記錄進行標記。 所需工具&#xff1a; 一個【快遞批量查詢高手】軟件 韻達速遞單號若干 操作步驟&#xff1a; 步驟1&#xff1a;運行【快遞批量查詢高手】軟件&#xff0c;并登錄 步驟2&#xff1a;點擊主界面左上角…

starknet學習資料匯集這一篇就夠了(持續更新)

文章目錄 官方資料wtf starknet學習資料Starknet Astro 社區官方資料 starknet-foundry 官方github:https://github.com/foundry-rs/starknet-foundry 官方文檔:https://foundry-rs.github.io/starknet-foundry/ https://book.cairo-lang.org/zh-cn/index.html https://boo…