2015-06-05 5 views
0

Я не уверен, связано ли это с Spark или NLP. Пожалуйста, помогите.Я сейчас пытаюсь запустить библиотеку Stanford CoreNLP на Apache Spark, и когда я пытаюсь запустить ее на нескольких ядрах, я получаю следующее исключение. Я использую последнюю библиотеку НЛП, которая является потокобезопасной.CoreNLP на Apache Spark

Это происходит во время фазы карты на линии.

pipeline.annotate(document); 

java.util.ConcurrentModificationException 

at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) 
    at java.util.ArrayList$Itr.next(ArrayList.java:851) 
    at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1042) 
    at edu.stanford.nlp.trees.GrammaticalStructure.analyzeNode(GrammaticalStructure.java:463) 
    at edu.stanford.nlp.trees.GrammaticalStructure.analyzeNode(GrammaticalStructure.java:488) 
    at edu.stanford.nlp.trees.GrammaticalStructure.analyzeNode(GrammaticalStructure.java:488) 
    at edu.stanford.nlp.trees.GrammaticalStructure.analyzeNode(GrammaticalStructure.java:488) 
    at edu.stanford.nlp.trees.GrammaticalStructure.analyzeNode(GrammaticalStructure.java:488) 
    at edu.stanford.nlp.trees.GrammaticalStructure.analyzeNode(GrammaticalStructure.java:488) 
    at edu.stanford.nlp.trees.GrammaticalStructure.<init>(GrammaticalStructure.java:201) 
    at edu.stanford.nlp.trees.EnglishGrammaticalStructure.<init>(EnglishGrammaticalStructure.java:89) 
    at edu.stanford.nlp.semgraph.SemanticGraphFactory.makeFromTree(SemanticGraphFactory.java:139) 
    at edu.stanford.nlp.pipeline.DeterministicCorefAnnotator.annotate(DeterministicCorefAnnotator.java:89) 
    at edu.stanford.nlp.pipeline.AnnotationPipeline.annotate(AnnotationPipeline.java:68) 
    at edu.stanford.nlp.pipeline.StanfordCoreNLP.annotate(StanfordCoreNLP.java:412) 
    at edu.stanford.nlp.pipeline.StanfordCoreNLP.process(StanfordCoreNLP.java:441) 
    at sampleApp.WordProcessor$2.call(WordProcessor.java:69) 
    at sampleApp.WordProcessor$2.call(WordProcessor.java:1) 

ответ

0

Хотя его немного трудно сказать, из этого небольшого количества кода, я думаю, что ключ линия java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1042). Скорее всего, вы пытаетесь изменить что-то, что не поддерживает модификацию, решение которой должно было бы сделать копию вашего ввода.

1

Я думаю, что это проблема CoreNLP.

См. Также Concurrent processing using Stanford CoreNLP (3.5.2).

У меня была такая же проблема, и с использованием сборки из последней версии github (сегодня) решена проблема. В итоге думаю, что в CoreNLP 3.5.2 произошла ошибка, и они решили это.