Procesadores de Lenguaje - Basic Text Processing

Anuncio
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’]
Descargar