From: Jean-Philippe Orsini Date: Thu, 2 Nov 2017 23:16:05 +0000 (+0100) Subject: do classification in // X-Git-Url: http://git.wpitchoune.net/gitweb/?p=pnews.git;a=commitdiff_plain;h=7e7f5169cbba419822c4fd7e05a85e81972a9fd6 do classification in // --- diff --git a/war/src/main/java/pnews/NER.java b/war/src/main/java/pnews/NER.java index 3a6fc82..bcb8951 100644 --- a/war/src/main/java/pnews/NER.java +++ b/war/src/main/java/pnews/NER.java @@ -12,10 +12,16 @@ import edu.stanford.nlp.util.Triple; /** https://stanfordnlp.github.io/CoreNLP/api.html */ public class NER { private static final String CLASS_NAME = NER.class.getName(); - private static final Logger LOG = Logger.getLogger(CLASS_NAME); + private static final Logger LOG = Logger.getLogger(CLASS_NAME); + private static final ThreadLocal> classifier = new ThreadLocal>() { + @Override + protected CRFClassifier initialValue() { + return CRFClassifier.getDefaultClassifier(); + } + }; public static List classify(String str, List entities) throws ClassCastException, ClassNotFoundException, IOException { - final CRFClassifier classifier = CRFClassifier.getDefaultClassifier(); + List> triples; String w; final String FUNCTION_NAME = "classify"; @@ -25,7 +31,7 @@ public class NER { OpenNLP.classify(str, entities); synchronized (classifier) { - triples = classifier.classifyToCharacterOffsets(str); + triples = classifier.get().classifyToCharacterOffsets(str); for (Triple t: triples) { w = str.substring(t.second, t.third); if (!entities.contains(w))