Clasificación de documentos y separación de documentos mediante IA

Uno de los problemas a menudo ignorados y realmente difíciles de la automatización de documentos, que también resulta realmente molesto en las operaciones cotidianas, es separar automáticamente un lote de documentos en documentos individuales significativos y asignarlos a una clase documental. En los procesos de escaneado tradicionales, esto se consigue a menudo preparando manualmente el papel y colocando un código de barras como separador de documentos en cada primera página. Pero esto requiere mucho trabajo y es propenso a errores. Además, a medida que nos digitalizamos más y más, incluso con procesos basados en papel, normalmente ya no tenemos acceso al papel. Así que el objetivo sería simplemente escanear toda la pila y separarla mediante un algoritmo inteligente.

Afortunadamente, esto ya está disponible hoy en día, por ejemplo en la pila tecnológica Konfuzio como función integrada. Sin embargo, esto no significa que sea fácil. Se requiere bastante experiencia e infraestructura para gestionar múltiples pasos interdependientes de clasificación y separación de forma estable y fiable. Sin embargo, esto es exactamente lo que ofrece Konfuzio.

¿Cómo funciona en principio la estructuración de documentos? Pues exactamente de la misma manera (¡nuestro credo!) que lo haría un humano. Recorre la pila página por página, determina de qué tipo de página se trata, si está relacionada con la página anterior o si comienza un nuevo tema/formulario. A continuación, compruebe que los números de página son seguros, si es que existen. En caso de duda, retroceda una o varias páginas para comprobarlo y luego tome la decisión de separar.

Separación de documentos

Dividir el archivo en documentos

En la clasificación AI, esto se integra en una secuencia de algoritmos. El sistema se entrena con una muestra que ya está correctamente separada. Konfuzio aprende para cada página si es la primera, la intermedia, la última o una sola. El usuario no necesita especificarlo explícitamente, ya que la IA de Konfuzio lo deduce automáticamente de las muestras y oculta esta complejidad a los usuarios. La interfaz de entrenamiento sólo requiere que los documentos individuales se coloquen en el conjunto de entrenamiento. No es necesario tener un número exacto de páginas (rango) para cada tipo de documento. Konfuzio tiene en cuenta automáticamente que éstas pueden variar para cada tipo de documento. Sin embargo, si lo sabe también puede limitar las páginas permitidas, por ejemplo para formularios de una sola página que siempre tienen una página.

Konfuzio aprenderá entonces la estructura y la aplicará a toda la pila de páginas individuales no separadas durante el tiempo de ejecución.

División de documentos - Guía detallada para entrenar una IA

La automatización de documentos puede ser a menudo un proceso tedioso y propenso a errores, especialmente cuando se trata de separar automáticamente un lote de documentos en documentos individuales y asignarlos a una clase documental. Tradicionalmente, esto se consigue en los procesos de escaneado preparando manualmente el papel y colocando un código de barras como separador en cada primera página. Sin embargo, esto lleva mucho tiempo y es propenso a errores. Además, las instalaciones de procesamiento no suelen tener acceso al papel, ni siquiera en los procesos basados en papel. Por tanto, el objetivo es simplemente escanear toda la pila y dividirla mediante un algoritmo inteligente.

Afortunadamente, esto es posible hoy en día con la tecnología Konfuzio. El SDK de Konfuzio proporciona una clase preconstruida llamada SplittingAI y una instancia de un ContextAwareFileSplittingModel entrenado que utiliza lógica sensible al contexto. Sensible al contexto significa en este caso un enfoque basado en reglas que busca cadenas comunes entre las primeras páginas de todos los documentos de una categoría. Para predecir si una página es un punto de corte potencial (es decir, si es una primera página), el algoritmo compara el contenido de la página con estas cadenas comunes de las primeras páginas. Si al menos una de estas cadenas aparece en la página, ésta se marca como primera página, lo que significa que es un punto de ruptura.

división de documentos

En esta Deep Dive explicaremos cómo utilizar el SDK de Konfuzio para entrenar un modelo capaz de dividir automáticamente documentos en múltiples documentos. Utilizaremos la clase SplittingAI y una instancia de un ContextAwareFileSplittingModel entrenado para dividir automáticamente un archivo en múltiples documentos.

División de archivos

