我想在我的Unity3D项目中加入Stanford CoreNLP。我从Nuget添加了CoreNLP,并从CoreNLP下载了NLP模型。然后我将NLP模型文件夹复制到project -> bin -> Debug
文件夹中。
代码如下所示:
var jarRoot = @"stanford-corenlp-3.9.1-models\";
const string text = "Kosgi Santosh sent an email to Stanford University. He didn't get a reply.";
var props = new Properties();
props.setProperty("annotators", "tokenize, ssplit, pos, lemma, ner, parse, dcoref");
props.setProperty("sutime.binders", "0");
var curDir = Environment.CurrentDirectory;
Directory.SetCurrentDirectory(jarRoot);
var pipeline = new StanfordCoreNLP(props);
Directory.SetCurrentDirectory(curDir);
// Annotation
var annotation = new Annotation(text);
pipeline.annotate(annotation);
var sentences = annotation.get(typeof(CoreAnnotations.SentencesAnnotation));
if (sentences == null)
{
return;
}
foreach (Annotation sentence in sentences as ArrayList)
{
System.Console.WriteLine(sentence);
}
运行后,我只收到一些错误信息
SLF4J:无法加载“org.slf4j.impl.StaticLoggerBinder”类。
SLF4J:默认为无操作(NOP)记录器实现
SLF4J:请参阅http://www.slf4j.org/codes.html#StaticLoggerBinder 进一步的细节。
我搜索了SLF4J网站,但该解决方案仅适用于Java项目。我怎么能在我的C#项目中解决这个问题?
答案 0 :(得分:0)
首先,转到Visual Studio(我有VS 2017)。然后转到“工具”菜单,然后选择“ NuGet软件包管理器”->“软件包管理器控制台”。软件包管理器控制台将出现。键入以下命令:Install-Package slf4j-NetCommonLogging -Version 1.7.5.4,然后按Enter键。 VS将为您的项目安装slf4j-NetCommonLogging dll文件,它将正确运行,没有任何错误或警告。享受。
答案 1 :(得分:-1)
SLF4J是一个Java日志库,与您的C#项目无关。
似乎CoreNLP(我个人并不熟悉)是一个Java应用程序。您需要修复该应用程序的配置,以在其SLF4J binding library中拥有Java classpath。有关于its download documentation中设置CoreNLP类路径的说明;我建议仔细检查您是否正确配置了CoreNLP。