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/

 

posted @ 2020-02-11 10:26  HEIYANG  阅读(333)  评论(0)    收藏  举报