Concepto de similaridad y modelo de espacio vectorial

¿Cómo definimos la similaridad entre 2 cosas?

Es fácil decir que una persona se parece a otra, pero ¿con base en qué lo aseguramos? Color de piel, ojos, rasgos en común, tipo de peinado, forma de la cara, etc., son algunos de los factores que nos ayudan a decidir si una persona es similar a otra. Pero, ¿cómo llevamos esto a palabras?

Cuando decimos que una palabra “se parece” a otra, podemos enforcarnos en 2 aspectos: sintáctico y semántico. Por ello, necesitamos encontrar en cada caso factores que nos ayuden a determinar qué tan similares o diferentes son 2 palabras. Por el momento, aquí nos enfocaremos al aspecto sintáctico.

Continue reading “Concepto de similaridad y modelo de espacio vectorial”

Índice invertido, búsqueda booleana y vector de términos

Ya tenía un buen rato de no publicar nada aquí. Es un tema al que le quiero dar mucho más seguimiento, así que de lleno al tema.

En la entrega anterior vimos stemming, el cual es un paso importante en el preproceso de documentos, ya que nos permite trabajar con las raíces de las palabras y no con sus derivaciones, reduciendo el número de vocablos con el que tenemos que trabajar y al mismo tiempo “juntando” palabras que posiblemente tengan alguna relación (como “caminar” y “caminante”). Ahora es momento de usarlo para crear un índice que nos ayude a encontrar documentos fácilmente.

Continue reading “Índice invertido, búsqueda booleana y vector de términos”

0) Prólogo

Antes de que se vayan a hacer una idea diferente o extraña: están leyendo algo escrito por alguien que no se considera, ni nunca se ha considerado, atractivo. Asimismo, siempre tuve un complejo de inferioridad en lo que a chicas respecta: no me daba miedo hablarles y era fácil hacer amigas, pero en los casos en donde había sentimientos de por medio, siempre me consideré inferior a otros posibles prospectos que la dama en cuestión pudiera tener. Es raro, pero siempre pensé que no tenía temas de conversación y me imaginaba que las mujeres que hablarían conmigo se aburrirían al instante al escuchar alguna de mis pláticas.

Continue reading “0) Prólogo”

A) Aclaraciones y detalles del tema

Durante todos los años que este blog ha existido, solamente durante un tiempo mencioné algo respecto a mi vida amorosa por acá, pero después de un tiempo dejé de hacerlo simplemente porque es algo muy personal y no necesariamente tenía que estar actualizando todo lo que me sucedía en ese aspecto.

Lo más curioso de todo esto ha sido que he recibido quejas y reclamos de gente que conozco en México, por no hacer pública en Facebook mi vida privada. Para la gente que me conoce o que me sigue o ha visto mis mensajes en Twitter, no es sorpresa que no casi no toque Facebook, y que no acepte a muchas de las invitaciones de amistad que me hacen por ese medio. Llámenme viejo, “old-fashion” o similares, pero aunque las redes sociales llegaron para quedarse y ahora juegan un papel muy importante en la comunicación, siento que no necesariamente todo se debe compartir con todo el mundo.

Continue reading “A) Aclaraciones y detalles del tema”

Typeclasses

Cuando se lee el término “typeclasses” por primera vez, causa confusión debido a que pensamos o en tipos o en clases, pero no en un término compuesto por ambas palabras. No obstante, el concepto es simple y muy poderoso, y seguramente quienes tienen experiencia con Java o lenguajes similares habrán usando algo similar sin saberlo.

Continue reading “Typeclasses”

AGDQ 2015

Hace tiempo escribí sobre speedrunning, actividad que se ha convertido en uno de mis pasatiempos favoritos. Dentro de ese mundo, hay muchos maratones que se llevan a cabo alrededor del planeta, la mayoría con fines caritativos, pero sin lugar a dudas el evento más importante es AGDQ (Awesome Games Done Quick), que se lleva a cabo a principios de año.

En 2014 hubo muchas sorpresas en el evento, como los famosos runs de Punch Out con los ojos vendados, la increíble carrera de Super Metroid, o el gran final con Chrono Trigger y el Wondershot de Lucca para vencer a Lavos; pero lo más importante fue sin duda que se recolectaron más de un millón de dólares en donaciones dirigidas a “Doctores sin fronteras”.

