Diseño  Editorial  Social  en  Portales  de  Información  utilizando  Técnicas  de   Minería  de  Datos
version 0.1
    se realiza clustering de articulos, considerando solo los titulos.
    el resultado se escribe en un archivo de texto: wv.clusters

    se rescata una query... de la forma
        SELECT title from ITEMS limit 1 offset k"
    con k random, para rescatar cada documento.

version 0.2
    esta funcion hace clustering, con k parametrizado.
    no esta funcionando bien la visualizacion de clusters.

    en DBInputList se genera un id random para cada query,
    pero esta fallando la asociacion de items/clusters, al final.

version 0.3
    ahora funciona el clustering de n elementos.
    se genera una tabla temporal de resultados... (y de aqui va leyendo),
        y se muestra las asociaciones de los clusters.

    todo funciona ok... para mostrar los resultados, leyendo desde la BD.
    los parametros son seteados como variables staticas en TopicSystem.

version 0.3.1
    la misma funcionalidad de la version 3...
    pero modificado para que funcionara sin conexion de BD:

    se crea un nuevo Loader, para leer desde un directorio los title y descr.

    se modificaron los encabezados {package, import} de las clases, 
    para poder utilizarlas directamente desde el direcotorio ., 
    sin tener que cargarlas dentro de WVTools. 
    Ya no es necesario recompilar wvtools-1.0.

    // un clustering de 256 articulos, lo realiza en unos 50 segundos.
    // al leer desde la BD, se echa como 15 segs mas en la carga de la tabla tmp

    al ejecutar.. falta revisar por que se intenta crear dos veces la tabla tmp.

version 0.4
    esta version permite convertir un string a un vector.
    utiliza el archivo de wordlist.txt para crear el vector.
    genera un segundo archivo de wordlist y crea un vector de dim > |wordlist|
    falta independizar los cambios, de las clases de wvtool.

version 0.5
    esta es la version 4.0, pero independiente de la libreria WVTool.
    se creo la clase MyWVTool, que agrega el metodo createVector(...)

    ahora viene el proceso de...
    - crear eficientemente el espacio vectorial
    - disponer de los datos de los clusters creados
    - tener acceso directo a los id's de los items

    ahora...
    # la aplicacion fue dividida en packages.
    # se agrego la generacion del javadoc del proyecto.
    # se creo un archivo build.xml, para compilar utilizando ant.

    la aplicacion ya tiene implementadas 14 clases, 
     con la mayoria de las operaciones de bajo nivel ya realizadas, y probadas.

version 0.5.1
    ahora se cambia la version de wvtool... de 1.0 a la 1.1
    se descubren algunos "detalles" en el cambio de version...
        el archivo mat generado por WVTString2Vector, presenta un cambio.

    esta version ahora contempla un directorio 'src', que contienen los fuentes.
    de esta manera, el proyecto queda como:
    project/
        - build/          : directorio que contiene las clases compiladas
        - doc/            : api del proyecto
        - src/
            - main/       : programa principal
            - model/      : clases del modelo de datos
            - modules/    : los 3 modulos del sistema
            - wvtool/     : las clases que extienden wvtool

        build.xml         : archivo de conf ant
        log4j.properties  : archivo de conf de logs
        README            : readme de la version
        stopwords.txt     : palabras del filtro

    se ejecuta correctamente el clustering batch.

version 0.6
    solo se fija por motivos de seguridad: se han hecho muchos cambios.
    ahora se calcula el composite de cada cluster, en vez del centroide 
    (y se corrige el calculo del centroide... ahora funciona bien). 
    Falta mejorar la interfaz del programa, para poder realizar las pruebas... 
    ademas de los metodos get.

    el desarrollo del clustering incremental esta congelado, hasta version 1.0.

version 1.0
    esta es la primera version totalmente estable.
    cumple con los casos de uso necesarios:
    # clusteringBatch
      funciona ok... solo hay que jugar con los parametros
    # clusteringVector
      la version dummy, funciona perfecta para el caso 0.
      los sigs intentos tienen un defecto -para pruebas chicas- en los resultds
    # getClusters
      se retorna un list con los top-k clusters
    # getRelated
      esta metodo no esta totalmente implementado. Existen dos posibilidades:
      - retornar una lista de palabras que representan al cluster pedido
      - retornar la lista de articulos pedidos, a partir de una consulta a BD
      la primera funcionalidad, ya esta implementada (por un metodo de debug)

    en esta version, se ha creado una nueva capa, para separar la clase 
    principal (la que organiza los modulos y mantiene la persistencia del 
    sistema en memoria), de las interfaces, distintas segun el requerimiento 
    de uso: interfaz web, y programa para realizar los experimentos.

    - se ha corregido el manejo de excepciones...
    en ciertos puntos, una excepcion detiene el programa. En otros casos, 
    provoca un fin del caso de uso, pero sin detener la ejecucion.

    - se implemento el calculo de la calidad del clustering, 
    comparando el resultado con el conjunto de clusters de referencia.

    - se corrigieron todos los detalles que estaban sin resolver, 
    fundamentalmente errores con casos de borde y situaciones que no habian 
    sido contempladas.

    - se detecto un bug en la implementacion del clustering-online. 
    Para muestras peque~nas, al agregar un nuevo vector se agregan nuevas 
    dimensiones, lo que provoca un crecimiento explosivo de la dimensionalidad 
    del espacio. Al realizar las sgtes inserciones, existira un sesgo hacia 
    los centroides anteriormente asignados, debido a que estos tendran una 
    dimensionalidad mayor al resto (similar a la de los nuevos vectores). 
    Con vectores ortogonales entre si, el resultado es correcto 
    (si no, habra muchas coincidencias indeseables en las nuevas componentes). 
    Test: 1386661 (michellbachelet), 1698523 (tomcruise).

version 1.1
    - ahora se controla y reporta el tiempo de cada proceso
    - se implemento segunda metrica de calidad de clustering
    - se agrego un par de metodos en model/... Members y TopicCluster.
    - se separo el conjunto de parametros a utilizar en el codigo.
    - se definio una lista de stopwords minima.

    - se traslado el metodo writeClusters de Laboratory -> TopicSystem
    - en varios lugares, se mejoro el manejo de conexiones (Connection)

    - se implemento el clustering online, segun singlepass
        usando umbral de 0.25

    ya existe una primera version oficial del esquema de la base de datos.

version 1.2
    - se agrega control de eventos: por dia o mes.
    - se implementa crecimiento de la wordlist, por dia.
        esto implica modificaciones en la clase WVTString2Vector
    - se implementa, pero no se usa...
        el purgado de articulos, por fecha
        el garbage collector... borra topicos de size < 2
    - se agrega clase Util... para leer parametros de manera centralizada
        esto incorpora el archivo system.properties

    - se corrige bug en wvtool... !!
      al hacer prune de una lista, no se borra la word del wordMap, 
    solo de la lista... se modifica clase WVTWordList

    - en el modelo de datos:
        se agrega tabla BUFFER, usada en el clustering online

version 1.3
    - se agrega funcion PF-IDF...
        se modifica MyWVTool
    - se implementa funcionalidad de deltaT en getClusters()
    - se corrige problema en muestreo de la BD, ahora esta bien distribuido
    - se suprimieron algunas salidas de log4j (info & debug)
    - se implementa lectura de parametros, desde archivo system.properties
    - se modifica manejo de fechas... en TopicSystem.

version 1.4
    version muy estable... permite realizar facilmente todas las pruebas,
        jugando con los parametros.

    - se completa la lectura de parametros:
      cluto + prune + pfidf
      se parametriza los valores usados en pfidf

    - se agrega la clase RSSInputFilter
      esta clase incorpora la funcionalidad de SimpleTagIgnoring
      . se eliminan los textos dentro de links
      . se eliminan nombres de medios (para los titulos)

    - se agrega archivo stopterms.txt

version 1.5
    version final (al momento de la entrega del informe)
    - se modifico nuevamente la funcion de calidad... tercera version.
    Esta medida esta basada en precision y recall, midiendo:
        1.- calidad de lo recuperado (los topten)
        2.- capacidad del sistema de recuperar lo buscado

    - se implemento una lectura en duro de los items en el clusteringonline,
    para hacer clustering sobre un periodo de tiempo dado en .properties.

    - en esta version, se anularon algunas funcionalidades que no estaban 
    totalmente testeadas, con el fin de disponer de una version usable para 
    las pruebas del informe del 69F... en Laboratory y TopicSystem.


indexacion de documentos
espacio_vectorial - wvtool - filtros - tfidf - stemming - stopwords
clustering batch
clusters - centroides - cluto - distancia_coseno - funcion_objetivo
clustering online
incremental - singlepass - similaridad - eventos - umbrales - purge
 
conjunto de referencia
top-25 tópicos [articulos, graficos]
listado de tópicos (completo)

resultados
resultado batch total
resultado batch enero
resultado online febrero
resultado online marzo

documentación aplicación
documentación JAVADOC
CHANGELOG

archivos de configuración
stopwords (filtro de palabras)
stopterms (filtro de términos)
archivo de parámetros

referencias web
...sobre periodismo y medios de comunicacion
...sobre la web 2.0