Este documento presenta una introducción a procesamiento de lenguaje natural. Explica algunas aplicaciones clave como traducción automática, clasificación de texto y recuperación de información. También describe áreas como extracción de información, entendimiento de lenguaje natural y corrección automática. Finalmente, resume los principales retos y ventajas del uso de Python para procesamiento de lenguaje natural.
2. Subárea de InteligenciaArtificial,
Ciencias de la Computación.
Estudia métodos que permitan a las
máquinasinteractuar con las
personas mediante lenguaje natural.
Poder extraer significado,
información,manipular texto.
Área interdisciplinaria: Lingüística +
CienciasComputación+ Estadística
4. 50’s -AlanTuring “Computing
Machinery and Intelligence” “Turing
Test”
60’ – NoamChomsky “Syntactic
Structures”Sistemas basados en
reglas.Traducción automática
70’s– Ontologías, Chatbots
80’s– Sistemas basados en
Aprendizaje Automático.
90’s– Mayor poder de cómputo.
Teorías Lingüísticas de Chomsky
pierden fuerza. Modelos estadísticos.
5. Subárea dentro de Inteligencia
Artificial.
Estudia algoritmos que tienen la
capacidadde aprender a realizar una
tarea automáticamente.
Mejoran su performance con la
experiencia.
Permiten resolver tareas complejas,
cuya solución es muy difícil o
imposible de realizar manualmente.
6. Segmentación deOraciones
Un “.” puede ser decimal, suspensivos, abreviación, etc.
Segmentación de Palabras (Tokenización)
Enalgunos lenguajes no es simple
Análisis Lexicográfico (segmentación de morfemas)
Stemming / Lemmatizing: Obtener forma canónica, lexema, raíz
Ej: run, runs, ran, running -> run
Afijos: prefijos, infijos, sufijos (modifican significado de la palabra)
EtiquetadoGramatical (POSTagging)
Asignar una etiqueta gramatical a una palabra, ej: sustantivo, adjetivo, verbo, etc.
Ej: “La (art) pelota(sust) es(verbo) redonda(adj)”
Reconocimiento de Entidades (NER)
Identificar entidades: personas, organizaciones, lugares, etc.
Análisis Sintáctico (Parsing)
Identificar estructuras gramaticales en una oración.
Obtener árbol de parsing a partir de una gramática formal.
Análisis Semántico
7. Ambiguedades lexicas ej:
“banco” (financiero, plaza)
“planta” (industrial, natural).
Ambiguedades sintácticas ej:
“Vi un hombre con un telescopio”
Múltiples idiomas, traducción
Semántica,lógica, metáforas,
ironías, anáforas, etc.
8. Baterías incluidas para
procesamientode texto:
Soporte nativo de Unicode
Muchas funciones para procesamiento
de texto
Baja barrera de entrada,
prototipadorápido
Open source (éxito en el mundo
académicoy por lo tanto en PLN)
9. ▪ startswith/endswith
▪ strip
▪ split
▪ upper, lower
▪ find, replace, count
▪ join
▪ Slicing
s[0] s[2:7] s[6:] s[:5] s[-1]
▪ String = list, set
contar vocabulario:
len(set(text))
ordenarvocabulario:
sorted(set(text))
▪ módulo re para
expresiones regulares
▪ parsersde fechas
(dateutil)
▪ y mucho mas…
10. Para realizar cosas mas
complejas, necesitamos
más librerías.
Simple, extensible,
modularizado,
infraestructura:
ExpresionesRegulares
Gramáticas
Parsers
Modelosestadísticos
Clasificadores
11. Comunidadgrande, académica, tanto de
desarrolladores y usuarios.
Recomiendotutoriales y demos de Jacob
Perkins:
streamhacker.com
text-processing.com
12. Tokenizador de palabras
Tokenizador de oraciones
Etiquetadorgramatical
Chunkers
Reconocedor de entidades
Expresiones regulares
Gramáticas
Parsers
Stemmers/Lemmatizers
Wordnet
Algoritmos de AprendizajeAutomático
Corpus, grandes colecciones de texto
Más…
17. ¿Qué más se puede hacer?
Mucho…
Dificultades
Requiere cierto conocimiento de la “teoría”
Recursos para otros idiomas, ej: Español
Ventajas
Simple, rápido, poderoso, extensible