1 下載下傳NLPIR,http://ictclas.nlpir.org/downloads
2 下載下傳後解壓,将Data檔案夾複制到eclipse的項目下(與src同級)
3 根據自己到電腦組態,拷貝NLPIR的lib檔案夾下有對應不同版本(win/linux,32/54位)的.so或者.dll檔案,放置到項目到bin檔案夾下。注:放置到bin檔案夾下我是根據報錯提示做的,網上有的部落格寫到是直接放置到項目下。
4 将NLPIR/sample/JnaTest_NLPIR/lib檔案夾下的jna-4.0.0.jar導入到項目jar包中。
這是配置完後我的項目結構:

5 other下放置了我要導入到外部字典——一個txt檔案。
6 建立一個segment.class類,其中實作一個繼承Library的接口:
//libpath是第3步中我放入的NLPIR.so的路徑,注意字尾可以不用寫
private static String libpath = "NLPIR";
//第2步中Data的上級路徑,因為我的Data就在項目包下,是以這裡為“”
private static String rootpath = "";
public interface CLibrary extends Library {
CLibrary Instance = (CLibrary) Native.loadLibrary(libpath, CLibrary.class);
public int NLPIR_Init(String sDataPath, int encoding, String sLicenceCode);
public String NLPIR_ParagraphProcess(String sSrc, int bPOSTagged);
public int NLPIR_ImportUserDict(String path);
public String NLPIR_GetKeyWords(String sLine, int nMaxKeyLimit, boolean bWeightOut);
public String NLPIR_GetFileKeyWords(String sLine, int nMaxKeyLimit, boolean bWeightOut);
public int NLPIR_AddUserWord(String sWord);
public int NLPIR_DelUsrWord(String sWord);
public String NLPIR_GetLastErrorMsg();
public void NLPIR_Exit();
}
7 我在main方法中寫一個示例:
public static void main(String[] args) throws Exception {
//1表示設定字元集為utf-8
int charset_type = ;
int init_flag = CLibrary.Instance.NLPIR_Init(rootpath, charset_type, "0");
String nativeBytes = null;
//初始化失敗做提示
if ( == init_flag) {
nativeBytes = CLibrary.Instance.NLPIR_GetLastErrorMsg();
System.err.println("init failed, reason is " + nativeBytes);
return;
}
//添加自定義詞典
int nItems = CLibrary.Instance.NLPIR_ImportUserDict("other/financeTerm.txt");
try{
String input = "百雀羚雪花高和茶葉罐都是鐵皮的,修得非常厲害,四面牆壁都是斑斑駁駁";
//1表示要詞性标注,0表示不要
String nativeBytes = CLibrary.Instance.NLPIR_ParagraphProcess(sInput, );
System.out.println(nativeBytes);
} catch (Exception ex) {
ex.printStackTrace();
}
}