edu.stanford.nlp.parser.common.ParsingThreadsafeProcessor Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of stanford-parser Show documentation
Show all versions of stanford-parser Show documentation
Stanford Parser processes raw text in English, Chinese, German, Arabic, and French, and extracts constituency parse trees.
package edu.stanford.nlp.parser.common;
import java.io.PrintWriter;
import java.util.List;
import edu.stanford.nlp.ling.HasWord;
import edu.stanford.nlp.util.concurrent.ThreadsafeProcessor;
/**
* Takes a sentence and returns a ParserQuery with the given sentence parsed.
* Can be used in a MulticoreWrapper.
*
* @author John Bauer
*/
public class ParsingThreadsafeProcessor implements ThreadsafeProcessor, ParserQuery> {
ParserGrammar pqFactory;
PrintWriter pwErr;
public ParsingThreadsafeProcessor(ParserGrammar pqFactory) {
this(pqFactory, null);
}
public ParsingThreadsafeProcessor(ParserGrammar pqFactory, PrintWriter pwErr) {
this.pqFactory = pqFactory;
this.pwErr = pwErr;
}
@Override
public ParserQuery process(List sentence) {
ParserQuery pq = pqFactory.parserQuery();
if (pwErr != null) {
pq.parseAndReport(sentence, pwErr);
} else {
pq.parse(sentence);
}
return pq;
}
@Override
public ThreadsafeProcessor, ParserQuery> newInstance() {
// ParserQueryFactories should be threadsafe
return this;
}
}