import streamlit as st import pandas as pd import numpy as np from sklearn.feature_extraction.text import TfidfVectorizer from nltk.tokenize import word_tokenize from nltk.corpus import stopwords from base64 import b64encode, b64decode from datetime import datetime import os # Funciones para procesar texto def procesar_texto(texto): # Tokenizar texto tokens = word_tokenize(texto) # Eliminar stopwords tokens = [token for token in tokens if token not in stopwords.words('spanish')] # Vectorizar texto vectorizer = TfidfVectorizer() vector = vectorizer.fit_transform(tokens) return vector # Funciones para modificar archivos def modificar_archivo(archivo, cambios): # Leer archivo df = pd.read_excel(archivo) # Aplicar cambios df = df.apply(cambios) # Guardar archivo df.to_excel(archivo, index=False) # Funciones para reemplazar caracteres def reemplazar_caracteres(archivo, caracter, reemplazo): df = pd.read_excel(archivo) df = df.replace(caracter, reemplazo, regex=True) df.to_excel(archivo, index=False) # Funciones para eliminar columnas def eliminar_columnas(archivo, columnas): df = pd.read_excel(archivo) df = df.drop(columnas, axis=1) df.to_excel(archivo, index=False) # Funciones para comparar archivos def comparar_archivos(archivo1, archivo2, columna1, columna2): df1 = pd.read_excel(archivo1) df2 = pd.read_excel(archivo2) df_comparado = pd.merge(df1, df2, on=[columna1, columna2], how='outer', indicator=True) df_comparado.to_excel('comparacion.xlsx', index=False) # Funciones para unir hojas def unir_hojas(archivos, salida): dfs = [] for archivo in archivos: df = pd.read_excel(archivo) dfs.append(df) df_unido = pd.concat(dfs, ignore_index=True) df_unido.to_excel(salida, index=False) # Interfaz de usuario st.title("App de procesamiento de texto y modificación de archivos") # Sección de procesamiento de texto st.header("Procesamiento de texto") texto = st.text_area("Ingrese texto para procesar") if st.button("Procesar texto"): vector = procesar_texto(texto) st.write(vector) # Sección de modificación de archivos st.header("Modificación de archivos") archivo = st.file_uploader("Seleccione archivo para modificar") cambios = st.text_area("Ingrese cambios para aplicar") if st.button("Modificar archivo"): if archivo and cambios: modificar_archivo(archivo, cambios) st.write("Archivo modificado con éxito") # Sección de reemplazar caracteres st.header("Reemplazar caracteres") archivo = st.file_uploader("Seleccione archivo para reemplazar caracteres") caracter = st.text_input("Ingrese caracter a reemplazar") reemplazo = st.text_input("Ingrese reemplazo") if st.button("Reemplazar caracteres"): if archivo and caracter and reemplazo: reemplazar_caracteres(archivo, caracter, reemplazo) st.write("Caracteres reemplazados con éxito") # Sección de eliminar columnas st.header("Eliminar columnas") archivo = st.file_uploader("Seleccione archivo para eliminar columnas") columnas = st.text_input("Ingrese columnas a eliminar") if st.button("Eliminar columnas"): if archivo and columnas: eliminar_columnas(archivo, columnas) st.write("Columnas eliminadas con éxito") # Sección de comparar archivos st.header("Comparar archivos") archivo1 = st.file_uploader("Seleccione primer archivo para comparar") archivo2 = st.file_uploader("Seleccione segundo archivo para comparar") columna1 = st.text_input("Ingrese columna para comparar en primer archivo") columna2 = st.text_input("Ingrese columna para comparar en segundo archivo") if st.button("Comparar archivos"): if archivo1 and archivo2 and columna1 and columna2: comparar_archivos(archivo1, archivo2, columna1, columna2) st.write("Archivos comparados con éxito") # Sección de unir hojas st.header("Unir hojas") archivos = st.file_uploader("Seleccione archivos para unir", accept_multiple_files=True) salida = st.text_input("Ingrese nombre de archivo de salida") if st.button("Unir hojas"): if archivos and salida: unir_hojas(archivos, salida) st.write("Hojas unidas con éxito") # Sección de muestra st.header("Muestra") muestra = st.file_uploader("Seleccione archivo para mostrar") if st.button("Mostrar muestra"): if muestra: df = pd.read_excel(muestra) st.write(df.head())