El evento de este año será del 4 al 10 de enero. Los horarios los pueden ver aquí. La página ajusta automáticamente los horarios a su zona horaria.

Mis recomendaciones:

  • Los TASbot. Programas que juegan títulos de forma automática.
  • F-Zero GX. El run del año pasado fue muy bueno.
  • Contra y Battletoads. Ambos serán carreras, y participará TheMexicanRunner, un speedrunner originario de Veracruz.
  • I Wanna be the Boshy. Para la gente que le gusta sufrir con juegos de plataformas.
  • Kaizo Mario World. Un ROM basado en Super Mario World, pero endiabladamente difícil.
  • Mega Man X. Carrera entre 4 personas. Se espera un buen de hype aquí.
  • Punch Out!! de NES y Wii. Ejecutadas por los mismos jugadores del año pasado.
  • The Legend of Zelda, A Link to the Past. La categoría sera “All Dungeons”, y será ejecutada por Andy. No hace falta mencionar que es el título que yo también practico.
  • Kingdom Hearts. Todavía no se decide si será el 1 o el 2, pero el que sea, los run son muy buenos.
  • Final Fantasy VII. Versión PC. Estimado en 3 horas.
  • Super Metroid. Ahora la carrera será entre 2, y la categoría sería 100%.
  • El gran final: The Legend of Zelda: Ocarina of Time. Categoría 100%. Ésta vale muchísimo la pena porque el juego es muy competido y porque hay un buen de trucos que se usan.

Las donaciones recibidas en AGDQ serán dirigidas a la fundación “Prevent Cancer”. Hay muchas formas de donar y pueden ganar premios interesantes al momento de hacer donaciones. Yo siempre contribuyo comprando las camisetas conmemorativas que TheYetee vende exclusivamente para este evento.

No importa si no pueden donar, les recomiendo mucho el evento si les gustan los videojuegos, y sobre todo si jugaron algún título en el pasado, les costó trabajo, y sale en el evento, pues los speedrunners prácticamente los destruyen, y uno queda totalmente sorprendido de ver lo rápido que los terminan.

Para concluír, sí le he estado dedicando algo de tiempo a los speedruns de Zelda: A Link to the past. El que puse en la entrada de speedrunning lo logré en un tiempo de 1:59:19, pero mi mejor tiempo actual es 1:34:26, es decir, he logrado bajarle cerca de 25 minutos. Dejo el video abajo por si a alguien le interesa verlo.

[youtube]https://www.youtube.com/watch?v=botwKWKLJgQ&list=UUysQVUQ5fq8Thvt5X3GhN-Q[/youtube]

¡Feliz 2015!

2015postal

Se fue el año del caballo y llega el año de la oveja  (o del borrego, como me gusta decirle, jeje). Normalmente oveja se escribe 羊, pero cuando se hace referencia al año del calendario chino se usa el kanji 未. Ambos se leen (en este caso) “Hitsuji”.

Este año tiene un significado interesante para mí, ya que en abril se cumplirán 12 años desde que dejé mi tierra para venir al país del sol naciente, y el calendario chino consiste en 12 animales. Esto quiere decir que ya he cumplido un ciclo en este país. Pero aunque en mi caso es algo simbólico, en la vida de una persona significa un ciclo menos para darle la vuelta al calendario, es decir: el calendario chino (干支, “eto” en japonés) se compone de 5 ciclos de 12 animales, de ahí que cuando alguien cumple 60 años en Japón es un suceso importante, y de ahí surge el término 「還暦」 (kanreki) que literalmente quiere decir “vuelta al calendario”, “volver al calendario”. Ciertamente me faltarían 48 años para que esto fuera más “relevante”, pero al menos con mi edad actual me faltan nada más 2 ciclos para darle la vuelta completa al calendario.

En fin… Este año verán cambios en el blog; algunos ya están planeados y nada más es cuestión de que me ponga a ejecutarlos, mientras que otros están en calidad de ideas por el momento. He estado definiendo los límites de los 2 hilos de historias sobre Japón que prometí al final de los años maravillosos, y aunque no quiero revelar nada todavía (que por cierto a algunos de los lectores que me han escrito por correo ya les he dicho de qué se tratará el asunto), sí les puedo decir que no serán tan largos como los años maravillosos ni tampoco me tomará una eternidad terminar esas series.

