当前位置: 首页 > 知识库问答 >
问题:

基于SVM的文本数据多标签分类

沈树
2023-03-14

我在Excel文件中有数据,我需要使用它来使用SVM执行多标签分类。它有两列,如下所示。“推文”-A、B、C、D、E、F、G和“类别”=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个答案

阎丰羽
2023-03-14

SVM绝对可以用于多类分类。我以前没有使用过Weka LibSV,但是如果您还没有使用过,则需要在输入任何类型的分类文本之前进行一些数据清理。清理的类型也取决于您的分类任务,但您可以研究以下在实践中用于文本分析的技术:

1) 从文本中删除twitter句柄

2)删除停用词或您确定不会影响分类的词。也许您只能保留代词并删除任何其他单词。您可以使用POS标记来执行此任务。更多信息在这里

3) 删除标点符号

4) 使用n-grams从文本中获取上下文含义。这个网站对它的工作原理有一些很好的解释。本质上,这意味着您将把一系列单词作为一个特征,而不是在模型中使用单个单词作为数据点。请注意,这可能会影响模型在训练时占用的内存量。

5)删除数据集中出现过于频繁或不太频繁的单词。

6)在您的案例中平衡您的类或类别。这意味着在训练模型之前,请确保训练数据具有相似数量的X、Y和Z类别。您的数据可能有很多分类为X和Y的推文,但在您的测试集中,您的推文主要映射到Z类别。

 类似资料:
  • 假设我在一个页面上有3个文本框,定义如下。 我将把值“Open”作为参数传递给JSoup,JSoup应该返回如下数据(这是中间文本框的详细信息)。 JSoup能做到吗? 谢谢您 -阿努普

  • 我正在使用分类器的多类多标签输出。类的总数为14,实例可以关联多个类。例如: 我现在制作混淆矩阵的方式: 输出如下: 现在,我不确定sklearn的混淆矩阵是否能够处理多标签多类数据。谁能帮我一下吗?

  • 在本章中,您将了解各种类型的基本JSF标记。 JSF提供标准的HTML标记库。 这些标记将呈现为相应的html输出。 对于这些标记,您需要在html节点中使用以下URI名称空间。 <html xmlns = "http://www.w3.org/1999/xhtml" xmlns:h = "http://java.sun.com/jsf/html" > 以下是JSF 2.0中重

  • 标题标签 任何文档都以标题开头。 您可以为标题使用不同的大小。 HTML还有六个级别的标题,使用元素《h1》, 《h2》, 《h3》, 《h4》, 《h5》,和《h6》 。 在显示任何标题时,浏览器在该标题之前添加一行,在该标题之后添加一行。 例子 (Example) <!DOCTYPE html> <html> <head> <title>Heading Example</ti

  • 我希望使用AIP扫描仪将标签应用于系统中的文档,该扫描仪将在元数据中看到特定项目后将标签应用到文档 即,将元数据设置为METADATA_TAG_POLICY的office文件,然后具有一个标签,该标签具有检查元数据标签是否存在的条件(假设为自定义条件),然后管理器将应用该标签。(我假设这与信用卡号码等条件的自动标记的工作方式相同。而是一个元数据标签) 目前是否可以这样做?

  • 我正在y_test并y_pred混淆矩阵。我的数据用于多标签分类,因此行值是一种热编码。 我的数据有30个标签,但在输入混淆矩阵后,输出只有11行和列,这让我很困惑。我想我应该有一辆30X30的。 它们的格式是numpy数组。(y\u test和y\u pred是我使用dataframe.values将其转换为numpy数组的数据帧) y\U测试。形状 y_test y\u预测。形状 y\u预测