Ponencia sobre Procesamiento de lenguaje natural con python a cargo del Ing. Carlos Gutierrez, en el evento de Pytatuy2019, en la ciudad de Mérida, Venezuela el 13 de Septiembre de 2019. Idioma Español.
3. Agenda:
1. ¿Qué es Procesamiento de Lenguaje Natural (PLN)?
2. Conceptos: Tokenización, Etiquetas, Lematización, Chunks
3. Preprocesamiento y normalización
4. Python para PLN
5. Librería Spacy
6. Un ejemplo de PLN con Spacy
7. Algunos usos del PNL
4. ¿Que es el procesamiento de lenguaje
natural?
“Es la suma de técnicas, modelos y
herramientas que nos permite convertir un
lenguaje natural a datos procesables por un
algoritmo especializado para dicho fin”.
5. ¿Que es el procesamiento de lenguaje
natural?
“Es una rama de la inteligencia artificial
que intenta replicar la facultad del
lenguaje humano”.
6. ¿Que es el procesamiento de lenguaje
natural?
lingüística + Cs. Computación
7. Hablar de PLN: Lingüística computacional
lingüística + Cs. Computación
Noam Chomsky Alan Turing
8.
9. Tokenización (tokenizer)
La tokenización es un paso que divide cadenas de texto más largas en
piezas más pequeñas o tokens.
La tokenización también se conoce como segmentación de texto o análisis
léxico
Tokens = ['la', 'vida', 'es', 'bella', 'y', 'aun', 'mas', 'si', 'programa', 'con', 'python']
Texto = "la vida es bella y aun mas si programas con python"
10. Etiquetar (Tagging Part of Speech - PoS)
Clasificar las oraciones en verbo, sustantivo,
adjetivo preposición, etc.
11. Lematización (Lemmatized)
Asignar las formas básicas de las palabras.
Es el proceso de convertir una palabra a su forma
base (raíz)
universal as= universal
universalmente as=universal
la palabra raíz es universal
12. Chunks
Sirve para entender la gramática en las oraciones. Se hace
un parseo de los tokens y a partir de su PoS se arma un
árbol de la estructura.
13. Preprocesamiento y normalización
Preprocesamiento se refiere a la adecuación del texto para
eliminar la mayor cantidad de caracteres no deseados.
La normalización generalmente se refiere a una serie de
tareas relacionadas destinadas a poner todo el texto en
igualdad de condiciones.
Todo esto depende de la fuente de los datos.
14. Python para PLN
NLTK: Esta es la librería muy versátil y robusta, sirve mucho para preprocesamiento,
crear los tokens, POS tagging, etc
TextBlob: fue creada como una capa superior de NLTK y es fácil de usar. Incluye
algunas funcionalidades adicionales como análisis de sentimiento y spell check.
Gensim: construida específicamente para modelado de temas, también calcula
similitud de documentos.
SpaCy: Es una librería bastante robusta, rápida y lista para producción.
15. De las diferentes librerías?
Nos vamos a centrar en la librería Spacy y
daremos una pequeña demostración de su
potencial con un ejemplo muy simple.
16. Acerca de Spacy
Es una biblioteca de software de
código abierto para procesamiento
avanzado de lenguaje natural, escrita
en los lenguajes de programación
Python y Cython.
19. Como se utiliza Spacy
Para usarla solo hace falta hacer esto:
pip install spacy
python -m spacy download en_core_web_sm
20. Como se utiliza Spacy
Para el ejemplo usaremos el idioma español:
Instalamos lo siguiente:
python -m spacy download es_core_news_sm
Fuente: https://spacy.io/models
24. Ejemplo usando Spacy
from spacy import displacy |
displacy.serve(doc, style="dep")
Con esto podemos apreciarlo de forma gráfica en el navegador
25. Algunos usos PLN:
● Motores de búsqueda
● Respuestas automáticas
● Asistentes automáticos |
Chatbots
● Extracción de información
● Análisis de sentimiento
● Sistemas de traducción
● Correctores ortográficos
● Interfaces a bases de datos en lenguaje natural
● Resúmenes de textos
● Clasificación de documentos
● Minería de redes sociales
● Reconocimiento de voz