ICTCLAS(Java)使用

初用中文分词,介绍ICTCLAS的用法:

1.软件准备:

http://www.ictclas.org/ictclas_download.aspx此处使用win7 64bit

2.解压

子目录API中文件如下:

避免eclipse添加原目录代码问题,直接将所有文件拷入自己的工程目录的src文件夹中。刷新eclipse即可。

动态链接问题,将dll文件拷至system32文件夹

3.测试代码

import java.io.UnsupportedEncodingException;

import ICTCLAS.I3S.AC.ICTCLAS50;


public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			ICTCLAS50 testIctclas50 = new ICTCLAS50();
			String argu = "src/";//原接口文档中此处为".",在实际应用中应改为Configure.xml的文件夹目录
			if (testIctclas50.ICTCLAS_Init(argu.getBytes("gb2312"))==false) {
				System.out.println("fail");
				return;
			}else {
				System.out.println("success");
			}
			String input = "长春市长春药店";//此处为需要分词的语句
			byte nativeBytes[] = testIctclas50.ICTCLAS_ParagraphProcess(input.getBytes("utf-8"), 0, 0);//最后一个参数控制是否显示词性
			System.out.println(nativeBytes.length);
			String nativeStr = new String(nativeBytes, 0, nativeBytes.length,"utf-8");
			System.out.println(nativeStr);//分词结果,token以空格分割
			testIctclas50.ICTCLAS_Exit();
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

3.输出


4.添加自定义词典

代码与上面基本保持一致,在初始化之后分词之前添加词典

			int nCount = 0;
			String usrdir = "usrdir.txt"; //用户字典路径
			byte[] usrdirb = usrdir.getBytes();
	//第一个参数为用户字典路径,第二个参数为用户字典的编码类型(0:type unknown;1:ASCII码;2:GB2312,GBK,GB10380;3:UTF-8;4:BIG5)
			nCount = testIctclas50.ICTCLAS_ImportUserDictFile(usrdirb, 3);//此处函数与接口文档中不同,注意
			System.out.println("导入用户词个数"+ nCount);
			nCount = 0;

5.用户词典


如图,每行一个词,@@之后为词性,可参见软件中的词性标注集,如无词性需要,每行一个词即可。


6.总结

ICTCLAS号称可以识别人名,发现在部分情况下可以识别,最好还是自己添加词典,确保在任何句式中可以发现,不足的是未找到如何添加停用词,这点稍逊于IK分词

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值