一、前期准备:

1、下载最新版本的资源包:CTCLAS20160405171043_ICTCLAS2016分词系统下载包

2、下载最新版本的licence:https://github.com/NLPIR-team/NLPIR/tree/master/License

二、调试程序

1、将JnaTest_NLPIR工程工程导入到MyEclipse。

2、修改NLPIR目录

  这个与操作系统有关,在\汉语分词20140928\lib\操作系统目录下。我的是win7 64bit,所以在汉语分词20140928\libwin64\目录下。写路径的时候注意特殊字符的转义,而且windows路径是反斜杠“\”,注意改成形如这样:“E://test//汉语分词20140928//lib//win64//NLPIR”,文件名不加后缀名。

3、修改Data文件夹目录

  String argu = new File("").getAbsolutePath();  //Data文件夹在工程目录下

  Data文件不在工程目录下,写路径要注意编码问题,我程序设置的系统编码是GBK,但是工程的编码设置的是utf-8,打印出来就能看出来路径中的中文都是乱码,当然会导致无法加载类或者是找不到配置文件。将所有设置编码的地方都设置成一样的编码,保证不会有错。工程的编码可以是utf-8,只要程序中所有地方都引用同一个系统编码就可以。

  我第二次做这个实验鬼抽风般File("").getAbsolutePath();得到的是乱码(没有中文也有乱码)。还是IDE的编码设置等和其他一些编码设置问题,这个我实在是郁闷了。new File("").getAbsolutePath().getBytes("GBK")也许有效~我设置了工程的编码是GBK,但是打开工程文件.project是里面写了utf-8,我不清楚这有没有关系,实在不行,用命令行调试吧。

三、运行程序

  如果你运气够好,没有出现什么幺蛾子,没有乱改程序,这时程序就可以正常运行了。

  运行结果:

  分词结果为: 据悉/v ,/wd 质检/vn 总局/n 已/d 将/d 最新/a 有关/vn 情况/n 再次/d 通报/v 美方/n ,/wd 要求/v 美方/n 加强/v 对/p 输/v 华/b 玉米/n 的/ude1 产地/n 来源/n 、/wn 运输/vn 及/cc 仓储/vn 等/udeng 环节/n 的/ude1 管/v 控/v 措施/n ,/wd 有效/ad 避免/v 输/v 华/b 玉米/n 被/pbei 未经/d 我国/n 农业部/nt 安全/an 评估/vn 并/cc 批准/v 的/ude1 转基因/n 品系/n 污染/vn 。/wj 
  关键词提取结果是:农业部#评估#仓储#污染#

  如果你像我一样乱改了程序或者运气实在太差,sorry,你可能初始化失败。初始化失败的原因可能有:

  1、licence过期。解决办法是下载最新的licence和修改系统时间。

  2、无法找到Configure.xml。可能你有个地方乱改字符集或者字符集代码。请检查所有设置字符集的地方N遍。我在初始化ICTCLAS_Init时,将new File("").getAbsolutePath().getBytes("字符集")作为参数传递就可以正确运行了。

  3、其他错误请参见错误日志的输出。

四、分析其他文件

1、字符流缓冲类输入输出文件

 File file = new File("文件路径");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String sInput = bufferedReader.readLine();
File outFile = new File("输出结果路径+输出结果.txt");
FileWriter fileWiter = new FileWriter(outFile);
BufferedWriter bufferedWriter = new BufferedWriter(fileWiter);
while((sInput = bufferedReader.readLine())!=null){
 String nativeBytes = null;
 try {
  nativeBytes = CLibrary.Instance.NLPIR_ParagraphProcess(sInput, 3);
  // String nativeStr = new String(nativeBytes, 0,
  // nativeBytes.length,"utf-8");
  //System.out.println("分词结果为: " + nativeBytes);
  System.out.println("分词结果为: "+ transString(nativeBytes, system_charset, "GBK"));
  bufferedWriter.write("分词结果为: "+ transString(nativeBytes, system_charset, "GBK"));
  bufferedWriter.write("\r\n");
int nCountKey = 0;
  String nativeByte = CLibrary.Instance.NLPIR_GetKeyWords(sInput, 10,false);
System.out.println("关键词提取结果是:" + nativeByte);
  bufferedWriter.write("关键词提取结果是:" + nativeByte);
  bufferedWriter.write("\r\n");
  } catch (Exception ex) {
    // TODO Auto-generated catch block
    ex.printStackTrace();
  }
}

  记得关闭bufferedWriter。

2、找一篇文章存为txt格式,进行分词和关键词提取。

  到此为止我终于调试好了分词系统,中英文都很有效。文件也差不多看了,只是.dll里面不知道写了什么。能做到这里我已经很开心了,下篇我将按照说明做hadoop使用分词实例。

