首页 > 解决方案 > 如何计算新闻类别预测的分数?

问题描述

我有根据火车数据预测类别的功能。连同我想计算预测类别的分数,即为什么将新闻分配到特定类别,如政治、世界新闻或体育等。

我正在复制想法的功能

import spacy
nlp = spacy.load('en')

def predict_category(model, head, desc):
    model.eval()
    head = head.lower()
    desc = desc.lower()
    tokenized_head = [tok.text for tok in nlp.tokenizer(head)]
    tokenized_desc = [tok.text for tok in nlp.tokenizer(desc)]
    indexed_head = [TEXT.vocab.stoi[t] for t in tokenized_head]
    indexed_desc = [TEXT.vocab.stoi[t] for t in tokenized_desc]
    tensor_head = torch.LongTensor(indexed_head).to(device)
    tensor_desc = torch.LongTensor(indexed_desc).to(device)
    tensor_head = tensor_head.unsqueeze(1)
    tensor_desc = tensor_desc.unsqueeze(1)
    prediction = model(tensor_head, tensor_desc)
    max_pred = prediction.argmax(dim=1)
    return max_pred.item()

pred = predict_category(model, "Volkswagen Finance picks up 25 per cent stake in Kuwy Technology", "The partners will also offer finance, insurance and warranty products for Volkswagen group customers on Kuwy platform.")
print(f'Predicted category is: {pred} = {LABEL.vocab.itos[pred]}')

标签: machine-learningdeep-learningkaggle

解决方案


我不习惯 Pytorch,但是在 scikit learn 中,当您对其进行预测时,可以获得实例属于每个类的概率......也许您可以在 Pytorch 上实现同样的效果


推荐阅读