运行Stanford.NLP.CoreNLP示例时的TypeInitializationException

时间:2015-08-23 05:13:38

标签: .net f# stanford-nlp

我正在尝试从http://sergey-tihon.github.io/Stanford.NLP.NET/StanfordCoreNLP.html运行 F#示例。

该项目是Java Stanford NLP库的.NET移植,所以我想知道这是否可能是 IKVM 问题。

我正在 F#控制台应用程序中运行示例代码,用于 NET 4.5 F#Core 3.1 。我还从正确的jar中下载了models并更改了代码中的路径。

这是引发的例外:

System.TypeInitializationException was unhandled
Message: An unhandled exception of type 'System.TypeInitializationException' occurred in StanfordNLPNETFs.exe
Additional information: The type initializer for '.$Program' threw an exception.

在我在GitHub上报道的问题的第二篇文章中,还有一个屏幕截图:https://cloud.githubusercontent.com/assets/1194228/9424606/4aef5e0e-48f2-11e5-9690-c2668303d225.png

提前致谢。

2 个答案:

答案 0 :(得分:2)

您很有可能会使用nuget版本/ java发行版附带的Stanford-NLP发行版known issue

在任何情况下,将以下属性设置添加到注释管道配置应该允许给定的示例代码成功运行最新的Stanford.NLP.CoreNLP ver 3.5.2 nuget:

props.setProperty("ner.useSUTime", "false") |> ignore

答案 1 :(得分:0)

将.NET中的文化更改为“US”。

CultureInfo ci = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;

tagger = new MaxentTagger(modelsDirectory + @"\french.tagger");

我遇到了同样的问题。在2台计算机上它可以正常工作,而另外2台则没有。所以我认为这是与时间有关的环境,所以我改变了文化。我正在使用法语文本的POS标记器。