我正在尝试构建一个java应用程序,该应用程序在一组文本文档上训练SVM模型,并根据模型对新文档进行分类。我已经在java中查找了很多可以执行此操作的软件包,并发现libsvm实现最佳。
1)我的训练输入本质上是一个文本文件,其中包含文档文本和正确的标签。我知道libsvm包目前只适用于数值数据,这意味着我必须将我的文本文件和功能(单词)转换为数字形式。 TF-IDF是一个很好的方法吗?是否有可以生成TF-IDF的java库?
2)数据必须以
的形式输入模型<class label> <feature 1>:<value 1> <feature 2>:<value 2> ...... <feature n>:<value n>
在我的情况下,该功能是文档中的一个单词,值是TF-IDF值。我的解释是对的吗?
是否有使用libsvm的类似示例?我做了一些搜索,但没有任何运气!
答案 0 :(得分:0)
有几个例子。您可以查看LIBSVM data set page上的rcv1
数据集。这是文档分类数据集(在LIBSVM表示中已经是TF-IDF格式)。有许多关于这个主题的论文,例如Text Categorization with Support Vector Machines by Joachims。