[en] The main topic of this project is automatic patent classification using LSTM networks (Long- Short Term Memory). Patents are official documents which describe and limit intelectual property for ideas. It's content is mainly text, and multiple labels from a hierarchical multi-level classification system (IPC). It begins with the description of several methods for treatment and extraction of text features as well as machine learning classification. The ones described are bag of words, perceptrons, multi-layer perceptrons, embbedings, recurrent neural networks and, at last, LSTM networks. To get an overview of the state of the art in patent classification and to take a peek at different methods than those described before, several papers which show promising results are summarized. Afterwars, a testing methodology to be able to test different models with ease is stablished. This methodology encloses a newly developed framework that allows for easy building of data workflows and provides some useful utilities to to guarantee reproducibility of the experiments, specially inside docker containers with their own GPU. Furthermore, this framework does some automatic caching to prevent big calculations that have alredy been done from happening twice. Lastly, an estatistical analysis is performed on the texts meant to be used as training data. This will give us some insight that will help us choose the definitive model and its etl. pipeline. A performance metric is also defined to be able to have some criteria over which models and parameters work better and we shoud spend more time on. Finally, some experiments were attempted, all using LSTM networks. The results don't come out quite good but they leave plenty of room open for improvement as well as guidelines marked by those tests.

[es] Este trabajo se centra en la clasificación automática de patentes usando redes LSTM (Long-Short Term Memory). Las patentes son documentos que recogen y acotan la propiedad intelectual, compuestas principalmente por texto y múltiples etiquetas correspondientes a una clasificación jerárquica de varios niveles (IPC). Para empezar se describen distintos métodos de tratamiento y extracción de características de textos y de clasificación por aprendizaje automático. Éstos son las bolsas de palabras, los perceptrones, los perceptrones multicapa, los mapeos (embbedings), las redes neuronales recurrentes y por último las redes recurrentes con neuronas LSTM. Además se revisan distintos artículos centrados en la clasificación de patentes para conocer el estado del arte y otras alternativas a los modelos que se van a probar. A continuación se establece una metodología de desarrollo y pruebas de modelos para poder evaluar con facilidad los distintos experimentos. Dentro de esta metodología se incluye un framework de flujo de datos y entrenamiento de modelos así como pequeñas utilidades para poder replicar todos los experimentos en entornos virtualizados con docker pero con acceso a GPUs. Además, este framework realiza un guardado automático de los resultados intermedios de los distintos módulos de procesado de texto (que también ha habido que implementar) para así conseguir que operaciones costosas previas al entrenamiento se ejecuten solo cuando sea necesario y no más de una vez. Finalmente se realzó un análisis estadístico de los textos que se iban a usar para entrenar los modelos para poder decidir razonadamente que tratamiento usar para los modelos definitivos. También se describe la métrica que se va a usar para evaluar los distintos modelos así como ciertos parámetros de entrenamiento. Por último se realizaron unos experimentos con distintas variaciones de modelos con LSTM, algunos con un mapeo precalculado y otros entrenando un mapeo de cero. La gran mayoría fueron poco conclusivos y no tuvieron resultados muy buenos, pero dejan abierta la puerta a sencillas mejoras e indican los pasos a seguir para mejorar la precisión.