今天在做mahout文本挖掘的时候,看见了一个分词工具的文章,用了一下,很不错。博客原文
http://www.cnblogs.com/zhenyulu/articles/653254.html。
ICTCLAS的官网是http://ictclas.nlpir.org/。下面是我程序。下载的压缩包中包括c/c++,c#,java,python。这些语言有对应的包。里面有详细的pdf文档。可以试一下。记着把jar包导入eclipse。我的jar包对应于C:\Users\liuxi_001\Desktop\中科院汉语分词系统\ICTCLAS2015\sample\JnaTest_NLPIR\lib\jna-4.00.jar.不懂得可以参照压缩包中的pdf,对应目录C:\Users\liuxi_001\Desktop\中科院汉语分词系统\ICTCLAS2015\doc。当提示初始化失败时,把C:\Users\liuxi_001\Desktop\中科院汉语分词系统\ICTCLAS2015\data包copy一下.具体查看日志错误。
package mahout_weixin; import com.sun.jna.Library; import com.sun.jna.Native; public class MBA{ public interface CLibrary extends Library{ CLibrary Instance = (CLibrary)Native.loadLibrary("C://Users//liuxi_001//Desktop//20141230101836_ICTCLAS2015//ICTCLAS2015//lib//win64//NLPIR", CLibrary.class); public int NLPIR_Init(byte[] sDataPath, int encoding, byte[] sLicenceCode); public String NLPIR_ParagraphProcess(String sSrc, int bPOSTagged); public String NLPIR_GetKeyWords(String sLine, int nMaxKeyLimit, boolean bWeightOut); public void NLPIR_Exit(); } public static void main(String[] args)throws Exception{ String argu = ""; String system_charset = "GBK"; int charset_type = 1; int init_flag = CLibrary.Instance.NLPIR_Init(argu.getBytes(system_charset), charset_type, "0".getBytes(system_charset)); if(0 == init_flag){ System.err.println("初始化失败!"); return; } String input = "东方网12月4日消息:2009年10月21日,辽宁省阜新市委收到举报信,举报以付玉红为首吸毒、强奸、聚众淫乱,阜新市委政法委副书记于洋等参与吸毒、强奸、聚众淫乱等。对此,阜新市委高度重视,责成阜新市公安局立即成立调查组,抽调精干力量展开调查。 调查期间,署名举报人上官宏祥又通过尹东方(女)向阜新市公安局刑警支队提供书面举报,举报于洋等参与吸毒、强奸、聚众淫乱。11月19日,正义网发表上官宏祥接受记者专访,再次实名举报于洋等参与吸毒、强奸、聚众淫乱,引起网民广泛关注。对此辽宁省政法委、省公安厅高度重视。当日,责成有关领导专程赴阜新听取案件调查情况。为加强对案件的督办和指导,省有关部门迅速成立工作组,赴阜新督办、指导案件调查工作,并将情况上报有关部门。 经前一段调查证明,举报事实不存在,上官宏祥行为触犯《刑法》第243条,涉嫌诬告陷害罪。根据《刑事诉讼法》有关规定,阜新市公安局已于11月27日依法立案侦查。 上官宏祥已于2009年12月1日到案,12月2日阜新市海州区人大常委会已依法停止其代表资格,阜新市公安局对其进行刑事拘留,并对同案人尹东方进行监视."; String nati = null; try { nati = CLibrary.Instance.NLPIR_GetKeyWords(input, 10, false); System.out.println("提取的结果是:"+nati); CLibrary.Instance.NLPIR_Exit(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }