gently-js
is a module which helps your presence online be more gentle. The module exports a function called validate({ text, strict = false, spellcheck = true })
, which accepts a sentence as a string and returns if any of the words is abusive.
The strict flag indicates whether gently-js
should also check the direct synonyms of each word.
This module does not claim high-precision and completeness, it's just a soft reminder that we should be nice to each other ❤️.
Install the module with:
npm i gently-js
Use the module with:
const { validate } = require('gently-js');
validate({ text: "I'm pissed off of all of this." })
.then(warnings => {
// [{ word: 'pissed' }]
console.log(warnings);
});
validate({ text: "I'm pissed off of all of this.", strict: true })
.then(warnings => {
// [{ word: 'off', syn: 'murder' }, { word: 'pissed' }]
console.log(warnings);
});
The module performs the following algorithm:
- Tokenizes the words in the sentence using
wordpos
. This phase drops stop words and removes duplicates. - Checks each individual word for spelling errors using
nspell
. If spelling errors are detected, the module validates the suggested words, which are the closest to the original word. - Each word goes through validation by comparing it to the data set by CMU.
- If the
strict
flag is set totrue
, the module gets all the synonyms of the validated words and validates them against the bad-words data set. - The errors are reported in the format:
interface Report {
[key: number]: BadWord;
}
interface BadWord {
word: string;
corrected: string;
syn: string;
}
MIT