PLN y aprendizaje automático Índice Introducción Tareas, recursos y herramientas Referencias Introducción Un caso real En 2001, el Ministerio de Trabajo de los EEUU decidió construir un sistema web para buscar las ofertas de formación en todo el país. Los requisitos eran: Soportar búsquedas sobre todas las ofertas según distintos criterios. Recopilar automáticamente las ofertas desde los diferentes sitios web. Analizar la base de datos obtenida para encontrar patrones comunes o tendencias. Los problemas Múltiples fuentes de información. Casi ningún sistema ofrecía interfaces a sus bases de datos internas. El apoyo más útil era el de los aspectos de presentación (tablas, columnas, marcas HTML). La información podía aparecer en texto sin formato. Las soluciones Buscadores de documentos. Clasificadores de documentos. Wrappers: extractores basados en formatos (HTML, CSV, tablas). Extracción de información Extracción de información Se encarga de completar los campos de una base de datos desde texto sin formato. Comprende las siguientes etapas: Segmentación Clasificación Asociación Normalización De-duplicación Texto inicial Las distintas etapas FlipDog.com Extrae ofertas de trabajo de unos 60.000 sitios web de empresas. En poco tiempo dobló el número de ofertas de Monster (uno de los líderes en EEUU). Produce un informe mensual de tendencias analizando su base de datos. ZoomInfo.com Extrae información de personas y empresas de las páginas de todo el mundo (>30 millones). Genera informes automáticamente. Permite a los interesados añadir información a esos informes. MediClaim de Verity Escanea formularios de solicitudes a seguros médicos. Se apoya en la regularidad de esos formularios para extraer la información relevante. Cubre el proceso papel -> base de datos ahorrando costes. CiteSeer Extrae información de citas desde la cabecer de artículos científicos. Puede identificar los artículos semilla en cada campo o calcular índices de impacto. Cumple además una función de buscador de documentos científicos. Cómo no se hace esto Se puede hacer una extracción simple con expresiones regulares. Para casos un poco más complejos se pueden usar reglas apoyadas en características como el tipo de letra o la posición en la página. En ambos casos se necesita cierta regularidad. En cuanto la variedad es grande ninguna de las soluciones es viable. Hasta que llegue la Web Semántica, enfrentarse al Lenguaje Natural parece la única vía … … y el aprendizaje automático una buena opción. Aprendizaje automático Se basa en algoritmos que producen automáticamente reglas. El criterio para producirlas es su adaptación a los ejemplos disponibles. Ahora ya no hay que escribir reglas, hay que buscar ejemplos. Es más fácil, barato y adaptable. Un buen símil Cuanto más lee una persona, mejor sabe: expresarse leer y comprender lo leído Una rama muy importante del aprendizaje automático sigue una filosofía similar: Cuantos más ejemplos de un problema tenga registrados una máquina, mejor sabe: resolver ese problema Bases de datos de entrenamiento Base de datos de un supermercado: leche cerveza pañales … azúcar agua mantequilla carne pescado sí sí no … no no no no no no no sí … sí sí sí no sí no sí sí … no no no no sí no no no … no sí sí sí sí no no no … sí no no no no no sí sí … no sí sí sí no no sí sí … no sí no no no no no no … sí no sí sí no … … … … … … … … … no no no … sí sí sí no no no sí sí … no no no no no no no sí … no no no no no Un estudio detectó que los viernes se compran más pañales y cerveza. Puede ayudar a la toma de decisiones. ¿Y en el PLN? Nos centraremos en el PLN escrito. En este contexto los ejemplos vienen incluidos en textos. Las “bases de datos” utilizadas son colecciones de documentos y se denominan corpus: Un corpus puede estar “anotado” o no Conexión PLN – Aprendizaje automático Hay algoritmos de aprendizaje propios para el procesamiento de textos, pero el esquema general podría ser así: Nuevo ejemplo Corpus Extracción de características Entrenamiento Base de datos Modelo Resultado Nada es perfecto Los límites actuales de las diversas tareas involucradas en la extracción de información son: - Reconocimiento de nombres: 80%-90% - Asociación de nombres: 60% - De-duplicación: 70%-80% Herramientas para extraer Herramientas de software libre para extraer información: - GATE - MALLET - MinorThird - Road Runner Tareas, recursos y herramientas Clasificación de documentos <corpus> <documento> <id> 1001 </id> <clase> deporte </clase> <texto> La Agencia Tributaria ha decretado el embargo preventivo de los ingresos televisivos y publicitarios del Atlético de Madrid y 7 equipos de Segunda, entre ellos el recién ascendido Albacete. La cantidad que se embargaría asciende a 43,5 millones de euros debido al "riesgo de impago" de la deuda que tienen contraídos dichos clubes con el Ministerio de Hacienda. </texto> </documento> <documento> <id> 1005 </id> <clase> nacional </clase> <texto> El presidente de la Generalitat, Jordi Pujol, ha asegurado que el pasado sábado, fecha en la que se constituyeron los ayuntamientos tras las municipales del 25-M, obligó al candidato de CiU de El Vendrell a no presentarse para evitar ser reelegido con el voto de la plataforma xenófoba. </texto> </documento> </corpus> Etiquetado morfo-sintáctico Corpus CLiC-TALP (UPC) De la mano de un tío suyo , volvió a casa una tarde , fue al cuarto … de el mano de uno tío suyo , volver a casa uno tarde , ir al cuarto SPS00 DA0FS0 NCFS000 SPS00 DI0MS0 NCMS000 DP3MS0 Fc VMIS3S0 SPS00 NCFS000 DI0FS0 NCFS000 Fc VMIS3S0 SPCMS NCMS000 Reconocimiento de nombres Corpus CoNLL-2002 El presidente del Consejo por la Paz , organismo observador de Perú , Francisco Díez Canseco , consideró … O O O B-ORG I-ORG I-ORG I-ORG O O O O B-LOC O B-PER I-PER I-PER O O Análisis sintáctico superficial Corpus CoNLL-2000 But CC analysts NNS reckon VBP underlying VBG support NN for IN sterling NN has VBZ been VBN eroded VBN by IN the DT chancellor NN 's POS failure NN to TO announce VB any DT … O B-NP B-VP B-NP I-NP B-PP B-NP B-VP I-VP I-VP B-PP B-NP I-NP B-NP I-NP B-VP I-VP B-NP Determinación del significado Corpus SemCor (vinculado a WordNet) <s snum=2> <wf cmd=ignore pos=DT>The</wf> <wf cmd=done pos=NN lemma=farmer wnsn=1 lexsn=1:18:00::>farmer</wf> <wf cmd=ignore pos=POS>'s</wf> <wf cmd=done pos=NN lemma=life wnsn=2 lexsn=1:26:02::>life</wf> <wf cmd=ignore pos=MD>must</wf> <wf cmd=done pos=VB ot=notag>be</wf> <wf cmd=done pos=VB lemma=arrange wnsn=0 lexsn=2:36:04::>arranged</wf> <wf cmd=ignore pos=TO>to</wf> <wf cmd=done pos=VB lemma=meet wnsn=6 lexsn=2:41:02::>meet</wf> <wf cmd=ignore pos=DT>the</wf> <wf cmd=done pos=NN lemma=demand wnsn=5 lexsn=1:09:00::>demands</wf> <wf cmd=ignore pos=IN>of</wf> <wf cmd=done pos=NN lemma=crop wnsn=1 lexsn=1:20:00::>crops</wf> <wf cmd=ignore pos=CC>and</wf> <wf cmd=done pos=NN lemma=livestock wnsn=1 lexsn=1:05:00::>livestock</wf> <punc>.</punc> </s> TnT. Modelos de Markov TnT: Trigram Tagger P(I-ORG|B-ORG) I-ORG P(B-ORG|O) P(O|B-ORG) B-ORG ... O ... P(B-LOC|B-ORG) B-LOC P(Extremadura|B-LOC) ... P(Londres|B-LOC) Extremadura Londres TreeTagger. Árboles de decisión c1 c2 c3 c4 clase 2 6 4 11 A 3 5 3 12 A 1 6 1 1 B ... ... ... ... ... 10 6 1 5 A c3<2 c3>=2 A c1<3 B c1>=3 A fnTBL. Basado en transformaciones TBL: Transformation Based (Error driven) Learning W,T -> T’ W-1,T->T’ W-1,W,T->T’ … Recursos iniciales: Corpus etiquetado del,VRB->NN … Reglas 1 Plantillas de reglas al,VRB->NN del,VRB->NN … Reglas N … … C0-simple C1 CN MBT. Basado en memoria MBT: Memory Based Tagger MBL: Memory Based Learning Optimización del método de los k-vecinos más cercanos Referencias Textos General Foundations of Statistical Natural Language Processing http://nlp.stanford.edu/fsnlp/promo/ Extracción de información: Information Extraction. Distilling Structured Data from Unstructured Text http://www.cs.umass.edu/~mccallum/papers/acmqueue-ie.pdf Clasificación automática: Machine Learning in Automated Text Categorization http://citeseer.ist.psu.edu/518620.html Text Categorization and Prototypes http://www.illc.uva.nl/Publications/ResearchReports/ MoL-2001-08.text.pdf Recursos Corpus CLic-TALP http://clic.fil.ub.es/ Corpus análisis sintáctico superficial http://www.cnts.ua.ac.be/conll2000/chunking/ Corpus reconocimiento de nombres http://www.cnts.ua.ac.be/conll2002/ner/ Corpus determinación de significado http://multisemcor.itc.it/ WordNet http://wordnet.princeton.edu/ Herramientas de etiquetado TnT http://www.coli.uni-saarland.de/~thorsten/tnt/ TreeTagger http://www.ims.uni-stuttgart.de/projekte/corplex/TreeTagger/ fnTBL http://nlp.cs.jhu.edu/~rflorian/fntbl/ MBT http://ilk.uvt.nl/mbt/ Herramientas de extracción GATE http://gate.ac.uk/ie/annie.html MALLET http://mallet.cs.umass.edu Road Runner http://www.dia.uniroma3.it/db/roadRunner MinorThird http://minor third.sourceforge.net