From 82e3062a6b774abbe4f6b1f4f9958f8c7fdf10f6 Mon Sep 17 00:00:00 2001 From: militarpancho Date: Mon, 16 Jan 2017 17:11:10 +0100 Subject: [PATCH] Added meaningCloud to affect --- affect/sentiEmotions.py | 32 +++++++++++++++++++++++--------- affect/sentiEmotions.senpy | 4 ++++ meaningCloud/meaningCloud.py | 3 ++- meaningCloud/meaningCloud.senpy | 4 ++++ 4 files changed, 33 insertions(+), 10 deletions(-) diff --git a/affect/sentiEmotions.py b/affect/sentiEmotions.py index 5fe3a44..ec996f9 100644 --- a/affect/sentiEmotions.py +++ b/affect/sentiEmotions.py @@ -8,7 +8,7 @@ import logging from os import path import time from senpy.plugins import SentimentPlugin, SenpyPlugin -from senpy.models import Results, Entry, Sentiment +from senpy.models import Results, Entry, Sentiment, Error logger = logging.getLogger(__name__) @@ -22,20 +22,34 @@ class unifiedPlugin(SentimentPlugin): self.close() - def analyse(self, **params): - + def analyse(self, **kwargs): + params = dict(kwargs) txt = params["input"] + logger.info('TXT:%s' % txt) 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()) + s_params = params.copy() + s_params.update({'algo':sentiplug,'language':lang}) + senti_response = requests.get(endpoint, params=s_params).json() + logger.info('SENTIPARAMS: %s' % s_params) + if 'entries' not in senti_response: + raise Error(senti_response) + senti_response = Results(senti_response) + logger.info('SENTI: %s' % senti_response) + logger.info(senti_response) 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()) + e_params = params.copy() + e_params.update({'algo':emoplug,'language':lang}) + emo_response = requests.get(endpoint, params=e_params).json() + if 'entries' not in emo_response: + raise Error(emo_response) + emo_response = Results(emo_response) + logger.info('EMO: %s' % emo_response) + logger.info(emo_response) + + #Senpy Response diff --git a/affect/sentiEmotions.senpy b/affect/sentiEmotions.senpy index 17c798a..ca7493d 100644 --- a/affect/sentiEmotions.senpy +++ b/affect/sentiEmotions.senpy @@ -28,6 +28,10 @@ "required": true, "options": ["http://senpy.cluster.gsi.dit.upm.es/api/"], "default": "http://senpy.cluster.gsi.dit.upm.es/api/" + }, + "apiKey": { + "aliases": ["apikey"], + "required": false } diff --git a/meaningCloud/meaningCloud.py b/meaningCloud/meaningCloud.py index c40d68a..564dedd 100644 --- a/meaningCloud/meaningCloud.py +++ b/meaningCloud/meaningCloud.py @@ -24,7 +24,8 @@ class DaedalusPlugin(SentimentPlugin): model = params["model"] # general_es / general_es / general_fr api = 'http://api.meaningcloud.com/sentiment-2.1' lang = params.get("language") - key = os.environ.get('DAEDALUS_KEY') + #key = os.environ.get('DAEDALUS_KEY') + key = params["apiKey"] parameters = {'key': key,'model': model,'lang': lang,'of': 'json','txt': txt,'src': 'its-not-a-real-python-sdk'} r = requests.post(api, params=parameters) print(r.text) diff --git a/meaningCloud/meaningCloud.senpy b/meaningCloud/meaningCloud.senpy index e4ecbc0..8c7970b 100644 --- a/meaningCloud/meaningCloud.senpy +++ b/meaningCloud/meaningCloud.senpy @@ -17,6 +17,10 @@ "options": ["general"], "default": "general" } + "apiKey":{ + "aliases":["meaningCloud-key"], + "required":true + } }, "requirements": {},