1. 程式人生 > >中科院NLPIR中文分詞java版

中科院NLPIR中文分詞java版

摘要:為解決中文搜尋的問題,最開始使用PHP版開源的SCWS,但是處理人名和地名時,會出現截斷人名地名出現錯誤。開始使用NLPIR分詞,在分詞準確性上效果要比SCWS好。本文介紹如何在windows系統下編譯JAVA ,生成可以執行的jar檔案。


NLPIR的下載地址:

GitHub的地址:

兩個版本有一些不同,本文將分別講解如何利用Eclipse建立工程。

一、NLPIR官方版本

下載後文件夾中bin目錄,如下圖所示,其中NLPIR_WinDemo.exe是一個NLPIR的演示程式,可以嘗試執行,瞭解NLPIR的功能。

 

工程原始碼在sample目錄下,包含CC++

HadoopJAVAPython等語言示例。

Eclipse新建一個工程匯入JAVA工程目錄JnaTest_NLPIR

1Eclipse -> File->import

 

(2)選擇JnaTest_NLPIR所在的路徑,點選Finish

 

(3)檢視Eclipse工程

 

(4)NlpirTest.java檔案中包含main函式,下面的語句初始化NLPIR需要的庫檔案

 

CLibrery類是包含在NlpirTest.java檔案中,

CLibrary Instance = (CLibrary) Native.loadLibrary("H:\\workspace\\ictclas\\1\\ICTCLAS2015\\lib\\win64\\NLPIR", CLibrary.class);

函式loadLibrary需要傳遞庫檔案位置,原始碼提供了多種語言類庫,我們的工程需要載入win64類庫,該資料夾內容如下,

(5)載入分詞資料Data資料夾路徑

String argu = "H:\\workspace\\ictclas\\1\\ICTCLAS2015";
String system_charset = "UTF-8";
int charset_type = 1;
int init_flag = CLibrary.Instance.NLPIR_Init(argu, charset_type, "0");

H:\\workspace\\ictclas\\1\\ICTCLAS2015是Data

資料夾的父資料夾。

這步驟完成後,你就可以除錯程式碼了。有關API可以閱讀手冊。

二、github上下載的程式碼

目錄中包含了NLPIR SDK目錄,每一個目錄是NLPIR提供的一個元件。NLPIR-ICTCLAS目錄包含NLPIR元件的程式碼。

Eclipse中匯入ICTCLAS_java工程,工程目錄如下圖

 

工程中沒有填寫main函式,可以在NlpirTest.java檔案中,加入main函式

public class NlpirTest {
    public static void main(String[] args) throws Exception{
    NlpirTest t = new NlpirTest();
        t.testParticiple();
    }

    public void testParticiple() throws IOException {
        .....

    }
    .......
}

 和官方網站不同,載入庫檔案可以自動判斷系統型別,在工程當前目錄下查詢庫檔案。“工程當前目錄”的win32win64linux32linux64都是包含庫檔案的資料夾。

同時會自動載入“工程當前目錄“下Data問佳佳為分詞資料目錄。這些目錄設定好,就可以進行除錯工作了。

三、在github中"查詢關鍵字"的元件Key_Extract

工程目錄如下,

 

project中提供java版本的示例程式碼,利用Eclipse匯入工程

 

同樣在KeyExtractor.java檔案中新增main函式。KeyExtract_GetKeyWords的第一個引數是需要提取關鍵字的文字,第二引數是關鍵字的個數。

public static void main(String[] args) {
    String keyWordsStr = CLibraryKeyExtractor.instance.KeyExtract_GetKeyWords(args[0], 10, true);
    System.out.println(keyWordsStr);
    CLibraryKeyExtractor.instance.KeyExtract_Exit();
}


在工程的當前資料夾下,有一個Data目錄,是分詞和提取關鍵詞需要用到的分詞資料。需要將需要的license考入到這個資料夾。你可以不用區分用到哪一個user檔案,建議把全部檔案都考到當前工程目錄Data資料夾中。

 

這些設定完成,在Eclipse中傳入引數,選單項run-->run configure

四、匯出jar

Eclipse工程目錄上,右鍵選擇Export

 

選擇runnablejar,生成jar檔案

 

之後就可以利用cmd執行,傳遞引數,效果如下

 

原文地址:http://www.cnblogs.com/jbexploit/p/4572791.html

相關推薦

中科院NLPIR中文java

摘要:為解決中文搜尋的問題,最開始使用PHP版開源的SCWS,但是處理人名和地名時,會出現截斷人名地名出現錯誤。開始使用NLPIR分詞,在分詞準確性上效果要比SCWS好。本文介紹如何在windows系統下編譯JAVA ,生成可以執行的jar檔案。 NLPIR的下載地

哈工大LTP和中科院NLPIR中文比較

個人實驗總結,僅供參考。 1.LTP有自動分句功能,NLPIR沒有分句功能; LTP的分句是根據中文標點裡的句號、問號、感嘆號、分號、省略號。2.NLPIR分詞有兩種方式,分詞結果完全一致。 (1)

中文Java簡單實現

中文分詞Java簡單實現 存備忘 package helloJavaWorld; //用棧存取詞語 class StackTest { private Object[] stack; //元素個數; private int size; //預設長度

雙向最大匹配演算法——基於詞典規則的中文(Java實現)

目錄 一、中文分詞理論描述 二、演算法描述       1、正向最大匹配演算法       2、反向最大匹配演算法       3、雙劍合璧 三、案例描述 四、JAVA實現完整程式碼 五、組

中科院中文java中呼叫詳解(ICTCLAS2013

在中文分詞的時候,現在流行的有很多,下面主要介紹中科院中文分詞,現在中科院地址是http://ictclas.nlpir.org/ 首先也是開始呼叫這個介面,呼叫成功後覺得應該共享出來,讓更多人去使用。 然後主要是介紹一下怎麼用使用漢語分詞系統怎麼去呼叫。必須先在上面那個網

中文系統NLPIR(2015)的Java介面使用學習

前言:         這幾天資料探勘的大作業又用到分詞了,首先想到的肯定是中科院的分詞系統NLPIR,但是之前用的事2013版的,2015版的有了新的變化。增加了函式和效率自是不必說,由於我是用的j

使用Java呼叫Stanford CoreNLP 進行中文

Stanford CoreNLP 進行中文分詞 中文分詞的工具有很多,使用斯坦福的CoreNLP進行分詞的教程網上也不少,本篇部落格是記錄自己在使用Stanford CoreNLP進行中文分詞的學習筆記。 1. 工具準備 1.1 下載NLP相關包: 網址: https://stanfordn

Hanlp在java中文中的使用介紹

專案結構   該專案中,.jar和data資料夾和.properties需要從官網/github下載,data資料夾下載 專案配置 修改hanlp.properties:    1 #/Test/src/hanlp.propertie

Java中文hanlp使用

HanLP介紹:http://hanlp.linrunsoft.com/ github地址:https://github.com/hankcs/HanLP 說明:使用hanlp實現分詞、智慧推薦、關鍵字提取、摘要等,更多功能參考官網 專案結構   該專案中,.jar和data資料夾和.

java HashMap實現中文器 應用:敏感過濾實現

今天下午部門內部技術分享是分詞器演算法。這次的主講是大名鼎鼎的Ansj分詞器的作者-孫健。 作者簡介: Ansj分詞器作者 elasticsearch-sql(elasticsearch的sql外掛)作者,支援sql查詢 nlp-lang自然語言工具包發起人 NLPCN(自然語言處理

NLPIR(ICTCLAS2015)工具Java開發簡介

分詞往往是自然語言處理的第一步。在分詞的基礎上,我們可以進行關鍵字的提取、搜尋、糾錯等應用。在理論上,分詞可以採用的方法有很多,最經典的辦法莫過於HMM模型、CRF及其它語言模型如Bigram、Trigram等。NLPIR(又名:ICTCLAS2015)是由中科院張華平博士研發的,基於HMM模型免費

使用Python+jieba和java+庖丁在Spark叢集上進行中文統計

寫在前邊的話:        本篇部落格也是在做豆瓣電影資料的分析過程中,需要對影評資訊和劇情摘要資訊進行分析而寫的一篇部落格        以前學習hadoop時,感覺做中文分詞也沒那麼麻煩,但是到了

10大Java開源中文器的使用方法和效果對比

原文地址:http://my.oschina.net/apdplat/blog/412921 本文的目標有兩個: 1、學會使用10大Java開源中文分詞器 2、對比分析10 大Java開源中文分詞器的分詞效果 本文給出了10大Java開源中文分詞的使用方法以及分詞

開源 Java 中文器 Ansj 作者孫健專訪

Ansj 是一個開源的 Java 中文分詞工具,基於中科院的 ictclas 中文分詞演算法,比其他常用的開源分詞工具(如mmseg4j)的分詞準確率更高。  線上演示:http://ansj.sdapp.cn/demo/seg.jsp  官網地址:http://www.

【NLP】11大Java開源中文器的使用方法和效果對比

本文的目標有兩個: 1、學會使用11大Java開源中文分詞器 2、對比分析11大Java開源中文分詞器的分詞效果 本文給出了11大Java開源中文分詞的使用方法以及分詞結果對比程式碼,至於效果哪個好,那要用的人結合自己的應用場景自己來判斷。 11大Java開源中文分詞器,不同的分詞器

自然語言處理基於java實現(1) 之 中文

下一篇<自然語言處理基於java實現(2) 之 詞性註釋> 程式原始碼下載 一. 題目如下: 1、針對人民日報語料,編寫程式: 抽取詞表 統計總詞數、不同的詞及其次數。輸出檔案格式: 第一行

【原創】中文系統 ICTCLAS2015 的JAVA封裝和多執行緒執行(附程式碼)

  本文針對的問題是 ICTCLAS2015 的多執行緒分詞,為了實現多執行緒做了簡單的JAVA封裝。如果有需要可以自行進一步封裝其它介面。   首先ICTCLAS2015的傳送門(http://ictclas.nlpir.org/),其對中文分詞做的比較透徹,而且有一定的可調式性。但是應用到實際開發中的話

中文工具探析(一):ICTCLAS (NLPIR)

【開源中文分詞工具探析】系列: 1. 前言 ICTCLAS是張華平老師推出的中文分詞系統,於2009年更名為NLPIR。ICTCLAS是中文分詞界元老級工具了,作者開放出了free版本的原始碼(1.0整理版本在此). 作者在論文[1] 中宣稱ICTCLAS是基於HHMM(Hierarchical Hid

中文演算法之最大正向匹配演算法(Python

最大匹配演算法是自然語言處理中的中文匹配演算法中最基礎的演算法,分為正向和逆向,原理都是一樣的。 正向最大匹配演算法,故名思意,從左向右掃描尋找詞的最大匹配。 首先我們可以規定一個詞的最大長度,每次掃描的時候尋找當前開始的這個長度的詞來和字典中的詞匹配,如果沒有找到,就縮短

Python 中文 NLPIR 快速搭建

前述 本篇文章寫完需要半個小時,閱讀需要十分鐘,讀完後,你將學會在Python中使用NLPIR,以及關於使用它的一些有用的基礎知識 NLPIR 是中科院的漢語分詞系統,在Python中使用也比較廣泛,而且曾多次奪得漢語分詞比賽的冠軍,並且其可以在多個語言上都