ActivitySpam Filter
Extraction and modernization of the filters in activityspam + a minimal databank reimplementation

Usage
Simple
import { SpamFilter, SimpleDatabankRedis } from 'activityspam-filter';
const redisDb = new SimpleDatabankRedis();
const filter = new SpamFilter(redisDb);
await filter.train('spam', foo);
await filter.train('ham', bar);
const { isSpam } = await filter.test(abc);
SpamFilter(db, [tokenizerOptions])
- db – a
SimpleDatabank
compatible class such as the supplied SimpleDatabankRedis
SpamFilter API
train(category, data) => Promise<SpamFilterTrainingResult>
- category – should be either
spam
or ham
depending on what kind of content to train it with - data – should be an
object
or an array
of the data that should be tokenized and trained on
Returns an object
with properties:
- cat – the supplied
category
- object – a stringified representation of the data that's been supplied
- date – the ISO date this training data was created
- elapsed – the amount of milliseconds the training took
test(data) => Promise<SpamFilterDecision>
- data – should be an
object
or an array
of the data that should be tokenized and tested
Returns an object
with properties:
- probability – a number
- isSpam – a boolean
- bestKeys – a list of the best tokens
- elapsed – the amount of milliseconds the check took
SimpleDatabankRedis(ioRedisConfig)
Configured like ioredis and provides a SimpleDatabank
compatible implementation of that.
Types
SimpleDatabank
– the structure of a databank style implementation
See also