ngrams
ngrams copied to clipboard
Project 2: Language Modeling
Problema: Variables y métodos con nombres poco claros (ej. ngc, count) dificultan comprensión rápida. Beneficios: Nombres descriptivos mejoran lectura y comprensión. Reduce necesidad de comentarios explicativos. Facilita mantenimiento y colaboración....
Problema: Comentarios que describen lo obvio generan ruido y dificultan la lectura del código. Beneficios: Código más limpio y legible. Fomenta código autoexplicativo con nombres claros. Comentarios reservados para decisiones...
Problema: Uso de arreglos String[] para representar n-gramas y manipulación manual de índices, generando código frágil y poco expresivo. Beneficios: Encapsula arreglo en clase Ngram con métodos claros. Mejora legibilidad...
Problema: Código repetido para tokenización y cálculo de probabilidades suavizadas en múltiples clases genera redundancia y errores. Beneficios: Centraliza lógica común, reduce duplicación. Facilita correcciones en un solo lugar. Diseño...
Problema: Métodos largos como train() realizan múltiples tareas (tokenizar, actualizar conteos y vocabulario), dificultando comprensión y mantenimiento. Beneficios: Mejor legibilidad al dividir en submétodos descriptivos. Facilita depuración y pruebas parciales....
Problema: El método train() en la clase Bigram mezcla tokenización, conteo y actualización de vocabulario en una sola clase, dificultando mantenibilidad y pruebas. Beneficios: Mejor organización separando responsabilidades. Facilita pruebas...