🚀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

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 y al aprovechar esta capacidad podemos mejorar la facilidad de uso de los escenarios de búsqueda dentro de las aplicaciones ABAP. Además, podemos obtener información al reconocer patrones en los conjuntos de datos existentes. Cabe señalar que en los últimos años, casi ninguna otra funcionalidad ha experimentado un impulso tangrande como la búsqueda en grandes conjuntos de datos.

Las opciones en SAP HANA para buscar y analizar textos abren nuevas formas de emplear la plataforma.

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

Las ayudas de búsqueda son un excelente escenario de uso para las búsquedas de texto en SAP HANA. Esto debido a que SAP contiene ayudas de búsqueda en muchos lugares diferentes y en ocasiones los usuarios buscan una entrada en un conjunto de datos grande sin conocer muchos detalles.

Por ejemplo, podemos estar buscando un cliente con sede en Baja California y que trabaje en telecomunicaciones y al no recordar el id de cliente pues ingresamos nombre de empresa, país, industria en una plantilla de entrada compleja y en muchas ocasiones la información debe ir usando comodines como el *. Además, si escribimos mal alguna de las partes pues no recibiremos ningun resultado.

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

La función de búsquedas de texto de SAP HANA nos permite desarrollar ayudas de búsqueda que funcionan de forma similar a la forma en que lo buscamos en Internet. Proporcionan cierta tolerancia a errores y pueden procesar términos y sinónimos en varias lenguas.

Siguiendo con el ejemplo anterior, la búsqueda podría venir de un campo que interpreta correctamente una solicitud del tipo "baje california tele", a pesar de la ortografía incorrecta y búsqueda en varias columnas. Este tipo de búsquedas tolerantes a errores son llamadas difusas o Fuzzy Search. ¿Sabes cual es la razón de obtener resultados inesperados al realizar una búsqueda en Internet?

1.3 Reconocimiento de patrones

El reconocimiento de patrones en textos y documentos representa un tipo completamente distinto de función de análisis de texto. Esto es aplicable en varios escenarios, por ejemplo: evitar tener socios duplicados en datos maestros al verificar antes del registro. Sin embargo, a menudo, nombres y direcciones en particular se ingresan con distintos tipos de ortografía, una simple comprobación de entradas idénticas rara vez arroja resultados satisfactorios.

1.4 Reconocimiento de patrones en SAP HANA

La función de análisis de texto en SAP HANA permite realizar búsquedas dentro de los textos e incluso extraer información adicional de los textos. Un ejemplo de esto último es reconocer las relaciones e incluso intenciones o emociones dentro de los textos.

Supongamos que ejecutamos una tienda web que permite ordenar productos y publicar comentarios sobre los productos y proveedor. Aquí es obvio que el análisis de sentimientos es parte de la funcionalidad necesaria en el motor de búsqueda para reconocer esos patrones en este tipo de datos no estructurados. De esa forma, podríamos saber si un producto provoca comentarios positivos o negativos.

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

El objeto principal de esta función es proporcionar a los usuarios una usabilidad optimizada de las interfaces de búsqueda. Además de varias características comunes en los motores de búsqueda, se incluyen funciones con un significado especial para aplicaciones empresariales como listas de sinónimos específicos en la industria.

Veamos las características:

  • Búsqueda de estilo libre: El usuario no necesita saber las columnas exactas en las que se supone que se realizará la búsqueda.
  • Búsqueda tolerante a errores: El usuario puede varia la ortografía ligeramente sin que ello provoque resultados inesperados.
  • Búsqueda linguistica y de sinónimos: Se incluyen variantes linguisticas y términos sinónimos.
  • Sugerencias de valor: El sistema identifica de manera eficiente los resultados probables mientras el usuario escribe y los presenta en tiempo real.
  • Ranking de resultados: La secuencia de resultados de búsqueda se optimiza para que los resultados con la tasa de probabilidad mas alta se presenten en la parte superior.
  • Facetas de búsqueda: Los resultados se cuentan y agrupan según criterios específicos. Por ejemplo al buscar aerolíneas podemos ver la distribución por país.
  • Análisis de texto (particularmente de sentimiento): Se extrae información adicional de los textos, lo que nos permite obtener información sobre aspectos semánticos.

