practica5 final

54
RECUPERACIÓN AUTOMATIZADA DE LA INFORMACIÓN 11 de marzo de 2010 INDIZACIÓN AUTOMATIZADA Practica 5 Raquel Carretero Bailón Licenciatura en Documentación Universidad de Salamanca

Upload: raquel-carretero

Post on 04-Jul-2015

422 views

Category:

Education


3 download

TRANSCRIPT

Page 1: Practica5 final

RECUPERACIÓN AUTOMATIZADA DE LA INFORMACIÓN

11 de marzo de 2010

INDIZACIÓN AUTOMATIZADA

Practica 5

Raquel Carretero Bailón

Licenciatura en Documentación

Universidad de Salamanca

Page 2: Practica5 final

I

ÍNDICE

1. INTRODUCCIÓN ..................................................................................................................... 1

2. Entorno .................................................................................................................................. 2

a. Conéctese a su cuenta en FENIX.USAL.ES. ............................................................................ 2

b. Cree un subdirectorio de nombre practica05. ...................................................................... 2

c. Copie en ese directorio los ficheros docs.xml y docs.dtd que se encuentran en directorio /home/rai ...................................................................................................................................... 3

d. Vea el contenido de ambos ficheros ..................................................................................... 3

e. Compruebe que el fichero docs.xml es válido mediante la orden (ejecute xml val -help para obtener ayuda sobre la opción val de xml) ........................................................................... 4

3. Comando de extracción de campos en documentos XML .................................................... 5

a. Utilice la orden siguiente para extraer el contenido del campo TITULO del primer DOC del fichero ........................................................................................................................................... 5

b. Si quiere obtener el título de los primeros tres documentos (&lt; es la entity de <): .......... 6

c. Si quiere obtener los titulos de los documentos 5, 6, 8, 10, 14, 15, 18 y 20 ........................ 7

4. Comandos de sustitución de texto ........................................................................................ 8

a. Busque ayuda de la utilidad tr (man tr) ................................................................................ 8

5. Comandos para ordenar y contar palabras ......................................................................... 13

a. Obtenga ayuda del comando sort y del comando uniq, y luego ejecute:........................... 13

b. Si queremos ordenarlos por el número de apariciones en orden de más a menos frecuente: .................................................................................................................................... 14

6. Ejercicios .............................................................................................................................. 15

a. Utilice el fichero ibersid2001.doc y conviértalo a fichero plano ...................................... 15

b. Obtenga todas las palabras del documento anterior ......................................................... 15

c. Obtenga la frecuencia de aparición de cada palabra del fichero ibersid2001.txt .............. 17

d. Ley de Zipf ........................................................................................................................... 18

e. Seleccione las palabras que puedan ser vacías ................................................................... 22

f. Aplique lematización utilizando los lematizadores para el español que se indican ........... 26

7. CONCLUSIONES ................................................................................................................... 47

8. BIBLIOGRAFÍA ...................................................................................................................... 48

Page 3: Practica5 final

II

ÍNDICE IMÁGENES

Ilustración1 Conexión fénix.usal.es ....................................................................................... 2

Ilustración2 Copiar en el directorio docs.dtd/docs.xml ........................................................ 3

Ilustración3 Contenido fichero .............................................................................................. 3

Ilustración4 Buscar ayuda ..................................................................................................... 4

Ilustración5 Validación fichero docs.xml............................................................................... 4

Ilustración6 Extracción del campo Título .............................................................................. 5

Ilustración7 Título tres primeros documentos ...................................................................... 6

Ilustración8 Extracción de campos títulos 5,6,8,10 .............................................................. 7

Ilustración9 Sustitución de caracteres .................................................................................. 8

Ilustración10 Mayúsculas/minúsculas ................................................................................ 8

Ilustración11 Mayúsculas/minúsculas (II) ........................................................................... 9

Ilustración12 Mayúsculas/minúsculas (III) .......................................................................... 9

Ilustración13 Sustitución caracteres acentuados ............................................................. 10

Ilustración14 Sustitución signos de puntuación por + ...................................................... 10

Ilustración15 Sustitución signos de puntuación por espacios en blanco .......................... 10

Ilustración16 Sustitución signos de puntuación por “_” ................................................... 11

Ilustración17 Sustitución signos de puntuación por “__” ................................................ 11

Ilustración18 Sustitución signos puntuación “_” .............................................................. 11

Ilustración19 Sustitución signos de puntuación por saltos de línea ................................. 12

Ilustración20 Sustitución signos de puntuación por saltos de línea y ordenación ........... 12

Ilustración21 Palabra por línea ......................................................................................... 12

Ilustración22 Comandos sort y uniq .................................................................................. 13

Ilustración23 Número de apariciones ............................................................................... 14

Ilustración24 Palabras totales ibersid2001.txt .................................................................. 15

Ilustración25 Palabras únicas documento ibersid2001.txt ............................................... 16

Ilustración26 Para cada título de manera independiente ................................................. 17

Ilustración27 Filezilla ......................................................................................................... 19

Ilustración28 Ley de Zipf I ................................................................................................. 19

Ilustración29 Ley de Zipf II ................................................................................................ 19

Ilustración30 Ley de Zipf III ............................................................................................... 20

Ilustración31 Ley de Zipf V ................................................................................................ 20

Ilustración32 Ley de Zipf VII .............................................................................................. 20

Page 4: Practica5 final

III

Ilustración33 Ley de Zipf VIII ............................................................................................. 21

Ilustración34 Ley de Zipf IX ............................................................................................... 21

Ilustración35 Listado de palabras vacúas .......................................................................... 22

Ilustración36 Excel palabras vacías ................................................................................... 25

Ilustración37 Listado de palabras contenidas en ibersid2001.txt ..................................... 26

Ilustración38 Stemmer simple .......................................................................................... 27

Ilustración39 Stemmer wc -w............................................................................................ 28

Ilustración40 snowball ...................................................................................................... 29

Ilustración41 snowball wc -w ............................................................................................ 29

Ilustración42 Contar palabras antes y después ................................................................ 30

Page 5: Practica5 final

IV

ÍNDICE TABLAS

1. Tabla Diferencias lematización ................................................................................. 46

Page 6: Practica5 final

V

RESUMEN

