from .spu_context_bigru_sentiment import SPUCBiGRUSentimentAnalyzer
[docs]class SentimentAnalyzer:
"""
Main API class for Sentiment Analyzer implementations.
Available models: ['SPUCBiGRUSentimentAnalyzer']
In order to evaluate, initialize the class with "evaluate = True" argument.
This will load the model weights that are not trained on test sets.
"""
def __init__(self, model="SPUCBiGRUSentimentAnalyzer", evaluate=False):
self.models = ["SPUCBiGRUSentimentAnalyzer"]
self.evaluate = evaluate
if model == "SPUCBiGRUSentimentAnalyzer":
self.instance = SPUCBiGRUSentimentAnalyzer(evaluate)
else:
raise ValueError(
f"{model} is not a valid model. Try one of {self.models}"
)
[docs] def predict(self, text: str) -> int:
"""
High level user API for discrete Sentiment Analysis prediction.
1: Positive sentiment.
0: Negative sentiment.
Args:
text:
Input text.
Returns:
Sentiment label of input text.
Example::
from vnlp import SentimentAnalyzer
sentiment_analyzer = SentimentAnalyzer()
sentiment_analyzer.predict("Sipariş geldiğinde biz karnımızı çoktan atıştırmalıklarla doyurmuştuk.")
0
"""
return self.instance.predict(text)
[docs] def predict_proba(self, text: str) -> float:
"""
High level user API for probability estimation of Sentiment Analysis.
Args:
text:
Input text.
Returns:
Probability that the input text has positive sentiment.
Example::
from vnlp import SentimentAnalyzer
sentiment_analyzer = SentimentAnalyzer()
sentiment_analyzer.predict_proba("Sipariş geldiğinde biz karnımızı çoktan atıştırmalıklarla doyurmuştuk.")
0.08
"""
return self.instance.predict_proba(text)
# this is called when an attribute is not found:
def __getattr__(self, name):
return self.instance.__getattribute__(name)