zoukankan      html  css  js  c++  java
  • Hanlp配置自定义词典遇到的问题与解决方法

     

    本文是整理了部分网友在配置hanlp自定义词典时遇到的一小部分问题,同时针对这些问题,也提供另一些解决的方案以及思路。这里分享给大家学习参考。

    要使用hanlp加载自定义词典可以通过修改配置文件hanlp.properties来实现。

    要注意的点是:

      1.root根路径的配置:

        hanlp.properties中配置如下:

          #本配置文件中的路径的根目录,根目录+其他路径=完整路径(支持相对路径)

          #Windows用户请注意,路径分隔符统一使用/

         root=D:/Project/public_sentiment_monitor/plugin/hanlp1.6.8/

      2.自定义词典路径的配置,配置文件中已经指明了相应的用法。

        hanlp.properties中配置如下:

          #自定义词典路径,用;隔开多个自定义词典,空格开头表示在同一个目录,使用“文件名 词性”形式则表示这个词典的词性默认是该词性。优先级递减。

          #所有词典统一使用UTF-8编码,每一行代表一个单词,格式遵从[单词] [词性A] [A的频次] [词性B] [B的频次] ... 如果不填词性则表示采用词典的默认词性。

        CustomDictionaryPath=data/dictionary/custom/hanlp_custom.txt; 搜狗金融词库.txt n; CustomDictionary.txt; 现代汉语补充词库.txt; 全国地名大全.txt ns; 人名词典.txt

      3.配置文件做好以后,自定义词典不起作用问题

        (1). 需要先删除custom文件夹下的所有bin文件,然后再使用hanlp,hanlp会自动加载一个新的bin文件,自定义词典就可以使用了。

    貌似加载出的bin文件只有CustomDictionaryPath这一行配置中的第一个文件对应的bin,但是内容应该是将所有的自定义词典都包含了的。

        (2). 如果自定义词典txt文件中存在含有空格的词, 比如说"16 金立债 nz 100"这种配置,回导致自定义词典加载程序将"16"认为是词,"金立债"认为是词性,"nz"认为是词频,然后出现Java报错: 

          java.lang.NumberFormatException: For input string: "nz"

          虽然仍然生成了bin文件,但是实际上自定义词典中的所有词都是无法使用的。所以在生成自定义词典txt文件的过程中,一定要注意词中是否含有空格,是否符合"词 词性 词频"的格式。

        (3)如何将含有空格的词加入自定义词典中:

          CustomDictionary = JClass('com.hankcs.hanlp.dictionary.CustomDictionary')

          CustomDictionary.add('攻城 狮')

    原文链接:https://www.cnblogs.com/hufulinblog/p/10025933.html

  • 相关阅读:
    有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
    一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第n次落地时,共经过多少米?第n次反弹多高?(n<=10)
    【maven】Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.3:site (default-site)
    【maven和jdk】报错:系统找不到指定的文件
    【maven】pom.xml中"spring-boot-maven-plugin"报红问题
    idea中注释变成繁体字
    idea使用lombok不生效
    大数据基础复习
    【编译原理】求First和Follow
    【vue-08】vuex
  • 原文地址:https://www.cnblogs.com/adnb34g/p/11038044.html
Copyright © 2011-2022 走看看