使用Stanford nlp库的无效Stream标头

时间:2014-02-26 17:08:31

标签: java scala stanford-nlp

我正在研究Stanford POS tagger tutorial。我在Scala中这样做,但我不认为这很重要。

产生错误的行是

val tagger=new MaxentTagger("/Users/user1/Documents/taggers/left3words-wsj-0-18.tagger")

,错误是

edu.stanford.nlp.io.RuntimeIOException: java.io.StreamCorruptedException: invalid stream header: 0003CBE8

文件路径正确。

3 个答案:

答案 0 :(得分:2)

我有同样的问题= /

您应该将“taggers”文件夹放在项目资源文件夹中,然后您的路径将如下所示: “taggers/NAME_OF_MODEL.tagger”(仅“taggers”文件夹应在路径中。)

答案 1 :(得分:1)

默认情况下,标记器将模型文件路径视为类路径相对资源路径,但它也接受完全限定的URL:

val tagger=new MaxentTagger("file:/Users/user1/Documents/taggers/left3words-wsj-0-18.tagger")

答案 2 :(得分:1)

通常在尝试使用经过不同标记器版本培训的模型时会发生这种情况。确保使用随3.3.1标记器分发的模型。

我曾遇到过同样的问题。然后我意识到我使用的jar版本来自3.3.1版本。该模型来自3.2.0。我删除了3.2.0模型文件并用3.3.1替换它们。

希望这有帮助。