Cómo vota Perú en el TPP (“tratado anti-internet”)?

Hace un par de semanas, el portal Wikileaks publicó el documento secreto correspondiente al borrador de las negociaciones del capítulo de propiedad intelectual del TPP (Trans-Pacific Partnership).

Ya han habido varias alertas acerca de las implicancias de estas negociaciones (una introducción al tema aquí). Además de ser negociaciones que se realizan de manera secreta, preocupa que esté en riesgo el libre acceso a Internet y el componente de propiedad intelectual que pueda dificultar el acceso a medicamentos.

Se supone que este tratado está apunto de ser firmado por el Perú antes de fin de año y gracias a Wikileaks recién podemos darnos cuenta de lo que realmente se ha estado negociando a puerta cerrada.

El documento filtrado al público tiene 96 páginas (si se bajan el PDF) y está disponible aquí. A primera vista se pueden ver los temas que se han discutido y la manera de cómo ha votado cada país. Algunas propuestas parecen provenir de ciertos países mientras que otros votan a favor o se oponen (ver figura 1).

Figura 1. Algunos países votan a favor, otros se oponen.

Figura 1. Algunos países votan a favor, otros se oponen.

Podemos dar una lectura a todo el PDF para enterarnos “cómo es la cosa”. Pero, siendo este un blog nerd, podemos hacer un “data-mining” rudimentario para rápidamente poder averiguar algunos detalles:

  1. Cuántas veces Perú vota como país de manera opuesta a Estados Unidos?
  2. Cuántas veces Perú vota igual que Estados Unidos?
  3. Podemos averiguar como vota algún país vecino? digamos Chile, vota de manera diferente a Perú?
  4. Chile se opone o vota de manera similar que Estados Unidos?
  5. En qué puntos específicos hay discrepancias en las votaciones

Podría ponerme a contar la votaciones una por una pero me iba a demorar una enternidad. Entonces escribí un script in Python para hacer este data-mining (script completo en la sección geek al final de este post).

Lo bueno es que Wikileaks publicó el documento como PDF conteniendo texto (no como imágenes). Entonces, es bien fácil convertir el PDF a TXT y proceder con el minado de datos.

pdftotext Wikileaks-secret-TPP-treaty-IP-chapter.pdf texto.txt

Mi script funciona de la siguiente manera:

  1. Lee el documento TXT línea por línea
  2. Si encuentra una línea que contenga la palabra Article se pone alerta y se fija si hay alguna línea con las iniciales de los países PE, CL, US (osea Perú, Chile y Estados Unidos).
  3. La línea de texto que indica la votación tiene un patrón consistente: países oppose/propose más países.
  4. Entonces el script divide la lista de países en dos bandos, los que están a la derecha e izquierda de las palabras clave oppose/propose
  5. Una vez divididos los bandos, solo es cuestión de contar cuántas veces se repiten las iniciales y llevar la cuenta el bando.

Estos son los resultados:

Conteo de votos de PE versus US
propose_together 26
oppose_together 6
oppose_each_other 23

---------------------

Conteo de votos de PE versus CL
propose_together 36
oppose_together 22
oppose_each_other 8

---------------------

Conteo de votos de US versus CL
propose_together 16
oppose_together 2
oppose_each_other 32

Se supone que ambos países, Perú y Chile, tenían la intención hacer propuestas alternativas a las que figuran en el TPP (ver aquí y aquí).

Pero al parecer, esto puede haber quedado en intenciones, al menos viendo la manera cómo ha estado votando Perú.

Perú ha votado igualito que Estados Unidos 32 veces y se ha opuesto (votado diferente) sólo 23 veces. Mientras que Chile ha votado igual que EEUU solo 18 veces y se ha opuesto 32 veces.

Parece que Chile se opone mucho a las propuestas apoyadas por EEUU mientras que Perú vota en tándem. Mi script me dice que:

Chile se opone a US y PE 9 veces

y se opone en estos artículos del TPP:

