中科院分词ICTCLAS汉语分词系统简单配置

汉语分词一直来说都是进行文本分析的瓶颈,这里介绍一个汉语分词系统ICTCLAS,全球很受欢迎的汉语分词开源系统,曾获得首界国际分词大赛综合排名第一,国家973评测第一名;支持词典,多级词性标注,支持人名、地名、组织名,分词速500KB/s左右,分词精度98.45%,API不超过100KB,各种词典数据压缩后不到3M。一个非常优秀的分词系统,具体下载地址:http://ictclas.org/

下面是它的可视化界面:

       该分词系统是开源的,可以供多种程序语言API进行调用 ,下面介绍一个java调用方法:

首先,下载java相应的win平台下的api,网址:http://ictclas.org/ictclas_feedback.aspx?packetid=50&packeturl=down/50/ICTCLAS50_Windows_32_JNI.rar

然后,解压打开API文件夹,里面共有8个文件

新建一个java项目,除ICTCLAS文件夹外,所有的文件均拷到java项目的根目录下,ICTCLAS文件夹整个拷到java项目中的src文件夹中,以供调用,如下:

  • Data目录:主要存放系统自带的各个词典文件、词性标注映射集及用户自定义词典等,在初始化时会根据配置文件的配置信息加载本目录下的词典
  • Configure.xml文件:系统配置文件,主要有data目录的路径信息、日志文件信息、词典修改信息等
  • usr.lic:授权文件,缺少合法的授权文件将无法成功加载
  • ICTCLAS50.dll:ICTCLAS的动态链接库,各个接口的实现

 

ICTCLAS_Init及ICTCLAS_Exit接口之所以放在一块是因为,无论在什么程序下,这两个接口都应该被调用。

1、ICTCLAS_Init(byte[] sPath)接口:

    * Method:     ICTCLAS_Init<!读取配置文件,加载词典等>
    * Parameter:  byte[] sPath<!配置文件configure.xml,授权文件user.lic及data文件夹所在路径的字节编码 >
    * Returns:      bool<!初始化是否成功>
    * Description: 调用其它任何接口前,必须保证本接口调用成功!

2、ICTCLAS_Exit()接口:

    * Method:     ICTCLAS_Exit<! 退出,释放相关资源>
    * Returns:     ICTCLAS_API bool<! 退出是否成功>
    * Description: 所有操作完成后,请调用本接口释放相关资源!

下面是给出的测试代码:

package tokenization;
import ICTCLAS.I3S.AC.ICTCLAS50;
public class test {
     public static void main(String[] args)
     {       
        
        ICTCLAS50 testICTCLAS50 = new ICTCLAS50();
        try
        {
            //分词所需库的路径
            String argu = ".";
            //初始化
            if (testICTCLAS50.ICTCLAS_Init(argu.getBytes("GB2312")) == false){
                System.out.println("Init Fail!");
                
                return;
            }
            else {
                    System.out.println("Init Succeed!");
            }
            String sInput="点击下载超女纪敏佳深受观众喜爱。禽流感爆发在非典之后。";
            byte nativeBytes[] = testICTCLAS50.ICTCLAS_ParagraphProcess(sInput.getBytes("GB2312"), 0, 1);
            System.out.println(nativeBytes.length);
            String nativeStr = new String(nativeBytes, 0, nativeBytes.length, "GB2312");
            System.out.println("The result is :" + nativeStr);
            testICTCLAS50.ICTCLAS_Exit();
        }
        catch (Exception ex)
        {
        }
        finally{
            
            
        }
     }
 }


结果如下:

你可能感兴趣的:(中科院分词ICTCLAS汉语分词系统简单配置)