ictclas4j 分词工具包 安装流程
首先把 ictclasj解压缩,然后
1.把 Data文件夹整个拷贝到 Eclipse项目的文件夹下,
2.而 bin目录下的 org文件夹整个拷贝到你 Eclipse项目的 bin目录下,(将class文件存进去)
3.把src目录下的org文件夹整个拷贝到 Eclipse项目 的src目录下。
4.把目录中commons-lang-2.4.jar 加到项目中(右键新建folder--设置名字为LIB--直接复制jar到此文件夹--点击此jar-右键-buidpath-add 点击即可)
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
分词结果
中国科学院/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.关于第三点越界的问题之前的博主没有注意到
在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();
........
}
在对大文件进行中文分词时,出现了以下的错误信息
java.lang.ArrayIndexOutOfBoundsException: -39
at java.util.ArrayList.get(ArrayList.java:324)
at org.ictclas4j.bean.Dictionary.findInOriginalTable(Dictionary.java:
422)
at org.ictclas4j.bean.Dictionary.getFreq(Dictionary.java:632)
at org.ictclas4j.segment.GraphGenerate.biGenerate(GraphGenerate.java:
170)
at org.ictclas4j.segment.Segment.split(Segment.java:81)
at com.ictclas4j.test.MyTest.main(MyTest.java:19)
经过上网查询资料以及阅读相关源代码,找到可能的出错原因:
分词过程中出现了未能识别的字,如繁体字等
改错方法:在Dictionary.java文件中找到findInOriginalTable()方法,将其中的
- if (res != null && wts != null) {
修改为
if (res != null && wts != null &&index>=0 &&index<wts.size()) {
即可。
ictclas4j 分词工具包 安装流程的更多相关文章
- Gulp安装流程、使用方法及cmd常用命令导览
Gulp安装流程.使用方法及CMD常用命令导览 来自前端小白的gulp及周边知识学习总结 一.名词介绍: Npm--node包管理工具 一开始我不理解,包管理工具是什么鬼.后来用到的gulp也好,gu ...
- 北大开源全新中文分词工具包:准确率远超THULAC、结巴分词
最近,北大开源了一个中文分词工具包,它在多个分词数据集上都有非常高的分词准确率.其中广泛使用的结巴分词误差率高达 18.55% 和 20.42,而北大的 pkuseg 只有 3.25% 与 4.32% ...
- pkuseg:一个多领域中文分词工具包
pkuseg简单易用,支持细分领域分词,有效提升了分词准确度. 目录 主要亮点 编译和安装 各类分词工具包的性能对比 使用方式 相关论文 作者 常见问题及解答 主要亮点 pkuseg具有如下几个特点: ...
- iOS 最新版 CocoaPods 的安装流程
iOS 最新版 CocoaPods 的安装流程1.移除现有Ruby默认源$gem sources --remove https://rubygems.org/2.使用新的源$gem sources - ...
- 最新版 CocoaPods 的安装流程
iOS 最新版 CocoaPods 的安装流程 1.移除现有Ruby默认源 $gem sources --remove h ...
- CocoaPods安装流程
iOS 最新版 CocoaPods 的安装流程 1.移除现有Ruby默认源 $gem sources --remove https://rubygems.org/ 2.使用新的源 $g ...
- CentOS 7 64位的安装流程
若出现以下不支持虚拟机的问题: 表示虚拟机检测到CPU支不支持虚拟化,要去BIOS里设置虚拟化技术设置为enabled:重启电脑-按"F1或Fn+F1"-进入BIOS主界面-移至S ...
- Yii2框架与MongoDB拓展、Redis拓展的安装流程
@author 周煦辰 2016-03-21 这段时间新上了一个项目,使用的是Yii2框架.这里记录一下Yii2框架.Yii2-Mongo拓展.Yii2-Redis拓展等的安装流程.因为使用的系统是W ...
- Canopy v. 1.5.5 ubuntu安装流程
官网的下载超级慢,还总是断,一断就失败了 我花费了7个小时终于在尝试了5次以后下载成功了,现在将网盘链接分享出来 https://yunpan.cn/cxt28gM26mxQU 访问密码 301d ...
随机推荐
- DATA 转 16 进制
// 转 16进制 编码 NSData *data = [NSData dataWithBytes:(const void *)dataOut length:(NSUInteger)dataOutMo ...
- cyclone4驱动LM75A温湿度传感器学习
1. LM75A第一次使用,I2C接口,8脚 2. 打开quartus工程,下面只要是看看代码结构,问题在于多个always语句,逻辑上不太好分清楚,主要看状态机 module I2C_READ( c ...
- RTL8188EUS之MAC地址烧写(使用利尔达模组)
1. 手上有几个RTL8188EUS的wifi模块,打算把台式机装个无线网卡,但是插上之后发现没有MAC,没办法只能自己去找个烧写MAC的软件.RTL8188内部有个eFuse,用来配置之类的.这个e ...
- python基础之变量和简单数据类型
1.1 变量的命名和使用规范 变量名可以包含数字.字母.下划线,但是不能以数字开头. 变量名不能包含空格,可使用下划线来分割其中的单词. 不要将Python关键字和函数名用作变量名. 变量名应既简短又 ...
- ortp代码简析
ortp初始化 /** * Initialize the oRTP library. You should call this function first before using * ...
- angular-使用iframe做独立页(iframe传值到angular和iframe里请求后台数据)
这个方法使用过两次.一次是在项目中嵌入一个表达式生成器.因为用别人做好的网页变成组件很难,而且里面用了jq,与angular思想相反不能用.另一次是因为想要单独引用样式.而innerHTML使用的样式 ...
- Tensorflow - Implement for generating some 3-dimensional phony data and fitting them with a plane.
Coding according to TensorFlow 官方文档中文版 import tensorflow as tf import numpy as np ''' Intro. for thi ...
- Python3获取新浪微博内容乱码问题
用python获取新浪微博最近发布内容的时候调用 public_timeline()函数的返回值是个jsonDict对象,首先需要将该对象通过json.dumps函数转换成字符串,然后对该字符串用GB ...
- Linux内核设计笔记11——定时器
定时器与时间管理笔记 内核中的时间 时钟中断:内核中的系统定时器以某种频率触发中断,该频率可以通过编程预定. 节拍率HZ:时钟中断的频率称为节拍率. 节拍:相邻两次中断的时间间隔称为节拍,1/节拍率. ...
- 5.hadoop常用命令
1. 单独启动和关闭hadoop服务 启动名称节点 #hadoop-daemon.sh start namenode 启动数据节点 #hadoop-daemons.sh start datanode ...