Como conseguir una recuperación efectiva de información, relevante, que se acople a las necesidades del usuario, utilizando diferentes herramientas para realizar una indización automática.

PALABRAS CLAVE

Palabras vacías, indización automática, lematización, simple-stemming, stemming-snowball

Page 7: Practica5 final

1

1. INTRODUCCIÓN

La indización automática es la selección de un conjunto de términos que representen íntegramente un documento (texto, imagen, sonido) por medio de un programa informático. Hasta finales de la década de 1950, la indización se venía realizando en las Bibliotecas y Centros de Documentación de manera intelectual. Desde entonces se viene trabajando en automatizar esta tarea. Algunas de los mecanismos que vienen utilizando los programas informáticos para conseguir una indización automática son las siguientes:

• Convertir la cadena de entrada a minúsculas

• Convertir acentos a formas no acentuadas

• Convertir la cadena de entrada en palabras, una en cada línea

• Eliminar palabras vacias

• Aplicar lematizacion utilizando un par de lematizadores

Page 8: Practica5 final

2

2. Entorno

a. Conéctese a su cuenta en FENIX.USAL.ES. Tal y como hemos hecho en las anteriores prácticas nos conectamos a nuestra cuenta de fénix.usal.es sin olvidar cambiar el idioma antes de hacerlo.

Ilustración1 Conexión fénix.usal.es

b. Cree un subdirectorio de nombre practica05.

Utilizamos el comando mkdir seguido del nombre que queramos asignarle, en nuestro caso, practica04, tal que quede de la siguiente manera: mkdir practica05. Una vez realizado este paso, nos introducimos en el subdirectorio recién creado con el comando cd practica05

Page 9: Practica5 final

3

c. Copie en ese directorio los ficheros docs.xml y docs.dtd que se encuentran en directorio /home/rai

Para llevar a cabo este proceso, es necesario introducir los siguientes comandos: cp home/rai/docs.xml, cp home/rai/docs.dtd

Ilustración2 Copiar en el directorio docs.dtd/docs.xml

d. Vea el contenido de ambos ficheros

Para ver el contenido de los ficheros docs.dtd, así como docs.xml, debemos introducir el comando, ya visto anteriormente en otras prácticas, “more”, seguido del nombre correspondiente, o en su defecto el comando ” less” seguido también del nombre correspondiente, tal como aparece en la imagen inferior.

Ilustración3 Contenido fichero

Page 10: Practica5 final

4

e. Compruebe que el fichero docs.xml es válido mediante la orden (ejecute xml val -help para obtener ayuda sobre la opción val de xml)

Ilustración4 Buscar ayuda

Después de comprobar, utilizando la ayuda, cual es la orden que nos interesa ejecutar para poder dar validez al fichero docs.xml, hemos llegado a la conclusión de que la sentencia a utilizar sería: xml val -E docs.xml

Ilustración5 Validación fichero docs.xml

Tal como apreciamos en la captura de pantalla nos muestra que el fichero docs.xml es válido.

Page 11: Practica5 final

5

3. Comando de extracción de campos en documentos XML

a. Utilice la orden siguiente para extraer el contenido del campo TITULO del primer DOC del fichero

xml sel -E "iso8859-1" -T -t -c "/DTT/DOC[1]/TITULO" docs.xml -T :eliminar etiquetas

Ilustración6 Extracción del campo Título

Page 12: Practica5 final

6

b. Si quiere obtener el título de los primeros tres documentos (&lt; es la entity de <):

xml sel -E "iso8859-1" -T -t -c "/DTT/DOC[position() &lt;=3]/TITULO" docs.xml

Ilustración7 Título tres primeros documentos

Page 13: Practica5 final

7

c. Si quiere obtener los titulos de los documentos 5, 6, 8, 10, 14, 15, 18 y 20

Para logralo debemos ejecutar la siguiente orden, de tal modo que queden incluidos todos los documentos, y esto se consigue separándolos por el operador OR.

xml sel -E "iso8859-1" -T -t -c "/DTT/DOC[position()=5 or position()=6 or position()=8 or position()=10 or position()=14 or position()=15 or position()=18 or position()=20]/TITULO" docs.xml

Ilustración8 Extracción de campos títulos 5,6,8,10

Page 14: Practica5 final

8

4. Comandos de sustitución de texto

a. Busque ayuda de la utilidad tr (man tr) .

Realice los siguientes ejemplos para ver su uso. La utilidad tr se utiliza normalmente en modo tubería, es decir, tomando la salida de un comando como entrada para tr. En los siguientes ejemplos recuerde que el comando echo simplemente muestra en pantalla la cadena de texto entrecomillada: esa cadena se utiliza como entrada para el comando tr.

echo 'casa' | tr a e Con esta sentencia se sustituye el carácter “a” por el carácter “e”

Ilustración9 Sustitución de caracteres

echo 'El Señor de los Anillos' | tr A-Z a-z Con esta sentencia, cualquier carácter en mayúsculas aparecerá en minúsculas.

Ilustración10 Mayúsculas/minúsculas

Page 15: Practica5 final

9

echo 'El SEÑOR de los Anillos' | tr A-Z a-z Con esta sentencia, al igual que en el caso anterior, mostrará todos los caracteres en minúsculas.

Ilustración11 Mayúsculas/minúsculas (II)

echo 'El SEÑOR de los Anillos' | tr [:upper:] [:lower:] Esta sentencia es otra forma de llevar a cabo la orden anterior, es decir, convertir los caracteres de mayúsculas (upper) a minúsculas (lower).

Ilustración12 Mayúsculas/minúsculas (III)

Page 16: Practica5 final

10

echo '¡Qué! No. Adiós, María.' | tr aéíóúü aeiou Con esta sentencia cualquier carácter que aparezca acentuado aparecerá sin acentuar.

Ilustración13 Sustitución caracteres acentuados

echo '¡Qué! No. Adiós, María.' | tr [:punct:] + Con esta sentencia se sustituyen los signos de puntuación por el símbolo “+”

Ilustración14 Sustitución signos de puntuación por +

echo '¡Qué! No. Adiós, María.' | tr -d [:punct:] Con esta sentencia se sustituyen los signos de puntuación por espacios en blanco

