python - 文本分类 - 处理不属于任何类别的文本
问题描述
我正在开发一个文本分类器,并找到了一些可靠的选择。然而,我正在努力解决的一件事是处理不适合任何预定义类别的文本。这肯定会是我们在真实数据中看到的东西,所以我需要了解如何处理它。
我注意到,当我查看 predict_proba 输出时,(对于朴素贝叶斯/提升)值需要加起来为 1。我认为这是一个问题,因为如果文本不满足任何类别,算法仍然要求输出等于一,它仍然会为该文本分配一些任意标签,即使它确实不应该。
如果在 0.90 的阈值内,我已经提出了一些解决方案来获取最大概率并分配该类别,但我觉得这可能不是最好的方法。
有人对我可以尝试解决的一些方法有什么建议吗?
谢谢
解决方案
- 文本有时有多个类别吗?-> 检查多标签分类
在多标签分类中,文本可以属于零个、一个或多个类别。一个简单的实现是 One-VS-Rest 方法。(考虑每个类别的分类器,对 True 或 False 进行分类,如果所有这些分类器都分类为 False,则样本不属于任何类别。)当预测多个类别并且您只想要一个。
- 文本只有零个或一个类别吗?-> 添加无类别类,
对于没有类别的样本,不应预测此无类别类别。当然,您需要有这种方法的训练样本。
当然,您使用阈值的方法也很有意义,但是很难将此阈值调整到完美的水平,因此我会使用无类别类或多标签方法。
推荐阅读
- openstack-autopilot - 你能用不同的语言发送自动驾驶信息吗?
- java - 这种具有二分搜索和while循环的算法的时间复杂度是多少?
- powershell - 使用 PowerShell -Pattern 在多个文件中搜索多个值
- vulkan - 尝试为 3D 图像创建 2D 阵列图像视图时出现 Vulkan 验证错误
- alert - Alertmanager,不同警报规则的不同间隔
- r - 基于不同列的R数据表styleColorBar
- elasticsearch - 在 Elasticsearch 中,有没有办法为复合查询中的每个查询获取 hits.total.value?
- parameters - 有没有办法将参数作为数据阶段中参数的默认值传递?
- optimization - 使用盆地跳跃的一维全局优化问题
- python - 为什么 Pytest 在测试之间携带状态?