* Article QQ.C.2: {Collective and Certification Marks}
    [US/PE/MX41/SG propose; AU/NZ/ VN/BN/MY/CL/CA oppose: 2. Pursuant to
* Article QQ.D.11: [CL/SG/BN/VN/MX propose82; AU/PE/US/NZ/CA/JP oppose:
* Article QQ.D.12: {Homonymous Geographical Indications}
    [NZ/CL/VN/MY/BN/SG/MX propose84; PE/US/AU oppose: 1. Each Party may
    [CL propose; AU/US/PE/NZ/VN/SG/MY/BN/MX/CA/JP oppose: 2. The Parties
    [CL/SG/BN/MX propose; AU/PE/US/NZ/CA/JP oppose: Annex […] Lists of
* Article QQ.E.9: [US/PE/AU propose; 101 CL/VN/MY/BN/NZ/CA/SG/MX oppose:
* Article QQ.H.7: {Criminal Procedures and Remedies / Criminal Enforcement}
    2. [US/AU/SG/PE propose; CL/VN/MY/NZ/CA/BN/MX oppose: Willful
* Article QQ.I.1:267 {Internet Service Provider Liability}
    280 [US/PE/SG/AU propose; CL/NZ/VN oppose: A Party may request consultations with the other Parties to

Ahora que tenemos una idea a ojo de buen cubero cómo van las votaciones de Perú, Chile y EEUU, además de los temas potencialmente picantes. Podemos leer mejor el documento filtrado por Wikileaks.

** Spoiler ** (Uno de esos temas tiene que ver con la denominación de origen del Pisco. Chile propone, Perú y EEUU se oponen).

PD. este post se inció a sugerencia de un tuitero amixer.

Sección geek

El script corre de la siguiente manera:

python leeme_votaciones.py texto.txt

Aurelio Pastor firmó 149 indultos de un solo plumazo

foto Revista Eva

Aurelio Pastor se ufana que en un sólo día pudo haber firmado 31 indultos, pero en realidad fue capaz de conmutar 149 presos en un solo día, de un solo plumazo.

En el vídeo propalado por Cuarto Poder se ve al exministro de justicia Aurelio Pastor fanfarronear, mientras come una empanada, de sus poderes como conmutador de penas.

Pastor dice que ha logrado firmar hasta 31 conmutaciones en un solo día (ver en Youtube)

Hoy día voy a firmar 31 más, hoy día, ayer he firmado como 10, 15

Puede parecer muchos indultos firmados en un día. Pero en realidad Aurelio Pastor logró firmar conmutaciones de pena de 149 presos en un solo día! de un solo plumazo!

Cómo encontrar ese dato

En un post anterior expliqué cómo descargar TODAS las normas jurídicas emitidas por el Ministerio de Justicia durante los años 2006-2011.
En otro post expliqué cómo contar el número de indultos firmados por cada exministro de justicia durante el 2do gobierno aprista.

Luego de seguir las intrucciones en esos posts, obtendrás un folder pastor con todas las normas jurídicas emitidas durante su gestión como ministro.

Lo que queremos averiguar es cuántas conmutaciones firmó Aurelio Pastor por día y ver en qué día se firmó el mayor número de supuestos #narcoindultos.

Este comando de Linux hace la búsqueda y ordena el número de conmutados por día de menor a mayor.

grep -i 'conmutarle' * | awk -F ':' '{print $1}' | sort | uniq -c | sort -n | sed 's/.txt//g'

Este es parte del resultado:

 ...
 58 03-11-09
 63 14-10-09
 65 25-12-09
 66 13-02-10
 68 17-12-09
 69 29-11-09
 71 04-03-10
 75 07-01-10
 85 15-01-10
149 22-12-09

Como vemos el 22 de Diciembre del 2009 (fecha 22-12-09) Aurelio Pastor firmó el indulto de 149 presos!

Qué coincidencia que ocurriera a 3 días de celebrarse la navidad. Parece que Santa Claus tiene competidores.

Aquí está la norma jurídica emitida ese día. Te la puedes descargar desde el sitio web del Ministerio de Justicia.
http://spij.minjus.gob.pe/Normas/textos/221209T.pdf

He extraído todos los nombres de los agraciados ese día y la puedes ver aquí:
indultados_22_Diciembre_2009.txt

Aurelio Pastor y su pluma veloz #narcoindultos

Aurelio Pastor no fue el ministro que firmó más conmutaciones, pero fue quien las firmó a una mayor velocidad, casi 7 conmutaciones diarias durante su período, el doble y triple que los otros ministros de justicia durante el 2do gobierno aprista.

Hace unos días Aurelio Pastor dijo lo siguiente:

“Han existido otros ministros que han firmado más gracias (presidenciales) que yo”

Esto fue inmediatamente después que aparezca el avance del programa Cuarto Poder para hoy Domingo, donde se mostrará un vídeo en el que aparentemente Aurelio Pastor elegía a dedo los potenciales beneficiados por #narcoindultos y conmutaciones de pena, mientras come una empanada que le invitaron.

Según Wikipedia estos fueron los Ministros de Justicia y sus períodos durante el 2do gobierno aprista:

María Zavala Valladares	   | 28 de julio de 2006 - 19 de diciembre de 2007  | (510 días en el cargo)	
Rosario Fernández Figueroa | 20 de diciembre de 2007 - 10 de julio de 2009  | (569 días en el cargo)
Aurelio Pastor Valdivieso  | 11 de julio de 2009 - 16 de marzo de 2010      | (249 días en el cargo)
Víctor García Toma	       | 18 de marzo de 2010 - 12 de septiembre de 2010 | (179 días en el cargo)
Rosario Fernández Figueroa | 14 de septiembre de 2010 - 28 de julio de 2011 | (318 días en el cargo)

Ya que tengo en mi computadora TODAS las normas jurídicas emitidas por el ministerio durante los años 2006-2011 podemos contar cuantas conmutaciones de penas y #narcoindultos fueron firmadas durante el período de cada ministro (ver un post anterior para que sepas como descargué las TODAS las normas jurídicas.).

Este es el plan:

    1. crear un folder para cada ministro y copiar todas las normas del ministerio emitidas durante su período como ministro.
    2. para cada ministro, buscar el número de indultados/conmutados de pena
    3. hacer un gráfico que resuma los resultados

Seleccionar las normas del MinJus emitidas durante el período de cada ministro

Para la exministra María Zavala

# copiar a folder normas del 28 al 31 de Julio del 2006
ls *txt | awk -F '-' '$1 > 27' | grep '07-06.txt' | xargs -I {} cp -v {} zavala/.

# copiar a folder normas del 1 de Agosto al 31 de Diciembre del 2006
ls *txt | awk -F '-' '$2 > 07' | grep '06.txt' | xargs -I {} cp -v {} zavala/.

# copiar a folder normas del 1 de Enero al 31 de Noviembre del 2007
ls *txt | awk -F '-' '$2 < 12' | grep '07.txt' | xargs -I {} cp -v {} zavala/.

# copiar a folder normas del 1 de Diciembre al 19 de Diciembre del 2007
ls *txt | grep '12-07.txt' | awk -F '-' '$1 < 20' | xargs -I {} cp -v {} zavala/.

Del 28 de Julio del 2006 al 19 de Diciembre del 2007 hay 510 días y nosotros hemos guardado en el folder zavala 510 archivos:

ls zavala/ | wc -l
510

Entonces vamos por buen camino.

Para la exministra Rosario Fernández (1er período)

Fechas: 20 de diciembre de 2007 – 10 de julio de 2009

# copiar a folder normas del 20 al 31 de Diciembre del 2007
ls *txt | grep '12-07.txt' | awk -F '-' '$1 > 19' | xargs -I {} cp -v {} fernandez1/.

# copiar a folder normas del 1 de Enero al 31 de Diciembre del 2008
ls *txt | grep '08.txt' | xargs -I {} cp -v {} fernandez1/.

# copiar a folder normas del 1 de Enero al 30 de Junio del 2009
ls *txt | grep '09.txt' | awk -F '-' '$2 < 07' | xargs -I {} cp -v {} fernandez1/.

# copiar a folder normas del 1 al 10 de Julio del 2009
ls *txt | grep '07-09.txt' | awk -F '-' '$1 < 11' | xargs -I {} cp -v {} fernandez1/.

# tenemos 563 archivos
ls fernandez1/ | wc -l
563

Para el exministro Aurelio Pastor

Fechas: 11 de julio de 2009 – 16 de marzo de 2010

# copiar a folder normas del 11 al 31 de Julio del 2009
ls *txt | grep '07-09.txt' | awk -F '-' '$1 > 10' | xargs -I {} cp -v {} pastor/.

# copiar a folder normas del 1 de Agosto al 31 de Diciembre del 2009
ls *txt | grep '09.txt' | awk -F '-' '$2 > 07' | xargs -I {} cp -v {} pastor/.

# copiar a folder normas del 1 de Enero al 29 de Febrero del 2010
ls *txt | grep '10.txt' | awk -F '-' '$2 < 03' | xargs -I {} cp -v {} pastor/.

# copiar a folder normas del 1 al 16 de Marzo del 2010
ls *txt | grep '03-10.txt' | awk -F '-' '$1 < 17' | xargs -I {} cp -v {} pastor/.

# tenemos 249 archivos
ls pastor/ | wc -l
249

Para el exministro Víctor García Toma

Fechas: 18 de marzo de 2010 – 12 de septiembre de 2010

# copiar a folder normas del 18 al 31 de Marzo 2010
ls *txt | grep '03-10.txt' | awk -F '-' '$1 > 17' | xargs -I {} cp -v {} toma/.

# copiar a folder normas del 1 de Abril al 31 de Agosto del 2010
ls *txt | grep '10.txt' | awk -F '-' '$2 < 09' | awk -F '-' '$2 > 03' | xargs -I {} cp -v {} toma/.

# copiar a folder normas del 1 al 12 de Septiembre del 2010
ls *txt | grep '09-10.txt' | awk -F '-' '$1 < 13' | xargs -I {} cp -v {} toma/.

ls toma/ | wc -l
179

Para la exministra Rosario Fernández (2do período)

Fechas: 14 de septiembre de 2010 – 28 de julio de 2011

# copiar a folder normas del 14 al 30 de Septiembre del 2010
ls *txt | grep '09-10.txt' | awk -F '-' '$1 > 13' | xargs -I {} cp -v {} fernandez2/.

# copiar a folder normas del 1 de Octubre al 31 de Diciembre del 2010
ls *txt | grep '10.txt' | awk -F '-' '$2 > 09' | xargs -I {} cp -v {} fernandez2/.

# copiar a folder normas del 1 de Enero al 30 de Junio del 2011
ls *txt | grep '11.txt' | awk -F '-' '$2 < 07' | xargs -I {} cp -v {} fernandez2/.

# copiar a folder normas del 1 al 28 de Julio del 2011
ls *txt | grep '07-11.txt' | awk -F '-' '$1 < 29' | xargs -I {} cp -v {} fernandez2/.

ls fernandez2/ | wc -l
317

2. Para cada ministro, buscar el número de indultados/conmutados de pena

Podemos comenzar con el ministro Pastor. Podemos usar el comando grep para cuántas veces se usó la palabra conmutarle en cada una de las 249 normas jurídicas emitidas durante su período.

grep -i conmutarle pastor/*

pastor/04-03-10.txt:conmutarle de 04 años a 02 años 03 meses de pena privativa de libertad; la que vencerá el 12 de
pastor/04-03-10.txt:8. HIDALGO RODRIGUEZ, MARCO ANTONIO, conmutarle de 06 años 08 meses a 03
pastor/04-03-10.txt:9. CANALES RUGEL, GUILLERMO AMANCIO, conmutarle de 09 años a 05 años de pena
pastor/04-03-10.txt:10. CORONADO VILCA, MARIO, conmutarle de 08 años a 05 años de pena privativa de
pastor/04-03-10.txt:conmutarle de 06 años 08 meses a 03 años de pena privativa de libertad; la que vencerá el 25 de
pastor/04-03-10.txt:12. CHALCO RAMIREZ, JHON LUIS, conmutarle de 06 años a 03 años de pena privativa
pastor/04-03-10.txt:GUILLERMO, conmutarle de 13 años a 08 años 09 meses de pena privativa de libertad; la que
pastor/04-03-10.txt:14. ALBA BERMUDEZ, RONEI EBAN, conmutarle de 06 años 06 meses a 03 años 04
pastor/04-03-10.txt:15. RODRIGUEZ MANSILLA, CARLOS ALFREDO, conmutarle de 05 años a 03 años 04

Por cada persona que recibió conmutación de pena se usó 1 vez la palabra conmutarle y podemos usar el número de veces que se usó esta palabra como indicador del número de conmutaciones de pena.

# ministra María Zavala
grep -i conmutarle zavala/* | wc -l
0

# ministra Rosario Fernández, 1er período
grep -i conmutarle fernandez1/* | wc -l
2065

# ministro Aurelio Pastor
grep -i conmutarle pastor/* | wc -l
1679

# ministro García Toma
grep -i conmutarle toma/* | wc -l
434

# ministra Rosario Fernández, 2do período
grep -i conmutarle fernandez2/* | wc -l
1042

Quién indultó más presos?

Bueno, los números indican que Aurelio Pastor no fue el ministro que firmó más gracias presidenciales. Ese privilegio pertenece a Rosario Fernández.

Pero hay que tomar en cuenta que Rosario Fernández fue ministra dos veces, un total de 887 días, mientras que Pastor sólo fue ministro por 249 días.

Es curioso ver que la ministra Zavala no firmó ningún indulto a pesar que estuvo 510 días en el cargo. La lluvia de indultos comezó con la ministra Rosario Fernández, continuó con Aurelio Pastor, pero se desaceleró considerablemente durante la gestión de García Toma. Y los indultos regresaron a toda marcha durante el 2do período de Rosario Fernández.

Hipótesis nula

Deberíamos encontrar que el número de conmutados no depende de quién haya sido ministro. Si un ministro estuvo pocos días en el cargo debió haber firmado pocos indultos. Si un ministro estuvo muchos días, entonces tuvo oportunidad de firmar muchos indultos (o conmutaciones).

Entonces la hipótesis nula es que no hay efecto del ministro de turno sobre el número de indultos. Deberíamos encontrar una correlación lineal entre número de días en el cargo versus número de conmutaciones emitidas.

Si esto es falso y hubieron incentivos extraordinarios para emitir conmutaciones y algunos presos estuvieron pagando para ser liberados con especial intensidad durante el período de cierto ministro, no será posible encontrar una correlación entre el número de días que estuvo en el cargo cada ministro y el número de conmutaciones otorgadas.

Por ejemplo podemos plotear número de días en el cargo versus número de indultos otorgados (usando el paquete estadístico R):

library(ggplot2)
h1 <- read.csv("h1.csv", row.names=NULL)

png(filename="h1.png")
p <- qplot(dias, conmutaciones, data=h1,
    main="Relación entre días en el cargo \n vs. \n número de conmutaciones de pena?",
     label=ministro)
p + geom_text(hjust=0, vjust=0, aes(colour=factor(ministro))) +
    geom_smooth(method="lm", se=FALSE)
dev.off()

Relación entre número de días y número de conmutaciones

El gráfico nos da indicios que no hay correlación entre número de días y número de conmutaciones.

Para estar seguros podemos calcular el coeficiente de correlación de Pearson para averiguar si hay correlación positiva (r = 1) o negativa (r = -1):

> with(h1, cor(dias, conmutaciones))
[1] 0.168943

El valor de r = 0.168 es muy cercano a 0, por lo tanto no hay correlación positiva ni negativa entre el número de días y el número de conmutaciones de penas.

Entonces podemos rechazar la hipótesis nula, y aparentemente durante el período de ciertos ministros se emitieron conmutaciones a mano llena (Rosario Fernández, Aurelio Pastor), mientras que durante el período de otros ministros (García Toma y María Zavala) no se emitieron muchos.

Lo que dice Aurelio Pastor es cierto, él no es el exministro que firmó más conmutaciones de pena. Pero habría que preguntarse por qué Aurelio Pastor firmó conmutaciones con semejante velocidad (1679 conmutaciones en 249 días durante su período).

Aurelio Pastor firmó menos conmutaciones porque estuvo muy pocos días como ministro. Pastor firmó casi 7 indultos por día, una velocidad tremenda con la pluma, el doble de velocidad que Rosario Fernández y mucho más rápido que García Toma.

Aquí los datos:

ministro,  dias, conmutaciones, velocidad
Toma,       179,           434,      2.42
Pastor,     249,          1679,      6.74
Fernandez2, 318,          1042,      3.28
Zavala,     510,             0,      0
Fernandez1, 569,          2065,      3.63

Vean el gráfico, es demasiado obvio!

png(filename="velocidad.png")
c <- ggplot(h1, aes(ministro, velocidad), fill=factor(ministro))
c + opts(title="número de conmutaciones firmadas por día en funciones") +
    geom_bar(aes(colour=factor(ministro)))
dev.off()

Número de conmutaciones firmadas por día
Es cierto que Aurelio Pastor firmó menos conmutaciones, pero es porque no tuvo tiempo! Tuvieron que sacarlo como ministro por el escándalo del indulto a Crousillat.

Habría que preguntarle por qué tanto apuro en firmar conmutaciones.

Imagínense si Pastor hubiera sido ministro durante los 5 años! Las cárceles habrían quedado vacías?

Análisis del mensaje a la nación usando Linux

Según lo que pude leer en twitter el mensaje a la nación de Ollanta Humala este año estuvo algo aburrido. Pero lo mejor del discurso fue que duró la mitad que el del año pasado!

Luego de ver las nubes de palabras del mensaje de este año y ver al algunos opinar que este mensaje se parece mucho al del año pasado decidí hacer un rápido y rudimentario análisis de los discursos presidenciales del 2013 y 2012.

Estadísticas básicas

La cuenta de Scrib de PresidenciadelPeru tiene colagos los dos discursos. Bajé los archivos en formato PDF y los convertí a texto y averigué unas estadísticas básicas:

# convertir los archivos PDF a texto
pdftotext 101360576-Spr-28-de-Julio-2012.pdf       mensaje2012.txt
pdftotext 156579151-Mensaje-Presidencial-2013.pdf  mensaje2013.txt

# Cuantas líneas y palabras de texto tiene cada discurso?
wc -l mensaje2012.txt
1262 mensaje2012.txt

wc -w mensaje2012.txt
11989 mensaje2012.txt

wc -l mensaje2013.txt
690 mensaje2013.txt

wc -w mensaje2013.txt
6558 mensaje2013.txt

Vemos que el mensaje del 2013 tiene aproximandamente la mitad del número de lineas de texto que el 2012 (54.67%) y la mitad de palabras (54.70%). Este mensaje duró la mitad del tiempo que en el 2012 (63 minutos versus 2 horas). Entonces los ayayeros que aplaudían y gritaban en el congreso y no dejaban escuchar el discurso debieron haber interrumpido el mismo número de minutos que el año pasado. Ya que al parecer no tuvieron efecto significativo en la duración del discurso. Al contrario parece que este año Ollanta Humala pudo leer su discurso más rápido (a paso ligero).

Pero este año parece haber habido más quejas por los ayayeros. Debe ser una consecuencia de la baja desaprobación del presidente.

Frecuencia de palabras usadas en los mensajes

Las nubes de palabras son muy buenas para tener una idea de las palabras que han sido más usadas durante los discursos. Pero me da curiosidad tener los números duros de las palabras que más se usaron en el discurso.

Para ver las frecuencias de palabras tuve que hacer varias manipulaciones al texto para hacer una “limpieza” superficial de los archivos de texto y poder trabajarlo:

# Eliminar signos de puntuación usando el comando tr
tr -d [:punct:] < mensaje2012.txt > mensaje2012_nopunct.txt
tr -d [:punct:] < mensaje2013.txt > mensaje2013_nopunct.txt

# Convertir todas las mayúsculas a minúsculas
tr [:upper:] [:lower:] < mensaje2012_nopunct.txt > mensaje2012_lower.txt
tr [:upper:] [:lower:] < mensaje2013_nopunct.txt > mensaje2013_lower.txt

# Convertir todo el texto a una lista de palabras
tr ' ' '\n' < mensaje2012_lower.txt > mensaje2012_oneword.txt
tr ' ' '\n' < mensaje2013_lower.txt > mensaje2013_oneword.txt

Lo que nos da archivos conteniendo todo el discurso convertido a una lista de palabras:

mensaje
a
la
nación
del
señor
presidente
ollanta
humala
con
...

Podemos ver cuantas veces se usaron cada una de las palabras en cada uno de los mensajes a la nación.

Para el mensaje del 2012:

cat mensaje2012_oneword.txt | sort | uniq -c | sort -h

40 millones
41 estamos
44 ha
49 país
50 gobierno
52 estado
54 como
56 es
57 año
63 hemos
69 este
70 por
71 más
85
86 una
90 al
105 un
110 se
134 con
143 las
191 del
191 los
212 para
249 que
283 a
381 el
390 en
424 y
491 la
914 de

Las palabras comunes no nos interesan (de, la) pero vemos que se usó la palabra millones 40 veces.

Podemos averiguar cuántas veces se usó la palabra millones en el discurso del 2013:

cat mensaje2013_oneword.txt | sort | uniq -c | grep millones
    43 millones

Ollanta Humala mencionó la palabra millones 43 veces! Tres veces más que el año pasado. Pero este discurso fue 54% más corto! Si este mensaje hubiera sido de la misma longitud que el del año pasado, el presidente habría mencionado millones 86 veces? El doble que el año pasado. Este año ha sido una verdadera lluvia de millones. Lo cual puede preocupar porque como dice el conocido refrán dime de que presumes y te dire de qué careces.

Algo parecido pasa si vemos la frecuencia de la palabra seguridad:

En el 2012:

cat mensaje2012_oneword.txt | sort | uniq -c | sort -h | grep seguridad

1 seguridades
3 inseguridad
15 seguridad

En el 2013:

cat mensaje2013_oneword.txt | sort | uniq -c | sort -h | grep seguridad

2 inseguridad
13 seguridad

Si hacemos el ajuste por tamaño de discurso, este año el presidente mencionó la palabra seguridad casi el doble de veces que el año pasado.

dime de que presumes y te dire de qué careces

Te recuerdo tu narcoindulto usando tuitbot

https://twitter.com/otravezandres/status/355674291142021120/photo/1

En posts anteriores describí un método para averiguar en qué fecha del segundo gobierno de Alan García se había dado indultos y conmutaciones de penas a personajes que habían reincidido en el delito. Podemos construir un bot en twitter para que tuitee recordatorios el día que fueron indultados/conmutados de pena cada uno de estos angelitos. El tuit podría tener la siguiente estructura:

Como hoy (24 Jul 2009) indulté a Fulano Mengano, pero luego fue encarcelado por ESTE DELITO

Luego de usar herramientas de Linux para buscar nombres de la lista de reincidentes en todas las normas jurídicas emitidas por el Ministerio de Justica, habíamos obtenido una lista de 138 coincidencias:

02-07-09.txt:8. ABATE LUCIANO, LUCIO, conmutarle de 05 años 06 meses a 03 años 07 meses de
14-01-09.txt:56. AGUILAR TALAVERANO, JUAN CARLOS o AGUILA TALAVERANO, JUAN CARLOS,
12-05-09.txt:18. ALARCON MORA, MIGUEL ANGEL, conmutarle de 08 años a 06 años 08 meses de
28-01-10.txt:43. AGUIRRE ANGELES, ELVIS EDWIN, conmutarle de 04 años a 02 años de pena
27-02-09.txt:6. AGUIRRE ANGULO, OMAR WILLIAMS, conmutarle de 07 años a 04 años 04 meses
30-04-09.txt:7. ALCARRAZ CAMPOS, ABRAHAM, conmutarle de 05 años a 03 años 08 meses de
17-04-10.txt:13. ALMEYDA LEON, CESAR ARTURO, conmutarle de 05 años a 03 años de pena
17-06-09.txt:45. AMPARADO AMPARADO, ROLANDO WALTER o PAJARITO AMPARADO,
29-01-10.txt:18. ALVAREZ RENGIFO, LUIS ALFONSO, conmutarle de 10 años a 04 años 06
16-12-08.txt:61. ANDAVIZA CHILET, NILDA KARINA, conmutarle de 13 años a 10 años 10 meses de
...

Usando un comando de Linux podemos convertir esa lista, en un formato que sea más manejable:.

sed -i 's/\(.\+\)\.txt:[0-9]*\.*\s\([A-Z]\+\s[A-Z]\+,\s[A-Z]\+\).\+/\1 \2/g' coincidencias.txt

Lo que resulta en:

02-07-09 ABATE LUCIANO, LUCIO
14-01-09 AGUILAR TALAVERANO, JUAN
12-05-09 ALARCON MORA, MIGUEL
28-01-10 AGUIRRE ANGELES, ELVIS
27-02-09 AGUIRRE ANGULO, OMAR
30-04-09 ALCARRAZ CAMPOS, ABRAHAM
17-04-10 ALMEYDA LEON, CESAR
17-06-09 AMPARADO AMPARADO, ROLANDO
29-01-10 ALVAREZ RENGIFO, LUIS
16-12-08 ANDAVIZA CHILET, NILDA
...

Este comando convierte la fecha en formato internacional YYY-MM-DD y agrega algo de texto:

cat coincidencias.txt | awk -F ' ' '{print $1 " | " $2 " " $3 " " $4 " es indultado por Alan García, reincide en el delito poco despues | " $1}' | sed 's/^\([0-9]\{2\}\)-\([0-9]\{2\}\)-\([0-9]\{2\}\)/20\3-\2-\1/g' > tmp.txt

Lo que produce:

2009-07-02 | ABATE LUCIANO, LUCIO es indultado por Alan García, reincide en el delito poco después | 02-07-09
2009-01-14 | AGUILAR TALAVERANO, JUAN es indultado por Alan García, reincide en el delito poco después | 14-01-09
2009-05-12 | ALARCON MORA, MIGUEL es indultado por Alan García, reincide en el delito poco después | 12-05-09
2010-01-28 | AGUIRRE ANGELES, ELVIS es indultado por Alan García, reincide en el delito poco después | 28-01-10
2009-02-27 | AGUIRRE ANGULO, OMAR es indultado por Alan García, reincide en el delito poco después | 27-02-09
2009-04-30 | ALCARRAZ CAMPOS, ABRAHAM es indultado por Alan García, reincide en el delito poco después | 30-04-09
2010-04-17 | ALMEYDA LEON, CESAR es indultado por Alan García, reincide en el delito poco después | 17-04-10
2009-06-17 | AMPARADO AMPARADO, ROLANDO es indultado por Alan García, reincide en el delito poco después | 17-06-09
2010-01-29 | ALVAREZ RENGIFO, LUIS es indultado por Alan García, reincide en el delito poco después | 29-01-10
2008-12-16 | ANDAVIZA CHILET, NILDA es indultado por Alan García, reincide en el delito poco después | 16-12-08

Hay que convertir la fecha que aparece al final de cada línea a un link hacia la norma del Ministerio de Justicia correspondiente:

cat tmp.txt | sed -r 's/([0-9]{2})-([0-9]{2})-([0-9]{2})$/http:\/\/spij.minjus.gob.pe\/Normas\/textos\/\1\2\3T\.pdf/g' > coincidencias.txt

Y ya tenemos listos nuestros tuis:

2009-07-02 | ABATE LUCIANO, LUCIO es indultado por Alan García, reincide en el delito poco después | http://spij.minjus.gob.pe/Normas/textos/020709T.pdf
2009-01-14 | AGUILAR TALAVERANO, JUAN es indultado por Alan García, reincide en el delito poco después | http://spij.minjus.gob.pe/Normas/textos/140109T.pdf
2009-05-12 | ALARCON MORA, MIGUEL es indultado por Alan García, reincide en el delito poco después | http://spij.minjus.gob.pe/Normas/textos/120509T.pdf
2010-01-28 | AGUIRRE ANGELES, ELVIS es indultado por Alan García, reincide en el delito poco después | http://spij.minjus.gob.pe/Normas/textos/280110T.pdf
2009-02-27 | AGUIRRE ANGULO, OMAR es indultado por Alan García, reincide en el delito poco después | http://spij.minjus.gob.pe/Normas/textos/270209T.pdf
2009-04-30 | ALCARRAZ CAMPOS, ABRAHAM es indultado por Alan García, reincide en el delito poco después | http://spij.minjus.gob.pe/Normas/textos/300409T.pdf
2010-04-17 | ALMEYDA LEON, CESAR es indultado por Alan García, reincide en el delito poco después | http://spij.minjus.gob.pe/Normas/textos/170410T.pdf
2009-06-17 | AMPARADO AMPARADO, ROLANDO es indultado por Alan García, reincide en el delito poco después | http://spij.minjus.gob.pe/Normas/textos/170609T.pdf
2010-01-29 | ALVAREZ RENGIFO, LUIS es indultado por Alan García, reincide en el delito poco después | http://spij.minjus.gob.pe/Normas/textos/290110T.pdf
2008-12-16 | ANDAVIZA CHILET, NILDA es indultado por Alan García, reincide en el delito poco después | http://spij.minjus.gob.pe/Normas/textos/161208T.pdf
...

Ahora necesitamos crear un tuitbot

Necesitamos crear una cuenta en twitter, y una cuenta en bit.ly para que convierta los links a una versión corta. Instalamos el programa llamado t que puede tuitear desde la línea de comandos de Linux (lo descargan de aquí y sigan las intrucciones). Luego de autenticar el programa t podemos hacer un tuit con el siguiente comando:

t update "Este es mi primer tuit"

Ahora necesitamos un script que vaya línea por línea de nuestro archivo coincidencias.txt y compare la fecha actual con la fecha en que se emitieron los indultos/conmutaciones. Si las fechas coinciden en mes y dia, se emite el tuit. Escribí ese script usando el lenguage Python y aquí está:

Archivo tuit.py:

#!/usr/bin/env python
# -*- coding: UTF8 -*-
import codecs;
import os;
import datetime;
import re;
import bitly;
import subprocess;
import time;

# This script will look for an event matching today's date and will tuit it
# using https://github.com/sferik/t twitter's client

# t update "mi primer tuit"

# api details for bitly
API_USERNAME = 'Usar tu propio username'
API_KEY      = 'Usar tu propia api_key para bitly'

# get current date mm-dd
today = str(datetime.date.today());
today = re.sub("^[0-9]{4}-", "", today);

# create a log file
file_log = open("log.txt", "a");

# read data
file = "coincidencias.txt";
data_file = codecs.open(file, "r", encoding="utf-8");

def format_date(date):
    date = date.strip()
    d = datetime.datetime.strptime(date, "%Y-%m-%d")
    try:
        return d.strftime("%d de %b %Y");
    except:
        date = date.split("-");
        if date[1] == "07":
            month = "Jul";
        return re.sub("^0", "", date[2]) + " de " + month + " " + date[0]

tuits = []

# process data
for line in data_file:
    line = line.split("|");
    # date as mm-dd
    date = re.sub("^[0-9]{4}-", "", line[0].strip())
    if date == today:
        event = line[1].strip()

        link = line[2].strip();
        shortUrl = bitly.Api(login=API_USERNAME, apikey=API_KEY).shorten(link)

        formatted_date = format_date(line[0]);
        f.write(formatted_date + "\n")

        tuit = formatted_date + ": " + event + " " + shortUrl;

        cmd = '/usr/local/bin/t update "' + tuit + '"';
        tuits.append(cmd)

# count number of tuits for today
n_tuits = len(tuits)
if n_tuits > 0:
    timeToSleep = 6.0*60*60/n_tuits
else:
    timeToSleep = 1;

print "N tuits: " + str(n_tuits)
file_log.write("N tuits: " + str(n_tuits) + "\n");

print "Time to sleep between tuits: " + str(timeToSleep)
file_log.write("Time to sleep between tuits: " + str(timeToSleep) + "\n");

for cmd in tuits:
    p = subprocess.check_call(cmd, shell=True);

    if p == 0:
        # sleep for some time within 6 hour shift
        time.sleep(timeToSleep)

data_file.close();
file_log.close();

Si hay varios tuits para tuitear por día, este script esperará unas horas entre cada tuit. Para no tener que correr el programa manualmente todos los días podemos utilizar un cronjob para que se ejecute automaticamente todos los días. Aprovechando que la computadora de mi oficia está siempre prendida, puedo crear un cronjob:

crontab -l
00 08 * * * python tuit.py

En este caso el script se ejecutará automáticamente todos los días a las 8:00 am y emitirá tuits parecidos a este:

24 de Jul 2011: URSULA VELASQUEZ, PAREJA es indultada por Alan García, reincide en el delito poco después bit.ly/142iKgw

Los narcoindultados con fecha de indulto usando Linux

Português: O presidente do Peru Alan García em...

Português: O presidente do Peru Alan García em Brasília. Português: El presidente de Perú Alan García en Brasília. (Photo credit: Wikipedia)

En un post anterior describí un ejercicio de cómo utilizar herramientas de Linux para encontrar en qué fecha del segundo gobierno de Alan García se emitieron indultos y conmutaciones de penas a personas que luego habían reincidido en el delito.

Aquella oportunidad solo bajé tres Normas de la página web del Ministerio de Justicia y había encontrado una beneficiada con la gracia presidencial que había reincido en el tráfico ilícito de drogas.

En este post describo cómo hice para encontrar la fecha de indulto/conmutación de pena de un buen número de reincidentes de la lista publicada por el periodista Martín Hidalgo en su cuenta de Scribd.

Descargar la lista contenida en cinco archivos:

Convertir los PDFs a archivos de imagen, usar OCR para convertir la imagen a texto y agrupar todos los nombres en un solo archivo:

# Convertir los PDFs a archivos de imagen
pdfimages 134323216-DOC1.pdf doc1
pdfimages 134323989-DOC2.pdf doc2
pdfimages 134324226-DOC3.pdf doc3
pdfimages 134324446-DOC4.pdf doc4
pdfimages 134324573-DOC5.pdf doc5

# aplicar OCR a las imágenes
tesseract doc1-000.ppm doc1 -l spa
tesseract doc2-000.ppm doc2 -l spa
tesseract doc3-000.ppm doc3 -l spa
tesseract doc4-000.ppm doc4 -l spa
tesseract doc5-000.ppm doc5 -l spa

# eliminar líneas en blanco y juntar todos los nombres en un solo archivo
cat doc1.txt doc2.txt doc3.txt doc4.txt | sed '/^\s*$/d' | sort -u > angelitos.txt

Luego es necesario una pequeña edición manual del archivo angelitos.txt para eliminar línes que contengan fechas y otro texto que no sean nombres y nos aseguramos que haya un nombre por línea. Obtenemos en total 161 líneas/nombres.

Ahora tenemos que descargar todas las Normas legales emitidas por el Ministerio de Justicia durante el segundo gobierno de Alan García, las cuales incluyen los nombres de los indultados y cantidad de pena que les fue reducida.
Ese periodo de tiempo tiene 1,826 días y para no bajar los PDFs manualmente, podemos usar para la descarga una herramienta de Linux muy útil llamada curl.

Podemos crear un archivo de texto llamado lista_URL.txt conteniendo los comandos necesarios para bajar los PDFs.

## Lista de links de las Normas del Ministerio de Justicia del 2006 al 2011

# Bajar fechas 00-01-06 hasta 39-09-09
curl -o '#1#2-0#3-0#4.pdf' 'http://spij.minjus.gob.pe/Normas/textos/[0-1][0-1]0[1-1]0[6-6]T.pdf'
sleep $[ ( RANDOM % 10 ) + 1]m

# Bajar fechas 00-01-06 hasta 39-09-09
curl -o '#1#2-0#3-0#4.pdf' 'http://spij.minjus.gob.pe/Normas/textos/[0-3][0-9]0[1-9]0[6-9]T.pdf'
sleep $[ ( RANDOM % 10 ) + 1]m

# Bajar fechas 00-01-10 hasta 39-09-11
curl -o '#1#2-0#3-#4.pdf' 'http://spij.minjus.gob.pe/Normas/textos/[0-3][0-9]0[1-9][10-11]T.pdf'
sleep $[ ( RANDOM % 10 ) + 1]m

# Bajar fechas 00-10-06 hasta 39-12-09
curl -o '#1#2-1#3-0#4.pdf' 'http://spij.minjus.gob.pe/Normas/textos/[0-3][0-9]1[0-2]0[6-9]T.pdf'
sleep $[ ( RANDOM % 10 ) + 1]m

# Bajar fechas 00-10-10 hasta 39-12-11
curl -o '#1#2-1#3-#4.pdf' 'http://spij.minjus.gob.pe/Normas/textos/[0-3][0-9]1[0-2][10-11]T.pdf'

Podemos correr el programa usando el comando:’

nohup bash lista_URL.txt &

Ejecuté el comando en la computadora de la oficina que está prendida todo el día, todos los días, y me fui a dormir.

Al día siguiente encontré que habían 2,880 archivos descargados, de los cuales muchos eran falso positivos debido a fechas inexistentes (por ejemplo 00-01-06, el 0 de Enero del 2006) y pesan 1245 bytes. Los removemos y solo quedaron 2,184 archivos (los que pesan en total 1.2 Gigabytes!):

find ./ -size 1245c -print0 | xargs -0 rm

Durante el periodo 2006-2011 hay 2,190 días, por lo tanto al tener 2,184 archivos podemos estar seguros que tenemos la gran mayoría. Incluidos están archivos emitidos durante el gobierno de Toledo (inicio del año 2006) y durante el gobierno de Humala (segunda mitad del 2011), pero es no es muy importante para nuestros fines.

Luego hay que convertir todos los PDFs a texto con el comando:

for f in *pdf; do pdftotext -q $f; done

Esta vez los .txt archivos producidos pesan en total 639 Megabytes.

Hacemos la búsqueda de cada uno de los nombres en TODOS los archivos .txt que corresponden a las Normas emitidas por el minjus:

cat angelitos.txt | awk '{print $1 " " $2 ", " $3}' | parallel grep -i {} *.txt > coincidencias.txt

Luego de un rato el archivo coincidencias.txt tiene la lista de nombres de reincidentes que aparecen en al menos un archivo del Ministerio de Justicia. Hay 138 coincidencias en total:

02-07-09.txt:8. ABATE LUCIANO, LUCIO, conmutarle de 05 años 06 meses a 03 años 07 meses de
14-01-09.txt:56. AGUILAR TALAVERANO, JUAN CARLOS o AGUILA TALAVERANO, JUAN CARLOS,
12-05-09.txt:18. ALARCON MORA, MIGUEL ANGEL, conmutarle de 08 años a 06 años 08 meses de
28-01-10.txt:43. AGUIRRE ANGELES, ELVIS EDWIN, conmutarle de 04 años a 02 años de pena
27-02-09.txt:6. AGUIRRE ANGULO, OMAR WILLIAMS, conmutarle de 07 años a 04 años 04 meses
30-04-09.txt:7. ALCARRAZ CAMPOS, ABRAHAM, conmutarle de 05 años a 03 años 08 meses de
17-04-10.txt:13. ALMEYDA LEON, CESAR ARTURO, conmutarle de 05 años a 03 años de pena
17-06-09.txt:45. AMPARADO AMPARADO, ROLANDO WALTER o PAJARITO AMPARADO,
29-01-10.txt:18. ALVAREZ RENGIFO, LUIS ALFONSO, conmutarle de 10 años a 04 años 06
16-12-08.txt:61. ANDAVIZA CHILET, NILDA KARINA, conmutarle de 13 años a 10 años 10 meses de

… etc

Entonces si queremos averiguar en qué fecha fueron indultados aquellos que reincidieron por tráfico de drogas:

cat angelitos.txt | grep -i DROGA

Vemos que hay 22 angelitos que reincidieron con ese delito:

CHOQUEHUANCA ANCO, MAURO MANUEL 17/12/2011 297 TRAFICO ILICITO DE DROGAS — FORM EP. ANCON
CONDORI TITO, BLANCA NIEVES 05/05/2007 TRAFICO ILICITO DE DROGAS EP. MUJERES CHORRILLOS
QUISPE PACHECO, LUZ ISABEL 30/03/2011 TRAFICO ILICITO DE DROGAS EP. MUJERES CHORRILLOS
JARAMILLO BRIGIDO, CLINIA 11/06/2012 297 TRAFICO ILICITO DE DROGAS — FORM  EP. MUJERES CHORRILLOS
MAYORGA PIMENTEL, HENRY JESUS 29/04/2010 297 TRAFICO ILICITO DE DROGAS — FORM EP. HUACHO
AGUILAR TALAVERANO, JUAN CARLOS  07/09/2011 297 TRAFICO ILICITO DE DROGAS - FORM EP. HUACHO
CARRASCO SARMIENTO, MIGUEL ANGEL 03/12/2010 TRAFICO ILICITO DE DROGAS EP. HUARAL
BERNAL AGUILAR, JONATHAN 01/10/2010 TRAFICO ILICITO DE DROGAS EP. HUARAL
TERAN MERCADO, JUAN CARLOS 15/04/2010 TRAFICO ILICITO DE DROGAS EP. HUARAL
PACHECO HERBOZO, MIGUEL ANTONIO 26/05/2011 TRAFICO ILICITO DE DROGAS EP, HUARAL
PANTA CASTILLO, OSCAR 23/01/2011 TRAFICO ILICITO DE DROGAS UBICACIÓN ACTUAL ' EP. HUARAL
ENRIQUEZ DIAZ, JAIME 29/11/2009 TRAFICO ILICITO DE DROGAS EP. HUARAL
PORTILLA PAREDES, ALEX BEDER 24/01/2010 TRAFICO ILICITO DE DROGAS EP. HUARAL
MARTINEZ GONZALES, JORGE HUMBERTO 11/11/2009 TRAFICO ILICITO DE DROGAS EP. HUARAL
LEVANO VENERO, JOHN ANTHONY 07/10/2011 TRAFICO ILICITO DE DROGAS EP. HUARAL
MONTOYA GONZALES, JUAN JOSE 01/06/2011 TRAFICO ILICITO DE DROGAS EP. HUARAL
MORILLO PUELLES, Francisca 03/04/2012 TRAFICO ILICITO DE DROGAS EP. HUARAZ
CANO VASQUEZ, Yuri Cesar 07/09/2009 TRAFICO ILICITO DE DROGAS EP‘ ICA
CUELLAR USURIANO, Julia 18/11/2010 TRAFICO ILICITO DE DROGAS EP. ICA
MENDOZA CASTRO, Carlos Alberto 31/10/2012 TRAFICO ILICITO DE DROGAS
PRINCIPE CLAUDIO, CeIestina 09/02/2013 TRAFICO ILICITO DE DROGAS EP. ICA
RODRIGUEZ ROSADO, Sarita Veronica 30/03/2011 TRAFICO ILICITO DE DROGAS EP. ICA

Y averiguamos en qué fechas fueron indultados con el siguiente comando:

cat angelitos.txt | grep -i DROGA | awk '{print $1 " " $2 " " $3}' | while read NOMBRE; do grep -i "${NOMBRE}" coincidencias.txt; done

Siendo este el resultado (son en total 138 coincidencias)

11-12-09.txt:11. CHOQUEHUANCA ANCO, MAURO MANUEL, conmutarle de 07 años a 03 años de
20-02-10.txt:7. CONDORI TITO, BLANCA NIEVES, conmutarle de 09 años a 04 años de pena privativa
17-04-10.txt:12. QUISPE PACHECO, LUZ ISABEL, conmutarle de 06 años a 03 años de pena
04-05-10.txt:62. JARAMILLO BRIGIDO, CLINIA, conmutarle de 08 años a 07 años 10 meses de
23-04-09.txt:28. MAYORGA PIMENTEL, HENRY JESUS, conmutarle de 15 años a 09 años 02 meses
14-01-09.txt:56. AGUILAR TALAVERANO, JUAN CARLOS o AGUILA TALAVERANO, JUAN CARLOS,
04-02-10.txt:3. CARRASCO SARMIENTO, MIGUEL ANGEL, conmutarle de 07 años a 03 años 06
09-02-10.txt:5. BERNAL AGUILAR, JONATHAN o BERNAL AGUILAR, YONATHAN, conmutarle
12-05-09.txt:23. TERAN MERCADO, JUAN CARLOS, conmutarle de 06 años a 03 años de pena
04-02-10.txt:12. PACHECO HERBOZO, MIGUEL ANTONIO, conmutarle de 03 años a 01 año 06
16-12-08.txt:28. PANTA CASTILLO, OSCAR, conmutarle de 05 años a 04 años de pena privativa de
14-01-09.txt:22. ENRIQUEZ DIAZ, JAIME o ENRIQUE DIAZ, JAIME, conmutarle de 04 años a 03 años
01-05-09.txt:4. PORTILLA PAREDES, ALEX BEDER, conmutarle de 15 años a 07 años 07 meses de
09-01-09.txt:11. MARTINEZ GONZALES, JORGE HUMBERTO, conmutarle de 05 años a 03 años 06
17-12-10.txt:4. LEVANO VENERO, JOHN ANTHONY o LEVANO VENERO, JHON ANTHONY,
16-12-08.txt:40. MONTOYA GONZALES, JUAN JOSE, conmutarle de 06 años a 05 años de pena
22-12-09.txt:11. MORILLO PUELLES, FRANCISCA, conmutarle de 07 años a 03 años de pena
25-04-09.txt:8. CANO VASQUEZ, YURI CESAR o CANO VASQUEZ, CESAR o GUZMAN VASQUEZ,
09-05-09.txt:47. CUELLAR USURIANO, JULIA, conmutarle de 08 años a 05 años de pena privativa de
11-12-08.txt:75. MENDOZA CASTRO, CARLOS ALBERTO, conmutarle de 06 años y 06 meses a 05
01-01-09.txt:31. RODRIGUEZ ROSADO, SARITA VERONICA, conmutarle de 07 años a 03 años de

Es interesante ver que a varios les redujeron la pena a la mitad o más de la mitad. En el supuesto que se haya estado cobrando por indultar presos, a estos les debe haber salido caro la reduccion de pena de 7 a 3 años (MAURO CHOQUEHUANCA, indultado el 11 de Diciembre del 2009) y de 15 a 7 años (ALEX PORTILLA indultado el 1 de Mayo del 2009).

He creado un archivo Torrent donde he colgado todos los archivos PDF y TXT para que te los puedas descargar. Recuerda que son 4,368 archivos y pesan en total 1.9 Gigabytes. Los ministerios deberían poner a disposición todas sus normas para descargarlas en masa y no tener que hacer este tipo de artilugios.

Usando herramientas de Linux con los narcoindultos

Alan García Pérez

Alan García Pérez (Photo credit: Wikipedia)

El tuit de Ben Solís me dio una idea:

Creo que las herramientas de Linux pueden ser de mucha ayuda para “parsear” información presente en documentos PDF y texto para obtener información de importancia periodística.

Miremos la información que se puede obtener en el caso de los #narcoindultos durante el segundo gobierno de Alan García.

El periodista Martín Hidalgo ha colgado documentos en su cuenta de Scribd conteniendo la lista de indultados por Alan García (segundo gobierno) que habían reincidido y otra vez estaban siendo procesados por diversos delitos.

Este es uno de los archivos:

Bajé los 5 documentos que eran imagénes escaneadas que habían sido convertidas a PDF. Es mejor tener la información en texto par que pueda ser trabajado. Entonces había que convertir el PDF -> en imagen -> a texto.

Existen varias herramientas en linux s que pueden ayudar con esto: todos los comandos son ejecutados desde la consola debcomandos o terminal:

# extraer la imagen desde el PDF
pdfimages DOC2.pdf doc2

Con lo que obtuve el archivo de imagen doc2-000.ppm

Para convertir la imagen a texto podemos usar la herramienta OCR llamada tesseract:

# convertir imagen a texto
tesseract doc2-000.ppm doc2 -l spa# eliminar líneas en blanco
sed -i '/^\s*$/d' doc2.txt

Obtuve el archivo de texto doc2.txt conteniendo todos los nombres. Luego de corregir algunas pequeñas fallas, y ordenar la lista de tal manera que quede un nombre por línea era cuestión de comparar esta lista con los decretos presidenciales para averiguar en qué fecha les fue otorgado us narcoindultos.

La web del min de justicia tiene colgados pdfs de todas sus normas, incluyendo los narcoindultos. Usando google encontré que estos archivos están ordenados por fecha con un formato masomenos consistente:

Por ejemplo, para el 4 de Mayo del 2010 el archivo correspondiente es está en esta dirección http://spij.minjus.gob.pe/Normas/textos/040510T.pdf

Para bajar los PDFs en grupo escribí una dirección web por línea usando un editor de texto cualquiera:

Grabé el archivo con el nombre list.txt y usé el comando de Linux wget para bajar todos los archivos de la lista:

wget -i list.txt

Luego de ejecutarse la descarga obtuve estos archivos:

-rw-rw-r-- 1 289847 Oct 15  2010 050510T.pdf
-rw-rw-r-- 1 257893 Oct 15  2010 040510T.pdf
-rw-rw-r-- 1 112326 Oct 15  2010 030510T.pdf

No es necesario usar OCR para convertir estos PDFs a texto:

pdftotext 030510T.pdf
pdftotext 040510T.pdf
pdftotext 050510T.pdf

Con lo que obtuve los archivos en texto con la extensión cambiada a .txt

Luego es cuestion de hacer un simple “crossover” de la lista de indultados que han reincidido versus los archivos de texto conteniendo las normas del Ministerio de Justicia:

cat doc2.txt | awk '{print $1 " " $2 ", " $3}' | while read APELLIDOS; do grep "${APELLIDOS}" *.txt ; done

Ese comando se asegura que los nombres de los indultados estén en el formato usado por el minjus (Apellido Paterno Apellido Materno “coma” Primer Nombre). Luego hace una búsqueda de cada nombre en todos los archivos .TXT que tenemos en el actual directorio.

040510T.txt:62. JARAMILLO BRIGIDO, CLINIA, conmutarle de 08 años a 07 años 10 meses de
040510T.txt:6. VELA TAMANI, ALEX, conmutarle de 04 años a 02 años 06 meses de pena

Bingo!

Hay dos coincidencias:

Si revisamos el archivo con la lista de indultados (doc2.txt) vemos que JARAMILLO BRIGIDO, CLINIA ha vuelto a ser procesada por el delito de tráfico ilícito de drogas. Es este un narcoindulto?

Imagínese lo que podríamos encontrar si bajamos TODAS las normas emitidas por el minjus durante el período 2006-2011 y buscar cuandó es que fueron indultados estos angelitos. Podríamos hacer un tuit ese día recordando que se le dio la gracia presidencial a alguien que talvez no lo necesitaba y bajo muy sospechosas circunstancias (tomando en cuenta todo lo que sabemos acerca de los posibles pagos bajo la mesa).