mirror of
https://github.com/gsi-upm/senpy
synced 2024-11-23 00:22:28 +00:00
33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
|
import json
|
||
|
import random
|
||
|
|
||
|
from senpy.plugins import SentimentPlugin
|
||
|
from senpy.models import Response, Opinion, Entry
|
||
|
|
||
|
|
||
|
class Sentiment140Plugin(SentimentPlugin):
|
||
|
def analyse(self, **params):
|
||
|
lang = params.get("language", "auto")
|
||
|
|
||
|
p = params.get("prefix", None)
|
||
|
response = Response(prefix=p)
|
||
|
#polarity_value = self.maxPolarityValue*int(res.json()["data"][0]["polarity"]) * 0.25
|
||
|
polarity_value = max(-1, min(1, random.gauss(0.2,0.2)))
|
||
|
polarity = "marl:Neutral"
|
||
|
if polarity_value > 0:
|
||
|
polarity = "marl:Positive"
|
||
|
elif polarity_value < 0:
|
||
|
polarity = "marl:Negative"
|
||
|
entry = Entry(id="Entry0",
|
||
|
text=params["input"],
|
||
|
prefix=p)
|
||
|
opinion = Opinion(id="Opinion0",
|
||
|
prefix=p,
|
||
|
hasPolarity=polarity,
|
||
|
polarityValue=polarity_value)
|
||
|
opinion["prov:wasGeneratedBy"] = self.id
|
||
|
entry.opinions.append(opinion)
|
||
|
entry.language = lang
|
||
|
response.entries.append(entry)
|
||
|
return response
|