diff --git a/BECK/app.py b/BECK/app.py index e69de29..51e9b7d 100644 --- a/BECK/app.py +++ b/BECK/app.py @@ -0,0 +1,55 @@ +import pandas as pd +from preprocessing_service import Preprocesamiento +import json +import pprint +from model_word2vec_service import ModelWord2Vec +import nltk +nltk.download('punkt') +df = pd.read_csv("./datasets/comentarios_full.csv", encoding='utf-8') +comments = list(df["text"]) +classes = list(df["class"]) + +# df_prueba_chelsea = df_prueba_chelsea.append({'Nombre': 'Vaughn', 'Numero de camiseta':'33'}, ignore_index=True) +preprocesamiento = Preprocesamiento() + +w2v = ModelWord2Vec() +df_cve = pd.read_csv('./datasets/coseno.csv', encoding='utf-8') +columns = list(df_cve.columns)[2:] +inicio = 6000 +fin = 8000 +class_comment = 0 +# Lectura beck +beck_data_preprocessing = {} +try: + if open('./JSON/items_preprocessing.json', 'r'): + beck_data_preprocessing = json.loads( + open('./JSON/items_preprocessing.json', 'r', encoding='utf-8').read()) +except Exception as e: + print(f'Error: {e}') + +for comment in comments[inicio:fin]: + try: + print(f'Comentario: {class_comment + 1}/{len(comments)}') + new_comment = {} + contador = 0 + new_comment["Comentario"] = comment + comment_preprocesado = preprocesamiento.preprocesamiento_con_ortografia( + comment) + new_comment["Comentario Preprocesado"] = comment_preprocesado + w2v.add_corpus(comment_preprocesado) + for item in beck_data_preprocessing.keys(): + for result in beck_data_preprocessing[item].keys(): + new_comment[columns[contador]] = w2v.get_cosine_similarity(comment_preprocesado, beck_data_preprocessing[item][result]["data"]) + contador += 1 + + # Add to dataframe + new_comment["Clase"] = classes[class_comment] + df_cve = df_cve.append(new_comment, ignore_index=True) + class_comment += 1 + except Exception as e: + print(f'Error en el comentario {class_comment} omitiendo...') + print(e) + class_comment += 1 + continue + +df_cve.to_csv('./datasets/coseno.csv', index=False, encoding="utf-8") \ No newline at end of file diff --git a/BECK/comentarios_test.txt b/BECK/comentarios_test.txt deleted file mode 100644 index 5c17e19..0000000 --- a/BECK/comentarios_test.txt +++ /dev/null @@ -1,7 +0,0 @@ -Mis padres deberían estar felices si lo hago. Es jodido decirlo, pero mi vida es un infierno que nunca podrían entender. Deberían estar felices de que ya no sufra si muero. -Podría suicidarme antes de que mi novio me vea ir. Mierda. Tengo miedo y no sé qué hacer. Me siento feo como el infierno y, según mi amigo, mi novio en línea es atractivo. Y yo, bueno, no soy la galleta más bonita de la maldita canasta. Esto es tan estresante Dios mío... Ambos no sabemos cómo nos vemos porque aún no hemos intercambiado fotos, pero comenzamos a salir debido a la personalidad del otro. Entonces él también podría ser feo, pero por cómo suenan las cosas, se ve bien. Muchas chicas lo quieren y están enamoradas de él, pero realmente no puedo decir lo mismo de mí y eso es revelador. Es dulce y lo quiero mucho, pero tengo miedo de que no le interese cuando empecemos a vernos las caras. Quiero creer que las apariencias no importan, pero me han dicho que a diestro y siniestro sí importan, por mucho que creamos que no. Incluso he oído que la apariencia afecta todos los aspectos de tu vida y eso es un gran asco para mí y explica algunas cosas jajaja. Empezando a creer eso cada vez más a medida que pasa el tiempo debido a cómo me tratan y cómo me veo. Estoy tan ansiosa y asustada porque está hablando de verme, ¡pero no estoy lista! Ni siquiera me veo bien y puedo hacer lo mínimo conmigo mismo y estoy empezando a trabajar con mi propio cabello, así que sí, me veo como una mierda muchas veces. Esto también es muy estresante para mí porque nunca he tenido una relación seria como esta. Hemos estado juntos por poco tiempo, pero él estaba dispuesto a gastar 100 dólares en mí y ya me envió regalos esta Navidad. No sé qué diablos espera que luzca, pero Dios sabe que no parezco una modelo de Victorious Secret jajaja. Uf... Tengo tanto miedo de que se sienta defraudado cuando me vea por primera vez. Incluso sé cebada como maquillarme o peinarme con un estilo lindo. Estoy tan jodidamente atrás en la vida en comparación con mis peras y duele. Espero que no me baneen por decir esto, pero pienso para mis adentros. “¿Qué pasa si termino con mi vida ahora mismo? Su imagen mental de mí no será jodida porque el nunca sabrá como yo lucia menos a como él se ve" Pero luego pienso en mí mismo "Mala idea .. Si alguien le muestra el podría elegir una foto que absolutamente yo odie para mostrarle a él mi cara. Que si internamente él no está tan triste como lo estaba antes porque él vio como yo lo veía y podría ser difícil para él y para mí . “ Ahora sé que él no diría esas cosas ni querría pensar en eso, pero tengo miedo de que empiece a pensar eso en el fondo, uno de sus pensamientos culpables y por eso quiere borrarme de su mente. Todo esto suena realmente desordenado, pero estos son pensamientos serios que tengo conmigo mismo. Todos los días siento que me estoy convirtiendo en un caparazón superficial enfocándome en mi apariencia y nada más. Me está consumiendo a mí y a mi tiempo y pierdo mucho tiempo en el día teniendo ataques de pánico cuando me miro en el espejo y luego me motivo a cambiar y luego me asusto de nuevo porque me veo terrible. Y ahora el sentimiento es x10 porque tengo novio y al menos tengo que cumplir con un cierto estándar. Me siento tan desesperada.. Al principio estaba tan feliz y contenta de estar con él, pero luego el miedo comenzó a aparecer tan pronto como me di cuenta de cómo me veía. A la mierda mi vida. -ruptura desgarradora ¿cómo puede alguien que me hizo sentir tan especial y tan feliz simplemente cambiar sus sentimientos y ver algo que una vez fue hermoso para ellos como algo feo? Ya no puedo lidiar con eso y quiero tomar el camino fácil tan desesperadamente, solo desearía que no me importara cómo afectaría a las pocas personas que se preocupan por mí. joder esto -noche dura. Voy a hacer mi declaración a la policía mañana. Solo quiero una salida. Uno que sea socialmente aceptable y no lastime a nadie más. Desearía que este tipo de dolor cumpliera con los criterios de un coma inducido médicamente. -Decidí suicidarme, gracias a todos por intentar ayudarme Hola, probablemente esta sea la última publicación en Escribí mi mensaje final a los padres y lo guardé en mi habitación, la cuerda está lista y el ventilador funciona. Después de un año en la universidad, he decidido que soy demasiado débil para quedarme en este mundo. He sido intimidado por casi todos en este mundo, espero a mi hermano pequeño, pero ahora creo que ya no puedo soportar el sufrimiento. y mis padres ya me ven como un fracaso, y mis "nuevos" compañeros de clase se están burlando de mí, incluso las chicas me están acosando jajaja (¿qué cobarde soy , cierto?) antes de que me acosaran ayer, decidí comenzar a estudiar, pero Dios y estas chicas tenían otro plan para mí gracias por escuchar mi historia, les deseo a todos un futuro brillante :) -¿Por qué me siento desesperado? Han pasado algunas semanas desde que rompí con mi novia porque ya no nos hablamos mucho y siento que es mi culpa y sé que ella me dijo que no es mi culpa, pero ¿por qué? siento que lo es y todos los días pienso en fingir que estaba bien y que no iba a durar, pero estuvimos juntos durante 4 años desde el octavo grado y nuestra relación era fuerte, hablábamos después de la escuela secundaria sobre cómo nos mudaríamos a un campo. y cosas así, pero luego sucedió esta Cuarentena, perdimos el contacto entre nosotros, ella simplemente perdió el interés conmigo, entonces un día me envió un mensaje de que nuestra relación no funcionaría, en realidad estaba desconsolado y desde entonces tuve pensamientos sobre el suicidio, pero no pude conseguirlo. Terminé con eso porque tenía miedo de lastimar a mis abuelos, así que me quedé callado fingiendo que nada estaba mal. Lloraría hasta quedarme dormido cuando estoy solo en mi habitación pensando que no hice nada bien y que hice todo mal con mi re. relación y me siento desesperado todos los días.... -¿Soy verdaderamente suicida? Yo diría que normalmente soy una persona bastante feliz, pero el suicidio y la muerte parecen estar en el fondo de mi mente. Normalmente no me doy cuenta, pero hay momentos en los que he tenido una mala experiencia y automáticamente empiezo a pensar en suicidarme. A veces imagino diferentes escenarios en mi cabeza y muchas veces se vuelven realmente oscuros o malos y me mato. Sin embargo, estos pensamientos no aparecen con demasiada frecuencia y, como dije, generalmente estoy feliz. ¿Soy realmente suicida? \ No newline at end of file diff --git a/BECK/datasets/DATASET_ENTRENAMIENTO.xlsx b/BECK/datasets/DATASET_ENTRENAMIENTO.xlsx deleted file mode 100644 index 119cf82..0000000 Binary files a/BECK/datasets/DATASET_ENTRENAMIENTO.xlsx and /dev/null differ diff --git a/BECK/depresion.model b/BECK/depresion.model index ccd3de7..f3f4bd9 100644 Binary files a/BECK/depresion.model and b/BECK/depresion.model differ diff --git a/BECK/helpers/coseno_vs_euclidian.py b/BECK/helpers/coseno_vs_euclidian.py index 5ccb7c8..ffce795 100644 --- a/BECK/helpers/coseno_vs_euclidian.py +++ b/BECK/helpers/coseno_vs_euclidian.py @@ -33,7 +33,7 @@ new_comment = {} contador = 0 new_comment["Comentario"] = comment - comment_preprocesado = preprocesamiento.preprocesamiento_sin_ortografia( + comment_preprocesado = preprocesamiento.preprocesamiento_con_ortografia( comment) new_comment["Comentario Preprocesado"] = comment_preprocesado w2v.add_corpus(comment_preprocesado) diff --git a/BECK/model_word2vec_service.py b/BECK/model_word2vec_service.py index 9ff6a54..3e498e3 100644 --- a/BECK/model_word2vec_service.py +++ b/BECK/model_word2vec_service.py @@ -8,7 +8,7 @@ def __init__(self): """ La función toma una lista de palabras y devuelve una lista de vectores. """ - self.model = Word2Vec.load('word2vec.model') + self.model = Word2Vec.load('./depresion.model') def get_model(self): """ @@ -32,39 +32,7 @@ def save_model(self): """ Esta funcion guarda el modelo """ - self.model.save('word2vec.model') - - def get_euclidian_distance(self, corpus_a, corpus_b): - """ - Si la longitud de las dos listas no es igual, agregue ceros a la lista más corta hasta que sean - iguales. Luego, devuelva la distancia euclidiana entre las dos listas. - - :param corpus_a: El primer corpus a comparar - :param corpus_b: El segundo corpus a comparar - :return: La distancia euclidiana entre dos vectores. - """ - vector_corpus_a = self.get_word_vector(corpus_a) - vector_corpus_a = list(np.array(vector_corpus_a).tolist()) - vector_corpus_b = self.get_word_vector(corpus_b) - vector_corpus_b = list(np.array(vector_corpus_b).tolist()) - #Diferencia entre ambos - if len(vector_corpus_a) != len( vector_corpus_b): - diferencia = abs(len(vector_corpus_a) - len( vector_corpus_b)) - if len(vector_corpus_a) > len( vector_corpus_b): - i = 0 - while i < diferencia: - vector_corpus_b.append(self.getVector250()) - i += 1 - return np.linalg.norm(np.array(vector_corpus_a) - np.array(vector_corpus_b)) - if len(vector_corpus_a) < len(vector_corpus_b): - i = 0 - while i < diferencia: - vector_corpus_a.append(self.getVector250()) - i += 1 - return np.linalg.norm(np.array(vector_corpus_a) - np.array(vector_corpus_b)) - else: - return np.linalg.norm(np.array(vector_corpus_a) - np.array(vector_corpus_b)) - + self.model.save('depresion.model') def get_cosine_similarity(self, corpus_a, corpus_b): """ diff --git a/BECK/preprocessing_service.py b/BECK/preprocessing_service.py index e4d94bc..8f91e80 100644 --- a/BECK/preprocessing_service.py +++ b/BECK/preprocessing_service.py @@ -42,14 +42,14 @@ def preprocesamiento_con_ortografia(self, texto): """ # Eliminar etiquetas y hashtags - texto = self.normalizar(texto) texto = self.eliminar_etiquetados(texto) texto = self.eliminar_emojis(texto) texto = self.eliminacion_data_inutil(texto) texto = self.correccion_ortografica(texto) + texto = self.normalizar(texto) texto = self.stop_words(texto) texto = self.lematizacion(texto) - #texto = self.eliminar_duplicados(texto) + texto = self.eliminar_duplicados(texto) return texto diff --git a/BECK/word2vec.model b/BECK/word2vec.model deleted file mode 100644 index 2f30e1b..0000000 Binary files a/BECK/word2vec.model and /dev/null differ