此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个句子,如本例所示。是否可以并行和多线程处理这些?
答案 0 :(得分:0)
不确定这种方法。在Java中,我使用corenlp和要使用的管道进行了单例类设置。然后,我在单例中调用一个方法,该方法具有使用同一实例的多个线程,该方法需要几个句子,并对其进行注释,并对结果进行一些处理。因此,这种类型的多线程确实有效。我已经做了几年了,没有问题
您可以重构代码来做到这一点吗?因此,设置您的管道,然后使用线程池一次在几个句子上调用注释吗?不应太费力。
希望如此。