Archive for 29 mayo 2006

El algoritmo Snowball y el stemming.

mayo 29, 2006

Que es el Stemming?
Durante la fase de tratamiento del texo (Tratare sobre esto mas adelante) podemos identificar cuatro fases.

  1. Linealizacion del texto
  2. Tokenizacion del texto
  3. Filtrado de palabras
  4. Stemming

Es de esta ultima de la que voy hablar un poco en esta entrada. En uno de los parrafos de mi futuro diplomarbeiten menciono lo siguiente

One of the problems in vector space models is the heterogeneity of the words. Removing suffixes by automatic means is an operation which is especially useful in this field. In order to maintain all the information together it is necessary to group those words with same lexema and meanings

As we saw before in a typical VSM environment, one has a collection of documents, each described by the words in the document, we can say that a document is represented by a vector of words, or terms. Normally terms with a common stem will have similar meanings, we can see that in the next example.\item Paice/Husk Stemming Algorithm

Exsiten varios algoritmos para hacer stemming :

  1. Paice/Husk Stemming Algorithm \cite{stemming:paice}
  2. Porter Stemming Algorithm \cite{stemming:porter}
  3. Lovins Stemming Algorithm \cite{Lovins68}
  4. Dawson Stemming Algorithm \cite{stemming:dawson}
  5. Krovetz Stemming Algorithm \cite{stemming:krovetz}

Yo me he decantado por el algoritmo de Porter, ya que es el usado por defecto dentro del poryecto Lucene. El algoritmo Snowball es algo asi como la implementación de referencai del proceso de stemming de Porter.

Un sencillo ejemplo para ver que es el stemming (sacado del paper de Porter) :

Palabra –> Stemm –> sufijo
CONNECT –> CONNECT –> no tiene
CONNECTED –> CONNECT –>ED
CONNECTING –> CONNECT –> ING
CONNECTION –> CONNECT & ION
CONNECTIONS –> CONNECT –> IONS

Crear un proyecto con Subversion

mayo 28, 2006

Estos son los pasos que he seguido para crear un proyecto usando Subversion:

PAra empezar hay que instalar subversion, subversion tiene diferentes dependencias, ya que para poder utilizar subversion tendremos que tener instalado Apache 2

apt-get install subversion

Como nota hay que tener cuidado si tienes instalado ya un servidor apache 1 ya que puede dar problemas que amis escuchen por el puero 80.

sudo mkdir /var/svn
sudo mkdir /var/svn/YourProjectNameHere
sudo mkdir /tmp/YourProjectNameHere
sudo mkdir /tmp/YourProjectNameHere/branches
sudo mkdir /tmp/YourProjectNameHere/tags
sudo mkdir /tmp/YourProjectNameHere/trunk
sudo svnadmin create /var/svn/YourProjectNameHere
sudo svn import /tmp/YourProjectNameHere file:///var/svn/YourProjectNameHere -m "initial import"

y ahora comprobamos que todo ha ido bien :

svn checkout file:///var/svn/YourProjectNameHere project

Para arrancar el servicio en modo demonio :

svnserve -d -r /srv/svn/

Para modificar los permisos hay que tocar los fichero /var/svn/YourProjectNameHere/conf/svnserve.conf y para incluir usuarios autentificados /var/svn/YourProjectNameHere/conf/passwd

Citando a la wikipedia

mayo 17, 2006

Supongo que como todo el mundo antes o despues hemos ido a parar a la wikipedia. Sin duda uno de los grandes desafios de la inteligencia/creación colectiva, de los movimientos por una cultura libre y del moviento copyleft.

Pues llegado a este punto a uno le surge la duda como debe citarse una página en la wikipedia, pues segun ellos mismos uno debe (o puede) seguir unas ciertas pautas. Para los amantes de BibTeX (como yo) proponen una plantilla como la que sigue.

