170 likes | 296 Views
Reciclar código Día 18, 24 feb 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
Reciclar códigoDía 18, 24 feb 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 • Las notas están en el Gradebook de Blackboard. SPAN 4350 - Harry Howard - Tulane University
Repaso SPAN 4350 - Harry Howard - Tulane University
Condiciones encadenadas >>> cadena = 'Ojo!' >>> for c in cadena: ... if c.islower(): ... print c, 'es una letra en minúscula' ... elif c.isupper(): ... print c, 'es una letra en mayúscula' ... else: ... print c, 'no es una letra' ... O es una letra en mayúscula j es una letra en minúscula o es una letra en minúscula ! no es una letra SPAN 4350 - Harry Howard - Tulane University
Como agregar a una lista en una travesía >>> cadena = '¡Ojo!' >>> min=[]; may=[]; nin=[] >>> for c in cadena: ... if c.islower(): ... min.append(c) ... elif c.isupper(): ... may.append(c) ... else: ... nin.append(c) ... >>> min; may; nin ['j', 'o'] ['O'] ['\xc2', '\xa1', '!'] SPAN 4350 - Harry Howard - Tulane University
Codificacioneshttp://www.tulane.edu/~howard/CompCultES/unicode.html#summaryCodificacioneshttp://www.tulane.edu/~howard/CompCultES/unicode.html#summary SPAN 4350 - Harry Howard - Tulane University
NLPP 2.3 Más Python: Reciclar código SPAN 4350 - Harry Howard - Tulane University
Presentación • Para ahora habrás escrito y reescrito un montón de código en el intérprete interactivo de Python. • Si te equivocas al volver a escribir un ejemplo complejo, tienes que entrarlo todo de nuevo. • Utilizar las teclas de flecha para acceder y modificar los comandos anteriores es útil, pero no soluciona el problema. • En esta sección vemos dos aspectos importantes para la reutilización de código: • el editor de Spyder • las funciones de Python. SPAN 4350 - Harry Howard - Tulane University
El editor de Spyder • Con Spyder, baja el menú File y abre una nuevo documento. • Entra el siguiente programa en línea: • print 'Viva Mardi Gras!' • Guarda este programa en un fichero llamado viva.py, y luego ir al menú Run y seleccionar el comando Run. SPAN 4350 - Harry Howard - Tulane University
Un script para abrir la Gitanilla importnltk fromnltk.corpusimportPlaintextCorpusReader sendero = '/Users/harryhow/nltk_data/pytextos' nombre = 'Gitanilla.txt' texlector = PlaintextCorpusReader(sendero,nombre, encoding='utf8') texto = texlector.words() SPAN 4350 - Harry Howard - Tulane University
Funciones SPAN 4350 - Harry Howard - Tulane University
La función • Una función es sólo un bloque de código con nombre que realiza una tarea bien definida, como vimos en la sección 1.1. • Una función se suele definirse • para que acepte algunos entradas, utilizando variables especiales conocidos como parámetros, y • puede producir un resultado, también conocido como valor de retorno. • Definimos una función utilizando • la palabra clave def • seguida por el nombre de la función y los parámetros de entrada, • seguida por el cuerpo de la función. SPAN 4350 - Harry Howard - Tulane University
Un ejemplo de una función • Aquí está la función que vimos en la Sección 1.1 (con la declaración de importación que hace que la división se comporta como se espera): >>> from __future__ import division >>> def diversidad_lexica(texto): ... return len(texto) / len(set(texto)) SPAN 4350 - Harry Howard - Tulane University
Explicación • Se utiliza la palabra clave return para indicar el valor que se produce como resultado de la función. • En el ejemplo anterior, todo el trabajo de la función se hace en la instrucción de retorno. • En la diapositiva siguiente hay una definición equivalente que hace el mismo trabajo usando varias líneas de código. SPAN 4350 - Harry Howard - Tulane University
Otra versión del ejemplo >>> defdiversidad_lexica(texto): ... cuenta_palabras = len(texto) ... tamano_vocabulario = len(set(texto)) ... from__future__ importdivision ... diversidad_lexica= cuenta_palabras / tamano_vocabulario ... returndiversidad_lexica SPAN 4350 - Harry Howard - Tulane University
Explicación • Observe que hemos creado algunas variables nuevos en el cuerpo de la función. • Estas son las variables locales y no son accesibles fuera de la función. • Una función no hace nada hasta que no se "llame" (o "invoque"): >>> diversidad_lexica(tex) SPAN 4350 - Harry Howard - Tulane University
Analisis de textos con NLTK El próximo díaTráete el portátil a clase. SPAN 4350 - Harry Howard - Tulane University