Detección de género para nombres de personas

Estoy trabajando en un programa que indica si el nombre de una persona es de género masculino o femenino. Esta es la primera versión que funciona bastante bien, a pesar de no identificar correctamente algunos nombres. En la página del programa hay una demostración de su uso y las instrucciones para acceder por medio de una interfaz de programación (API) que permite obtener los datos en formatos como JSON y XML.

El programa funciona con un clasificador bayesiano sencillo que deduce los criterios para determinar cuándo se trata de un nombre de hombre o de mujer. Para esto esto tiene en cuenta únicamente las últimas letras de cada nombre y no se basa en una lista de nombres conocidos. Sin embargo, por ahora estoy utilizando una lista de excepciones para corregir los errores conocidos del clasificador.

Escribí el programa en Python utilizando varias librerías adicionales. Primero, implementé el clasificador usando NLTK prácticamente siguiendo los pasos descritos en el libro Natural Language Processing with Python (consultar el capítulo 6). Era la primera que utilizaba esta librería para hacer algo serio y me sorprendió que fuera tan fácil de aprender a utilizar; además de la documentación completa, está el libro, que no sólo es gratuito sino que también explica muy bien los conceptos básicos de procesamiento de lenguaje natural. Por otro lado, para la interfaz web utilicé dos herramientas conocidas: Django y Tastypie.

Los datos de ejemplo fueron reparados minuciosamente por Luis Alfredo Rodríguez y el equipo de Congreso Visible, a quienes agradezco por su trabajo.

Este es el primero de los programas que incluiré dentro de data-toolkit.cavorite.com, el proyecto que agrupará herramientas para la extracción y recuperación de información, el procesamiento de lenguaje natural y el procesamiento de datos en general. Es una iniciativa similar a datasciencetoolkit.org y text-processing.com, pero enfocada en proporcionar herramientas especializadas para acceder a información en español.

gsd

Uno de los tratamientos más comunes para el alcoholismo en Rusia es el torpedo: una cápsula que se inserta debajo de la piel del paciente y que contiene una sustancia que podría matarlo si toma alcohol. Aunque en realidad las consecuencias no son tan graves, parece que el tratamiento es muy efectivo porque el miedo que produce la cápsula es tal que las personas dejan de tomar.

Yo hice algo parecido, aunque mucho menos drástico, para no distraerme tanto cuando estoy en el computador. Comencé a utilizar un script que bloquea los sitios web que normalmente me distraen al agregar sus dominios al archivo /etc/hosts y les asigna la dirección local 127.0.0.1. Eso es suficiente para que cada vez que quiera entrar a alguno de ellos me de cuenta de que no está disponible y siga haciendo lo que tenía que hacer.

Aún cuando puedo desactivarlo cuando quiera para distraerme un rato, me ha servido mucho. No debería sorprenderme, pero es muy fácil engañarme.


Como utilizo dnsmasq, ajusté el script para que actualizara su configuración, en lugar de modificar el archivo /etc/hosts. El código está en mi cuenta de BitBucket.

La historia del torpedo la cuentan en el episodio Help! del podcast RadioLab. Recomendado.