wiki:ModeladoTopicos_2017/preprocesamiento

¿Cómo usar el preprocesamiento y no morir en el intento?

Previo a este paso se debe tener instalado el freeling y descomprimido y compilado el lda

Para usar el Freeling

Para poder utilizar el freeling es necesario configurar las rutas en la que se realizaran las tareas del archivo ubicado en la ruta raiz del proyecto/utils/freeling.py , dicha configuraciones se explican a continuación:

En la línea 163

freeling_cmd = shlex.split('/usr/local/bin/analyzer -f /usr/local/share/freeling/config/es.cfg',' ')

se debe modificar esta expresión en caso que no concuerde con las rutas donde instalamos el freeling.

En la línea 209

donde esta la variable corpus_path, se debe colocar la ruta donde tenemos los corpus

Para ejecutar el Freeling

Como es obvio debemos estar trabajando en nuestro entorno virtual, y ejecutar con python el script del freeling, acorde a nuestra ubicación, es caso de que estemos en la raíz del proyecto, el comando podría ser:

python utils/freeling.py

Si todo esta bien procederá a realizar el pre-procesamiento (si el corpus es grande se debe armar de paciencia, porque el script tardará)

Es importante que la ruta en la que se ejecutará el freeling debe contener los directorios

pp/ (vacío hasta los momentos, contendrá los archivos resultantes del pre-procesamiento) noaccent/ (contendrá los corpus sin acentos ni caracteres extraños, se genera con el freeling) lower/ (contendrá los archivos de orig/ en letras minúsculas, se genera con el freeling ) orig/ (contiene los corpus normalmente) freeling/ (contendrá un formato de archivo de los corpus, resultante también de ejecutar el preprocesamiento)

Una vez finalizado el freeling, procedemos a ejecutar una función de python que recibe dos parámetros como argumentos

python utils/corpusScript.py direcctorio_pp directorio_salida

Este script genera los archivos corpus.dat y vocab.txt necesarios para la ejecución del LDA.

Una vez hecho esto podemos proceder a ejecutar el LDA

Para ejecutar el LDA

El lda no es un script dificil de ejecutar, sólo que debemos saber que le vamos a pasar como argumentos, ya que recibe muchos valores.

Suponiendo que estamos en el directorio base del lda, es decir donde tenemos el ejecutable, procedemos a ejecutarlo:

./lda est 0.1 numero_topicos settings.txt directorio_donde_este/corpus.dat random nombre_carpeta

Donde

est es un método fijo que siempre hay que usar 0.1 es nuestro alpha (puede variar dependiendo de nosotros mismos) numero_topicos es la cantidad de tópicos que necesitamos generar (por ejemplo 10) settings.txt es un archivo en ese directorio donde hay un configuración, lo podemos modificar si estamos en la capacidad de hacerlo el siguiente parametro es el directorio donde se encuentra el archivo corpus.dat random es otro parámetro fijo por ultimo pasamos la ruta y nombre de carpeta donde queremos que de salida el lda, por convención esto debería ser nombrecapeta_numerodetopicos, para usarlo correctamente en la aplicación web (ejemplo prueba_10)

Últimos pasos

Ya con todas estas ejecuciones, tenemos los archivos necesarios para poder configurar el settings.py de la aplicación web, a saber FILES_PATH, LDA_DATA_PATH, LDA_CORPUS_FILE, LDA_VOCAB_FILE, LDA_CORPUS_DIR y TOPICS.

Aunque está especificado en el manual de instalación y configuración, repasaremos para que sirven estas variables del archivo settings.py

FILES_PATH: Contiene la ruta de los archivos que mostraremos en la interfaz, queda a decisión de nosotros si usamos los contenidos en orig/ (no recomendable), lower/ o no_accent/

LDA_DATA_PATH: Aquí colocaremos la ruta de las carpetas generadas por el LDA, por el modo en el que esta es que se habla de usar la convención nombre_topicos

LDA_CORPUS_FILE: Ubicación del archivo corpus.dat

LDA_VOCAB_FILE: Ubicación del archivo vocab.txt

LDA_CORPUS_DIR: Dirección de los preprocesados (pp/)

TOPICS: Esta variable debe contener los números de tópicos que generamos previamente con el LDA, es decir que sí sólo generamos con 10, 20 y 30 tópicos, la variable debe ser algo igual a esto: TOPICS = '10, 20, 30'

Last modified 7 años ago Modificado por última vez en fecha 26/01/2017 15:53:35