Java 在stanford pos标记器中编辑配置文件

Java 在stanford pos标记器中编辑配置文件,java,nlp,stanford-nlp,maxent,Java,Nlp,Stanford Nlp,Maxent,我标记了一个简单的句子,这是我的代码: 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");

我标记了一个简单的句子,这是我的代码:

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 
编辑属性文件后,它根本没有任何效果。 例如,我已将标记分隔符更改为(*),但在输出中它仍会打印(33;)


如何在eclipse中使用模型配置文件?

您可以加载属性文件并将其传递给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
属性。

您可以使用下载的ZIP文件中的bash文件,而不是为此编写java代码。 提取postagger的ZIP文件后,编辑以下bash文件:

斯坦福邮递公司

它应具有以下行:

java -mx300m -cp 'stanford-postagger.jar:lib/*' edu.stanford.nlp.tagger.maxent.MaxentTagger -model $1 -textFile $2
在-model$1“之后添加一个名为“-tagSeparator[YourTag]”的参数:

java -mx300m -cp 'stanford-postagger.jar:lib/*' edu.stanford.nlp.tagger.maxent.MaxentTagger -model $1 -tagSeparator * -textFile $2
要运行它(请确保已授予必要的权限):


请您详细解释一下第一个解决方案>>虚拟机参数好吗?具体要解释什么?第二个解决方案工作正常,但我想更改属性文件中的多个参数,因此在这种情况下第一个解决方案更好。问题是如何将属性文件作为参数传递给程序?我已经编辑了示例代码(并检查);现在就试试。我认为你应该提出另一个问题,并详细解释你的问题。特别是,预期的结果是什么,实际的结果是什么(似乎在这里)和复制步骤。目前我不明白你的问题。请注意,双向模型。还有其他模型牺牲了少量的精度来大幅提高速度。
./stanford-postagger.sh models/model_name.tagger in_filename > out_filename