斯坦福nlp中的标记和情感分析程序

时间:2017-04-28 10:17:45

标签: c# stanford-nlp

我有一个c#代码(虽然已复制) 我在这个声明中得到错误 - > var pipeline = new StanfordCoreNLP(props); (stanford-corenlp-3.7.0.dll中发生了'java.lang.RuntimeException'类型的未处理异常

其他信息:edu.stanford.nlp.io.RuntimeIOException:加载标记器模型时出错(可能缺少模型文件))

我的模型n核心nlp是相同的版本 斯坦福大学corenlp-3.7.0-models.jar 斯坦福大学corenlp-3.7.0.jar

非常感谢任何帮助!!

1 个答案:

答案 0 :(得分:0)

许多消息来源建议提取&#st; stanford-corenlp-full-2017-06-09'(link)文件夹并添加提取的stanford-corenlp-3.8.0模型的.jar'到项目。

我尝试了很多方法,将其属性更改为“将操作构建到内容”和“复制到输出目录”设置为“如果更新则复制”,但无法找到解决方案来执行相同操作内部文件夹中的文件。

所以,我做的是:

提取的&stanford-corenlp-3.8.0-models.jar'并将其复制到' bin / debug'。 我的代码如下:

var jarRoot = @"stanford-corenlp-3.8.0-models\";
var props = new Properties();
props.setProperty("annotators", "tokenize, ssplit, pos, parse, sentiment");
props.setProperty("sutime.binders", "0");
var curDir = Environment.CurrentDirectory;
var modelsDirectory = curDir + "\\" + jarRoot + @"\edu\stanford\nlp\models";
Directory.SetCurrentDirectory(jarRoot);

// Loading POS Tagger
var tagger = new MaxentTagger(modelsDirectory + @"\pos-tagger\english-left3words\english-left3words-distsim.tagger");

var pipeline = new StanfordCoreNLP(props);

使用此设置和代码,它对我来说很好。

注意:应该进行版本更改。       同样在生产环境中,它应该以不同的方式处理(我不知道如何!!!)。