`
emily2ly
  • 浏览: 165223 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

使用ICTCLAS JAVA版(ictclas4j)进行中文分词(附ictclas,停用词表,commons-lang-2.4.jar下载地址)

阅读更多

一、ICTCLAS的介绍

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

 

二、开始使用ICTCLAS进行分词

1.下载ictclasj

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

  下载地址http://ictclas.org/Down_OpenSrc.asp

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

  首先把 ictclasj解压缩,然后把 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包。

   文章后面的附件中有 commons-lang-2.4.jar和停用词表(stopwords.rar)下载

 

(完)

create@2009-08-20

 

  • 大小: 16.3 KB
分享到:
评论
10 楼 taotao945 2014-01-11  
楼主你好,请问分词后怎么过滤停用词呢?急用,谢谢指点!
9 楼 yegong 2013-09-01  
楼主,您好,请问,stopwords,这个停用词表怎么用的咧? 在什么场景下使用呢?
8 楼 yegong 2013-09-01  
楼主,您好,请问,stopwords,这个停用词表怎么用的咧? 在什么场景下使用呢~
7 楼 chenwq 2012-05-28  
你好,请问可以把本博文所使用的ictclas4j给我不?
我使用google code上的0.9.0和0.9.1版本,用你的代码示例,无法运行。

谢谢!
6 楼 chenwq 2012-05-07  
log4j:WARN No appenders could be found for logger (org.ictclas4j.segment.Segment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
[atom time]:1
Exception in thread "main" java.lang.NullPointerException
at org.ictclas4j.bean.Dictionary.getMaxMatch(Dictionary.java:574)
at org.ictclas4j.segment.GraphGenerate.generate(GraphGenerate.java:96)
at org.ictclas4j.segment.Segment.split(Segment.java:78)
at org.ictclas4j.sample.TextSegmentation.main(TextSegmentation.java:14)

请问这啥错误啊?
5 楼 emily2ly 2011-04-18  
sha1985123 写道
你好,上面说的问题我已经解决了,我想请教一下:如果知道ictclas的java接口啊,有没有相关文档,多谢了


不好意思,很久没登录...
要实现它提供的分词功能,就是用以下代码就可以:
SegTag segTag = new SegTag(1);// 分词路径的数目          
SegResult segResult = segTag.split(fileContent.trim());  
String classifyContent = segResult.getFinalResult();  


第一个我没有改过,就是用的默认的"1"
通过segTag的split函数就能得到结果。
4 楼 sha1985123 2011-02-28  
你好,上面说的问题我已经解决了,我想请教一下:如果知道ictclas的java接口啊,有没有相关文档,多谢了
3 楼 sha1985123 2011-02-28  
我的QQ号是417976953,如果方便的话可以加我
2 楼 sha1985123 2011-02-28  
[size=x-small]楼主你好,这里面讲的是在Eclipse中 新建项目并进行 配置 ,我想请教一下如何在Myeclipse中新建项目并进行配置.[/size]
1 楼 十一文 2011-01-19  
来看看 留名

相关推荐

Global site tag (gtag.js) - Google Analytics