当前位置:   article > 正文

中科院分词系统 java_中科院NLPIR中文分词java版

中科院 在线分词

原文:http://blog.csdn.net/k21325/article/details/53052855

摘要:为解决中文搜索的问题,最开始使用PHP版开源的SCWS,但是处理人名和地名时,会出现截断人名地名出现错误。开始使用NLPIR分词,在分词准确性上效果要比SCWS好。本文介绍如何在windows系统下编译Java ,生成可以执行的jar文件。

463a179eb426cc0ed8c2ecbc3825474b.png

NLPIR的下载地址:

GitHub的地址:

两个版本有一些不同,本文将分别讲解如何利用Eclipse建立工程。

一、NLPIR官方版本

下载后文件夹中bin目录,如下图所示,其中NLPIR_WinDemo.exe是一个NLPIR的演示程序,可以尝试运行,了解NLPIR的功能。

0372f62ced5ebf2bfec045855c95f2df.png

工程源码在sample目录下,包含C、C++、Hadoop、JAVA、Python等语言示例。

用Eclipse新建一个工程导入JAVA工程目录JnaTest_NLPIR,

(1)Eclipse -> File->import

0c78468284090e9be69be43d6acd7f0d.png

(2)选择JnaTest_NLPIR所在的路径,点击Finish

66246ca93d4d3acbbb7d90c7f392f996.png

(3)查看Eclipse工程

da3c40e7de603faddff0b8c6b9b88693.png

(4)NlpirTest.java文件中包含main函数,下面的语句初始化NLPIR需要的库文件

c0ca915f9fdcb9be81be075ad3be6360.png

CLibrery类是包含在NlpirTest.java文件中,

CLibrary Instance = (CLibrary) Native.loadLibrary("H:\\workspace\\ictclas\\1\\ICTCLAS2015\\lib\\win64\\NLPIR", CLibrary.class);

函数loadLibrary需要传递库文件位置,源码提供了多种语言类库,我们的工程需要加载win64类库,该文件夹内容如下,

04c711ec9ed722f735ad7a064a5c6c78.png

(5)加载分词数据Data文件夹路径

String argu = "H:\\workspace\\ictclas\\1\\ICTCLAS2015";

String system_charset = "UTF-8";

int charset_type = 1;

int init_flag = CLibrary.Instance.NLPIR_Init(argu, charset_type, "0");

H:\\workspace\\ictclas\\1\\ICTCLAS2015是Data文件夹的父文件夹。

这步骤完成后,你就可以调试代码了。有关API可以阅读手册。

二、github上下载的代码

目录中包含了NLPIR SDK目录,每一个目录是NLPIR提供的一个组件。NLPIR-ICTCLAS目录包含NLPIR组件的代码。

在Eclipse中导入ICTCLAS_java工程,工程目录如下图

8c0358b1f8d92abac3ac5967361f4c3a.png

工程中没有填写main函数,可以在NlpirTest.java文件中,加入main函数

public class NlpirTest {

public static void main(String[] args) throws Exception{

NlpirTest t = new NlpirTest();

t.testParticiple();

}

public void testParticiple() throws IOException {

.....

}

.......

}

和官方网站不同,加载库文件可以自动判断系统类型,在工程当前目录下查找库文件。“工程当前目录”的win32、win64、linux32、linux64都是包含库文件的文件夹。

同时会自动加载“工程当前目录“下Data问佳佳为分词数据目录。这些目录设置好,就可以进行调试工作了。

三、在github中"查找关键字"的组件Key_Extract

工程目录如下,

2aada4378fcfc4513a9b30b0270f4286.png

project中提供java版本的示例代码,利用Eclipse导入工程

954064c553091d49072d71016d867d6c.png

同样在KeyExtractor.java文件中添加main函数。KeyExtract_GetKeyWords的第一个参数是需要提取关键字的文本,第二参数是关键字的个数。

public static void main(String[] args) {

String keyWordsStr = CLibraryKeyExtractor.instance.KeyExtract_GetKeyWords(args[0], 10, true);

System.out.println(keyWordsStr);

CLibraryKeyExtractor.instance.KeyExtract_Exit();

}

在工程的当前文件夹下,有一个Data目录,是分词和提取关键词需要用到的分词数据。需要将需要的license考入到这个文件夹。你可以不用区分用到哪一个user文件,建议把全部文件都考到当前工程目录Data文件夹中。

90a94a2a8c15344fa4825caa8db52be6.png

这些设置完成,在Eclipse中传入参数,菜单项run-->run configure。

1264fe3a81aa72a24677a18b865523c8.png

四、导出jar

Eclipse工程目录上,右键选择Export

dcbde59466a6fa586c10b8fbd2563a97.png

选择runnablejar,生成jar文件

efa8a8619019b394276fdb1761c654df.png

之后就可以利用cmd执行,传递参数,效果如下

4d43f99f8e02b9941559d5e530f516cc.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/344730
推荐阅读
相关标签
  

闽ICP备14008679号