zero-shot-classification里面有好几个中文模型,怎么知道哪个模型最好,下面是我对于最简单的问题进行的测试
1、facebook/bart-large-mnli
- 模型特点:
facebook/bart-large-mnli
是一个多任务学习模型,基于 BART 结构,并在多语言推理任务上进行了训练(包括中文)。它支持零样本分类任务,能够根据给定的文本和标签,预测哪个标签最符合文本内容。 - 适用场景:适用于意图识别、文本分类等任务,尤其是在标签集合较大的情况下。
- 运行结果如下
- 模型有1.6G,结果0.33XX
2、uer/roberta-base-chinese-extractive-qa
- 模型特点:
uer/roberta-base-chinese-extractive-qa
是 RoBERTa 的中文版本,适用于文本理解任务,包括提取式问答和分类。虽然它专注于问答任务,但也可以通过零样本分类方法用于意图识别。 - 适用场景:适用于基于 RoBERTa 的中文意图识别、问答系统等。
classifier = pipeline("zero-shot-classification", model="uer/roberta-base-chinese-extractive-qa") text = "嗯" labels = ["同意", "不同意", "不知道"] result = classifier(text, labels) print(result)
也是 0.33左右
3、IDEA-CCNL/Erlangshen-Roberta-110M-NLI
- 模型特点:
Erlangshen-Roberta-110M-NLI
是由 IDEA-CCNL 提供的一个中文 RoBERTa 变种模型,专门针对中文自然语言推理任务(NLI)进行了优化。它能够在没有训练的情况下处理零样本分类任务,适用于中文意图识别等任务。 - 适用场景:非常适合中文的意图识别、情感分析、文本分类等任务。
-
from transformers import pipeline classifier = pipeline("zero-shot-classification", model="IDEA-CCNL/Erlangshen-Roberta-110M-NLI") text = "嗯" labels = ["同意", "不同意", "不知道"] result = classifier(text, labels) print(result)
-
0.83 的识别率,很高