ICTCLAS2011_JNI接口-整体介绍

中科院的分词工具ICTCLAS(Institute of Computing Technology,Chinese Lexical Analysis System)2011版,汉语词法分析系统ICTCLAS主要功能包括中文分词;词性标注;命名实体识别;新词识别;同时支持用户词典;支持繁体中文;支持gb2312、GBK、UTF8等多种编码格式。 ICTCLAS分词速度单机500KB/s,分词精度98.45%,API不超过100kb,各种词典数据压缩后不到3M,是世界上最好的汉语词法分析器。 详细介绍可到ICTCLAS官网了解,同时可以下载到最新的版本。另外,也可以到张华平博士的百度空间里去下载。

在看官网提供的API文档的过程中,感觉该文档写得不是很好,估计并没有跟进最新的版本,里面有些接口的介绍以及示例程序不是很正确,现在我将学习过程中的写的示例程序放在这里以供大家讨论。

以下是JNI接口的声明及其个接口的功能介绍,另外,可点击此处查看ICTCLAS各个接口间的调用流程图。本图是基于C++接口绘制的,但由于本人在实验的过程中主要用Java语言开发程序,所以在示例程序方面的都是调用的JNI接口,不过,JNI接口和C++接口命名和功能上都基本一样,只是参数可能不同,但这不是主要问题。

 


