美文网首页
NLPIR汉语分词系统

NLPIR汉语分词系统

作者: 帅猪2333 | 来源:发表于2018-12-10 21:44 被阅读0次

    官网:http://ictclas.nlpir.org/    含有下载地址及网站事例

    工具github地址:https://github.com/NLPIR-team

    首先NLPIR拥有非常强大的功能

    看到首页下面这些工具的位置

    NLPIR种包含这些功能的许可证,SDK开发文档,NLPIR是一个开源系统,许可证免费下载,使用期一个月,过期后重新下载

    一. NLPIR-ICTCLAS 中文分词工具

    (1)介绍

    在https://github.com/NLPIR-team页面可以找到NLPIR-ICTCLAS项目


    点击clone and download ,加压压缩包,得到的目录如下

    在idea或eclipse中打开项目(该项目是由eclipse编译的,使用eclipse能更少出错),我在这里使用的是idea

    文件目录下看到文件结构如下

    data_train代表测试数据

    lib代表需要依赖的包

    resources代表一些操作系统上的支持工具 支持linux和windows

    seg.txt代表运行结果产生的文本

    /src/.../test 里面的NLPIRTest代表测试写的类

    /src/... 中的NLPIR代表开发的类,类中的函数代表可以调用的函数 ,开发文档为https://github.com/NLPIR-team/NLPIR/tree/master/NLPIR%20SDK/NLPIR-ICTCLAS/doc

    (2)运行sample

    在运行sample的时候可能会遇到问题,比如不兼容,项目找不到资源文件,许可证过期的情况

    对于许可证过期的情况:

    在地址https://github.com/NLPIR-team/NLPIR/tree/master/License/license%20for%20a%20month/NLPIR-ICTCLAS%E5%88%86%E8%AF%8D%E7%B3%BB%E7%BB%9F%E6%8E%88%E6%9D%83中下载许可证

    将下载的许可证复制到项目的/lib/data下面,替代原来的许可证

    运行之后,看到下图代表成功

    结果在seg.txt中

    (3)NLPIRTest.java代码解析

    package com.lingjoin.nlpir.test;

    import java.io.File;

    import java.io.FileWriter;

    import java.io.RandomAccessFile;

    import java.util.ArrayList;

    import java.util.List;

    import com.lingjoin.nlpir.NLPIR;

    public class NLPIRTest {

    Listfiles=new ArrayList();

      public void getAllfiles(File filePath){//遍历路径下的所有文件

          File[] fsFiles=filePath.listFiles();

          for(File f:fsFiles){

    if(f.isFile()&&!f.getName().equals(".DS_Store"))files.add(f.getPath());

            if(f.isDirectory())this.getAllfiles(f);

          }

    }

    public StringgetContent(File file)throws Exception{//获取每个文本的内容,并处理

          RandomAccessFile f=new RandomAccessFile(file, "r");

          byte[] b=new byte[(int) file.length()];

          f.read(b);

          f.close();

          String c=new String(b,"GBK").replaceAll("\\s", "");//每两个字节组成一个汉字并去掉空格

          return c;

      }

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

    NLPIR.init("lib");//初始化支持库

          //NLPIR.importUserDict("");

          FileWriter fw=new FileWriter(new File("seg.txt"));

          String fPath="data_train";

          NLPIRTest test=new NLPIRTest();

          test.getAllfiles(new File(fPath));

          for(String f:test.files){//遍历每一个文件

            System.out.println(f);//输出文件名

            String con=test.getContent(new File(f));//获取文本内容

            fw.write(new File(f).getName()+"\t"+NLPIR.paragraphProcess(con, 1).replaceAll(" ", "\t")+"\n");

            //文件输出到seg.txt,格式为文件名+每个分词+空格;分完一个文本后回车

          }

    fw.flush();

          fw.close();

      }

    }

    (4)结果部分展示

    4-1_01 新华社/nt 照片/n ,/wd 枣庄/ns (/wkz 山东/ns )/wky ,/wd 2016年/t 8月/t 30日/t 山东/ns 枣庄/ns 出现/v “/wyz 鱼鳞/n 云/vg ”/wyy 这/rzv 是/vshi 8月/t 30日/t 在/p 山东省/ns 枣庄市/ns 山亭区/ns

    (5)分词后缀解释

    汉语词性对照表地址:https://blog.csdn.net/kevin_darkelf/article/details/39520881

    相关文章

      网友评论

          本文标题:NLPIR汉语分词系统

          本文链接:https://www.haomeiwen.com/subject/ygzdhqtx.html