Seguiré también con el lado técnico del blog, especialmente con temas de procesamiento de lenguaje natural que he tenido muy abandonado en estos años. ¿Programación funcional? Sip. Concluiré la serie de escritos introductorios al tema.

Intentaré también escribir un poco más seguido sobre animación y cómics japoneses.

Por lo demás, y en lo que a mi persona se refiere, seguirán viendo cómo cambio e intento adaptarme a las situaciones que se me presentan.  Ya tengo bien definido mi propósito de año nuevo, pero si les digo, seguro estoy que no lo cumpliré, así que mejor le echaré ganas para poder contarles la historia por ahí a mediados de años.

Espero poder contar con su presencia también a lo largo de este año que comienza. Sus comentarios, regaños y palabras de aliento siempre son bien recibidos.

Y para terminar con estilo japonés, y como dice la imagen de arriba:

今年も宜しくお願い致します!

El 2014 en un kanji

Se termina otro año más, y siendo fiel a la tradición en este blog, hay que resumir en un kanji lo que este periodo de tiempo significó para mí.

Para ser sincero, este año estuvo tuvo muchos eventos para olvidar, algunos de los cuales no he tocado todavía aquí, y si hago cuentas seguro que las cosas negativas salen ganando. Sin embargo, hubo una serie de eventos que hicieron que esa mayoría negativa saliera perdiendo y me hicieron recuperar la fe en muchos aspectos, incluyéndome a mí mismo.  Por tanto, los sucesos de este año los represento con el siguiente kanji:

2014Kanji

Tiene varios significados, pero los más importantes son “raro” (en el sentido de algo que no sucede con mucha frecuencia) y “desear” o “esperanza”.

Si a finales de agosto me hubieran preguntado sobre mi kanji del 2014, les habría respondido algo como 「落」(caer), 「絶」 (terminar algo a la mitad, dejar de hacer algo) o similares, pero los últimos 4 meses del año le dieron la voltereta al marcador.

Ya casi pido mi tarjeta VIP en el hospital de la región, pues este año fui más veces de la cuenta, aunque debo reconocer que algunas de ellas fueron por revisiones preventivas. Pero aun así, ya sueño ese hospital.

¿El trabajo? Hmm… es un tema que quiero discutir mucho más a fondo en otro escrito. Por lo pronto mencionaré que está estable, pero no siento que se vaya a mantener así por mucho.

Como sea, el año terminó muy bien; de hecho, mucho mejor de lo que podría haberme imaginado, y por eso hay que llegar con mucha energía al 2015.

Por cierto, el kanji de este año en Japón fue 「」 , que significa “impuesto”. A NADIE le sorprendió, puesto que aunque hubo muchas noticias que causaron revuelo en este país, lo que le afectó a todo el país fue el aumento al impuesto de consumo (lo que sería el IVA en México) de 5 a 8% en abril. No fue, ni está siendo, nada divertido, pero al menos el plan de subirlo a 10% a partir de abril del próximo año ya se pospuso… Al menos es algo.

2015 será, y sin temor a equivocarme, un año que cambiará mi vida por completo y definirá el futuro inmediato (al menos de aquí a unos 2-5 años). Y claro que aquí seguiré escribiendo mil y una cosas, esperando que a alguien le sirvan, ya sea como información o simplemente como entretenimiento al ver cómo alguien como yo se trata de abrir paso en la vida.

Quiero agradecerles a todos ustedes, los lectores, nuevos o ya veteranos, todas sus atenciones en este año que termina. Hubo comentarios de todo, incluyendo trolls; tuve la oportunidad de conocer a varios de ustedes, quienes se tomaron un tiempo durante su viaje por Japón para dedicarlo a una buena plática con su servidor; y en fin, un montón de anécdotas que han sido contadas en su momento en este espacio.

¡Nos vemos el año que entra!

Servicio de arreglo de tumbas

Hace tiempo escribí sobre las Benriya, y explicaba que prácticamente se les puede pedir cualquier cosa que no sea un delito o que tenga tintes sexuales, y también mencioné algunos ejemplos. Bueno, éste es un servicio similar, nada más que dedicado a una tarea muy específica.

tumbadairi

