【问题标题】:How to make text classification gives a None category如何使文本分类给出无类别
【发布时间】:2019-09-28 04:27:02
【问题描述】:

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

【问题讨论】:

  • 预测的格式是什么?如果它给出了每个的概率/机会,你可以用它来决定。
  • @doctorlove 预测是方言的标签。我怎样才能让它成为概率?
  • 因此预测器会给出三个分数,例如 [1, 0, 0] 肯定表示“方言 A”。我不清楚你有什么设置。
  • 一些分类器也给出概率作为输出。顺便说一句,我不确定仅考虑选择接受或放弃预测的概率是否会导致正确的决策。

标签: python machine-learning text-classification countvectorizer


【解决方案1】:

如果你想用相同的分类器预测一个新的类别(这里是None),你必须提供这个类别对应的训练数据。

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

一个例子:
方言 A、B、C。

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

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

【讨论】:

  • 为什么不只使用一类分类器。你训练了 3 个一类分类器。当你有一个句子时,你把这个句子传递给每个分类器,如果它把这个句子分类为 A,那么它就是 A,如果它分类为不是 A,那么它把它传递给下一个分类器。如果所有人都不给 A,不给 B,不给 C,那么就会是其他人。
猜你喜欢
  • 2011-12-29
  • 1970-01-01
  • 2015-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多