Example usage for opennlp.tools.doccat DocumentCategorizerME sortedScoreMap

List of usage examples for opennlp.tools.doccat DocumentCategorizerME sortedScoreMap

Introduction

In this page you can find the example usage for opennlp.tools.doccat DocumentCategorizerME sortedScoreMap.

Prototype

@Override
public SortedMap<Double, Set<String>> sortedScoreMap(String[] text) 

Source Link

Document

Returns a map with the score as a key in ascending order.

Usage

From source file:io.learningbox.controller.APIController.java

@RequestMapping(value = "/categorize/{area}", method = RequestMethod.POST)
public SortedMap<Double, Set<String>> categorize(@PathVariable final String area, @RequestBody String input)
        throws IOException {
    List<LearningSet> l = repository.findByArea(area);
    final Iterator<LearningSet> sets = l.iterator();

    ObjectStream<DocumentSample> stream = new ObjectStream<DocumentSample>() {

        @Override//from  w  w  w.  j  a v a2s.c  om
        public DocumentSample read() throws IOException {
            if (sets.hasNext()) {
                LearningSet s = sets.next();

                return new DocumentSample(s.getCategory(), s.getText());
            }
            return null;
        }

        @Override
        public void reset() throws IOException, UnsupportedOperationException {
            throw new UnsupportedOperationException();
        }

        @Override
        public void close() throws IOException {
            //Do nothing
        }
    };

    TrainingParameters trainingParameters = TrainingParameters.defaultParams();
    trainingParameters.put(TrainingParameters.ITERATIONS_PARAM, Integer.toString(1000));
    trainingParameters.put(TrainingParameters.CUTOFF_PARAM, Integer.toString(1));

    DoccatModel model = DocumentCategorizerME.train("en", stream, trainingParameters, new DoccatFactory());
    DocumentCategorizerME myCategorizer = new DocumentCategorizerME(model);
    return myCategorizer.sortedScoreMap(input);
}