Procesadores de Lenguaje Basic Text Processing Cristina Tı̂rnăucă Dept. Matesco, Universidad de Cantabria Fac. Ciencias – Ing. Informática – Primavera de 2013 Normalización léxica (Text Normalization) Necesaria en cualquier aplicación de PLN I segmentación de texto en frases I segmentación de frases en palabras I normalización del formato para cada palabra Segmentación de texto en frases I I ¡,!,¿,? → fácil . → ambiguous I I I puede separar dos frases puede ser utilizado en abreviaciones (Sr. o U.S.A.) puede aparecer en los números (.02% o 3.14) Solución: se construye un clasificador binario I mira todos los . I clasifica en FinDeFrase o NoFinDeFrase Segmentación de frases en palabras ¿Cuantas palabras? Yo devuelvo los libros el próximo mes, pero tú me devuelves el libro ahora. Segmentación de frases en palabras ¿Cuantas palabras? Yo devuelvo los libros el próximo mes, pero tú me devuelves el libro ahora. 14? Segmentación de frases en palabras ¿Cuantas palabras? Yo devuelvo los libros el próximo mes, pero tú me devuelves el libro ahora. 14? Segmentación de frases en palabras ¿Cuantas palabras? Yo devuelvo los libros el próximo mes, pero tú me devuelves el libro ahora. 14? 13? Segmentación de frases en palabras ¿Cuantas palabras? Yo devuelvo los libros el próximo mes, pero tú me devuelves el libro ahora. 14? 13? Segmentación de frases en palabras ¿Cuantas palabras? Yo devuelvo los libros el próximo mes, pero tú me devuelves el libro ahora. 14? 13? 11? Segmentación de frases en palabras ¿Cuantas palabras? Yo devuelvo los libros el próximo mes, pero tú me devuelves el libro ahora. 14? 13? 11? Segmentación de frases en palabras ¿Cuantas palabras? Yo devuelvo los libros el próximo mes, pero tú me devuelves el libro ahora. 14? 13? 11? 10? Segmentación de frases en palabras ¿Cuantas palabras? Yo devuelvo los libros el próximo mes, pero tú me devuelves el libro ahora. 14? 13? 11? 10? Segmentación de frases en palabras ¿Cuantas palabras? Yo devuelvo los libros el próximo mes, pero tú me devuelves el libro ahora. 14? 13? 11? 10? 9? Segmentación de frases en palabras ¿Cuantas palabras? Yo devuelvo los libros el próximo mes, pero tú me devuelves el libro ahora. 14? 13? 11? 10? 9? I 14 word occurrences (tokens) I 13 wordforms I 9 lexemes (lemma o type) Normalización del formato para cada palabra Porter Stemmer import re from PorterStemmer import PorterStemmer p = PorterStemmer() line=’“Pain is temporary. Quitting lasts forever ” - Lance Armstrong’ I make sure everything is lower case line = line.lower() I split on whitespace line = [xx.strip() for xx in line.split()] I remove non alphanumeric characters line = [re.sub(’[ˆa-zA-Z0-9]’,‘’, xx) for xx in line] I remove any words that are now empty line = [xx for xx in line if xx != ”] I stem words line = [p.stem(xx) for xx in line] Normalización del formato para cada palabra Porter Stemmer import re from PorterStemmer import PorterStemmer p = PorterStemmer() line=’“Pain is temporary. Quitting lasts forever ” - Lance Armstrong’ I make sure everything is lower case line = line.lower() I split on whitespace line = [xx.strip() for xx in line.split()] I remove non alphanumeric characters line = [re.sub(’[ˆa-zA-Z0-9]’,‘’, xx) for xx in line] I remove any words that are now empty line = [xx for xx in line if xx != ”] I stem words line = [p.stem(xx) for xx in line] line=[’pain’, ’is’, ’temporari’, ’quit’, ’last’, ’forev’]