1. 程式人生 > >Java分詞工具HanLP

Java分詞工具HanLP

HanLP是由一系列模型與演算法組成的Java工具包,目標是普及自然語言處理在生產環境中的應用。不僅僅是分詞,而是提供詞法分析、句法分析、語義理解等完備的功能。HanLP具備功能完善、效能高效、架構清晰、語料時新、可自定義的特點。

HanLP完全開源,包括詞典。不依賴其他jar,底層採用了一系列高速的資料結構,如雙陣列Trie樹、DAWG、AhoCorasickDoubleArrayTrie等,這些基礎件都是開源的。官方模型訓練自2014人民日報語料庫,您也可以使用內建的工具訓練自己的模型。

通過工具類HanLP您可以一句話呼叫所有功能,文件詳細,開箱即用。底層演算法經過精心優化,極速分詞模式下可達2,000萬字/秒,記憶體僅需120MB。在IO方面,詞典載入速度極快,只需500 ms即可快速啟動。HanLP經過多次重構,歡迎二次開發。

POM.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.iqilu</groupId>
  <artifactId
>
Segment</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>Hello</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties
>
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>com.hankcs</groupId> <artifactId>hanlp</artifactId> <version>portable-1.3.2</version> </dependency> </dependencies> </project>

DemoSegment.java

package com.iqilu;

import com.hankcs.hanlp.HanLP;
import com.hankcs.hanlp.seg.common.Term;

import java.util.List;

public class DemoSegment {
    public static void main(String[] args) {
        String[] testCase = new String[]{
                "商品和服務",
                "結婚的和尚未結婚的確實在干擾分詞啊",
                "買水果然後來世博園最後去世博會",
                "中國的首都是北京",
                "歡迎新老師生前來就餐",
                "工信處女幹事每月經過下屬科室都要親口交代24口交換機等技術性器件的安裝工作",
                "隨著頁遊興起到現在的頁遊繁盛,依賴於存檔進行邏輯判斷的設計減少了,但這塊也不能完全忽略掉。",
        };
        for (String sentence : testCase)
        {
            List<Term> termList = HanLP.segment(sentence);
            System.out.println(termList);
        }
    }
}

結果

[商品/n, 和/c, 服務/vn]
[結婚/v, 的/uj, 和/c, 尚未/d, 結婚/v, 的/uj, 確實/ad, 在/p, 干擾/v, 分詞/n, 啊/y]
[買/v, 水果/n, 然後/c, 來/v, 世博園/j, 最後/f, 去/v, 世博會/j]
[中國/ns, 的/uj, 首都/n, 是/v, 北京/ns]
[歡迎/v, 新/a, 老師/n, 生前/t, 來/v, 就餐/v]
[工信處/n, 女/b, 幹事/n, 每月/r, 經過/p, 下屬/v, 科室/n, 都要/nr, 親口/d, 
交代/v, 24/m, 口/q, 交換機/n, 等/u, 技術性/n, 器件/n, 的/uj, 安裝/v, 工作/vn]
[隨著/p, 頁/q, 遊興/n, 起/v, 到/v, 現在/t, 的/uj, 頁遊/nz, 繁盛/an, ,/w, 
依賴於/v, 存檔/vn, 進行/v, 邏輯/n, 判斷/v, 的/uj, 設計/vn, 減少/v, 了/ul, ,/w, 
但/c, 這塊/r, 也/d, 不能/v, 完全/ad, 忽略/v, 掉/v, 。/w]