UNPKG

fuzzy-rater

Version:

Tooling for fuzzily rating text according to some query

82 lines 7.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const FuzzyWordMatcher_1 = require("./fuzzyRate/wordMatcher/FuzzyWordMatcher"); const createFuzzyNFATemplate_1 = require("./fuzzyRate/wordMatcher/createFuzzyNFATemplate"); const NFA_1 = require("./NFA/NFA"); const FuzzyMultiWordMatcher_1 = require("./fuzzyRate/wordMatcher/FuzzyMultiWordMatcher"); const FuzzyRater_1 = require("./fuzzyRate/FuzzyRater"); // TODO: currently this file just contains test setups, will be replaced by module exports // ============================================================================= let t1a = -Date.now(); const matcher = new FuzzyWordMatcher_1.FuzzyWordMatcher("something", 2); t1a += Date.now(); let t2a = -Date.now(); for (let i = 0; i < 1e5; i++) { matcher.getMatch("this is really something very cool right? or somthng"); } t2a += Date.now(); let t3a = -Date.now(); for (let i = 0; i < 1e5; i++) { matcher.getMatchData("this is really something very cool right? or somthng"); } t3a += Date.now(); // ============================================================================= let t1b = -Date.now(); const multiMatcher = new FuzzyMultiWordMatcher_1.FuzzyMultiWordMatcher("something", 2); t1b += Date.now(); let t2b = -Date.now(); for (let i = 0; i < 1e5; i++) { multiMatcher.getMatch("this is really something very cool right? or somthng"); } t2b += Date.now(); let t3b = -Date.now(); for (let i = 0; i < 1e5; i++) { multiMatcher.getMatchData("this is really something very cool right? or somthng"); } t3b += Date.now(); // ============================================================================= let t1c = -Date.now(); const nfaTemplate = createFuzzyNFATemplate_1.createFuzzyNFATemplate("something", 2); const nfa = new NFA_1.NFA(nfaTemplate); t1c += Date.now(); let t2c = -Date.now(); for (let i = 0; i < 1e5; i++) { nfa.execute("this is really something very cool right? or somthng"); } t2c += Date.now(); console.log("All executions evaluated 100 000 times\n"); console.log("Evaluating query 'something' with max 2 distance:"); console.log(` matcher setup: ${t1a}, execution: ${t2a}, matchExecution: ${t3a} \n multiMatcher setup: ${t1b}, execution: ${t2b}, matchExecution: ${t3b} \n nfa setup: ${t1c}, execution: ${t2c} \n `); // ============================================================================= let t4 = -Date.now(); const fuzzyRater = new FuzzyRater_1.FuzzyRater("some cool stuff"); t4 += Date.now(); let t5 = -Date.now(); for (let i = 0; i < 1e5; i++) { fuzzyRater.getScore("some things can't be some cool stuff while other stuff can be cool"); } t5 += Date.now(); let t6 = -Date.now(); for (let i = 0; i < 1e5; i++) { fuzzyRater.getScore("nothing here should realistically match the input query since it's too different"); } t6 += Date.now(); console.log("Evaluating query 'some cool stuff' with max 1 distance per word:"); console.log(`Fuzzy rater setup: ${t4}, execution when matching: ${t5}, execution when not matching: ${t6}`); // // ============================================================================= // const nfaDfa = new NFADFA(nfaTemplate); // let t5 = -Date.now(); // for (let i = 0; i < 1e5; i++) { // const matches = nfaDfa.executeTraced("this is really something very cool right?"); // const match = matches.reduce( // (best, m) => // m.final.matched && (best == null || m.final.distance < best.final.distance) // ? m // : best, // null as null | (typeof matches extends (infer T)[] ? T : never) // ); // const trace = match?.getPath(); // } // t5 += Date.now(); // console.log(t5); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrRUFBMEU7QUFDMUUsMkZBQXNGO0FBQ3RGLG1DQUE4QjtBQUU5Qix5RkFBb0Y7QUFDcEYsdURBQWtEO0FBRWxELDBGQUEwRjtBQUUxRixnRkFBZ0Y7QUFDaEYsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxtQ0FBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDckQsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUVsQixJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUN0QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsc0RBQXNELENBQUMsQ0FBQztDQUM1RTtBQUNELEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7QUFFbEIsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUMxQixPQUFPLENBQUMsWUFBWSxDQUFDLHNEQUFzRCxDQUFDLENBQUM7Q0FDaEY7QUFDRCxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBRWxCLGdGQUFnRjtBQUNoRixJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUN0QixNQUFNLFlBQVksR0FBRyxJQUFJLDZDQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztB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