我有一个excel文件中的数据,我需要使用它来使用SVM执行多标签分类 . 它有两列,如下所示 . 'tweet' - A,B,C,D,E,F,G和'category'= X,Y,Z
推特类别
一个X.
B Y.
C Z.
D X,Y
E Y,Z
F X,Y,Z
G X,Z
给定推文,我想训练我的模型来预测它所属的类别 . 推文和类别都是文本 . 我正在尝试使用Weka的LibSVM分类器来进行分类,因为我读到它会进行多标签分类 . 我将csv文件转换为arff文件并将其加载到Weka中 . 然后我运行了“LibSVM”分类器 . 但是,我的结果非常差,如下所示 . 知道我做错了什么吗?使用“LibSVM”甚至可以进行多标签文本分类吗?
正确分类的实例82 25.9494%
错误分类的实例234 74.0506%
Kappa统计0
平均绝对误差0.0423
均方根误差0.2057
相对绝对误差89.9823%
根相对平方误差134.3377%
实例总数316
1 回答
SVM绝对可以用于多类分类 . 我之前没有使用过Weka LibSV,但如果您已经没有使用过,那么在输入任何类别的分类文本之前,您需要进行一些数据清理 . 清洁类型还取决于您的分类任务,但您可以查看以下用于文本分析的技术:
1)从文本中删除twitter句柄
2)删除您知道的停止词或单词,确保不会影响您的分类 . 也许你只能保留代词并删除任何其他单词 . 您可以使用POS标记来执行此任务 . 更多信息here
3)删除标点符号
4)使用n-gram从文本中获取上下文含义 . This网站对如何运作有一些很好的解释 . 从本质上讲,这意味着您将一系列单词视为一个特征,而不是将一个单词用作模型中的数据点 . 请注意,这可能会影响模型在训练时占用的内存量 .
5)删除数据集中过于频繁或不太频繁出现的单词 .
6)在您的案例中 balancer 您的 class 或类别 . 这意味着在训练模型之前,请确保训练数据具有相似数量的X,Y和Z类别 . 您的数据可能有很多分类为X和Y的推文,但在您的测试集中,您的推文主要映射到Z类别 .