export * from './utils'; /** Options for ROUGE-N evaluation */ export interface RougeNOptions { /** The size of the ngram used (default: 1) */ n?: number; /** The beta value used for the f-measure (default: 1.0) */ beta?: number; /** Whether comparison is case-sensitive (default: true) */ caseSensitive?: boolean; /** Custom ngram generator function */ nGram?: (tokens: string[], n: number) => string[]; /** Custom string tokenizer */ tokenizer?: (input: string) => string[]; } /** Options for ROUGE-S (skip-bigram) evaluation */ export interface RougeSOptions { /** The beta value used for the f-measure (default: 1.0) */ beta?: number; /** Whether comparison is case-sensitive (default: true) */ caseSensitive?: boolean; /** Maximum skip distance between words (default: Infinity) */ maxSkip?: number; /** Custom skip-bigram generator function */ skipBigram?: (tokens: string[], maxSkip?: number) => string[]; /** Custom string tokenizer */ tokenizer?: (input: string) => string[]; } /** Options for ROUGE-L (LCS) evaluation */ export interface RougeLOptions { /** The beta value used for the f-measure (default: 1.0) */ beta?: number; /** Whether comparison is case-sensitive (default: true) */ caseSensitive?: boolean; /** Custom LCS function */ lcs?: (a: string[], b: string[]) => string[]; /** Custom sentence segmenter */ segmenter?: (input: string) => string[]; /** Custom string tokenizer */ tokenizer?: (input: string) => string[]; } /** * Computes the ROUGE-N score for a candidate summary. * * Configuration object schema and defaults: * ``` * { * n: 1 // The size of the ngram used * beta: 1.0 // The beta value used for the f-measure * caseSensitive: true // Whether comparison is case-sensitive * nGram: , // The ngram generator function * tokenizer: // The string tokenizer * } * ``` * * `nGram` has a type signature of ((Array, number) => Array) * `tokenizer` has a type signature of ((string) => Array, // The skip-bigram generator function * tokenizer: // The string tokenizer * } * ``` * * `skipBigram` has a type signature of ((Array, number) => Array) * `tokenizer` has a type signature of ((string) => Array // The least common subsequence function * segmenter: , // The sentence segmenter * tokenizer: // The string tokenizer * } * ``` * * `lcs` has a type signature of ((Array, Array) => Array) * `segmenter` has a type signature of ((string) => Array Array