¿Algún familiar o ser querido ya se te adelantó en el camino? ¿Lo extrañas mucho? ¿Quisieras ir a visitar su tumba pero te encuentras tan, pero tan ocupado, que nada más nunca encuentras tiempo para eso? ¡Ya no tienes por qué preocuparte más! Con este servicio, la tumba en cuestión estará perfectamente arreglada y le darás la atención que requiere sin necesidad de estar ahí.

Según el anuncio, el servicio incluye lo siguiente:

  • Lavado con agua.
  • Cortar el césped y recoger la basura que haya alrededor.
  • Ofrenda floral.
  • Incienso.

Y como todo trabajo es profesional, te mandan fotografía de cómo quedó todo una vez que esté terminado. El costo es, como pueden ver, de 16,200 yenes (impuesto incluido), pero también ofrecen descuento si los contratas por año. ¡Y los presupuestos son gratis!

Entiendo perfectamente que el mundo de los vivos siempre está acelerado, y que muchas veces las obligaciones nos “comen” el poco tiempo libre que tenemos, lo que hace que tengamos que cancelar o posponer planes, sobre todo en una sociedad como la japonesa. No obstante, y desde mi muy particular (y 100% rebatible) punto de vista, este tipo de detalles son (o deberían ser) muy personales, y deben (deberían) ser ejecutados por personas cercanas al fallecido. Independientemente de si creen o no en el más allá, en la vida después de la vida, etc., etc., a mí me gusta pensar que la persona que se fue de este mundo estaría mucho más contenta si alguien conocido fuera e hiciera por lo menos una de las tareas que este anuncio ofrece.

Quizá haya lectores que prefieran esta clase de servicios para tener una tumba siempre (o de vez en cuando) limpia y presentable, lo cual es perfectamente válido y respetable, pero yo no concuerdo con ese punto de vista.

Diferencia de culturas. Tengo casi 12 años por acá y Japón no termina de sorprenderme.

Ibus y Ubuntu 14.04

Desde que hice el upgrade a Ubuntu 14.04 siempre tuve problemas al intentar escribir en japonés. Al entrar al sistema podía cambiar normalment el método de escritura en terminales (uso urxvt), gedit, aplicaciones que usan Java (como IntelliJ cuando programo en Scala) o similares, pero no funcionaba en Chrome.

Uso ibus con mozc, por lo que el problema desaparece al ejecutar

$ ibus-daemon -r &

pero aunque esto me permite escribir en japonés en Chrome, por alguna razón me impedía hacerlo en las aplicaciones en las que normalmente podía.

No le di mucha atención a esto hasta ayer, que necesité estar escribiendo japonés en la terminal ya que necesitaba analizar lo que Mecab me regresaba, y eso de estar copiando y pegando japonés de un lado a otro me quitaba tiempo. Si abría gnome-terminal podía escribir sin problemas en japonés, pero no soy fan de esa terminal porque la considero muy “pesada”.

Me puse a buscar razones, y lo que pude encontrar es que ibus tenía problemas con Chrome… pero al parecer ya han sido resueltos. ¿Entonces? A seguir buscando. En eso, en un foro de ArchLinux me encontré con que alguien tenía un problema similar, y ésa era la razón de lo que me sucedía. Normalmente tengo estos valores en estas variables de ambiente:

GTK_IM_MODULE=ibus
QT4_IM_MODULE=ibus
QT_IM_MODULE=ibus
XMODIFIERS=@im=ibus

La información decía que había que reiniciar ibus-daemon con la opción –xim, algo que yo no hacía. Pero, al momento de que ibus es ejecutado automáticamente al entrar al sistema originalmente corre con esa opción. Entonces, mi configuración debería estar mal. Dicho y hecho, cambié algunos valores y todo fue felicidad de nuevo:

GTK_IM_MODULE=xim
QT_IM_MODULE=xim
QT4_IM_MODULE=xim

Debo mencionar que la configuración que originalmente tenía me había servido desde Ubuntu 10.04 y nunca había tenido necesidad de cambiarla, y desde ese entonces ya usaba XMonad como manejador de ventanas. Algo debió haber cambiado en la transición a 14.04 (tenía 12.04 antes de ésa), pero al menos ya puedo escribir en japonés normalmente en todas las aplicaciones (que uso).