针对中科院java接口的使用方法和问题

本文介绍如何利用中科院分词工具包在Java环境下实现中文分词功能,包括下载工具包、配置环境、调整编码方式以及运行示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.下载附加的中科院分词工具包(要下载的到我的博客里面免费下载即可)

 

2.解压后会看到如下几个文件夹

 

3.把java工程导入eclipse中,点击import,再选择existing project into workspace


4.导入sample文件下的JnaTest_NLPIR的java工程文件,按确定即可导入


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)

 

容易出问题的地方:

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();
		}

	}
}


### 中科院服务器使用教程 #### 3.1 登录与环境设置 为了登录到中科院的服务器,通常需要通过SSH协议连接。确保本地计算机已安装并配置好SSH客户端工具。对于Windows用户来说,可以考虑使用PuTTY这样的图形化SSH客户端。 ```bash ssh username@server_address ``` 输入上述命令时需替换`username`为分配给用户的账户名以及`server_address`为目标服务器地址[^1]。 #### 3.2 文件传输操作 文件上传下载可以通过SFTP或SCP实现。这里推荐WinSCP作为Windows平台上便捷高效的SFTP/SCP客户端软件。另外也可以直接利用命令行下的scp指令来进行简单的文件传送工作: ```bash # 将本地文件发送至远程目录 scp /path/to/local/file username@server:/remote/path/ # 获取远程文件保存于当前路径下 scp username@server:/remote/path/filename . ``` #### 3.3 软件包管理与依赖项解决 当涉及到特定应用程序或者库的时候,可能需要用到包管理系统来简化安装流程。例如,在基于Debian系发行版(如Ubuntu)上的服务器环境中,apt-get是一个常用的工具;而对于RedHat系列,则应选用yum。 ```bash sudo apt-get update && sudo apt-get install package_name # Debian-based systems sudo yum install package_name # Red Hat-based systems ``` #### 3.4 配置CUDA及深度学习框架 如果计划在该服务器上开展涉及GPU加速的任务,比如训练神经网络模型等,那么还需要额外关注CUDA Toolkit及相关驱动程序的正确安装情况。具体步骤如下所示: 授予执行权限并启动安装过程: ```bash chmod +x cuda_x.x.y_zzz_linux-run sh cuda_x.x.y_zzz_linux-run ``` 注意这里的版本号应当依据实际需求选取最新稳定版次[^3]。 #### 3.5 远程桌面访问(可选) 针对某些特殊应用场景,或许会希望获得更加直观的操作界面而非仅限于终端模式。此时可通过X Window System配合VNC服务达成目的。不过考虑到带宽消耗等因素的影响,除非必要否则不建议频繁开启此功能。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洛克-李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值