2.1 Búsqueda tolerante a errores

La búsqueda difusa o tolerante a errores implica la búsqueda de cadenas de caracteres (solicitud de búsqueda) en datos basados en texto, donde los datos no tienen que corresponder exactamente con lo buscado. De esta forma se incluyen entradas similares en el conjunto de resultados.

La base de esto son algoritmos matemáticos cuyo resultados es a menudo un valor numérico que se utiliza para decidir si un registro es suficientemente similar a la solicitud de búsqueda. Desde luego, en la práctica es complicado determinar el grado de similitud entre los textos.

SAP HANA determina un valor entre 0 y 1 que marca el grado de similitud y como programadores, debemos definir un valor de umbral (por ejemplo 0.8) a partir del cual un valor del conjunto de datos que se ha buscado se clasifica de acuerdo con la solicitud.

Además, estas búsquedas se pueden adaptar en base a semántica. Por ejemplo, en una búsqueda de fechas se pueden incluir cuantos días antes o después es válido. En este caso el criterio de similitud es un período en lugar del número de grado de similitud de las cadenas de caracteres.

Expresiones utilizadas en las búsquedas

Cuando ejecutamos una búsqueda difusa, podemos usar un conjunto de expresiones simples que permiten a un experto formular solicitudes mas precisas. Por ejemplo, se tiene la opción de imponer una búsqueda exacta o usar expresiones lógicas. Veamos algunos ejemplos.

Solicitud de búsqueda Explicación
lufthansa o united Los resultados similares a "Lufthansa" o "United"
airline-united Los resultados similares a "airline" pero no "united"
"south air" Los resultados similares a la expresión exacta "south air"

Búsqueda linguistica

Para determinar el grado de similitud también es útil incluir aspectos gramaticales y otros aspectos linguisticos. En este contexto, los términos vuelven a su origen para reconocer variantes de palabras como casa, casas, vivienda, etc.

Este tipo de búsqueda ofrece oportunidades para el manejo de textos multilingues y solicitudes de búsqueda.

Listas de sinónimos

La búsqueda difusa también puede extenderse por listas de sinónimos. Para ello, es posible almacenar una lista de términos equivalentes a un término específico y que la búsqueda posterior se base en dicha lista. Esto es particularmente útil para abreviaturas y conceptos específicos de la industria.

Por ejemplo, "notebook" puede considerarse sinonimo de "laptop" o "monitor" como sinónimo de "pantalla".

Stop words

Otra opción para una búsqueda mas inteligente es familiarizar el sistema con características semánticas de términos específicos. En este contexto, es importante saber que no todos los términos de una solicitud tienen la misma selectividad. Por ejemplo, términos como "S.A." o "Inc." no son tan selectivos como el nombre de la empresa cuando buscamos una compañía específica.

Del mismo modo, en textos mas largos, como descripciones de productos, ciertas partes del discurso como pronombres son menos importantes que los nombres de las marcas dentro del texto. Cuando ejecutamos una búsqueda en SAP HANA, podemos ingresar una lista de stop words (noise words) que se consideran menos importantes que otras palabras.

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

La búsqueda difusa se basa en los tipos de datos del almacén de columnas. Aquí, TEXT y SHORTTEXT representan dos tipos de datos que se dedican a búsquedas y análisis de texto.

El tipo SHORTTEXT se usa para cadenas con longitud determinada y TEXT para un objeto grande (algo así como un CLOB). En este contexto, los textos se fragmentan internamente en tokens que forman la base para búsquedas y análisis.

