1

からトランクコードをダウンロードした後http://code.google.com/p/berkeleyaligner/、Eclipseのビルドパスにプロジェクトを追加しました。次に、以下のコードを使用して、sourceFileとtargetFileから読み取った各文のペアの配置を抽出できます。Alignmentアラインメント後、BerkeleyAlignerからタイプを読み取る方法は?

import edu.berkeley.nlp.wa.mt.Alignment;
import edu.berkeley.nlp.wa.mt.SentencePair;
import edu.berkeley.nlp.wordAlignment.combine.WordAlignerCombined;
public static void main(String[] args) {
BufferedReader brSrc = new BufferedReader(new FileReader ("sourceFile"));
BufferedReader brTrg = new BufferedReader(new FileReader ("targetFile"));
while ((currentSrcLine = brSrc.readLine()) !=null) {
    String currentTrgLine = brTrg.readline();
    // Reads into BerkeleyAligner SentencePair format.
    SentencePair src2trg = new SentencePair(sentCounter, params.get("source"),
        Arrays.asList(srcLine.split(" ")), Arrays.asList(trgLine.split(" ")));
    // Generate Alignment type from SentencePair
    WordAlignerCombined aligner;
    Alignment alignedPair = aligner.alignSentencePair(src2trg);
    // How do i print out the Alignment???
    }
}

例:sourceFile:

this is the first line in the textfile.
that is the second line.
foo bar likes to eat bar foo.

例:targetFile:

Dies ist die erste Textzeile in der Datei.
das ist die zweite Zeile.
foo bar gerne bar foo essen.
4

1 に答える 1

1

GIZAを印刷します。アラインメントにはそのための方法があります。

public void writeGIZA(PrintWriter out, int idx)

GIZAは:

"# sentence pair (%d) source length %d target length %d alignment score : 0\n"
"NULL ({ %s })"
" %s ({ %s })" (englishSentence.get(i), StrUtils.join(alignments))

idx単なる文のペアIDです。

out印刷したい場所です。

于 2012-01-02T23:16:05.597 に答える