并行使用StanfordCoreNLP

时间:2019-02-17 12:04:34

标签: python multithreading stanford-nlp

thread包含一个很好的示例,说明了如何为Stanfords CoreNLP库使用包装器。这是我正在使用的示例:

from pycorenlp import StanfordCoreNLP

nlp = StanfordCoreNLP('http://localhost:9000')
res = nlp.annotate("I love you. I hate him. You are nice. He is dumb",
                   properties={
                       'annotators': 'sentiment',
                       'outputFormat': 'json',
                       'timeout': 1000,
                   })
for s in res["sentences"]:
    print("%d: '%s': %s %s" % (
        s["index"],
        " ".join([t["word"] for t in s["tokens"]]),
        s["sentimentValue"], s["sentiment"]))

假设我要分析+10000个句子,如本例所示。是否可以并行和多线程处理这些?

1 个答案:

答案 0 :(得分:0)

不确定这种方法。在Java中,我使用corenlp和要使用的管道进行了单例类设置。然后,我在单例中调用一个方法,该方法具有使用同一实例的多个线程,该方法需要几个句子,并对其进行注释,并对结果进行一些处理。因此,这种类型的多线程确实有效。我已经做了几年了,没有问题

您可以重构代码来做到这一点吗?因此,设置您的管道,然后使用线程池一次在几个句子上调用注释吗?不应太费力。

希望如此。