UNPKG

markov-strings

Version:
81 lines (80 loc) 2 kB
export type MarkovInputData = { string: string; }[]; export type MarkovGenerateOptions = { maxTries?: number; prng?: () => number; filter?: (result: MarkovResult) => boolean; }; /** * Data to build the Markov instance */ export type MarkovConstructorOptions = { stateSize?: number; }; /** * While `stateSize` is optional as a constructor parameter, * it must exist as a member */ export type MarkovDataMembers = { stateSize: number; }; export type MarkovResult = { string: string; score: number; refs: MarkovInputData; tries: number; }; export type MarkovFragment = { words: string; refs: MarkovInputData; }; export type Corpus = { [key: string]: MarkovFragment[]; }; export type MarkovImportExport = { corpus: Corpus; startWords: MarkovFragment[]; endWords: MarkovFragment[]; options: MarkovDataMembers; }; export default class Markov { data: MarkovInputData; options: MarkovDataMembers; startWords: MarkovFragment[]; endWords: MarkovFragment[]; corpus: Corpus; private defaultOptions; /** * Creates an instance of Markov generator. * * @param {MarkovConstructorOptions} [options={}] * @memberof Markov */ constructor(options?: MarkovConstructorOptions); /** * Imports a corpus. This overwrites existing data. * * @param data */ import(data: MarkovImportExport): void; /** * Exports structed data used to generate sentence. */ export(): MarkovImportExport; addData(rawData: MarkovInputData | string[]): void; /** * Builds the corpus. You must call this before generating sentences. * * @memberof Markov */ private buildCorpus; /** * Generates a result, that contains a string and its references * * @param {MarkovGenerateOptions} [options={}] * @returns {MarkovResult} * @memberof Markov */ generate(options?: MarkovGenerateOptions): MarkovResult; }