UNPKG

fuzzy-rater

Version:

Tooling for fuzzily rating text according to some query

82 lines 7.67 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0VBQTBFO0FBQzFFLDJGQUFzRjtBQUN0RixtQ0FBOEI7QUFFOUIseUZBQW9GO0FBQ3BGLHVEQUFrRDtBQUVsRCwwRkFBMEY7QUFFMUYsZ0ZBQWdGO0FBQ2hGLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sT0FBTyxHQUFHLElBQUksbUNBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3JELEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7QUFFbEIsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLHNEQUFzRCxDQUFDLENBQUM7Q0FDNUU7QUFDRCxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBRWxCLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDMUIsT0FBTyxDQUFDLFlBQVksQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO0NBQ2hGO0FBQ0QsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUVsQixnRkFBZ0Y7QUFDaEYsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxZQUFZLEdBQUcsSUFBSSw2Q0FBcUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDL0Qs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