美文网首页
jieba分词自定义词典不生效

jieba分词自定义词典不生效

作者: l0_0l | 来源:发表于2019-03-20 16:31 被阅读0次

    自定义词典中含有特殊字符导致不生效

    在jieba分词时,为了适应自己的语言环境,所以很多时候需要配置自定义词典。但是由于很多时候语料比较复杂,有可能会存在一下特殊字符,但是又需要把这些特殊字符用结巴分词分出来,比如说一些外国人名Coco·Chanel,J.K. Rowling等。想将这些词在文本中分出来,需要对jieba做一些更改。

    打开默认词典(根目录)或自定义词典,把所有用来间隔词频和词性的空格间隔符改成@@(选用@@是因为一般关键词里遇到这个分隔符的几率比较小吧)

    打开jieba根目录下init.py

    搜索 re_han_default = re.compile("([\u4E00-\u9FD5a-zA-Z0-9+#&\._]+)", re.U)

    改成 re_han_default = re.compile("(.+)", re.U)


    搜索 re_userdict = re.compile('^(.+?)( [0-9]+)?( [a-z]+)?$', re.U)

    改成 re_userdict = re.compile('^(.+?)(\u0040\u0040[0-9]+)?(\u0040\u0040[a-z]+)?$', re.U)


    搜索word, freq = line.split(' ')[:2]

    改成word, freq = line.split('\u0040\u0040')[:2]


    补充:若用的全模式继续改。

    搜索 re_han_cut_all = re.compile("([\u4E00-\u9FD5]+)", re.U)

    改成 re_han_cut_all = re.compile("(.+)", re.U)


    可能会报错ValueError: invalid POS dictionary entry in C:xxx\xxx\

    这个时候尝试删除 tmp/jieba.cache. 具体路径在哪儿,可以在jieba输出的日志中查看。

    原文链接 https://github.com/fxsjy/jieba/issues/423

    相关文章

      网友评论

          本文标题:jieba分词自定义词典不生效

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