1
0
mirror of https://github.com/gsi-upm/senpy synced 2024-12-22 13:08:13 +00:00

affect plugin added

This commit is contained in:
militarpancho 2017-01-13 14:23:07 +01:00
parent ac5ac2d06b
commit 864ca75b8f
3 changed files with 94 additions and 0 deletions

10
affect/README.md Normal file
View File

@ -0,0 +1,10 @@
# Senpy Plugin for Sentiment and Emotion
This plugin allows to choose sentiment and emotion plugins to retrieve a response with the total sentiment and emotion analysis.
You can adjust the parameters of the plugin as follows:
- Sentiments plugins: EmoTextANEW, EmoTextWAF(only english)
- Emotions plugins: sentiText, vaderSentiment,meaningCloud(requires API KEY)
- Endpoint: the endpoint where the used plugins are. (default: http://senpy.cluster.gsi.dit.upm.es/api/)
- Language: english(en) or spanish(es)

48
affect/sentiEmotions.py Normal file
View File

@ -0,0 +1,48 @@
import time
import requests
import json
import string
import os
import json
import logging
from os import path
import time
from senpy.plugins import SentimentPlugin, SenpyPlugin
from senpy.models import Results, Entry, Sentiment
logger = logging.getLogger(__name__)
class unifiedPlugin(SentimentPlugin):
def activate(self, *args, **kwargs):
pass
def deactivate(self, *args, **kwargs):
self.close()
def analyse(self, **params):
txt = params["input"]
endpoint = params["endpoint"]
lang = params.get("language")
if params["emotions-plugin"] == 'EmoTextWAF':
lang = 'en'
sentiplug = params["sentiments-plugin"]
s_params = {'algo':sentiplug,'language':lang,'i':txt.encode('utf-8')}
senti_response = Results(requests.get(endpoint, params=s_params).json())
emoplug = params["emotions-plugin"]
e_params = {'algo':emoplug,'language':lang,'i':txt.encode('utf-8')}
emo_response = Results(requests.get(endpoint, params=e_params).json())
#Senpy Response
response = Results()
response.analysis = [senti_response.analysis, emo_response.analysis]
unified = senti_response.entries[0]
unified["emotions"] = emo_response.entries[0]["emotions"]
response.entries.append(unified)
return response

View File

@ -0,0 +1,36 @@
{
"name": "affect",
"module": "sentiEmotions",
"description": "Sentiment Analysis and Emotion Recognition",
"author": "GSI UPM",
"version": "0.1",
"extra_params": {
"language": {
"aliases": ["language", "l"],
"required": true,
"options": ["en","es"],
"default": "en"
},
"sentiments-plugin": {
"aliases": ["sentiplug"],
"required": true,
"options": ["meaningCloud","sentiText","vaderSentiment"],
"default": "sentiText"
},
"emotions-plugin": {
"aliases": ["emoplug"],
"required": true,
"options": ["EmoTextWAF","EmoTextANEW"],
"default": "EmoTextANEW"
},
"endpoint": {
"aliases": ["endpoint"],
"required": true,
"options": ["http://senpy.cluster.gsi.dit.upm.es/api/"],
"default": "http://senpy.cluster.gsi.dit.upm.es/api/"
}
},
"requirements": {},
}