1、int ICTCLAS_ImportUserDictFile(byte[] sPath, int eCodeType)接口:
* Method: ICTCLAS_ImportUserDictFile<! 导入用户词典文件>
* Parameter: byte[] sPath<! 用户词典路径名称>
* Parameter: int eCodeType<!词典编码类型>
* Returns: ICTCLAS_API int<! 成功导入的词汇数量>
* Description: 用户导入词汇文件格式如下:
1.词语与词性用'@@'间隔。例如:“中科院@@nr;
2.一行一词;
3.词性可省略
2、int ICTCLAS_SaveTheUsrDic()接口:
* Method: ICTCLAS_SaveTheUsrDic<!保存用户词典>
* Description:1.本接口将会覆盖原有/data/文件夹用户相关词典。
2.用户可在配置文件中,指定下次是否使用该词典。
其中,ICTCLAS_ImportUserDictFile接口用来以文件的形式来导入用户自定义词典,导入后可以选择性的调用ICTCLAS_SaveTheUsrDic接口用以将其保存在data目录下,这时目录下面会多出UserDict.map、UserDict.pos、UserDict.pdat三个文件,并且可以通过修改configure.xml配置文件选择是否加载该用户词典。(这三个文件的具体含义,我还说不清楚,从后缀名来看的话.map文件应该是词性映射文件,.pos文件或是词性标注文件,.pdat就看不出来了~_~,希望看到的朋友可以留言赐教一下!)
调用示例:
package ICTCLAS.I3S.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import ICTCLAS.I3S.AC.ICTCLAS50;
public class Test_ImportUsrDict {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ICTCLAS50 ictclas = new ICTCLAS50();
String useage = "Useage : java Test_ICTCLAS_ParagraphProcess sPath [nPOSmap]";
if (args.length < 1) {
System.err.println(useage);
return;
}
try {
if (!ictclas.ICTCLAS_Init(args[0].getBytes("GB2312"))) {
System.err.println("Initial failed!");
return;
}
System.out.println("Initial successed!");
String input = "中国科学院计算技术研究所在多年研究工作积累的基础上,研制出了汉语词法分析系统ICTCLAS。";
/* 设置词性标注集(0 计算所二级标注集,1 计算所一级标注集,2 北大二级标注集,3 北大一级标注集) */
int nPosmap = args.length == 2 ? Integer.valueOf(args[1]) : 1;
ictclas.ICTCLAS_SetPOSmap(nPosmap);
/* 导入用户词典前 */
byte nativeBytes[] = ictclas.ICTCLAS_ParagraphProcess(input
.getBytes("GB2312"), 0, 1);
String nativeStr = new String(nativeBytes, 0, nativeBytes.length,
"GB2312");
System.out.println("未导入用户词典的分词结果:" + nativeStr);
int nCount = 0;
BufferedReader reader = new BufferedReader(new InputStreamReader(
System.in, "GB2312"));
System.out.print("input the src file:");
String usrdir = reader.readLine();
// 第一个参数为用户字典路径,第二个参数为用户字典的编码类型(0:type
// unknown;1:ASCII码;2:GB2312,GBK,GB10380;3:UTF-8;4:BIG5)
nCount = ictclas.ICTCLAS_ImportUserDictFile(usrdir
.getBytes("GB2312"), 2);
System.out.println("导入用户词个数" + nCount);
// 导入用户字典后再分词
byte nativeBytes1[] = ictclas.ICTCLAS_ParagraphProcess(input
.getBytes("GB2312"), 0, 1);
String nativeStr1 = new String(nativeBytes1, 0,
nativeBytes1.length, "GB2312");
System.out.println("导入用户词典:" + nativeStr1);
ictclas.ICTCLAS_SaveTheUsrDic(); /* 保存用户词典 */
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
// 释放分词组件资源
ictclas.ICTCLAS_Exit();
}
}
}
分享到:
相关推荐
ICTCLAS50_Windows_32_JNI 的使用,介绍ICTCLAS50_Windows_32_JNI 在eclipse等环境下的配置,以及怎么测试ICTCLAS50_Windows_32_JNI
ICTCLAS50_Windows_64_JNI ICTCLAS的API,文档等
中科院中文分词windows 64位系统JNI方式调用程序。
中科院分词系统java版 ICTCLAS50_Windows_32_JNI.rar ;里面有最新的授权文件,正确执行demo;里面包含java借口使用说明以及分词系统的演示说明
中科院分词系统+ICTCLAS2011+JNI版(Java语言)源代码学习
中科院分词软件,用于语料预处理,不错的。
中科院分词器ictclas50 本人亲测windows64位可以使用
jena可推理,查询,尤其用于语义方面的推理,这是其源代码
ICTCLAS 2011 c/c++/c#版、JNI版均支持多线程调用。 3、支持UTF-8 以往版本需要进行编码转换,统一转换成GB2312之后才能做进一步处理。系统当前版本支持GB2312、GBK、GB18030、UTF-8、BIG5。以上编码无需做任何...
中科院分词工具,jni调用,包括文档和demo。该demo为改造版,官方提供的的ICTCLAS2011在java中使用总是报错,这个demo可以正常使用
为http://ictclas.org/所发布软件的免费共享版,此版为JNI版,没有使用时间限制,
ICTCLAS功能齐全,门类齐全,包括jar包,dll动态文件,Linux的.so、windows的.dll全都有,不要感激我,我只是知识的传播者。