scripts y funciones día18, 25-feb-15 span 4350 cultura computacional en español harry howard...
TRANSCRIPT
Scripts y funcionesdía18, 25-feb-15SPAN 4350
Cultura computacional en español
Harry Howard
Tulane University
Organización del curso
25-feb-2015CultCompES, Prof. Howard, Tulane University
2
http://www.tulane.edu/~howard/Span4350/
http://www.tulane.edu/~howard/CompCultES/1. Computación cultural2. Python 3. Cadenas4. Unicode 5. Exreg 6. Archivos 7. Listas8. Control
La travesía de 'advertencia'
25-feb-2015CultCompES, Prof. Howard, Tulane University
3
¡ O j o !
print letra
print letra
print letraprint letra
print letra
inicio
fin
Una de expresiones regulares
Encuentra las palabras de "fruta" que tienen cuatro letras y terminan con 'a', con search(expresión regular, fuente, UNICODE).
1. >>> from re import search, UNICODE
2. >>> for p in fruta:
3. ... if search(r'^\w{3}a$', p.decode('utf8'), UNICODE):
4. ... print p,
5. ...
6. >>> pera
7. >>> [p for p in fruta if search(r'^\w{3}a$', p.decode('utf8'), UNICODE)]
8. >>> ['pera']
25-feb-2015CultCompES, Prof. Howard, Tulane University
4
25-feb-2015CultCompES, Prof. Howard, Tulane University
5
Condiciones encadenadas
1. >>> cadena = '¡Ojo!'.decode('utf8')2. >>> for c in cadena:3. ... if c.islower():4. ... print c, 'es una letra en minúscula'5. ... elif c.isupper():6. ... print c, 'es una letra en mayúscula'7. ... else:8. ... print c, 'no es una letra'9. ...10. ¡ no es una letra11. O es una letra en mayúscula12. j es una letra en minúscula13. o es una letra en minúscula14. ! no es una letra
25-feb-2015CultCompES, Prof. Howard, Tulane University
6
Como agregar a una lista en una travesía1. >>> cadena = '¡Ojo!'.decode('utf8')2. >>> min=[]; may=[]; nin=[]3. >>> for c in cadena:4. ... if c.islower():5. ... min.append(c)6. ... elif c.isupper():7. ... may.append(c)8. ... else:9. ... nin.append(c)10. ... 11. >>> min; may; nin12. ['j', 'o']13. ['O']14. [u'\xa1', '!']
§8 Scripts
25-feb-2015
7
CultCompES, Prof. Howard, Tulane University
25-feb-2015CultCompES, Prof. Howard, Tulane University
8
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.
El editor de Spyder
Con Spyder, baja el menú File y abre una nuevo documento.
Entra el siguiente programa en una línea: print 'Viva Mardi Gras!'
Guarda este programa como "viva.py" y luego ir al menú Run y seleccionar el comando Run.
25-feb-2015CultCompES, Prof. Howard, Tulane University
9
Un script para abrir la Gitanilla Con Spyder, baja el menú File y abre una nuevo
documento. Entra lo siguiente:1. from nltk.corpus import PlaintextCorpusReader
2. texlector = PlaintextCorpusReader('', 'Gitanilla.txt', encoding='utf8')
3. texto = texlector.words()
4. Guárdalo como "procesaTexto.py".
25-feb-2015CultCompES, Prof. Howard, Tulane University
10
Funciones
25-feb-2015
11
CultCompES, Prof. Howard, Tulane University
25-feb-2015CultCompES, Prof. Howard, Tulane University
12
La función
Una función es sólo un bloque de código con nombre que realiza una tarea bien definida.
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.
25-feb-2015CultCompES, Prof. Howard, Tulane University
13
Un ejemplo
Con Spyder, baja el menú File, abre una nuevo documento y entra lo siguiente:
1. from __future__ import division
2. def diversidad_lexica(texto):
3. cuenta_palabras = len(texto)
4. tamano_vocabulario = len(set(texto))
5. diversidad_lexica = cuenta_palabras / tamano_vocabulario
6. return diversidad_lexica
Guárdalo como "funciones.py".
25-feb-2015CultCompES, Prof. Howard, Tulane University
14
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"), ver diapositiva siguiente.
Invócalo
Ejecuta (run) "procesaTexto.py" si no lo has hecho.
1. >>> from funciones import diversidad_lexica
2. >>> diversidad_lexica(texto)
3. 4.868782722513089
25-feb-2015CultCompES, Prof. Howard, Tulane University
15
Como extraer el texto de páginas web y proveedores de blogs
El próximo día
25-feb-2015CultCompES, Prof. Howard, Tulane University
16