C# 尝试从URL读取标记器文件时出现Stanford POS标记器错误

C# 尝试从URL读取标记器文件时出现Stanford POS标记器错误,c#,java,filenotfoundexception,stanford-nlp,pos-tagger,C#,Java,Filenotfoundexception,Stanford Nlp,Pos Tagger,我正在为一个项目使用POS标记器,当它从我的计算机(项目文件夹)读取标记器文件时,它会成功工作。 但是我需要先上传tagger文件,然后从URL读取tagger文件。 为此,我上传了POS-tagger文件,并试图通过向MaxentTagger方法的构造函数提供URL来读取tagger文件:(我的代码是C#,我已经重写了MaxentTagger类,因此它的构造函数如下所示: 公共标记器() { java.io.ByteArrayInputStream inputStream=new java.i

我正在为一个项目使用POS标记器,当它从我的计算机(项目文件夹)读取标记器文件时,它会成功工作。 但是我需要先上传tagger文件,然后从URL读取tagger文件。 为此,我上传了POS-tagger文件,并试图通过向MaxentTagger方法的构造函数提供URL来读取tagger文件:(我的代码是C#,我已经重写了MaxentTagger类,因此它的构造函数如下所示:

公共标记器() {

java.io.ByteArrayInputStream inputStream=new java.io.ByteArrayInputStream(System.io.File.ReadAllBytes(@“C:\models\english-left3words-distsim.tagger”)

base.readModelAndInit(null,新java.io.DataInputStream(inputStream),false); }

但是,当我运行代码时,会出现以下错误:

“stanford-postagger.dll中发生“java.lang.RuntimeException”类型的未处理异常

其他信息:java.io.FileNotFoundException:找不到路径“C:\u\nlp\data\pos\u tags\u are\u austed\egw4 reut.512.clusters”的一部分。“


有人知道为什么会发生这种情况以及我如何解决这个问题吗?我非常感谢任何帮助!

这个错误来自于程序试图加载一个文件,该文件给出了从单词到簇的分布相似性映射。它试图从训练属性文件中指定的位置获取它(当然,您在该位置没有文件)。发生这种情况的原因是,在调用readModelAndInit()时,您没有正确初始化的TaggerConfig对象。初始化它的方式是不直观的(架构很差),但您遇到这种情况的唯一原因是您试图使用非公共API

为什么不能按如下方式使用公共API

MaxentTagger base = new MaxentTagger("http://my.url.com/models/english-left3words-distsim.tagger");

“我的代码是C#”-那你为什么要发布Java代码?非常感谢!你的评论非常有用,我可以让它工作。我想我的问题过于复杂,部分原因是因为这个库缺乏良好的文档。如果你只想要distsim文件,你可以。