2

私は簡単な文にタグを付けました。これが私のコードです:

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 でモデル構成ファイルを使用するにはどうすればよいですか?

4

2 に答える 2

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)

次に属性を削除archtrainFileます。

于 2015-04-03T09:57:45.507 に答える
0

このための Java コードを記述する代わりに、ダウンロードした ZIP ファイルに含まれる bash ファイルを使用できます。postagger の ZIP ファイルを解凍したら、次の bash ファイルを編集します。

stanford-postagger.sh

次の行が必要です。

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

ほら!

于 2016-06-04T13:42:10.643 に答える