stanford-corenlp 中的默认线程数是多少

use*_*643 4 multithreading stanford-nlp

stanford-corenlp 中的默认线程数是多少?具体来说,是命名实体提取器,然后是信息提取器。另外,我希望两者都使用单个线程进行调试,我该如何设置?

谢谢!

Sta*_*elp 5

默认为 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
Run Code Online (Sandbox Code Playgroud)

多个注释器可以并行处理句子。以下是将命名实体处理器设置为使用多线程的示例。

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
Run Code Online (Sandbox Code Playgroud)

以下注释器可以同时处理多个句子:

name       example configuration

depparse   -depparse.nthreads 4
ner        -ner.nthreads 4
parse      -parse.nthreads 4
Run Code Online (Sandbox Code Playgroud)

请注意,虽然ner注释器可以在多线程模式下运行,但它使用多个不能运行的子注释器。所以你实际上只是让统计模型并行运行。模式匹配规则模块不在多线程模式下运行。