我正在尝试使用Weka SVM对文本进行分类。目前,用于训练SVM的特征向量由出现在训练文本中的unigrams和bigrams的TF-IDF统计组成。但是,我从测试经过训练的SVM模型得到的结果并不准确,所以有人可以针对我的程序给我反馈吗?我按照以下步骤对文本进行分类:
- 构建由从训练文本中提取的unigrams和bigrams组成的字典
- 计算每个unigram/bigram在每个训练文本中出现的次数以及unigram/bigram出现在多少个训练文本中
- 使用步骤2中的数据计算每个unigram/bigram的TF-IDF值
- 对于每个文档,构建一个与字典长度相等的特征向量,并将相应的TF-IDF统计信息存储在向量的每个元素中(例如,文档一的特征向量的第一个元素将对应于相对于文档一的字典中的第一个单词的TF-IDF)
- 将类别标签附加到每个特征向量上,以区分哪些文本属于哪个作者
- 使用这些特征向量训练SVM
- 测试文本的特征向量与训练文本相同构造,然后通过SVM进行分类