Si bien la búsqueda difusa es compatible con VARCHAR y NVARCHAR, esta compatibilidad no es tan extensa.

Soporte en ABAP

Desafortunadamente, actualmente no hay soporte en ABAP para tipos de datos TEXT y SHORTEXT, lo que hace imposible utilizar estos tipos de datos en la creación de una tabla a través del DDIC. Sin la capacidad de dividir el texto en tokens, el sistema no puede reconocer una permutación de palabras, que es una necesidad para esto.

Índice de texto completo (Full Text Index)

Lo que si puede hacerse es agregar la funcionalidad ofrecida por los tipos de datos de texto a una columna mediante la creación de un índice de texto completo. Así, podemos habilitar las funciones de búsqueda y análsis para la mayoría de los tipos de caracter en el DDIC (CHAR, STRING, DATS, etc).

Cuando creamos un índice de este tipo para una columna, el sistema crea una columna interna invisible del tipo TEXT que contiene los mismos datos pero es una presentación optimizada para solicitudes de búsqueda. Ahí si es posible fragmentar el texto en tokens y generar un diccionario adicional.

Usando SQL para la creación

Podemos crear el índice utilizando la sentencia SQL CREATE FULL TEXT INDEX:

CREATE FULL TEXT index_name
ON table_name ( column_name )
[parameter_list]

La siguiente instrucción SQL define un índice completo:

CREATE FULLTEXT INDEX scarr~name ON scarr(carrname);

Creación en el DDIC

A partir de la versión 7.4 de ABAP, también es posible crear un índice de texto completo en el DDIC utilizando parámetros cómunes. Para esto, debemos definir en la SE11 un índice de extensión (para una extensión sin modificación de una tabla estándar de SAP). Este contiene solo la columna requerida como un campo y se crea exclusivamente en la base de datos SAP HANA.

Después, a través de Goto / Full Text Index podemos activar el índice de texto completo y configurar parámetros adicionales. La configuración estandar y configuración de idioma suelen ser suficientes para una búsqueda difusa.

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

La palabra clave CONTAINS

Al igual que con la mayoría de las funciones en SAP HANA, podemos invocar la búsqueda de texto a través de SQL. Para ello, debemos usar una sentencia SELECT con la palabra clave CONTAINS, que permite llamar a las múltiples variables de la búsqueda de texto. La síntaxis estándar es la siguiente:

SELECT field_list
FROM table_or_view
WHERE CONTAINS (columns, search_request, parameter);

Ejemplo:

SELECT *
FROM scarr
WHERE CONTAINS( carrname, 'lusthansa', FUZZY(0.8) );

En el ejemplo vemos que se tienen dos errores, se inicia con minúscula y se usa una letra incorrecta,pero aun así el sistema regresaría el registro de datos esperado: "Lufthansa".

El parámetro FUZZY

Nos permite definir el valor de umbral, donde un valor entre 0.7 y 0.8 suele ser un buen estándar para obtener resultados relativamente similares a la solicitud de búsqueda. Además del umbral, FUZZY proporciona mas parámetros para indicar.

Búsqueda exacta / Búsqueda linguistica

Además de utilizarla con el parámetro FUZZY, podemos usar la sentencia CONTAINS en otras dos variantes: EXACT y LINGUISTIC. Veamos la primera mas a detalle.

El sistema buscará coincidencias exactas para la solicitud con palabras completas (recordemos que el sistema tokeniza el texto). Este es el valor predeterminado si no indicamos ningún parámetro. Cabe indicar que es posible utilizar comodines como '*'. A diferencia de un LIKE en SQL estándar, CONTAINS nos permite buscar en varias columnas. Veamos un ejemplo:

SELECT * FROM scarr
WHERE CONTAINS ((carrname, url), 'Airlines OR Airways OR *.com', EXACT)

