fuzzy-scorer
v1.0.2
Published
Define your rules. Pass in your dataset. Receive a scored list back.
Downloads
1
Readme
fuzzy-scorer
Define your rules. Pass in your dataset. Receive a scored list back.
Install
yarn add fuzzy-scorer
Sample Usage
import FuzzyScorer from 'fuzzy-scorer';
// define rules
const rules = [
{
logic: r => r && true,
points: 50,
},
{
logic: () => false,
points: 25,
},
];
// init with rules
const fuzzy = new FuzzyScorer(rules);
// score input against the rules
const resultOne = fuzzy.score({ foo: 'bar' });
// score collection against rules
const resultTwo = fuzzy.scoreList([{ foo: 'bar' }]);
console.log(resultOne);
console.log(resultTwo);
/**
* Output
* 50
* [{score:50,data:{foo:'bar'}}]
*/
API
constructor(rules:Array<Rule>): FuzzyScorer
- params
- rules: Array<Rule>
- Rule
- points: number - Total possible points for rule
- logic: function - Object to be scored aginst will be passed in. Function should return false for no points, true for all points, or greater than 0 and less than 1 for partial points.
- Rule
- rules: Array<Rule>
example:
const rules = [];
rules.push({
points: 100,
logic: (input) => return input.foo === 'bar' ? return true : false
})
const fuzzy = new FuzzyScorer(rules)
.score(input: mixed): number
- params
- input: mixed - This is the object that you wish to score against defined rules.
- returns
- number - number greater than or equal to 0.
example:
const foo = {bar:123};
fuzzy.score(foo);
.scoreList(list: Array): Array<{score: number, data:mixed}>
- params
- list: Array<mixed> - Pass in an array of objects. Array will be iterated and each object will be scored using .score() function.
- returns
- Array<{score: number, data:mixed}> - A list of objects which contain a score and the original input/object.
example:
const foos = [{foo:321},{bar:123}];
fuzzy.scoreList(foos);