Procesamiento de Lenguaje Natural, Python y NLTK

5,747 views

Published on

Introducción a Procesamiento de Lenguaje Natural en el lenguaje de programación Python utilizando la librería NLTK.

Published in: Technology
1 Comment
5 Likes
Statistics
Notes
  • al alguna manera de usar el NLTK para el idioma español y usar todo el NLTK pero con el español
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
5,747
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
323
Comments
1
Likes
5
Embeds 0
No embeds

No notes for slide

Procesamiento de Lenguaje Natural, Python y NLTK

  1. 1. Raúl Garreta @raulgarreta PyDayUruguay 2011
  2. 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
  3. 3.  Traducciónautomática  Systran, Google Translate  Clasificaciónde texto:  Spam filtering (spam/ham)  Topic classification (política, negocios, tecnología, deportes, ...)  Sentiment analysis (pos/neg/neutral)  Recuperación de Información  Search engines: Google Search, Lucene  Textdatabases: MongoDB, CouchDB  Extracciónde Información  Resúmenes automáticos, palabras clave, categoría, entidades, fechas, direcciones, emails. Scraping  Entendimineto / Generación de lenguaje natural:  Question & Answering, Chatbots  CorrecciónAutomática  Compiladores / Intérpretes  Muchomás…
  4. 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. 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. 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. 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. 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. 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. 10.  Para realizar cosas mas complejas, necesitamos más librerías.  Simple, extensible, modularizado, infraestructura:  ExpresionesRegulares  Gramáticas  Parsers  Modelosestadísticos  Clasificadores
  11. 11.  Comunidadgrande, académica, tanto de desarrolladores y usuarios.  Recomiendotutoriales y demos de Jacob Perkins:  streamhacker.com  text-processing.com
  12. 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…
  13. 13. ImportoNLTK Abro un archivode texto Tokenizaren oraciones Tokenizaren palabras
  14. 14. Etiquetado gramatical Chunking,extracciónde entidades
  15. 15. Importowordnet Obtengosynset Obtengolemasde sinónimos Obtengohipérnimos Obtengohipónimos
  16. 16. Definoset de atributos Obtengoejemplos Generoconjuntos de entrenamientoy testeo Entrenoun clasificador Utilizoel clasificador
  17. 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

×