Otra muestra de 500 frases aleatorias para que podáis dar un vistazo sin bajar todas
Una recomendación del equipo de Deep Speech para “limpiar” las frases.
- Listar todas las palabras únicas.
- Ordernar las palabras de más usadas a menos usadas.
- Selecionar las X palabras más usadas.
- Crear un corpus rechazando las frases que tengan palabras que no estén en la lista deee frecuentes.
He estado haciendo algunas pruebas con la última muestra de 500 palabras y parece que las complejas, técnicas, raras o en otros idiomas no suelen aparecer más de una vez, por lo que a lo mejor un filtrado más rápido y sencillo sería quitar todas las frases con palabras únicas.
@carlfm01 ¿cómo lo ves?
Tiene sentido, aunque hay que probar hasta qué punto se mantienen las que son correctas.
Voy a probar con ese set de 1,5M
Genial, es que yo no tengo ahora mismo herramienta para hacer el filtrado y tengo curiosidad en saber en cuánto se reduce si aplicamos diferentes filtrados.
Creo que lo ideal sería la menor reducción posible que capture el mayor número de frases con palabras muy complejas de leer o en otros idiomas.
He hecho pruebas con un script que me han pasado y tenemos unas 212388 frases que tienen palabras únicas
Al parece la mayoría de ellas son términos super raros o extranjeros que se pueden eliminar sin problema, un ejemplo de 100 de estas palabras únicas.
Curiosamente hay muchos menos que se repiten 2 veces (55068) y también tienen términos raros (muestra de 100) e incluso los que se repiten 3 veces (26208) o 4 veces (15560) también siguen la misma linea de complejidad. En los que se repiten 5 hay un poco de todo.
Numero de repeticiones | Número de palabras | Frases afectadas |
---|---|---|
1 | 212388 | 212388 |
2 | 55068 | 110136 |
3 | 26208 | 78624 |
4 | 15560 | 62240 |
5 | 10523 | 52615 |
Total | 319747 | 516003 |
Si quitáramos todas estas nos quedaríamos con sólo 970574 de las 1486577 frases totales extraídas. Si tenemos en cuenta que de media son unos 5s de grabación para cada una, esto nos daría unas 1348 horas de margen (frente a las 2064 horas de usar todas).
Aquí están mis resultados:
https://deepspeechstorage.blob.core.windows.net/diskimages/filter-test.zip
Cada directorio contiene las válidas usando las primeras con más coincidencia 500k/1m/2m/3m
Aquí unas 100 limpiando con las primeras 500k que más tienen repetidas
https://paste.mozilla.org/ymOgECc4
Me está tardando bastante en descargar, pero ¿podemos decir entonces que en ambas pruebas que hemos hecho, hay unas 500K frases que deberíamos eliminar por tener palabras complejas?
Creo no me expliqué bien, de todo el corpus estoy sacando las primeras 500k con más repetidas, esas primeras 500k las uso como filtro para mantener las que más comunes son.
Usando las primeras 500k que son más comunes está eliminando 160k del set de 1.5m
¿Qué consideras como más comunes? ¿Cuántas repeticiones? En las muestras que estoy viendo, hay muchísima palabra rara con entre 1 y 5 repeticiones.
Las que más repeticiones tienen de todo mi corpus de 85m de sentencias.
De las primeras 500k están llegando a 400 repetidas.
Voy a usar las primeras 100k y ver qué pasa
Creí que estabas el corpus que subí de wikipedia, ya que es el único que vamos a poder usar para Common Voice por motivos de licencia. Sería interesante si pudieras hacer las pruebas con ese para ver si tienes resultados similares a los mios.
El corpus que tengo solo lo estoy usando para filtrar
Ah ok, pero ten en cuenta que tu corpus puede que no tenga las palabras raras de mi extracción de wikipedia y supongo que queremos es hacer una blacklist con ellas, en vez de una whitelist con las más frecuentes en general.
Voy incluir las nuevas de Wikipedia, hacer una limpieza que veo aún se puede y volver a probar.
Aquí el índice de coincidencias :https://send.firefox.com/download/d9458d6bd7b66c09/#94iaYgZTq8XdLOGOUILePg
Aún veo palabras incorrectas con altas repeticiones
Yo creo que lo importante es minimizar esas palabras pero sin afectar demasiado a la reducción total, va a ser imposible que no haya ninguna.
¿Te salen números similares a los de mi tabla de más arriba? ¿ves algún patrón para las palabras que sigue saliendo con más de 5 repeticiones?
Estos son usando las que tienen igual o menos 5-10-20 coincidencias como filtro.
No, me queda diferente.
Número de repeticiones | Frases afectadas |
---|---|
<=5 | 99600 |
<=10 | 142964 |
<=20 | 197694 |
Sí, aún salen muchos apellidos. El problema que veo con los apellidos es que causa que palabras raras pero correctas queden casi con la misma cantidad de repeticiones.
No entiendo cómo puede quedar tan diferente, ¿puedes probar con el script que dejé más arriba? Solo con una repetición hay más de 200K