首页 > 解决方案 > 使用 BERT 多标签分类生成百分比预测标签

问题描述

我目前正在处理文本数据的多标签分类任务。我有一个带有 ID 列、文本列和几列的数据框,这些列是仅包含 1 或 0 的文本标签。

我使用了该网站上提出的使用 Bert 的 Kaggle 有毒评论分类的现有解决方案,该解决方案允许以百分比表示其属于每个标签的程度。

现在,我已经训练了我的模型,我想将我的模型与新的未标记文本一起使用,以获得属于每个标签的百分比:

我在这个网站上找到了这个解决方案,尤其是我想在我的 Kaggle 代码末尾添加的部分代码:

texts = [
  '.........',
  '.........',
  '..........',
  '..........',
]

for text in texts:
  ids, segments = tokenizer.encode(text, max_len=SEQ_LEN)
  inpu = np.array(ids).reshape([1, SEQ_LEN])
  predicted = (model.predict([inpu,np.zeros_like(inpu)]) >= 0.5).astype(int)
  labels = [
    label
    for i, label in enumerate(labels_ordered)
    if predicted[0][i]
  ]
  print ("%s: %s" % (text, labels))

但是这个解决方案只允许我获得类预测,而不是每个类的百分比预测。

你知道我该怎么做才能使最后一段代码适应我的 Kaggle 代码并获得百分比预测吗?

标签: pythonmultilabel-classificationbert-language-model

解决方案


推荐阅读