Java调用NLPIR汉语分词系统

简介:

NLPIR工具

  支持自定义词表;

  可以离线使用;

下载地址:http://ictclas.nlpir.org/newsdownloads?DocId=389

在线演示:http://ictclas.nlpir.org/nlpir/

自然语言处理与信息检索共享平台:(nlpir相关的一些软件、文档、论文、语料库等资源)http://www.nlpir.org/

上边这个地址写的信息比较详细丰富,但是万事开头难,很多同学不知道怎么具体应该调用?下边我就把几个步骤简单介绍一下:

Step1、下载

我下载的文件:20141230101836_ICTCLAS2015.zip

Step2、解压

解压后的目录:D:\20141230101836_ICTCLAS2015

Step3、运行调用例子

NLPIR调用的例子在sample目录下,以Java调用的例子(JnaTest_NLPIR)为例:

(1)在Eclipse中导入JnaTest_NLPIR项目;

(2)打开src/code/NlpirTest.java文件,修改第16行第44行的代码(就是dll的目录,例子中写的是错的);

()我下载的这个版本,在win7 64位机器上,win64目录下的dll无法调用,但是win32目录下的dll可以使用;

复制代码
 1 package code;
 2 
 3 import java.io.UnsupportedEncodingException;
 4 
 5 import utils.SystemParas;
 6 
 7 import com.sun.jna.Library;
 8 import com.sun.jna.Native;
 9 
10 public class NlpirTest {
11 
12     // 定义接口CLibrary,继承自com.sun.jna.Library
13     public interface CLibrary extends Library {
14         // 定义并初始化接口的静态变量
15         CLibrary Instance = (CLibrary) Native.loadLibrary(
16                 "D:\\20141230101836_ICTCLAS2015\\ICTCLAS2015\\lib\\win32\\NLPIR", CLibrary.class);
17         
18         public int NLPIR_Init(String sDataPath, int encoding,
19                 String sLicenceCode);
20                 
21         public String NLPIR_ParagraphProcess(String sSrc, int bPOSTagged);
22 
23         public String NLPIR_GetKeyWords(String sLine, int nMaxKeyLimit,
24                 boolean bWeightOut);
25         public String NLPIR_GetFileKeyWords(String sLine, int nMaxKeyLimit,
26                 boolean bWeightOut);
27         public int NLPIR_AddUserWord(String sWord);//add by qp 2008.11.10
28         public int NLPIR_DelUsrWord(String sWord);//add by qp 2008.11.10
29         public String NLPIR_GetLastErrorMsg();
30         public void NLPIR_Exit();
31     }
32 
33     public static String transString(String aidString, String ori_encoding,
34             String new_encoding) {
35         try {
36             return new String(aidString.getBytes(ori_encoding), new_encoding);
37         } catch (UnsupportedEncodingException e) {
38             e.printStackTrace();
39         }
40         return null;
41     }
42 
43     public static void main(String[] args) throws Exception {
44         String argu = "D:\\20141230101836_ICTCLAS2015\\ICTCLAS2015";
45         // String system_charset = "GBK";//GBK----0
46         String system_charset = "UTF-8";
47         int charset_type = 1;
48         
49         int init_flag = CLibrary.Instance.NLPIR_Init(argu, charset_type, "0");
50         String nativeBytes = null;
51 
52         if (0 == init_flag) {
53             nativeBytes = CLibrary.Instance.NLPIR_GetLastErrorMsg();
54             System.err.println("初始化失败!fail reason is "+nativeBytes);
55             return;
56         }
57 
58         String sInput = "据悉,质检总局已将最新有关情况再次通报美方,要求美方加强对输华玉米的产地来源、运输及仓储等环节的管控措施,有效避免输华玉米被未经我国农业部安全评估并批准的转基因品系污染。";
59 
60         //String nativeBytes = null;
61         try {
62             nativeBytes = CLibrary.Instance.NLPIR_ParagraphProcess(sInput, 1);
63 
64             System.out.println("分词结果为: " + nativeBytes);
65             
66             CLibrary.Instance.NLPIR_AddUserWord("要求美方加强对输 n");
67             CLibrary.Instance.NLPIR_AddUserWord("华玉米的产地来源 n");
68             nativeBytes = CLibrary.Instance.NLPIR_ParagraphProcess(sInput, 1);
69             System.out.println("增加用户词典后分词结果为: " + nativeBytes);
70             
71             CLibrary.Instance.NLPIR_DelUsrWord("要求美方加强对输");
72             nativeBytes = CLibrary.Instance.NLPIR_ParagraphProcess(sInput, 1);
73             System.out.println("删除用户词典后分词结果为: " + nativeBytes);
74             
75             
76             int nCountKey = 0;
77             String nativeByte = CLibrary.Instance.NLPIR_GetKeyWords(sInput, 10,false);
78 
79             System.out.print("关键词提取结果是:" + nativeByte);
80 
81             nativeByte = CLibrary.Instance.NLPIR_GetFileKeyWords("D:\\NLPIR\\feedback\\huawei\\5341\\5341\\产经广场\\2012\\5\\16766.txt", 10,false);
82 
83             System.out.print("关键词提取结果是:" + nativeByte);
84 
85             
86 
87             CLibrary.Instance.NLPIR_Exit();
88 
89         } catch (Exception ex) {
90             // TODO Auto-generated catch block
91             ex.printStackTrace();
92         }
93 
94     }
95 }
复制代码

