智能語言的處理中,第一個步驟就是分詞。一個句子處理的第一步就是分詞了,目前而言中文分詞中效果最好的就是中科院分詞系統。在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過期纔是最主要的。