Scripts y funciones
día18, 25-feb-15
SPAN 4350
Cultura computacional en español
Harry Howard
Tulane University
Organización del curso
2


http://www.tulane.edu/~howard/Span4350/
http://www.tulane.edu/~howard/CompCultES/
1.
2.
3.
4.
5.
6.
7.
8.
Computación cultural
Python
Cadenas
Unicode
Exreg
Archivos
Listas
Control
CultCompES, Prof. Howard, Tulane University
25-feb-2015
La travesía de 'advertencia'
3
inicio
¡
O
j
o
!
fin
print letra
print letra
print letra
print letra
print letra
CultCompES, Prof. Howard, Tulane University
25-feb-2015
Una de expresiones regulares
4

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.
...
4.
...
5.
...
6.
>>> pera
7.
>>> [p for p in fruta if search(r'^\w{3}a$', p.decode('utf8'), UNICODE)]
8.
>>> ['pera']
if search(r'^\w{3}a$', p.decode('utf8'), UNICODE):
print p,
CultCompES, Prof. Howard, Tulane University
25-feb-2015
Condiciones encadenadas
5
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
>>> cadena = '¡Ojo!'.decode('utf8')
>>> 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'
...
¡ 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
CultCompES, Prof. Howard, Tulane University
25-feb-2015
Como agregar a una lista en una travesía
6
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
>>> cadena = '¡Ojo!'.decode('utf8')
>>> 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']
[u'\xa1', '!']
CultCompES, Prof. Howard, Tulane University
25-feb-2015
7
§8 Scripts
CultCompES, Prof. Howard, Tulane University
25-feb-2015
Presentación
8




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.
CultCompES, Prof. Howard, Tulane University
25-feb-2015
El editor de Spyder
9


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.
CultCompES, Prof. Howard, Tulane University
25-feb-2015
Un script para abrir la Gitanilla
10

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".

CultCompES, Prof. Howard, Tulane University
25-feb-2015
11
Funciones
CultCompES, Prof. Howard, Tulane University
25-feb-2015
La función
12


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.
CultCompES, Prof. Howard, Tulane University
25-feb-2015
Un ejemplo
13

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".
CultCompES, Prof. Howard, Tulane University
25-feb-2015
Explicación
14



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.
CultCompES, Prof. Howard, Tulane University
25-feb-2015
Invócalo
15

Ejecuta (run) "procesaTexto.py" si no lo has
hecho.
1.
>>> from funciones import diversidad_lexica
2.
>>> diversidad_lexica(texto)
3.
4.868782722513089
CultCompES, Prof. Howard, Tulane University
25-feb-2015
16
El próximo día
Como extraer el texto de páginas web y
proveedores de blogs
CultCompES, Prof. Howard, Tulane University
25-feb-2015
Descargar

LING 681 Intro to Comp Ling