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的JNI调用接口说明相关推荐

  1. Android Jni 调用

    Chap1:JNI完全手册... 3 Chap2:JNI-百度百科... 11 Chap 3:javah命令帮助信息... 16 Chap 4:用javah产生一个.h文件... 17 Chap5:j ...

  2. 【Android】JNI调用(完整版)

    原文出处:http://blog.csdn.net/kangyaping/article/details/6584027#t0 Chap1:JNI完全手册... 3 Chap2:JNI-百度百科... ...

  3. jni 从c传递map到java_java_jni 本地调用接口DLL的编写样本,涉及数组传递,相关的 和C程序均已包括。 Develop 256万源代码下载- www.pudn.com...

    文件名称: java_jni下载  收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 8055 KB 上传时间: 2016-04-16 下载次数: 0 提 供 者: 普云 ...

  4. ictclas包 java_ICTCLAS分词系统Java调用接口在Eclipse中的安装

    ICTCLAS分词系统Java调用接口在Eclipse中的安装 实验环境:JDK1.5.Eclipse3.1.XP操作系统 分词系统Java接口解压包:d:\fenci(http://www.nlp. ...

  5. ictclas包 java_Java通过JNI调用ICTCLAS中文分词包的方法

    1)从网络上下载ICTCLAS分词包的Java JNI版本 2)新建Java项目,类代码为: public class Exec { public static void main(String[] ...

  6. jni 调用java接口_JNI 调用 JAVA 接口

    JNI 调用 JAVA 接口 介绍 JNI 是本地语言编程接口.它允许运行在JVM中的Java代码和用C.C++或汇编写的本地代码相互操作. 由于一些加密等情况的需要,需要在 so 层获取一些信息用于 ...

  7. Android通过jni调用本地c/c++接口方法总结

    网上有网友问android的原生应用,上层java代码如何通过jni调用本地的c/c++接口或第三方动态库 ?之前搞过android应用开发和底层c/c++接口开发都是一个人搞定,觉得还是蛮简单的.其 ...

  8. java jni调用dll文件_Java通过jni调用动态链接库

    (1)JNI简介 JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++).从Java1.1开始,JNI标准成为java ...

  9. java在主程序修改函数输出,Java通过JNI调用CUDA

    --NG 这段时间因为工作需要,要用到在java中调用cuda程序,但是令人蛋疼的是网上这方面的资料几乎没有,所以只好我自己摸索.我的想法是通过java的JNI接口调用cuda,但是很明显正常情况下是 ...

最新文章

  1. 【PAT乙级】1049 数列的片段和 (20 分)
  2. 小区社交应用:如何打破近在眼前的物理障碍和陌生感?
  3. 计算机视觉中的自监督表示学习近期进展
  4. fetch vue读取json文件_前端笔记——尝试理解并在JavaScript中使用Fetch()
  5. 【 .NET Core 3.0 】框架之九 || 依赖注入 与 IoC
  6. 2021年微信视频号生态趋势调查报告
  7. 遇到了消息堆积,但是问题不大
  8. springboot细节挖掘(集成ElasticSearch)
  9. Delphi无法修改Clientdataset的字段的解决方法
  10. windows server 2003安装pc套件ovi套件全过程?
  11. NB50/60 TJ1/TK1 模具 黑苹果保姆级教程整理
  12. 全外显子捕获测序的杂交和封闭原理
  13. SM74HC595D电路级联教程
  14. 关闭Windows Defender工具
  15. 华为Mate40Pro和华为Mate40Pro+ 哪个好
  16. WebRTC 报错:Failed to set remote offer sdp: Called with SDP without DTLS fingerprint
  17. SPA项目开发之登录
  18. 在医疗行业中,FPGA扮演什么角色?
  19. 百度和360的关键词提交
  20. Clair助力Docker镜像安全

热门文章

  1. 设计模式六大原则——单一职责原则(SRP)
  2. 代写演讲稿的写作要求有哪些
  3. 网络对抗技术 实验三
  4. [terry笔记]Python字符串
  5. 浙大版《C语言程序设计(第3版)》题目集习题4-11 兔子繁衍问题 (15 分)
  6. 不同IP网段的PLC进行S7通信(PUT_GET)的具体步骤
  7. java8中的Stream用法详解
  8. 提取ansible hosts分组IP
  9. 为什么天蝎座出互联网大佬,我来告诉你原因!
  10. java英语面试自我介绍_java的英文面试自我介绍