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
strictflag 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