所以我试图根据Naive Bayes的文本对文档进行分类。每个文档可能属于1到n个类别(在博客文章中将其视为标记)。
我目前的方法是为R提供一个看起来像这样的csv
+-------------------------+---------+-------+-------+
| TEXT TO CLASSIFY | Tag 1 | Tag 2 | Tag 3 |
+-------------------------+---------+-------+-------+
| Some text goes here | Yes | No | No |
+-------------------------+---------+-------+-------+
| Some other text here | No | Yes | Yes |
+-------------------------+---------+-------+-------+
| More text goes here | Yes | No | Yes |
+-------------------------+---------+-------+-------+
当然,期望的行为是让输入看起来像
Some new text to classify
输出如
+------+------+-------+
| Tag 1| Tag 2| Tag 3 |
+------+------+-------+
| 0.12 | 0.75 | 0.65 |
+------+------+-------+
然后根据某个阈值,确定给定文本是否属于标签1,2,3。
现在的问题是,在我发现的教程中,看起来输入应该更像
+--------------------------+---------+
| TEXT TO CLASSIFY | Class |
+--------------------------+---------+
| Some other text here | No |
+--------------------------+---------+
| Some other text here | Yes |
+--------------------------+---------+
| Some other text here | Yes |
+--------------------------+---------+
也就是说,每个班级每个文本的行数...然后使用是,我可以训练朴素的贝叶斯,然后使用one-vs-all来确定哪些文本属于哪个标签。问题是,我能以更优雅的方式做到这一点(也就是说,训练数据看起来就像我提到的第一个例子)?
我找到的一个例子是http://blog.thedigitalgroup.com/rajendras/2015/05/28/supervised-learning-for-text-classification/
答案 0 :(得分:1)
概念上有两种方法。
与概率建模一样,您是否认为您的标签是独立的是一个问题。根据Naive Bayes的精神,独立性假设是非常自然的。在那种情况下2.将是要走的路。如果独立性假设不合理并且您害怕组合爆炸,则可以使用标准贝叶斯网络。如果您保留某些假设,您的表现将不会受到影响。
但是,您也可以采用混合方法。
http://link.springer.com/article/10.1007%2Fs10994-006-6136-2#/page-1