pkuseg按照用户自定义词典分词错误修正

import pkuseg

c = pkuseg.pkuseg(user_dict="./data/dict.txt")
sentence = '数字传播实验班'
print(c.cut(sentence))

字典中包含“”数字传媒与人文学院",添加自定义词典后,文本被错误分成““数字传 播 实验班” ,debug发现solve方法有bug在这里插入图片描述
GPT4分析:
在这里插入图片描述
修改后的方法:

    def solve(self, txt):
        outlst = []
        iswlst = []
        taglst = []
        l = len(txt)
        last = 0
        i = 0
        while i < l:
            now = self.trie
            j = i
            found = False
            usertag = ''
            last_word_idx = -1
            while j < l:
                c = txt[j]
                if c not in now.children:
                    break
                now = now.children[c]
                if now.isword:
                    found = True
                    last_word_idx = j
                    usertag = now.usertag
                j += 1

            if found:
                if last != i:
                    outlst.append(txt[last:i])
                    iswlst.append(False)
                    taglst.append('')
                outlst.append(txt[i:last_word_idx + 1])
                iswlst.append(True)
                taglst.append(usertag)
                last = last_word_idx + 1
                i = last_word_idx + 1
            else:
                i += 1

        if last < l:
            outlst.append(txt[last:l])
            iswlst.append(False)
            taglst.append('')

        return outlst, iswlst, taglst

重新运行结果:
在这里插入图片描述

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值