Esto se hace para optimizar el FlexiLayout, acelerar el procedimiento de emparejamiento y evitar la “ramificación” no deseada del árbol de hipótesis. Sin embargo, una hipótesis que es óptima para FlexiLayout Studio no necesariamente corresponde al objeto buscado en la imagen.Esto puede ocurrir si las restricciones de búsqueda del elemento no son lo bastante estrictas. Cuando se produce una situación así, analice primero los parámetros establecidos para la búsqueda del elemento.
El proyecto de ejemplo GO.fsp
Considere el proyecto GO.fsp (carpeta %public%\ABBYY\FlexiCapture\12.0\Samples\FLS\Tips and Tricks\GO\1), cuyo objetivo es encontrar el campo “Número de factura”.
El proyecto tiene dos páginas:
- Página 1 – La calidad de la imagen es buena.
- Página 2 – El nombre del campo buscado presenta ruido.
No importan las mayúsculas y minúsculas del nombre en la sección Texto a buscar.
Por qué la generación de hipótesis se detiene en una cadena de calidad 1
Tenga en cuenta que la cadena “Invoice” especificada como valor para el elemento InvoiceHeader aparece en las imágenes tres veces: como nombre del campo Número de factura, como subcadena en el nombre Fecha de la factura y, en la parte inferior de la factura, como subcadena en las condiciones de pago “La factura actual es…”. Por lo tanto, puede anticipar que habrá tres hipótesis después del procedimiento de emparejamiento. Después de ejecutar el procedimiento de emparejamiento de FlexiLayout seleccionando el comando Match, puede ver que el árbol de hipótesis en el elemento grupo InvoiceGroup tiene solo una cadena completa en lugar de las tres esperadas, y que esa única cadena no corresponde al nombre detectado.
Para ver el árbol de hipótesis del grupo, haga doble clic en el nombre del elemento grupo en el árbol de hipótesis, pulse Enter o seleccione Mostrar detalles en el menú contextual.
Ancle el nombre al borde derecho de la página con Nearest
Si se supone que la disposición de los campos es idéntica en todas las páginas del proyecto, la forma más sencilla es “decirle” a FlexiLayout Studio que la cadena requerida “Invoice” es el elemento más próximo al borde derecho de la página. Para ello, escriba el siguiente código en la sección Relación avanzada de prebúsqueda del elemento InvoiceHeader:Nearest: PageRight;.
Esto funciona porque el nombre del campo buscado “Número de factura” es el único elemento más próximo al borde derecho de la página. Si no fuera así, o si el documento no tuviera un formato estandarizado, la función Nearest no podría resolver el problema.
Penalización de hipótesis numéricas distantes con FuzzyQuality
En el proyecto GO.fsp (carpeta GO\2) se muestran formas alternativas de realizar esta tarea, incluido el caso de un documento semiestructurado. Como puede ver en las imágenes, la distancia entre la cadena de dígitos y la palabra “invoice” es la menor en el campo buscado “Número de factura”. Esto se cumple en todas las páginas, lo que nos permite influir en los valores de calidad de las hipótesis generadas introduciendo el siguiente código en la sección Relaciones avanzadas de posbúsqueda del elemento InvoiceNumber:{0, 0, 0, 10000}*dt.
Esta descripción del intervalo muestra la dependencia lineal entre la calidad de la hipótesis y la distancia entre los elementos: cuanto mayor sea la distancia, mayor será la penalización (la función FuzzyQuality devuelve la calidad de posbúsqueda de la hipótesis, que puede verse en la ventana Propiedades de la hipótesis).
El valor del límite derecho del intervalo (10000dt) se determinó experimentalmente. Al elegir este valor, debe tener en cuenta la distancia entre los objetos correspondientes en las imágenes de prueba.
Como muestra la figura siguiente, con las propiedades del intervalo especificadas, la penalización máxima (1) corresponderá a una distancia de 10000dt. En consecuencia, una distancia de 1000dt dará una penalización de 0,1; una distancia de 100dt, una penalización de 0,01; etc.
Así, para distancias reales de aproximadamente 100-300 puntos, que pueden verse en las imágenes, el coeficiente de penalización será de 0,99 a 0,97.

Consulte Búsqueda de elementos con Nearest y FuzzyQuality para obtener más información sobre el uso de estas funciones.

