import re from modules.globalvars import * from modules.volta.main import _ import spacy from spacy.tokens import Doc from spacytextblob.spacytextblob import SpacyTextBlob import logging logger = logging.getLogger("goober") def check_resources(): try: nlp = spacy.load("en_core_web_sm") except OSError: logging.critical((_('spacy_model_not_found'))) spacy.cli.download("en_core_web_sm") nlp = spacy.load("en_core_web_sm") if "spacytextblob" not in nlp.pipe_names: nlp.add_pipe("spacytextblob") logger.info((_('spacy_initialized'))) check_resources() nlp = spacy.load("en_core_web_sm") nlp.add_pipe("spacytextblob") Doc.set_extension("polarity", getter=lambda doc: doc._.blob.polarity) def is_positive(sentence): doc = nlp(sentence) sentiment_score = doc._.polarity # from spacytextblob debug_message = f"{(_('sentence_positivity'))} {sentiment_score}{RESET}" logger.debug(debug_message) return sentiment_score > 0.6 # had to raise the bar because it kept saying "death to jews" was fine and it kept reacting to them async def send_message(ctx, message=None, embed=None, file=None, edit=False, message_reference=None): try: if edit and message_reference: await message_reference.edit(content=message, embed=embed) return message_reference send_kwargs = {} if message: send_kwargs['content'] = message if embed: send_kwargs['embed'] = embed if file: send_kwargs['file'] = file if hasattr(ctx, "respond"): return await ctx.respond(**send_kwargs, ephemeral=False) else: return await ctx.send(**send_kwargs) except Exception as e: await ctx.send(f"{RED}{(_('edit_fail'))} {e}{RESET}") def preprocess_message(message): message = message doc = nlp(message) tokens = [token.text for token in doc if token.is_alpha or token.is_digit] return " ".join(tokens) def improve_sentence_coherence(sentence): return "" def rephrase_for_coherence(sentence): coherent_sentence = sentence return coherent_sentence