FACULTAD DE CIENCIAS DE LA DOCUMENTACIÓN
GRADO EN INFORMACIÓN Y DOCUMENTACIÓN
SISTEMAS DE RECUPERACIÓN DE INFORMACIÓN
DE CÓDIGO ABIERTO: SOLR, INDRI, TERRIER
CUADERNO DE TRABAJO
Nº 19
Profesor
2
Colección “Cuadernos de Trabajo”, n º 19 Grado en Información y Documentación
Coordinador de la Titulación: Fátima Martín Escudero
Coordinador de la Colección: José Luis Gonzalo Sánchez-Molero
© Juan Antonio Martínez Comeche
Marzo 2018
ISBN-13: 978-84-697-9855-3 Depósito Legal: M - 5792 - 2018
Edita: Facultad de Ciencias de la Documentación Universidad Complutense
C/ Santísima Trinidad, 37 28010 Madrid
Todos los derechos reservados. Este libro no podrá ser reproducido por ningún medio, ni total ni parcialmente, sin el premio permiso de los autores y del editor.
3
Contenido
INTRODUCCIÓN ... 5
SOLR ... 7
Prerrequisitos de Solr en Windows ... 7
Instalación del programa Solr en Windows ... 10
Instalación del programa Solr en Mac ... 12
Apertura y cierre del programa Solr en Windows ... 13
Apertura y cierre del programa Solr en Mac ... 15
Eliminación de palabras vacías ... 17
Stemming o reducción morfológica ... 22
Creación de una colección ... 26
Indexación de documentos ... 29
Recuperación de documentos por defecto ... 30
Recuperación conforme a diversos modelos ... 37
INDRI ... 51
Instalación, apertura y cierre de Indri en Windows ... 51
Indexación de una colección ... 54
Eliminación de palabras vacías ... 58
Stemming o reducción morfológica ... 62
Recuperación de documentos ... 65
TERRIER ... 73
Prerrequisitos de Terrier en Windows ... 73
Instalación, apertura y cierre del programa Terrier en Windows ... 76
Indexación de una colección ... 79
Eliminación de palabras vacías ... 82
Stemming o reducción morfológica ... 86
Recuperación de documentos ... 90
Bibliografía esencial ... 95
Apéndices ... 96
Apertura de una consola, terminal o línea de comandos ... 96
Instalación de Java (JRE) en Windows ... 97
Configuración de la variable JAVA_HOME ... 99
Instalación de WinRAR en Windows ... 101
4 Error ‘destination directory cannot be created’ ... 104 Error ‘the system cannot find the path’ ... 106
5
INTRODUCCIÓN
El presente cuaderno de trabajo tiene como principal objetivo completar el conocimiento de los modelos de Recuperación de la Información abordados en la asignatura ‘Búsqueda y Recuperación de Información’, realizando un primer acercamiento a algunos de los programas de código abierto que desarrollan Sistemas de Recuperación de Información. Esta presentación inicial de los motores de búsqueda no pretende ahondar en las capacidades de administración y gestión de las colecciones o profundizar en las diversas posibilidades de recuperación que poseen, sino dar una visión general de sus características fundamentales. El análisis preliminar de su modo de funcionamiento que se encontrará en estas páginas permitirá al alumno observar cómo se materializan los algoritmos y procedimientos habituales de la Recuperación de Información en tres sistemas manejados cotidianamente en empresas e instituciones de muy diversa índole.
Así pues, los alumnos de la asignatura ‘Búsqueda y Recuperación de Información’, asignatura obligatoria del Grado en Información y Documentación, podrán en estas páginas comprobar cómo se articulan en la práctica los conceptos analizados previamente en el aula y, a la vez, tener un primer contacto con sistemas reales de Recuperación de Información. Con ello adquieren una formación de carácter tecnológico más próxima a un posible desarrollo profesional futuro, aspectos demandados cada vez en mayor medida tanto académica como profesionalmente.
Para la elaboración de este cuaderno se ha optado por los motores de búsqueda Solr, Indri y Terrier, en cuya selección se han tenido en cuenta las siguientes características:
Un alto nivel de utilización, tanto en empresas como en organismos públicos e instituciones académicas. Solr, por ejemplo, es un sistema de recuperación que permite integrar diversas fuentes de información empleadas a nivel empresarial (intranet, bases de datos, documentos locales, correos electrónicos…), siendo utilizado también en organismos públicos como la Biblioteca Nacional de España. Por su parte, los sistemas Indri y Terrier son ampliamente empleados en proyectos académicos vinculados a la enseñanza y la investigación en Recuperación de Información.
Son programas de código abierto, lo que permite no solamente acceder al código para conocer con exactitud cómo se han implementado los distintos procesos involucrados en el programa, sino que además son gratuitos y, por tanto, de mayor accesibilidad que los programas comerciales.
6
Son programas multiplataforma, estando disponible una versión para sistema operativo Windows, una versión para sistema operativo Linux/Unix y una versión para sistema operativo Mac OS X. Esta característica garantiza la posibilidad de instalación y uso en el futuro, sea cual sea la plataforma utilizada en la institución u organismo donde los alumnos puedan desarrollar su labor profesional. Dado que en la Facultad de Ciencias de la Documentación se emplea el sistema operativo Windows, en este cuaderno nos centraremos en dicha plataforma. En la documentación de los respectivos sistemas encontrará el lector información relativa a otros sistemas operativos.
Existencia de documentación complementaria y otras fuentes de información (wikis, foros, sitios web, tutoriales) que permiten ahondar en la gestión y administración de estos sistemas y resolver dudas en caso necesario.
El cuaderno se organiza mostrando, para cada uno de los tres sistemas abordados, al menos los siguientes aspectos generales:
Los prerrequisitos para su funcionamiento en Windows
La instalación del programa en Windows
La apertura y cierre del programa en Windows
Indexación de una colección
Eliminación de palabras vacías
Stemming o reducción morfológica
Recuperación de documentos
Tras la exposición de cada uno de estos aspectos el cuaderno incluye, intercalados a lo largo del texto relativo a los distintos sistemas de recuperación, varios ejercicios con su solución, de manera que el alumno pueda ir comprobando si ha llevado a cabo correctamente las diversas acciones básicas afrontadas con cada sistema. Con ello cumplimos una doble finalidad: por una parte, si incita al alumno a instalar y probar estos sistemas de recuperación, pues puede comprobar paso a paso si ha realizado correctamente las sucesivas acciones básicas abordadas en este manual; en segundo lugar, le permite evaluar progresivamente su nivel de conocimiento y pericia en el manejo y gestión de cada uno de los sistemas.
Finalmente, en apéndices, se incluyen los pasos que deben seguirse para realizar tareas básicas frecuentes, de carácter informático, necesarias para la utilización de estos programas, además del modo de resolver los principales errores que pueden surgir durante su instalación y empleo.
7
SOLR
Prerrequisitos de Solr en Windows
Solr es un programa de código abierto de búsqueda y recuperación de información, basado en la librería Lucene.
Solr exige para su funcionamiento la instalación previa de Java (JRE) versión 1.8 o superior en nuestro sistema. Por tanto, debemos asegurarnos de tener instalado Java en nuestro ordenador antes de instalar el programa Solr. Para comprobar si Java (JRE) está instalado en Windows, hacemos clic en ‘Inicio’ (el icono de Windows en el margen inferior izquierdo de la pantalla), luego en ‘Panel de control’ y posteriormente en ‘Programas’:
Inicio > Panel de control > Programas
Si no apareciese el programa ‘Java’ en ‘Inicio > Panel de control > Programas’, podemos hacer otra comprobación previa en la siguiente ruta:
Inicio > Panel de control > Programas > Programas y características
Allí debe incluirse una entrada del tipo ‘Java 8 Update 131 (64-bit)’. Esta entrada, por ejemplo, corrobora que en nuestro ordenador está instalada la versión ‘1.8.131’ del programa Java. Si no disponemos en nuestro ordenador del programa Java (JRE), debemos instalarlo (ir al apéndice‘Instalación de Java (JRE) en Windows’, más adelante en este mismo documento).
No solamente es necesario tener instalado el programa Java (JRE). De igual forma, debemos asegurarnos de que la versión instalada en nuestro sistema es la 1.8 o superior (como en este caso, la versión 1.8.131).
Si ya disponemos del programa, en ‘Programas’ debería aparecer ‘Java’ junto a su icono (una taza de café). Si es así, comprobaremos la versión de Java instalada. Para ello, hacemos clic en ‘Java’. En la pantalla que aparece, hacemos clic en la pestaña ‘General’ y a continuación hacemos clic en el botón ‘Acerca de’. En la pantalla resultante
8 figurará un mensaje del tipo: ‘Versión 8 Actualización 131’. Ello indica que tenemos instalada la versión ‘1.8.131’. Debemos asegurarnos de que la versión instalada en nuestro sistema es la 1.8 o superior (como en este caso, la versión 1.8.131). Si no disponemos en nuestro ordenador de una versión 1.8 o superior, debemos instalarla (ir al apéndice ‘Instalación de Java (JRE) en Windows’, más adelante en este mismo documento).
También podemos comprobar qué versión de Java tenemos instalada en nuestro ordenador abriendo una CONSOLA, TERMINAL O LÍNEA DE COMANDOS. Para ello, basta ir a ‘Inicio’ (el icono en el margen inferior izquierdo de la pantalla con la bandera de Windows), y en el buscador que aparece en la parte inferior de la pantalla con la frase ‘Buscar programas y archivos’ introducimos ‘cmd’ [sin las comillas simples; solamente las letras cmd]. Aparecerá una pantalla con fondo negro y una última línea semejante a:
C:\Users\Juan>_
Hasta el signo > el sistema nos está indicando en qué subdirectorio nos encontramos (en este caso, en el subdirectorio ‘Juan’, dentro del directorio ‘Users’, dentro de la unidad ‘C’ de nuestro ordenador). El prompt (_) está parpadeando en espera de que introduzcamos un comando (de donde la abreviatura ‘cmd’ introducida anteriormente). Hemos abierto, pues, una CONSOLA, TERMINAL O LÍNEA DE COMANDOS, que nos permite introducir directamente comandos al sistema para su ejecución. Si introducimos el siguiente comando:
java -version
El sistema nos devolverá un mensaje como el siguiente, siempre que tengamos instalado Java:
java version “1.8.0_131”
Java <TM> SE Runtime Environment <build 1.8.0_131-b01>
9
Si no está instalado el programa Java (JRE) o la versión instalada es inferior a la 1.8, procederemos a instalar Java (JRE) antes de proceder a instalar el programa Solr, siguiendo para ello los pasos que se indican en el apartado ‘Instalación de Java (JRE) en Windows’ dentro de los Apéndices.
10
Instalación del programa Solr en Windows
En el momento de redactar este taller, la última versión del programa Solr (en nuestro caso, la 7.2.1) puede descargarse desde la página
http://www.apache.org/dyn/closer.lua/lucene/solr
Enlazando allí con el sitio web recomendado para la descarga, en nuestro caso: http://apache.uvigo.es/lucene/solr
Una vez allí, basta hacer clic en la carpeta con la versión más reciente de Solr, en nuestro caso la versión 7.2.1. En la nueva pantalla encontraremos diversas posibilidades de archivos comprimidos de esta versión (src.tgz, tgz, zip…). Nosotros emplearemos la versión ‘zip’, por lo que haremos clic en ‘solr-7.2.1.zip’. Este archivo es el que se empleará para su instalación, tanto en Mac como en Windows. Una vez que hayamos hecho clic en ‘solr-7.2.1.zip’, el archivo se descargará en nuestro ordenador. Tened en cuenta que el archivo ocupa alrededor de 150 MB, por lo que puede tardar varios minutos en realizar esta tarea.
Habitualmente los archivos se descargan en la carpeta ‘Descargas’, pero posteriormente se puede mover el archivo ‘solr-7.2.1.zip’ desde allí al directorio de trabajo que se desee. Nosotros, por ejemplo, lo hemos descargado finalmente en el Escritorio (Desktop).
Allí descomprimiremos ese archivo con un programa compresor-descompresor (WinRAR en nuestro caso; si no se dispone del programa, puede consultarse el apéndice ‘Instalación de WinRAR en Windows’ al final de este documento). Para ello, con el botón derecho desplegamos el menú contextual y elegimos la opción ‘Extraer aquí’. Tras unos segundos se mostrará en pantalla la carpeta con la versión más reciente, en nuestro caso ‘solr-7.2.1’. El programa Solr no necesita más tareas para su instalación. Ya podemos empezar a emplearlo.
11
En adelante denominaremos $SOLR_INSTALL a la ruta donde hayamos situado la carpeta con el programa; en nuestro caso, la ruta hasta llegar a la carpeta ‘solr-7.2.1’. Por tanto, de ahora en adelante:
En Mac, $SOLR_INSTALL es equivalente a:
/Users/juan/Desktop/solr-7.2.1
En Windows, $SOLR_INSTALL es equivalente a
12 Instalación del programa Solr en Mac
La última versión del programa Solr (en nuestro caso, la 7.2.1) puede descargarse desde la página
http://www.apache.org/dyn/closer.lua/lucene/solr/7.2.1
Enlazando allí con el sitio web:
http://ftp.cixug.es/apache/lucene/solr/7.2.1
Una vez allí, basta hacer clic en ‘solr-7.2.1.zip’. Este archivo es el que se empleará para su instalación, tanto en Mac como en Windows. El archivo se descargará en nuestro ordenador. Se puede mover el archivo zip al directorio de trabajo que se desee. Nosotros, por ejemplo, lo hemos descargado en el Escritorio (Desktop).
Allí descomprimiremos ese archivo, resultando la carpeta ‘solr-7.2.1’. El programa Solr no necesita más tareas para su instalación. Ya podemos empezar a emplearlo.
En adelante denominaremos $SOLR_INSTALL a la ruta donde hayamos situado la carpeta con el programa; en nuestro caso, la ruta hasta llegar a la carpeta ‘solr-7.2.1’. Por tanto, de ahora en adelante:
En Mac, $SOLR_INSTALL es equivalente a:
/Users/juan/Desktop/solr-7.2.1
En Windows, $SOLR_INSTALL es equivalente a
13
Apertura y cierre del programa Solr en Windows
Si se ha trabajado con una cierta colección de ejemplo en Solr (‘techproducts’, por ejemplo) en ocasiones anteriores, y se desea iniciar el programa partiendo de la
versión modificada en la última sesión del archivo de configuración, NO ES NECESARIO
eliminar el subdirectorio correspondiente dentro de $SOLR_INSTALL\example ($SOLR_INSTALL\example\techproducts, siguiendo con el ejemplo) con todo su contenido.
Para iniciar el programa, en una CONSOLA, TERMINAL o LÍNEA DE COMANDO (para la apertura de una consola, terminal o línea de comandos, ver el apartado ‘Apertura de una consola, terminal o línea de comandos’), teclear:
cd $SOLR_INSTALL\bin
[[esto es, ir al subdirectorio ‘bin’ dentro del directorio de instalación; en nuestro caso: cd C:\Users\juan\Desktop\solr-7.2.1]] Una vez en $SOLR_INSTALL\bin, teclear:
solr start –e techproducts
[[inicia Solr con la colección de ejemplo ‘techproducts’]] La interfaz de administración del programa está en la página
http://localhost:8983/solr/
(debe esperarse unos segundos para que el programa se cargue correctamente) Siempre que se desee se puede cerrar el programa Solr. Para ello, basta con ir al terminal desde donde se lanzó Solr y teclear: Ctrl +C, o cerrar el terminal (el método más seguro), o bien teclear en un terminal (para la apertura de un terminal o línea de comando, ver el apartado ‘Apertura de una consola, terminal o línea de comandos’):
14 Una vez en $SOLR_INSTALL\bin, teclear:
solr stop -all
Una vez que ha iniciado el programa con la colección de ejemplo ‘techproducts’, AL CERRAR EL PROGRAMA, LA COLECCIÓN ‘TECHPRODUCTS’
PERMANECE ALMACENADA Y DISPONIBLE.
Si se ha acabado una sesión con el programa Solr habiendo instalado al arrancar la colección ‘techproducts’, se puede iniciar de nuevo Solr y simultáneamente cargar la colección de ejemplo ‘techproducts’, empleando para ello la misma orden vista anteriormente, sin que sea preciso realizar ninguna modificación en los archivos del programa (la eliminación del subdirectorio $SOLR_INSTALL/example/techproducts era necesaria en versiones anteriores).
Sin embargo, si al arrancar de nuevo el programa recibe un mensaje de error, pruebe a solucionar el problema eliminando previamente dicha colección. En resumen,
CADA VEZ QUE ACABE UNA SESIÓN CON EL PROGRAMA SOLR HABIENDO
INSTALADO AL ARRANCAR LA COLECCIÓN ‘TECHPRODUCTS’, NO DEBE ELIMINAR EL DIRECTORIO ‘$SOLR_INSTALL\example\techproducts’ EN SU INTEGRIDAD ANTES DE VOLVER A ARRANCAR EL PROGRAMA CON LA COLECCIÓN DE EJEMPLO
‘techproducts’.
AHORA BIEN, SI AL ARRANCAR DE NUEVO EL PROGRAMA RECIBE UN MENSAJE DE ERROR, PRUEBE A ELIMINAR EL DIRECTORIO
‘$SOLR_INSTALL\example\techproducts’ EN SU INTEGRIDAD ANTES DE VOLVER A ARRANCAR EL PROGRAMA CON LA COLECCIÓN DE EJEMPLO ‘techproducts’. SIEMPRE QUE DICHO DIRECTORIO SE HAYA ELIMINADO, SE PUEDE VOLVER A ARRANCAR EL PROGRAMA CON LA MISMA ORDEN INDICADA ANTERIORMENTE.
15
Apertura y cierre del programa Solr en Mac
Para iniciar el programa, en una CONSOLA, TERMINAL o LÍNEA DE COMANDO (para la apertura de una consola, terminal o línea de comandos, ver el apartado ‘Apertura de una consola, terminal o línea de comandos’), teclear:
cd /Users/juan/Desktop/solr-7.2.1/bin
[[esto es, ir al subdirectorio ‘bin’ dentro del directorio de instalación]] Una vez en $SOLR_INSTALL/bin, teclear:
solr start –e techproducts
[[inicia Solr con la colección de ejemplo ‘techproducts’]] La interfaz de administración del programa está en la página
http://localhost:8983/solr/
(debe esperarse unos segundos para que el programa se cargue correctamente). Siempre que se desee se puede cerrar el programa Solr. Para ello, basta con ir al terminal desde donde se lanzó Solr y teclear: Ctrl +C, o cerrar el terminal (el método más seguro), o bien teclear en un terminal (para la apertura de un terminal o línea de comando, ver el apartado ‘Apertura de una consola, terminal o línea de comandos’):
cd /Users/juan/Desktop/solr-7.2.1/bin Una vez en $SOLR_INSTALL/bin, teclear:
solr stop -all
Una vez que ha iniciado el programa con la colección de ejemplo ‘techproducts’,
AL CERRAR EL PROGRAMA, LA COLECCIÓN ‘TECHPRODUCTS’ PERMANECE ALMACENADA Y DISPONIBLE.
Si se ha acabado una sesión con el programa Solr habiendo instalado al arrancar la colección ‘techproducts’, se puede iniciar de nuevo Solr y simultáneamente cargar la
16 colección de ejemplo ‘techproducts’, empleando para ello la misma orden vista anteriormente, sin que sea preciso realizar ninguna modificación en los archivos del programa (la eliminación del subdirectorio $SOLR_INSTALL/example/techproducts era necesaria en versiones anteriores).
Sin embargo, si al arrancar de nuevo el programa recibe un mensaje de error, pruebe a solucionar el problema eliminando previamente dicha colección. En resumen,
CADA VEZ QUE ACABE UNA SESIÓN CON EL PROGRAMA SOLR HABIENDO
INSTALADO AL ARRANCAR LA COLECCIÓN ‘TECHPRODUCTS’, NO DEBE ELIMINAR EL DIRECTORIO ‘$SOLR_INSTALL/example/techproducts’ EN SU INTEGRIDAD ANTES DE VOLVER A ARRANCAR EL PROGRAMA CON LA COLECCIÓN DE EJEMPLO
‘techproducts’.
AHORA BIEN, SI AL ARRANCAR DE NUEVO EL PROGRAMA RECIBE UN MENSAJE DE ERROR, PRUEBE A ELIMINAR EL DIRECTORIO
‘$SOLR_INSTALL/example/techproducts’ EN SU INTEGRIDAD ANTES DE VOLVER A ARRANCAR EL PROGRAMA CON LA COLECCIÓN DE EJEMPLO ‘techproducts’. SIEMPRE QUE DICHO DIRECTORIO SE HAYA ELIMINADO, SE PUEDE VOLVER A ARRANCAR EL PROGRAMA CON LA MISMA ORDEN INDICADA ANTERIORMENTE.
A partir de este momento, el taller se desarrollará teniendo en cuenta un sistema Windows, aunque los procesos son muy semejantes. Pueden consultarse los comandos principales en un sistema Mac en la página
17 Eliminación de palabras vacías
La tarea de análisis efectuada con los documentos de una colección consta de un proceso de tokenización (o de segmentación de la cadena de caracteres de cada documento en ‘palabras’ o ‘tokens’), más una serie de procesos optativos de filtrado de los tokens, entre los que habitualmente se hallan los siguientes:
Reducción de todos los caracteres a minúsculas
Eliminación de palabras vacías
Stemming
En este apartado veremos cómo modificar la configuración del programa Solr para que efectúe un proceso de eliminación de palabras vacías conforme a un listado recogido en el fichero:
$SOLR_INSTALL\example\techproducts\solr\techproducts\conf\lang\ stopwords_en.txt Comprobaremos a continuación los resultados del proceso con un ejemplo. La configuración del programa Solr se recoge principalmente en dos ficheros: ‘solrconfig.xml’ y ‘managed-schema.xml’, localizados habitualmente en un subdirectorio ‘conf’.
Como hemos iniciado el programa con la colección/core de ejemplo ‘techproducts’, debemos abrir el archivo:
$SOLR_INSTALL\example\techproducts\solr\techproducts\conf\managed-schema.xml Con un editor de textos (con Wordpad o Notepad++, por ejemplo).
Todos los procesos de que consta la tarea de análisis se recogen en el schema del programa dentro de un apartado <analyzer>. A su vez, consta de dos partes esenciales:
18
Una parte/type denominada <analyzer type=”index”>, que incluye los procesos que se llevarán a cabo con los documentos de la colección en el momento de la indexación.
Otra parte/type denominada <analyzer type=“query”>, que incluye los procesos que se realizarán al analizar las consultas introducidas por los usuarios.
A su vez, el apartado “analyzer” estará incluido dentro del epígrafe < fieldType name=”…” > correspondiente al tipo de documento empleado en nuestra colección (ya que se debe configurar el programa con la descripción de cada uno de los tipos de documentos que componen la colección manejada en cada momento). En nuestro caso, la colección/core ‘techproducts’ cuenta con un tipo de documento “text_general” válido para todos ellos (< fieldType name=”text_general” > ).
En consecuencia, debemos modificar las siguientes líneas del archivo de configuración ‘managed-schema.xml’ (en negrita las líneas concretas que se han modificado): <fieldType name=”text_general” class=”solr.TextField” positionIncrementGap=”100”> <analyzer type=”index”> ………
<filter class=”solr.StopFilterFactory” ignoreCase=”true”
words=”lang/stopwords_en.txt” />
……….
19 <analyzer type=”query”>
………
<filter class=”solr.StopFilterFactory” ignoreCase=”true”
words=”lang/stopwords_en.txt” />
………. ……….
Una vez guardados los cambios efectuados en el archivo ‘managed-schema.xml’, debemos reindexar la colección/core de ejemplo ‘techproducts’ conforme al nuevo proceso de análisis configurado. Para ello, seguimos los siguientes pasos:
1.- Eliminamos primeramente la indexación previa realizada con la colección/core de ejemplo ‘techproducts’. Ello se puede conseguir yendo al epígrafe ‘Core Admin’ del menú izquierdo y haciendo clic en ‘Unload’. 2.- Indexamos de nuevo la colección/core de ejemplo ‘techproducts’. En un terminal (para la apertura de un terminal o línea de comando, ver el apartado ‘Apertura de una consola, terminal o línea de comandos’), tecleamos (en negrita los comandos):
cd $SOLR_INSTALL\bin solr start -e techproducts
Solr facilita la comprobación del funcionamiento de la cadena de análisis configurada de manera directa, sin necesidad de realizar consultas de prueba. Para ello dispone de un formulario ‘Analysis’, que surge en un menú contextual después de elegir la colección/core en el menú lateral izquierdo de la pantalla de administración.
Una vez que estemos en la pantalla de ‘Analysis’, seguimos los siguientes pasos: 1.- Introduce el siguiente texto de prueba en el área de texto ‘Field Value (Index)’:
20
#Good! :) Drinking a latte at Caffé Grecco in SF’s historic North Beach… Sent from my i-pad [[ejemplo basado en Grainger & Potter (2014), p. 117]]
2.- Selecciona ‘text_general’ en el apartado ‘Analyse Fieldname/FieldType’ 3.- Haz clic en el botón ‘Analyse Values’ para ver el resultado.
Solr indicará en pantalla los procesos seguidos en el análisis del texto durante su indexación conforme al fieldType ‘text_general’. Solr utiliza las siguientes abreviaturas:
ST: StandardTokenizer [Tokenización]
SF: StopFilter [Eliminación de palabras vacías]
LCF: LowerCaseFilter [Conversión de todos los caracteres a minúsculas]
En cada fila (las que comienzan con ST, SF o LCF, por ejemplo) se pueden observar los términos resultantes tras cada uno de dichos procesos. Si una determinada palabra no aparece a partir de una cierta fila (ST, SF o LCF, por ejemplo), significa que la palabra se ha eliminado como término de indexación tras el sometimiento a dicho proceso. A partir de ese momento ya no aparecerá en los sucesivos procesos que incluya el analizador del programa.
EJERCICIO 1
21 #Good! :) Drinking a latte at Caffé Grecco in SF’s historic North Beach… Sent from my i-pad
responde a las siguientes preguntas:
1. ¿Qué procesos de análisis se efectúan y en qué orden? 2. ¿Elimina acentos este proceso de análisis?
3. ¿Cuál es el token que resulta tras el análisis de ‘SF’s’? 4. ¿Cuál es el token que resulta tras de análisis de ‘in’? 5. ¿Cuál es el token que resulta de ‘i-pad’?
SOLUCIÓN EJERCICIO 1
1. ¿Qué procesos de análisis se efectúan y en qué orden?
ST (Tokenización), SF (Eliminación de palabras vacías) y LCF (Conversión a minúsculas)
2. ¿Elimina acentos este proceso de análisis? No
3. ¿Cuál es el token que resulta tras el análisis de ‘SF’s’? sf’s
4. ¿Cuál es el token que resulta tras de análisis de ‘in’? Ninguno, el token se elimina
5. ¿Cuál es el token que resulta de ‘i-pad’?
i pad [el token queda dividido en dos términos]
Este mismo formulario permite comprobar si ante una cierta consulta se recuperaría este documento de prueba sin tener que indexarlo. Para ello, seguimos los siguientes pasos:
1.- Introduce ‘drinking a latte’ [sin comillas] en el área de texto ‘Field Value (Query)’
22 Solr destacará todos los términos del documento que concuerdan con la
consulta introducida.
EJERCICIO 2
Tras introducir la consulta: drinking a latte
en el área de texto ‘Field Value (Query)’, responde a la siguiente pregunta:
1. ¿Qué términos del documento de prueba concuerdan con dicha consulta?
Si se introduce ahora la consulta ‘San Francisco drink cafe ipad’ [sin comillas] y se hace clic en el botón ‘Analyse Values’,
2. ¿Qué términos del documento de prueba coindicen ahora con dicha consulta?
3. ¿Qué conclusiones deduce de cara a la indexación y recuperación de documentos en una colección?
SOLUCIÓN EJERCICIO 2
1. ¿Qué términos del documento de prueba concuerdan con dicha consulta? ‘drinking’ y ‘latte’
2. ¿Qué términos del documento de prueba coindicen ahora con dicha consulta?
Ningún término
3. ¿Qué conclusiones deduce de cara a la indexación y recuperación de documentos en una colección?
Únicamente los términos que coincidan plenamente con un término del fichero diccionario serán recuperados
23 Para incluir el proceso de stemming dentro de la cadena de análisis de los textos de la colección, debemos indicar al programa que utilice alguno de los algoritmos de stemming que soporta Solr dentro de la tarea de análisis. Nosotros emplearemos aquí el algoritmo de Porter en inglés.
Como ya indicamos en el epígrafe anterior, dedicado a la eliminación de palabras vacías, debemos modificar el archivo ‘managed-schema.xml’ de configuración de la colección/core de ejemplo ‘techproducts’ con un editor de textos (Wordpad o Notepad++, por ejemplo). Este archivo de configuración se encuentra en la siguiente ruta:
$SOLR_INSTALL\example\techproducts\solr\techproducts\conf\managed-schema.xml incluyendo las siguientes líneas (en negrita las líneas concretas que se han añadido):
<fieldType name=”text_general” class=”solr.TextField”
positionIncrementGap=”100”> <analyzer type=”index”> ………
<filter class=”solr.StopFilterFactory” ignoreCase=”true” words=”lang/stopwords_en.txt” /> <filter class=”solr.LowerCaseFilterFactory” /> <filter class=”solr.PorterStemFilterFactory” /> </analyzer> <analyzer type=”query”> ………
<filter class=”solr.StopFilterFactory” ignoreCase=”true” words=”lang/stopwords_en.txt” />
<filter class=”solr.LowerCaseFilterFactory” /> <filter class=”solr.PorterStemFilterFactory” /> </analyzer>
Una vez guardados los cambios efectuados en el archivo ‘managed-schema.xml’, debemos reindexar otra vez la colección/core de ejemplo ‘techproducts’ conforme al
24 nuevo proceso de análisis configurado. Para ello, seguimos los mismos pasos realizados anteriormente, al incluir la eliminación de palabras vacías:
1.- Eliminamos primeramente la indexación previa realizada con la colección/core de ejemplo ‘techproducts’. Ello se puede conseguir yendo al epígrafe ‘Core Admin’ del menú izquierdo y haciendo clic en ‘Unload’. 2.- Indexamos de nuevo la colección/core de ejemplo ‘techproducts’. En un terminal (para la apertura de un terminal o línea de comandos, ver el apartado ‘Apertura de una consola, terminal o línea de comandos’), tecleamos (los comandos figuran en negritas):
cd $SOLR_INSTALL\bin solr start -e techproducts
Comprobamos ahora el funcionamiento mediante el formulario ‘Analysis’, tras la elección previa de la colección/core ‘techproducts’ en el menú lateral izquierdo de la pantalla de administración. Los pasos a seguir son:
1.- Introduce el mismo texto de prueba empleado en el EJERCICIO 1 (vid. p. 20) en el área de texto ‘Field Value (Index)’:
#Good! :) Drinking a latte at Caffé Grecco in SF’s historic North Beach… Sent from my i-pad
2.- Selecciona ‘text_general’ en el apartado ‘Analyse Fieldname/FieldType’ 3.- Haz clic en el botón ‘Analyse Values’ para ver el resultado.
25 Tras introducir el texto de prueba:
#Good! :) Drinking a latte at Caffé Grecco in SF’s historic North Beach… Sent from my i-pad
en el área de texto ‘Field Value (Index)’, responde a las siguientes preguntas: 1. ¿Qué procesos de análisis se efectúan ahora y en qué orden?
2. ¿Elimina acentos este proceso de análisis?
3. ¿Cuál es el token que resulta tras el análisis de “SF’s”? 4. ¿Cuál es el token que resulta tras de análisis de “in”? 5. ¿Cuál es el token que resulta de “drinking”?
SOLUCIÓN EJERCICIO 3
1. ¿Qué procesos de análisis se efectúan ahora y en qué orden? ST, SF, LCF, PSF
2. ¿Elimina acentos este proceso de análisis? No.
3. ¿Cuál es el token que resulta tras el análisis de “SF’s”? sf’
4. ¿Cuál es el token que resulta tras de análisis de “in”? Ninguno; el token es eliminado
5. ¿Cuál es el token que resulta de “drinking”? drink
26
EJERCICIO 4
Tras introducir la consulta: drinks a lattes
en el área de texto ‘Field Value (Query)’, responde a las siguientes preguntas: 1. ¿Qué términos del documento de prueba concuerdan con dicha consulta? 2. ¿Qué diferencias observa en la recuperación en relación a la cadena de
análisis efectuada en el ejercicio 2?
SOLUCIÓN EJERCICIO 4
1. ¿Qué términos del documento de prueba concuerdan con dicha consulta? ‘drink’ y ‘latt’
2. ¿Qué diferencias observa en la recuperación en relación a la cadena de análisis efectuada en el ejercicio 2?
El algoritmo de stemming en la cadena de análisis, tanto de los documentos como de las consultas, ha permitido recuperar el documento porque ha convertido los términos de manera que ahora sí coinciden plenamente los términos de la consulta y los términos disponibles en el fichero diccionario
27 Una de las tareas más comunes con un sistema de recuperación de información consiste en crear e incorporar nuestra propia colección al sistema. En este apartado crearemos una colección/core denominada ‘prueba’, localizada en la ruta:
$SOLR_INSTALL\example\prueba Para ello efectuamos los siguientes pasos:
1.- Creamos el directorio ‘prueba’ en la ruta: $SOLR_INSTALL\example\prueba
2.- Copiamos el subdirectorio ‘conf’ COMPLETO, disponible en:
$SOLR_INSTALL\example\techproducts\solr\techproducts\conf en la ruta:
$SOLR_INSTALL\example\prueba\conf
3.- Creamos el subdirectorio ‘data’ en la ruta: $SOLR_INSTALL\example\prueba\data
4.- Vamos a la interfaz de administración y en el menú izquierdo hacemos clic en ‘Core Admin’.
28 Name: prueba instanceDir: $SOLR_INSTALL\example\prueba dataDir: $SOLR_INSTALL\example\prueba\data config: $SOLR_INSTALL\example\prueba\conf\solrconfig.xml schema: $SOLR_INSTALL\example\prueba\conf\managed-schema.xml
6.- Hacemos clic en ‘Add Core’
7.- En el menú lateral izquierdo, desplegar el menú de colecciones/cores disponibles (texto ‘Core Selector’ enmarcado en una fina línea) y elegimos la colección/core ‘prueba’. En el apartado ‘Overview’ nos confirma que todavía esta colección no tiene documentos indexados (‘Num Docs: 0’).
29
Indexación de documentos
Para facilitar la tarea de recuperación, partiremos de una colección de prueba que se ha obtenido a partir de los fondos sobre ciencias de la Biblioteca de la Universidad Complutense de Madrid. Dicha colección (disponible en el Campus Virtual de la asignatura) DEBE COPIARSE en el directorio $SOLR_INSTALL\colciencias, estando compuesta por 1000 asientos bibliográficos.
En caso de no tener acceso a esta colección, basta crear una carpeta con varios archivos de texto plano, cada uno con denominación distinta y la misma extensión ‘txt’. Si dicha carpeta lleva por nombre ‘colciencias’ y se copia en el directorio $SOLR_INSTALL\colciencias, puede seguirse sin variación alguna lo dicho en este epígrafe.
Es necesario incorporar dichos documentos a nuestro sistema e indexarlos. Para ello, existe una herramienta en Solr, denominada SimplePostTool, que rastrea todo un directorio de archivos de manera recursiva, accediendo a todos los archivos con extensión HTML, PDF, TXT, etc., enviando su contenido en crudo a Solr para su análisis e indexación.
El comando para ello es el siguiente, siempre que estemos situados en
$SOLR_INSTALL, esto es, el directorio donde esté instalado Solr:
java –classpath example\exampledocs\post.jar
-Dauto -Drecursive -Dc=prueba org.apache.solr.util.SimplePostTool colciencias\
Una vez terminada la operación de indexación, aparecerá en la pantalla la siguiente respuesta:
1001 files indexed
Ya tenemos indexados los 1000 documentos en la colección/core ‘prueba’. Se puede comprobar en la interfaz de administración, en ‘Overview’ de la colección/core ‘prueba’, donde indica ‘NumDocs: 1001’.
30
Recuperación de documentos por defecto
Solr, por defecto, efectúa el cálculo de la respuesta en relación a las consultas de los usuarios mediante una mezcla de modelos booleano y vectorial con normalización (la clase DefaultSimilarityFactory realiza tal proceso de recuperación). A raíz de la introducción de una consulta, Solr primeramente selecciona –conforme al modelo booleano- los documentos que verifican la consulta. A su vez, con el resultado obtenido conforme al modelo booleano, efectúa una ordenación de los documentos de ese resultado previo conforme a un modelo vectorial con normalización.
Como en el epígrafe anterior hemos indexado la colección/core ‘prueba’, ya podemos realizar búsquedas en Solr cargando la interfaz de búsqueda:
http://localhost:8983/solr/#/prueba/query
Esta pantalla de búsqueda puede obtenerse igualmente si en la interfaz de administración, una vez elegida la colección/core ‘prueba’, seleccionamos ‘Query’.
Búsqueda de un término aislado
Basta introducir el término en el campo ‘q’. Suele optarse también por seleccionar ‘json’ como el formato de la respuesta en el campo ‘wt’, por su mayor facilidad de visualización. El resto puede dejarse con los valores por defecto que figuran.
31
EJERCICIO 5
Realizar una búsqueda del término congreso en la colección: 1. ¿Cuántos documentos se obtienen en la respuesta?
2. ¿Qué documentos/fichas ocupan las cinco primeras posiciones?
SOLUCIÓN EJERCICIO 5
1. ¿Cuántos documentos se obtienen en la respuesta? 62 documentos
2. ¿Qué documentos/fichas ocupan las cinco primeras posiciones? 1. Ficha147
2. Ficha89 3. Ficha318 4. Ficha319 5. Ficha180
Búsqueda por frases
32
EJERCICIO 6
Realizar una búsqueda con la frase ‘analisis multivariante’ (sin acento): 1. ¿Cuántos documentos se obtienen en la respuesta?
2. ¿Qué documentos/fichas ocupan las cinco primeras posiciones?
SOLUCIÓN EJERCICIO 6
1. ¿Cuántos documentos se obtienen en la respuesta? 2 documentos
2. ¿Qué documentos/fichas ocupan las cinco primeras posiciones? 1. Ficha238
2. Ficha435
Búsqueda con AND
Se realiza anteponiendo a cada término el signo + (sin espacios en medio). También es posible utilizar la conectiva AND (en mayúsculas) entre los dos términos.
33
EJERCICIO 7
Realizar una búsqueda de modo que me devuelva los documentos en los que aparezcan simultáneamente los términos 'elsevier' y 'manrique':
1. ¿Cómo efectuaría la consulta?
2. ¿Cuántos registros se obtienen en la respuesta?
3. ¿Qué documentos/fichas ocupan las cinco primeras posiciones?
SOLUCIÓN EJERCICIO 7
4. ¿Cómo efectuaría la consulta? +elsevier +manrique
5. ¿Cuántos registros se obtienen en la respuesta? 1 documento
6. ¿Qué documentos/fichas ocupan las cinco primeras posiciones? 1. Ficha21
Búsqueda con OR
Se realiza simplemente introduciendo los términos con un espacio entre ellos (operador por defecto). También es posible utilizar la conectiva OR (en mayúsculas) entre los dos términos.
34
EJERCICIO 8
Realizar una búsqueda con los documentos en los que aparezcan al menos una de las siguientes palabras: 'jornadas', 'tesis' y 'programa'.
1. ¿Cómo efectuaría la consulta?
2. ¿Cuántos registros se obtienen en la respuesta?
3. ¿Qué documentos/fichas ocupan las cinco primeras posiciones?
SOLUCIÓN EJERCICIO 8
1. ¿Cómo efectuaría la consulta? jornadas tesis programa
2. ¿Cuántos registros se obtienen en la respuesta? 102 documentos
3. ¿Qué documentos/fichas ocupan las cinco primeras posiciones? 1. Ficha55
2. Ficha113 3. Ficha277 4. Ficha3 5. Ficha464
Búsqueda con NOT
35
EJERCICIO 9
Realizar una búsqueda con los documentos que no contengan el término ‘universitario’.
1. ¿Cómo efectuaría la consulta?
2. ¿Cuántos documentos se obtienen en la respuesta?
3. ¿Qué documentos/fichas ocupan las cinco primeras posiciones?
Posteriormente, realizar una búsqueda con los documentos que contengan el término ‘ciencias’ y en los que no aparezca el término ‘universitario’.
4. ¿Cómo efectuaría la consulta?
5. ¿Cuántos documentos se obtienen en la respuesta?
6. ¿Qué documentos/fichas ocupan las cinco primeras posiciones?
SOLUCIÓN EJERCICIO 9
1. ¿Cómo efectuaría la consulta? -universitario
2. ¿Cuántos documentos se obtienen en la respuesta? 979 documentos
3. ¿Qué documentos/fichas ocupan las cinco primeras posiciones? 1. Ficha1
2. Ficha10 3. Ficha100 4. Ficha1000 5. Ficha1001
4. ¿Cómo efectuaría la consulta? +ciencias -universitario
5. ¿Cuántos documentos se obtienen en la respuesta? 977 documentos
36 6. ¿Qué documentos/fichas ocupan las cinco primeras posiciones?
1. Ficha518 2. Ficha892 3. Ficha994 4. Ficha1001 5. Ficha188
37
Recuperación conforme a diversos modelos
Solr permite utilizar otros modelos de recuperación de información, entre los que destacan:
BM25SimilarityFactory: clase que desarrolla el modelo probabilístico con normalización BM25.
DFRSimilarityFactory: clase que desarrolla el modelo DFR (Divergence From Randomness). Se basa en la comparación de la distribución de las frecuencias de los términos en cada documento de la colección para determinar el peso de los términos en cada documento. Se valora fundamentalmente que la frecuencia sea distinta de la esperada en el conjunto de la colección.
Para cambiar el modelo de recuperación con el que el sistema calcula la respuesta ante las consultas, debe modificarse la configuración de la fase de recuperación del sistema. En concreto, debe cambiarse el algoritmo seguido por el SRI para hallar la respuesta a cada consulta del usuario. Ello implica de nuevo la edición del archivo ‘managed-schema’, específicamente un cambio en la sección correspondiente a ‘similarity’.
A continuación comprobaremos los cambios en la respuesta de Solr desarrollando dos sistemas que indexan de igual forma la misma colección de prueba (colpdf), pero diferenciándose en el proceso seguido en la recuperación: mientras uno de ellos utiliza el modelo de recuperación por defecto (colección/core ‘pruebadefecto’), otro utilizará el modelo BM25 (colección/core ‘pruebabm25’).
Crearemos en primer lugar una nueva colección/core ‘pruebadefecto’ que cumpla las siguientes condiciones:
1. Indexa la colección ‘colpdf’.
38 Para crear la colección/core ‘pruebadefecto’, seguimos los pasos indicados en el epígrafe ‘Creación de una colección’.
Para realizar la comparación de modelos de recuperación utilizaremos una colección de prueba ‘colpdf’, compuesta por 20 artículos científicos en formato pdf. Dicha colección (disponible en el Campus Virtual de la asignatura) DEBE COPIARSE en el
directorio $SOLR_INSTALL\colpdf.
En caso de no tener acceso a esta colección, basta crear una carpeta con varios archivos en formato pdf, cada uno con denominación distinta y la misma extensión ‘pdf’. Si dicha carpeta lleva por nombre ‘colpdf’ y se copia en el directorio $SOLR_INSTALL\colpdf, puede seguirse sin variación alguna lo dicho en este epígrafe.
Es necesario incorporar dichos documentos a nuestra colección/core ‘pruebadefecto’ e indexarlos. Para ello seguimos los pasos indicados en el epígrafe ‘Indexación de documentos’.
Dado que deseamos que la colección/core ‘pruebadefecto’ emplee el modelo de recuperación por defecto, no es necesario efectuar ningún cambio en el archivo de configuración.
Crearemos ahora otra colección/core ‘pruebabm25’ que cumpla las siguientes condiciones:
1. Indexa la misma colección ‘colpdf’. 2. Utiliza el modelo BM25 de recuperación.
Para crear la colección/core ‘pruebabm25’, seguimos los pasos indicados en el epígrafe ‘Creación de una colección’.
Para incorporar la colección ‘colpdf’ a la colección/core ‘pruebabm25’, seguiremos los pasos indicados en el epígrafe ‘Indexación de documentos’.
Por otra parte, para que el sistema emplee el modelo BM25 en el proceso de recuperación, modificamos el archivo:
39 Añadiendo la siguiente entrada al final de dicho archivo:
<similarity class=”solr.BM25SimilarityFactory”> <float name=”k1”>1.6</float>
<float name=”b”>0.35</float> </similarity>
Los valores más habituales para los parámetros k1 y b son los siguientes: 1. k1=1.2
2. b=0.75
Sin embargo, con el fin de observar mejor la diferencia de resultados según el modelo empleado, hemos elegido los valores k1=1.6 y b=0.35.
Una vez guardados los cambios efectuados en el archivo ‘managed-schema.xml’, debemos:
1. Eliminar la indexación previa realizada. Para ello, seleccionar ‘Core Admin’ en el menú izquierdo y haz clic en ‘Unload’.
2. Borrar el subdirectorio COMPLETO ‘data’ en la ruta:
$SOLR_INSTALL\example\pruebabm25\data 3. Crear un nuevo subdirectorio ‘data’ COMPLETAMENTE VACÍO en:
$SOLR_INSTALL\example\pruebabm25\data 4. Hacer clic en ‘Add Core’ y rellenar el formulario como sigue:
Name: pruebabm25
instanceDir: $SOLR_INSTALL\example\pruebabm25 dataDir: $SOLR_INSTALL\example\pruebabm25\data
config: $SOLR_INSTALL\example\pruebabm25\conf\solrconfig.xml
40 5. Reindexar la colección/core ‘pruebabm25’ conforme al nuevo archivo de configuración. Para ello, se puede consultar el epígrafe ‘Indexación de documentos’.
Por último, comparamos los resultados obtenidos con estos dos modelos de recuperación repitiendo las mismas búsquedas con la colección/core ‘pruebadefecto’ y ‘pruebabm25’. Para observar mejor la diferencia de resultados en una y otra colección, introduzca los siguientes parámetros al efectuar las consultas:
1. Campo ‘q’: la consulta que se formule en cada caso 2. Campo ‘wt’: json
3. Campo ‘fl’: *,score [todos los campos habituales más la puntuación obtenida en la relevancia del documento conforme al modelo empleado]
41
EJERCICIO 10
Realizar una búsqueda en las colecciones/core ‘pruebadefecto’ y ‘pruebabm25’ del término ‘obsolescence’:
1. ¿Cuántos documentos se obtienen en la respuesta en cada colección? 2. ¿Qué artículos ocupan las cinco primeras posiciones en cada caso, en qué
orden y con qué puntuación/score?
3. ¿Observa algún cambio (orden o puntuación/score) de los cinco primeros documentos de la respuesta según el modelo de recuperación empleado?
SOLUCIÓN EJERCICIO 10
1. ¿Cuántos documentos se obtienen en la respuesta en cada colección? 11 documentos
2. ¿Qué artículos ocupan las cinco primeras posiciones en cada caso, en qué orden y con qué puntuación/score?
pruebadefecto: pruebabm25: 1. Art12 (1.3063076) 1. Art12 (1.5375448) 2. Art6 (1.3054152) 2. Art5 (1.525011) 3. Art8 (1.2973288) 3. Art6 (1.5227213) 4. Art5 (1.2970226) 4. Art8 (1.5202005) 5. Art20 (1.2915925) 5. Art20 (1.5108013)
3. ¿Observa algún cambio (orden o puntuación/score) de los cinco primeros documentos de la respuesta según el modelo de recuperación empleado? Existen cambios tanto en el orden de los documentos como en la puntuación
42
EJERCICIO 11
Realizar una búsqueda en las colecciones/core ‘pruebadefecto’ y ‘pruebabm25’ de los documentos donde aparezcan simultáneamente los términos ‘world’, ‘wide’ y ‘web’:
1. ¿Cuántos documentos se obtienen en la respuesta en cada colección? 2. ¿Qué artículos ocupan las cinco primeras posiciones en cada caso, en qué
orden y con qué puntuación/score?
3. ¿Observa algún cambio en el orden o en la puntuación/score de los cinco primeros documentos de la respuesta según el modelo de recuperación empleado?
SOLUCIÓN EJERCICIO 11
1. ¿Cuántos documentos se obtienen en la respuesta en cada colección? 2 documentos
2. ¿Qué artículos ocupan las cinco primeras posiciones en cada caso, en qué orden y con qué puntuación/score?
pruebadefecto: pruebabm25: 1. Art4 (5.192871) 1. Art3 (5.9589663) 2. Art3 (5.146044) 2. Art4 (5.8930655)
3. ¿Observa algún cambio en el orden o en la puntuación/score de los cinco primeros documentos de la respuesta según el modelo de recuperación empleado?
43
EJERCICIO 12
Realizar una búsqueda en las colecciones/core ‘pruebadefecto’ y ‘pruebabm25’ de los documentos que no contengan el término ‘age’:
1. ¿Cuántos documentos se obtienen en la respuesta en cada colección? 2. ¿Qué artículos ocupan las cinco primeras posiciones en cada caso, en qué
orden y con qué puntuación/score?
3. ¿Observa algún cambio en el orden o en la puntuación/score de los cinco primeros documentos de la respuesta según el modelo de recuperación empleado?
SOLUCIÓN EJERCICIO 12
1. ¿Cuántos documentos se obtienen en la respuesta en cada colección? 6 documentos
2. ¿Qué artículos ocupan las cinco primeras posiciones en cada caso, en qué orden y con qué puntuación/score?
pruebadefecto: pruebabm25: 1. Art10 (1.0) 1. Art10 (1.0) 2. Art11 (1.0) 2. Art11 (1.0) 3. Art15 (1.0) 3. Art15 (1.0) 4. Art16 (1.0) 4. Art16 (1.0) 5. Art17 (1.0) 5. Art17 (1.0)
3. ¿Observa algún cambio en el orden o en la puntuación/score de los cinco primeros documentos de la respuesta según el modelo de recuperación empleado?
No existe ninguna diferencia. Adviértase que el sistema no puede realmente ordenar los documentos, pues todos ellos verifican EN LA MISMA MEDIDA que NO INCLUYEN el término en cuestión.
44
EJERCICIO 13
Realizar una búsqueda en las colecciones/core ‘pruebadefecto’ y ‘pruebabm25’ de los documentos en los que aparezcan al menos una de las siguientes palabras: ‘music’ y ‘citation’:
1. ¿Cuántos documentos se obtienen en la respuesta en cada colección? 2. ¿Qué artículos ocupan las cinco primeras posiciones en cada caso, en qué
orden y con qué puntuación/score?
3. ¿Observa algún cambio en el orden o en la puntuación/score de los cinco primeros documentos de la respuesta según el modelo de recuperación?
SOLUCIÓN EJERCICIO 13
1. ¿Cuántos documentos se obtienen en la respuesta en cada colección? 12 documentos
2. ¿Qué artículos ocupan las cinco primeras posiciones en cada caso, en qué orden y con qué puntuación/score?
pruebadefecto: pruebabm25: 1. Art5 (5.936718) 1. Art5 (6.9960866) 2. Art3 (4.310213) 2. Art3 (5.01267) 3. Art2 (1.3117106) 3. Art2 (1.5449018) 4. Art7 (1.3098216) 4. Art19 (1.5414988) 5. Art19 (1.3089157) 5. Art7 (1.5394377) 3. ¿Observa algún cambio en el orden o en la puntuación/score de los cinco
primeros documentos de la respuesta según el modelo de recuperación empleado?
45
EJERCICIO 14
Realizar una búsqueda en las colecciones/core ‘pruebadefecto’ y ‘pruebabm25’ de la frase ‘random indexing’:
1. ¿Cuántos documentos se obtienen en la respuesta en cada colección? 2. ¿Qué artículos ocupan las cinco primeras posiciones en cada caso, en qué
orden y con qué puntuación/score?
3. ¿Observa algún cambio en el orden o en la puntuación/score de los cinco primeros documentos de la respuesta según el modelo de recuperación empleado?
SOLUCIÓN EJERCICIO 14
1. ¿Cuántos documentos se obtienen en la respuesta en cada colección? 1 documento
2. ¿Qué artículos ocupan las cinco primeras posiciones en cada caso, en qué orden y con qué puntuación/score?
pruebadefecto: pruebabm25:
1. Art16 (2.593104) 1. Art16 (3.0147972) 3. ¿Observa algún cambio en el orden o en la puntuación/score de los cinco
primeros documentos de la respuesta según el modelo de recuperación empleado?
No existe diferencia en el número/orden de los documentos, pero sí en la puntuación obtenida, aunque en este caso carece de importancia al tratarse de un único documento
A continuación comprobaremos los cambios en la respuesta de Solr desarrollando un sistema que indexa de igual forma la misma colección de prueba (colpdf), pero diferenciándose en que utilizará el modelo de recuperación DFR (Divergence From Randomness).
46 Crearemos en primer lugar una nueva colección/core ‘pruebadfr’. Para ello, seguimos los pasos indicados en el epígrafe ‘Creación de una colección’.
Para incorporar la colección ‘colpdf’ a la colección/core ‘pruebadfr’, seguiremos los pasos indicados en el epígrafe ‘Indexación de documentos’.
Para que el sistema emplee el modelo DFR en el proceso de recuperación, modificamos el archivo:
$SOLR_INSTALL\example\pruebadfr\conf\managed-schema.xml
Añadiendo la siguiente entrada (es una de las opciones más frecuentes) al final de dicho archivo:
<similarity class=”solr.DFRSimilarityFactory”> <str name=”basicModel” >P</str> <str name=”afterEffect”>L</str> <str name=”normalization”>H2</str>
<float name=”c”>7</float> [[También suele usarse c=3]] </similarity>
Una vez guardados los cambios efectuados en el archivo ‘managed-schema.xml’, debemos:
1. Eliminar la indexación previa realizada. Para ello, seleccionar ‘Core Admin’ en el menú izquierdo, seleccionar luego la colección/core ‘pruebadfr’ y hacer clic en ‘Unload’.
2. Borrar el subdirectorio COMPLETO ‘data’ en la ruta: $SOLR_INSTALL\example\pruebadfr\data
3. Crear un nuevo subdirectorio ‘data’ COMPLETAMENTE VACÍO en: $SOLR_INSTALL\example\pruebadfr\data
47 4. Hacer clic en ‘Add Core’ y rellenar el formulario como sigue:
Name: pruebadfr
instanceDir: $SOLR_INSTALL\example\pruebadfr dataDir: $SOLR_INSTALL\example\pruebadfr\data
config: $SOLR_INSTALL\example\pruebadfr\conf\solrconfig.xml
schema: $SOLR_INSTALL\example\pruebadfr\conf\managed-schema.xml
5. Reindexar la colección/core ‘pruebadfr’ conforme al nuevo archivo de configuración. Para ello, se puede consultar el epígrafe ‘Indexación de documentos’.
EJERCICIO 15
Realizar las mismas búsquedas de los ejercicios 10, 11, 12, 13 y 14 con los valores indicados anteriormente para los parámetros del modelo DFR.
SOLUCIÓN EJERCICIO 15 obsolescence (11 documentos) 1. Art12 (2.5696652) 2. Art6 (2.1388435) 3. Art5 (2.069067) 4. Art8 (1.9504864) 5. Art20 (1.7083547)
+world +wide +web (2 documentos) 1. Art3 (7.339361)
48 -age (6 documentos) 1. art10 (1.0) 2. art11 (1.0) 3. art15 (1.0) 4. art16 (1.0) 5. art17 (1.0)
music citation (12 documentos) 1. art5 (6.194088)
2. art2 (2.152527) 3. art19 (1.9449873) 4. art7 (1.8756512) 5. art8 (1.6718856)
“random indexing” (1 documento) 1. art16 (6.9870324)
Por último, compararemos los resultados obtenidos con este modelo DFR de recuperación, introduciendo otros de los valores más habitualmente empleados en los parámetros del modelo.
Para ello, emplearemos una nueva colección/core ‘pruebadfr2’, siguiendo los pasos indicados en los epígrafes ‘Creación de una colección’ e ‘Indexación de
documentos’.
Una vez creada la colección/core ‘puebadfr2’, cambiaremos los parámetros correspondientes en el archivo:
$SOLR_INSTALL\example\pruebadfr2\conf\managed-schema.xml
Modificamos, pues, el final de dicho archivo con estos nuevos valores (es otra de las opciones más frecuentes):
49 <similarity class=”solr.DFRSimilarityFactory”>
<str name=”basicModel” >I(F)</str> <str name=”afterEffect”>B</str> <str name=”normalization”>H2</str>
</similarity> [[esta opción no incluye el parámetro c]]
Una vez guardados los cambios efectuados en el archivo ‘managed-schema.xml’, debemos:
1. Eliminar la indexación previa realizada. Para ello, seleccionar ‘Core Admin’ en el menú izquierdo, seleccionar luego la colección/core ‘pruebadfr’ y hacer clic en ‘Unload’.
2. Borrar el subdirectorio COMPLETO ‘data’ en la ruta: $SOLR_INSTALL\example\pruebadfr2\data
3. Crear un nuevo subdirectorio ‘data’ COMPLETAMENTE VACÍO en: $SOLR_INSTALL\example\pruebadfr2\data
4. Hacer clic en ‘Add Core’ y rellenar el formulario como sigue: Name: pruebadfr2
instanceDir: $SOLR_INSTALL\example\pruebadfr2 dataDir: $SOLR_INSTALL\example\pruebadfr2\data
config: $SOLR_INSTALL\example\pruebadfr2\conf\solrconfig.xml
schema: $SOLR_INSTALL\example\pruebadfr2\conf\managed-schema.xml
5. Reindexar la colección/core ‘pruebadfr2’ conforme al nuevo archivo de configuración. Para ello, se puede consultar el epígrafe ‘Indexación de documentos’.
Para observar los efectos de los nuevos valores de los parámetros en el modelo DFR, podemos repetir las mismas búsquedas de los ejercicios 10, 11, 12, 13 y 14.
50
EJERCICIO 16
Realizar las mismas búsquedas de los ejercicios 10, 11, 12, 13 y 14 con los nuevos valores de los parámetros en el modelo DFR.
SOLUCIÓN EJERCICIO 16 obsolescence (11 documentos) 1. Art12 (2.4362729) 2. Art6 (2.4346235) 3. Art8 (2.4220448) 4. Art5 (2.4219515) 5. Art20 (2.4130495)
+world +wide +web (2 documentos)
1. Art4 (7.907995) 2. Art3(7.856372) -age (6 documentos) 1. art10 (1.0) 2. art11 (1.0) 3. art15 (1.0) 4. art16 (1.0) 5. art17 (1.0)
music citation (12 documentos) 1. art5 (11.8688)
2. art3 (8.86081) 3. art2 (2.4717107) 4. art7 (2.4685993) 5. art19 (2.4673855)
“random indexing” (1 documento) 1. art16 (4.5451574)
51
INDRI
Instalación, apertura y cierre de Indri en Windows
En este taller emplearemos la última versión disponible del programa Indri en el momento de escribir estas líneas, en concreto la versión 5.12, que puede descargarse desde la página https://sourceforge.net/projects/lemur/ , haciendo clic sucesivamente en ‘Files’, ‘lemur’, ‘indri 5.12’, y finalmente en ‘Indri-5.12-win64-install.exe’. En el directorio por defecto de descargas observaremos que se ha descargado el fichero ‘Indri-5.12-win64-install.exe’.
Una vez allí, basta hacer doble clic en el archivo ‘Indri-5.12-win64-install.exe’. Pulsar ‘Aceptar’ en la ventana de licencia de uso, y seleccionar posteriormente ‘Base’ en el tipo de instalación. A continuación, elegir el directorio de instalación por defecto. En nuestro caso, elegiremos el directorio ‘Indri’ que hemos creado previamente en el Escritorio/Desktop, por lo que en el ‘Destination Folder’ pondremos:
C:\Users\Juan\Desktop\Indri
Hacemos clic en el botón ‘Install’. El programa Indri no necesita más tareas para su instalación.
En adelante denominaremos $INDRI_INSTALL a la ruta donde hayamos situado la carpeta ‘Indri’ con el programa; en nuestro caso, la ruta hasta llegar a la carpeta ‘Indri’. Por tanto, de ahora en adelante:
En Windows, $INDRI_INSTALL es equivalente a
52 Antes de empezar a utilizar el programa, es IMPRESCINDIBLE que el usuario que utiliza el programa Indri tenga CONTROL TOTAL; ESTO ES, EL USUARIO QUE UTILIZARÁ EL PROGRAMA DEBE TENER TODOS LOS PERMISOS DE ESCRITURA, CREACIÓN, ELIMINACIÓN Y EJECUCIÓN, NO SOLO DE LECTURA, SOBRE EL DIRECTORIO DE INSTALACIÓN ‘Indri’ Y TODOS LOS SUBDIRECTORIOS Y ARCHIVOS BAJO ÉL.
La propiedad y el control total sobre el subdirectorio ‘Indri’ puede conseguirse de dos maneras esencialmente: a través de la interfaz gráfica y a través de comandos.
La propiedad y el control total de la carpeta ‘Indri’ a través de la interfaz gráfica se consigue haciendo clic con el botón derecho en el directorio/carpeta ‘Indri’. Seleccionar ‘Propiedades’ y a continuación elegir el apartado ‘Seguridad’. Dentro de él, hacer clic en ‘Opciones avanzadas’ y luego en ‘Propietario’. Comprobar que el propietario que figura es el usuario que va a utilizar el programa; en nuestro caso, ‘JUAN-HP\juan’. Si no lo es, pulsar en ‘Editar’ para modificarlo. A su vez, dentro de ‘Opciones avanzadas’, junto a ‘Propietario’ figura el apartado ‘Permisos efectivos’. Al hacer clic en ‘Seleccionar’ el ‘Nombre de grupo o de usuario’, en el área de texto debemos teclear el mismo usuario propietario; en nuestro caso, ‘JUAN-HP\juan’. Aparecerán en pantalla los permisos para dicho usuario. Si no están marcados, deberán marcarse todas las opciones que se muestren en pantalla. Finalmente, hacer clic sucesivamente en ‘Aceptar’ hasta cerrar todas las pantallas abiertas. Debe advertirse que este proceso debe repetirse con cada uno de los subdirectorios y archivos dentro de la carpeta ‘Indri’. La propiedad y el control total de la carpeta ‘Indri’ a través de comandos puede conseguirse ejecutando en un TERMINAL, CONSOLA o LÍNEA DE COMANDOS (para la apertura de un terminal o línea de comandos, ver el apartado ‘Apertura de una consola, terminal o línea de comandos’) los siguientes comandos que figuran en negrita (debe ponerse especial cuidado en introducir los espacios correctamente):
53
takeown /f C:\Users\juan\Desktop\Indri\* /r
[[Este comando realiza el cambio de propietario]]
cd C:\Windows\System32\es-ES
[[Nos vamos al directorio donde se encuentre el comando ‘icacls’]]
icacls C:\Users\juan\Desktop\Indri /grant JUAN-HP\juan:F /t
[[Este comando otorga control total a la carpeta ‘Indri’ de manera recursiva]]
[[NOTA BENE: Si diese error introduciendo el comando ‘icacls’ de esta manera, pruebe a introducir el nombre del propietario por su abreviatura, tal como figura en el apartado ‘Propietario’. En nuestro caso, se introduciría ‘juan’ en lugar de ‘JUAN-HP\juan’]]
54
Indexación de una colección
Para poder utilizar el motor de búsqueda Indri se debe cumplir una condición previa, la existencia de una colección de documentos sobre la que recuperar.
Para este taller elegiremos una colección de prueba ‘WebAP’, guardada en un único fichero, que ponen a nuestra disposición los desarrolladores del buscador Indri. Para ello, ir a la dirección:
https://ciir.cs.umass.edu/downloads/WebAP/index.html
Y hacer clic en el archivo ‘WebAP tar gzip archive’. Una vez descargado en el directorio de nuestra preferencia (en nuestro caso, en el mismo Escritorio/Desktop), lo descomprimimos en ese mismo directorio hasta obtener una carpeta denominada ‘WebAP’, que consta de un archivo ‘README’ y de una carpeta ‘gradedText’ que consta, a su vez, de dos archivos con una colección de consultas (ficheros ‘gov2.queriesAllRawFile’ y ‘gov2.query.json’) y un único archivo con toda la colección de documentos (fichero ‘grade.trectext_patched’).
No debemos crear previamente el subdirectorio donde acoger el fichero inverso de la colección, pues el programa lo hará por nosotros al indexar la colección. En cualquier caso, sí debemos tener pensado el nombre y localización de dicho subdirectorio/carpeta.
La creación del fichero inverso/índice de la colección se puede llevar a cabo por dos procedimientos: por línea de comandos y por interfaz gráfica. Nosotros aquí lo haremos por línea de comandos, por ser el procedimiento más habitual.
Como hemos dicho anteriormente, decidimos primeramente el nombre y localización del subdirectorio donde se guardará el fichero inverso. En nuestro caso, optamos por una carpeta denominada ‘salida1’ bajo el directorio ‘Indri’. En este subdirectorio el programa almacenará el índice correspondiente a la colección de documentos elegida previamente (WebAP). Pero NO LO CREAMOS PREVIAMENTE, pues el programa lo creará en el momento de la indexación.
55 En el caso de indexación por línea de comandos, es imprescindible crear un fichero XML que incluya los parámetros que deben utilizarse en dicho proceso, básicamente los dos indicados anteriormente: la colección que va a emplearse y dónde almacenar el índice/fichero inverso.
Para ello, creamos el siguiente archivo (que posteriormente denominaremos ‘parameter1.txt’) en un documento de texto SIN FORMATO ALGUNO (Con el bloc de notas, por ejemplo):
<parameters> <memory>512m</memory> <index>C:/Users/juan/Desktop/Indri/salida1/</index> <corpus> <path>C:\Users\juan\Desktop\WebAP\gradedText\grade.trectext_patched</path> <class>trectext</class> </corpus> <field><name>docno</name></field> </parameters>
[[NOTA BENE: Es importante NO INTRODUCIR NINGÚN ESPACIO dentro de las líneas de texto en este archivo. Por tanto, los caracteres deben ir seguidos desde el carácter inicial ‘<’ hasta el carácter final ‘>’ DENTRO DE CADA UNA DE LAS LÍNEAS]]
Con este archivo efectuamos una indexación por defecto que no incluye ningún proceso en el análisis (ni eliminación de palabras vacías ni stemming o reducción morfológica). Posteriormente veremos cómo incluir dichos procesos en la indexación.
Una vez creado el archivo, lo guardamos con el nombre ‘parameter1.txt’ en un directorio de nuestra elección. En nuestro caso, lo guardamos en
56 A continuación abrimos una consola o terminal (para la apertura de una consola, terminal o línea de comandos, ver el apartado ‘Apertura de una consola, terminal o línea de comandos’), tecleando los siguientes comandos (que figuran en negrita):
cd $INDRI_INSTALL\bin
[[en nuestro caso: ‘C:\Users\juan\Desktop\Indri\bin’]]
IndriBuildIndex C:\Users\juan\Desktop\parameter1.txt
El sistema responderá con un mensaje semejante al siguiente: 0:00: Created repository C:/Users/juan/Desktop/Indri/salida1/ Adding docno to trectext as an indexed field
Adding docno to trectext as an included tag
0:00: Opened C:\Users\juan\Desktop\WebAP\gradedText\grade.trectext_patched 0:32: Documents parsed: …… Documents indexed: …….
0:32: Closed C:\Users\juan\Desktop\WebAP\gradedText\grade.trectext_patched 0:32: Closing index
0:34: Finished