Ilustración15 Sustitución signos de puntuación por espacios en blanco

Page 17: Practica5 final

11

echo '¡Qué! No. Adiós, María.' | tr [:punct:] '_' Con esta sentencia se sustituyen los signos de puntuación por el símbolo “_”

Ilustración16 Sustitución signos de puntuación por “_”

echo '¡Qué! No. Adiós, María.' | tr ' [:punct:]' '_' Con esta sentencia se sustituyen los signos de puntuación por el símbolo “_”

Ilustración17 Sustitución signos de puntuación por “__”

echo '¡Qué! No. Adiós, María.' | tr -s ' [:punct:]' '_' Con esta sentencia se sustituyen los signos de puntuación por el símbolo “__” *

Ilustración18 Sustitución signos puntuación “_”

Page 18: Practica5 final

12

echo '¡Qué! No. Adiós, María.' | tr -s ' [:punct:]' '\n' Con esta sentencia sustituye cada signo de puntuación por un salto de línea, y ordena.

Ilustración19 Sustitución signos de puntuación por saltos de línea

echo 'El holandés errante, el elegante, dijo hola sobre la ola, en el barco de Lola' | tr -s ' [:punct:]' '\n' Estamos en el mismo caso que el anterior ejemplo.

Ilustración20 Sustitución signos de puntuación por saltos de línea y ordenación

echo 'El holandés errante, el elegante, dijo hola sobre la ola, en el barco de Lola' | tr -cs ' [:alnum:]' '\n' . Con esta sentencia sustituye los espacios por saltos de línea y signos de puntuación, de tal modo que en cada línea tenemos una palabra.

Ilustración21 Palabra por línea

Page 19: Practica5 final

13

5. Comandos para ordenar y contar palabras

A partir de un texto, el objetivo es obtener una palabra en cada línea, luego ordenarlas y contar las ordenadas, de esa manera tendremos las palabras del texto junto con su frecuencia de aparición.

a. Obtenga ayuda del comando sort y del comando uniq, y luego ejecute: echo 'mi fa sol do si si la la sol sol la si do sol' | tr ' ' '\n' | sort

echo 'mi fa sol do si si la la sol sol la si do sol' | tr ' ' '\n' | sort | uniq

echo 'mi fa sol do si si la la sol sol la si do sol' | tr ' ' '\n' | sort | uniq –c

Ilustración22 Comandos sort y uniq

Uniq: muestra en la pantalla una lista de palabras de tal manera que si una palabra es igual a la siguiente no la pone.

Sort: para ordenar

-c: para contar

Page 20: Practica5 final

14

b. Si queremos ordenarlos por el número de apariciones en orden de más a menos frecuente:

echo 'mi fa sol do si si la la sol sol la si do sol' | tr ' ' '\n' | sort | uniq -c | sort -n –r retorno de carro?

-n: salto de línea

-r: retorno de carro

Ilustración23 Número de apariciones

Page 21: Practica5 final

15

6. Ejercicios

a. Utilice el fichero ibersid2001.doc y conviértalo a fichero plano

Con la utilidad wvText. almacene el resultado en un fichero de nombre ibersid2001.txt.

Como ya hemos visto en anteriores prácticas convierte las palabras de los documentos a texto plano, lo único que debemos hacer es introducir la siguiente orden, poniendo en primer lugar el nombre del documento que queremos convertir con su correspondiente extensión y tras “>”, el nombre del documento con la extensión nueva:

WvText ibersid2001.doc > ibersid2001.txt

b. Obtenga todas las palabras del documento anterior

Teniendo en cuenta que el texto debe estar en minúsculas y los acentos deben ser sustituidos por vocales no acentuadas. Cuente el número de palabras totales y el número de palabras únicas.

Palabras totales: cat ibersid2001.txt | tr [:upper:] [:lower:] | tr áéíóúü aeiouu | tr –cs '[:alnum:]' '\n' | wc –w

Ilustración24 Palabras totales ibersid2001.txt

Page 22: Practica5 final

16

Palabras únicas: cat ibersid2001.txt | tr [:upper:] [:lower:] | tr áéíóúü aeiouu | tr –cs '[:alnum:]' '\n' | sort | uniq | wc –w

Ilustración25 Palabras únicas documento ibersid2001.txt

Page 23: Practica5 final

17

c. Obtenga la frecuencia de aparición de cada palabra del fichero ibersid2001.txt

Tteniendo en cuenta que el texto debe estar en minúsculas y los acentos deben ser sustituidos por vocales no acentuadas. Debe ordenar el resultado por frecuencia de aparición.

Nota: dado que seguramente no verá todas las palabras, redirija la salida para tener un fichero de nombre ibersid2001.frec.txt.

Ilustración26 Para cada título de manera independiente

Page 24: Practica5 final

18

d. Ley de Zipf

La llamada Ley de Zipf, formulada en la década de los cuarenta por el lingüista de Harvard George Kingsley Zipf (1902-1950), afirma que un pequeño número de palabras son utilizadas con mucha frecuencia, mientras que frecuentemente ocurre que un gran número de palabras son poco empleadas. Esta afirmación, expresada matemáticamente quedaría de la siguiente forma:

donde Pn representa la frecuencia de una palabra ordenada n-ésima y a es casi 1. Esto significa que el segundo elemento se repetirá aproximadamente con una frecuencia de 1/2 de la del primero, y el tercer elemento con una frecuencia de 1/3 y así sucesivamente. Una ley no empírica, pero más precisa, derivada de los trabajos de Claude Shannon fue descubierta por Benoît Mandelbrot.

En definitiva viene a decir que en todas las lenguas conocidas la longitud de las palabras es inversamente proporcional a su frecuencia de aparición (cuantas más veces aparece una palabra en un idioma, más corta es). Muchos lenguajes artificiales como los élficos de Tolkien o el Klingon de Star Trek no cumplen esta regla. Esto es debido a que la explicación a esta ley se basa en la economía lingüística: las palabras que más utilizamos son más cortas y así requieren menos energía, por ello es el uso de una lengua el que acaba por imponer esta ley.

Utilice Excel u OpenOffice Calc para representar la información que ha obtenido, y verifique que la frecuencia de aparición de los términos de este documento siguen una distribución zipfiana. Intente conseguir la regresión logarítmica de los puntos representados (la curva que se ajusta a dichos puntos, según la ley de Zipf)

