Voquiz: frequency list para aprender vocabulario inglés
A los 18 di mi primera asignatura de programación en la uni (java). Ese verano me puse a aprender android para un proyecto personal y el curso siguiente creé mi primera app basada en una frequency list: EnglishUp (https://web.archive.org/web/20140423140848/https://play.google.com/store/apps/details?id=english.up). A pesar de los bugs y de lo aburrido del juego llegó a 100k descargas, 900 valoraciones y me estuvo dando ~100€ mes por publicidad en sus mejores momentos. Lo cual para el año 2012 no está nada mal.
La app terminó siendo retirada por google no recuerdo muy bien cuándo ni por qué. Pero me pasó con todas. No te dedicas a esto, te desentiendes y alguna actualización random de las políticas de google se la lleva por delante. A lo mejor solo tendrías que haber cambiado el nombre o actualizar tu política de privacidad. A saber.
La cosa es que tampoco me gustaba esa app y la calidad ya empezaba a ser baja para los estándares del momento. En 2017 decidí hacerla de nuevo mejorada, sin bugs y más útil y entretenida. Me di toda la prisa que pude pero nació mi hijo mayor y se quedó inacabada. Desde entonces he tenido el proyecto en pipeline, intentando sacar tiempo sin éxito. Hasta ahora que he decidido pasar página y subirla como está (solo para android y obviamente gratis). En este post explico cómo la hice y cómo funciona por si alguien la quiere probar: Voquiz.
Por qué esta app
A los 18 quería aprender inglés. No por tener un papelito ni ponerlo en el CV. Quería poder leer, entender y hablar inglés para acceder al contenido inglés. La gramática no me parecía un problema: refrescar lo del instituto son unas horas de repaso. Mi teoría era que necesitaba mucho más vocabulario. El vocabulario en sí mismo no te permite hablar ni escribir (quizá sí escuchar y leer). Para expresarte necesitas ideas completas. Tú no dices 'frio', dices 'tengofrio', 'hacefrio', 'quéfriohace', 'meestoycongelando', 'ponlacalefacciónporfavor'... Las construcciones tipo no las aprendes con vocabulario pero sí las puedes entender con vocabulario. El vocabulario me parece la base de todo el aprendizaje. El plan era aprender vocabulario por un lado y en paralelo empezar a leer y ver series en inglés.
Nunca fui demasiado constante. Supongo que la realidad es que hacía la app no porque quisiera aprender inglés, sino porque era un reto y podía dar dinero.
Base de datos
Imagina que quieres aprender vocabulario. Podrías coger un diccionario y empezar por la 'A'. Pero probablemente sería más eficiente aprender primero las palabras más típicas, usadas, frecuentes...
Una frequency list es precisamente eso: coges un texto, cuentas cuántas veces aparece cada palabra, y haces una lista de las palabras de ese texto ordenadas por número de apariciones. Idealmente si el texto es lo suficientemente grande (libros, guiones películas, wikipedia...) te aproximas a la realidad del uso de lengua.
OpenSubtitles es la web de descarga de subtítulos más grande del mundo. Un señor descarga de vez en cuando todos los subtítulos de OpenSubtitles y construye su frequency list de cada idioma. El resultado para el inglés es este: una lista de casi 1.700.000 palabras ordenadas por frecuencia de uso. 'You' aparece 22 millones de veces.
you 22.484.400
i 19.975.318
the 17.594.291
to 13.200.962
...
A modo de curiosidad:
La primera palabra es 'you' que aparece casi el 4%.
Hay palabras en otros idiomas (amigo, fiesta...) y nombres propios.
Sabiéndote solo las 10 palabras más frecuentes entenderías más del 23% de las palabras. Sabiéndote 61, entenderías el 50%.
Si conoces 5.000 palabras en ingles, tienes el vocabulario de un niño nativo de 4 años (vocabulary size by age).
Las 40.000 palabras de la base de datos que tiene la app cubren el 90%. El otro 10% son principalmente (9,7%) las palabras eliminadas por no aparecer en el diccionario (nombres propios, faltas de ortografía comunes, jerga, contextuales...). La cola larga de palabras extremadamente infrecuentes apenas es un 0,3%.
Yo me descargo esta lista y le hago los siguientes cambios:
Elimino la cola larga de palabras que solo aparecen 1 vez y quedan unas 100.000 palabras.
A esas 100.000 palabras les añado una traducción marronera de google translate en varios idiomas.
Hago un pequeño programa para que me vaya buscando cada palabra en este diccionario y guardo sus definiciones, sinónimos y ejemplos.
Las palabras que no aparecen en ese diccionario las elimino.
El resultado final son las 2 tablas que veis a continuación:
Frequency list: tabla con todas las palabras, su frecuencia y sus traducciones de google translate. 40.268 palabras.
Diccionario: tabla con las posibles definiciones de cada palabra, sinónimos y ejemplos de uso. 72.181 definiciones.
Esta es la base de datos que tiene la app basada en la frequency list de palabras en ingles. La idea era, cuando estuviera la app depurada y rodando, subir 'copias' simplemente cambiando la base de datos para otro idioma. De hecho la lista de las palabras más frecuentes en español la tenía también preparada. Pensaba que incluso para un nativo podría resultar interesante (empezando en un nivel más alto, claro).
Juego
Hay 2 modos de juego en los que hay que avanzar en paralelo:
En el modo 'WORDS' te van apareciendo las palabras de la frequency list, una por una y en orden y tienes que elegir entre 4 opciones cuál es la traducción adecuada en tu idioma. Si aciertas, pasas a la siguiente. Si fallas retrocedes 2. Cuando aciertas un múltiplo de 10, te has pasado "un nivel".
En el modo 'USES' te van apareciendo las definiciones que te falten por acertar de los niveles de palabras que ya has desbloqueado en el modo 'WORDS'. Es decir, si en el modo words vas por la 47, en el modo uses te aparecen las definiciones que aun no hayas acertado de las palabras 1 a 40. La pregunta puede consistir en una definición en inglés o en una frase con un espacio en blanco. Debes encontrar la palabra definida o que encaje en el espacio. Para ello dispondrás o de 4 opciones o de las letras de la palabra desordenadas.
Es decir, la idea es que primero eches un vistazo a las palabras junto con su traducción en tu lengua nativa, y sobre esas palabras que ya has visto en el modo 'words', que veas cómo se emplean y cómo se definen en el modo 'uses'.
En la barra de arriba de la app te aparecerá en todo momento el progreso: número de definiciones acertadas / número de definiciones de palabras desbloqueadas. Si alguien llega a 72181/72181 que me avise (que no sé si vuelve a empezar, peta la app o qué pasa).
Extras
Con los iconos de arriba puedes ver la lista de palabras que llevas desbloqueadas y cuántas definiciones has acertado de cada una. También puedes buscar una palabra en la base de datos (por término en inglés o su traducción en tu lengua nativa) y acceder a la información de una palabra concreta.
Cuando aciertas una palabra en cualquiera de los modos tienes botones para ver la información completa de esa palabra en la app o buscarla en google translate.
La app pronuncia las palabras. En casi cualquier pantalla, si haces click en una palabra o frase la app la reproduce.
En la configuración puedes establecer desde qué palabra quieres empezar a jugar. Entiendo que la mayor parte de usuarios se aburrirán si empiezan desde 'you'. Un test de nivel inicial es una de las cosas que tenía pendientes y no he hecho pero.. es lo que hay. Autoevaluáis vuestro nivel inicial.
También puedes elegir tu idioma nativo entre español, francés, alemán, italiano, portugués, ruso, árabe, chino, coreano e hindi.
Pensaba monetizar vía publi: un banner permanente abajo y pistas extra si te tragas uno a pantalla completa. Esto está implementado pero en modo test (es el modo que pones mientras haces la app para que admob no te cargue anuncios reales y no se te queje). Sí, no me he molestado ni en cambiar el modo así que no cobro ni un euro. Lo cual me lleva al siguiente punto.
La app ni recoge datos, ni conecta con internet. Es la base de datos que habéis visto almacenada en local (en tu propio teléfono) y lo máximo que hace es cambiar el campo de la última columna del diccionario de 0 a 1 cuando aciertas una definición. Poniendo modo avión evitarás los anuncios.
Se va a quedar como está. No me dedico a esto y cambiar algo a estas alturas me genera mucha fricción. Evidentemente si, qué sé yo, 1000 personas se ponen a usarla pues me plantearía actualizarla.
Pd. Voquiz