我标记了一个简单的句子,这是我的代码:
package tagger;
import edu.stanford.nlp.tagger.maxent.MaxentTagger;
public class myTag {
public static void main(String[] args) {
MaxentTagger tagger = new MaxentTagger("D:/tagger/english-bidirectional-distsim.tagger");
String sample = "i go to school by bus";
String tagged = tagger.tagString(sample);
System.out.println(tagged);
}
}
这是输出:
Reading POS tagger model from D:/tagger/english-bidirectional-distsim.tagger ... done [3.0 sec].
i_LS go_VB to_TO school_NN by_IN bus_NN
编辑属性文件后,它根本没有任何效果。 例如,我已将标签分隔符更改为(*),但在输出中仍然打印(_)。
我怎么能在eclipse中使用模型配置文件?
答案 0 :(得分:1)
您可以加载Properties文件并将其传递给MaxEnt的构造函数,如下所示:
Properties props = new Properties();
props.load(new FileReader("path/to/properties"));
MaxentTagger tagger = new MaxentTagger("D:/tagger/english-bidirectional-distsim.tagger", props);
您还可以直接在props
对象中设置属性:
props.setProperty("tagSeparator", "*");
注意:如果您使用原始属性文件,它会失败,例如
java.io.FileNotFoundException: /u/nl
p/data/pos_tags_are_useless/egw4-reut.512.clusters (No such file or directory)
然后删除arch
和trainFile
属性。
答案 1 :(得分:0)
您可以使用下载的ZIP文件中的bash文件,而不是为此编写java代码。 解压缩postagger的ZIP文件后,编辑以下bash文件:
stanford-postagger.sh
它应该有以下一行:
<!-- Comment --!>
在“ - model $ 1”之后添加一个名为“ -tagSeparator [YourTag] ”的参数:
java -mx300m -cp 'stanford-postagger.jar:lib/*' edu.stanford.nlp.tagger.maxent.MaxentTagger -model $1 -textFile $2
运行它(确保给出必要的权限):
java -mx300m -cp 'stanford-postagger.jar:lib/*' edu.stanford.nlp.tagger.maxent.MaxentTagger -model $1 -tagSeparator * -textFile $2
瞧!