AI News HubLIVE
站内改写2 分钟阅读

零样本文本分类入门

零样本文本分类允许在没有任务特定训练数据的情况下对文本进行标记,通过将标签转化为自然语言陈述并使用预训练模型判断文本是否支持该陈述。本文介绍了其工作原理、使用facebook/bart-large-mnli模型进行单标签和多标签分类的方法,以及如何通过自定义假设模板提高性能。

来源Machine Learning Mastery作者: Abid Ali Awan

零样本文本分类是一种无需先使用任务特定数据集训练分类器即可对文本进行标记的方法。用户只需提供一段文本和一个候选标签列表,模型便会根据其通用语言理解来决定最合适的标签。这种方法特别适用于快速测试想法、处理不断变化的标签集,或在投入监督训练之前构建轻量级原型。

其核心思想在于,模型不将标签视为简单的类别名称,而是将每个标签转化为一个简短的自然语言陈述,并检查输入文本是否支持该陈述。例如,对于文本“公司为企业客户推出了新的人工智能平台”,候选标签为“技术”、“体育”和“金融”,模型会将这些标签转化为陈述,如“这段文字是关于技术的”,然后比较文本与每个陈述的匹配程度,得分最高的标签即为结果。

实际应用中,零样本分类可用于路由支持工单、标记文章、检测用户意图或组织内部文档等场景。重要的是,模型并非执行传统的分类任务,而是进行推理,因此标签的措辞至关重要。例如,“账单问题”比模糊的“金钱”标签效果更好,因为模型有更多语义信息可供利用。

要开始使用,首先安装必要的库:pip install torch transformers。然后加载pipeline:classifier = pipeline("zero-shot-classification", model="facebook/bart-large-mnli")。该模型因训练用于判断文本是否支持另一段文本而成为零样本分类的常用选择。

运行一个简单示例:提供文本“本教程讲解如何在自然语言处理中使用transformer模型”和候选标签“技术”、“健康”、“体育”、“金融”,模型会返回“技术”作为最佳标签,置信度高达96.52%。这展示了模型根据文本语义选择最匹配标签的能力。

零样本分类还支持多标签场景,通过设置multi_label=True并设定阈值,可以识别出文本可能所属的多个类别。例如,文本“公司发布了一款健康应用并宣布强劲的业务增长”可同时被归类为“医疗保健”、“技术”和“商业”,每个标签的得分均超过98%。

此外,自定义假设模板可进一步优化结果。默认模板为“This text is about {}”,但针对特定任务可进行调整。例如,对于客户服务消息,使用“This text is about {}”可更准确地区分“技术支持”、“账单问题”和“功能请求”。

总之,零样本文本分类消除了早期工作流程中对任务特定分类器训练的需求,通过清晰的标签定义和合理的假设模板,用户可以在缺少标注数据的情况下获得有用结果。其质量在很大程度上取决于标签的语义清晰度,因此仔细考虑类别措辞将带来显著提升。