Step4、其他功能和接口,可以查看doc目录下的使用手册。

 


本文转自ZH奶酪博客园博客,原文链接:http://www.cnblogs.com/CheeseZH/p/4585477.html,如需转载请自行联系原作者

相关文章
|
2天前
|
JavaScript Java BI
Java毕设之新生报到系统的设计与实现
Java毕设之新生报到系统的设计与实现
17 3
|
2天前
|
Java
排课系统【JSP+Servlet+JavaBean】(Java课设)
排课系统【JSP+Servlet+JavaBean】(Java课设)
16 5
|
1天前
|
存储 运维 Java
java云his系统源码一站式诊所SaaS系统Java版云HIS系统 八大特点
HIS系统采用面向技术架构的分析与设计方法,应用多层次应用体系架构设计,运用基于构件技术的系统搭建模式与基于组件模式的系统内核结构。通过建立统一接口标准,实现数据交换和集成共享,通过统一身份认证和授权控制,实现业务集成、界面集成。
28 1
|
2天前
|
监控 前端开发 Java
Java公立医院绩效考核管理系统 医院绩效考核系统的优势有哪些? 
医院绩效管理系统解决方案紧扣新医改形势下医院绩效管理的要求,以“工作量为基础的考核方案”为核心思想,结合患者满意度、服务质量、技术难度、工作效率、医德医风等管理发展目标的考核体系,形成医院的内部绩效考核与分配机制,通过信息化手段为绩效考评管理人员实施医院绩效考评工作提供了有效工具,扩展了信息管理范围,增加了信息分析的广度与深度。这不仅使绩效评价工作更加科学化、规范化和自动化,而且从根本上改变了绩效评估工作方式,实现了绩效评价数据网络化采集,评价结果透明化管理,奖金分配数据自动化生成,极大地提高了绩效评估的全面性、准确性、时效性、公正性。从而推进医院绩效管理的专业化、规范化和精细化管理,充分发挥
14 0
|
2天前
|
数据采集 前端开发 Java
Java医院绩效考核系统源码maven+Visual Studio Code一体化人力资源saas平台系统源码
医院绩效解决方案包括医院绩效管理(BSC)、综合奖金核算(RBRVS),涵盖从绩效方案的咨询与定制、数据采集、绩效考核及反馈、绩效奖金核算到科到组、分配到员工个人全流程绩效管理;将医院、科室、医护人员利益绑定;全面激活人才活力;兼顾质量和效益、长期与短期利益;助力医院降本增效,持续改善、优化收入、成本结构。
15 0
|
2天前
|
存储 Java API
java对接IPFS系统-以nft.storage为列
java对接IPFS系统-以nft.storage为列
14 2
|
2天前
|
监控 前端开发 Java
Java基于B/S医院绩效考核管理平台系统源码 医院智慧绩效管理系统源码
医院绩效考核系统是一个关键的管理工具,旨在评估和优化医院内部各部门、科室和员工的绩效。一个有效的绩效考核系统不仅能帮助医院实现其战略目标,还能提升医疗服务质量,增强患者满意度,并促进员工的专业成长
19 0
|
2天前
|
Java 云计算
Java智能区域医院云HIS系统SaaS源码
云HIS提供标准化、信息化、可共享的医疗信息管理系统,实现医患事务管理和临床诊疗管理等标准医疗管理信息系统的功能。优化就医、管理流程,提升患者满意度、基层首诊率,通过信息共享、辅助诊疗等手段,提高基层医生的服务能力构建和谐的基层医患关系。
38 2
|
2天前
|
前端开发 Java 关系型数据库
Java医院绩效考核系统源码B/S架构+springboot三级公立医院绩效考核系统源码 医院综合绩效核算系统源码
作为医院用综合绩效核算系统,系统需要和his系统进行对接,按照设定周期,从his系统获取医院科室和医生、护士、其他人员工作量,对没有录入信息化系统的工作量,绩效考核系统设有手工录入功能(可以批量导入),对获取的数据系统按照设定的公式进行汇算,且设置审核机制,可以退回修正,系统功能强大,完全模拟医院实际绩效核算过程,且每步核算都可以进行调整和参数设置,能适应医院多种绩效核算方式。
31 2
|
2天前
|
JavaScript 小程序 Java
基于java的少儿编程网上报名系统
基于java的少儿编程网上报名系统
13 2