Skip to content

Commit

Permalink
Added feedback processor and learning mechanism.
Browse files Browse the repository at this point in the history
  • Loading branch information
maiquelcraash committed Apr 20, 2018
1 parent f156b75 commit e6cefaa
Show file tree
Hide file tree
Showing 9 changed files with 220 additions and 132 deletions.
52 changes: 52 additions & 0 deletions .idea/codeStyles/Project.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 0 additions & 21 deletions KeepCalm Chrome Extension/js/watcher.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,27 +59,6 @@
}
}, 3000);

// //get all input fields and apply listener
// let inputFields = document.querySelectorAll("input, textarea");
//
// //convert NodeList to an array of Nodes
// inputFields = Array.prototype.slice.call(inputFields);
//
// //filter only textareas and no confidential fields
// inputFields = inputFields.filter((field) => {
// if (field.tagName === "textarea") {
// return true
// }
// else if (field.getAttribute("type") === "text" || field.getAttribute("type") === "") {
// return true;
// }
// return false;
// });
//
// //apply input listener on each field
// inputFields.forEach((inputField) => {
// inputField.addEventListener("input", getClassification);
// });

window.addEventListener("keypress", getClassification);

Expand Down
3 changes: 2 additions & 1 deletion config/properties.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

/* Server Settings */
exports.BODY_LIMIT = "100kb";
exports.QUERY_LIMIT = -1; //-1 = no limit

if (process.env.NODE_ENV === "development") {
exports.CLASSIFIER_SERVER_PORT = 8082;
Expand All @@ -15,7 +16,7 @@
exports.WEB_SERVER_HOST = "localhost";

exports.MONGODB_CONFIG = {
"mongoUrl": "mongodb://localhost:27017/KeepCalm",
"mongoUrl": "mongodb://localhost:27017/KeepCalm_Jelastic_180418",
};
}

Expand Down
23 changes: 21 additions & 2 deletions controller/activityLogController.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
(function () {
"use strict";

const activityLogModel = require("../model/activityLogModel");
const activityLogModel = require("../model/activityLogModel"),
properties = require('../config/properties');

let activityLogController = () => {

Expand All @@ -31,9 +32,27 @@
activityLogModel.findByIdAndUpdate(activityID, {feedback: feedback}, callback);
};

let getFeedbackActivities = ((callback) => {
const query = activityLogModel.find({ $or:[ {feedback:true}, {feedback:false}]}, (err, activities) => {
if (err) {
console.log(err)
}
else {
callback(activities);
}
});

if (properties.QUERY_LIMIT > 0) {
query.limit(properties.QUERY_LIMIT);
}
query.exec();
});


return {
createActivity: createActivity,
updateActivity: updateActivity
updateActivity: updateActivity,
getFeedbackActivities: getFeedbackActivities
}

};
Expand Down
37 changes: 32 additions & 5 deletions controller/classifierController.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
twitterController = require('./twitterController'),
POSTaggerController = require('./POSTaggerController'),
activityLogController = require('./activityLogController'),
preProcessorController = require('./preProcessorController'),
properties = require('../config/properties');

let classifier;
Expand Down Expand Up @@ -71,14 +72,40 @@
twitterController.getPosTweetsFromDatabase(params, (posTweets) => {

posTweets.forEach((tweet) => {
console.log(tweet.id);
console.log("Adding to train group - tweet id: " + tweet.id);
classifier.addDocument(tweet.pos_text, tweet.classification);
});

console.log("\nTraining algorithm...");
classifier.train();
console.log("\nReady!");
callback();
console.log("\n");

activityLogController.getFeedbackActivities((activities) => {
activities.forEach((activity) => {
console.log("Adding to train group - activity id: " + activity.id);

let trainText = preProcessorController.preProcessText(activity.text);
let trainClassification;
let classification = activity.result.effectiveResult;

if (activity.feedback === true) {
trainClassification = classification;
}
else {
if (classification === "Agressivo"){
trainClassification = "Não Agressivo";
}
else {
trainClassification = "Agressivo";
}
}

classifier.addDocument(trainText, trainClassification);
})

console.log("\nTraining algorithm...");
classifier.train();
console.log("\nReady!");
callback();
});
});
}

Expand Down
Loading

0 comments on commit e6cefaa

Please sign in to comment.