Document AI Workbench: Extractor de documentos personalizado

1. Introducción

Document AI es una solución de comprensión de documentos que toma datos no estructurados, como documentos y correos electrónicos, entre otros, y permite que los datos sean más fáciles de comprender, analizar y consumir.

Con Document AI Workbench, puedes obtener un mayor nivel de precisión en el procesamiento de documentos mediante la creación de modelos completamente personalizados usando tus propios datos de entrenamiento.

En este lab, crearás un procesador de extracción de documentos personalizado, importarás un conjunto de datos, etiquetarás documentos de ejemplo y entrenarás el procesador.

El conjunto de datos del documento usado en este lab es un conjunto de datos W-2 falso (formulario fiscal de EE.UU.) en Kaggle con CC0: Licencia de dominio público.

Requisitos previos

Este codelab se basa en contenido presentado en otros codelabs de Document AI.

Recomendamos que completes los siguientes codelabs antes de continuar.

Qué aprenderás

  • Cómo crear un procesador extractor de documentos personalizado
  • Cómo etiquetar datos de entrenamiento de Document AI con la herramienta de anotación
  • Cómo entrenar una nueva versión de un modelo
  • Cómo evaluar la precisión de la nueva versión del modelo

Requisitos

  • Un proyecto de Google Cloud
  • Un navegador, como Chrome o Firefox

2. Cómo prepararte

En este codelab, se supone que ya completaste los pasos de configuración de Document AI que se indican en el codelab de introducción.

Completa estos pasos antes de continuar:

3. Crea un procesador

Primero, debes crear un procesador extractor de documentos personalizado para usarlo en este lab.

  1. En la consola, navega a la página Descripción general de Document AI.

DocAIOverviewConsole

  1. Haz clic en Crear procesador personalizado y selecciona Extractor de documentos personalizado.

docai-custom-codelab-02

  1. Asígnale el nombre codelab-custom-extractor (o un nombre que no vayas a olvidar) y selecciona la región más cercana de la lista.

docai-custom-codelab-03

  1. Haz clic en Crear (Create) para crear tu procesador. Deberías poder ver la página de resumen del procesador.

docai-custom-codelab-04

4. Crea un conjunto de datos

Para entrenar tu procesador, debes crear un conjunto de datos con datos de entrenamiento y pruebas para ayudar al procesador a identificar las entidades que quieres extraer.

  1. En la página Descripción general del procesador, haz clic en Configurar tu conjunto de datos.

docai-custom-codelab-04

  1. Ahora deberías estar en la página Configurar conjunto de datos. Si deseas especificar tu propio bucket para almacenar los documentos de entrenamiento y las etiquetas, haz clic en Mostrar opciones avanzadas. De lo contrario, haz clic en Continuar.

docai-custom-codelab-05

  1. Espera a que se cree el conjunto de datos. Luego, se te debería dirigir a la página Entrenamiento.

docai-custom-codelab-07

5. Importa un documento de prueba

Ahora, importemos un PDF W2 de muestra en nuestro conjunto de datos.

  1. Haz clic en Importar documentos (Import Documents).

docai-custom-codelab-08

  1. Tenemos un PDF de muestra para que lo uses en este lab. Copia y pega el siguiente vínculo en la casilla Ruta de acceso del origen. Deja “División de datos” como “Sin asignar” por ahora. Deja todas las otras casillas desmarcadas. Haz clic en Importar (Import).
cloud-samples-data/documentai/codelabs/custom/extractor/pdfs

docai-custom-codelab-09

  1. Espera a que se importe el documento. Este proceso debería tardar menos de 1 minuto.
  2. Cuando se complete la importación, deberías ver el documento en la página Entrenamiento.

docai-custom-codelab-10

6. Crea etiquetas

Ya que crearás un nuevo tipo de procesador, debes crear etiquetas personalizadas para indicarle a Document AI qué campos quieres extraer.

  1. Haz clic en Edit Schema (Editar esquema) en la esquina inferior izquierda.

docai-custom-codelab-11

  1. Ahora deberías estar en la consola de Schema Management.

docai-custom-codelab-12

  1. Crea las siguientes etiquetas con el botón Crear etiqueta.

Nombre

Tipo de dato

Caso

CONTROL_NUMBER

Número

Obligatoria varias veces

EMPL_SSN

Texto sin formato

Obligatoria varias veces

EMPLR_ID_NUMBER

Texto sin formato

Obligatoria varias veces

EMPLR_NAME_ADDRESS

Dirección

Obligatoria varias veces

FEDERAL_INCOME_TAX_WH

Dinero

Obligatoria varias veces

SS_TAX_WH

Dinero

Obligatoria varias veces

SS_WAGES

Dinero

Obligatoria varias veces

WAGES_TIPS_OTHER_COMP

Dinero

Obligatoria varias veces

  1. La consola debería verse así cuando se complete el proceso. Cuando termine, haz clic en Guardar (Save).

