UNPKG

fuzzy-rater

Version:

Tooling for fuzzily rating text according to some query

62 lines 2.77 kB
import { IExtendedFuzzyNodeData, IFuzzyNodeData } from "./_types/IFuzzyNodeData"; import { IFuzzyTransitionData } from "./_types/IFuzzyTransitionData"; import { IFuzzyWordMatch } from "./_types/IFuzzyWordMatch"; import { NFADFA } from "../../DFA/NFADFA/NFADFA"; import { INFADFATrace } from "../../DFA/NFADFA/_types/INFADFATrace"; /** * A fuzzy word matcher that can be used to find a word in a number of items. * Initial setup time is relatively long, but matching per string happens in linear time. */ export declare class FuzzyMultiWordMatcher { protected NFA: NFADFA<IExtendedFuzzyNodeData, IFuzzyTransitionData, IExtendedFuzzyNodeData>; word: string; maxDistance: number; /** * Constructs a new fuzzy word matcher * @param word The word to look for * @param maxDistance The maximum error */ constructor(word: string, maxDistance: number); /** * Initializes the data structures used for rating * @param word The word to look for * @param maxDistance The maximal allowed distance */ protected initialize(word: string, maxDistance: number): void; /** * Finds the best match in a set of NFA nodes * @param matches The nodes to find the best match in * @param getNode Retrieves the node data * @param includeNonMatch Whether to fallback to the best non-match if no match was found * @returns The best match */ protected getBestMatch<M>(matches: M[], getNode: (data: M) => IExtendedFuzzyNodeData, includeNoneMatch?: boolean): M | undefined; /** * Retrieves the best match in the given text * @param text The text to find the query word in * @returns Whether the text matched, and the distance from the query word */ getMatch(text: string): { endIndex: number; distance: number; }[]; /** * Retrieves the best NFA trace given a DFA match * @param nfaDfaTrace The simplified NFA-DFA trace to obtain the best NFA trace in (text matches with lowest distance) * @returns The NFA trace */ protected getBestTrace(nfaDfaTrace: INFADFATrace<IFuzzyNodeData, IFuzzyTransitionData, IFuzzyNodeData>): { fromNode: IFuzzyNodeData; transition: IFuzzyTransitionData; }[] | undefined; /** * Retrieves the best match in the given text, and data of how to obtain it * @param text The text to find the query word in * @returns The distances from the query word, for each match (no distances = no matches), and how the text differed */ getMatchData(text: string): { distances: number[]; alterations: IFuzzyWordMatch[]; }; } //# sourceMappingURL=FuzzyMultiWordMatcher.d.ts.map