结巴分词对于特殊格式的分词

最近在写结巴的项目,刚好遇到了英文分词的问题,因为结巴分词使用了空格作为默认分割符,会导致自定义词典和默认词典都无法对英文做出准确的分割,感谢这位的文章,全面有效,解决了该问题,https://www.cnblogs.com/callyblog/archive/2004/01/13/10097847.html。如果使用的全模式,需要再从其它文章里找到全模式修改的

文章只提供了修改方法,这里根据实际经验,就遇到的问题需要补充下:

1、一定要提前将结巴的默认词典和自定义词典按照格式修改好,或者会报错。

2、jieba.cache文件记得删除掉,让jieba重新生成模型缓存

3、如果自定义词典的里的词较多,建议在源码修改的地方使用try把异常捕捉出来,由于自定义词典任何一行的格式问题会导致报错,导致初始化有问题。由于使用的是循环加载词典,try会处理一行异常:特别是类似freq这样的替换,修改后源码没有对类型和空值进行判断,格式问题会导致初始化失败,可以将异常打印出来,同时不影响其它行的正常初始化。代码如下,其它报错地方也可以按照该方法进行补获。

  try:
              freq = freq.replace('\u0040\u0040', '')
  except :
                print (  word, freq, tag)

按照文章一步一步做,基本就完成了英文单词的切割。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值