Saturday, August 31, 2013

firefox y sus dependecias


Usar firefox es directamente relacionado
con usar gtk-engine-murrine y gtk-engines
si no quieres que te arroje
warnings al iniciar gtk (notes
temas de gtk, igual funciona pero
arroja un monton de warnings).

e que son

:(

También nuevas versiones son liberadas
con ciertas rarezas, cómo:

 GLib-CRITICAL **: g_slice_set_config: assertion `sys_page_size == 0' failed

existe desde el 2011, aún siguen reportandolo
sin embargo está en el repositorio upstream
como resuelto :-s

¿organizado  no?

si llego a conseguir como aplicar el path actualizaré acá. :P (entre tiempo, trabajo y univ..)

Friday, August 16, 2013

Inteligentes que no saben nadar.

Imágenes de la batería del teléfono luego de un divertido chapuzón en agua.
Podríamos decir era muy inteligente pero no sabía nadar :(

Q.E.P.D.



Sunday, August 11, 2013

Recuperación de fotos de una SD, o cualquier unidad de almacenamiento o disco duro.


A veces por varias razones se corrompe la tabla que almacena la dirección  física del archivo en la (SD/disco duro), y el nombre del archivo, dicho de forma simple. Entonces cuando lee nuevamente la unidad de (SD..) reconstruye esta tabla pero desde 0, sin los registros que poseía anteriormente, es decir las fotos anteriores del accidente. 

¡¡¡sin embargo las fotos están ahí!!! sólo que no se encuentran en esta tabla, que dice en que dirección están las fotos. Por eso dicen que si quieres borrar definitivamente algo, tienes que llenar el disco duro de 0, de resto es recuperable la información.

Recién ocurrió eso, y una herramienta a utilizar se llama photorec, viene en conjunto con el paquete testdisk en arch. En win también anda, y es realmente fácil de usar, "boton siguiente siguiente e install".

pacman -Sy extra/testdisk 

más o menos estos son los pasos:

1 - tiene que ser ejecutada con usuario privilegiado, en caso de que no sea así al menos debes tener privilegios a través de sudo.
2 - photorec 


Al inicio aparece esta pantalla en linux las particiones se ven de esa forma, en win lo veras que si C:/ o D:/ o F:/ .. lo cierto es que mi tarjeta SD es /dev/sdb de hecho trae una breve descripción Multi-card Generic, por si no estas seguro jeje. La otra partición es mi disco duro. ^.^ que ya se llenó :(





Luego eliges si buscar en todo el disco duro o una partición en particular, en este caso solo hay una, daría igual elegir arriba o abajo, pero en caso que tengan 9 particiones en el disco duro, se verían acá.


Acá le especificas, el tipo de formato donde se almacenará el contenido recuperado de la SD/Disco.

Si estas en windows: eliges other (FAT/NTFS/) y si usas cosas raras RaiserFS.. pero no es lo usual. En linux eliges el formato de archivos ext2/ext3 que por defecto es el que usa.

Acá le especificas que quieres hacer, si quieres extraer TODO lo que tiene la SD seleccionas la opción [ Whole ] sí solo quieres los archivos que no están en la tabla mencionada arriba. [ Free ]  Y Listo.


shift + c cuando ya hayas seleccionado el directorio.

Algo así mientras recupera los archivos y cuando finaliza esto,  luego seleccionar
[Quit] , [Quit] [Quit]

:)
La fotografía es un lindo cuadro hecho por la artista Larissa está basado en otro cuadro que no recuerdo pero quedo lindo :) 

Saturday, August 10, 2013

Mallet How to.



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.txt
comenzó: 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.txt 
Comenzó 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.

Esto se realizó siguiendo este tutoríal: http://programminghistorian.org
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


Thursday, August 1, 2013

Modelado de Tópicos "automagically".


Es una técnica para tratar documentos que no tienen alguna categorización,
y asume que cada documento es una mezcla aleatorias de categorías o tópicos
donde cada categoría es definida por la preferencia de algunas palabras
sobre otras. Finalmente pretendemos que vamos a generar cada palabra
en cada documento desde 0 una y otra vez, y aleatoriamente escogemos una
categoría y de esta categoría escogemos una palabra que representen dicha
categoría basado en la preferencia de esta palabra sobre otras.

Un tópico en el contexto de modelado de tópicos es una distribución
de probabilidades de palabras para un conjunto, e indica la probabilidad
que una palabra aparezca en un documento  sobre un tópico en particular.

Resumen.

1 - El modelado de tópicos asume que las palabras que comprende el texto
fueron generadas aleatoriamente. (mmmjum si claro, y en la luna ha oxigeno.)
2 - Su objetivo es Inferir una convincente respuesta bajo la asunción que el punto
1 siempre es verdadero.

Poco creíble ¿no?, pero lo cierto es que segun lo leído en su mayoría funciona.
Comentan que el potencial del modelado de tópicos no se observa en cada
documento individualmente, sino más bien en un enfoque global analizando
grandes cantidades de documentos para visualizar patrones entre ellos. Esto
me trae buenos recuerdo de Bertalanffy y su teoría general de sistemas.


Para definir un proyecto de modelado,  consta de 5 atributos:

1 - ¿cual es el corpus a analizar?
2 - ¿qué técnica o algoritmo de modelado se va a aplicar?
3 - ¿Cual es la unidad de Análisis?
4 - ¿Como fue el postprocesamiento?
5 -¿Puedo visualizarlo mediante y gráfico y cómo?

Los Proyectos de modelado de tópicos se dividen en:

Proyectos de enfoque sincrónico: en el cual el valor de la unidad de análisis
no posee límite de tiempo, o mejor dicho no se identifica con una brecha de
tiempo.

Proyecto de enfoque diacrónico: La unidad de analisis de tiempo se genera
en un fecha o rango de fecha definido.

Respondiendo esto de acuerdo a un proyecto que tengo actualmente:
1 - ¿cual es el corpus a analizar?
    noticias, artículos y opiniones de 10 periódicos en internet,
    bajo la sección de economía, sin tomar en cuenta la fecha
    en la que se hizo el fetch de la url.
2 - ¿qué técnica o algoritmo de modelado se va a aplicar?
    Vanilla LDA Mallet. (Distribution Dirichlet?)
 3 - ¿Cual es la unidad de Análisis?
    1 documento = 1 noticia.
4 - ¿Como fue el postprocesamiento?
    si el tiempo es generoso con nosotros hacer cluster en R
    en base a esta data de tópicos.
5 - ¿visualización?
   un heapmap sería una buena opción. Si murphy no anda cerca.
   un gráfico de líneas,  con variable x = tiempo y scoring
   de relevancia y cada línea sería un tópico diferente.

Referencia.
topic-modeling-in-the-humanities-an-overview