docai-custom-codelab-13

  1. Haz clic en la flecha hacia atrás para volver a la página Entrenamiento. Observa que las etiquetas que creamos aparecen en la esquina inferior izquierda.

docai-custom-codelab-14

7. Etiqueta el documento de prueba

A continuación, vas a identificar elementos de texto y etiquetas para las entidades que te gustaría extraer. Estas etiquetas se usarán para entrenar al modelo para que analice la estructura de este documento específico y también identifique los tipos correctos.

  1. Haz doble clic en el documento que importaste antes para entrar a la consola de etiquetas. Debe verse más o menos así.

docai-custom-codelab-15

  1. Haz clic en el “Cuadro delimitador”. Herramienta y, luego, destaca el texto "1173038" y asigna la etiqueta CONTROL_NUMBER. Puedes usar el filtro de texto para buscar nombres de etiquetas.

docai-custom-codelab-16

  1. Completa la otra instancia de CONTROL_NUMBER. Debería verse así cuando esté etiquetada.

docai-custom-codelab-17

  1. Destaca todas las instancias de los siguientes valores de texto y asígnales las etiquetas adecuadas.

Nombre de la etiqueta

Texto

EMPLR_ID_NUMBER

24-3188810

FEDERAL_INCOME_TAX_WH

19127.2

SS_TAX_WH

5093.71

SS_WAGES

66584.46

WAGES_TIPS_OTHER_COMP

56081.18

EMPL_SSN

714-32-2105

EMPLR_NAME_ADDRESS

Adams, Chase and Gilbert Inc 972 Gonzalez Dam South Katherine NC 95869-5178

  1. El documento etiquetado debería verse así cuando se complete el proceso. Ten en cuenta que puedes editar estas etiquetas haciendo clic en el cuadro delimitador del documento o en el valor o nombre de la etiqueta en el menú lateral izquierdo. Haz clic en Marcar como etiquetado cuando termines de etiquetar y, luego, regresa a la consola de administración del conjunto de datos.

docai-custom-codelab-20

8. Asigna el documento al conjunto de entrenamiento

Deberías haber regresado a la consola de administración del conjunto de datos. Observa que la cantidad de documentos etiquetados y no etiquetados y la cantidad de instancias por etiquetas cambiaron.

docai-custom-codelab-21

  1. Debes asignar este documento al conjunto “Entrenamiento” o “Prueba”. Haz clic en el documento, luego en Asignar al conjunto (Assign to set) y, luego, en Entrenamiento (Training).

docai-custom-codelab-22

  1. Observa que los números de la división de datos cambiaron.

docai-custom-codelab-23

9. Importa datos etiquetados previamente

Los procesadores personalizados de Document AI requieren un mínimo de 10 documentos en los conjuntos de entrenamiento y de prueba, junto con 10 instancias de cada etiqueta en cada conjunto.

Se recomienda tener al menos 50 documentos en cada conjunto, con 50 instancias de cada etiqueta, para obtener el mejor rendimiento. Por lo general, con más datos de entrenamiento se consiguen resultados más precisos.

Llevará mucho tiempo etiquetar de forma manual todos los documentos, así que contamos con documentos etiquetados previamente que puedes importar para este lab.

Puedes importar archivos de documentos etiquetados previamente en formato Document.json. Estos pueden ser resultados de llamar a un procesador y verificar la precisión mediante el modelo Con interacción humana (HITL).

aside negative

NOTA: Cuando importes datos etiquetados previamente, es altamente recomendado revisar de forma manual las anotaciones antes de entrenar un modelo.

  1. Haz clic en Importar documentos (Import Documents).

docai-custom-codelab-24

  1. Copia y pega la siguiente ruta de acceso de Cloud Storage y asígnala al conjunto de Entrenamiento.
cloud-samples-data/documentai/codelabs/custom/extractor/training
  1. Haz clic en Agregar otra carpeta. Luego, copia y pega la siguiente ruta de acceso de Cloud Storage y asígnala al conjunto de Prueba.
cloud-samples-data/documentai/codelabs/custom/extractor/test

docai-custom-codelab-25

  1. Haz clic en Importar (Import) y espera a que los documentos se importen. Esto tardará más que la vez anterior porque hay más documentos que procesar. Esto te llevará alrededor de 6 minutos. Puedes salir de esta página y volver más tarde.

docai-custom-codelab-26

  1. Una vez que se complete el proceso, deberías ver los documentos en la página Entrenamiento.

docai-custom-codelab-27

10. Entrena el modelo

Ahora, ya puedes comenzar a entrenar el extractor de documentos personalizado.

  1. Haz clic en Entrenar una versión nueva (Train New Version).

docai-custom-codelab-28

  1. Asígnale a la versión un nombre que no vayas a olvidar, por ejemplo, codelab-custom-1. En “Método de entrenamiento”, selecciona “Train from scratch”.

