Luis Beltrán Investigador en Tomás Bata University in Zlín
Docente en Tecnológico Nacional de México en
Celaya
Microsoft MVP en IA, Azure y Tecnologías de
Desarrollador
luis@luisbeltran.mx
@darkicebeam
Azure Cognitive Search
Una solución basada en la nube para:
• Indexar documentos y datos de una variedad
de fuentes.
• Crear soluciones de búsqueda full-text y a
gran escala.
• Utilizar las habilidades cognitivas para
enriquecer los datos del índice.
• Almacenar la información extraída en un
almacén de conocimiento para su análisis e
integración.
Características
• Basado en Apache Lucene, una
biblioteca de software open-
source.
• Análisis y búsqueda full-text
• Acepta diversas fuentes de
datos
• Búsqueda potenciada por IA
• Multilenguaje
• Búsquedas geográficas
• Experiencia de usuario
configurable
Elementos de una solución de
búsqueda Data source
Skillset
Indexer
Index
Elementos de una solución de
búsqueda Data source
Skillset
Indexer
Index
Elementos de una solución de
búsqueda Data source
Skillset
Indexer
Index
Elementos de una solución de
búsqueda
Data source
Skillset
Indexer
Index
Elementos de una solución de
búsqueda
Data source
Skillset
Indexer
Index
{
"name": "index",
"fields": [
{
"name": "content", "type": "Edm.String", "analyzer":
"standard.lucene", "fields": []
}
{
"name": "keyphrases", "type": "Collection(Edm.String)",
"analyzer": "standard.lucene", "fields": []
},
{
"name": "imageTags", "type": "Collection(Edm.String)",
"analyzer": "standard.lucene", "fields": []
},
]
}
Buscar información en línea sigue siendo un desafío, en especial tratar de encontrar información de documentos que no están en un índice de búsqueda.
Por ejemplo, las personas tratan con documentos no estructurados, escritos a mano o a computadora. Con frecuencia, las personas deben leer manualmente estos documentos para extraer información y transcribirlos en otra ubicación con el fin de conservar los datos encontrados. Ahora tenemos soluciones que pueden automatizar la extracción de información.
La minería del conocimiento es el término utilizado para describir soluciones que implican extraer información de grandes volúmenes de datos a menudo no estructurados. Una de estas soluciones de minería de conocimientos es Azure Cognitive Search, un servicio de búsqueda en la nube con herramientas para crear índices administrados por el usuario. Los índices se pueden usar solo para uso interno o para habilitar contenido de búsqueda en activos de Internet públicos.
Azure Cognitive Search puede usar las funcionalidades de inteligencia artificial integradas de Azure Cognitive Services, como el procesamiento de imágenes, la extracción de contenido y el procesamiento del lenguaje natural, para realizar la minería de conocimientos de documentos.
Las capacidades de IA del producto permiten indexar documentos que antes no se podían buscar y extraer y sacar a la superficie información de grandes cantidades de datos rápidamente.
Las organizaciones dependen de la información para tomar decisiones, responder preguntas y funcionar de manera eficiente. El problema para la mayoría de las organizaciones no es la falta de información, sino el desafío de encontrar y extraer la información del conjunto masivo de documentos, bases de datos y otras fuentes en las que se almacena la información.
Por ejemplo, supongamos una agencia que se especializa en organizar viajes a ciudades de todo el mundo. Con el tiempo, la compañía ha acumulado una gran cantidad de información en documentos como folletos, así como reseñas de hoteles enviadas por los clientes. Estos datos son una valiosa fuente de información para los agentes de viajes y los clientes cuando planifican viajes, pero el gran volumen de datos puede dificultar la búsqueda de información relevante para responder a una pregunta específica del cliente.
Para abordar este desafío, la agencia puede implementar una solución en la que los documentos se indexan y facilitan la búsqueda. Esta solución permite a los agentes y clientes consultar el índice para encontrar documentos relevantes y extraer información de ellos.
Permite crear soluciones de búsqueda que extraen datos de varios documentos estructurados, semiestructurados y no estructurados.
Incluye capacidades de análisis de texto
PaaS con SLA de 99.9% de disponibilidad
Los resultados de Azure Cognitive Search pueden incluir texto inferido o extraído de imágenes, o detección de nuevas entidades y frases clave a través del análisis de texto.
Es una solución de plataforma como servicio (PaaS). Microsoft administra la infraestructura y la disponibilidad, lo que permite que su organización se beneficie sin necesidad de comprar o administrar recursos de hardware dedicados.
Complementa tecnologías existentes y proporciona un motor de búsqueda programable basado en Apache Lucene, una biblioteca de software de código abierto.
Data from any source: Acepta datos de cualquier origen proporcionado en formato JSON, con compatibilidad de rastreo automático para orígenes de datos seleccionados en Azure.
Full text search and analysis: Ofrece funcionalidades de búsqueda full-text que admiten tanto la consulta simple como la sintaxis completa de consulta de Lucene.
AI powered search: Tiene funcionalidades de inteligencia artificial cognitiva integradas para el análisis de imágenes y texto a partir de contenido sin procesar.
Multi-lingual: Ofrece análisis lingüístico para 56 idiomas para manejar de manera inteligente la coincidencia fonética o la lingüística específica del idioma. Bing y Office también usan procesadores de lenguaje natural disponibles en Azure Cognitive Search.
Geo-enabled: Admite el filtrado de búsqueda geográfica en función de la proximidad a una ubicación física.
Configurable user experience: tiene varias características para mejorar la experiencia del usuario, incluyendo Autocompletar, Autosugerir, paginación y resaltado de visitas.
Una solución de Azure Cognitive Search consta de múltiples componentes, cada uno de los cuales desempeña un papel importante en el proceso de extracción, enriquecimiento, indexación y búsqueda de datos.
Una solución de Azure Cognitive Search consta de múltiples componentes, cada uno de los cuales desempeña un papel importante en el proceso de extracción, enriquecimiento, indexación y búsqueda de datos.
Una solución típica comienza con un origen de datos que contiene los artefactos de datos que desea buscar. :
Archivos no estructurados en contenedores de Azure Blob Storage organizados por carpetas
Tablas con texto en una base de datos de Azure SQL Database
Documentos Azure Cosmos DB.
Todos estos orígenes de datos sirven para para la posterior fase de indexado, sin embargo, las aplicaciones pueden insertar datos JSON directamente en un índice, sin extraerlos de un almacén de datos existente.
En una solución de búsqueda básica, los datos extraídos del origen de datos se indexan. La información que se puede extraer depende de la fuente. Por ejemplo, en una base de datos, se pueden extraer los campos de las tablas; en el caso de documentos, se pueden extraer metadatos como el nombre de archivo, la fecha de modificación, el tamaño y el autor, junto con el contenido de texto del documento.
Las expectativas de los usuarios de aplicaciones modernas han impulsado la necesidad de obtener información enriquecida sobre los datos. En Azure Cognitive Search, puede aplicar skills de inteligencia artificial como parte del proceso de indexación para enriquecer los datos de origen con nueva información que se puede asignar a campos de índice. Las skills utilizadas por el indexador se encapsulan en un skillset, que define un pipeline de enriquecimiento en la que cada paso mejora los datos de origen con información obtenida por una habilidad específica de IA. Ejemplos del tipo de información que puede ser extraída por una habilidad de IA incluyen:
El idioma en el que se escribe un documento.
Frases clave que podrían ayudar a determinar los temas principales o temas tratados en un documento.
Una puntuación de sentimiento que cuantifica qué tan positivo o negativo es un documento.
Ubicaciones, personas, organizaciones o puntos de referencia específicos mencionados en el contenido.
Descripciones de imágenes generadas por IA o texto de imagen extraído mediante OCR reconocimiento óptico de caracteres.
Skills personalizadas que usted desarrolla para cumplir con requisitos específicos.
El indexador es el motor que controla el proceso general de indexación. Toma los resultados extraídos utilizando las skills del skillset, junto con los valores de datos y metadatos extraídos de la fuente de datos original, y los asigna a los campos del índice.
Un indexador se ejecuta automáticamente cuando es creado y se puede programar para que se ejecute a intervalos regulares de tiempo o incluso que se ejecute bajo demanda a fin de agregar más documentos al índice.
Si se agregan nuevos campos a un índice o se utilizan nuevas skills en el skillset, se deberá restablecer el índice antes de volver a ejecutar el indexador.
El índice es el resultado de búsqueda del proceso de indexación. Consiste en una colección de documentos JSON con campos que contienen los valores extraídos durante la indexación. Las aplicaciones cliente pueden consultar el índice para recuperar, filtrar y ordenar información.
Cada campo de índice se puede configurar con los siguientes atributos:
key: Campos que definen una clave única para los registros de índice.
searchable: Campos que se pueden consultar mediante la búsqueda full-text.
filterable: Campos que se pueden incluir en expresiones de filtro para devolver solo documentos que coincidan con las restricciones especificadas.
sortable: Campos que se pueden utilizar para ordenar los resultados.
facetable: Campos que se pueden utilizar para determinar valores para facetas (elementos de la interfaz de usuario utilizados para filtrar los resultados en función de una lista de valores de campo conocidos).
retrievable: Campos que se pueden incluir en los resultados de búsqueda
Después de crear y rellenar un índice, puede ser consultado para buscar información en el contenido del documento indexado. Las soluciones de búsqueda usan semántica de búsqueda full-text para consultar un índice.
La búsqueda full-text describe soluciones que analizan el contenido del documento para buscar términos consultados. En Azure Cognitive Search, las búsquedas full-text se basan en la sintaxis de consulta de Lucene, que proporciona un amplio conjunto de operaciones de consulta para buscar, filtrar y ordenar datos en índices. Azure Cognitive Search admite dos variantes de la sintaxis de Lucene:
Simple: sintaxis intuitiva búsquedas básicas que coinciden con los términos de consulta enviados por un usuario.
Completo: sintaxis extendida que admite filtros complejos, expresiones regulares y otras consultas más sofisticadas.
Las aplicaciones cliente envían consultas a Azure Cognitive Search especificando la expresión de búsqueda junto con otros parámetros que determinan cómo se evalúa la expresión y se devuelven los resultados. Algunos parámetros comunes enviados con una consulta incluyen:
search - Una expresión de búsqueda que incluye los términos que se van a encontrar.
queryType - La sintaxis de Lucene a evaluar (simple o completa).
searchFields - Los campos de índice que se van a buscar.
select - Los campos que se incluirán en los resultados.
searchMode - Criterios para incluir resultados basados en varios términos de búsqueda. Por ejemplo, supongamos que busca un “hotel cómodo”. Un valor searchMode de Any devolverá documentos que contengan "cómodo", "hotel" o ambos; mientras que un valor searchMode de All restringirá los resultados a los documentos que contienen "cómodo" y "hotel".
El procesamiento de consultas consta de cuatro etapas:
Query parsing. La expresión de búsqueda se evalúa y se reconstruye como un árbol de subconsultas apropiadas. Las subconsultas pueden incluir consultas de palabras individuales específicas en la expresión de búsqueda, por ejemplo, hotel), consultas de frases (encontrar frases de varios términos especificadas entre comillas en la expresión de búsqueda, por ejemplo, "estacionamiento gratuito") y consultas de prefijo (encontrar términos con un prefijo específico, por ejemplo, aire *, que coincidiría con aire acondicionado, aire acondicionado y aeropuerto).
Lexical analysis - Los términos de consulta se analizan y refinan en función de las reglas lingüísticas. Por ejemplo, el texto se convierte a minúsculas, se eliminan las palabras vacías no esenciales (como "el", "a", "es", etc.), las palabras se convierten a su forma raíz (por ejemplo, "cómodo" puede simplificarse a "comodidad") y las palabras compuestas se dividen en sus términos constituyentes.
Document retrieval - Los términos de consulta se comparan con los términos indizados y se identifica el conjunto de documentos coincidentes.
Scoring - Se asigna una puntuación de relevancia a cada resultado en función de un cálculo de frecuencia de término / frecuencia inversa del documento (TF / IDF).