Cómo crear un motor de búsqueda de texto completo con 150 líneas de código en Python
(bart.degoe.de)Un artículo que explica paso a paso los fundamentos de un motor de búsqueda, sin técnicas especiales, usando el conjunto completo de datos de títulos + resúmenes de la Wikipedia en inglés
-
Preparar los datos creando un objeto
Abstract -
Crear el índice: tokenización y filtrado
→ minúsculas
→ stemming
→ excluir las 25 palabras más usadas en inglés (the, be, to, of, a..)
-
Crear una búsqueda básica
-
Agregar una función de relevancia: Term Frequency (cuántas veces se usa esa palabra en el resumen)
-
Agregar Inverse Document Frequency: la cantidad de otros documentos vinculados a este documento
1 comentarios
Búsqueda difusa de cadenas que también soporta búsqueda por consonantes iniciales del coreano: https://es.news.hada.io/topic?id=3631
Aunque la base técnica y la implementación son completamente distintas a las de este artículo, me pareció una lectura entretenida porque explica con mucho detalle los fundamentos paso a paso.
Hay varias librerías de Python que implementan de forma más completa este tipo de funciones relacionadas con búsqueda de texto completo/modelado de temas/indexación de documentos/similitud.
Whoosh : https://pypi.org/project/Whoosh/
GenSim : https://github.com/RaRe-Technologies/gensim
SQLite tiene una extensión separada para Full-Text Search.