3
0
mirror of https://github.com/reality/dbot.git synced 2024-12-24 19:52:36 +01:00

experimental bayesian classifier for detecting being an asshole and drama

This commit is contained in:
Luke Slater 2012-02-14 18:00:03 +00:00
parent e07eca7168
commit 5cc3b224c2

62
modules/drama.js Normal file
View 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);
};