230 likes | 371 Views
El control 2 Día 14, 14 ene 14. Cultura computacional en español SPAN 4350 Harry Howard Tulane University. Organizaci ón del curso. Las grabaciones y las presentaciones están disponibles en: http://www.tulane.edu/~howard/SPAN-NLP/
E N D
El control 2Día 14, 14 ene 14 Cultura computacional en español SPAN 4350 Harry Howard Tulane University
Organización del curso • Las grabaciones y las presentaciones están disponibles en:http://www.tulane.edu/~howard/SPAN-NLP/ • La versión en inglés del tema es http://www.tulane.edu/~howard/CompCultES/control.html • … aunque no está hecha todavía. SPAN 4350 - Harry Howard - Tulane University
Repaso SPAN 4350 - Harry Howard - Tulane University
La gitanilla • Siento haber mandado la tarea tan tarde ayer. • http://www.tulane.edu/~howard/CompCultES/nltk_archives.html SPAN 4350 - Harry Howard - Tulane University
Travesía o bucle (loop) >>> cadena = 'Ojo!' >>> forcaracter in cadena: ... print letra, ... O j o ! >>> lista = ['pera', 'manzana', 'sandia', 'chirimoya', 'naranja'] >>> for palabra in lista: ... print palabra, ... pera manzana sandia chirimoya naranja SPAN 4350 - Harry Howard - Tulane University
Más travesías >>> for caracterin cadena: ... printcaracter.upper(), ... O J O ! >>> for palabra in lista: ... printlen(palabra), ... 4 7 6 9 7 SPAN 4350 - Harry Howard - Tulane University
NLPP 1.4 Acercamiento a Python: Toma de decisiones y de control SPAN 4350 - Harry Howard - Tulane University
Práctica • Imprime el resultado de añadir el sufijo –ita a las palabras de la lista de frutas. >>> for p in fruta: … print p[:-1] + 'ita', … perita manzanita sandiita chirimoyita naranjita SPAN 4350 - Harry Howard - Tulane University
Crear una lista con los resultados • Si se imprime el resultado a la pantalla, no está disponible para un procesamiento posterior. • Por lo tanto, queremos recoger el resultado de una travesía en una lista. • Python tiene un modismo (idiom) para esta tarea, que se llama una comprensión de lista (list comprehension). SPAN 4350 - Harry Howard - Tulane University
La comprensión de lista • Tiene la sintaxis de: • [f(e) for e in fuente] o [e.f for e in fuente] • donde f es una función que se aplica a cada elemento e de la fuente f. • Ejemplo: Recoge en una lista el largo las palabras de "fruta". >>> [len(p) for p in lista] [4, 7, 6, 9, 7] • No se pueden hacer cadenas así, pero una lista de cadenas, sí. • Ejemplo: Recoge en una lista los caracteres en mayúscula de "cadena". >>> [c.upper() for c in cadena] ['O', 'J', 'O', '!'] SPAN 4350 - Harry Howard - Tulane University
Operar sobre algunos de los elementos • El paso siguiente es operar sólo sobre algunos de los elementos. • Hay que agregar a la travesía una condición con "if": >>> for c in cadena: ... if c != 'o': ... print c, ... O j ! >>> [c for c in cadena if c != 'o'] ['O', 'j', '!'] SPAN 4350 - Harry Howard - Tulane University
Un ejemplo con una lista >>> for p in lista: ... if len(p) > 4: ... print p, ... manzanasandiachirimoyanaranja >>> [p for p in lista if len(p) > 4] ['manzana', 'sandia', 'chirimoya', 'naranja'] SPAN 4350 - Harry Howard - Tulane University
Las pruebas o funciones condicionales SPAN 4350 - Harry Howard - Tulane University
Operadores de relación SPAN 4350 - Harry Howard - Tulane University
Ejemplos >>> 4 < 5 True >>> len('ab') > len('a') True >>> 'a' == 'a' True >>> 'a' != 'a' False >>> 'abc' <= 'abc' True SPAN 4350 - Harry Howard - Tulane University
Funciones (pruebas) de cadenas>>> c = 'informatica' >>> 'm' in c True >>> c.islower() True >>> c.isupper() False >>> c.isalpha() True >>> c.isalnum() True >>> c.isdigit() False >>> c.istitle() False >>> c.startswith('i') True >>> c.endswith('a') True SPAN 4350 - Harry Howard - Tulane University
Más ejemplos>>> may = 'BOOM'; num = '0123'; mezcla = 'Ojo!' >>> may.islower() False >>> may.istitle() False >>> num.isalpha() False >>> num.isalnum() True >>> num.isdigit() True >>> mezcla.islower() False >>> mezcla.isupper() False >>> mezcla.isalpha() False >>> mezcla.isalnum() False >>> mezcla.istitle() True SPAN 4350 - Harry Howard - Tulane University
Resumen de funciones (pruebas) de cadenas SPAN 4350 - Harry Howard - Tulane University
Condiciones complejas>>> c = 'informatica' >>> notc.isupper() True >>> c.islower() and c.isalpha() True >>> c.islower() orc.isupper() True SPAN 4350 - Harry Howard - Tulane University
Resumen de condiciones complejas • Si c es una condición, • not c es también una condición. • Si hay dos condiciones c1 y c2, • c1 and c2, • c1 or c2 • son también condiciones. SPAN 4350 - Harry Howard - Tulane University
Práctica • Encuentra las palabras de "fruta" que tienen 'y'. >>> for p in lista: ... if 'y' in p: ... print p, ... chirimoya >>> [p for p in lista if 'y' in p] ['chirimoya'] SPAN 4350 - Harry Howard - Tulane University
Otra • Encuentra las palabras de "fruta" que tienen 'y' o 'j'. >>> for p in lista: ... if 'y' in p or 'j' in p: ... print p, ... chirimoya naranja >>> [p for p in lista if 'y' in p or 'j' in p] ['chirimoya', 'naranja'] SPAN 4350 - Harry Howard - Tulane University
Empezar a trabajar con el texto en NTLK El próximo díaTráete el portátil a clase. SPAN 4350 - Harry Howard - Tulane University