问题描述
处理的数据:CAIL2018,是一个司法判决数据集
切分的方法:jieba.cut(sentence, use_paddle = True)
原因
如报错所示,是因为送进jieba.cut的数据有问题。具体而言,被切分的数据有不合法字符
- \n ,\r 和 \t。
- 一些乱码,比如 \x1f
需要说明的是,有可能其他字符也会出发该错误,最好用try except
捕获一下异常,输出被切分的字符串,具体问题具体分析。
处理方式
- sentence的异常字符
replace
掉
sentence = sentence.replace('\r', '').replace('\n', '')
cut = jieba.cut(sentence, use_paddle=True)
- 对于乱码,可以使用正则表达式进行去除
pattern = re.compile(r'[\x1f-\x9f]')
sentence = pattern.sub('', sentence)
最后再把处理之后的字符串送进jieba.cut(sentence, use_paddle=True)
得到generator
如果大家发现新的非法字符,希望能发在评论区中供大家一起参考
github官方的一个回应:https://github.com/PaddlePaddle/Paddle/issues/44082