gpt4 book ai didi

java - Weka 无法使用字符串作为属性对文本进行分类

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:39:17 27 4
gpt4 key购买 nike

我有一个分类任务,它将一个字符串作为输入并将其分类为一些标签。训练数据如:

Text1: label_1
Text2: label_2
Text3: label_1

当我使用 weka 时,很多分类都会出现异常:

weka.core.UnsupportedAttributeTypeException: weka.classifiers.functions.MultilayerPerceptron: Cannot handle string attributes!
at weka.core.Capabilities.test(Capabilities.java:979)
at weka.core.Capabilities.test(Capabilities.java:868)
at weka.core.Capabilities.test(Capabilities.java:1084)
at weka.core.Capabilities.test(Capabilities.java:1022)
at weka.core.Capabilities.testWithFail(Capabilities.java:1301)

最佳答案

很难理解您到底想达到什么目的,但在机器学习中,大多数分类器都在寻找数字/二进制属性,而不是字符串属性。

您可以做的一件事是使用某种模型将您的特征空间转换为数字/二进制属性。 Bag of Words model是一种常见的解决方案。

根据这个模型,你要做的是:

  1. 遍历数据库中的所有“特征”(字符串),分配一个每个字符串/单词的编号/特征
  2. 对于每个分类示例,创建一个具有修改后的特征空间的新实例 - 对于每个单词/字符串,您现在有一个数字(来自步骤 1),因此将与该数字匹配的属性设置为该单词的出现次数在文中。标签保持不变
  3. 使用新的(数字)特征空间对修改后的示例运行学习算法
  4. 在分类过程中,如果你遇到一个无法识别的词(你之前没有它并且没有分配给它的属性编号) - 你可以默默地忽略它,或者使用一些启发式来预测它是否以某种方式与您确实看到的单词相关联。对于初学者,我会忽略它,稍后再回来执行此步骤以进行后续优化。

关于java - Weka 无法使用字符串作为属性对文本进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14082800/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com