我已经使用Mallet实现了一个文档分类工具,它将文档的每一页分类到特定的类别。我也试过Weka,但Mallet在这方面比Weka更聪明。我的方法如下:
- 将文档的页面训练到已知类别
- 测试一些样本文档,无论Mallet是否识别某个类别的页面。在这里,Mallet从测试集中匹配已知类别
- 如果测试成功且令人满意,则使用分类器和mallet文件在巨大的文档存储库上运行
这一部分已经实施,成功率很高。
对于我没有训练过的、与已知类别不同的文本文档,应作为"不匹配"返回,Mallet正试图从训练集中为Mallet不知道的文档找到匹配项。
例如,我在一份文件中有4页。第1页属于A类,第3页属于B类。第2页和第4页不属于任何类别。如何通过Mallet将第2页和第4页标记为"不匹配"?
请帮我实现这一点。如果我做错了什么,或者有任何其他工具可以给我想要的输出,请告诉我。
两个快速思考:
-
您可以为您想要的置信度值设置一些阈值。例如,mallet说第1页属于A类,有90%的置信度,接受它。如果它说第2页属于C类,有60%的置信度(这是最好的值),可能会拒绝这个建议。您可以通过函数getClassificationScores(文档:http://mallet.cs.umass.edu/api/cc/mallet/classify/MaxEnt.html#getClassificationScores(cc.mallet.types.Instance,双[])
-
你可以在python中学习scikit。我听说,如果它不知道你的页面属于哪个类,它会告诉
NA
。