ICTCLAS20160405分词系统调试过程

一、前期准备:

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。

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

时间: 2024-11-08 20:07:50

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

大数据文本分析:灵玖自然语言中文语义分词系统

自然语言通常是指一种自然地随文化演化的语言.英语.汉语.日语为自然语言的例子,而世界语则为人造语言,即是一种为某些特定目的而创造的语言. 自然语言具备两个属性:语言属性与自然属性."语言"属性表现为公认的某些约定俗成的内在规律性;"自然"属性是说并不存在某个人为制造的.严格的语法规则体系来约定人们的语言表达方式,这是和程序设计语言大相径庭的.自然语言需要遵循一定的内在规律,但更大程度上是"存在即合理". 一个自然语言处理系统必须考虑许多语言自身与

简单中文分词系统的实现

中文分词系统工程报告 一.研究背景 随着互联网的快速发展,信息也呈了爆炸式的增长趋势.在海量的信息中,我们如何快速抽取出有效信息成为了必须要解决的问题.由于信息处理的重复性,而计算机又善于处理机械的.重复的.有规律可循的工作,因此自然就想到了利用计算机来帮助人们进行处理.在用计算机进行自然语言处理时,主要使用的还是基于统计的方法,并且实际的使用中取得了不错的效果. 因为中文句子的特点——没有分隔符来分离句子中的词,所以在进行中文处理的时候,首先要做的就是如何对中文语句进行分词.这也是本次工程所要

MTK6572横屏调试过程

剧情设定:系统为MTK默认的系统源码,Phone模式,底部有三个虚拟按键.需求为,设置成默认横屏,设定一个合理的虚拟按键方案. ---------------------------------------------------------------------------------------------------- 1.      横屏 修改转屏的角度为0,所以从效果看,旋转270是逆时针的.需要后续解决的问题:Uboot.Kernel.开关机动画需要替换成横屏的资源. 2.    

使用NLPIR-ICTCLAS2014分词系统

0.使用NLPIR-ICTCLAS2014分词系统之前的准备 下载NLPIR-ICTCLAS2014的下载包.高速传送门: http://ictclas.nlpir.org/upload/20140618094605_ICTCLAS2014.zip 须要有自己的词库(事实上没有都没问题,词库仅仅是我自己须要用到的,某个方面的词汇,来帮助进行页面分析的) 1.高速从NLPIR-ICTCLAS2014的下载包中获得我们须要的东西 首先来看一下整个目录的结构 Data目录中,含有分词须要用到的字典,C

几款开源的中文分词系统

中文分词是做好中文内容检索.文本分析的基础,主要应用于搜索引擎与数据挖掘领域.中文是以词为基本语素单位,而词与词之间并不像英语一样有空格来分隔,因而中文分词的难点在于如何准确而又快速地进行分词 以下介绍4款开源中文分词系统. 1.ICTCLAS – 全球最受欢迎的汉语分词系统 中文词法分析是中文信息处理的基础与关键.中国科学院计算技术研究所在多年研究工作积累的基础上,研制出了汉语词法分析系统ICTCLAS(Institute of Computing Technology, Chinese Le

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

分词系统简介:PHPAnalysis分词程序使用居于unicode的词库,使用反向匹配模式分词,理论上兼容编码更广泛,并且对utf-8编码尤为方便. 由于PHPAnalysis是无组件的系统,因此速度会比有组件的稍慢,不过在大量分词中,由于边分词边完成词库载入,因此内容越多,反而会觉得速度越快,这是正常现象,PHPAnalysis的词库是用一种类似哈希(Hash)的数据结构进行存储的,因此对于比较短的字符串分词,只需要占极小的资源,比那种一次性载入所有词条的实际性要高得多,并且词库容量大小不会影

ubuntu16.04使用USB转TTL(ch340)串口转usb调试过程

以前搞过一次这个,但是时间长了又忘了. 今天用ch340在linux下调试,用以前写好的串口调试程序不能发送数据了.只记得window下需要安装驱动,实际linux下也需要驱动才能正常使用.默认linux是有这一驱动的,但是有些老旧,不能用. 今天的调试过程中,首先把ch340 一端插入电脑输入命令: lsmod | grep usbserial 输出:usbserial              53248  1 ch341成功发现了设备,识别出时 ch341  是我记错了??输入:lsusb

centos7.6快速搭建lamp环境调试过程

最小化安装系统后先更新 [[email protected] ~]# yum update -y [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) [[email protected] ~]# uname -r3.10.0-957.10.1.el7.x86_64 关闭防火墙systemctl stop firewalld.service 关闭防火墙开机启动systemctl di

Android APP 调试过程中遇到的问题。

调试过过程中APP安装完启动后有的时候会异常退出,报这个错误.有的时候可以直接启动.查找不到原因.网上说把commit方法替换成commitAllowingStateLoss() 也无效. Android APP 调试过程中遇到的问题. >> android 这个答案描述的挺清楚的:http://www.goodpm.net/postreply/android/1010000007192169/AndroidAPP调试过程中遇到的问题.html