当试图从URL读取标记器文件时,斯坦福POS标记器错误
本文关键字:斯坦福 POS 错误 文件 URL 读取 | 更新日期: 2023-09-27 18:02:49
我正在为一个项目使用POS标记器,当它从我的计算机(项目的文件夹)读取标记器文件时,它成功地工作。但我需要先上传标签文件,并从URL读取标签文件。要做到这一点,我已经上传了POS标记器文件,我正试图通过将URL提供给MaxentTagger方法的构造函数来读取标记器文件:(我的代码是c#,我已经覆盖了MaxentTagger类,所以它的构造函数看起来像这样:
public Tagger (){
. io .ByteArrayInputStream = new java.io.ByteArrayInputStream(System.IO.File.ReadAllBytes(@"C:'models'english-left3words- distsimm .tagger"));
基地。readModelAndInit(null, new java.io.DataInputStream(inputStream), false);}
然而,当我运行代码时,我得到了这个错误:
"类型为'java.lang '的未处理异常。在stanford- postager .dll中发生了RuntimeException
附加信息:java.io.FileNotFoundException:无法找到路径"C:'u'nlp'data'pos_tags_are_useless'egw4-reut.512.clusters"的一部分。"
有谁知道为什么会发生这种情况,我该如何解决这个问题?我非常感谢任何形式的帮助!
这个错误是由于程序试图加载一个文件,该文件给出了从单词到集群的分布相似映射。它试图从训练属性文件中指定的位置获得它(并且您自然没有在该位置的文件)。发生这种情况是因为在调用readModelAndInit()时没有正确初始化的TaggerConfig对象。它被初始化的方式是不直观的(糟糕的架构),但你只是遇到这个,因为你试图使用一个非公共的API。
为什么不能像下面这样使用公共API呢?
MaxentTagger base = new MaxentTagger("http://my.url.com/models/english-left3words-distsim.tagger");