G.Bordel >Docencia >TAP | Técnicas Actuales de Programación | (curso 2010-2011) | |||||||
|
|||||||||
Este ejercicio se va a dar resuelto. Se propone al alumno que piense previamente en cual sería el mejor modo de solucionarlo y a continuación se muestran tres versiones que se van aproximando a una solución "elegante" basada en la extensión de clases de entrada-salida.
Enunciado: Se trata de obtener listados de cadenas de palabras extraidas de un texto con su frecuencia de aparición. Por ejemplo, para longitud=1, se tratara de una lista de todas las palabras en el texto con la cuenta del número de veces que aparece asociada; para longitud=2, la lista es de pares de palabras con sus frecuencias; y así sucesivamente.
Texto | L=1 | L=2 | L=3 |
Llegó con tres heridas: la del amor, la de la muerte, la de la vida. Llegó con tres heridas: la del amor, la de la muerte, la de la vida. Llegó con tres heridas: la del amor, la de la muerte, la del amor. Llegó con tres heridas: la del amor, la de la muerte, la del amor. Con tres heridas viene: la de la vida, la del amor, la de la muerte. Con tres heridas viene: la de la vida, la del amor, la de la muerte. Con tres heridas viene: la de la vida, la de la muerte, la del amor. Con tres heridas yo: la de la vida, la de la muerte, la del amor. Con tres heridas yo: la de la vida, la de la muerte, la del amor. |
43 la 16 de 11 amor 11 del 9 con 9 heridas 9 muerte 9 tres 7 vida 4 llegó 3 viene 2 yo |
16 de la 16 la de 11 del amor 11 la del 9 con tres 9 la muerte 9 tres heridas 7 la vida 7 muerte la 6 amor la 5 vida la 4 heridas la 4 llegó con 3 amor con 3 heridas viene 3 viene la 2 heridas yo 2 muerte con 2 vida llegó 2 yo la 1 amor llegó |
16 la de la 11 la del amor 9 con tres heridas 9 de la muerte 7 de la vida 7 la muerte la 6 amor la de 6 del amor la 5 la vida la 5 muerte la del 4 heridas la del 4 llegó con tres 4 tres heridas la 3 amor con tres 3 del amor con 3 heridas viene la 3 tres heridas viene 3 vida la de 3 viene la de 2 heridas yo la 2 la muerte con 2 la vida llegó 2 muerte con tres 2 muerte la de 2 tres heridas yo 2 vida la del 2 vida llegó con 2 yo la de 1 amor llegó con 1 del amor llegó |
Como se trata de leer siempre de palabra en palabra, o cadenas de ellas, es razonable que esta capacidad nos venga dada por una clase de I/O específica.
NOTA: Este tipo de datos (denominados n-gramas, donde la n representa la longitud de la cadena -lo que hasta ahora hemos enominado como L-) son los más utilizados en sistemas de tratamiento automático de textos (escritos o hablados) para capturar la sintáxis y buena parte de la semántica. Ya Shannon los utilizó como ejemplos de la estructura estadística del lenguaje en su artículo "A Mathematical Theory of Communication"
Plataforma de soporte a curso y contenidos (c) German Bordel 2005. |