欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java?使用HanLP?安裝入門詳細(xì)教程

 更新時(shí)間:2025年07月31日 10:12:32   作者:2501_91537388  
本文介紹Java使用HanLP的入門教程,涵蓋安裝、分詞、詞性標(biāo)注、關(guān)鍵詞提取、NER等核心功能,強(qiáng)調(diào)其功能完善、性能高效、支持自定義詞典的特點(diǎn),并提供配置方法和常見問題解決方案,適合中文NLP開發(fā)場景,感興趣的朋友一起跟隨小編看看吧

HanLP是一系列模型與算法組成的NLP工具包,目標(biāo)是普及自然語言處理在生產(chǎn)環(huán)境中的應(yīng)用。HanLP具備功能完善、性能高效、架構(gòu)清晰、語料時(shí)新、可自定義的特點(diǎn)。

HanLP 是基于 Java開發(fā)的 NLP工具包,由一系列模型與算法組成,目標(biāo)是普及自然語言處理在生產(chǎn)環(huán)境中的應(yīng)用。而且 HanLP具備功能完善、性能高效、架構(gòu)清晰、語料時(shí)新、可自定義的特點(diǎn),因此十分好上手,下面看下java 使用HanLP 入門教程。

1. 安裝 HanLP

Maven 依賴

<dependency>
    <groupId>com.hankcs</groupId>
    <artifactId>hanlp</artifactId>
    <version>portable-1.8.4</version> <!-- 最新版本請查看官網(wǎng) -->
</dependency>

注意:portable 版本內(nèi)置小型詞典,適合基礎(chǔ)任務(wù);若需完整功能,需下載完整數(shù)據(jù)包

2. 基礎(chǔ)功能

(1) 分詞

import com.hankcs.hanlp.HanLP;
import com.hankcs.hanlp.seg.common.Term;
public class BasicDemo {
    public static void main(String[] args) {
        String text = "你好,歡迎使用HanLP!這是一段測試文本。";
        // 標(biāo)準(zhǔn)分詞
        List<Term> termList = HanLP.segment(text);
        System.out.println(termList);
        // 輸出: [你好/vl, ,/w, 歡迎/v, 使用/v, HanLP/nx, !/w, 這是/r, 一段/m, 測試/vn, 文本/n, 。/w]
    }
}

(2) 詞性標(biāo)注

HanLP 的分詞結(jié)果已包含詞性(如 n=名詞,v=動(dòng)詞):

for (Term term : termList) {
    System.out.println(term.word + " : " + term.nature);
}

常用詞性標(biāo)記

  • n:名詞
  • v:動(dòng)詞
  • w:標(biāo)點(diǎn)符號
  • nx:外文單詞

3. 進(jìn)階功能

(1) 關(guān)鍵詞提取

import com.hankcs.hanlp.summary.TextRankKeyword;
List<String> keywords = HanLP.extractKeyword(text, 5); // 提取前5個(gè)關(guān)鍵詞
System.out.println(keywords); // 輸出: [文本, 測試, HanLP, 歡迎, 使用]

(2) 命名實(shí)體識別(NER)

List<Term> termList = HanLP.segment("馬云在阿里巴巴工作。");
for (Term term : termList) {
    if (term.nature.toString().startsWith("nr")) { // nr=人名
        System.out.println("人名: " + term.word);
    } else if (term.nature.toString().startsWith("ns")) { // ns=地名
        System.out.println("地名: " + term.word);
    }
}
// 輸出: 人名: 馬云  地名: 阿里巴巴

(3) 自定義詞典

// 方式1:臨時(shí)添加單詞
HanLP.Config.CustomDictionaryPath = new String[]{"data/dictionary/custom/CustomDictionary.txt"};
HanLP.Config.enableDebug();
// 方式2:動(dòng)態(tài)添加
CustomDictionary.add("量子計(jì)算", "n 1024");
CustomDictionary.insert("神經(jīng)網(wǎng)絡(luò)", "n 1024");
// 使用自定義詞典分詞
System.out.println(HanLP.segment("量子計(jì)算是未來趨勢"));
// 輸出: [量子計(jì)算/n, 是/v, 未來/t, 趨勢/n]

4. 高級配置

(1) 切換分詞模式

// 極速詞典分詞(不標(biāo)注詞性)
List<String> fastSegResult = HanLP.segmentFaster(text);
// 標(biāo)準(zhǔn)分詞(帶詞性)
List<Term> stdSegResult = HanLP.segment(text);
// NLP分詞(高精度,需完整數(shù)據(jù)包)
List<Term> nlpSegResult = HanLP.newSegment().enableNameRecognize(true).seg(text);

(2) 加載完整數(shù)據(jù)包

  1. 下載數(shù)據(jù)包并解壓。
  2. 配置 hanlp.properties
    root=path/to/hanlp-data

5. 完整示例

