我正在使用weka中的模型生成/训练模型为我的论文创建原型。我的论文是关于文本的情感分析。现在我有了我想要使用模型/训练模型进行分类的测试数据/集。
这是我的部分代码,它读取arff文件并有一个过滤器(stringToWordVector):
Classify ct = new Classify(TextJ48.model); // loads model
string sample = getARFFile();
StringBuilder buffer = new StringBuilder(sample);
BufferedReader reader = new BufferedReader(new java.io.StringReader(buffer.ToString()));
weka.core.converters.ArffLoader.ArffReader arff = new weka.core.converters.ArffLoader.ArffReader(reader);
Instances dataRaw = arff.getData();
StringToWordVector filter = new StringToWordVector();
filter.setInputFormat(dataRaw);
Instances dataFiltered = Filter.useFilter(dataRaw, filter);
当我显示dataFiltered
时,它已成功从单词过滤为数字。
这是classify
类:
public Classify(string filename)
{
try
{
classifier = (Classifier)weka.core.SerializationHelper.read(filename);
}
catch (java.lang.Exception ex)
{
lblProgress.Text = ex.getMessage();
}
loadAttributes();
this.fileName = filename;
}
我不知道在loadAttributes()
做什么我的计划是在FastVector
中添加所有属性,我在某些来源中看到他们很容易添加属性,因为它们具有固定大小的属性,但是我的情况我有不同数量的属性来自文本。
现在如何对使用模型输入的文本进行分类。