▪ Nota: tiene la hoja de cálculo en Studium con el nombre ibersid2001.xls

Page 25: Practica5 final

19

Ilustración27 Filezilla

Utilizamos el Filezilla para disponer del documento, vamos a Excel y abrimos.

Ilustración28 Ley de Zipf I

Ilustración29 Ley de Zipf II

Hay que representar la frecuencia frente al orden

Page 26: Practica5 final

20

Ilustración30 Ley de Zipf III

Asistente para gráficos

Ilustración31 Ley de Zipf V

Insertamos el gráfico al que hemos llamado “Ley de Zipf”

Ilustración32 Ley de Zipf VII

Primeramente me posiciono en el eje X

Page 27: Practica5 final

21

Ilustración33 Ley de Zipf VIII

A continuación se realiza la misma operación solo que esta vez con el eje Y. Tras esto, en el gráfico se pulsa la opción “agregar línea de tendencia” (potencial)

Ilustración34 Ley de Zipf IX

Para verlo solo hay que posicionarse sobre la línea y seleccionar “mostrar gráfico de la ecuación”

Page 28: Practica5 final

22

e. Seleccione las palabras que puedan ser vacías

Luego compare la lista que ha obtenido con una lista estandar Elimine las palabras que considere vacias del fichero ibersid.frec.txt.

Ilustración35 Listado de palabras vacúas http://members.unine.ch/jacques.savoy/clef/spanishSmart.txt).

Page 29: Practica5 final

23

1. El 2. La 3. De 4. En 5. Que 6. Los 7. Y 8. Es 9. Se 10. a 11. Una 12. Un 13. Para 14. Del 15. Con 16. Por 17. Como 18. Mas 19. No 20. Las 21. Of 22. Cada 23. And 24. Al 25. De 26. Uno 27. In 28. J 29. Puede 30. G 31. Esta 32. C 33. Así 34. También 35. Otros 36. Parte 37. Si 38. O 39. N 40. Este 41. D 42. Sus 43. Su 44. R 45. I

46. I 47. Han 48. Entre 49. Aquellos 50. Son 51. Pueden 52. Otro 53. Mayor 54. Lo 55. Esto 56. Tanto 57. Sido 58. Poco 59. Pero 60. M 61. Ese 62. Esa 63. Decir 64. Debe 65. Mismo 66. Manera 67. Dado 68. Cuenta 69. W 70. Través 71. Tiene 72. Tener 73. Tales 74. Primera 75. Poder 76. Ri 77. P 78. Nuevos 79. Nuevo 80. Nueva 81. Nj 82. New 83. Hace 84. Etc 85. Et 86. Esos 87. Ello 88. Ellas 89. E 90. Dos

91. Cual 92. B 93. Aunque 94. Además 95. Ya 96. Verse 97. Unos 98. Tras 99. Todos 100. Todas 101. Toda 102. Solo 103. Sino 104. Sin 105. Siendo 106. Seria 107. Ser 108. Según 109. S 110. Q 111. Primeros 112. Primero 113. Otra 114. On 115. Nuestra 116. Ningún 117. Nada 118. Muy 119. Muchos 120. Mucho 121. More 122. Mejor 123. Mediante 124. Le 125. K 126. Is 127. Hemos 128. Ha 129. Fue 130. Donde 131. Desde 132. By 133. Alguna 134. 1992b 135. With

Page 30: Practica5 final

24

136. Where 137. Veces 138. Unas 139. To 140. Tienen 141. Those 142. This 143. They 144. These 145. Then 146. Their 147. That 148. Tf 149. Tendrán 150. Tal 151. Sobre 152. Siguientes 153. Siguiente 154. Sigue 155. Siempre 156. Segundo 157. Second 158. Sean 159. Sea 160. Podría 161. Podrá 162. Podemos 163. Otras 164. Other 165. Nr 166. Mismos 167. Misma 168. Menos 169. Mejores 170. Miles 171. Md 172. L 173. Lado 174. Junto 175. Igual 176. Hoy 177. Hay 178. Gran 179. Fueron 180. For

181. F 182. Estas 183. Esas 184. Entonces 185. Ed 186. Diversos 187. Dicho 188. Df 189. Dentro 190. Demás 191. Deben 192. Dar 193. Cuyos 194. Cuyo 195. Cuarto 196. Cierto 197. Casi 198. Better 199. Bastantes 200. Bastante 201. Are 202. Aquí 203. Aquellas 204. Ambas 205. Algunos 206. Algún 207. Ad 208. Acm 209. Fin 210. An 211. Ambos 212. 1992ª 213. Unos 214. Pues 215. Partir 216. Obstante 217. Ik 218. Existen 219. By 220. Frente 221. Estos

Page 31: Practica5 final

25

Ilustración36 Excel palabras vacías

Page 32: Practica5 final

26

f. Aplique lematización utilizando los lematizadores para el español que se indican

Un s-stemmer para el espanol que elimina terminaciones aplicando las siguientes reglas en el orden que se indican: • si la palabra termina en -eses, sustituya por -es (p.e., corteses → cortes) • si la palabra termina en -es, sustituya por -z (p.e., veces → vez) • elimine las terminaciones -as, -es y -os • elimine las terminaciones -a, -e y –o ▪ Un suffix-stripping denominado Snowball, muy utilizado para gran cantidad de idiomas. Para mas informacion, conectese a http://snowball.tartarus.org/.

Ilustración37 Listado de palabras contenidas en ibersid2001.txt

cat ibersid2001.txt | tr [:upper:] [:lower:] | tr áéíóúü aeiouu | tr -cs '[:alnum:]' '\n' |sort |uniq | more

Page 33: Practica5 final

27

Redirijo a ibersid2001.palabras.txt, lo pasaré por un stemmer simple. Asi obtengo las palabras lematixadas con el lematizador simple.

Debemos crear un fichero .txt que contenga el listado de palabras resultante después de eliminar las palabras vacías y pasarlo a través de filezilla a práctica05 para poder trabajar sobre él.

