gpt4 book ai didi

java - Weka Example,文本行的简单分类

转载 作者:搜寻专家 更新时间:2023-11-01 02:52:44 25 4
gpt4 key购买 nike

我想对非常长的文本行进行分类。字符串。

这是我遇到的错误:

Exception in thread "main" java.lang.IllegalStateException: No input instance format defined
at weka.filters.unsupervised.attribute.StringToWordVector.input(StringToWordVector.java:681)
at org.berlin.weka.test.TestWeka.main(TestWeka.java:61)

这是代码,但我不断收到异常,可能是设置不正确。

package org.berlin.weka.test;

import weka.classifiers.Classifier;
import weka.classifiers.functions.SMO;
import weka.core.Attribute;
import weka.core.FastVector;
import weka.core.Instance;
import weka.core.Instances;
import weka.filters.Filter;
import weka.filters.unsupervised.attribute.StringToWordVector;

public class TestWeka {

/*
* java -cp %WEKA_HOME%
weka.classifiers.meta.FilteredClassifier
-t ReutersAcq-train.arff
-T ReutersAcq-test.arff
-W "weka.classifiers.functions.SMO -N 2"
-F "weka.filters.unsupervised.attribute.StringToWordVector -S"
*/

public static void main(final String [] args) throws Exception {
System.out.println("Running");

final StringToWordVector filter = new StringToWordVector();
final Classifier classifier = new SMO();

// Create numeric attributes.
final String[] keywords = { "test1", "test2"};
FastVector attributes = new FastVector(keywords.length + 1);
for (int i = 0 ; i < keywords.length; i++) {
attributes.addElement(new Attribute(keywords[i]));
}
// Add class attribute.
final FastVector classValues = new FastVector(2);
classValues.addElement("miss");
classValues.addElement("hit");

attributes.addElement(new Attribute("Class", classValues));

final Instances data = new Instances("Data1", attributes, 100);
data.setClassIndex(data.numAttributes() - 1);

///////////

Instance instance = new Instance(10);
instance.setDataset(data);
// instance.setValue(testset.attribute(0),testset.attribute(0).addStringValue(obj.toString()));
System.out.println("==>." + data.attribute(0));
instance.setValue(data.attribute(0), data.attribute(0).addStringValue("test1"));
instance.setDataset(data);

// Add class value to instance.
instance.setClassValue(1.0);

// Add instance to training data.
data.add(instance);

// Use filter.
filter.input(instance);
Instances filteredData = Filter.useFilter(data, filter);

// Rebuild classifier.
classifier.buildClassifier(filteredData);
}

} // End of the class //

最佳答案

您能否尝试先按以下方式设置输入格式: <br/>
//rest of your code <br/>
// Use filter <br/>
filter.input(instance); <br/>
filter.setInputFormat(data); //data instances that you are going to input to the filter <br/>
Instances filteredData = Filter.useFilter(data, filter);

例如,您可以引用http://weka.wikispaces.com/Use+WEKA+in+your+Java+code和删除过滤器。 (注意他们在将实例传递给过滤器之前设置了过滤器的输入格式)

关于java - Weka Example,文本行的简单分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8212980/

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