From 7e7f5169cbba419822c4fd7e05a85e81972a9fd6 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Orsini Date: Fri, 3 Nov 2017 00:16:05 +0100 Subject: [PATCH] do classification in // --- war/src/main/java/pnews/NER.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) 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)) -- 2.7.4