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接口的用法和问题的更多相关文章

  1. hadoop2.5.2学习及实践笔记(六)—— Hadoop文件系统及其java接口

    文件系统概述 org.apache.hadoop.fs.FileSystem是hadoop的抽象文件系统,为不同的数据访问提供了统一的接口,并提供了大量具体文件系统的实现,满足hadoop上各种数据访 ...

  2. python面向对象进阶 反射 单例模式 以及python实现类似java接口功能

    本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 类的成员 类的成员可以分为三大类:字段.方法和特性. 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存 ...

  3. java接口与抽象类的区别

    接口可以是标志接口,里面没有任何常量和方法. 抽象类不一定必须有抽象方法,也可也没有方法,但含抽象方法的类必须被声明为抽象类. 在抽象层次结构中,Java接口在最上面,然后紧跟着抽象类,然后是一般类. ...

  4. java接口的理解

    接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,[接口名] [对象名]=new [实现接口的类],这样你像用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口 ...

  5. java 接口详解

    定义接口 接口继承和实现继承的规则不同,一个类只有一个直接父类,但可以实现多个接口.Java 接口本身没有任何实现,只描述 public 行为,因此 Java 接口比 Java 抽象类更抽象化.Jav ...

  6. java接口签名(Signature)实现方案续

    一.前言 由于之前写过的一片文章 (java接口签名(Signature)实现方案 )收获了很多好评,此次来说一下另一种简单粗暴的签名方案.相对于之前的签名方案,对body.paramenter.pa ...

  7. java接口签名(Signature)实现方案

    预祝大家国庆节快乐,赶快迎接美丽而快乐的假期吧!!! 一.前言 在为第三方系统提供接口的时候,肯定要考虑接口数据的安全问题,比如数据是否被篡改,数据是否已经过时,数据是否可以重复提交等问题.其中我认为 ...

  8. Java 接口多继承

    按照理解,一般都是说Java 类是单继承,但可以实现多个接口.但是可以通过接口来实现类的多继承.(如何通过接口来实现多继承???) 那么就一直以为Java里面是单继承,今天看FutureTask源码的 ...

  9. Apache Solr 初级教程(介绍、安装部署、Java接口、中文分词)

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

随机推荐

  1. 【千纸诗书】—— PHP/MySQL二手书网站后台开发之基础知识

    前言: 在具体回顾每一个功能的实现前,还是有必要先温习一些项目涉及到的PHP.MySQL[语法基础].项目github地址:https://github.com/66Web/php_book_stor ...

  2. objc语言的运行时处理

    在Objective-C中,消息是通过objc_msgSend()这个runtime方法及相近的方法来实现的.这个方法需要一个target,selector,还有一些参数.理论上来说,编译器只是把消息 ...

  3. 转:http2的资料与使用

    https://imququ.com/post/http2-resource.html

  4. msSQL使用表参数

    使用表参数 表变量(Table Parameters)可以将整个表数据汇集成一个参数传递给存储过程或SQL语句.它的注意性能开销是将数据汇集成参数(O(数据量)). 定义了一个表参数jk_users_ ...

  5. Jacoco覆盖率工具使用之maven篇

    说明 之前的文章已经介绍过如何使用apacheant 执行jacoco工具,下面开始介绍如何使用maven使用jacoco工具. 1.首先新建一个maven项目       如图所示:        ...

  6. mod_tile编译出错 -std=c++11 or -std=gnu++11

    make[1]: 正在进入文件夹 /home/wml/src/mod_tile-master' depbase=echo src/gen_tile.o | sed 's|[^/]*$|.deps/&a ...

  7. 【Python3 爬虫】09_正则表达式(re.math()、re.search()、re.sub()、全局匹配函数)

    re.math()函数 从源字符串的起始位置匹配一个模式 语法:re.match(pattern, string, flag) 第一个参数代表对应的正则表达式,第二个参数代表对应的源字符,第三个参数是 ...

  8. 【Java】Java_05 标识符与字符集

    1.标识符 用作给变量.类和方法命名.注意: 表示类名的标识符用大写字母开始.如:Man, GoodMan 表示方法和变量的标识符用小写字母开始,后面的描述性词以大写开始.green(),greenC ...

  9. Linux 时间修改--date -s命令

    Linux 时间修改 不重启修改时区 一.修改linux的时间root使用date指令:date -s1.只修改日期,不修改时间,输入:Linux代码 1. date -s 2007-08-03 da ...

  10. 控制应用程序重启,外部程序C# 实例

    第一步:新建一个控制台项目,作为关闭当前应用程序的调用程序. using System; using System.Configuration; using System.Diagnostics; n ...