Stemming es un método para reducir una palabra a su raíz o mejor a un stem o tema. Hay algunos algoritmos de stemming que ayudan en sistemas de recuperación de información. Stemming aumenta el recall que es una medida sobre el número de documentos que se pueden encontrar con una consulta. Por ejemplo una consulta sobre "bibliotecas" también encuentra documentos en los que solo aparezca "bibliotecario" porque el stem de las dos palabras es el mismo ("bibliotec").

cat ibersid2001.palabras.txt | stemmer-simple-spanish | more

Ilustración38 Stemmer simple

Para ver la diferencia entre los dos métodos, contamos los términos en ambos casos (wc –w). Con el stemmer simple observamos que nos devuelve un resultado de exactamente 650 palabras.

Page 34: Practica5 final

28

cat ibersid2001.palabras.txt | stemmer-simple-spanish | sort |uniq | wc -w

Ilustración39 Stemmer wc -w

Si quiero repetir el proceso pero con el snowball:

Se trata de un pequeño lenguaje para el manejo de strings que permite implementar algoritmos de normalización del lenguaje (steeming algorithms) mediante sencillos scripts. Posteriormente mediante un compilador se genera una salida en C o en Java.

Como en cualquier buscador de calidad pretendíamos conseguir que las consultas fueran case-insensitive y accent-insensitive. Pero además, en esta ocasión también queríamos que las búsquedas fueran independientes, hasta cierto punto, de las terminaciones morfológicas. Es decir, que se pudiera buscar indistintamente por "documentos ténicos" y "documentación técnica", o por "acceso", "accesible", "accesibilidad", etc.

Para eso necesitabamos implementar un algoritmo de normalización

(stemmer) que redujera los términos de la consulta a las unidades mínimas con significado léxico (lexemas). Este tipo de algoritmos, basados en el algoritmo de Porter

Page 35: Practica5 final

29

cat ibersid2001.palabras.txt | stemmer-snowball-spanish | more

Ilustración40 snowball

Para ver la diferencia entre los dos métodos, contamos los términos en ambos casos (wc –w). Con el snowball observamos que nos devuelve un resultado de exactamente 572 palabras

Ilustración41 snowball wc -w

Page 36: Practica5 final

30

Para contar las palabras que hay antes y después de eliminar las palabras vacías se introducen las órdenes que se muestran en la ilustración inferior.

Antes: 938

Después: 716

Ilustración42 Contar palabras antes y después

Importe estos tres ficheros (ibersid2001.palabras.txt, ibersid2001.lema1.txt e ibersid2001.lema2.txt) a una hoja de cálculo Excel y vea cómo han quedado los términos.

Lema1 Lema2 Inersid2001.palabras.txt

0

1

10

1074

109

145

15

16

1965

1968

1971

1977

0

1

10

1074

109

145

15

16

1965

1968

1971

1977

0

1

10

1074

109

145

15

16

1965

1968

1971

1977

Page 37: Practica5 final

31

1983

1987

1988

1990

1991

1992

1994

1998

2

200

2000

215

22

24

241

26

263

28

288

292

297

3

300

313

32

323

363

37008

392

4

41

461

467

5

500

513

523

53

6

7

70

8

94

abundant

acces

acepten

1983

1987

1988

1990

1991

1992

1994

1998

2

200

2000

215

22

24

241

26

263

28

288

292

297

3

300

313

32

323

363

37008

392

4

41

461

467

5

500

513

523

53

6

7

70

8

94

abund

acces

acept

1983

1987

1988

1990

1991

1992

1994

1998

2

200

2000

215

22

24

241

26

263

28

288

292

297

3

300

313

32

323

363

37008

392

4

41

461

467

5

500

513

523

53

6

7

70

8

94

abundante

acceso

acepten

Page 38: Practica5 final

32

acerc

actuand

acuerd

adding

adecuad

adecuad

adecuad

adicionalment

adolec

afzaz

ajustar

ajustaran

algorithms

algoritm

algoritm

allan

allow

allows

alons

alta

alto

alt

american

ampliament

angel

angul

annual

anteriorment

años

aparec

aparecer

aparicion

apartad

aplic

aplicacion

aplicacion

aplicand

aplicar

aplicars

aplic

application

approach

aproximacion

arrojar

articul

asignacion

acerc

actu

acuerd

adding

adecu

adecu

adecu

adicional

adolec

afzaz

ajust

ajust

algorithms

algoritm

algoritm

allan

allow

allows

alons

alta

alto

altos

americ

ampli

angel

angul

annual

anterior

años

aparec

aparec

aparicion

apart

aplic

aplicacion

aplic

aplic

aplic

aplic

aplic

application

approach

aproximacion

arroj

articul

asignacion

acerca

actuando

acuerdo

adding

adecuadas

adecuado

adecuados

adicionalmente

adolece

afzazo

ajustar

ajustaran

algorithms

algoritmo

algoritmos

allan

allow

allows

alonso

alta

alto

altos

american

ampliamente

angel

angulo

annual

anteriormente

años

aparece

aparecer

aparicion

apartado

aplica

aplicacion

aplicaciones

aplicando

aplicar

aplicarse

aplico

application

approaches

aproximacion

arrojara

articulos

asignacion

Page 39: Practica5 final

33

aspect

aspect

audit

aument

aumentar

automatic

automatic

baez

basandos

base

based

basicament

basic

basic

belkin

beneficios

berrocal

bethesd

bibliotec

binari

brev

buckley

busc

buscador

busqued

busqued

cabo

calcul

calcular

calcul

calcul

cantidad

capacidad

caracteristic

caracteristic

caracterizacion

caracterizador

caracterizar

carl

caso

cataloguing

categorizacion

cient

clas

classification

clav

aspect

aspect

audit

aument

aument

automatic

automat

baez

bas

bas

bas

basic

basic

basic

belkin

benefici

berrocal

bethesd

bibliotec

binari

brev

buckley

busc

buscador

busqued

busqued

cab

calcul

calcul

calcul

calcul

cantid

capac

caracterist

caracterist

caracterizacion

caracteriz

caracteriz

carl

cas

cataloguing

categorizacion

cient

clas

classification

clav

aspecto

aspectos

audit

aumenta

aumentar

automatic

automatica

baeza

basandose

base

based

basicamente

basico

basicos

belkin

beneficioso

berrocal

bethesda

biblioteca

binaria

breve

