中科院分詞ICTCLAS5.0_JNI 使用方法

1.簡介

中國科學院計算技術研究所在多年研究基礎上,耗時一年研製出了基於多層隱碼模型的漢語詞法分析系統 ICTCLAS(Institute of Computing Technology, Chinese Lexical Analysis System),該系統的功能有:中文分詞;詞性標註;未登陸詞識別。分詞正確率高達97.58%(最近的973專家組評測結果),基於角色標註的未登陸詞識別能取得高於90%召回率,其中中國人名的識別召回率接近98%,分詞和詞性標註處理速度爲31.5KB/s。ICTCLAS 和計算所其餘14項免費發佈的成果被中外媒體普遍地報道,國內不少免費的中文分詞模塊都或多或少的參考過ICTCLAS的代碼。java

2.下載

下載地址:測試

下載之後解壓。url

解壓後的目錄結構:spa

必要說明:.net

user.lic,用戶受權文件。blog

3.新建Eclipse項目。

而後將打開API文件夾下的ICTCLAS文件夾拷貝到src目錄下,其它的文件夾和文件所有拷貝到工程目錄下。工程結構如圖所示:ip

4.測試

你能夠本身新建一個測試類,也能夠使用已有的測試類。get

好比Sample文件夾裏有個例子:TestMain.java,你能夠將它複製到Eclipse中。而後運行。就能夠看到結果了。string

注意,ICTCLAS會自動生成一個ICTCLAS.log文件,查看這個文件能獲取許多有用的信息。it

5.各類問題。

 

[java]  view plain  copy
 
  1. a.Exception in thread "main" java.lang.UnsatisfiedLinkError: ICTCLAS50.ICTCLAS_Init([B)Z  
  2.     at ICTCLAS50.ICTCLAS_Init(Native Method)  
  3.     at TestMain.testICTCLAS_ParagraphProcess(TestMain.java:33)  
  4.     at TestMain.main(TestMain.java:13)  

解決辦法:

這種狀況是你把ICTCLAS50_Windows_32_JNI\API\ICTCLAS\I3S\AC目錄下的類ICTCLAS50.java 沒有放到包ICTCLAS.I3S.AC裏。

b.將Data文件夾和其它文件,放置到一個configure文件夾下ICTLAS不識別:

 

[java]  view plain  copy
 
  1. Exception in thread "main" java.lang.UnsatisfiedLinkError: no ICTCLAS50 in java.library.path  
  2.     at java.lang.ClassLoader.loadLibrary(Unknown Source)  
  3.     at java.lang.Runtime.loadLibrary0(Unknown Source)  
  4.     at java.lang.System.loadLibrary(Unknown Source)  
  5.     at ICTCLAS.I3S.AC.ICTCLAS50.<clinit>(ICTCLAS50.java:26)  
  6.     at TestMain.testICTCLAS_ParagraphProcess(TestMain.java:32)  
  7.     at TestMain.main(TestMain.java:15)  

即加載庫文件和Data文件夾、用戶受權文件user.lic的錯誤。

 

解決辦法:

一種方法是:修改ICTCLAS50類和測試類的參數,指定庫文件。

[java]  view plain  copy
 
  1. static  
  2.     {  
  3.         String path = new File("").getAbsolutePath()+"\\<span style="font-family:SimSun; line-height:25.1875px">configure</span>\\ICTCLAS50.dll";  
  4. //      System.loadLibrary("ICTCLAS50");  
  5.         System.load(path);  
  6.     }  

而後再修改TestMain類中的testICTCLAS_ParagraphProcess()方法的argus的值,告訴ICTCLAS,你改變了工程目錄。

 

部分代碼以下:

 

[java]  view plain  copy
 
  1. ICTCLAS50 testICTCLAS50 = new ICTCLAS50();  
  2. //          //String argu = ".";  
  3.             String argu = new File("").getAbsolutePath()+"\\configure";  
  4.             //初始化  
  5.             if (testICTCLAS50.ICTCLAS_Init(argu.getBytes("GB2312")) == false)  
  6.             {  
  7.                 System.out.println("Init Fail!");  
  8.                 return;  
  9.             }  



還有testICTCLAS_FileProcess()方法。

修改後的工程目錄:

相關文章
相關標籤/搜索