Si no existiera un índice completo para la columna carrname, los nombres no se dividirán en palabras (tokens); en consecuencia, no habrá una coincidencia exacta entre la solicitud de búsqueda 'Airlines' y una entrada como 'United Airlines' ya que la frase no esta partida en 'United' y 'Airlines'.

Por lo tanto, es IMPORTANTE que se definan índices de texto completo para todas las columnas que se vayan a utilizar con CONTAINS y búsquedas difusas.

5. Uso de la búsqueda de textos en ABAP

Las ayudas de búsqueda son una excelente opción para utilizar la búsqueda de textos en SAP HANA, para ello ocupamos crear la ayuda de búsqueda en el DDIC ABAP.

Como desarrolladores, podemos definir una ayuda de búsqueda declarativamente de manera que especifique el nombre de una tabla o vista y seleccione los campos para el cuadro de diálogo y desde ABAP 7.4 SP06 es posible especificar también los parámetros así.

El procedimiento sería algo similar al siguiente:

  1. Utilizaremos la transacción SE11 o SE80 para crear una nueva ayuda de búsqueda y seleccionar una tabla o vista como fuente de datos.
  2. En las opciones avanzadas (Enhanced Options) de la ayuda de búsqueda, podemos seleccionar: si los valores se muestran directamente, si se ejecuta una búsqueda de texto completo en varias columnas y qué nivel de detalle se aplica.
  3. No es necesario crear un Full Text Index para este propósito. Después de la activación, podemos integrar la ayuda de búsqueda con un programa de prueba y ver en pantalla la nueva potencionalidad de las ayudas de búsqueda en donde los valores se muestran a medida que el usuario escribe en la pantalla.

TIPS:

  • Podemos obtener documentación completa sobre los full text index en help.sap.com/hana.
  • El nombre del índice debe ser único dentro del esquema por lo que tiene sentido agregar como prefijo el nombre de la tabla.
  • Podemos utilizar SQL para buscar texto en SAP HANA pero hay un par de limitaciones: solo podemos utilizar CONTAINS para tablas columnares y no podemos utilizar CONTAINS para los atributos calculados de una vista.
  • Existen funciones escalares especiales para recuperar información adicional para registros individuales en el conjunto de resultados: SCORE por ejemplo nos da el grado de similitud entre lo encontrado y la solicitud de búsqueda por lo que su valor oscila entre 0 y 1 donde 1 es la mayor similitud y generalmente se utiliza para ordenar los resultados de forma descendente en base a su grado de similitud. Otra función útil en textos largos es HIGHLIGHTED que regresa todo el texto completo con la ubicación encontrada resaltada y SNIPPET para regresar solo el extracto del texto alrededor de la ubicación encontrada.
  • Para poder hacer uso de las nuevas funciones en ayudas de búsqueda es necesario contar con ABAP 7.4 SP06 o superior y tener al menos SAPGUI 7.3.

 

 

 

Agradecimiento:

Ha agradecido este aporte: Jesús Quiñonez López


Sobre el autor

Publicación académica de Abraham Humberto Noriega Cabrera, en su ámbito de estudios para el Máster ABAP for HANA.

SAP SemiSenior

Abraham Humberto Noriega Cabrera

Profesión: Ingeniero Sistemas Computacionales - Mexico - Legajo: WO62V

✒️Autor de: 14 Publicaciones Académicas

🎓Egresado del módulo:

Disponibilidad Laboral: FullTime

Presentación:

Ingeniero en sistemas computacionales con experiencia en análisis, desarrollo e implementación de sistemas. he tenido el gusto de participar en implementaciones tanto locales como a nivel estatal.

Certificación Académica de Abraham Noriega

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "La búsqueda de textos y el análisis de datos no estructurados" de la mano de nuestros alumnos.

SAP SemiSenior

