2009-12-23 47 views
1

我想这一点:斯坦福POS恶搞在Java中

Sentence<TaggedWord> taggedString = MaxentTagger.tagStringTokenized("here is a string to tag"); 

这给了我:

Error: \u\nlp\data\pos-tagger\wsj3t0-18-left3words\left3words-wsj-0-18.tagger (The system cannot find the path specified)

我使用的是斯坦福大学的POS tagger

我能做些什么来克服这个问题?

+0

下载斯坦福标记器的完整包,那里你会发现模型,例如,left3words ... tagger。 – Skarab

回答

4

看来你首先得实例化一个恶搞传递包含的文件:

new MaxentTagger("models/left3words-wsj-0-18.tagger"); 

这是为以后使用标记方法非常讨厌的是静态的:

MaxentTagger.tagStringTokenized("here is a string to tag"); 

我也必须通过-Xmx256m以使其在该设置下运行。

+2

是的,这是非常讨厌的,但这已被修复现在:-)。第3版有一个非常干净的API!你现在应该用MaxentTagger tagger = new MaxentTagger(args [0]); String ans = tagger.tagString(“这是一个要标记的字符串。”); –

2

这是说它无法找到该路径。那么,它是否存在于你的机器上?

请注意,斜杠是反斜杠 - 您的操作系统是否支持反斜杠作为文件分隔符?

另外请注意,这是一个绝对路径 - 是否有意?

如果一切正常,文件是否存在?

编辑:如果没有,你应该在这里下载它(http://github.com/tiendung/ruby-nlp/blob/master/left3words-wsj-0-18.tagger),把它放在系统指定的路径中,看看会发生什么。

+0

它不存在,但我不知道我应该从哪里得到它。我下载了这个:http://nlp.stanford.edu/software/tagger.shtml所以我认为所有的文件将包括在内:S – Lilz

+0

添加了一个URL到我的回复 – danben