使用继续完善前人写的文章:使用ICTCLAS JAVA版(ictclas4j)进行中文分词

 一、ICTCLAS的介绍

中国科学院计算技术研究所在多年研究基础上,耗时一年研制出了基于多层隐码模型的汉语词法分析系统 ICTCLAS(Institute of Computing Technology, Chinese Lexical Analysis System),该系统的功能有:中文分词;词性标注;未登录词识别。分词正确率高达97.58%(最近的973专家组评测结果),基于角色标注的未登录词识别能取得高于90%召回率,其中中国人名的识别召回率接近98%,分词和词性标注处理速度为31.5KB/s。ICTCLAS 和计算所其他14项免费发布的成果被中外媒体广泛地报道,国内很多免费的中文分词模块都或多或少的参考过ICTCLAS的代码。

 

二、开始使用ICTCLAS进行分词

1.下载ictclas4j

  首先到ictclas的网站下载JAVA版本的ictclas——ictclas4j。

  下载地址 :之前的下载地址已经无效,我是在新浪爱问上下到的。

2.在Eclipse中 新建项目并进行 配置

  首先把 ictclas4j解压缩,然后把 Data文件夹整个拷贝到 Eclipse项目的文件夹下, 而 bin目录下的 org文件夹整个拷贝到你Eclipse项目的 bin目录下,把src目录下的org文件夹整个拷贝到 Eclipse项目 的src目录下。

3.测试分词结果

import org.ictclas4j.bean.SegResult;  
import org.ictclas4j.segment.SegTag;  
  
public class TextSegmentation {  
  
    public static void main(String[] args) {  
        String fileContent = "中国科学院计算技术研究所在多年研究基础上," +  
                "耗时一年研制出了ICTCLAS汉语词法分析系统";  
        SegTag segTag = new SegTag(1);// 分词路径的数目          
        SegResult segResult = segTag.split(fileContent.trim());  
        String classifyContent = segResult.getFinalResult();  
        System.out.println("分词结果\n"+classifyContent);  
    }  
}  

 

就是这样,我们可以得到输出的结果,并且带有词性的标注。

分词结果  
中国科学院/n 计算/n 技术/n 研究所/n 在/c 多年/m 研究/n 基础/a 上/f ,/w 耗时/v 一/d 年/a 研制/v 出/q 了/u ICTCLAS/nx 汉语/n 词法/n 分析/v 系统/a   

 

 

三、关于可能出现的错误  

    1.越界错误

在Dictionary.java里面的getMaxMatch()函数里要注意加上对wis的判断语句

if(wis != null)

 否则有时会报出越界错误

 

  2. “org.apache”

这个新建的测试类可能会提示错误:"The import org.apache cannot be resolved",这是由于系统需要一个Apache的commons的jar包。


3.关于第三点越界的问题之前的博主没有注意到

在Dictionary.Java的findInModifyTable方法中有这么一段:

if (mts != null && mts.size() > index) {
			
			ArrayList<WordItem> wis = mts.get(index).getWords();
.....

}
此处需要对index进行负数的判断,应改为

if (mts != null && mts.size() > index) {
		 
			if(index < 0)
				return result;
			
			ArrayList<WordItem> wis = mts.get(index).getWords();
........

}

至此,程序便能够跑起来了。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值