我使用的是stanford corenlp版本3.9.1的NuGet版本。我可以很好地创建和使用标准管道。但是,我在Java中编写了一些自定义管道注释器,其中一个我也写了C#等价物,所以我有Java和C#实现。我希望像
一样props.setProperty("annotators", "tokenize, ssplit, pos, lemma, custom.ner");
其中custom.ner可以是C#或Java代码。使用C#版本时,我得到:
结果StackTrace:at Java_java_lang_Class.forName0(String name, 布尔值初始化,ClassLoader加载器,类调用者)at java.lang.Class.forName(String className,CallerID)at edu.stanford.nlp.util.MetaClass.ClassFactory.construct(String, 类[])at edu.stanford.nlp.util.MetaClass.ClassFactory..ctor(String,Object []) 在edu.stanford.nlp.util.MetaClass.ClassFactory..ctor(String, 对象[],1)at edu.stanford.nlp.util.MetaClass.createFactory(Object [] objects)--- 内部异常堆栈跟踪结束--- at edu.stanford.nlp.util.MetaClass.createFactory(Object [] objects)at edu.stanford.nlp.util.MetaClass.createInstance(Object [] objects)
在 edu.stanford.nlp.pipeline.AnnotatorImplementations.custom(属性 properties,String property)at edu.stanford.nlp.pipeline.StanfordCoreNLP.lambda为$ null $ 67(AnnotatorImplementations ,属性,字符串)at edu.stanford.nlp.pipeline.StanfordCoreNLP .__<> Anon39.get()at edu.stanford.nlp.util.Lazy.3.compute()at edu.stanford.nlp.util.Lazy.get()at edu.stanford.nlp.pipeline.AnnotatorPool.get(String name)at edu.stanford.nlp.pipeline.StanfordCoreNLP.construct(属性, 布尔值,AnnotatorImplementations) edu.stanford.nlp.pipeline.StanfordCoreNLP..ctor(属性道具, Boolean enforceRequirements,AnnotatorPool annotatorPool)at edu.stanford.nlp.pipeline.StanfordCoreNLP..ctor(属性道具, Boolean enforceRequirements)at edu.stanford.nlp.pipeline.StanfordCoreNLP..ctor(属性道具)
在MyPath.NerScoringTests.Initialize()中 MyPath \ NerScoringTests.cs:第139行结果消息:初始化 方法MyPath.NerScoringTests.Initialize抛出异常。 edu.stanford.nlp.util.MetaClass + ClassCreationException: edu.stanford.nlp.util.MetaClass + ClassCreationException: java.lang.ClassNotFoundException:MyPath.Annotators.NERAnnotator ---> java.lang.ClassNotFoundException:MyPath.Annotators.NERAnnotator。
我怎么能把它连接起来以便MetaClass能够找到我的自定义注释器类?