我正在研究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
文件路径正确。
答案 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替换它们。
希望这有帮助。