buckley

busca

buscadores

busqueda

busquedas

cabo

calcula

calcular

calculo

calculos

cantidad

capacidad

caracteristica

caracteristicas

caracterizacion

caracterizadores

caracterizar

carlos

caso

cataloguing

categorizacion

cientos

clase

classification

clave

Page 40: Practica5 final

34

cliffs

coincidir

coleccion

combinandol

comparar

complet

compondran

compon

component

comportamient

comput

computacion

computacional

comun

concept

concept

conceptualment

conclusion

concretars

conferenc

conjuncion

conjunt

conoc

conocid

conocid

conseguid

conseguir

consider

consideracion

considerad

consideran

considerars

consider

consigu

consiguiend

consist

consisten

consistency

constant

construccion

construy

consult

consult

consytency

contar

contendran

cliffs

coincid

coleccion

combin

compar

complet

compondr

compon

component

comport

comput

computacion

computacional

comun

concept

concept

conceptual

conclusion

concret

conferenc

conjuncion

conjunt

conoc

conoc

conoc

consegu

consegu

consider

consideracion

consider

consider

consider

consider

consig

consigu

cons

consist

consistency

constant

construccion

constru

consult

consult

consytency

cont

contendr

cliffs

coincidir

coleccion

combinandola

comparar

completo

compondran

compone

componentes

comportamiento

computa

computacion

computacional

comun

concepto

conceptos

conceptualmente

conclusiones

concretarse

conference

conjunciones

conjunto

conoce

conocidas

conocido

conseguida

conseguir

considera

consideracion

considerados

consideran

considerarse

considere

consigue

consiguiendo

consiste

consisten

consistency

constantes

construccion

construye

consulta

consultas

consytency

contar

contendran

Page 41: Practica5 final

35

contenid

continuacion

contrapuest

contrari

contribuyen

convencional

cosen

costos

creat

criteri

croft

cuadr

cual

cuand

cuent

curv

curv

data

debem

decidir

decirs

decrecient

definid

definitori

degre

demostrad

demuestr

departament

describ

describiend

describir

descripcion

descriptor

descrit

dese

desead

dese

destacabl

destacad

destacar

deteccion

determinad

determinad

determinad

determinar

devolviend

conten

continuacion

contrapuest

contrari

contribu

convencional

cosen

costos

creat

criteri

croft

cuadr

cual

cuand

cuent

curv

curv

dat

deb

decid

dec

decrecient

defin

definitori

degre

demostr

demuestr

departament

describ

describ

describ

descripcion

descriptor

descrit

dese

des

dese

destac

destac

destac

deteccion

determin

determin

determin

determin

devolv

contenido

continuacion

contrapuestas

contrario

contribuyen

convencional

coseno

costoso

creates

criterio

croft

cuadro

cuales

cuando

cuentas

curva

curvas

data

debemos

decidir

decirse

decreciente

definido

definitorias

degree

demostrado

demuestra

departamento

describe

describiendo

describir

descripcion

descriptor

descrito

desea

deseados

desee

destacable

destacado

destacar

deteccion

determinada

determinadas

determinado

determinar

devolviendo

Page 42: Practica5 final

36

devuelt

dia

diaz

diferent

dificil

difundid

direct

discriminacion

discriminar

discriminatori

diseñad

diseñar

disminuir

dispon

disponer

distinguir

distorsion

document

documentacion

document

document

documents

donn

dotars

ecuacion

editor

efectivament

efect

efectuad

efectuar

effect

efficient

eficienci

eficient

ejecutad

ejempl

ejempl

elaboracion

elaborar

electronic

element

element

element

elevad

eliminacion

eliminan

devuelt

dia

diaz

diferent

dificil

difund

direct

discriminacion

discrimin

discriminatori

diseñ

diseñ

disminu

dispon

dispon

distingu

distorsion

document

documentacion

document

document

documents

donn

dot

ecuacion

editor

efect

efect

efectu

efectu

effect

efficient

eficient

eficient

ejecut

ejempl

ejempl

elaboracion

elabor

electron

element

element

element

elev

eliminacion

elimin

devueltos

dia

diaz

diferentes

dificil

difundido

directo

discriminacion

discriminar

discriminatorio

diseñadas

diseñar

disminuir

dispone

disponer

distinguir

distorsiones

document

documentacion

documento

documentos

documents

donna

dotarse

ecuacion

editor

efectivamente

efecto

efectuada

efectuar

effect

efficient

eficiencia

eficientes

ejecutada

ejemplo

ejemplos

elaboracion

elaborar

electronico

element

elemento

elementos

elevado

eliminacion

eliminan

Page 43: Practica5 final

37

eliminarl

embarg

encontrad

encontrar

encontrars

engelwood

englewood

entrad

environment

escalar

escas

español

esperad

esquem

establecer

estandar

estim

estimacion

estimacion

estimar

estimarl

estimating

estudi

etiquetad

evaluacion

evaluation

evitar

examin

examinaron

exampl

exhaustividad

expansion

experimental

experimental

experimentaron

experiment

experiment

experiments

expres

expresad

extens

extraccion

extremadament

facultad

feedback

figu

elimin

embarg

encontr

encontr

encontr

engelwood

englewood

entrad

environment

escal

escas

español

esper

esquem

establec

estandar

estim

estimacion

estim

estim

estim

estimating

estudi

etiquet

evaluacion

evaluation

evit

examin

examin

exampl

exhaust

expansion

experimental

experimental

experiment

experiment

experiment

experiments

expres

expres

extens

extraccion

extrem

facult

feedback

fig

eliminarlo

embargo

encontrados

encontrar

encontrarse

engelwood

englewood

entrada

environment

escalar

escaso

español

esperado

esquemas

establecer

estandares

estima

estimacion

estimaciones

estimar

estimarlos

estimating

estudio

etiquetado

evaluacion

evaluation

evitar

examina

examinaron

examples

exhaustividad

expansion

experimental

experimentales

experimentaron

experimento

experimentos

experiments

expresa

expresadas

extensos

extraccion

extremadamente

facultad

feedback

figue

Page 44: Practica5 final

38

figuerol

figur

filtrad

finaliz

followed

form

formad

formad

formalment

forman

format

formul

formulacion

formulation

frak

