【PreconditionNotMetError: The meta data must be valid when call the mutable data function】非法输入

问题描述

处理的数据:CAIL2018,是一个司法判决数据集
切分的方法:jieba.cut(sentence, use_paddle = True)

原因

如报错所示,是因为送进jieba.cut的数据有问题。具体而言,被切分的数据有不合法字符

  1. \n\r\t
  2. 一些乱码,比如 \x1f
    需要说明的是,有可能其他字符也会出发该错误,最好用try except捕获一下异常,输出被切分的字符串,具体问题具体分析。

处理方式

  1. sentence的异常字符replace
sentence = sentence.replace('\r', '').replace('\n', '')
cut = jieba.cut(sentence, use_paddle=True)
  1. 对于乱码,可以使用正则表达式进行去除
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

猜你喜欢

转载自blog.csdn.net/Petersburg/article/details/126391209
今日推荐