默认为 1 个线程。
有两种方法可以在多线程模式下运行斯坦福 CoreNLP。
1.) 每个线程处理一个单独的文档
2.) 每个线程处理一个单独的句子
假设你有 4 个核心。
如果您希望每个线程处理一个单独的文档,请使用-threads 4
选项(假设您想使用 4)。
所以你可以运行这个命令:
java -Xmx14g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,depparse,coref,kbp -threads 4 -fileList sample-files.txt -outputFormat text
多个注释器可以并行处理句子。以下是将命名实体处理器设置为使用多线程的示例。
java -Xmx14g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,depparse,coref,kbp -ner.nthreads 4 -fileList sample-filelist-16.txt -outputFormat text
以下注释器可以同时处理多个句子:
name example configuration
depparse -depparse.nthreads 4
ner -ner.nthreads 4
parse -parse.nthreads 4
请注意,虽然ner
注释器可以在多线程模式下运行,它使用多个不能运行的子注释器。所以你实际上只是让统计模型并行运行。模式匹配规则模块不在多线程模式下运行。