@misc{ wiki:###,
author = "Wikipedia",
title = "Plagiarism — {W}ikipedia{,} The Free Encyclopedia",
year = "2004",
url = "http://en.wikipedia.org/……=5139350",
note = "[Online; accessed 22-July-2004]"
}

When using the LaTeX package url (\usepackage{url} somewhere in the preamble) which tends to give much more nicely formatted web addresses, the following may be preferred:

@misc{ wiki:###,
author = "Wikipedia",
title = "Plagiarism — {W}ikipedia{,} The Free Encyclopedia",
year = "2004",
url = "url{http://en.wikipedia.org/w/…….=5139350}",
note = "[Online; accessed 22-July-2004]"
}

Pero Jimmy Wales opina algo sorprendete

"Do you think students and researchers should cite Wikipedia?"

"No, I don't think people should cite it, and I don't think people should cite Britannica, either — the error rate there isn't very good. People shouldn't be citing encyclopedias in the first place. Wikipedia and other encyclopedias should be solid enough to give good, solid background information to inform your studies for a deeper level. And really, it's more reliable to read Wikipedia for background than to read random Web pages on the Internet."

Aquí queda eso, quien quiera entender que entienda.

Solicitudes del SoC

mayo 10, 2006

    Solicitudes de para SoC

    • Beagle: Dashboard
    • Beagle: Search against Lucene directly
    • Gaim: Log Management and Searching
    • Gaim: MSN Protocol Upgrade
    • Ubuntu & Bazaar: Desktop panel look-and-feel mode changer
    • Apache Software Foundation: Maven Automated Testing.
    • Codehaus: GroovyDoc command-line tool and Ant task

    La verdad es que no soy muy optimista ya que no me ha dado tiempo a preparar las solicitudes en condiciones.

    Por que he elegido estas ?

    En cierta medida las tres primeras estan relacionadas con el tema de Information Retraival que va mi diplomarbeiten. En especial el de beagle ya que me estoy planteando eliminar las clases que desarrolle para crear el Vector Space Model y sustituirlo por el nucleo de Lucene y crear una interfaz que haga de pegamento

    El resto es por puro placer ya que tanto Maven, Gaim y Groovy son proyectos que he usado intensivamente durante mucho tiempo

    Esperanzas?

    No muchas supongo que se presentara gente muy buena 😦

    Kile, abandonando texclipse

    mayo 10, 2006

    En principio tenia pensado escribir el texto del PFC (que porsupuesto sera en latex) usando Texclipse, un plugin para el IDE Eclipse Wizard

    Tras comprobar algunos errores en Texclipse y el excesivo gasto de recursos del sistema (algo a tener en cuenta dado que estoy haciendo el diplomarbeiten sobre el portatil). Me decidi a probar otra aplicación en este caso Kile, una herramienta de KDE que por ahora me esta dando muy buenos resultados.

    Me gustan los siguientes puntos:

    • Muy rápido al compilar el texto.
    • Buena integración con el visor de PS.
    • Autocompletado de comandos screenshot
    • Autocompletados de referencias a \labels screenshot
    • Algunos wizards utiles screenshot
    • Configuración sencilla
    • Tabla de simbolos (para los olvidadizos) screenshot
    • Estructura del documento enforma de arbol screenshot

     

    Para más información, véase el artículo LaTeX en Wikipedia.

    Para más información, véase el artículo TeX en Wikipedia.

    Ahora solo falta encontrar una buena para BibText

    Conceptos matemáticos bajo LSA

    mayo 4, 2006

    Esto es una simple enumeración de los conceptos matemáticos que existen tras Latent Semantic Analysis :

    • Vectores :
    • Operaciones conutativas :
    • Coordenada, bases y dimensiones :
    • Deficinicion formal del espacio de vectores :
    • Coordenadas cartesianas :
    • Funciones de similitud y distancia en vectores :
    • Espacio de vectores R^n :
    • Producto escalar de dos vectores :
    • Distancia euclidea entre dos vectores :
    • Norma y vectores unitarios :
    • Similaridad del coseno en R^n :
    • Diagonalización de matrices
    • Vectores ortonormales
    • Multiplicación de matrices
    • Matriz diagonal
    • Matriz unitaria
    • Matriz Transpuesta
    • Matriz Inversa

    MAs adelante ire profundizando dentro de cada uno de estos campos.

    Ref : Indexing by Latent Semantic Analysis

    mayo 1, 2006

    Este es trabajo pionero dentro del campo de LSA, En el se describe por primera vez enque consiste esta técnica :

    A new method for automatic indexing and retrieval is described. The approach is to take advantage of implicit higher-order structure in the association of terms with documents ("semantic structure") in order to improve the detection of relevant documents on the basis of terms found in queries. The particular technique used is singular-value decomposition, in which a large term by document matrix is decomposed into a set of ca 100 orthogonal factors from which the original matrix can be approximated by linear combination. Documents are represented by ca 100 item vectors of factor weights. Queries are represented as pseudo-document vectors formed from weighted combinations of terms, and documents with supra-threshold cosine values are returned. Initial tests find this completely automatic method for retrieval to be promising.

    En este paper se pone un ejemplo que se convertira en clásico y que se discutira en diferentes papers con posterioridad, previsiblemente tambien en el mio.

    A concrete example may make the procedure and its putative advantages clearer. Table 2 gives a sample dataset. In this case, the document set consisted of the titles of 9 Bellcore technical memoranda. Words occurring in more than one title were selected for indexing; they are italicized. Note that there are two classes of titles: five about human-computer interaction (labeled c1-c5) and four about graph theory (labeled m1-m4). The entries in the term by document matrix are simply Deerwester – 9 – the frequencies with which each term actually occurred in each document. Such a matrix could be used directly for keyword-based retrievals or, as here, for the initial input of the SVD analysis.

    Paper : Indexing by Latent Semantic Analysis (PDF)
    Autores : Scott C. Deerwester, Susan T. Dumais, Thomas K. Landauer, George W. Furnas, Richard A. Harshman
    Publicación : Journal of the American Society of Information Science 1990
    bibtex entry :

    @article{ deerwester90indexing,
    author = "Scott C. Deerwester and Susan T. Dumais and Thomas K. Landauer and George W. Furnas and Richard A. Harshman",title = "Indexing by Latent Semantic Analysis",journal = "Journal of the American Society of Information Science", volume = "41", number = "6", pages = "391-407", year = "1990"}

    Eligiendo las herramientas

    mayo 1, 2006

    Antes de ponerme a trabajar evalue cual, en principio, iban a ser las tareas que iba a tener que realizar :

    • Edición de texto : Latex
    • Lenguaje de programación y entorno de desarrollo de software :
      • Lenguaje de programación : Java
      • Entorno de programación : Eclipse
    • Editor de Latex : Texlipse, plugin de latex para eclipse
    • Otras herramientas utiles :
      • Bookmarks : Del.icio.us
      • Organizador : Basecamp

    Pronto ire haciendo algunos post de cada una de estas herramientas y de las que vayan apareciendo por el camino.

    Mi Diplomarbeiten

    mayo 1, 2006

    Bueno lo primero es lo primero, este blog esta dedicado entre otras cosas a llevar un diario acerca de lo que voy haciendo para mi diplomarbeiten (proyecto fin de carrera que dicen en España), auqnue bueno, seguramente me dedique a poner todo lo que me llame la atencion.
    De que va el diplomarbeiten : pues dejo aqui el texto que me han facilitado, que no es que sea mucho:

    Use LSA (Latent Semantic Analiys) as a "yes/no" filter to indicate as one text is translation of anothe i.e. represent source and target text in their corresponding semantic spaces and measure the coefficients. If there are considerable difference this could be an indication that the translation is not ok. for e.g that not appropiate words are used

    Por ahora llevo unas 40 horas dedicadas al diplomarbeite, y en breve ire contando los progresos que he conseguido y los fracasos con los que me he topado.