示例:
我有大约1000个文本文档,~10个可以预测二进制结果,大约990个不是。
我想训练分类器来获取一组文档并预测二进制结果。
假设讨论文件将文本映射到100个特征。
如何根据培训示例和功能进行建模?我是否将所有文本合并在一起并将其映射到一组固定的功能?我是否每个文档有100个功能* ~1000个文档(100,000个功能)和每组文档一个培训示例?我是否将每个文档分别分类并分析与最终二元预测相关的结果置信度?
答案 0 :(得分:1)
处理文本文档的最常用方法是使用bag of words model。班级比例无关紧要。每个单词都映射到一个唯一索引。使该索引处的值等于令牌发生的次数(有更聪明的事情要做)。因此,要素/维度的数量是语料库中唯一标记/单词的数量。这有一些manny问题,其中一些是discussed here。但它适用于许多事情。
答案 1 :(得分:0)
我希望将其视为一个两阶段问题。
阶段1:预测文档与1000集的相关性。为了与阶段2的最佳组合,使用概率性逻辑(逻辑回归是一个良好的开端)。
阶段2:在阶段1的输出上定义特征以确定最终问题的答案。这些可能是第1阶段n个最相关文档的词数,最可能文档的概率,这些概率的第99个百分点,概率的变化等等。无论你认为什么都会得到正确的答案(实验!)
原因如下:将文档连接在一起会使您陷入无关紧要的信息中。你会花费很多年的时间来弄清楚哪些单词/特征允许在类之间实际分离。
另一方面,如果将特征向量连接在一起,则会遇到可交换性问题。我的意思是,文件1中的单词1将位于位置1,文档2中的单词1将位于位置1001,而文档3中的单词1将位于位置2001等,并且将无法知道该功能都是相关的。此外,文档顺序的替代表示将导致特征向量中的位置改变其顺序,并且您的学习算法对此不会很聪明。同样有效的文档订单演示将导致完全不同的结果,完全不确定和不满意的方式(除非你花了很长时间设计一个自定义分类器,这个分类器没有解决这个问题,这可能最终是必要的但是它不是我开始的事情。)