您应该首先将文档转换为TF-log(1 +
IDF)向量:词频是稀疏的,因此您应该使用以term为键的python
dict并作为值计数,然后除以总计数即可得出全局频率。
另一种解决方案是将abs(hash(term))用作正整数键。然后使用scipy.sparse向量,它比python
dict更方便,更有效地执行线性代数运算。
还可以通过平均属于同一类别的所有带标签文档的频率来构建150个频率向量。然后,对于要标记的新文档,您可以计算
文档向量和每个类别向量之间的余弦相似度,然后选择最相似的类别作为文档的标签。
如果这还不够好,那么您应该尝试使用L1罚分来训练逻辑回归模型,如scikit-
learn的示例中所述(这是liblinear的包装器,如@ephes所述)。用于训练逻辑回归模型的向量应该是先前引入的TD-
log(1 + IDF)向量,以获得良好的性能(精度和召回率)。scikit learning
lib提供了一个sklearn.metrics模块,该模块具有用于计算给定模型和给定数据集的分数的例程。
对于较大的数据集:您应该尝试使用vowpal
wabbit,它可能是解决大规模文档分类问题的最快兔子(但不容易使用python包装器AFAIK)。



