Inicio / Blog / Python / Creación de una herramienta de análisis de datos con Python, el conjunto de datos SROIE y aprendizaje automático

Creación de una herramienta de análisis de datos con Python, el conjunto de datos SROIE y aprendizaje automático

Resumir con ChatGPT

Si eres desarrollador de Python y quieres crear una herramienta de análisis sintáctico de datos, este tutorial es para ti. Le mostraremos cómo crear una herramienta eficaz de análisis sintáctico de documentos con Python y el conjunto de datos SROIE y le presentaremos las posibilidades del SDK Konfuzio. ¡Empecemos!

Aquí encontrará una breve introducción al análisis sintáctico de cadenas en Python.

Paso 1: Configure su entorno

Antes de empezar, asegúrate de que Python y todas las librerías necesarias están instaladas. Para ello, ejecute los siguientes comandos en su línea de comandos o terminal:

# Install Python packages
pip install opencv-python tensorflow numpy scikit-learn

Paso 2: Cargar el conjunto de datos SROIE

El conjunto de datos SROIE consta de imágenes de Recibos y los archivos de anotación asociados. Así es como puede cargarlos:

import os
import cv2
# Verzeichnisse für SROIE-Bilder und -Annotationen
image_folder = "path/to/SROIE/image/folder"
annotation_folder = "path/to/SROIE/annotation/folder"
def load_sroie_dataset(image_folder, annotation_folder):
    """Load images and corresponding text from the SROIE dataset."""
    images, extracted_texts = [], []
    for filename in os.listdir(annotation_folder):
        with open(os.path.join(annotation_folder, filename), "r") as file:
            extracted_text = file.readlines()[1].strip()
            image_path = os.path.join(image_folder, filename.replace(".txt", ".jpg"))
            image = cv2.imread(image_path)
            images.append(image)
            extracted_texts.append(extracted_text)
    return images, extracted_texts
images, extracted_texts = load_sroie_dataset(image_folder, annotation_folder)

Paso 3: Preparar el conjunto de datos

Ahora queremos preprocesar las imágenes del conjunto de datos SROIE para su posterior entrenamiento:

output_folder = "path/to/output/folder"
def preprocess_images(image_folder, annotation_folder, output_folder):
    """Preprocess images and save them to the output directory."""
    for filename in os.listdir(annotation_folder):
        with open(os.path.join(annotation_folder, filename), "r") as file:
            extracted_text = file.readlines()[1].strip()
            image_path = os.path.join(image_folder, filename.replace(".txt", ".jpg"))
            image = cv2.imread(image_path)
            # Hier können Sie Bildvorverarbeitungsschritte hinzufügen
            output_path = os.path.join(output_folder, filename.replace(".txt", ".jpg"))
            cv2.imwrite(output_path, image)
preprocess_images(image_folder, annotation_folder, output_folder)

Otro interesante conjunto de datos lo ofrece FUNSD+. Lea más ahora.

Paso 4: Ajuste y evaluación con el modelo donut

Para una mayor precisión Análisis sintáctico de documentos tendremos un modelo de donut preentrenado afinar en nuestros datos preprocesados:

import tensorflow as tf
from tensorflow.keras import layers, models
from sklearn.model_selection import train_test_split
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(images, extracted_texts, test_size=0.2, random_state=42)
def create_donut_model(input_shape, num_classes):
    """Create the Donut CNN model for text recognition."""
    model = models.Sequential([
        layers.Conv2D(32, (3, 3), activation='relu', input_shape=input_shape),
        layers.MaxPooling2D((2, 2)),
        layers.Conv2D(64, (3, 3), activation='relu'),
        layers.MaxPooling2D((2, 2)),
        layers.Flatten(),
        layers.Dense(128, activation='relu'),
        layers.Dense(num_classes, activation='softmax')
    ])
    return model
model = create_donut_model((height, width, channels), num_classes)
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=10, batch_size=32, validation_split=0.1)
test_loss, test_accuracy = model.evaluate(X_test, y_test)

Resumen

La creación de una herramienta de análisis sintáctico de datos con Python y el conjunto de datos SROIE puede ser perfecta con el enfoque adecuado. Para obtener características y funcionalidades más avanzadas, integre el SDK de Konfuzio en sus proyectos. Eche un vistazo a la documentación de Konfuzio para obtener información completa.

¡Diviértase programando!

Más enlaces

¿Le ha resultado útil esta página?

Gracias por sus comentarios.

¿Podría darme su opinión? (anónimo)

Desarrollamos software de inteligencia artificial para empresas y evitamos deliberadamente los molestos banners publicitarios. A través de nuestros artículos, documentamos temas que nos ocupan e interesan y también financian nuestro pan de cada día.

Como nuestro contenido es gratuito, sus comentarios son nuestro elogio.

Cada autor lee personalmente tus comentarios anónimos, aunque la IA podría automatizarlos, e integra las sugerencias constructivas directamente en la siguiente revisión o las utiliza como inspiración para el siguiente artículo.



    </artículo
    • Florian Zyprian
      (Autor)

      Como Director Técnico de Helm & Nagel GmbH, la empresa que está detrás del Konfuzio.

    es_ESES