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()
|
user_agent = get_random_user_agent()
|
||||||
width, height = (1920, 1080)
|
width, height = (1920, 1080)
|
||||||
user_data_dir = tempfile.mkdtemp(prefix="chrome_profile_")
|
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("--no-sandbox")
|
||||||
chrome_options.add_argument('--disable-dev-shm-usage')
|
chrome_options.add_argument('--disable-dev-shm-usage')
|
||||||
profile_dir = f"/tmp/chrome_profile_{uuid.uuid4().hex[:8]}"
|
profile_dir = f"/tmp/chrome_profile_{uuid.uuid4().hex[:8]}"
|
||||||
|
|||||||
+3
-41
@@ -16,7 +16,6 @@ class LanguageUtility:
|
|||||||
args:
|
args:
|
||||||
supported_language: list of languages for translation, determine which Helsinki-NLP model to load
|
supported_language: list of languages for translation, determine which Helsinki-NLP model to load
|
||||||
"""
|
"""
|
||||||
self.sid = None
|
|
||||||
self.translators_tokenizer = None
|
self.translators_tokenizer = None
|
||||||
self.translators_model = None
|
self.translators_model = None
|
||||||
self.logger = Logger("language.log")
|
self.logger = Logger("language.log")
|
||||||
@@ -25,11 +24,6 @@ class LanguageUtility:
|
|||||||
|
|
||||||
def load_model(self) -> None:
|
def load_model(self) -> None:
|
||||||
animate_thinking("Loading language utility...", color="status")
|
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_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"}
|
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)
|
translation = model.generate(**inputs)
|
||||||
return tokenizer.decode(translation[0], skip_special_tokens=True)
|
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):
|
def analyze(self, text):
|
||||||
"""
|
"""
|
||||||
Combined analysis of language and emotion
|
Combined analysis of language and emotion
|
||||||
Args:
|
Args:
|
||||||
text: string to analyze
|
text: string to analyze
|
||||||
Returns: dictionary with language and emotion results
|
Returns: dictionary with language related information
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
language = self.detect_language(text)
|
language = self.detect_language(text)
|
||||||
emotions = self.detect_emotion(text)
|
|
||||||
return {
|
return {
|
||||||
"language": language,
|
"language": language
|
||||||
"emotions": emotions
|
|
||||||
}
|
}
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise e
|
raise e
|
||||||
@@ -125,4 +87,4 @@ if __name__ == "__main__":
|
|||||||
pretty_print(f"Language: {detector.detect_language(text)}", color="status")
|
pretty_print(f"Language: {detector.detect_language(text)}", color="status")
|
||||||
result = detector.analyze(text)
|
result = detector.analyze(text)
|
||||||
trans = detector.translate(text, result['language'])
|
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