Unidad 2: Lección 4 Búsqueda de textos y el análisis de datos no estructurados 1. Introducción a la búsqueda de textos y análisis de datos no estructurados 1.1 Ayudas de búsqueda y búsqueda de textos Las ayudas de búsqueda representan un excelente escenario de uso para las búsquedas de texto en SAP HANA 1.2 Ayudas de búsqueda y búsqueda de textos en SAP HANA Nos permite desarrollar ayudas de búsqueda que funcionan de manera similar a las búsquedas modernas en internet Búsqueda tolerante a errores también conocida como Búsqueda difusa o Fuzzy search 1.3 Reconocimiento de patrones El reconocimiento de patrones en textos y...

Acceder a esta publicación

Creado y Compartido por: Alejandra Soto Guerrero

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Junior

Búsqueda textos y datos no estructurados Análisis de datos no estructurados Mejorar escenarios de búsqueda Reconocimiento de patrones Ayudas de Búsqueda Búsquedas sin conocer detalle exacto de los que se está buscando. Incluye variaciones ortográficas Búsqueda tolerante a errores. Fuzzy search Reconocimiento de patrones Análisis de texto. P ej: búsqueda de cliente ya existente. (concepto idéntico) Patrones en SAP Hana Reconocer las relaciones e incluso las intenciones o emociones dentro de los textos Principios básicos: Usabilidad optimizada de la búsqueda Estilo libre Tolerante a errores Lingüística y sinónimos Sugerencias de valor...

Acceder a esta publicación

Creado y Compartido por: Danilo Cortes

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Junior

BUSQUEDA DE TEXTOS Y ANALISIS DE DATOS NO ESTRUCTURADOS. *Ayudas de búsqueda / búsquedas de textos / reconocimientos de patrones Principios básicos de las búsquedas de texto: *Permite a los usuarios utilizar las interfaces de una forma optimizada.(características comunes a los motores de búsqueda de internet, incluye funciones con un significado especial para las aplicaciones empresariales). características: Búsquedas de estilo libre. Búsqueda tolerante a errores fuzzy search - se incluyen entradas similares en el conjunto de resultados.. Búsqueda lingúistica y de sinónimos Sugerencias de Valor Ranking de resultados Facetas de búsquedas...

Acceder a esta publicación

Creado y Compartido por: Susana Mora

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

Búsqueda de textos y Análisis de datos no estructurados Ayudas de búsqueda y la búsqueda de textos en SAP HANA que funcionan de manera similar a las búsquedas modernas en internet. Principios básicos de búsqueda de textos en SAP HANA proporciona una usabilidad optimizada de las interfaces de búsqueda. Algunas características son: Búsqueda de estilo libre donde el usuario no necesita saber la columna exacta en la BD se puede incluir todos los datos de una dirección como calle, código postal, ciudad, etc. Búsqueda tolerante a errores (búsqueda difusa o fuzzy search) donde el usuario puede variar de ortografía en su solicitud de búsqueda...

Acceder a esta publicación

Creado y Compartido por: Diego Fernando Delgado Ortiz / Disponibilidad Laboral: PartTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

SAP HANA ofrece unas funciones para analizar datos ABAP: - obtener mas información al reconocer patrones en los conjuntos de datos existentes - busca y analiza textos, mas formas de utilizar esta función en aplicaciones empresariales y hasta ahora no se utilizaban. Ayudas de búsqueda y búsqueda de textos en SAP HANA, permite desarrollar ayudas similar a las búsquedas de internet: 1. Búsqueda difusa o Fuzzy search de tolerancia a errores y procesar términos y sinónimos multilingües. 2. Reconocimiento de patrones: comprobar entradas idénticas. Objetivos de la búsqueda en SAP HANA es proporcionar a los usuarios uso optimizado del las interfases de búsqueda. Características...

Acceder a esta publicación

Creado y Compartido por: Maria Sanchez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Junior

