针对中科院java接口的用法和问题
1.下载附加的中科院分词工具包(要下载的到我的博客里面免费下载就可以)
2.解压后会看到例如以下几个目录
3.把java工程导入eclipse中。点击import。再选择existing project into workspace
4.导入sample文件下的JnaTest_NLPIR的javaproject文件,按确定就可以导入
5.在NlpirTest类下改动路径问题:
(1)我的NLRIR的路径是“E:\数据挖掘\数据挖掘课程作业(大三)\汉语分词20140928\lib\win64\NLRIR”(注意,假设你的系统是32位的。则路径设置为“汉语分词20140928\lib\win32\NLRIR”)
public interface CLibrary extends Library {
// 定义并初始化接口的静态变量
CLibrary Instance = (CLibrary) Native.loadLibrary(
"E:\\数据挖掘\\数据挖掘课程作业(大三)\\汉语分词20140928\\lib\\win64\\NLPIR", CLibrary.class);
(2)改动Data路径(本人data路径在E:\数据挖掘\ICTCLASConf)
easy出问题的地方:
1.必须建立一个新目录名称为“ICTCLASConf”,并把Data文件复制在此目录以下;
2.引用的路径是目录Data的上一个目录路径。(在这里。我的Data目录在“E:\数据挖掘\ICTCLASConf”以下。所以引用此路径)
3.假如你的java编码系统为gbk,则必须依照我图片上的改法。不然会出错:(由于本身这个java编码是utf-8的输出。所以必须将编码改动)
3.1在public interface CLibrary extends Library{}方法里添加一个变量例如以下图
3.2把init_flag的值改为例如以下图所看到的的样子。
6.最后执行调试就能够得出结果了。
(有什么不懂的找我把)
最后贴出我的代码:
package code; import java.io.UnsupportedEncodingException;
import com.sun.jna.Library;
import com.sun.jna.Native; public class NlpirTest { // 定义接口CLibrary。继承自com.sun.jna.Library
public interface CLibrary extends Library {
// 定义并初始化接口的静态变量
CLibrary Instance = (CLibrary) Native.loadLibrary(
"win64/NLPIR", CLibrary.class); public int NLPIR_Init(String sDataPath, int encoding,
String sLicenceCode); public String NLPIR_ParagraphProcess(String sSrc, int bPOSTagged); public String NLPIR_GetKeyWords(String sLine, int nMaxKeyLimit,
boolean bWeightOut);
public String NLPIR_GetFileKeyWords(String sLine, int nMaxKeyLimit,
boolean bWeightOut);
public int NLPIR_AddUserWord(String sWord);//add by qp 2008.11.10
public int NLPIR_DelUsrWord(String sWord);//add by qp 2008.11.10
public String NLPIR_GetLastErrorMsg();
public void NLPIR_Exit();
} public static String transString(String aidString, String ori_encoding,
String new_encoding) {
try {
return new String(aidString.getBytes(ori_encoding), new_encoding);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
} public static void main(String[] args) throws Exception {
String argu = "ICTCLASConf";
// String system_charset = "GBK";//GBK----0
String system_charset = "UTF-8";
int charset_type = 1; int init_flag = CLibrary.Instance.NLPIR_Init(argu, charset_type, "0");
String nativeBytes = null; if (0 == init_flag) {
nativeBytes = CLibrary.Instance.NLPIR_GetLastErrorMsg();
System.err.println("初始化失败! fail reason is "+nativeBytes);
return;
} String sInput = "据悉,质检总局已将最新有关情况再次通报美方,要求美方加强对输华玉米的产地来源、运输及仓储等环节的管控措施,有效避免输华玉米被未经我国农业部安全评估并批准的转基因品系污染。"; //String nativeBytes = null;
try {
nativeBytes = CLibrary.Instance.NLPIR_ParagraphProcess(sInput, 1); System.out.println("分词结果为: " + nativeBytes); CLibrary.Instance.NLPIR_AddUserWord("要求美方加强对输 n");
CLibrary.Instance.NLPIR_AddUserWord("华玉米的产地来源 n");
nativeBytes = CLibrary.Instance.NLPIR_ParagraphProcess(sInput, 1);
System.out.println("添加用户词典后分词结果为: " + nativeBytes); CLibrary.Instance.NLPIR_DelUsrWord("要求美方加强对输");
nativeBytes = CLibrary.Instance.NLPIR_ParagraphProcess(sInput, 1);
System.out.println("删除用户词典后分词结果为: " + nativeBytes); int nCountKey = 0;
String nativeByte = CLibrary.Instance.NLPIR_GetKeyWords(sInput, 10,false); System.out.print("关键词提取结果是:" + nativeByte); // nativeByte = CLibrary.Instance.NLPIR_GetFileKeyWords("D:\\NLPIR\\feedback\\huawei\\5341\\5341\\产经广场\\2012\\5\\16766.txt", 10,false);
//
// System.out.print("关键词提取结果是:" + nativeByte);
//
//
//
// CLibrary.Instance.NLPIR_Exit(); } catch (Exception ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
} }
}
针对中科院java接口的用法和问题的更多相关文章
- hadoop2.5.2学习及实践笔记(六)—— Hadoop文件系统及其java接口
文件系统概述 org.apache.hadoop.fs.FileSystem是hadoop的抽象文件系统,为不同的数据访问提供了统一的接口,并提供了大量具体文件系统的实现,满足hadoop上各种数据访 ...
- python面向对象进阶 反射 单例模式 以及python实现类似java接口功能
本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 类的成员 类的成员可以分为三大类:字段.方法和特性. 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存 ...
- java接口与抽象类的区别
接口可以是标志接口,里面没有任何常量和方法. 抽象类不一定必须有抽象方法,也可也没有方法,但含抽象方法的类必须被声明为抽象类. 在抽象层次结构中,Java接口在最上面,然后紧跟着抽象类,然后是一般类. ...
- java接口的理解
接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,[接口名] [对象名]=new [实现接口的类],这样你像用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口 ...
- java 接口详解
定义接口 接口继承和实现继承的规则不同,一个类只有一个直接父类,但可以实现多个接口.Java 接口本身没有任何实现,只描述 public 行为,因此 Java 接口比 Java 抽象类更抽象化.Jav ...
- java接口签名(Signature)实现方案续
一.前言 由于之前写过的一片文章 (java接口签名(Signature)实现方案 )收获了很多好评,此次来说一下另一种简单粗暴的签名方案.相对于之前的签名方案,对body.paramenter.pa ...
- java接口签名(Signature)实现方案
预祝大家国庆节快乐,赶快迎接美丽而快乐的假期吧!!! 一.前言 在为第三方系统提供接口的时候,肯定要考虑接口数据的安全问题,比如数据是否被篡改,数据是否已经过时,数据是否可以重复提交等问题.其中我认为 ...
- Java 接口多继承
按照理解,一般都是说Java 类是单继承,但可以实现多个接口.但是可以通过接口来实现类的多继承.(如何通过接口来实现多继承???) 那么就一直以为Java里面是单继承,今天看FutureTask源码的 ...
- Apache Solr 初级教程(介绍、安装部署、Java接口、中文分词)
Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...
随机推荐
- [Pycharm] Interpreter setting in Pycharm
From: http://blog.csdn.net/u013088062/article/details/50135135 From: http://blog.csdn.net/u013088062 ...
- iOS 调用第三方地图进行导航
//支持的地图 { _model = model; //支持的地图 NSMutableArray *maps = [NSMutableArray array]; //苹果原生地图-苹果原生地图方法和其 ...
- 微信小程序 - 多地点标识(map)
演示如下: wxml <map id="map" scale="{{scale}}" controls="{{controls}}" ...
- HDU 3917 Road constructions(最小割---最大权闭合)
题目地址:HDU 3917 这题简直神题意... 题目本身就非常难看懂不说..即使看懂了.也对这题意的逻辑感到无语...无论了.. 就依照那题意上说的做吧... 题意:给你n个城市,m个公司.若干条可 ...
- 复选框input:checkbox
复选框 CreateTime--2017年6月5日14:04:55Author:Marydon 五.复选框 (一)语法 <input type="checkbox" /& ...
- 【Java】Java_03第一个Java程序
第一个JAVA程序的编写和运行 1.使用记事本编辑 public class Welcome{ public static void main(String[] agrs){ System.out.p ...
- (转)JavaScript: in, hasOwnProperty, delete, for/in
in 运算符 判断对象是否拥有某一属性只要对象拥有该属性,就会返回true,否则false var point = { x:1, y:1 };alert( 'x' in point ); //tru ...
- shell脚本监控调度器/proc进程是否运行(嵌套循环)
/proc/<pid>/schedstat $/schedstat First: , Second:time spent waiting on a runqueue,这个值与上面的se.w ...
- 递归 recursive
递归函数是在一个函数通过名字调用自身的情况下构成的. function factorail(num) { if(num <= 1) { return 1; } else{ return num ...
- ExtjS学习--------Ext.define定义类
Ext类Class的配置项:(注:Extjs的 的中文版帮助文档下载地址:http://download.csdn.net/detail/z1137730824/7748893 ExtJS配置文件和演 ...