projects
/
pnews.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
cdd191d
)
do classification in //
author
Jean-Philippe Orsini
<orsinije@fr.ibm.com>
Thu, 2 Nov 2017 23:16:05 +0000
(
00:16
+0100)
committer
Jean-Philippe Orsini
<orsinije@fr.ibm.com>
Thu, 2 Nov 2017 23:16:05 +0000
(
00:16
+0100)
war/src/main/java/pnews/NER.java
patch
|
blob
|
history
diff --git
a/war/src/main/java/pnews/NER.java
b/war/src/main/java/pnews/NER.java
index
3a6fc82
..
bcb8951
100644
(file)
--- 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();
/** 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<CRFClassifier<CoreLabel>> classifier = new ThreadLocal<CRFClassifier<CoreLabel>>() {
+ @Override
+ protected CRFClassifier<CoreLabel> initialValue() {
+ return CRFClassifier.getDefaultClassifier();
+ }
+ };
public static List<String> classify(String str, List<String> entities) throws ClassCastException, ClassNotFoundException, IOException {
public static List<String> classify(String str, List<String> entities) throws ClassCastException, ClassNotFoundException, IOException {
- final CRFClassifier<CoreLabel> classifier = CRFClassifier.getDefaultClassifier();
+
List<Triple<String, Integer, Integer>> triples;
String w;
final String FUNCTION_NAME = "classify";
List<Triple<String, Integer, Integer>> triples;
String w;
final String FUNCTION_NAME = "classify";
@@
-25,7
+31,7
@@
public class NER {
OpenNLP.classify(str, entities);
synchronized (classifier) {
OpenNLP.classify(str, entities);
synchronized (classifier) {
- triples = classifier.classifyToCharacterOffsets(str);
+ triples = classifier.
get().
classifyToCharacterOffsets(str);
for (Triple<String, Integer, Integer> t: triples) {
w = str.substring(t.second, t.third);
if (!entities.contains(w))
for (Triple<String, Integer, Integer> t: triples) {
w = str.substring(t.second, t.third);
if (!entities.contains(w))