🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️ABAP HANA La búsqueda de textos y el análisis de datos no estructurados

ABAP HANA La búsqueda de textos y el análisis de datos no estructurados

ABAP HANA La búsqueda de textos y el análisis de datos no estructurados

LECCIÓN 4. BÚSQUEDA DE TEXTOS Y ANÁLISIS DE DATOS NO ESTRUCTURADOS

1. Introducción a la búsqueda de textos y anàlisis de datos no estructurados

SAP HANA ofrece una función para analizar datos no estructurados. Opciones proporcionades por SAP HANA para buscar y analizar textos:

1.1 Las ayudas de búsqueda y la búsqueda de textos

Cuando se utilizan las ayudas de búsqueda, los usuarios a veces buscan una entrada en un conjunto de datos grande sin conocer los detalles de la entrada, o al menos sin tener estos detalles a mano.

1.2 Las ayudas de búsqueda y la búsqueda de textos en SAP HANA

Proporcionan una cierta tolerancia a los errores y pueden procesar términos y sinónimos multilingües. Pero no se sabe si el resultado correcto es el esperado en este tipo de búsqueda tolerante a errores, también conocida como una Búsqueda difusa o Fuzzy search.

1.3 Reconocimiento de patrones en textos y documentos

Representa un tipo diferente de función de anàlisis de texto. Como pasa a menudo, los nombres y direcciones se ingresan con diferentes tipos de ortografia, una simple comprobación de entrades idénticas rara vez nos da resultados satisfactorios.

1.4 Reconocimiento de patrones en SAP HANA

El anàlisis de texto en SAP HANA permite también extraer información addicional de los textos. En el contexto de la tienda en línea, p.e., permite analizar si un producto especifico provoca comentarios más positivos o negativos (anàlisis de sentimientos).

2. Principios básicos de la búsqueda de textos en SAP HANA

Características de la búsqueda de textos:

- Búsqueda de estilo libre: no hace falta realitzar la búsqueda en la columna exacta en la que queremos la información

- Búsqueda tolerante a errores (búsqueda difusa o fuzzy search): se puede variar la ortografia ligeramente en la sol·licitud de búsqueda.

- Búsqueda lingüística y búsqueda de sinónimos: se incluyen variantes lingüísticas y términos sinónimos.

- Sugerencias de valor: el sistema presenta en tiempo real los resultados de búsqueda probables mientras el usuario escribe.

- Ranking de resultados: los resultados con la tasa de probabilidad más alta se presentan en la parte superior de la lista.

- Facetas de búsqueda: los resultados de la búsqueda se cuentan y agrupan según criterios específicos.

- Análisis de texto (particularment análisis de sentimento): se extrae información adicional de los textos, lo que permite obtenir información sobre aspectos semánticos.

2.1 Búsqueda tolerante a errores o búsqueda difusa (fuzzy search)

La función de búsqueda de texto en SAP HANA determina un valor entre 0 y 1 que marca el grado de similitud. Como programador, debemos definir un valor de umbral (p.e: 0,8 ) a partir del cual un valor del conjunto de datos que se ha buscado se clasifica de acuerdo con la sol·licitud de búsqueda.

Expresiones utilizadas en las búsquedas

Para hacer solicitudes de búsqueda más precises. Incluye la opción de imponer una búsqueda exacta para una parte específica de la sol·licitud de búsqueda o usar expresiones lógicas.

Búsqueda lingüística: para determinar el grado de similitud, también es útil influir aspectos gramaticales y otros aspectos lingüísticos.

Lista de sinónimos: podemos almacenar una lista de términos que son equivalentes a un termino especifico; la solicitud de búsqueda puede luego basarse en esta lista. Útil para abreviatures y conceptos específicos de la industria.

Stop words: también llamadas noise words. Palabras que se consideran menos importantes que otras. Por ejemplo, términos como “S.A.” o “Inc.” No son tan selectives como el nombre real de la empresa cuando se busca una companyia específica.

3. Tipos de datos de textos y índices de texto completo en SAP HANA

