如何从BerkeleyAligner中读取对齐类型?——Java



http://code.google.com/p/berkeleyaligner/下载主干代码后,我将项目添加到Eclipse上的构建路径中。然后使用下面的代码,我可以提取我从sourceFile和targetFile中读取的每个句子对的对齐。对准后,如何从BerkeleyAligner读取Alignment类型?

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???
    }
}

。源文件:

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.

打印GIZA。align有一个方法:

public void writeGIZA(PrintWriter out, int idx)
吉萨

:

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

idx为句子对id。

out就是您要打印它的地方。

最新更新