docai-custom-codelab-29

  1. También puedes seleccionar Ver estadísticas de etiquetas (View Label Stats) para ver métricas de las etiquetas de tu conjunto de datos (opcional).

docai-custom-codelab-30

  1. Haz clic en Comenzar el entrenamiento (Start Training) para iniciar el proceso. Se te debería redireccionar a la página de administración del conjunto de datos. Podrás ver el estado del entrenamiento en el lado derecho. El entrenamiento tardará unas horas en completarse. Puedes salir de esta página y volver más tarde.

docai-custom-codelab-31

  1. Si haces clic en el nombre de la versión, se te dirigirá a la página Administra versiones (Manage Versions) en la que aparece el ID de la versión y el estado actual del trabajo de entrenamiento.

docai-custom-codelab-32

11. Prueba la nueva versión del modelo

Cuando el trabajo de entrenamiento esté completo (es posible que tarde alrededor de 1 hora), podrás probar la nueva versión del modelo y comenzar a usarla para realizar predicciones.

  1. Ve a la página Administra versiones (Manage Versions). En esta página podrás ver el estado actual y la puntuación F1.

docai-custom-codelab-33

  1. Debes implementar esta versión del modelo antes de poder usarla. Haz clic en los puntos verticales que están en el lado derecho y selecciona Implementar versión (Deploy Version).

docai-custom-codelab-34

  1. Selecciona Implementar (Deploy) en la ventana emergente y espera a que la versión se implemente. Este proceso tardará unos minutos en completarse. Cuando se implemente, también podrás establecer esta versión como Predeterminada.

docai-custom-codelab-35

  1. Cuando se termine de implementar, dirígete a la pestaña Evaluar (Evaluate). En esta página, podrás ver métricas de evaluación que incluyen la puntuación F1, la precisión y la recuperación para el documento completo, así como etiquetas individuales. Puedes leer más sobre estas métricas en la Documentación de AutoML.

docai-custom-codelab-36

  1. Descarga el archivo PDF vinculado a continuación. Este es un W2 de muestra que no estaba incluido en el conjunto de Entrenamiento ni de Prueba.

  1. Haz clic en Subir documento de prueba (Upload Test Document) y selecciona el archivo PDF.
  2. Las entidades extraídas deberían verse así.

docai-custom-codelab-37

12. Etiqueta de forma automática los documentos importados recientemente (opcional)

Después de implementar una versión de procesador entrenado, puedes usar el etiquetado automático para ahorrar tiempo en el etiquetado cuando importas documentos nuevos.

  1. En la página Entrenar, haz clic en Importar documentos.
  2. Copia y pega la siguiente ruta de acceso . Este directorio contiene 5 PDFs W2 sin etiquetar. En la lista desplegable División de datos, selecciona Entrenamiento.
    cloud-samples-data/documentai/Custom/W2/AutoLabel
    
  3. En la sección Etiquetado automático, selecciona la casilla de verificación Importar con etiquetado automático.
  4. Selecciona una versión existente del procesador para etiquetar los documentos.
  • Por ejemplo: 2af620b2fd4d1fcf
  1. Haz clic en Importar y espera a que los documentos se importen. Puedes salir de esta página y volver más tarde.
  • Cuando se complete el proceso, los documentos aparecerán en la página Entrenar en la sección Etiquetado automáticamente.
  1. No puedes usar documentos etiquetados automáticamente para entrenamiento ni pruebas sin marcarlos como etiquetados. Dirígete a la sección Etiquetado automáticamente para ver los documentos etiquetados automáticamente.
  2. Selecciona el primer documento para ingresar a la consola de etiquetado.
  3. Verifica las etiquetas, los cuadros delimitadores y los valores para asegurarte de que sean correctos. Etiqueta cualquier valor que se haya omitido.
  4. Cuando termines, selecciona Marcar como etiquetado.
  5. Repite la verificación de etiquetas en cada documento etiquetado automáticamente y, luego, vuelve a la página Entrenar para usar los datos para entrenamientos.

13. Conclusión

Felicitaciones, utilizaste de forma correcta Document AI para entrenar un procesador extractor de documentos personalizado. Ahora puedes usar este procesador para analizar documentos en este formato como lo harías con cualquier procesador especializado.

Puedes consultar el Codelab de procesadores especializados para recordar cómo controlar la respuesta del procesamiento.

Realiza una limpieza

Para evitar que se generen cargos en tu cuenta de Google Cloud por los recursos que usaste en este instructivo, sigue estos pasos:

  • En la consola de Cloud, ve a la página Administrar recursos.
  • En la lista de proyectos, selecciona tu proyecto y haz clic en Borrar.
  • En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrarlo.

Recursos

Licencia

Este trabajo cuenta con una licencia Atribución 2.0 Genérica de Creative Commons.