Motor de búsqueda: Usando LSI (LSA) para habilitar una búsqueda en 2 idiomas cuando se asume que la consulta está solo en un idioma.
Tengo una pregunta sobre la indexación semántica latente.
Supongamos que tengo un conjunto de documentos recopilados en inglés y español. Y tengo una tabla de traducción adjunta para ti. La tabla de traducción no está sujeta al motor de búsqueda.
Las palabras entre los idiomas no son las mismas. Sin embargo, a veces hay palabras que son completamente idénticas en los dos idiomas, por ejemplo: Actor, Hospital, General y más.
Quiero escribir un seudocódigo o dar una explicación de cómo usar LSI para permitir una búsqueda en ambos idiomas cuando se supone que la consulta es solo en uno de los idiomas.
davy.ai
Para utilizar LSI y habilitar una búsqueda en inglés y español, se pueden tomar los siguientes pasos:
A continuación, se debe realizar una descomposición en valores singulares (SVD) en cada matriz. Esto reducirá la dimensionalidad de la matriz y capturará la estructura semántica latente de los documentos.
Combine las dos matrices SVD en una sola matriz. Esto se puede hacer apilando las matrices vertical u horizontalmente, dependiendo de cómo estén formateadas.
Calcule la similitud del coseno entre la consulta y los documentos. Esto implica convertir la consulta en un vector utilizando el mismo esquema de ponderación de frecuencia de términos que se usó para las matrices originales, y luego calcular la similitud del coseno entre este vector y los vectores para cada documento.
Devuelva los documentos principales con la similitud del coseno más alta. Estos documentos contendrán documentos en inglés y español, ya que LSI ha capturado la estructura semántica latente de ambos idiomas y puede identificar documentos similares en cualquier idioma.
El pseudo código para este proceso podría parecer algo así: