Análisis de Sentimiento Trabajo
Análisis de Sentimiento Trabajo
Análisis de Sentimiento Trabajo
ESCUELA ACADÉMICO-PROFESIONAL
INGENIERÍA DE SISTEMAS E INFORMÁTICA
DOCENTE:
ING. ROMERO AGUILAR DANTE ENRIQUE
PRESENTADO POR:
- CAPCHA MOLINA DANA SCOLYN
- MAZA TAMARIZ JEANPIER
HUARAZ - PERU
2024
APLICATIVO
CÓDIGO:
!mkdir sentimientos
import numpy as np
import pandas as pd
import tensorflow as tf
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, LSTM, Dense, Dropout
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
import nltk
from nltk.corpus import stopwords
# Cargar el dataset
df =
pd.read_csv("/content/sentimientos/dataset_2014_full_clean.csv",
encoding='latin-1') # Reemplaza por tu dataset
# Definir hiperparámetros
MAX_VOCAB_SIZE = 10000 # Máximo vocabulario
MAX_SEQUENCE_LENGTH = 100 # Longitud máxima de las secuencias
EMBEDDING_DIM = 100 # Dimensión del embedding
# Tokenización
tokenizer = Tokenizer(num_words=MAX_VOCAB_SIZE)
tokenizer.fit_on_texts(df['Texto'])
sequences = tokenizer.texts_to_sequences(df['Texto'])
model = Sequential([
Embedding(MAX_VOCAB_SIZE, EMBEDDING_DIM,
input_length=MAX_SEQUENCE_LENGTH),
LSTM(128, return_sequences=True),
Dropout(0.5),
LSTM(64),
Dropout(0.5),
Dense(1, activation='sigmoid') # Sigmoid para clasificación
binaria
])
model.compile(optimizer='adam', loss='binary_crossentropy',
metrics=['accuracy'])
6. Entrenamos el modelo
# Entrenar el modelo
history = model.fit(
X_train, y_train,
validation_data=(X_test, y_test),
batch_size=BATCH_SIZE,
epochs=EPOCHS,
verbose=1 # Mostrar progreso
)
7. Evaluamos el modelo
# Realizar la predicción
prediction = model.predict(new_padded)
# Mostrar el resultado
if prediction > 0.5:
print("Sentimiento: Positivo")
else:
print("Sentimiento: Negativo")
PRUEBA:
Prueba N° 1
Prueba N° 2
Prueba N° 3
Prueba N° 4
Prueba N° 5
PREGUNTAS:
- Apreciación de productos.
Laboral - Estudio del mercado.
- Mejora de experiencia.
Operaciones:
- Asignación (=)
- Comparación (==, !=, >, <, >=, <=)
- Aritméticas (+, -, *, /, %, ``)**
- Lógicas (and, or, not)
- Llamada a funciones ()
Variables:
Listas:
Tuplas:
Estructuras de control:
- if, else.
- bucles for y while: se usan implícitamente en las funciones de TensorFlow/Keras
Funciones:
Librerías:
Atributos:
Métodos:
Clases:
Fuentes de Datos:
- Offline: El código utiliza una fuente de datos offline, que es el archivo CSV
"500sentimientos.csv". Este archivo debe estar ubicado en la carpeta "sentimientos"
dentro del entorno de Colab.
DataFrames:
DataSeries:
Análisis de Datos:
Tratamiento de datos:
- El código aplica un filtro para eliminar las stopwords del texto. Esto se realiza para
limpiar el texto y eliminar palabras comunes que no aportan mucho significado al
análisis de sentimiento.
- No hay un tratamiento explícito de valores nulos en el código. Sin embargo, se asume
que el dataset no contiene valores nulos en las columnas relevantes ('Texto' y
'Sentimiento').
- Agrupamiento: No se realiza ningún tipo de agrupamiento de datos en el código. El
análisis se centra en la clasificación individual de cada reseña como positiva o negativa.