#MLNET – Nueva version 0.4, nuevas mejoras en análisis de texto con Word Embedding

Buenas!

Ayer se anuncio una nueva version de Machine Learning.Net, la version 0.4. Hay varias novedades interesantes, sin embargo, a mí me llamo la atención la mención de Word Embedding. Me he puesto a leer un poco al respecto y la verdad es que la capacidad de utilizar algunos modelos existentes de procesamiento de texto y sobre los mismos construir nuestros modelos es algo que se agradece.

En el post de lanzamiento comentan los detalles al respecto, yo he decidido tomar la app de consola de ejemplo del repositorio y ver las diferencias entre el procesamiento clásico y el que podemos hacer con WE. Utilizando los mismos Set de datos para el análisis y evaluación el modelo clásico con trabaja con una Precisión del 66.60% y utilizando WE esta Precisión sube hasta 72.30%

i1

El código de entrenamiento de los mismos es el siguiente

En la App anterior, utilizo los mismos DataSets para el entrenamiento y evaluación. La diferencia se puede ver en las funciones TrainModel() y TrainModelWordEmbeddings().

Como comentaba al principio lo interesante de este nuevo Release es la capacidad de utilizar varios modelos preentrenados. En el post de MSDN se habla de GloVe, fastText y SSWE. El paso siguiente seria ver como se comportan los nuevos modelos utilizando algunos de estos modelos

i2

Ya hay varios modelos, solo hare la prueba con algunos de ellos ya que, durante el proceso de entrenamiento, los modelos existentes se descargan OnDemand y descargar +6GB por prueba es, como mínimo, interesante

I3

Pues bien, los resultados son bastante interesantes

=============== Evaluating model normal ===============
Accuracy: 66.60%
Auc: 73.97%
F1Score: 61.78%
=============== End evaluating ===============

=============== Evaluating model using WordEmbeddings ===============
Accuracy: 72.30%
Auc: 81.19%
F1Score: 70.50%
=============== End evaluating ===============

=============== Evaluating model using WordEmbeddings GloVe50D ===============
Accuracy: 66.10%
Auc: 69.32%
F1Score: 64.28%
=============== End evaluating ===============

=============== Evaluating model using WordEmbeddings GloVe300D ===============
Accuracy: 67.80%
Auc: 73.23%
F1Score: 66.60%
=============== End evaluating ===============

=============== Evaluating model using WordEmbeddings GloVeTwitter50D ===============
Accuracy: 65.30%
Auc: 70.06%
F1Score: 64.26%
=============== End evaluating ===============

=============== Evaluating model using WordEmbeddings GloVeTwitter200D ===============
Accuracy: 65.40%
Auc: 72.63%
F1Score: 64.69%
=============== End evaluating ===============

=============== Evaluating model using WordEmbeddings Sswe ===============
Accuracy: 72.30%
Auc: 81.19%
F1Score: 70.50%
=============== End evaluating ===============

 

El código completo de la app se puede descargar desde https://github.com/elbruno/Blog/tree/master/20180808%20MLNET%200.4%20WordEmbeddings

Happy Coding!

Saludos @ Toronto

El Bruno

References

My Posts

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s