Extraer documentos individuales de un archivo Veamos cómo podemos utilizar el SDK de Konfuzio para dividir automáticamente un archivo en varios documentos. Para ello utilizamos la clase SplittingAI y una instancia de ContextAwareFileSplittingModel. Este último utiliza una lógica sensible al contexto. Sensible al contexto significa en este caso un enfoque basado en reglas que busca cadenas comunes entre las primeras páginas de todos los documentos de una categoría. Para predecir si una página es un posible punto de ruptura (es decir, si es una primera página), el algoritmo compara el contenido de la página con estas cadenas comunes de las primeras páginas. Si al menos una de estas cadenas aparece en la página, ésta se marca como primera página, lo que significa que es un punto de ruptura.

Este tutorial también se puede utilizar con el MultimodalFileSplittingModel. La única diferencia en la inicialización es que no es necesario especificar explícitamente ningún tokenizador.

Cómo entrenar una IA de división de documentos con el SDK Konfuzio

La automatización de documentos es una parte importante del mundo laboral digital actual. En este contexto, separar automáticamente lotes de documentos en documentos individuales significativos y asignarlos a una clase documental es una tarea a menudo olvidada y difícil que puede resultar muy molesta en el procesamiento diario de documentos. En el proceso de escaneado tradicional, esto se consigue a menudo preparando manualmente el papel y colocando un código de barras como separador de documentos en cada primera página. Sin embargo, esto lleva mucho tiempo y es propenso a errores. Con la creciente digitalización, las instalaciones de procesamiento a menudo ya no tienen acceso al papel. Así que el objetivo sería simplemente escanear toda la pila y separarla automáticamente mediante un algoritmo inteligente.

Konfuzio proporciona una solución a este problema a través del SDK Konfuzio de Python. El SDK de Konfuzio proporciona una clase preentrenada llamada SplittingAI que utiliza una instancia de un ContextAwareFileSplittingModel entrenado. Este modelo utiliza una lógica contextual que busca cadenas comunes entre las primeras páginas de todos los documentos de una categoría para decidir si una página es o no un posible punto de división. Si hay al menos una cadena de este tipo, marcamos la página como la primera (lo que significa que es un punto de división).

En este tutorial aprenderá a entrenar y utilizar un ContextAwareFileSplittingModel con el SDK Konfuzio para dividir documentos automáticamente.

Paso 1: Configurar el proyecto Konfuzio y crear el documento de prueba

Primero tienes que crear un proyecto Konfuzio y seleccionar un documento de prueba. Para ello, importa la biblioteca Konfuzio SDK en Python e inicializa el objeto Konfuzio:

from konfuzio_sdk.data import Página, Categoría, Proyecto
from konfuzio_sdk.trainer.file_splitting import SplittingAI
from konfuzio_sdk.trainer.file_splitting import ContextAwareFileSplittingModel
from konfuzio_sdk.trainer.information_extraction import load_model
from konfuzio_sdk.tokenizer.regex import ConnectedTextTokenizer
# Inicialice un proyecto y recupere un documento de prueba de su elección
project = Proyecto(id_=TU_ID_PROYECTO)
test_document = project.get_document_by_id(YOUR_DOCUMENT_ID)

Paso 2: Inicializar y personalizar el ContextAwareFileSplittingModel

A continuación, debe inicializar y personalizar el ContextAwareFileSplittingModel. Para ello, debe especificar las categorías y el tokenizador del modelo. El tokenizador se utiliza para cargar los textos en el modelo y dividirlos en frases.

file_splitting_model = ContextAwareFileSplittingModel(categories=project.categories, tokenizer=ConnectedTextTokenizer())

En este ejemplo, utilizamos un tokenizador ConnectedTextTokenizer, que divide el texto en frases y luego las divide en palabras. También se pueden utilizar otros tokenizadores, como un tokenizador estándar. Sin embargo, el ConnectedTextTokenizer se desarrolló específicamente para procesar texto conectado y, por tanto, puede ser útil para identificar pasajes separables en el documento.

Primero tenemos que inicializar un proyecto y seleccionar un documento de prueba. Suponemos que el SDK Konfuzio ya está instalado y que tenemos acceso a un sistema Konfuzio en funcionamiento.

from konfuzio_sdk.data import Página, Categoría, Proyecto
from konfuzio_sdk.trainer.file_splitting import ContextAwareFileSplittingModel
from konfuzio_sdk.tokenizer.regex import ConnectedTextTokenizer
# inicializar un proyecto y obtener un documento de prueba de su elección
project = Proyecto(id_=TU_ID_PROYECTO)
test_document = project.get_document_by_id(YOUR_DOCUMENT_ID)

