martes, 6 de diciembre de 2011

Acertijo 6

Imaginad que tenéis tres documentos de texto en tres idiomas que no conocéis y que usan el mismo alfabeto. Si os doy un nuevo párrafo en uno de esos tres idiomas, ¿cómo identificaríais en qué lengua está escrito? Lo único que podéis utilizar es el winzip o cualquier otro programa para comprimir documentos.

6 comentarios:

Phineas dijo...

No te lo tomes como nada personal, pero estoy convencido que se te ha vuelto a olvidar algún matiz a la hora de plantear el problema.

Justine dijo...

Supongo que los algoritmos que usan los comprimidores de archivos captarían lo que tienen en común los párrafos conocidos y el nuevo. Comprimiría en conjunto el párrafo suelto con cada uno de los otros tres, y aquel con el que resultara un menor tamaño de archivo, supongo que sería el idioma correcto.
Todo esto sin tener ni pajolera idea de cómo funciona un comprimidor, pero espero moderadamente ansiosa tu respuesta.

Phineaz dijo...

Abrir el cuadro de búsqueda y pegar las primeras palabras para ver si coinciden.
Ahora en serio:
Supongo que la respuesta esta en como gestionan los programas de compresión el "caracter" espacio. Cada idioma tiene una frecuencia de palabras de distintas longitudes determinada y supongo que de eso podrás sacar alguna conclusión. Pero vamos que al igual que justine tengo un profundo desconocimiento de como funcionan los programas de marras.

Justine dijo...

Bueno venga, contesta! Por cierto he hecho la prueba de mi idea y no funciona. ='(

Anónimo dijo...

La idea fundamental de un algoritmo de compresión es utilizar la redundancia de información para representar el texto, o lo que sea, más eficientemente (como ya comentamos en otra entrada http://paletosignorantes.blogspot.com/2010/02/gracias-shannon.html ). Dentro de un texto del mismo idioma hay mucha más redundancia que cuando mezclas dos o más, así que tu idea de concatenar y luego comprimir es la solución. No sé por qué no te habrá funcionado, pero en general es bastante efectivo: http://en.wikipedia.org/wiki/Language_identification#Statistical_Approaches

sleeve

Justine dijo...

Yupi! Qué he ganado? Es que a veces te escucho cuando hablas :) Creo que no funcionó porque el texto era demasiado corto y las diferencias de tamaño de archivo muy pequeñas, probablemente demasiado influidas por otros factores como la longitud final del texto y cosas así. Pero no me apetecía repetir el experimento con un texto más largo.