diff --git a/sources/browser.py b/sources/browser.py index 64fd2a7..639eaec 100644 --- a/sources/browser.py +++ b/sources/browser.py @@ -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]}" diff --git a/sources/language.py b/sources/language.py index b62c087..a665bda 100644 --- a/sources/language.py +++ b/sources/language.py @@ -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']}") \ No newline at end of file + pretty_print(f"Translation: {trans} - from: {result['language']}") \ No newline at end of file