francament

francisc

frecuenci

frequency

gast

general

gomez

grad

grams

grup

habrian

hall

harter

herramient

hert

hill

hoc

homogene

hooper

ide

identific

identify

idf

impact

impact

impid

implic

importanci

important

important

important

figuerol

figur

filtr

finaliz

follow

form

form

form

formal

form

format

formul

formulacion

formulation

frak

franc

francisc

frecuenci

frequency

gast

general

gomez

grad

grams

grup

habri

hall

hart

herramient

hert

hill

hoc

homogen

hoop

ide

identif

identify

idf

impact

impact

impid

implic

import

important

import

import

figuerola

figura

filtrado

finaliza

followed

forma

formada

formado

formalmente

forman

formato

formula

formulacion

formulation

frakes

francamente

francisco

frecuencia

frequency

gasto

general

gomez

grado

grams

grupo

habrian

hall

harter

herramientas

hert

hill

hoc

homogeneas

hooper

ideas

identifica

identify

idf

impact

impacto

impide

implica

importancia

important

importante

importantes

Page 45: Practica5 final

39

improvement

improving

incapaz

incluir

incluy

inconsistenci

increment

indexacion

indexer

indexing

indican

indicar

indic

indiz

ineficaz

informacion

informatic

informatic

information

informativ

informativ

ingl

inicial

inicial

initial

intent

interaccion

interaction

interfac

interfaz

interindexer

internal

internet

introduccion

introduction

invers

inversament

invers

invers

investigacion

jose

journal

keywords

lanzaron

larg

lematizacion

improvement

improving

incapac

inclu

inclu

inconsistent

increment

indexacion

index

indexing

indic

indic

indic

indic

ineficac

informacion

informat

informat

information

inform

inform

ingles

inicial

inicial

initial

intent

interaccion

interaction

interfac

interfaz

interindex

internal

internet

introduccion

introduction

invers

invers

invers

invers

investigacion

jos

journal

keywords

lanz

larg

lematizacion

improvement

improving

incapaces

incluir

incluye

inconsistencia

incremento

indexacion

indexer

indexing

indican

indicar

indice

indices

ineficaces

informacion

informatica

informaticas

information

informativa

informativas

ingles

inicial

iniciales

initial

intenta

interaccion

interaction

interface

interfaz

interindexer

internal

internet

introduccion

introduction

inversa

inversamente

inverse

inverso

investigacion

jose

journal

keywords

lanzaron

largos

lematizacion

Page 46: Practica5 final

40

lenguaj

lexic

libr

like

linguistic

list

llamad

lopez

lugar

magnitud

management

mangiaterr

manual

manual

manualment

marcar

marcaron

martinez

mcgill

mcgraw

means

measurements

mecanism

mecanism

medi

medid

mejor

mejoran

mejorar

metod

mide

mode

model

model

modern

modification

modo

moment

mostrad

multipalabr

natural

necesari

necesidad

necesidad

negativ

negativ

lenguaj

lexic

libr

lik

linguist

list

llam

lopez

lugar

magnitud

management

mangiaterr

manual

manual

manual

marc

marc

martinez

mcgill

mcgraw

means

measurements

mecan

mecan

medi

med

mejor

mejor

mejor

metod

mid

mod

model

model

modern

modification

mod

moment

mostr

multipalabr

natural

necesari

neces

neces

negativ

negat

lenguaje

lexicas

libre

like

linguisticas

list

llamado

lopez

lugares

magnitudes

management

mangiaterra

manual

manuales

manualmente

marcar

marcaron

martinez

mcgill

mcgraw

means

measurements

mecanismo

mecanismos

media

medida

mejora

mejoran

mejorar

metodos

mide

mode

modelo

modelos

modern

modification

modo

momento

mostrado

multipalabra

natural

necesario

necesidad

necesidades

negative

negativo

Page 47: Practica5 final

41

negativ

nist

normalizacion

normalizar

normalment

notablement

notori

numeric

numer

obedec

objetiv

observar

obtencion

obtener

obteniend

obteniendos

obtienen

obtuvieron

obviament

obviar

ocurrenci

ofrecen

opcion

operacion

opta

orden

ordenad

ordenar

organization

origin

original

pagin

palabr

palabr

palabr

partiend

pasa

pas

peculiaridad

pequeñ

pequeñ

performanc

permitan

permit

permiten

person

negat

nist

normalizacion

normaliz

normal

notabl

notori

numer

numer

obedec

objet

observ

obtencion

obten

obten

obten

obtien

obtuv

obvi

obvi

ocurrent

ofrec

opcion

oper

opta

orden

orden

orden

organization

origin

original

pagin

palabr

palabr

palabr

part

pas

pas

peculiar

pequeñ

pequeñ

performanc

permit

permit

permit

person

negativos

nist

normalizacion

normalizar

normalmente

notablemente

notoria

numerico

numero

obedece

objetivo

observar

obtencion

obtener

obteniendo

obteniendose

obtienen

obtuvieron

obviamente

obviar

ocurrencia

ofrecen

opcion

operaciones

opta

orden

ordenados

ordenar

organization

origin

originales

paginas

palabra

palabras

palabras

partiendo

pasa

pasos

peculiaridades

pequeña

pequeño

performance

permitan

permite

permiten

persona

Page 48: Practica5 final

42

pertenec

pertinent

pertinent

peso

pes

pierden

plantear

polisemi

pose

posibilidad

posibiliten

posibl

positiv

positiv

pp

precision

precis

pregunt

prentic

preposicion

privilegiar

problem

problem

proceedings

procesad

procesaron

proces

process

processing

produc

producen

producid

product

proporcion

proporcional

proporcionand

proporcionen

propuest

propuest

provenient

publication

pudieran

punt

quality

quaterly

queri

pertenec

pertinent

pertinent

pes

pes

pierd

plant

polisemi

pose

posibil

posibilit

posibl

positiv

posit

pp

precision

precis

pregunt

prentic

preposicion

privilegi

problem

problem

proceedings

proces

proces

proces

process

processing

produc

produc

produc

product

proporcion

proporcional

proporcion

proporcion

propuest

propuest

provenient

publication

pud

punt

quality

quaterly

queri

pertenece

pertinente

pertinentes

peso

pesos

pierden

plantear

polisemia

posee

posibilidad

posibiliten

posible

positive

positivos

pp

precision

preciso

preguntas

prentice

preposiciones

privilegiar

problema

problemas

proceedings

procesadas

procesaron

proceso

process

processing

produce

producen

producidas

producto

proporcion

proporcional

proporcionando

proporcionen

propuesto

propuestos

provenientes

publication

pudieran

punto

quality

quaterly

queries

Page 49: Practica5 final

43

query

raiz

ranking

realimentacion

realimentad

realimentad

realiz

realizad

realizad

realizar

recalcul

recall

recib

recoger

recuperacion

recuperacion

recuperad

recuperar

reduccion

referenci

refin

relacion

relevanc

relevanci

relevant

relevant

represent

representacion

representacion

representan

representant

resolucion

resolver

respectivament

resultad

resultan

resultand

results

resumen

retrieval

review

revisar

revist

rocchi

roman

routing

query

raic

ranking

realimentacion

realiment

realiment

realiz

realiz

realiz

realiz

recalcul

recall

recib

recog

recuperacion

recuper

recuper

recuper

reduccion

referent

refin

relacion

relevanc

relev

relevant

relev

represent

representacion

represent

represent

represent

resolucion

resolv

respect

result

result

result

results

resum

retrieval

review

revis

revist

rocchi

rom

routing

query

raices

ranking

realimentacion

realimentada

realimentadas

realiza

realizada

realizado

realizar

recalculo

recall

recibe

recoger

recuperacion

recuperaciones

recuperados

recuperar

reduccion

referencias

refine

relacion

relevance

relevancia

relevant

relevantes

representa

representacion

representaciones

representan

representante

resolucion

resolver

respectivamente

resultados

resultan

resultando

results

resumen

retrieval

review

revisara

revistas

rocchio

roman

routing

Page 50: Practica5 final

44

salamanc

salton

san

satisfac

scienc

seguidament

seguid

seguir

segurament

seleccion

seleccionad

seleccionad

seleccionar

semantic

semejanz

sentid

señalad

señalar

shown

significativ

siguient

similar

similitud

simpl

sinonimi

sistem

sistem

smart

society

sofisticad

somer

spain

spanish

special

stemming

stops

structur

stubbs

subcaden

subjetiv

suel

suelen

system

systems

tamañ

techniqu

salamanc

salton

san

satisfac

scienc

seguid

segu

segu

segur

seleccion

seleccion

seleccion

seleccion

semant

semej

sent

señal

señal

shown

signific

siguient

similar

similitud

simpl

sinonimi

sistem

sistem

smart

society

sofistic

somer

spain

spanish

special

stemming

stops

structur

stubbs

subcaden

subjet

suel

suel

system

systems

tamañ

techniqu

salamanca

salton

san

satisface

science

seguidamente

seguido

seguir

seguramente

selecciona

seleccionado

seleccionados

seleccionar

semantico

semejanza

sentido

señalados

señalar

shown

significativas

siguientes

similares

similitud

simple

sinonimia

sistema

sistemas

smart

society

sofisticados

somera

spain

spanish

special

stemming

stops

structures

stubbs

subcadenas

subjetiva

suele

suelen

system

systems

tamaños

technique

Page 51: Practica5 final

45

techniqu

technology

tecnic

tecnic

tematic

term

termin

termin

tesin

tests

text

text

tiemp

tiend

tipo

toma

tomar

totalment

trabaj

trec

unidad

universidad

usad

usal

usars

user

users

using

usually

usuari

usuari

util

util

utilic

utiliz

utilizabl

utilizacion

utilizad

utilizad

utilizad

utilizand

utilizar

utilizaron

utilization

vaciad

vaci

techniqu

technology

tecnic

tecnic

temat

term

termin

termin

tesin

tests

text

text

tiemp

tiend

tip

tom

tom

total

trabaj

trec

unidad

univers

usad

usal

usars

user

users

using

usually

usuari

usuari

util

util

utilic

utiliz

utiliz

utilizacion

utiliz

utiliz

utiliz

utiliz

utiliz

utiliz

utilization

vaci

vaci

techniques

technology

tecnica

tecnicas

tematico

term

termino

terminos

tesina

tests

text

texto

tiempo

tiende

tipo

toma

tomar

totalmente

trabajo

trec

unidades

universidad

usado

usal

usarse

user

users

using

usually

usuario

usuarios

util

utiles

utilice

utiliza

utilizables

utilizacion

utilizada

utilizado

utilizados

utilizando

utilizar

utilizaron

utilization

vaciado

vacias

Page 52: Practica5 final

46

valor

valor

vector

vector

vectorial

vectorizad

vien

vist

visualizar

vitori

witghting

words

yat

york

zazo

valor

valor

vector

vector

vectorial

vectoriz

vien

vist

visualiz

vitori

witghting

words

yat

york

zaz

valor

valores

vector

vectores

vectorial

vectorizada

viene

vista

visualizar

vitoria

witghting

words

yates

york

zazo

1. Tabla Diferencias lematización

Page 53: Practica5 final

47

7. CONCLUSIONES

Dados los problemas que plantea el lenguaje natural (información pobremente estructurada, diferentes formatos de documentos, problemas con codificación de la información, problemas de detección y conversión de formatos y codificación, normalización de términos, etc.) se hace necesario el empleo de herramientas especializadas a la hora de tratarlo para conseguir una recuperación óptima de información, que satisfaga las necesidades de la búsqueda.

.

Page 54: Practica5 final

48

8. BIBLIOGRAFÍA

– Indización automática – la enciclopedia libre. Actualizado el. [On-line] 30 de septiembte. Consulta realizada el 3 de marzo de 2010. URL: http://es.wikipedia.org/wiki/Indizaci%C3%B3n_autom%C3%A1tica

– Ley de Zipf – la enciclopedia libre. Actualizado el 9 de octubre. [On-line]. Consulta realizada el 7 de marzo de 2010. URL: http://es.wikipedia.org/wiki/Stemming

– Stemming – la enciclopedia libre. Actualizado el 2 de octubre. [On-line]. Consulta realizada el 7 de marzo de 2010 URL:http://es.wikipedia.org/wiki/George_Kingsley_Zipf