1. ICTCLAS_Init
功能:初始化分析器并根据配置文件为ICTCLAS准备必要的数据.
方法:boolean ICTCLAS_Init(byte[] sPath);
返回:如果初始化成功则返回true,否则返回false;
参数:sPath:初始化词典路径,Configure.xml和Data文件夹储存的位置
说明:在使用ICTCLAS的任何操作前这个方法必须被引用,ICTCLAS_Exit方法用来退出分析器,如果初始化不成功的话,ICTCLAS的任何操作都会失败。
初始化失败主要可能是下边两个原因:1)所需的数据不兼容或丢失2)配置文件丢失或者sPath参数无效。当然,还可以从ICTCLAS的log fie(日志文件)中找出问题。
2. ICTCLAS_Exit
功能:退出程序,释放所有资源,释放在ICTCLAS中使用的所有缓冲器。
方法:boolean ICTCLAS_Exit();
返回:如果释放成功则返回true,否则返回false;
参数:没有参数
说明:在不使用ICTCLAS时,必须使用该函数退出分词器,调用ICTCLAS_Init函数再次使用ICTCLAS.
3. ICTCLAS_ImportUserDict
功能:从一个文本文件中导入用户用户自定义词典
方法:int ICTCLAS_ImportUserDict(byte[] sPath);
返回:成功导入的词汇条目数量
参数:用户词典的文本文件的路径
说明:只有激活这个功能时,用户定义的词典才管用,如果你在配置文件中设置UserDict为”on”是ICTCLAS就会自动导入这些词汇,如果设置为”off”,用户自定义的词汇就不会被应用。
4. ICTCLAS_ParagraphProcess
功能:处理一段文字,返回结果
方法:byte[] ICTCLAS_ParagraphProcess(byte[] sSrc,bPosTagged);
返回:字节数组
参数:sSrc:源文本,待处理的文本
bPosTagged:判断是否需要词性标注,0表示不标注,1表示标注。
说明:无。
5. ICTCLAS_FileProcess
功能:处理一个文本文件
方法:boolean ICTCLAS_FileProcess(byte[] sSrcFilename,byte[] sDestFilename,int bPOSTagged);
返回:如果处理成功返回true,否则返回false.
参数:sSrcFilename:待分析的文件的文件名
sDestFilename:处理后的结果储存的文件名
bPosTagged:是否需要词性标注,0表示不标注,1表示标注。
说明:输出的格式(output format)有配置文件(configure.xml)来定义。
6. ICTCLAS_IsWord
功能:在词典中查找,确定这个单词是否在核心词汇中列出
方法:boolean ICTCLAS_IsWord(byte[] sWord);
返回:如果存在则返回true,否则返回false
参数:sWord:要搜索的单词
例子:(只给出片段,方便理解,testICTCLAS是ICTCLAS2010的一个实例)
String str="中国";
boolean bExist=testICTCLAS.ICTCLAS_IsWord(str.getBytes("GB2312"));
System.out.println(str+" exists?"+bExist);
float dProb=testICTCLAS.ICTCLAS_GetUniProb(str.getBytes("GB2312"));
System.out.println(str+" Probability= "+dProb);
testICTCLAS.ICTCLAS_Exit();
结果输出:
中国 exists?true
中国 Probability= 0.0022491838
7. ICTCLAS_GetUniProb
功能:获取给定单词的unigram概率
方法:float ICTCLAS_GetUniProb(byte[] sWord);
返回:返回概率值
参数:sWord:需要求值的单词
8. nativeProcAPara
方法:public native byte[] nativeProcAPara(byte[] src);
struct result_t{
int start; //start position,词语在输入句子中的开始位置
int length; //length,词语的长度
char sPOS[POS_SIZE];//word type,词性ID值,可以快速的获取词性表
int iPOS;//词性
int word_ID; //如果是未登录词,设成或者-1
int word_type; //区分用户词典:1是用户词典中的词0非用户词典中的词
int weight;// word weight
};
返回:结构向量的指针,由系统管理,用户不干预。
参数:src:源文本
例子:见第12个方法中
9. ICTCLAS_AddUserWord
功能:添加一个单词到用户词典
方法:int ICTCLAS_AddUserWord(const char *sWord);
返回:成功则返回1,否则返回0
参数:sWord:要添加的单词
例子:
ICTCLAS_AddUserWord(“爱思客 n”);//添加词:爱思客\t词性。其中“爱思客”为要添加的词,“n”为词的词性,”\t”为分隔符
10. ICTCLAS_SaveTheUsrDic
功能:将用户词典保存在硬盘上
方法:public native int ICTCLAS_SaveTheUsrDic();
返回:保存成功则返回1,否则返回0;
例子:(部分代码,testICTCLAS是ICTCLAS2010的一个实例)
//动态添加用户词
String str = "爱思客";
testICTCLAS.ICTCLAS_AddUserWord(str.getBytes("GB2312"));
testICTCLAS.ICTCLAS_SaveTheUsrDic();//保存用户词典
11. ICTCLAS_DelUsrWord
功能:从用户词典中删除一个单词
方法:public native int ICTCLAS_DelUsrWord(byte[] sWord);
返回:如果该单词在用户词典中不存在,则返回1,否则返回删除该单词的handle
参数:要删除的单词
例子:
String str = "iThinker";
testICTCLAS.ICTCLAS_AddUserWord(str.getBytes("GB2312"));
testICTCLAS.ICTCLAS_DelUsrWord(str.getBytes("GB2312"));
testICTCLAS.ICTCLAS_SaveTheUsrDic();//保存用户词典
12. ICTCLAS_KeyWord
功能:从一段话中抽取出关键字
方法:public int ICTCLAS_KeyWord(byte[] resultKey, int nCountKey);
返回:返回键号(the key number);
参数:resultKey:the returned key word
nCountKey:the returned key num,可以从以下方式获得:
nativeBytes = testICTCLAS.nativeProcAPara(str.getBytes("GB2312"));
int nativeElementSize = 4 *6+8;//size of result_t in native code,depend on the complie
说明:用这个方法之前必须执行nativeProcAPara方法
例子:
//关键词提取
int nCountKey = 0;
str = "点击下载超女纪敏佳深受观众喜爱。禽流感爆发在非典之后。";
nativeBytes =testICTCLAS.nativeProcAPara(str.getBytes("GB2312"));
int nativeElementSize = 4 * 6 +8;//size of result_t in native code
int nElement = nativeBytes.length / nativeElementSize;
ByteArrayInputStream(nativeBytes));
nativeBytes = new byte[nativeBytes.length];
nCountKey = testICTCLAS.ICTCLAS_KeyWord(nativeBytes, nElement);
Result[] resultArr = new Result[nCountKey];
DataInputStream dis = new DataInputStream(new ByteArrayInputStream(nativeBytes));
for (int i = 0; i < nCountKey; i++){
resultArr[i] = new Result();
resultArr[i].start = Integer.reverseBytes(dis.readInt());
resultArr[i].length = Integer.reverseBytes(dis.readInt());
dis.skipBytes(8);
resultArr[i].posId = Integer.reverseBytes(dis.readInt());
resultArr[i].wordId = Integer.reverseBytes(dis.readInt());
resultArr[i].word_type = Integer.reverseBytes(dis.readInt());
resultArr[i].weight = Integer.reverseBytes(dis.readInt());
}
dis.close();
for (int i = 0; i < resultArr.length; i++){
System.out.println("start=" + resultArr[i].start + ",length=" + resultArr[i].length + "pos=" + resultArr[i].posId + "word=" + resultArr[i].wordId + " weight=" + resultArr[i].weight);
}
testICTCLAS.ICTCLAS_Exit();
12. ICTCLAS_FingerPrint
功能:从段落中提取出一个指纹(the finger print)
返回:失败则返回0,否则返回返回内容的指纹(the finger print)
参数:无
说明:必须在nativeProcAPara方法调用之后
例子:
str = "点击下载超女纪敏佳深受观众喜爱。禽流感爆发在非典之后。";
nativeBytes = testICTCLAS30.nativeProcAPara(str.getBytes("GB2312"));
long finger = testICTCLAS30.ICTCLAS_FingerPrint();//指纹提取
testICTCLAS30.ICTCLAS_Exit();
13. ICTCLAS_SetPOSmap
功能:设置要使用的磁性标注集
方法:public native int ICTCLAS_SetPOSmap(int nPOSmap);
返回:返回1如果执行成功的话,否则返回0
参数:nPOSmap:
ICT_POS_MAP_FIRST 计算所一级标注集
ICT_POS_MAP_SECOND 计算所二级标注集
PKU_POS_MAP_SECOND 北大二级标注集
PKU_POS_MAP_FIRST 北大一级标注集
功能:初始化分析器并根据配置文件为ICTCLAS准备必要的数据.
方法:boolean ICTCLAS_Init(byte[] sPath);
返回:如果初始化成功则返回true,否则返回false;
参数:sPath:初始化词典路径,Configure.xml和Data文件夹储存的位置
说明:在使用ICTCLAS的任何操作前这个方法必须被引用,ICTCLAS_Exit方法用来退出分析器,如果初始化不成功的话,ICTCLAS的任何操作都会失败。
初始化失败主要可能是下边两个原因:1)所需的数据不兼容或丢失2)配置文件丢失或者sPath参数无效。当然,还可以从ICTCLAS的log fie(日志文件)中找出问题。
2. ICTCLAS_Exit
功能:退出程序,释放所有资源,释放在ICTCLAS中使用的所有缓冲器。
方法:boolean ICTCLAS_Exit();
返回:如果释放成功则返回true,否则返回false;
参数:没有参数
说明:在不使用ICTCLAS时,必须使用该函数退出分词器,调用ICTCLAS_Init函数再次使用ICTCLAS.
3. ICTCLAS_ImportUserDict
功能:从一个文本文件中导入用户用户自定义词典
方法:int ICTCLAS_ImportUserDict(byte[] sPath);
返回:成功导入的词汇条目数量
参数:用户词典的文本文件的路径
说明:只有激活这个功能时,用户定义的词典才管用,如果你在配置文件中设置UserDict为”on”是ICTCLAS就会自动导入这些词汇,如果设置为”off”,用户自定义的词汇就不会被应用。
4. ICTCLAS_ParagraphProcess
功能:处理一段文字,返回结果
方法:byte[] ICTCLAS_ParagraphProcess(byte[] sSrc,bPosTagged);
返回:字节数组
参数:sSrc:源文本,待处理的文本
bPosTagged:判断是否需要词性标注,0表示不标注,1表示标注。
说明:无。
5. ICTCLAS_FileProcess
功能:处理一个文本文件
方法:boolean ICTCLAS_FileProcess(byte[] sSrcFilename,byte[] sDestFilename,int bPOSTagged);
返回:如果处理成功返回true,否则返回false.
参数:sSrcFilename:待分析的文件的文件名
sDestFilename:处理后的结果储存的文件名
bPosTagged:是否需要词性标注,0表示不标注,1表示标注。
说明:输出的格式(output format)有配置文件(configure.xml)来定义。
6. ICTCLAS_IsWord
功能:在词典中查找,确定这个单词是否在核心词汇中列出
方法:boolean ICTCLAS_IsWord(byte[] sWord);
返回:如果存在则返回true,否则返回false
参数:sWord:要搜索的单词
例子:(只给出片段,方便理解,testICTCLAS是ICTCLAS2010的一个实例)
String str="中国";
boolean bExist=testICTCLAS.ICTCLAS_IsWord(str.getBytes("GB2312"));
System.out.println(str+" exists?"+bExist);
float dProb=testICTCLAS.ICTCLAS_GetUniProb(str.getBytes("GB2312"));
System.out.println(str+" Probability= "+dProb);
testICTCLAS.ICTCLAS_Exit();
结果输出:
中国 exists?true
中国 Probability= 0.0022491838
7. ICTCLAS_GetUniProb
功能:获取给定单词的unigram概率
方法:float ICTCLAS_GetUniProb(byte[] sWord);
返回:返回概率值
参数:sWord:需要求值的单词
8. nativeProcAPara
方法:public native byte[] nativeProcAPara(byte[] src);
struct result_t{
int start; //start position,词语在输入句子中的开始位置
int length; //length,词语的长度
char sPOS[POS_SIZE];//word type,词性ID值,可以快速的获取词性表
int iPOS;//词性
int word_ID; //如果是未登录词,设成或者-1
int word_type; //区分用户词典:1是用户词典中的词0非用户词典中的词
int weight;// word weight
};
返回:结构向量的指针,由系统管理,用户不干预。
参数:src:源文本
例子:见第12个方法中
9. ICTCLAS_AddUserWord
功能:添加一个单词到用户词典
方法:int ICTCLAS_AddUserWord(const char *sWord);
返回:成功则返回1,否则返回0
参数:sWord:要添加的单词
例子:
ICTCLAS_AddUserWord(“爱思客 n”);//添加词:爱思客\t词性。其中“爱思客”为要添加的词,“n”为词的词性,”\t”为分隔符
10. ICTCLAS_SaveTheUsrDic
功能:将用户词典保存在硬盘上
方法:public native int ICTCLAS_SaveTheUsrDic();
返回:保存成功则返回1,否则返回0;
例子:(部分代码,testICTCLAS是ICTCLAS2010的一个实例)
//动态添加用户词
String str = "爱思客";
testICTCLAS.ICTCLAS_AddUserWord(str.getBytes("GB2312"));
testICTCLAS.ICTCLAS_SaveTheUsrDic();//保存用户词典
11. ICTCLAS_DelUsrWord
功能:从用户词典中删除一个单词
方法:public native int ICTCLAS_DelUsrWord(byte[] sWord);
返回:如果该单词在用户词典中不存在,则返回1,否则返回删除该单词的handle
参数:要删除的单词
例子:
String str = "iThinker";
testICTCLAS.ICTCLAS_AddUserWord(str.getBytes("GB2312"));
testICTCLAS.ICTCLAS_DelUsrWord(str.getBytes("GB2312"));
testICTCLAS.ICTCLAS_SaveTheUsrDic();//保存用户词典
12. ICTCLAS_KeyWord
功能:从一段话中抽取出关键字
方法:public int ICTCLAS_KeyWord(byte[] resultKey, int nCountKey);
返回:返回键号(the key number);
参数:resultKey:the returned key word
nCountKey:the returned key num,可以从以下方式获得:
nativeBytes = testICTCLAS.nativeProcAPara(str.getBytes("GB2312"));
int nativeElementSize = 4 *6+8;//size of result_t in native code,depend on the complie
说明:用这个方法之前必须执行nativeProcAPara方法
例子:
//关键词提取
int nCountKey = 0;
str = "点击下载超女纪敏佳深受观众喜爱。禽流感爆发在非典之后。";
nativeBytes =testICTCLAS.nativeProcAPara(str.getBytes("GB2312"));
int nativeElementSize = 4 * 6 +8;//size of result_t in native code
int nElement = nativeBytes.length / nativeElementSize;
ByteArrayInputStream(nativeBytes));
nativeBytes = new byte[nativeBytes.length];
nCountKey = testICTCLAS.ICTCLAS_KeyWord(nativeBytes, nElement);
Result[] resultArr = new Result[nCountKey];
DataInputStream dis = new DataInputStream(new ByteArrayInputStream(nativeBytes));
for (int i = 0; i < nCountKey; i++){
resultArr[i] = new Result();
resultArr[i].start = Integer.reverseBytes(dis.readInt());
resultArr[i].length = Integer.reverseBytes(dis.readInt());
dis.skipBytes(8);
resultArr[i].posId = Integer.reverseBytes(dis.readInt());
resultArr[i].wordId = Integer.reverseBytes(dis.readInt());
resultArr[i].word_type = Integer.reverseBytes(dis.readInt());
resultArr[i].weight = Integer.reverseBytes(dis.readInt());
}
dis.close();
for (int i = 0; i < resultArr.length; i++){
System.out.println("start=" + resultArr[i].start + ",length=" + resultArr[i].length + "pos=" + resultArr[i].posId + "word=" + resultArr[i].wordId + " weight=" + resultArr[i].weight);
}
testICTCLAS.ICTCLAS_Exit();
12. ICTCLAS_FingerPrint
功能:从段落中提取出一个指纹(the finger print)
返回:失败则返回0,否则返回返回内容的指纹(the finger print)
参数:无
说明:必须在nativeProcAPara方法调用之后
例子:
str = "点击下载超女纪敏佳深受观众喜爱。禽流感爆发在非典之后。";
nativeBytes = testICTCLAS30.nativeProcAPara(str.getBytes("GB2312"));
long finger = testICTCLAS30.ICTCLAS_FingerPrint();//指纹提取
testICTCLAS30.ICTCLAS_Exit();
13. ICTCLAS_SetPOSmap
功能:设置要使用的磁性标注集
方法:public native int ICTCLAS_SetPOSmap(int nPOSmap);
返回:返回1如果执行成功的话,否则返回0
参数:nPOSmap:
ICT_POS_MAP_FIRST 计算所一级标注集
ICT_POS_MAP_SECOND 计算所二级标注集
PKU_POS_MAP_SECOND 北大二级标注集
PKU_POS_MAP_FIRST 北大一级标注集