X-Git-Url: http://git.wpitchoune.net/gitweb/?p=pnews.git;a=blobdiff_plain;f=war%2Fsrc%2Fmain%2Fjava%2Fpnews%2FNER.java;h=bcb8951fb6904a02db5b2c6d42ef608134cb8ced;hp=3a6fc8256c86371d2fa9c54dff88675d204f36a7;hb=7e7f5169cbba419822c4fd7e05a85e81972a9fd6;hpb=cdd191d522dce1245032f0d92b201c3e0d679610 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))