domingo, 8 de octubre de 2017

Buscar una palabra en un libro con Python

Esta entrada forma parte de un grupo de artículos donde trabajamos con caracteres y palabras usando como libro de ejemplo El Quijote.



Puede descargar el archivo: palabra_quijote.py
Puede descargar el archivo: quijote.txt

Puede ver el código funcionando en:

Deseamos buscar palabras o frases dentro de El Quijote primera parte. El usuario nos dice la palabra que quiere buscar y el programa en Python realiza la búsqueda. Es sensible a mayúsculas y minúsculas.

#el usuario dice una palabra y contamos cuantas veces aparece en el Quijote
palabra=input("Diga qué palabra quiere buscar: ")
f=open("quijote.txt")
libro=f.read()
n=libro.count(palabra)
f.close()
print("En la 1ª parte del Quijote la palabra ",palabra," aparece ",n," veces.")

Raspberry Pi 2 trabajando en modo 'línea de comandos' ejecutando Python 3.6 a gran velocidad en relación a su limitada potencia de cálculo.

  • Existe una página que recoge los nombres propios y otros términos que comienzan por mayúscula:
  • En otra página podemos ver la frecuencia con la que aparecen todas las palabras del Quijote:
  • Para hacer esto se debe tokenizar el texto. La tokenización de un texto consiste en el análisis y descomposición de texto en partes más pequeñas. Los párrafos se dividen en frases, las frases se dividen en palabras, la palabras en letras. Se deben eliminar los signos de puntuación y en muchos casos las letras .mayúsculas.
  • Un n-grama es un conjunto de letras que puede interesarnos buscar en un texto para hacer predicciones que nos permitan completar una palabra incompleta. Si n=3 tenemos trigramas que son muy típicos para hacer estos estudios. Por ejemplo, podemos buscar todas las palabras que tengan la tres letras coc como por ejemplo en cocodrilo. Haciendo un estudio estadístico por la frecuencia de aparición podemos hacer predicciones sobre qué palabra puede encajar si solo disponemos de los tres primeros caracteres. La predicción contendrá un importante error que los predictores actuales mejoran usando machine learning.

No hay comentarios:

Publicar un comentario