/ / Stanford LexParser Multithreading - Java, Multithreading, NLP, Stanford-NLP

Stanford LexParser Multithreading - java, multithreading, nlp, stanford-nlp

Ich habe vor kurzem Stanford Lexparser verwendet. Leider ist ein Problem aufgetreten, da es sehr lange dauert, insbesondere wenn ich eine große Datei übergebe. Verbessert Multithreading die Leistung? Ich weiß, dass Multithreading einfach über die Befehlszeile ausgeführt werden kann. Ich möchte es jedoch intern mit der API multithreaden. Derzeit verwende ich diesen Code. Wie mache ich Multithread?

for (List<HasWord> sentence : new DocumentPreprocessor(fileReader)) {
parse = lp.apply(sentence);
TreePrint tp = new TreePrint("typedDependenciesCollapsed");
tp.printTree(parse, pw);
}

Antworten:

2 für die Antwort № 1

Sie können reguläre alte Java-Threads verwenden, um Dokumente parallel zu kommentieren. Zum Beispiel:

Properties props = new Properties();
props.setProperty("annotators", "tokenize,ssplit,parse");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);

Annotation ann = new Annotation("your sentence here");
for (int i = 0; i < 100; ++i) {
new Thread() {
@Override public void run() {
pipeline.annotate(ann);  // except, you should probably annotate different documents.
Tree tree = ann.get(SentencesAnnotation.class).get(0).get(TreeAnnotation.class);
}
}.start();
}

Eine andere Möglichkeit ist die Verwendung der einfache API:

for (int i = 0; i < 100; ++i) {
new Thread() {
@Override public void run() {
Tree tree = new Sentence("your sentence").parse();
}
}.start();
}

Auf hohem Niveau ist es jedoch unwahrscheinlich, dass Sie einephänomenal große Beschleunigung durch Multithreading. Das Parsing ist im Allgemeinen langsam (O (n ^ 3) in Bezug auf die Satzlänge), und das Multithreading bietet nur eine maximale lineare Beschleunigung der Anzahl der Kerne. Eine Alternative, um die Dinge schneller zu machen, wäre, sie entweder zu verwenden die Schicht reduzieren den Parseroder, wenn Sie mit der Abhängigkeit und nicht mit dem Wahlkreis zufrieden sind, die Stanford Neural Dependency Parser.