PaddleNLP [Bug]: 文件路径 "examples/text_to_knowledge/nptag/deploy/python/predict.py" 可能遇到 IndexError,

7fyelxc5  于 2个月前  发布在  Python
关注(0)|答案(3)|浏览(49)

软件环境

- paddlepaddle:2.6.1
- paddlepaddle-gpu: 
- paddlenlp: 2.7.0

重复问题

  • 我已搜索现有的问题

错误描述

在脚本中:

for i, d in enumerate(data):
    label = decode(pred_ids[i], id_vocabs)
    result = {
        "text": d,
        "label": label,
    }
    if label not in name_dict:
        scores_can = all_scores_can[i]
        pred_ids_can = all_preds_can[i]
        labels_can = search(scores_can, pred_ids_can, 0, [], 0)
        labels_can.sort(key=lambda d: -d[1])
        for labels in labels_can:
            cls_label_can = decode(labels[0], id_vocabs)
            if cls_label_can in name_dict:
                result["label"] = cls_label_can
                break
            else:
                labels_can = bk_tree.search_similar_word(label)
                result["label"] = labels_can[0][0]

    result["category"] = name_dict[result["label"]]
    results.append(result)
return results

如果 labels_can 为空,访问 labels_can[0][0] 可能引发 IndexError
也许这是修改的方法:

labels_can = bk_tree.search_similar_word(label)
if len(labels_can) != 0:
    result["label"] = labels_can[0][0]
result["category"] = name_dict[result["label"]]

如果第1点的问题得到解决,脚本的这一部分仍然可能发生 KeyError

稳定复现步骤 & 代码

使用小样本进行训练并调整Map JSON 可能会导致问题。

lbsnaicq

lbsnaicq1#

感谢您报告了这个bug问题。您可以根据您的修改偏好创建一个pull request来解决这个bug。

zphenhs4

zphenhs43#

感谢您报告了这个bug问题。您可以根据您的修改喜好创建一个pull request来解决这个bug。
感谢您的信任。我将在接下来的几天内提交我的解决方案代码。

相关问题