2017-02-10 1 views
2

Я использую метод, описанный на странице stanford CoreNLP here.MetaClass не удалось создать общедоступный edu.stanford.nlp.time.TimeExpressionExtractorImpl (java.lang.String, java.util.Properties) с args [sutime, {}]

для того, чтобы запустить Stanford CoreNLP из командной строки следующей команды используется:

java -cp "*" -Xmx2g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,parse,dcoref -file input.txt 

Я запустить эту команду из каталога распространения. Однако. Я получаю следующее сообщение об ошибке:

Exception in thread "main" edu.stanford.nlp.util.ReflectionLoading$ReflectionLoadingException: Error creating edu.stanford.nlp.time.TimeExpressionExtractorImpl 
    at edu.stanford.nlp.util.ReflectionLoading.loadByReflection(ReflectionLoading.java:40) 
    at edu.stanford.nlp.time.TimeExpressionExtractorFactory.create(TimeExpressionExtractorFactory.java:57) 
    at edu.stanford.nlp.time.TimeExpressionExtractorFactory.createExtractor(TimeExpressionExtractorFactory.java:38) 
    at edu.stanford.nlp.ie.regexp.NumberSequenceClassifier.<init>(NumberSequenceClassifier.java:86) 
    at edu.stanford.nlp.ie.NERClassifierCombiner.<init>(NERClassifierCombiner.java:136) 
    at edu.stanford.nlp.pipeline.AnnotatorImplementations.ner(AnnotatorImplementations.java:121) 
    at edu.stanford.nlp.pipeline.AnnotatorFactories$6.create(AnnotatorFactories.java:273) 
    at edu.stanford.nlp.pipeline.AnnotatorPool.get(AnnotatorPool.java:152) 
    at edu.stanford.nlp.pipeline.StanfordCoreNLP.construct(StanfordCoreNLP.java:451) 
    at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:154) 
    at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:150) 
    at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:137) 
    at edu.stanford.nlp.pipeline.StanfordCoreNLP.main(StanfordCoreNLP.java:1323) 
Caused by: edu.stanford.nlp.util.MetaClass$ClassCreationException: MetaClass couldn't create public edu.stanford.nlp.time.TimeExpressionExtractorImpl(java.lang.String,java.util.Properties) with args [sutime, {}] 
    at edu.stanford.nlp.util.MetaClass$ClassFactory.createInstance(MetaClass.java:237) 
    at edu.stanford.nlp.util.MetaClass.createInstance(MetaClass.java:382) 
    at edu.stanford.nlp.util.ReflectionLoading.loadByReflection(ReflectionLoading.java:38) 
    ... 12 more 
Caused by: java.lang.reflect.InvocationTargetException 
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:466) 
    at edu.stanford.nlp.util.MetaClass$ClassFactory.createInstance(MetaClass.java:233) 
    ... 14 more 
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException 
    at de.jollyday.util.CalendarUtil.<init>(CalendarUtil.java:42) 
    at de.jollyday.HolidayManager.<init>(HolidayManager.java:66) 
    at de.jollyday.impl.DefaultHolidayManager.<init>(DefaultHolidayManager.java:46) 
    at edu.stanford.nlp.time.JollyDayHolidays$MyXMLManager.<init>(JollyDayHolidays.java:148) 
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:466) 
    at java.base/java.lang.Class.newInstance(Class.java:556) 
    at de.jollyday.caching.HolidayManagerValueHandler.instantiateManagerImpl(HolidayManagerValueHandler.java:60) 
    at de.jollyday.caching.HolidayManagerValueHandler.createValue(HolidayManagerValueHandler.java:41) 
    at de.jollyday.caching.HolidayManagerValueHandler.createValue(HolidayManagerValueHandler.java:13) 
    at de.jollyday.util.Cache.get(Cache.java:51) 
    at de.jollyday.HolidayManager.createManager(HolidayManager.java:168) 
    at de.jollyday.HolidayManager.getInstance(HolidayManager.java:148) 
    at edu.stanford.nlp.time.JollyDayHolidays.init(JollyDayHolidays.java:57) 
    at edu.stanford.nlp.time.Options.<init>(Options.java:90) 
    at edu.stanford.nlp.time.TimeExpressionExtractorImpl.init(TimeExpressionExtractorImpl.java:44) 
    at edu.stanford.nlp.time.TimeExpressionExtractorImpl.<init>(TimeExpressionExtractorImpl.java:39) 
    ... 19 more 
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException 
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:532) 
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:186) 
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:473) 
    ... 38 more 

Моя ява версия 1.9 и CoreNLP, который я скачал самые последние один, то есть. 3.7.0.

Кроме того, у меня нет нескольких версий Stanford CoreNLP. Это проблема в версии? Где я могу ошибиться?

ответ

2

Скачал установочную папку здесь: http://stanfordnlp.github.io/CoreNLP/download.html

Я расстегнула его и cd'd в Стэнфорде corenlp-полный-2016-10-31

Я вошел в эту команду:

java -cp "*" -Xmx2g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,parse,dcoref -file input.txt -outputFormat text 

И он работал правильно. Вы добавили лишние банки в папку? Какую систему вы используете?

Я работаю с Java 1.8, и насколько я знаю, Java 1.9 еще не выпущен, так что это может быть проблемой.

+0

Да. Проблема была в Java 1.9. Он хорошо работал с Java 1.8. Большое спасибо :) – Deesha

1

Если вы будете работать с Java 9, вы должны быть в состоянии использовать эту команду:

java -cp "*" -Xmx2g --add-modules java.xml.bind edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,parse,dcoref -file input.txt -outputFormat text 

Обратите внимание на использование --add-modules java.xml.bind, эта опция позволит вам решить NoClassDefFoundError ошибки: javax/XML/связывающийся/JAXBException.

Смежные вопросы