Обучение классификатора в молотке

у меня есть CSV-файл в следующем формате:
productname, обзор продукта

теперь, используя молоток, я должен обучить классификатор, чтобы, если в качестве входных данных дается тестовый набор данных, содержащий обзоры продуктов, он должен был сказать мне, к какому продукту относится конкретный обзор.

помощь mallet java api будет оценена по достоинству


person user1406427    schedule 10.08.2012    source источник


Ответы (1)


Вот небольшой пример, подходящий для вашего случая:

    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));
   }
person Syeed Ibn Faiz    schedule 26.09.2012
comment
Здравствуйте, пожалуйста, в моем случае мне нужно провести обучение с помощью txt файла. Как изменить код, пожалуйста? Большое спасибо. С уважением - person researcher; 17.10.2013
comment
@researcher, поскольку этот код использует CSVIterator, он будет работать с txt-файлом. Fileiterator можно использовать для обучения по структуре каталогов. - person drp; 07.09.2016