Как прочитать тип выравнивания из BerkeleyAligner? - Джава - PullRequest
1 голос
/ 02 января 2012

После загрузки кода транка из 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???
    }
}

например. ИСХ:

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

например. Целевой_файл:

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

1 Ответ

1 голос
/ 03 января 2012

Распечатать Гизу. Выравнивание имеет метод для этого:

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 - это просто идентификатор пары предложений.

out именно там, где вы хотите его напечатать.

...