A continuación, inicializamos una instancia del ContextAwareFileSplittingModel y lo adaptamos a las categorías de nuestro proyecto. También tenemos que especificar el tokenizador utilizado. En este caso utilizamos el ConnectedTextTokenizer.

# inicializa un Context Aware File Splitting Model y lo ajusta
file_splitting_model = ContextAwareFileSplittingModel(categories=project.categories, tokenizer=ConnectedTextTokenizer())
# ajusta el modelo
file_splitting_model.fit(allow_empty_categories=True)

Ahora podemos utilizar el modelo entrenado para dividir un documento de entrada en varios documentos. Supongamos que tenemos un documento que consta de varios documentos y que, por tanto, hay que separar.

# ejecuta la predicción con el modelo de división de archivos consciente del contexto
nuevos_documentos = []
documento_actual = None
for página in documento_prueba.páginas():
    pred = file_splitting_model.predict(página)
    if pred.is_first_page:
        # crear un nuevo documento cuando se encuentra una primera página
        si documento_actual no es None
            new_documents.append(documento_actual)
        documento_actual = proyecto.crear_documento(categoria_id=TU_CATEGORIA_ID)
        documento_actual.add_page(page)
    si no:
        # añade la página al documento actual
        documento_actual.add_page(page)
# añade el último Documento a la lista
nuevos_documentos.append(documento_actual)

La variable nuevos_documentos contiene ahora una lista de documentos independientes extraídos del documento de entrada original.

Validación mediante la interfaz de usuario "Human-in-the-Loop

El procesamiento de documentos es un componente importante en varios sectores, como el bancario, el de seguros y el jurídico. El proceso de escanear y archivar múltiples documentos puede llevar mucho tiempo y a menudo se necesita una solución automatizada que pueda dividir y organizar estos documentos. Sin embargo, las soluciones automatizadas no siempre son perfectas y pueden pasar por alto detalles importantes o identificar erróneamente un tipo de documento. Aquí es donde entra en juego una interfaz humana, la Document Validation UI (DV UI).

dividir documento

DV UI es una herramienta que permite interactuar con un sistema automatizado de tratamiento de documentos para validar y corregir sus resultados. La DV UI proporciona una interfaz para que los usuarios revisen y verifiquen la división automática de documentos y la organización de archivos, y realicen las correcciones necesarias. El usuario también puede enseñar al sistema de IA a reconocer nuevos tipos de documentos para garantizar la precisión de las futuras divisiones y organización.

El uso de DV UI para ajustar la IA que divide automáticamente escaneos y archivos puede mejorar significativamente la precisión y la eficacia del procesamiento de documentos. El sistema de IA puede aprender de las correcciones del usuario y actualizar sus algoritmos para reconocer mejor los tipos de documentos y dividirlos en consecuencia. Cuantos más datos reciba el sistema de IA del usuario, más preciso será, por lo que con el tiempo se necesitará menos intervención manual.

categorizar y renombrar documentos

Además, al utilizar DV UI para el procesamiento de documentos, las empresas pueden ahorrar tiempo y dinero, ya que el sistema puede procesar más documentos en menos tiempo y con menos errores. Esto significa que las empresas pueden centrar sus recursos en otras tareas importantes, como analizar los datos extraídos de los documentos procesados, en lugar de organizarlos y dividirlos manualmente.

En resumen, DV UI es una herramienta indispensable para afinar la IA que divide automáticamente los escaneados y los archivos que contienen varios documentos. Su uso puede mejorar significativamente la precisión y eficiencia del procesamiento de documentos, reducir la necesidad de intervención manual y permitir a las empresas centrarse en otras tareas importantes.

Conclusión Separación y clasificación de documentos

En este ejemplo hemos mostrado cómo utilizar el SDK Konfuzio para utilizar un modelo entrenado para dividir un documento de entrada en varios documentos separados. La división automática de documentos es especialmente útil para procesar lotes de documentos en papel o archivos PDF que contienen varios documentos separados. Con el SDK Konfuzio, los desarrolladores pueden entrenar rápida y fácilmente sus propios modelos y aplicarlos a nuevos documentos.

Regístrese en o visite nuestro documentación técnica para saber más

"
"
Avatar de Elizaveta Ezhergina

Últimos artículos