84 lines
2.5 KiB
Org Mode
84 lines
2.5 KiB
Org Mode
#+TITLE: Práctica 1
|
|
#+SUBTITLE: Recuperación de Información
|
|
#+AUTHOR: Amin Kasrou Aouam
|
|
#+DATE: 2020-10-25
|
|
#+PANDOC_OPTIONS: template:~/.pandoc/templates/eisvogel.latex
|
|
#+PANDOC_OPTIONS: listings:t
|
|
#+PANDOC_OPTIONS: toc:t
|
|
#+PANDOC_METADATA: lang=es
|
|
#+PANDOC_METADATA: titlepage:t
|
|
#+PANDOC_METADATA: listings-no-page-break:t
|
|
#+PANDOC_METADATA: toc-own-page:t
|
|
#+PANDOC_METADATA: table-use-row-colors:t
|
|
#+PANDOC_METADATA: logo:/home/coolneng/Photos/Logos/UGR.png
|
|
* Práctica 1
|
|
|
|
En esta práctica, vamos a obtener información de una serie de documentos usando /Apache Tika/:
|
|
|
|
1. Obtener los metadatos (nombre , tipo, codificación e idioma)
|
|
2. Extraer todos los enlaces que aparecen
|
|
3. Generar un fichero con las ocurrencias de cada término, ordenados de forma descendente
|
|
4. Generar una gráfica con los términos y su ocurrencia
|
|
|
|
** Instalación
|
|
|
|
Implementamos la práctica usando /Java/ como lenguaje de programación, y /Maven/ como herramienta de gestión del proyecto. No es necesario utilizar esta herramienta, pero nos ofrece una mayor reproducibilidad del proyecto.
|
|
|
|
En el caso de que deseemos instalar fácilmente todas las dependencias, podemos instalar el gestor de paquetes [[https://nixos.org/guides/install-nix.html][Nix]] (compatible con Linux, MacOS y WSL)
|
|
|
|
*** Usando Nix
|
|
|
|
1. Instalamos Nix:
|
|
|
|
#+BEGIN_SRC shell
|
|
sh <(curl -L https://nixos.org/nix/install) --daemon
|
|
#+END_SRC
|
|
|
|
2. Cambiamos la ruta al directorio del proyecto:
|
|
|
|
#+BEGIN_SRC shell
|
|
cd P1
|
|
#+END_SRC
|
|
|
|
3. Entramos en el entorno de desarrollo reproducible y aislado:
|
|
|
|
#+BEGIN_SRC shell
|
|
nix-shell
|
|
#+END_SRC
|
|
|
|
Nix se encargará de resolver las dependencias, podemos dirigirnos directamente a la sección de ejecución.
|
|
|
|
*** Sin Nix
|
|
|
|
En el caso de que no deseemos usar Nix, deberemos instalar las siguientes dependencias en nuestro sistema:
|
|
|
|
\clearpage
|
|
|
|
- OpenJDK (> 8.0)
|
|
- Maven
|
|
- Gnuplot
|
|
|
|
** Ejecución
|
|
|
|
En el caso que deseemos utilizar /Maven/, debemos ejecutar los siguientes comandos:
|
|
|
|
1. Compilar el proyecto
|
|
|
|
#+BEGIN_SRC shell
|
|
mvn compile
|
|
#+END_SRC
|
|
|
|
2. Ejecutar el proyecto
|
|
|
|
#+BEGIN_SRC shell
|
|
mvn exec:java -Dexec.mainClass="org.RI.P1.AnalyzeDirectory" -Dexec.args="data metadata"
|
|
#+END_SRC
|
|
|
|
Debemos modificar el argumento *metadata* según la salida que deseemos:
|
|
|
|
- *metadata*: obtenemos la información de los archivos (nombre, codificación, tipo)
|
|
- *links*: obtenemos la lista de enlaces de cada archivo
|
|
- *frequency*: se guarda la frecuencia de las palabras de cada documento en un archivo (se encuentran en la carpeta output).
|
|
|
|
** Desarrollo
|