zoukankan      html  css  js  c++  java
  • 2020年寒假假期总结0211

      Ansj分词工具详细使用

      api文档:http://nlpchina.github.io/ansj_seg/

      四种分词方法:

      基本分词:

    List<Term> parse = BaseAnalysis.parse("腾讯公司的员工非常多,有40678个员工,老板是马化腾,现在也开始搞区块链了");
    System.out.println(parse);

      ToAnalysis 精准分词:兼顾精度与速度,比较均衡

    List<Term> parse = ToAnalysis.parse("腾讯公司的员工非常多,有40678个员工,老板是马化腾,现在也开始搞区块链了");    
    System.out.println(parse);

      NLP分词:分词能力更强,但是速度较慢。

    List<Term> parse = NlpAnalysis.parse("腾讯公司的员工非常多,有40678个员工,老板是马化腾,现在也开始搞区块链了");
    System.out.println(parse);

       IndexAnalysis分词:一般用于检索或搜索引擎

    List<Term> parse = IndexAnalysis.parse("腾讯公司的员工非常多,有40678个员工,老板是马化腾,现在也开始搞区块链了");
    System.out.println(parse);

       通病:词典过时,需要补充新词,同时没有自带的停用词表,需要自己添加停用词表。在上面的分词中,都没有识别区块链三个字,都是拆分了,没有识别出来。

      添加自定义词典:(前提:工程是maven项目)

      一.Ansj自带办法:

      Ansj自带方法添加新词,但是只能一个一个添加。

    UserDefineLibrary.insertWord("区块链", "n", 1000);//添加自定义词汇、自定义词性
    
    UserDefineLibrary.removeWord("区块链");//去除自定义词汇

      二.利用配置文件添加自定义词表

      1.在resources目录下添加配置文件:library.properties。添加内容:

    userLibrary=/library/userLibrary.dic #此行为自定义词典的位置和名称
    isRealName=true
    

       2.在resources目录下新家library目录,再在其中添加userLibrary.dic文件,主要注意的是文件的格式是:词语内容  词性  词频,例如:区块链  n  1000,中间间隔的是tab制表符。

      3.代码声明变量配置:

            String str = "腾讯公司的员工非常多,有40678个员工,老板是马化腾,现在也开始搞区块链了";
            Forest forest= Library.makeForest(Ansj.class.getResourceAsStream("/library/userLibrary.dic"));//加载字典文件
            String resultstr= NlpAnalysis.parse(str, forest).toStringWithOutNature();
            System.out.println(resultstr);

      目录结构如下:

       添加自定义停用词表:(前提:工程是maven项目)

      Ansj只有自带方法一个一个添加停用词,没有通过配置添加的方法(也许是我没有看到,如果您看到,可以补充在评论中),但是我们需要的停用词都很多,所以只能自己写方法读写文档来添加停用词。这里就不在赘述,就是java方法读取文件,在利用自带方法来添加。

    StopRecognition s = new StopRecognition();
    s.insertStopWords(“个”);
    String str = "腾讯公司的员工非常多,有40678个员工,老板是马化腾,现在也开始搞区块链了";
    Forest forest= Library.makeForest(Ansj.class.getResourceAsStream("/library/userLibrary.dic"));//加载字典文件
    String resultstr= NlpAnalysis.parse(str, forest).recognition(s).toStringWithOutNature();

      更多的关于Ansj的方法可以查看api文档,链接:http://nlpchina.github.io/ansj_seg/

  • 相关阅读:
    GZIP压缩
    对象的constructor属性
    session会话复制
    第一篇博客 iframe自适应高度
    【NOI2012T4】迷失游乐园-环套树+树形DP+期望DP
    【NOI2012T4】迷失游乐园-环套树+树形DP+期望DP
    【HDU5072】Coprime-补集转化+容斥原理+质因数分解
    【HDU5072】Coprime-补集转化+容斥原理+质因数分解
    【NOI2011T1】兔农-矩阵快速幂+乘法逆元
    【NOI2011T1】兔农-矩阵快速幂+乘法逆元
  • 原文地址:https://www.cnblogs.com/heiyang/p/12301981.html
Copyright © 2011-2022 走看看