1
0
mirror of https://github.com/gsi-upm/senpy synced 2024-11-14 20:42:27 +00:00
senpy/sentiment-meaningCloud/sentiment-meaningCloud.py

47 lines
1.4 KiB
Python
Raw Normal View History

2017-01-12 12:30:14 +00:00
import time
import requests
import json
import string
import os
from os import path
import time
from senpy.plugins import SentimentPlugin, SenpyPlugin
2017-01-17 10:49:01 +00:00
from senpy.models import Results, Entry, Sentiment,Error
2017-01-12 12:30:14 +00:00
class DaedalusPlugin(SentimentPlugin):
2017-02-28 13:27:18 +00:00
def analyse_entry(self, entry, params):
2017-01-12 12:30:14 +00:00
2017-02-28 13:27:18 +00:00
txt = entry.get("text",None)
2017-03-01 12:23:41 +00:00
model = "general" # general_es / general_es / general_fr
2017-01-12 12:30:14 +00:00
api = 'http://api.meaningcloud.com/sentiment-2.1'
lang = params.get("language")
2017-01-16 16:11:10 +00:00
key = params["apiKey"]
2017-03-01 12:23:41 +00:00
parameters = {'key': key,
'model': model,
'lang': lang,
'of': 'json',
'txt': txt,
'src': 'its-not-a-real-python-sdk'
}
r = requests.post(api, params=parameters, timeout=3)
2017-01-12 12:30:14 +00:00
value = r.json().get('score_tag', None)
2017-01-17 10:49:01 +00:00
if not value:
raise Error(r.json())
2017-01-12 12:30:14 +00:00
#Senpy Response
response = Results()
polarityValue = 0
2017-01-12 12:30:14 +00:00
polarity = 'marl:Neutral'
if 'N' in value:
polarity = 'marl:Negative'
polarityValue = -1
2017-01-12 12:30:14 +00:00
elif 'P' in value:
polarity = 'marl:Positive'
polarityValue = 1
2017-02-28 13:27:18 +00:00
opinion = Sentiment(id="Opinion0",marl__hasPolarity=polarity,marl__polarityValue = polarityValue)
2017-01-12 12:30:14 +00:00
entry.sentiments.append(opinion)
2017-02-28 13:27:18 +00:00
yield entry