From 264054d7767dcb8bcc7c99e7a7c2daacc30153f6 Mon Sep 17 00:00:00 2001 From: Matheus Faria <matheus.sousa.faria@gmail.com> Date: Thu, 8 Feb 2018 12:09:15 -0200 Subject: [PATCH] Renaming brain module to classifier module --- .../bot/{brain.coffee => classifier.coffee} | 21 ++++++++++--------- scripts/bot/index.coffee | 8 +++---- scripts/events/configure.coffee | 4 ++-- 3 files changed, 17 insertions(+), 16 deletions(-) rename scripts/bot/{brain.coffee => classifier.coffee} (92%) diff --git a/scripts/bot/brain.coffee b/scripts/bot/classifier.coffee similarity index 92% rename from scripts/bot/brain.coffee rename to scripts/bot/classifier.coffee index 85c03e4..b1bcd5c 100644 --- a/scripts/bot/brain.coffee +++ b/scripts/bot/classifier.coffee @@ -2,7 +2,7 @@ require 'coffeescript/register' natural = require 'natural' -brain = {} +classifier = {} lang = (process.env.HUBOT_LANG || 'en') @@ -13,7 +13,8 @@ if lang != 'en' actionHandler = require './action-handler' -classifier = {} +# Classifier that holds all root level interactions +root_classifier = {} error_count = 0 classifyInteraction = (interaction, classifier) -> @@ -45,20 +46,20 @@ classifyInteraction = (interaction, classifier) -> interaction.classifier.addDocument(doc, doc) interaction.classifier.train() -brain.train = () -> +classifier.train = () -> console.log 'Processing interactions' console.time 'Processing interactions (Done)' - classifier = new natural.LogisticRegressionClassifier(PorterStemmer) + root_classifier = new natural.LogisticRegressionClassifier(PorterStemmer) for interaction in global.config.interactions if interaction.level != 'context' - classifyInteraction interaction, classifier + classifyInteraction interaction, root_classifier console.log('\tProcessing interaction: ' + interaction.name) console.log 'Training Bot (This could be take a while...)' - classifier.train() + root_classifier.train() console.timeEnd 'Processing interactions (Done)' @@ -116,9 +117,9 @@ clearErrors = (res) -> key = 'errors_' + res.envelope.room + '_' + res.envelope.user.id res.robot.brain.set(key, 0) -brain.processMessage = (res, msg) -> +classifier.processMessage = (res, msg) -> context = getContext(res) - currentClassifier = classifier + currentClassifier = root_classifier trust = global.config.trust interaction = undefined debugMode = isDebugMode(res) @@ -157,7 +158,7 @@ brain.processMessage = (res, msg) -> error_node_name = interaction.next.error[0] else if interaction?.next? setContext(res, undefined) - return brain.processMessage(res, msg) + return classifier.processMessage(res, msg) else error_count = incErrors res if error_count > actionHandler.errorNodesCount() @@ -178,4 +179,4 @@ brain.processMessage = (res, msg) -> return node_name or error_node_name -module.exports = brain +module.exports = classifier diff --git a/scripts/bot/index.coffee b/scripts/bot/index.coffee index 39ec087..7ddf7a0 100644 --- a/scripts/bot/index.coffee +++ b/scripts/bot/index.coffee @@ -3,7 +3,7 @@ require 'coffeescript/register' { regexEscape, loadConfigfile } = require '../lib/common' { getUserRoles, checkRole } = require '../lib/security' actionHandler = require './action-handler' -brain = require './brain' +classifier = require './classifier' typing = (res, t) -> res.robot.adapter.callMethod 'stream-notify-room', @@ -52,7 +52,7 @@ module.exports = (_config, robot) -> return actionHandler.registerActions(global.config) - brain.train() + classifier.train() robot.hear /(.+)/i, (res) -> res.sendWithNaturalDelay = sendWithNaturalDelay.bind(res) @@ -61,9 +61,9 @@ module.exports = (_config, robot) -> # check if robot should respond if res.envelope.user.roomType in ['c', 'p'] if (createMatch(res.robot.name)) or (createMatch(res.robot.alias)) - actionName = brain.processMessage(res, msg) + actionName = classifier.processMessage(res, msg) actionHandler.takeAction(actionName, res) # TODO: Add engaged user conversation recognition/tracking else if res.envelope.user.roomType in ['d', 'l'] - actionName = brain.processMessage(res, msg) + actionName = classifier.processMessage(res, msg) actionHandler.takeAction(actionName, res) diff --git a/scripts/events/configure.coffee b/scripts/events/configure.coffee index dc4d01d..467f3ed 100644 --- a/scripts/events/configure.coffee +++ b/scripts/events/configure.coffee @@ -1,6 +1,6 @@ require 'coffeescript/register' -brain = require '../bot/brain' +classifier = require '../bot/classifier' security = require '../lib/security' { msgVariables, stringElseRandomKey, loadConfigfile, getConfigFilePath } = require '../lib/common' @@ -48,7 +48,7 @@ class Configure retrain: (msg) -> global.config = loadConfigfile getConfigFilePath() - brain.train() + classifier.train() type = @interaction.type?.toLowerCase() or 'random' switch type -- GitLab