datosgobar / textar

Paquete en python para análisis, clasificación y recuperación de textos, utilizado por el equipo de Datos Argentina.
https://textar.readthedocs.io/
MIT License
32 stars 12 forks source link

Generación del clasificador #1

Open marymatt opened 7 years ago

marymatt commented 7 years ago
  1. ¿Cuando se realiza el entrenamiento de un clasificador se genera algún archivo con el nombre del clasificador ? por ejemplo en este fragmento de código

tc.make_classifier ( name="recetas_classifier", ids=map(str, range(6)), labels=["Comida", "Comida", "Trago", "Trago", "Postre", "Postre"] )

Para ese caso, ¿Se genera algún archivo con el nombre "recetas_classifier" que contenga el texto clasificado cuando ejecuto la primera vez el código? si es así, ¿En donde se genera?

  1. Con respecto al siguiente fragmento de código

labels_considerados, puntajes = tc.classify ( classifier_name="recetas_classifier", examples=[ "Para hacer un bizcochuelo de chocolate se necesita harina, huevos, leche y chocolate negro", "Para hacer un sanguche de miga necesitamos pan, jamón y queso" ] )

Entiendo que esa parte es para hacer la prueba del clasificador, ¿se puede implementar esa parte de código en otro momento?, es decir, ¿después de hacer la clasificación poder ejecutar las veces que quiera solo las pruebas con los textos que determine pertinente?

3.¿Como se le puede indicar en las pruebas del clasificador que hizo una clasificación incorrecta y pasarle la forma correcta ?

por ejemplo, las pruebas arrojan que el texto habla de "comida" y realmente es "Trago"

  1. ¿Tienen estipulado números de caracteres para los "texts" que entran a TextClassifier?

Muchas gracias por su ayuda y quedo atenta a la respuesta,

Saludos!!

meliascosta commented 7 years ago

Hola, marymatt. ¡Muchas gracias por tu consulta!

  1. Al momento de la clasificación, no se genera ningún archivo nuevo sino que todo queda dentro del objeto TextClassifier. Si lo que te interesa es guardar un clasificador para usarlo de nuevo más adelante podes usar la libreria joblib para guardar la instancia tc:
from sklearn.externals import joblib
joblib.dump(tc, 'archivo_para_guardar_tc.pkl') 

y después, cuando quieras usarlo:

tc = joblib.load( 'archivo_para_guardar_tc.pkl') 
  1. Lo que decís es correcto. Una vez que está entrenado el clasificador podés correr la clasificación las veces que necesites. Esto no modifica el estado del clasificador.

  2. En este caso podés usar la función retrain para agregar los ejemplos nuevos.

tc.retrain(name="nombre_del_clasificador", 
           ids=ids_textos_mal_clasificados, 
           labels=etiquetas_correctas)
  1. No hay un límite estipulado para la longitud de los textos. El límite va a estar dado por la cantidad de memoria que tengas disponible en tu sistema.

Si alguna respuesta no está muy clara o tenés cualquier otra consulta, no dudes en escribirnos nuevamente.