Java代码   收藏代码
  1. package ICTCLAS.I3S.AC;  
  2.   
  3. public class ICTCLAS50 {  
  4.       
  5.     /*********************************************************************** 
  6.      * 各个接口中,字符编码参数的需按照如下设置,接口参数中不再详细说明, 若编码不确定,系统将会自动识别编码 
  7.      * (0:编码未知,系统将会自动识别) 
  8.      * (1:ASCII) 
  9.      * (2:gb2312、GBK、gb18030) 
  10.      * (3:UTF-8) 
  11.      * (4:BIG5) 
  12.     *************************************************************************/  
  13.   
  14.     /************************************************************************ 
  15.     * Method:     ICTCLAS_Init<!读取配置文件,加载词典等> 
  16.     * Parameter:  byte[] sPath<!配置文件configure.xml,授权文件user.lic及data文件夹所在路径的字节编码 > 
  17.     * Returns:      bool<!初始化是否成功> 
  18.     * Description: 调用其它任何接口前,必须保证本接口调用成功! 
  19.     * Remark: 1.2010/06/03 17 : 34 created by x10n6y version 5.0  
  20.     *************************************************************************/  
  21.     public native boolean ICTCLAS_Init(byte[] sPath);  
  22.       
  23.   
  24.     /************************************************************************ 
  25.     * Method:     ICTCLAS_Exit<! 退出,释放相关资源> 
  26.     * Returns:     ICTCLAS_API bool<! 退出是否成功> 
  27.     * Description:  所有操作完成后,请调用本接口释放相关资源! 
  28.     * Remark: 1.2010/06/04 9 : 42 created by x10n6y version 5.0  
  29.     *************************************************************************/  
  30.     public native boolean ICTCLAS_Exit();  
  31.       
  32.       
  33.     /************************************************************************ 
  34.     * Method:     ICTCLAS_ImportUserDictFile<! 导入用户词典文件> 
  35.     * Parameter:  byte[] sPath<! 用户词典路径名称> 
  36.     * Parameter:  int eCodeType<!词典编码类型> 
  37.     * Returns:      ICTCLAS_API unsigned int<! 成功导入的词汇数量> 
  38.     * Description: 用户导入词汇文件格式如下: 
  39.                             1.词语与词性用‘@@’间隔。例如:“中科院@@nr; 
  40.                             2.一行一词; 
  41.                             3.词性可省略 
  42.  
  43.     * Remark: 1.2010/06/04 9 : 43 created by x10n6y version 5.0  
  44.     ************************************************************************/  
  45.     public native int ICTCLAS_ImportUserDictFile(byte[] sPath, int eCodeType);  
  46.   
  47.       
  48.     /************************************************************************ 
  49.     * Method:     ICTCLAS_SaveTheUsrDic<!保存用户词典> 
  50.     * Description:1.本接口将会覆盖原有/data/文件夹用户相关词典。   
  51.                          2.用户可在配置文件中,指定下次是否使用该词典。 
  52.     * 
  53.     * Remark: 1.2010/07/05 16 : 16 created by x10n6y version 2.0  
  54.     *************************************************************************/  
  55.     public native int ICTCLAS_SaveTheUsrDic();  
  56.   
  57.     /************************************************************************ 
  58.     * Method:     ICTCLAS_SetPOSmap<!指定词性标注集> 
  59.     * Parameter:  int nPOSmap<! 标注集ID> 
  60.                         ICT_POS_MAP_SECOND 0 //计算所二级标注集 
  61.                         ICT_POS_MAP_FIRST 1  //计算所一级标注集 
  62.                         PKU_POS_MAP_SECOND 2 //北大二级标注集   
  63.                         PKU_POS_MAP_FIRST 3 //北大一级标注集 
  64.  
  65.     * Returns:    ICTCLAS_API bool<! 指定成功与否> 
  66.     * Description:  
  67.     * Remark: 1.2010/06/22 11 : 11 created by x10n6y version 5.0  
  68.     *************************************************************************/  
  69.     public native int ICTCLAS_SetPOSmap(int nPOSmap);  
  70.   
  71.       
  72.     /************************************************************************ 
  73.     * Method:     ICTCLAS_FileProcess<!文本文件分词> 
  74.     * Parameter:  byte[] sSrcFilename<!要分词的文件> 
  75.     * Parameter: int eCodeType<!要处理的文本编码类型> 
  76.     * Parameter:  int bPOSTagged<! 是否词性标准> 
  77.     * Parameter:  byte[] sDestFilename<! 结果文件存放位置> 
  78.     * Returns:      ICTCLAS_API bool<! 分词是否成功> 
  79.     * Description: 1.用户若不指定分词结果保存位置,系统将结果保存至 
  80.                             当前目录下,test_result.txt 中。 
  81.                          2.pszDstFileName若该文件不存在, 则自动生成; 
  82.                             否则先清空已有内容。 
  83.     * Remark: 1.2010/06/22 11 : 11 created by x10n6y version 5.0  
  84.     *************************************************************************/  
  85.     public native boolean ICTCLAS_FileProcess(byte[] sSrcFilename,  
  86.             int eCodeType, int bPOSTagged, byte[] sDestFilename);  
  87.   
  88.       
  89.     /************************************************************************ 
  90.     * Method:     ICTCLAS_ParagraphProcess<! 分词,返回结果为字符串> 
  91.     * Parameter:  byte[] sSrc<!需要分词的文本内容> 
  92.     * Parameter:  int eCodeType<!字符编码类型> 
  93.     * Parameter:  int bPOSTagged<!是否词性标注 > 
  94.     * Returns:      byte[]<! 分词后的字符串的字节编码> 
  95.     * Description: 调用本接口,由用户分配内存,保存结果(pszResult) 
  96.     ,建议内存大小strlen(pszText)*6! 
  97.     * Remark: 1.2010/06/22 11 : 11 created by x10n6y version 5.0  
  98.     *************************************************************************/  
  99.     public native byte[] ICTCLAS_ParagraphProcess(byte[] sSrc, int eCodeType,  
  100.             int bPOSTagged);  
  101.   
  102.       
  103.     /************************************************************************ 
  104.     * Method:     nativeProcAPara<! 分词,返回ICTCLAS_Result类对象对应的字节序列,需要按照一定的规则将其进行编码> 
  105.     * Parameter:  byte[] sSrc<! 需要分词的文本内容> 
  106.     * Parameter:  int bPOStagged<! 是否词性标注> 
  107.     * Returns:      byte[] <! ICTCLAS_Result类对象对应的字节序列> 
  108.     * Description:( ~_~这个接口现在还不是很明白怎么对其返回结果进行处理,希望各位网友赐教~_~) 
  109.     * Remark: 1.2010/06/22 11 : 11 created by x10n6y version 5.0  
  110.     *************************************************************************/  
  111.     public native byte[] nativeProcAPara(byte[] sSrc, int eCodeType,  
  112.             int bPOStagged);  
  113.   
  114.     /* Use static intializer */  
  115.     static {  
  116.         System.loadLibrary("ICTCLAS50");  
  117. //      System.out.println("load ictclas50...");  
  118.     }  
  119. }  

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值