智能語言-中科院分詞系統ICTCLAS(NLPIR)

智能語言的處理中,第一個步驟就是分詞。一個句子處理的第一步就是分詞了,目前而言中文分詞中效果最好的就是中科院分詞系統。在2014版本以及之前稱爲ICTCLAS,之後的版本都更名爲NLPIR。
我給出一個最簡單的使用教程,能夠幫助新手快速上手使用。
我使用的開發環境是eclipse,32位操作系統
首先是下載,下載兩個壓縮包,一個是分詞包一個接口包,ICTCLAS是純C編寫,在java上使用需要JNI也就是c語言加一個java接口,NLPIR有java版本,我使用的是ICTCLAS加一個接口的方法。
點擊轉至下載地址,代碼爲U1115的是32位分詞包U1105是64位。http://ictclas.nlpir.org/newsdownloads?DocId=384 下載JNI。
分別解壓後待用。
解壓開分詞包,新建一個項目,將Data目錄拷貝到file目錄;解壓開JNI包將NLPIR.dll動態鏈接庫放到項目目錄下,與file目錄同級。想利用原有文獻測試的話把test也複製過去。我的圖傳不上來,借用一張圖。
這裏寫圖片描述
複製一點代碼測試一下

public class TestUTF8 {
public static void main(String[] args) {
    try {
        testUTF8();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

static void testUTF8() throws Exception {
    // 創建接口實例
    NLPIR nlpir = new NLPIR();
    if (!NLPIR.NLPIR_Init("./file/".getBytes("utf-8"), 1)) {
        System.out.println("NLPIR初始化失敗...");
        return;
    }
    String temp = "每天的日報都記得要發送, 以配合經理掌握項目的進度情況.";
    // 要統一編碼, 否則分詞結果會產生亂碼
    byte [] resBytes = nlpir.NLPIR_ParagraphProcess(temp.getBytes("UTF-8"), 1);
    //byte [] resBytes = nlpir.NLPIR_ParagraphProcess(temp.getBytes("UTF-8"), 0);
    System.out.println("分詞結果: " + new String(resBytes, "UTF-8"));

    String utf8File = "./test/test-utf8.TXT";
    String utf8FileResult = "./test/test-utf8_result.TXT";
    nlpir.NLPIR_FileProcess(utf8File.getBytes("utf-8"), utf8FileResult.getBytes("utf-8"), 1);
//  nlpir.NLPIR_FileProcess(utf8File.getBytes("utf-8"), utf8FileResult.getBytes("utf-8"), 0);//不帶有詞性標註的分詞結果 
    // 退出, 釋放資源
    NLPIR.NLPIR_Exit();
}
}

試試看,如果出現一行錯誤,那麼恭喜你,你下載的分詞包過期了^-^下載一個最新的版本,也就是NLPIR或者是ICTCLAS2015,把裏面的data文件夾複製替換了,這裏好多博客都寫錯了,並不完全是編碼的問題data過期纔是最主要的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章