4. Práctica 1a: PLN con SpaCy.#

Borja Navarro Colorado

4.1. Objeto#

El objetivo de esta práctica es crear un script que procese un texto amplio con las aplicaciones comunes del PLN:

  • lematización,

  • PoS_tagger,

  • parser de dependencias y

  • detección de entidades nombradas.

Para ello, se utilizará el pipeline básico de la herramienta de PLN SpaCy.

4.2. Herramientas#

4.3. Corpus#

Para darle algo de interés a la práctica, vamos a utilizar el tipo de texto más complejo que exite: el texto literario. En concreto debéis analizar una novela del corpus ELTeC.

ELTeC es un corpus multilingüe de novelas publicada en Europa durante los siglos XIX y XX. Cada novela está anotada a tres niveles: básico, estándar y avanzado. Debéis seleccionar una novela del nivel estándar. A este nivel, cada novela está marcada en XML siguiendo el estándar TEI. Podéis utilizar el idioma que queráis (siempre que se encuentre en SpaCy, ver modelos disponibles). Por ejemplo:

Dado que el corpus está en GitHub, se puede clonar el repo y abrir los ficheros directamente directamente desde COLAB.

4.4. Documentación#

4.4.1. Por pasos:#

  1. Crear un cuaderno COLAB vacío.

  2. Importar SpaCy, descargar el módulo de idioma elegido e importar.

  3. Clonar el corpus desde GitHub y abrir una única novela en la carpeta level1.

  4. Procesar el XML y extraer los párrafos:

    • Los párrafos están marcados con la etiqueta “p”.

    • para procesar XML en python, se recomienda por su sencillez Beautiful Soup

  5. Analizar el texto con el pipeline básico de SpaCy y extraer un CSV con “palabra | lema | categoria_gramatical | tipo de dependencia sintáctica | palabra de quien depende “.

  6. Extraer los 10 grupos nominales más frecuentes (opcional: mostrar en un gráfico).

  7. Extraer las 10 entidades nombradas más frecuentes (opcional: mostrar en un gráfico).

  8. (Opcional) Crear un gráfico en COLAB donde se muestren la cantidad de nombres, adjetivos, verbos y adverbios.

  9. Entrega: enviar enlace del cuaderno COLAB al profesor mediante la opción “Entrega de prácticas” de la UA-Nube (UA-Cloud).

4.5. Amplicación 1#

Realizar análisis de dependencias del corpus con SpaCy y extraer en formato CONLL. Desde SpaCy se puede utilizar STANZA y UD-Pipe.

Documentación:

4.6. Amplicación 2 - Análisis semántico con WordNet y NLTK#

Esta ampliación se debe realizar DESPUÉS de estudiar el Tema 5 del Bloque 1 Análisis semántico

Dado un fragmento del corpus lematizado, extraer el synset más frecuente.

Documentación:

Truco: en WordNet, los sentidos de cada palabra están ordenados por frecuencia. Basta con extraer el primero para obtener el más frecuente.