“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 ;-)

About these ads

13 pensamientos en ““Stemmer” en castellano del buscador

  1. gallir Autor de la entrada

    hernan, ¿puedes darnos un ejemplo para ver si es un problema y cómo se puede modificar?

    Truco: si salen muchos resultados, usa palabras menos frecuentes, o agrega palabras.

    Responder
  2. 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?

    Responder
  3. hernan

    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.

    Responder
  4. gallir Autor de la entrada

    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.

    Responder
  5. hernan

    ¿No debería ser lo normal?..

    Quizas si, pero como dije sorprende.

    Creo que el volumen de meneos es lo que dificulta la busqueda, haré un mejor esfuerzo en el futuro.

    Gracias y salu2.

    Responder
  6. hernan

    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.

    Responder
  7. 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 :).

    Responder
  8. 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

    Responder
  9. Mateo

    weiskoff estoy intentando utilizar el stemmer castellano en la última 0.9.8 pero no hay manera.

    ¿ Una ayudita por favor ? :)

    Responder

Deja un comentario

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. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s