refactor: remove unsused sentiment analysis
This commit is contained in:
@@ -137,8 +137,6 @@ def create_driver(headless=False, stealth_mode=True, crx_path="./crx/nopecha.crx
|
||||
user_agent = get_random_user_agent()
|
||||
width, height = (1920, 1080)
|
||||
user_data_dir = tempfile.mkdtemp(prefix="chrome_profile_")
|
||||
import os
|
||||
print(f"Running as UID: {os.getuid()}") # Will show 0 if root
|
||||
chrome_options.add_argument("--no-sandbox")
|
||||
chrome_options.add_argument('--disable-dev-shm-usage')
|
||||
profile_dir = f"/tmp/chrome_profile_{uuid.uuid4().hex[:8]}"
|
||||
|
||||
+3
-41
@@ -16,7 +16,6 @@ class LanguageUtility:
|
||||
args:
|
||||
supported_language: list of languages for translation, determine which Helsinki-NLP model to load
|
||||
"""
|
||||
self.sid = None
|
||||
self.translators_tokenizer = None
|
||||
self.translators_model = None
|
||||
self.logger = Logger("language.log")
|
||||
@@ -25,11 +24,6 @@ class LanguageUtility:
|
||||
|
||||
def load_model(self) -> None:
|
||||
animate_thinking("Loading language utility...", color="status")
|
||||
try:
|
||||
nltk.data.find('vader_lexicon')
|
||||
except LookupError:
|
||||
nltk.download('vader_lexicon')
|
||||
self.sid = SentimentIntensityAnalyzer()
|
||||
self.translators_tokenizer = {lang: MarianTokenizer.from_pretrained(f"Helsinki-NLP/opus-mt-{lang}-en") for lang in self.supported_language if lang != "en"}
|
||||
self.translators_model = {lang: MarianMTModel.from_pretrained(f"Helsinki-NLP/opus-mt-{lang}-en") for lang in self.supported_language if lang != "en"}
|
||||
|
||||
@@ -65,49 +59,17 @@ class LanguageUtility:
|
||||
translation = model.generate(**inputs)
|
||||
return tokenizer.decode(translation[0], skip_special_tokens=True)
|
||||
|
||||
def detect_emotion(self, text: str) -> str:
|
||||
"""
|
||||
Detect the dominant emotion in the given text
|
||||
Args:
|
||||
text: string to analyze
|
||||
Returns: string of the dominant emotion
|
||||
"""
|
||||
try:
|
||||
scores = self.sid.polarity_scores(text)
|
||||
emotions = {
|
||||
'Happy': max(scores['pos'], 0),
|
||||
'Angry': 0,
|
||||
'Sad': max(scores['neg'], 0),
|
||||
'Fear': 0,
|
||||
'Surprise': 0
|
||||
}
|
||||
if scores['compound'] < -0.5:
|
||||
emotions['Angry'] = abs(scores['compound']) * 0.5
|
||||
emotions['Fear'] = abs(scores['compound']) * 0.5
|
||||
elif scores['compound'] > 0.5:
|
||||
emotions['Happy'] = scores['compound']
|
||||
emotions['Surprise'] = scores['compound'] * 0.5
|
||||
dominant_emotion = max(emotions, key=emotions.get)
|
||||
if emotions[dominant_emotion] == 0:
|
||||
return 'Neutral'
|
||||
self.logger.info(f"Emotion: {dominant_emotion} for text: {text}")
|
||||
return dominant_emotion
|
||||
except Exception as e:
|
||||
raise e
|
||||
|
||||
def analyze(self, text):
|
||||
"""
|
||||
Combined analysis of language and emotion
|
||||
Args:
|
||||
text: string to analyze
|
||||
Returns: dictionary with language and emotion results
|
||||
Returns: dictionary with language related information
|
||||
"""
|
||||
try:
|
||||
language = self.detect_language(text)
|
||||
emotions = self.detect_emotion(text)
|
||||
return {
|
||||
"language": language,
|
||||
"emotions": emotions
|
||||
"language": language
|
||||
}
|
||||
except Exception as e:
|
||||
raise e
|
||||
@@ -125,4 +87,4 @@ if __name__ == "__main__":
|
||||
pretty_print(f"Language: {detector.detect_language(text)}", color="status")
|
||||
result = detector.analyze(text)
|
||||
trans = detector.translate(text, result['language'])
|
||||
pretty_print(f"Translation: {trans} - from: {result['language']} - Emotion: {result['emotions']}")
|
||||
pretty_print(f"Translation: {trans} - from: {result['language']}")
|
||||
Reference in New Issue
Block a user