ICTCLAS20160405分词系统调试过程的更多相关文章

  1. php 分词 —— PHPAnalysis无组件分词系统

    分词,顾名思义就是把词语分开,从哪里分开?当然是一大堆词语里了,一大堆词语是什么?是废话或者名言.这在数据库搜索时非常有用. 官方网站 http://www.phpbone.com/phpanalys ...

  2. 在TensorFlow中基于lstm构建分词系统笔记

    在TensorFlow中基于lstm构建分词系统笔记(一) https://www.jianshu.com/p/ccb805b9f014 前言 我打算基于lstm构建一个分词系统,通过这个例子来学习下 ...

  3. stm32--FatFs调试过程(SPIFlash)

    移植方法参见我的另一篇博客:<stm32--FatFs移植(SPIFlash)>. 本文仅记录在初次移植完成后,遇到的问题,和解决的过程. 调试记录: 问题1:f_open返回3,即磁盘没 ...

  4. 分词系统简介:PHPAnalysis分词程序

    分词系统简介:PHPAnalysis分词程序使用居于unicode的词库,使用反向匹配模式分词,理论上兼容编码更广泛,并且对utf-8编码尤为方便. 由于PHPAnalysis是无组件的系统,因此速度 ...

  5. Python环境下NIPIR(ICTCLAS2014)中文分词系统使用攻略

    一.安装 官方链接:http://pynlpir.readthedocs.org/en/latest/installation.html 官方网页中介绍了几种安装方法,大家根据个人需要,自行参考!我采 ...

  6. 【原创】中文分词系统 ICTCLAS2015 的JAVA封装和多线程执行(附代码)

    本文针对的问题是 ICTCLAS2015 的多线程分词,为了实现多线程做了简单的JAVA封装.如果有需要可以自行进一步封装其它接口. 首先ICTCLAS2015的传送门(http://ictclas. ...

  7. 视频: 千重浪Linux系统调试技术培训 03-01_Basic-CPU-Register

    免费轻松学习Linux系统调试技术 欢迎收看本工作室放到优酷上播放的免费教学视频. 清晰! 完整!  无病毒! 请点击:http://v.youku.com/v_show/id_XNjM1OTQ3Mj ...

  8. 一个简单的CS系统打包过程图文版

    一个简单的CS系统打包过程图文版 1.     打包内容 1.1.  此次打包的要求和特点 主工程是一个CS系统: 此CS系统运行的先决条件是要有.Net Framework 3.5: 主工程安装完成 ...

  9. linux系统开机过程描述

    本文描述linux系统开机过程,属于个人理解范畴,如果文中表述有误请大家批评指正! 计算机开机之后,首先要加载BIOS(基本输入输出系统)信息,BIOS包含了很多重要的信息,包括CPU信息,设备启动顺 ...

随机推荐

  1. Angular.js 以及个人学习网站

    Angular.js  教程 http://www.360doc.com/content/14/0414/15/14416931_368816305.shtml web前端学习: 慕课网:http:/ ...

  2. 转:C++ Boost/tr1 Regex(正则表达式)快速指南

    C++ Boost/tr1 Regex(正则表达式)快速指南 正则表达式自Boost 1.18推出,目前已经成为C++11(tr1)的标准部分. 本文以Boost 1.39正则表达式为基础,应该广泛适 ...

  3. 【BZOJ】3527: [Zjoi2014]力(fft+卷积)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3527 好好的一道模板题,我自己被自己坑了好久.. 首先题目看错.......什么玩意.......首 ...

  4. struts_20_对Action中所有方法、某一个方法进行输入校验(基于XML配置方式实现输入校验)

    第01步:导包 第02步:配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app ...

  5. PHP之路——MySql查询语句

    1,select查询的基本结构 select 字段 from 表 where 过滤条件 group by 分组条件 having 过滤的第二条件 order by 排序条件 limit 限定结果条件; ...

  6. Dockerfile指令总结

    指令的一般格式为INSTRUCTION arguments,指令包含FROM.MAINTAINER.RUN等. FROM 格式为FROM <image>或FROM <image> ...

  7. Nodejs开源项目里怎么样写测试、CI和代码测试覆盖率

    测试 目前主流的就bdd和tdd,自己查一下差异 推荐 mocha和tape 另外Jasmine也挺有名,angularjs用它,不过挺麻烦的,还有一个选择是qunit,最初是为jquery测试写的, ...

  8. Centos rsync文件同步配置

    一.服务器端配置: # yum -y install xinetd   CentOS默认已经安装了rsync 服务.. 输入 rsync 命令可查看是否安装.   # vi /etc/xinetd.d ...

  9. 《java入门第一季》之面向对象(面向对象案例详解)

    通过几个小案例理重新回顾一下前面所写的内容,对面向对象的理解更加深刻的目的: 案例一: /* 需求: 定义一个员工类,自己分析出几个成员, 然后给出成员变量,构造方法,getXxx()/setXxx( ...

  10. Luogu P1245 电话号码

    Luogu P1245 电话号码 谨以此题解致敬我的初中英语老师孙菡老师,她带的班默写不过的人数总是像电话号码那样屈指可数 玄学问题? 本题的SPJ似乎已经基本没有问题了,只要 文末没有多余的空格和回 ...