Tarea 4: Histograma de Frecuencia de Palabras Usando
Java
NOTA:
Debido a que me equivoqué y publiqué la solución de
la tarea en lugar del punto de partida deseado, reformulo la tarea para que
tomes la solución propuesta de la tarea original y la modifiquen para:
1.- Hacer el listado en mayúscula.
2.- Que el orden sea ascendente.
3.- Si hay un arcgumento
de entrada, éste debe ser el archivo a procesar.
4.- Si hay dos argumentos
de salidas, el segundo es el archvido donde debe dejar los resultados.
En esta tarea usted experimentará el uso de Java y el manejo
de clases estándares de Java como los contenedores Hashtable y
Vector.
Problema
Como en el caso de la tarea 3, se le pide escribir
un programa que lea un documento (archivo) de la entrada estándar
y produzcas en la salida estándar un listado de todas las palabras
aparecidas en el documento junto con un contador del número de ocurrencias
de cada palabra. El listado debería estar en ordenado por número
decreciente de ocurrencias y orden alfabético dentro de una misma
frecuencia de ocurrencia.
Cada línea del listado de salida debe contener
una única palabra (todas en minúsculas) seguidas por uno
o más espacios en blanco y seguidas por un entero indicando el númerio
de ocurrencias.
Para efectos de esta tarea, una "palabra" es un
string de caracteres alfabéticos limitados en ambos extremos por
caracteres no alfabéticos, el comienzo o fin de línea y
el comienzo o fin de archivo. Las diferencias en mayúscula o minusculas
no son consideradas relevantes. "hola", "HOLA", y "Hola" son todas
tratadas como la misma palabra.
Implementación
Usted debería producir una implementación
usando Java. Un "esqueleto" de la solución está disponible
en histograma.java
(aunque este
fue el archivo publicado originalmente) y WordCounts.java
los cuales pueden ser usados como punto de partida.
Observe los comentarios en estilo /* */ que
indican las porciones del código que ustede debe incorporar para
completar el algoritmo.
Envio de la Tarea
Crear un subdirectorio que lleva su nombre y con SOLO
los archivos siguientes: Makefile, readme.txt, historgrama.java, WordCounts.java,
y documentacion (descripción el un formato visible en linux, con
una descripción de alto nivel del algoritmo). El archivo comprimido
(zip o tar) se envia a elo326@elo.utfsm.cl
Ejemplo
Si su programa es aplicado este archivo histograma.java
se obtendrá algo como esto
.