Ad verba per numeros

Integración de documentos, Hojas de ruta
Tuesday, July 17, 2007, 08:30 AM
Una vez hayáis desarrollado el prototipo para separar varios documentos en pasajes empleando JTexttiling ha llegado el momento de comenzar a implementar algunos aspectos de la técnica blindLight que será la que se utilice para comparar entre sí los distintos pasajes a fin de determinar si son o no similares; no obstante, empezaremos poco a poco.

Por ahora vuestra misión consistirá en modificar el prototipo para que calcule la frecuencia relativa de los distintos n-gramas que aparecen en el conjunto de textos enviados. Un n-grama no es más que una secuencia correlativa de caracteres pertenecientes a la misma frase; por ejemplo, dada la siguiente sentencia,


Crede quod habes, et habes.

Tendríamos los siguientes 4-gramas:

Cred
rede
ede_
de_q
e_qu
_quo
quod
uod_
od_h
d_ha
_hab
habe
abes
_et_
et_h
t_ha
No existirían en cambio bes_, es_e ni s_et puesto que esto supondría saltar entre las frases "Crede quod habes" y "et habes"; obsérvese también que los n-gramas pueden contener espacios en blanco pero no signos de puntuación.

En resumen, el nuevo prototipo debe hacer lo siguiente:

  1. Recibir varios textos y segmentarlos en pasajes.
  2. Separar los pasajes en sentencias y frases.
  3. Determinar los n-gramas que existen en el texto completo (todos los documentos enviados) teniendo en cuenta que los n-gramas pueden "saltar" entre palabras pero no entre frases.
  4. Calcular su frecuencia absoluta y relativa.
  5. Producir, por el momento, como salida un listado de n-gramas con sus correspondientes frecuencias absolutas y relativas.
El tamaño de n-grama a utilizar será indicado por el usuario.

Doy por hecho que utilizaréis Java a lo largo del proyecto, así que para la segmentación en sentencias y frases podéis echarle un ojo a este código y utilizar todo aquello que os ayude a resolver dicho punto. Por el momento no es necesario que os metáis en mayores profundidades con el resto del código de blindLight.

(Continuará...)



Back Next