sci*_*bot 7 python machine-learning text-classification keras pre-trained-model
所以我没有标签的单词很少,但我需要将它们分为 4-5 类。我可以明显地说这个测试集是可以分类的。虽然我没有训练数据,所以我需要使用预训练的模型来对这些单词进行分类。哪种模型适合这种范式以及它已经在哪个数据集上进行了训练?
谢谢
小智 9
我们正在执行的任务称为零样本主题分类 - 预测模型尚未经过训练的主题。Hugging Face 库支持此范例,您可以在此处阅读更多内容。最常见的预训练模型是 Bart Large MNLI -在MNLI 数据集上训练后bart-large的检查点。这是一个简单的例子,展示了在没有任何初步训练的情况下对短语“I like hot dogs”的分类:
首先,请安装 Transformers 库:
pip install --upgrade transformers
Run Code Online (Sandbox Code Playgroud)
然后导入并初始化管道:
from transformers import pipeline
classifier = pipeline('zero-shot-classification', model='facebook/bart-large-mnli')
Run Code Online (Sandbox Code Playgroud)
输入我们的玩具数据集:
labels = ["artifacts", "animals", "food", "birds"]
hypothesis_template = 'This text is about {}.'
sequence = "I like hot dogs"
Run Code Online (Sandbox Code Playgroud)
预测标签:
prediction = classifier(sequence, labels, hypothesis_template=hypothesis_template, multi_class=True)
print(prediction)
Run Code Online (Sandbox Code Playgroud)
输出将类似于
`{'sequence': 'i like hot dogs',
'labels': ['food', 'animals', 'artifacts', 'birds'],
'scores': [0.9971900582313538, 0.00529429130256176, 0.0020991512574255466,
0.00023589911870658398]}`
Run Code Online (Sandbox Code Playgroud)
可以解释为,模型将最高概率 (0.997..) 分配给标签“食物”,这是正确的答案。