1.2 Las ayudas de búsqueda y la búsqueda de textos en SAP HANA Tiene una búsqueda difusa o Fuzzy Search. 1.3 Reconocimiento de patrones en SAP HANA Permite realizar búsquedas dentro de los textos, sino también extraer información adicional de los textos. 2. PRINCIPIOS BASICOS DE LA BUSQUEDA DE TEXTOS EN SAP HANA * Búsqueda de estilo libre * Búsqueda tolerante a errores (búsqueda difusa o fuzzy search) se puede variar la ortografia ligeramente en sus solicitudes de búsqueda. * Búsqueda linguistica y búsqueda de sinónimos. * Sugerencias de valor * Ranking de resultados se muestran los resultados con la tasa de probabilidad más alta se presenten...

Acceder a esta publicación

Creado y Compartido por: Maria Xiomara Rodriguez Panqueva / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


INTRODUCCIÓN A LA BÚSQUEDA DE TEXTOS Y ANÁLISIS DE DATOS NO ESTRUCTURADOS Características de búsqueda de textos en SAP HANA Búsqueda de texto libre Búsqueda tolerante a errores (búsqueda difusa o fuzzy search): implica la búsqueda de caenas de caracteres. Búsqueda lingüistica y búsqueda de sinónimos. Podemos almacenar una lista de términos equivalentes. Sugerencias de valor (identificacion de búsquedas probables) Ranking de resultados Facetas de búsqueda Análisis de texto Tipos de datos de texto e índices...

Acceder a esta publicación

Creado y Compartido por: Juan Ignacio De Tejada Santiago / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

---- Audio 1 Podemos obtener documentación completa acerca de la sentencia de Creación de los FULLTEXT INDEX en help.sap.com/hana. Debemos tener en cuenta que el nombre del índice de texto completo (FULLTEXT INDEX) debe ser único dentro de un esquema por lo que tiene sentido prefijar el nombre del índice con el nombre de la tabla base de datos para evitar posibles conflictos de nombres. ---- Audio 2 Tal como mencionamos podemos utilizar SQL para búsqueda de textos en SAP HANA, sin embargo actualmente hay un par de limitaciones con respecto a las combinaciones que son compatibles, una de ellas es que solo podemos utilizar la clausula CONTAINS para la búsqueda de textos en tablas que sean columnares....

Acceder a esta publicación

Creado y Compartido por: Vanessa Yadira Mendoza Zelaya

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

Búsqueda de textos y análisis de datos no estructurados. SAP HANA nos ofrece una función para analizar datos no estructurados. Si aprovechamos esta capacidad, podemos mejorar considerablemente la facilidad de uso de los escenarios de búsqueda dentro de los programas ABAP. Podemos obtener más información al reconocer los patrones en los conjuntos de datos existentes. 1- Las ayudas de búsqueda y la búsqueda de textos Las ayudas de búsqueda son un excelente escenario para las búsquedas de texto en SAP HANA. Los usuarios en ocasiones buscan un conjunto de datos muy grande sin saber los detalles de entrada o sin tener estos datos a la mano al momento de usar una ayuda de búsqueda....

Acceder a esta publicación

Creado y Compartido por: Jesús Heriberto Quiñonez López / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

1. Las ayudas de búsqueda y la búsqueda de textos en SAP HANA La función de búsqueda de texto de SAP HANA nos permite desarrollar ayudas de búsqueda que proporcionan una cierta tolerancia a errores y pueden procesar términos y sinónimos multilingües. Por ejemplo, podemos ingresar "buenes eires tele" en una ayuda de búsqueda y se interpretara correctamente a pesar de la ortografía incorrecta. Sin embargo, los usuarios no siempre pueden determinar fácilmente si el resultado devuelto es el esperado en este tipo de búsqueda tolerante a errores (Fuzzy search). La función de análisis de texto en SAP HANA no solo nos permite realizar búsquedas...

Acceder a esta publicación

Creado y Compartido por: Ricardo Daniel Tovar Barrera

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 79.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!