Используйте StanfordCoreNLP параллельно - PullRequest
0 голосов
/ 17 февраля 2019

Этот поток содержит хороший пример того, как использовать оболочку для библиотеки 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 голосов
/ 20 февраля 2019

Не уверен насчет этого подхода.В Java у меня есть настройка синглтон-класса с corenlp и конвейер, который я хочу использовать.Затем я вызываю метод синглтона с несколькими потоками, использующими один и тот же экземпляр, который занимает несколько предложений, комментирует их и выполняет некоторую работу с результатом.Так что этот тип многопоточности работает.Я занимаюсь этим уже несколько лет, и у меня нет проблем

Не могли бы вы пересмотреть код для этого?Итак, настройте свой конвейер, а затем вызовите annotate для нескольких предложений одновременно с вашим пулом потоков?Не должно быть слишком много усилий.

Надеюсь, что это имеет смысл.

...