mirror of
https://github.com/reality/dbot.git
synced 2024-11-27 22:39:26 +01:00
experimental bayesian classifier for detecting being an asshole and drama
This commit is contained in:
parent
e07eca7168
commit
5cc3b224c2
62
modules/drama.js
Normal file
62
modules/drama.js
Normal file
@ -0,0 +1,62 @@
|
||||
var brain = require('brain');
|
||||
|
||||
var drama = function(dbot) {
|
||||
var dbot = dbot;
|
||||
var last = {};
|
||||
var options = {
|
||||
'backend': {
|
||||
'type': 'Redis',
|
||||
'options': {
|
||||
'hostname': 'localhost',
|
||||
'port': 6379,
|
||||
'name': 'dbotdrama'
|
||||
}
|
||||
},
|
||||
|
||||
'thresholds': {
|
||||
'drama': 3,
|
||||
'beinganasshole': 3,
|
||||
'normal': 1
|
||||
},
|
||||
|
||||
'def': 'normal'
|
||||
};
|
||||
var bayes = new brain.BayesianClassifier(options);
|
||||
|
||||
var commands = {
|
||||
'~train': function(data, params) {
|
||||
if(data.user == dbot.admin) {
|
||||
bayes.train(last[params[1]][params[2]], params[3]);
|
||||
dbot.say(data.channel, 'Last thing ' + params[2] + ' said in ' +
|
||||
params[1] + ' classified as \'' + params[3] + '\'');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
'onLoad': function() {
|
||||
return commands;
|
||||
},
|
||||
|
||||
'listener': function(data) {
|
||||
if(reporting == true) {
|
||||
var category = bayes.classify(data.message, function(category) {
|
||||
console.log(category + '!');
|
||||
}.bind(this));
|
||||
}
|
||||
|
||||
if(last.hasOwnProperty(data.channel)) {
|
||||
last[data.channel][data.user] = data.message;
|
||||
} else {
|
||||
last[data.channel] = { };
|
||||
last[data.channel][data.user] = data.message;
|
||||
}
|
||||
},
|
||||
|
||||
'on': 'PRIVMSG'
|
||||
};
|
||||
}
|
||||
|
||||
exports.fetch = function(dbot) {
|
||||
return drama(dbot);
|
||||
};
|
Loading…
Reference in New Issue
Block a user