diff --git a/README.md b/README.md index d73865c3..24da5bae 100644 --- a/README.md +++ b/README.md @@ -73,9 +73,9 @@ Hemos seleccionado un stack tecnológico que nos permitirá llevar a cabo el an 4. `Python y Librerías`: Utilizaremos el lenguaje de programación Python junto con librerías como pandas, NumPy y scikit-learn para realizar el análisis de datos y la creación del modelo. -5. `Streamlit`: La utilizaremos para la visualización de datos y la creación de interfaces de usuario de manera rápida y sencilla, la elegimos debido a su facilidad de uso y su capacidad para crear aplicaciones de manera eficiente sin la necesidad de conocimientos profundos en desarrollo web.![App](https://review-insights.streamlit.app/) +5. `Streamlit`: La utilizaremos para la visualización de datos y la creación de interfaces de usuario de manera rápida y sencilla, la elegimos debido a su facilidad de uso y su capacidad para crear aplicaciones de manera eficiente sin la necesidad de conocimientos profundos en desarrollo web.[![App](imagenes/review-insights.png)](https://review-insights.streamlit.app/) -6. `Trello`: elegimos esta herramienta para poder ordenar el trabajo en equipo y para poder seguir un flujo de trabajo.![Tablero](https://trello.com/b/Wgepholb/google-yelp) +6. `Trello`: elegimos esta herramienta para poder ordenar el trabajo en equipo y para poder seguir un flujo de trabajo.[![Tablero](imagenes/trello.png)](https://trello.com/b/Wgepholb/google-yelp) 7. `Canva`: usamos esta herramienta para poder apoyarnos visualmente en las demos del proyecto, así como para la generación de imágenes de nuestra autoría. diff --git a/imagenes/Review.jpg b/imagenes/Review.jpg new file mode 100644 index 00000000..ef0147dd Binary files /dev/null and b/imagenes/Review.jpg differ diff --git a/imagenes/review-insights.png b/imagenes/review-insights.png new file mode 100644 index 00000000..badc799d Binary files /dev/null and b/imagenes/review-insights.png differ diff --git a/imagenes/trello.png b/imagenes/trello.png new file mode 100644 index 00000000..7bf96c27 Binary files /dev/null and b/imagenes/trello.png differ diff --git a/requirements.txt b/requirements.txt index 64fb90ce..15e60850 100644 --- a/requirements.txt +++ b/requirements.txt @@ -42,7 +42,6 @@ scikit-learn==1.3.0 scipy==1.11.2 seaborn==0.12.2 six==1.16.0 -sklearn==0.0.post9 smmap==5.0.0 streamlit==1.26.0 tenacity==8.2.3 diff --git a/website/clf_model_v1.2.2.pkl b/website/clf_model_v1.2.2.pkl new file mode 100644 index 00000000..1b19d2d5 Binary files /dev/null and b/website/clf_model_v1.2.2.pkl differ diff --git "a/website/pages/03_\360\237\215\267_Usa nuestro Modelo Machine Learning.py" "b/website/pages/03_\360\237\215\267_Usa nuestro Modelo Machine Learning.py" index 478da408..6e427609 100644 --- "a/website/pages/03_\360\237\215\267_Usa nuestro Modelo Machine Learning.py" +++ "b/website/pages/03_\360\237\215\267_Usa nuestro Modelo Machine Learning.py" @@ -4,6 +4,9 @@ import pandas as pd import random import os +import streamlit as st +import joblib + from sklearn.model_selection import train_test_split from sklearn.pipeline import Pipeline @@ -11,7 +14,6 @@ from sklearn.svm import LinearSVC from sklearn.metrics import accuracy_score -import streamlit as st st.header("Prueba nuestro modelo Machine Learning 🤓") st.write("Puedes leer las reseñas y resultados") @@ -28,44 +30,83 @@ X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=1, stratify=y) # pipeline -from sklearn.pipeline import Pipeline -clf_model = Pipeline([('tfidf_v', TfidfVectorizer(ngram_range=(1, 1))), ('clf_m', LinearSVC(C=2, loss='squared_hinge'))]) +# from sklearn.pipeline import Pipeline +# clf_model = Pipeline([('tfidf_v', TfidfVectorizer(ngram_range=(1, 1))), ('clf_m', LinearSVC(C=2, loss='squared_hinge'))]) # entrenar modelo -clf_model.fit(X_train, y_train) +# clf_model.fit(X_train, y_train) # evaluar modelo -pred_test = clf_model.predict(X_test) +# pred_test = clf_model.predict(X_test) -from sklearn.metrics import accuracy_score +# from sklearn.metrics import accuracy_score -print('Exactitud:', accuracy_score(y_test, pred_test)) +# print('Exactitud:', accuracy_score(y_test, pred_test)) -# test -st.write(""" +#Cargar Modelo Preentrenado +ruta_modelo = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'clf_model_v1.2.2.pkl') +clf_model = joblib.load(ruta_modelo) +# inicializar resultado a vacio +result = 2 +# seleccionar modo +modo = st.selectbox( + 'Como quieres probar el modelo?', + ('Seleccionar review de forma aleatoria', 'Ingresar review de forma manual')) -""") -st.write('Preiona TEST y selecciona una review aleatoria a evaluar') +if modo == 'Seleccionar review de forma aleatoria': + # testA + st.write(""" -if st.button('Test'): - index = X_test.index[random.randint(0, 11859)] - review = df['review'][index] - st.write(' ') - st.write('#### review a evaluar: ') - st.write(review) - result = clf_model.predict([review])[0] + """) + + st.write('Presiona TEST y selecciona una review aleatoria entre los datos del set de prueba') + + button_test = st.button('Test') + + if button_test: + + index = X_test.index[random.randint(0, len(X_test))] + review = df['review'][index] + review_processed = X_test[index] + + st.write(' ') + st.write('#### review:') + st.write(review) + + result = clf_model.predict([review_processed])[0] + +else: + + # testB st.write(""" """) - if result == 0: - st.write('### Resultado de la Clasificacion:') - st.write('## Conocedor 🍾🎉') - else: - st.write('### Resultado de la Clasificacion:') - st.write('## Consumidor Casual 🥴') \ No newline at end of file + + input_review = st.text_input('Ingresa una nueva review 👇') + + if input_review: + st.write('#### review:') + st.write(input_review) + + result = clf_model.predict([input_review])[0] + +st.write(""" + + + +""") + +if result == 0: + st.write('### Resultado de la Clasificacion:') + st.write('## Conocedor 🍾🎉') +elif result == 1: + st.write('### Resultado de la Clasificacion:') + st.write('## Consumidor Casual 🥴') +else: + st.write(' ')