繁体   English   中英

如何使文本分类给出一个 None 类别

[英]How to make text classification gives a None category

我正在对方言进行文本分类。 在我为 3 种方言训练它之后,我用我拥有的测试数据对其进行了测试。 但是,现在假设我要从 twitter 中提取一条推文,并向分类器询问 output 相应的方言,但是如果推文不是用这 3 种方言中的任何一种写的怎么办? 我假设他无论如何都会给出一个类别,但这将是误报。 因此,我希望他给一个无类别。 怎么做? 我还应该给训练数据添加 None 标签吗?

如果要使用同一分类器预测新类别(在这种情况下为“无”),则必须提供与该类别相对应的训练数据。

另一个想法(在这里更好地讨论: https : //stats.stackexchange.com/questions/174856/semi-supervised-classification-with-unseen-classes )是训练一个多类分类器,该分类器将一个句子分配给一种方言; 然后训练各种一类分类器,每种方言分类一个,可以确认或拒绝多类分类器的预测。

一个例子:
方言A,B,C

多类别分类器将句子分配给方言A。
方言A的一类分类器将句子分类为方言A。
句子属于方言A。

多类别分类器将句子分配给方言A。
方言A的一类分类器将句子分类为非方言A。
句子属于未知方言(无)。

根据您的数据,有两种快速但肮脏的方法可能在这里起作用。

  1. 收集“未知”class 的足够代表性数据,并训练您的 model 来预测未知数。

  2. 仅在已知类上训练您的 model,并在推理时设定您进行明确分类所需的最小 logit 值阈值,并在该阈值以下分配“未知”。

如果“未知”涵盖一些非常异构的数据集,即实际上是一整套其他类而不是单个 class,#1 在实践中可能会非常困难。

在这种情况下,#2 可以很好地工作,如果您已知的类是独特的,并且您不太可能在野外遇到模仿您的类之一的数据。

当然,您仍然希望提前在阈值 model 处获取尽可能多的“未知”数据以对其进行测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM