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,如需转载请自行联系原作者

相关文章
|
15天前
|
存储 Java 关系型数据库
社区医院管理服务系统【GUI/Swing+MySQL】(Java课设)
社区医院管理服务系统【GUI/Swing+MySQL】(Java课设)
23 1
|
4天前
|
JavaScript Java 测试技术
基于Java的教师上课系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的教师上课系统的设计与实现(源码+lw+部署文档+讲解等)
21 0
|
5天前
|
JavaScript Java 测试技术
基于Java的生鲜在线销售系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的生鲜在线销售系统的设计与实现(源码+lw+部署文档+讲解等)
22 1
|
5天前
|
JavaScript Java 测试技术
基于Java的题库管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的题库管理系统的设计与实现(源码+lw+部署文档+讲解等)
19 0
|
5天前
|
JavaScript Java 测试技术
基于Java的高校勤工助学系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的高校勤工助学系统的设计与实现(源码+lw+部署文档+讲解等)
17 1
|
5天前
|
JavaScript Java 测试技术
基于Java的餐厅点餐系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的餐厅点餐系统的设计与实现(源码+lw+部署文档+讲解等)
23 1
|
5天前
|
JavaScript Java 测试技术
基于Java的商城系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的商城系统的设计与实现(源码+lw+部署文档+讲解等)
17 0
|
6天前
|
JavaScript Java 测试技术
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
25 0
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
|
7天前
|
人工智能 小程序 Java
JAVA开发智慧学校系统源码+人脸电子班牌布局
智慧校园是通过利用物联网,大数据技术来改变师生和校园资源相互交互的方式,以便提高交互的明确性、灵活性和响应速度,从而实现智慧化服务和管理的校园模式。
|
8天前
|
人工智能 小程序 Java
Java智慧校园系统源码 微信小程序+电子班牌
通过设备管理对百纳智慧校园的智慧班牌以及百纳智慧屏(校牌)进行统一集中式管理,支持浏览所有设备的基本信息以及在离线状态,支持添加设备、设备一键开关机、一键重启、设置节假日开关机时间、设置日常开关机时间、远程班牌截屏、远程班牌升级等操作。