menéame, novedades, pruebas, software

«Stemmer» en castellano del buscador

Queda un problema con el buscador: que también busque por palabras raíces, y derivadas del lexema original. Con eso se mejora la búsqueda porque también busca las palabras en plural/singular, masculino/femenino, en diferentes tiempos verbales, gerundio, etc.

Para realizar ese proceso se reducen las palabras a sus lexemas básicos, el proceso se denomina stemming. El Sphinx sólo trae stemmers en inglés y ruso, afortunadamente Jose Manuel Peso desarrolló un stemmer castellano para el Sphinx. El problema es que ya no funcionaba con la última versión del Sphinx, por lo que le hice unas pocas modificaciones (parche) y ya lo tenemos en marcha.

Espero que mejore aún más la calidad de los resultados. Si no es así seguro que nos enteraremos rápido 😉

13 comentarios en “«Stemmer» en castellano del buscador

  1. Esteve

    Sólo un comentario, más de estilo que de otra cosa. Veo que sphinx está hecho en C++ y no sé hasta qué punto es cosa del parche original, pero ¿porqué el parche usa cosas propias de C, en lugar de C++? Me refiero a punteros, printf, casts de C, for(,,,) en lugar de iteradores, etc.

    ¿Es por alguna razón en especial o porque sigue el estilo del resto del código de Sphinx?

  2. gallir, en realidad no creo que sea un problema, es como dices poner las palabras claves correctas, pero a veces eso es mas dificil de lo que parece.

    Igual creo que un defecto es que siempre busca por lo que veo con un OR y eso arroja muchos mas resultados, creo que si fueran con AND seria mejor.

    Por cierto, que raro es hablar con una celebridad web como tu :P, y que atiendas mis consultas todo una hallazgo en los tiempos que corren, gracias.

    Salu2.

  3. hernan:

    > Igual creo que un defecto es que siempre busca por lo que veo con un OR y eso arroja muchos mas resultados, creo que si fueran con AND seria mejor.

    Las búsquedas por varias palabras tiene varias fases. Primero busca las que tengan la frase, si coinciden aparecen primero y ordenadas por fecha.

    Luego busca las que tengan todas las palabras (como un AND), si encuentra alguna las ordena pro fechas como la anterior.

    Finalmente busca por cualquiera de las palabras y las ordena por relevancia, después de las anteriores.

    > Por cierto, que raro es hablar con una celebridad web como tu :P, y que atiendas mis consultas todo una hallazgo en los tiempos que corren, gracias.

    Estáis mal acostumbrado al «estrellato» y los «A-list» que se creen estrellas 🙂
    Pero si dedico tiempo al nevagador es porque quiero mejorarlo, si lo cuento en el blog es para ver cómo va, si alguien me cuenta problemas, me interesa. ¿No debería ser lo normal?

    Padre

    Busca en las descartadas de los últimos 4 días, es para no llenar de resultados con descartadas.

  4. Vuelvo por aqui al ver algo que se repite en meneame. Algunos usuarios nuevos o con poca actividad son mas propensos a votar de forma «negativa», y lo digo porque califican de amarillista o erronea cosas que no son.

    Dejo planteada la necesidad de recortar el derecho de votar «negativo» a ciertos usuarios, dandolo por actividad o algo asi.

    Salu2.

  5. weiskoff

    Buenas,

    ¿Habéis intentado instalar el patch en las últimas versiones como la 0.9.8-r1065 o 0.9.8-r1112?

    No sé si se trata de mi ineptitud o que el código de los ficheros sphinx.cpp, sphinx.h y sphinxstemen.cpp ha cambiado de sobremanera.

    En cualquier caso he intentado modifcar el patch o hacer los cambios a mano en los ficheros y no hay manera. Tampoco soy muy ducho en C++ que digamos :(.

    En fin, me quedaré a la espera de que algún alma caritativa tenga el tiempo y conocimientos necesarios para poder instalar el stemmer en castellano para las nuevas versiones (algo de lo que estaré harto agradecido).

    Saludos :).

  6. weiskoff

    Bueno,

    Digamos que he cambiado a mano los ficheros sphinx.cpp, sphinxstem.h, los makefiles y he creado un sphinxstemes.cpp con las reglas del stemmer en castellano y funciona perfectamente.

    Un saludo

Deja una respuesta

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.