我有一个以下格式的CSV文件:
产品名称,对该产品的评论
现在我要使用Mallet来训练分类器,以便如果给出一个包含产品评论的测试数据集作为输入,它应该告诉我特定评论属于哪个产品。
希望能得到Mallet Java API的帮助。
产品名称,对该产品的评论
现在我要使用Mallet来训练分类器,以便如果给出一个包含产品评论的测试数据集作为输入,它应该告诉我特定评论属于哪个产品。
希望能得到Mallet Java API的帮助。
这里有一个适合您情况的小例子:
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));
}