Python

Trabajando con documentos en Python

Trabajando con Python

Python

En esta entrada vamos a trabajar un poco con documentos, saber como se leen y poder hacer cosas interesantes que tal vez nos podrían servir en un futuro muy lejano. Utilizaremos Python como está escrito en el titulo del post para abrir el documento y contar las palabras que contiene el documento.

Leyendo un archivo de texto

En python el abrir el documento para comenzar a leerlo es algo realmente sencillo, tan sencillo que solamente en una linea se realiza, a continuación la instrucción:

archivo = open(‘MiArchivo.txt’, ‘r’)

La función open() recibe dos parámetros, el primero es el nombre del archivo y el segundo es la forma como se abrirá el archivo, ya sea para leer(r)crear y escribir un archivo(w) o abrir y escribir al final del archivo(a), en nuestro caso utilizaremos el método de solo lectura.

Una vez abierto nuestro archivo, podemos leerlo con un par de lineas más, utilizando una estructura repetitiva for, vamos a leer linea tras linea hasta el final del documento.

for linea in archivo1:
       linea= unicode(linea,’utf-8′)
       linea=linea.strip()

Con la estructura repetitiva recorremos todas las lineas que contenga el documento y dentro de cada recorrido vamos a guardar la linea leída, utilizando una decodificación utf-8 a través del método unicode() para posteriormente eliminar los saldos de linea que el documento contiene por cada linea utilizando el método strip().

Teniendo nuestra linea almacenada en una variable, podemos hacer la separación de palabras, sabemos que cada palabra comienza y termina con un espacio en blanco, así que de esa forma separaremos nuestra linea, utilizando el método split() es posible hacer esto de la siguiente manera:

palabras=linea.split()

De esta forma se guardaran todas las palabras de la linea en el vector palabras, listo para poder contarlas. Para contar las palabras de cada linea utilizaremos una variable y otro método(python esta lleno de métodos muy útiles 😀 ) llamado len() el cual nos regresa el tamaño de un vector o lista, así que en cada linea iremos sumando el total de palabras que hay para que al final conozcamos el total de palabras que existen en el documento.

totalPalabras = totalPalabras + len(palabras)

Ahora solo queda mostrar el total de palabras encontradas y cerrar el documento, esto lo haremos con un print de la siguiente manera:

print “En el docuemento existen:”, totalPalabras, “palabras”
archivo.close()

Con esto conoceremos el total de palabras que existen en nuestro documento, el script final debería quedar de la siguiente manera:

Script Final

Script Final

Y en la consola podremos observar algo como esto:

Resultado en consola

Resultado en consola

En mi archivo de texto he pegado un poema de Edel Juárez para realizar la prueba.

Poema

Poema

Así termino esta entrada, agradeciendo la lectura del post y esperando que sea de utilidad, si existe alguna duda con gusto podré resolverla. ¡Saludos! 😀

Enlaces de interés:

Detectar si un tweet es irónico, ¿Qué ironía no?

¿Utilizar tweets?, ¿Para qué?

Twitter

En los últimos años hemos utilizado algunos recursos tecnológicos que han marcado nuestra vida para poder ayudarnos en algo, ya sea para tomar desiciones en algún negocio, en la posible detección de enfermedades o de accidentes o simplemente para poder “predecir”.

Twitter siendo una red social inmensa con más de 560 millones de usuarios registrados (wikipedia) publicando tweets a cada segundo en miles de lugares al rededor del mundo, en distintos idiomas y con diferente contenido hacen de éste un diamante en bruto donde se puede explotar desde diferentes áreas.

¿Porque en el título del post escribí la palabra ironía?

  • Segun wikipedia, la ironía es la figura literaria usada cuando una ocurre alguna obviedad o estupidez.
  • Segun la RAE, la ironía es una burla fina y desimulada dicha en tono burlón

Perfecto, continuemos en lo que estabamos, en nuestro caso, el área es simple, no tan sencilla pero para completar la frase digamos que es “Simple y sencilla”. La ironía es algo que no se enseña en la escuela o en algún curso (creo), sin embargo forma parte de nuestra vida cotidiana, en el trabajo, la escuela, con la familia y en donde casi no ocupamos la ironía, con los amigos (ésto es irónico).

Twitter como ya lo he dicho es un diamante en bruto, el cual podemos pulir con un par de lineas de código para sacarle brillo, hagamos una hipótesis, quizá alguien quiere saber como está funcionando su cafetería, si el servicio es bueno, si el café tiene buen sabor, el estacionamiento o los baños son buenos, ¿que tal el precio? ¿valdría la pena ir a tomarse un café con los amigos o con tu novia?. Con twitter y un par de lineas de código podemos recolectar información acerca de como es que los usuarios están hablando de tu cafetería, limpiar los tweets y ver las palabras positivas de cada texto, hacer un análisis del sentimiento de cada tweet y saber si hablan positivamente, negativamente o neutral de tu cefetería, pero que sucede si encontramos un tweet asi:

  • El servicio fue perfecto!!, me tardaron una hora en llevarme mi café!!

¿Crees que el servicio fue bueno? a mi punto de vista creo que no, es aquí donde entramos nosotros y la idea de detectar si un tweet es irónico, ya que no es un mensaje positivo sin embargo tendría toda la estructura para tener un mensaje positivo, por lo que nuestro análisis de sentimiento estaría fallando.

¿Podriamos detectar si estamos frente a un tweet irónico o no? creo que si, con un poco de Machine Learning podríamos tener una solución, este es nuestro trabajo de titulación, así que tenemos la meta de poder clasificar un tweet y saber si es irónico o no lo es, con la ayuda de nuestro Asesor, el Dr. Iván Vladimir Mesa Ruiz,  Técnico Academico en el IIMAS, UNAM podríamos tener una respuesta, así que en las proximas semanas trataré de escribir un resumen de lo que estamos realizando para resolver este problema.

Solo termino con una despedida corta y bien agradecida por la lectura de estas lineas. ¡Saludos!

PD: El trabajo que se desarrollará es en base a un trabajo similar hecho por Gabriela Jasso, así que la idea original fue de ella, nuestro trabajo es replicar el trabajo para obtener resultados similares a los de Gabriela.

PD2: La investigación y el desarrollo del proyecto lo estamos realizando en equipo, Fernanda Hernández y yo, investigando desde lo más sencillo hasta temas que nunca en nuestra vida creimos encontrar, Que divertido está el proyecto!!! (No fue ironía)

Enlaces de interés: