在mallet中训练分类器

3
我有一个以下格式的CSV文件:
产品名称,对该产品的评论
现在我要使用Mallet来训练分类器,以便如果给出一个包含产品评论的测试数据集作为输入,它应该告诉我特定评论属于哪个产品。
希望能得到Mallet Java API的帮助。
1个回答

8

这里有一个适合您情况的小例子:

    public static void main(String[] args) throws IOException {
        //prepare instance transformation pipeline
        ArrayList<Pipe> pipes = new ArrayList<Pipe>();
        pipes.add(new Target2Label());
        pipes.add(new CharSequence2TokenSequence());
        pipes.add(new TokenSequence2FeatureSequence());
        pipes.add(new FeatureSequence2FeatureVector());
        SerialPipes pipe = new SerialPipes(pipes);

        //prepare training instances
        InstanceList trainingInstanceList = new InstanceList(pipe);
        trainingInstanceList.addThruPipe(new CsvIterator(new FileReader("datasets/training.txt"), "(.*),(.*)", 2, 1, -1));

        //prepare test instances
        InstanceList testingInstanceList = new InstanceList(pipe);        
        testingInstanceList.addThruPipe(new CsvIterator(new FileReader("datasets/testing.txt"), "(.*),(.*)", 2, 1, -1));

        ClassifierTrainer trainer = new NaiveBayesTrainer();
        Classifier classifier = trainer.train(trainingInstanceList);
        System.out.println("Accuracy: " + classifier.getAccuracy(testingInstanceList));
   }

你好,请问在我的情况下,我必须使用txt文件进行训练。请问如何更改代码呢?非常感谢。最好的祝福。 - researcher
@researcher,由于此代码使用了CSVIterator,因此它可以处理txt文件。Fileiterator可用于通过目录结构进行训练。 - drp
我知道这段代码已经有11年的历史了,但最近它在Target2Label()处引发了一个ClassNotFoundException。至少对我来说是这样。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接