La búsqueda difusa en SAP HANA se basa en los tipos de datos del almacén de columnas. Dos tipos de datos específicos que se dedican a búsquedas de texto (y análisis de texto):

- TEXT: representa un objeto grande

- SHORTTEXT: para cadenes de caracteres de una longitud determinada

En este contexto, los textos se fragmentan internamente en tokens que forman la base para búsquedas y análisis.

Soporte en Abap

Desafortunadamente, actualment no hay soporte nativo disponible en ABAP para los tipos de datos anteriores TEXT y SHORTTEXT. Estos tipos de datos no se pueden usar. Sin la capacidad de dividir los textos en tokens de búsqueda, el sistema no puede reconocer una permutación de palabras, que es estándar en las aplicacions de búsqueda modernas.

Índice de texto completo (Full Text Index)

Si agregamos la funcionalidad ofrecida por los Tipos de datos de texto a una columna específica mediante la creación de un índice de texto completo, podemos habilitar las funciones de búsqueda de texto y anàlisis de texto para la mayoría de los tipos DDIC de tipo carácter (VARCHAR, NVARCHAR, CHAR, STRING, DATS, etc). El texto se fragmenta en tokens y se genera un diccionario adicional.

Usando SQL para la creación

Sintaxis (SQL) para la creación de un FULLTEXT INDEX: CREATE FULLTEXT INDEX

Help.sap.com/hana è información acerca de los índices

El nombre del índice (<index_name>) debe de ser único dentro de un esquema. Prefijamos el nombre del índice con el nombre de la BD para evitar conflictes de nombres.

Creación en el Diccionario de datos ABAP (DDIC)

A partir de la versión 7.4 de ABAP, también es posible crear un índice de texto completo a través del DDIC utilizando parámetros comunes. Para este propósito definimos un nuevo índice por la tx. SE11 o un índice de extensión. Esto contiene solo la columna requerida como una campo y se crea solamente en la BD SAP HANA.

Activamos el índice de texto completo por: Goto è Full Text Index , y lo podemos configurar con una gran variedad de parámetros.

4. Uso de la búsqueda de textos a través de SQL

La palabra clave CONTAINS

Usando una sentencia SELECT con la palabra clave CONTAINS llamamos a las múltiples variantes de la búsqueda de texto.

Aunque haya errores en la Búsqueda, el sistema devuelve el registro de datos esperado: “Lufthansa”.

El parámetro FUZZY

Define el valor del Umbral, donde un valor entre 0,7 y 0,8 suele ser un buen valor estándar para obtenir resultados que son relativamente similares a la solicitud de búsqueda. El parámetro FUZZY ofrece muchas otras opciones de configuración.

Búsqueda Exacta / Búsqueda Lingüística

Podemos usar la sentencia CONTAINS en otras dos variantes: EXACT y LINGUISTIC.

EXACT: el sistema busca coincidencias exactas para la solicitud de búsqueda con palabras completes. Es el valor por defecto. A diferencia de LIKE, CONTAINS permite realizar búsquedas en varias columnas. Pero, actualment hay un par de limitacions que son: solo podemos utilitzar COINTAINS en Tablas columnares y no podemos utilitzar la función de Busqueda de textos para los atributos calculados de una Vista.

Sin un Indice de texto completo para la columna carrname, los nombres no se dividiran en palabras (tokens); por lo que no habrá una coincidencia exacta entre la solicitud de búsqueda “Aerolineas” y una entrada como “United Airlines”.

4. Búsqueda difusa (Fuzzy search)

Podemos usar el Fuzzy search para una búsqueda simple en una o varias columnes de una Tabla o Vista.

Para ello, se definió un índice de texto completo para el campo CITYFROM y otro para el campo CITYTO utilizando el DDIC.


 

 

 


Sobre el autor

Publicación académica de Tania Raset Pere, en su ámbito de estudios para el Máster ABAP for HANA.

SAP SemiSenior

Tania Raset Pere

España - Legajo: QZ87K

✒️Autor de: 12 Publicaciones Académicas

🎓Egresado del módulo:

Certificación Académica de Tania Raset