diff --git a/TODO.org b/TODO.org index 20fd916..c942f17 100644 --- a/TODO.org +++ b/TODO.org @@ -1,7 +1,4 @@ * P1 -** TODO Plot word frequencies -With gnuplot, with documents of at least 3 different languages. -We'll fit this to the Booth and Federowicz equation ** DONE Create a table with information of all documents CLOSED: [2020-10-25 Sun 19:58] | filename | type | encoding | language | @@ -10,3 +7,7 @@ CLOSED: [2020-10-25 Sun 22:14] ** DONE Write to a file all word occurrences and frequencies CLOSED: [2020-10-25 Sun 23:40] Sorted in a decreasing manner +** DONE Plot word frequencies +CLOSED: [2020-10-29 Thu 13:11] +With gnuplot, with documents of at least 3 different languages. +We'll fit this to the Booth and Federowicz equation diff --git a/docs/Summary.org b/docs/Summary.org index 9371a46..84eb950 100644 --- a/docs/Summary.org +++ b/docs/Summary.org @@ -1,7 +1,7 @@ #+TITLE: Práctica 1 #+SUBTITLE: Recuperación de Información #+AUTHOR: Amin Kasrou Aouam -#+DATE: 2020-10-28 +#+DATE: 2020-10-29 #+PANDOC_OPTIONS: template:~/.pandoc/templates/eisvogel.latex #+PANDOC_OPTIONS: listings:t #+PANDOC_OPTIONS: toc:t @@ -92,7 +92,9 @@ private static void usage() { System.out.println("option frequency: saves word frequency to a file"); System.exit(1); } +#+END_SRC +#+BEGIN_SRC java public static void main(String[] args) throws IOException, TikaException, SAXException { if (args.length != 2) { usage(); @@ -107,3 +109,65 @@ public static void main(String[] args) throws IOException, TikaException, SAXExc Esta funcionalidad permite al usuario seleccionar la salida que desea, además de disminuir el contenido que aparece por pantalla y el tiempo de ejecución (dado que no computamos acciones innecesarias). En el caso de la opción /frequency/, guardamos las ocurrencias de los términos en un fichero en el directorio *output* con el formato /filename.dat/. Utilizaremos estos archivos para generar las gráficas. + +Mostramos el extacto de uno de los documentos, con carácter ilustrativo: + +| 1075 | the | +| 562 | and | +| 543 | of | +| 543 | a | +| 371 | in | +| 370 | to | +| 295 | i | +| 200 | that | +| 188 | it | +| 180 | his | + +** Gráficas + +El objetivo final de esta práctica es comprobar si se cumple la ley de Zipf en el conjunto de documentos que analizamos. Para ello vamos a generar gráficas para observar si se cumple, con documentos en distintos idiomas. + +En cada gráfica vamos a generar la función generada a partir de los archivos de datos, y la función normalizada mediante $log$. + +Incluimos un script de gnuplot genérico, al cual le pasamos el fichero de datos como argumento. + +#+BEGIN_SRC gnuplot +# Variables +FILEDATA = ARG1 + +# Parameters +set terminal png size 500,500 +set title FILEDATA +set xlabel 'word' +set ylabel 'ocurrence' +set multiplot + +# Plotting +plot FILEDATA using 1:xtic(2) lt rgb '#6E016B' +set logscale +plot FILEDATA using 1:xtic(2) lt rgb '#41AB5D' +#+END_SRC + +Procedemos a automatizar la generación de 3 gráficas, a partir de 3 archivos con idiomas distintos, mediante un /shell script/. + +#+BEGIN_SRC shell +#!/bin/sh + +gnuplot -c script/plot_datafile.gp "output/Moby Dick; Or, The Whale.dat" >output/plot_MobyDick.png +gnuplot -c script/plot_datafile.gp "output/Szerelem bolondjai.dat" >output/plot_Szerelembolondjai.png +gnuplot -c script/plot_datafile.gp "output/Älykkään ritarin Don Quijote de la Manchan elämänvaiheet.dat" >output/plot_ÄlykkäänritarinDonQuijotedelaManchanelämänvaiheet.png +#+END_SRC + +Ambos scripts se encuentran en el directorio /script/. + +*Nota*: es importante ejecutar el /shell script/ desde el directorio raíz del proyecto (donde se encuentra el archivo shell.nix). + +Con fines ilustrativos, mostramos la gráfica correspondiente al libro del Quijote en finlandés: + +#+CAPTION: Gráfica de Älykkään ritarin Don Quijote de la Manchan elämänvaiheet +[[../output/plot_ÄlykkäänritarinDonQuijotedelaManchanelämänvaiheet.png]] + +La función en color violeta corresponde a la generación de la gráfica sin alteraciones, mientras que la función en color verde se encuentra en escala logarítmica. +** Conclusiones + +Hemos analizado documentos, de distinto formato y en idiomas distintos, y según los datos empíricos obtenidos observamos que la ley de Zipf se cumple. diff --git a/docs/Summary.pdf b/docs/Summary.pdf index 160ec16..ba31afc 100644 Binary files a/docs/Summary.pdf and b/docs/Summary.pdf differ