import com.hankcs.hanlp.HanLP;
import com.hankcs.hanlp.seg.common.Term;
import java.util.List;
public class HanLPFullDemo {
    public static void main(String[] args) {
        String text = "清華大學(xué)位于北京市海淀區(qū)。";
        // 分詞 + 詞性標(biāo)注
        List<Term> terms = HanLP.segment(text);
        System.out.println("分詞結(jié)果: " + terms);
        // 命名實(shí)體識別
        terms = HanLP.newSegment().enablePlaceRecognize(true).seg(text);
        for (Term term : terms) {
            if (term.nature.toString().startsWith("ns")) {
                System.out.println("地名: " + term.word);
            }
        }
        // 關(guān)鍵詞提取
        List<String> keywords = HanLP.extractKeyword(text, 3);
        System.out.println("關(guān)鍵詞: " + keywords);
    }
}

輸出

分詞結(jié)果: [清華大學(xué)/nt, 位于/v, 北京市/ns, 海淀區(qū)/ns, 。/w]
地名: 北京市
地名: 海淀區(qū)
關(guān)鍵詞: [海淀區(qū), 北京市, 清華大學(xué)]

6. 常見問題

  1. 詞典加載失敗:檢查 hanlp.properties 中的 root 路徑是否正確。
  2. 內(nèi)存不足:使用 portable 版本或增加 JVM 內(nèi)存:-Xms512m -Xmx1024m
  3. 性能優(yōu)化:對長文本使用 HanLP.segmentFaster()。

官方資源

HanLP 功能強(qiáng)大且靈活,適合中文 NLP 的各種場景!

到此這篇關(guān)于java 使用HanLP 入門教程的文章就介紹到這了,更多相關(guān)java 使用hanlp內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringMVC訪問controller報(bào)錯(cuò)404的解決辦法(總結(jié)超詳細(xì))

    SpringMVC訪問controller報(bào)錯(cuò)404的解決辦法(總結(jié)超詳細(xì))

    純注解配置SpringMVC程序,使用tomcat8.5.95版本啟動(dòng),能啟動(dòng)成功并且訪問index.jsp頁面,但是訪問/save時(shí)出現(xiàn)404無法訪問,本文給大家介紹了SpringMVC訪問controller報(bào)錯(cuò)404的解決辦法,文章總結(jié)的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • Springboot引入多個(gè)yml方法(多種方案)

    Springboot引入多個(gè)yml方法(多種方案)

    SpringBoot默認(rèn)加載的是application.yml文件,所以想要引入其他配置的yml文件,就要在application.yml中激活該文件這篇文章主要介紹了Springboot引入多個(gè)yml方法,需要的朋友可以參考下
    2019-10-10
  • 三步輕松實(shí)現(xiàn)Java的SM2前端加密后端解密

    三步輕松實(shí)現(xiàn)Java的SM2前端加密后端解密

    SM2算法和RSA算法都是公鑰密碼算法,SM2算法是一種更先進(jìn)安全的算法,在我們國家商用密碼體系中被用來替換RSA算法,這篇文章主要給大家介紹了關(guān)于如何通過三步輕松實(shí)現(xiàn)Java的SM2前端加密后端解密的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • 一篇文章帶你學(xué)習(xí)Mybatis-Plus(新手入門)

    一篇文章帶你學(xué)習(xí)Mybatis-Plus(新手入門)

    這篇文章主要介紹了MyBatis-Plus 快速入門案例(小白教程),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • Java1.8中LocalDate方法使用總結(jié)

    Java1.8中LocalDate方法使用總結(jié)

    LocalDate是Java8中的一個(gè)日期類,用于表示年月日,它是不可變的,線程安全的,下面這篇文章主要給大家介紹了關(guān)于Java1.8中LocalDate方法使用的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • SpringBoot實(shí)現(xiàn)阿里云短信接口對接的示例代碼

    SpringBoot實(shí)現(xiàn)阿里云短信接口對接的示例代碼

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)阿里云短信接口對接的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • SpringMVC請求流程源碼解析

    SpringMVC請求流程源碼解析

    這篇文章主要介紹了SpringMVC請求流程源碼分析,包括springmvc使用,SpringMVC啟動(dòng)過程及SpringMVC請求過程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • idea報(bào)錯(cuò):程序包org.springframework.web.bind.annotation不存在

    idea報(bào)錯(cuò):程序包org.springframework.web.bind.annotation不存在

    在用本地的maven倉庫的時(shí)候會org.springframework.web.bind.annotation不存在的錯(cuò)誤,本文就詳細(xì)的介紹一下解決方法,感興趣的可以了解下
    2023-08-08
  • java 非常好用的反射框架Reflections介紹

    java 非常好用的反射框架Reflections介紹

    這篇文章主要介紹了java 反射框架Reflections的使用,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Java讀取txt文件和寫入txt文件的簡單實(shí)例

    Java讀取txt文件和寫入txt文件的簡單實(shí)例

    下面小編就為大家?guī)硪黄狫ava讀取txt文件和寫入txt文件的簡單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-11-11

最新評論