我手动将 Twitter 消息标记为正面、负面、中立。我试图理解是否有一些逻辑可以用来识别训练集的消息比例应该是积极/消极和中性的?
例如如果我用 1000 条 twitter 消息训练朴素贝叶斯分类器,pos:neg:neutral 的比例应该是 33%:33%:33% 还是应该是 25%:25%:50%
从逻辑上讲,在我的脑海中,我似乎训练(即为中性句子提供更多样本)系统会更好地识别中性句子,而不是它们是积极的还是消极的 - 这是真的吗?或者我在这里遗漏了一些理论?
谢谢 拉胡尔
最佳答案
您提到的问题称为不平衡问题。当面对不平衡的训练数据时,即当一类的实例数量远远超过另一类的实例时,许多机器学习算法表现不佳。阅读 this article更好地了解问题以及如何解决它。对于朴素贝叶斯或决策树等技术,以某种方式平衡数据总是一个好主意,例如通过随机过采样(在引用文献中进行了解释)。我不同意 mjv 的建议,即让训练集与现实世界的比例相匹配。这在某些情况下可能是合适的,但我确信它不适合您的环境。对于像您描述的那样的分类问题,类集的大小差异越大,大多数 ML 算法在正确区分类时就越会遇到问题。但是,您始终可以使用有关哪个类实际上最大的信息,将其作为后备,这样当分类器对特定实例的置信度较低或该实例根本无法分类时,您可以将其分配给它最大的类(class)。
进一步说明:在 Twitter 消息中找到积极/消极/中立在我看来是一个程度问题。因此,它可能被视为回归问题而不是分类问题,即您可能想要计算一个分数来告诉您消息的积极/消极程度,而不是三类方案。
关于nlp - 训练集-肯定句/否定句/中性句的比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2058790/