使用ICTCLAS JAVA版(ictclas4j)进行中文分词
2014-01-05 21:43
651 查看
来自/article/7512091.html 和 /article/7800610.html
一、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.测试分词结果
Java代码
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);
}
}
就是这样,我们可以得到输出的结果,并且带有词性的标注。
Java代码
分词结果
中国科学院/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的判断语句
Java代码
if(wis != null)
否则有时会报出越界错误
3.关于第三点越界的问题之前的博主没有注意到
在Dictionary.Java的findInModifyTable方法中有这么一段:
[java] view
plaincopy
if (mts != null && mts.size() > index) {
ArrayList<WordItem> wis = mts.get(index).getWords();
.....
}
此处需要对index进行负数的判断,应改为
[java] view
plaincopy
if (mts != null && mts.size() > index) {
if(index < 0)
return result;
ArrayList<WordItem> wis = mts.get(index).getWords();
........
}
3. “org.apache”
这个新建的测试类可能会提示错误:"The import org.apache cannot be resolved",这是由于系统需要一个Apache的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.测试分词结果
Java代码
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);
}
}
就是这样,我们可以得到输出的结果,并且带有词性的标注。
Java代码
分词结果
中国科学院/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的判断语句
Java代码
if(wis != null)
否则有时会报出越界错误
3.关于第三点越界的问题之前的博主没有注意到
在Dictionary.Java的findInModifyTable方法中有这么一段:
[java] view
plaincopy
if (mts != null && mts.size() > index) {
ArrayList<WordItem> wis = mts.get(index).getWords();
.....
}
此处需要对index进行负数的判断,应改为
[java] view
plaincopy
if (mts != null && mts.size() > index) {
if(index < 0)
return result;
ArrayList<WordItem> wis = mts.get(index).getWords();
........
}
3. “org.apache”
这个新建的测试类可能会提示错误:"The import org.apache cannot be resolved",这是由于系统需要一个Apache的commons-lang-2.4.jar。
相关文章推荐
- 使用继续完善前人写的文章:使用ICTCLAS JAVA版(ictclas4j)进行中文分词
- 使用Python+jieba和java+庖丁分词在Spark集群上进行中文分词统计
- ICTCLAS2011中文分词在java的web项目中的使用
- 关于使用中文分词工具ICTCLAS2013 Java版本乱码的问题
- ictclas分词系统的使用,java调用,附带连接mysql进行读写。
- 使用Python+jieba和java+庖丁分词在Spark集群上进行中文分词统计
- 关于使用中文分词工具ICTCLAS2013 Java版本乱码的问题
- 使用Postgresql进行中文分词
- 使用java.net.URLEncoder.encode()可以对要传递的中文进行编码
- 中文分词之Java实现使用IK Analyzer实现
- 使用IKAnalyzer进行中文分词
- python中文分词,使用结巴分词对python进行分词(实例讲解)
- 中科院中文分词系统ICTCLAS如何在安卓平台上使用
- java使用Unicode码对中文进行排序
- 使用python jieba库进行中文分词
- java中使用TreeMap进行中文姓名排序
- Ubuntu下使用Java调用IKAnalyzer中文分词程序失效的解决方法
- Java中使用tess4J(Tesseract-OCR)进行图片文字识别(支持中文)
- 中文分词之Java实现使用IK Analyzer实现