En linux es realmente sencillo, sólo descargar y exportar la variable de ambiente en la terminal/línea de comando/consola. En Win igual sólo que hay que saber como editar las variables de entorno.
export MALLET_HOME = 'ruta/donde/esta/mallet'
En general Mallet viene con stopwords definidas para inglés y alemán. Se encuentran en el directorio stoplists. En caso de añadir nuevas stopwords colocarlas en este directorio por llevar un orden, realmente se pueden colocar en cualquier sitio ya que luego en el comando se le añade la ruta del listado de palabras que se desean eliminar.
sample-data: directorio con data de ejemplo.
bin: directorio con el binario, a usar para ejecutar mallet.
test:
src: se puede ver el código de mallet en su mayoría se reduce a contar palabras, el 90 % del tiempo esto es lo que se hace cuando nos referimos a text mining.
Yo creé un directorio llamado data: ahí están todos los txts, de los cuales quiero extraer los tópicos, Mallet también lee el formato csv, donde la primera columna es el título y el resto es el contenido o texto que quiero analizar. cada línea sería un texto o documento diferente.
cosas que no vamos a tocar, ni mirar:
pom.xml, build.xml, Makefile : archivo de configuración de Maven.
lib: librerías para que funcione mallet, un monton de archivos jar.
dist: Archivo jar que contiene la funcionalidad de mallet.
class: archivos binarios ya compilados de Java.
Obtener el formato mallet desde un archivo csv:
./bin/mallet import-file --input allmyfavorites.csv --output myfavorites.mallet
Obtener el formato Mallet de aproximadamente 6500 articulos:
bin/mallet import-dir --input ./data \ --keep-secuence true \ --output noticias.mallet \ --stoplist-file ./stoplists/stopwords.txtcomenzó: 5:18 termino 5.19. para 6000 documento bastante rápido veamos..
lo siguiente, hará el trabajo de obtener tópicos mediante el algoritmo LDA:
bin/mallet train-topics \ --input noticias.mallet \ --optimize-interval 20 \ --num-topics 20 \ --word-topic-counts-file noticias_word-topic-counts.txt \ --output-state noticias-topic-state.gz \ --output-topic-keys noticias_keys.txt \ --output-doc-topics noticias_composition.txtComenzó a las 5.22 aplicando LDA a 6500 documentos.
Terminó : 6y22 :( al menos lo hizo y no dió error de memoria :)
Total time: 56 minutes 46 seconds
Los archivos de salida son 3:
noticias_keys.txt tendría todos los tópicos que encontró el algoritmo.
noticias_composition.txt tendría todos los tópicos, y la porción de cada tópico en cada documento, de este archivo se puede realizar grafos, heatmap, treemap, y es el que contiene la información que podría definir similaridad entre documentos.
noticias-topic-state.gz contiene todas las palabras, que encontró en los distintos documentos, podría servir para hacer una nube de palabras, y para analizar globalmente con R.
La fotografía, es de una exposición donde las ilustraciones deben reflejar lo que contiene el texto de la derecha de la imagen.
Licencia, Creative Commons Atribución-NoComercial-CompartirIgual 3.0 Unported
Mas info y scripts: https://github.com/j3nnn1/topic_model
No comments:
Post a Comment