wordmap
Version:
Multi-Lingual Word Alignment Prediction
56 lines (55 loc) • 1.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const AlignmentIndex_1 = require("./AlignmentIndex");
const NgramIndex_1 = require("./NgramIndex");
/**
* A collection of indexes on the permutation of possible alignments.
*/
class PermutationIndex {
constructor() {
this.alignPermFreqIndex = new AlignmentIndex_1.default();
this.srcNgramPermFreqIndex = new NgramIndex_1.default();
this.tgtNgramPermFreqIndex = new NgramIndex_1.default();
}
/**
* Returns an index of alignment frequencies in the permutations
*/
get alignmentFrequency() {
return this.alignPermFreqIndex;
}
/**
* Returns an index of source n-gram frequencies in the permutations
* @return {NgramIndex}
*/
get sourceNgramFrequency() {
return this.srcNgramPermFreqIndex;
}
/**
* Returns an index of target n-gram frequencies in the permutations
* @return {NgramIndex}
*/
get targetNgramFrequency() {
return this.tgtNgramPermFreqIndex;
}
/**
* Adds a sentence alignment to the index.
* @param {Alignment[]} alignments - an array of alignments to add
*/
addAlignments(alignments) {
for (let i = 0, len = alignments.length; i < len; i++) {
this.addAlignment(alignments[i]);
}
}
/**
* Adds a single alignment to the index
* @param alignment
*/
addAlignment(alignment) {
// alignment frequency in permutations
this.alignPermFreqIndex.increment(alignment);
// n-gram frequency in permutations
this.srcNgramPermFreqIndex.increment(alignment.sourceNgram);
this.tgtNgramPermFreqIndex.increment(alignment.targetNgram);
}
}
exports.default = PermutationIndex;