UNPKG

wordmap

Version:
56 lines (55 loc) 1.8 kB
"use strict"; 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;