0 / 0
Volver a la versión inglesa de la documentación

Extracción de texto de documentos

Última actualización: 20 mar 2025
Extracción de texto de documentos

Extraiga texto para convertir documentos PDF empresariales de alta calidad en un formato de archivo más sencillo que pueda ser utilizado por modelos de IA o para encontrar y aislar información clave de documentos como contratos.

Formas de desarrollarse

Puede extraer texto de documentos utilizando estos métodos de programación:

Visión general

Simplificar los documentos de su empresa de esta manera resulta especialmente útil para las tareas de generación aumentada por recuperación, en las que se desea encontrar información relevante para la consulta de un usuario e incluirla con la entrada de un modelo base. Incluir información contextual precisa en la entrada del modelo ayuda al modelo de la fundación a incorporar información fáctica y actualizada en la salida del modelo. Para obtener más información, consulte Generación aumentada por recuperación (RAG).

La extracción de texto también es útil para casos en los que se desea extraer entidades o categorías de información específicas de un documento en función de la estructura del mismo.

Python

Puede extraer texto de archivos en IBM watsonx.ai mediante programación utilizando la biblioteca Python.

Vea la clase Text Extractions de la biblioteca watsonx.ai Python.

Pruebe el cuaderno de muestra: Utilice el servicio de extracción de texto de watsonx.ai para extraer texto de un archivo.

Node.js

Puede extraer texto de archivos en IBM watsonx.ai mediante programación utilizando el SDK de Node.js. Para obtener más información, consulte los siguientes recursos:

Para obtener más información, consulte el ejemplo de código.

API REST

Puede utilizar el método de extracción de texto de documentos de la API REST de watsonx.ai para convertir archivos PDF muy estructurados y que utilizan diagramas, imágenes y tablas para transmitir información, a un formato de archivo con el que sea más fácil trabajar mediante programación, como markdown o JSON.

La API de extracción de texto aplica la tecnología de comprensión del lenguaje natural desarrollada por IBM para identificar las estructuras de los documentos.

La extracción de texto es un proceso asíncrono que convierte un archivo cada vez. Puede realizar solicitudes de métodos paralelos para extraer texto de un conjunto de documentos.

La extracción de texto sólo está disponible con los planes de pago. La facturación se basa en el número de páginas procesadas. Para más información, consulte Detalles de facturación de los activos de IA generativa.

Referencia de API

Para más detalles sobre los métodos de la API, consulte la sección ' Documentación de referencia de la API.

Antes de empezar

Cuando envías una solicitud de extracción de texto, incluyes una carga útil que especifica los detalles de configuración para la operación de extracción de texto. Seleccione las siguientes opciones para poder establecer parámetros que se ajusten a sus preferencias de configuración en el cuerpo de la solicitud:

El método de extracción de texto requiere que el archivo del que desea extraer el texto se almacene como un activo de conexión en su proyecto y, a continuación, se haga referencia a él mediante su ID de conexión. Para más información, consulta Gestionar tus documentos.

Tipos de archivos soportados

Puede utilizar la API para extraer texto de los siguientes tipos de archivos:

  • PDF
  • GIF
  • JPG
  • PNG
  • TIFF

Puede almacenar el texto extraído en los siguientes formatos:

  • JSON
  • Markdown

Idiomas soportados

La capacidad de extraer texto de imágenes se denomina reconocimiento óptico de caracteres (OCR). Esta función es útil para conservar información representada en imágenes, diagramas o texto incrustado en archivos como PDF escaneados.

Aunque el reconocimiento óptico de caracteres puede extraer texto de imágenes ruidosas, la calidad de los archivos de imagen debe cumplir el requisito mínimo de 80 PPP (puntos por pulgada).

Si el documento con imágenes que desea convertir está en un idioma distinto del inglés, debe especificar el idioma mediante su código de idioma ISO 639 en el parámetro language_list de su solicitud.

    "languages_list": [
      "fr"
    ]

Si el documento contiene una mezcla de lenguas, enumere cada lengua por separado. El reconocimiento óptico de caracteres sólo puede convertir las imágenes de un documento multilingüe cuando las lenguas comparten una escritura común. Por ejemplo, puede extraer texto de las imágenes de un documento con una mezcla de texto en inglés y francés, ya que ambos idiomas se basan en el latín. Sin embargo, no puede utilizar el OCR para extraer texto de imágenes en un documento con una mezcla de texto en japonés e inglés.

La función de reconocimiento óptico de caracteres puede extraer texto de imágenes en documentos escritos en los siguientes idiomas:

Idioma Código de lengua ISO 639 Script
Chino (Simplificado) zh-CN Chino
Chino (Tradicional) zh-TW Chino
Danés da Latín
Holandés nl Latín
Inglés en Latín
Escritura inglesa en_hw Latín
Finés fi Latín
Francés fr Latín
Alemán de Latín
Griego el Griego
Hebreo he Hebreo
Italiano it Latín
Japonés ja Japonés
Coreano ko Coreano
Noruego (Bokmål) nb Latín
Noruego (Nynorsk) nn Latín
Polaco pl Latín
Portugués pt Latín
Español es Latín
Sueco sv Latín

Extraer texto de las tablas

Convierta los datos tabulares de un documento en texto consumible que capture la información de la tabla. Muchos grandes modelos lingüísticos tienen dificultades para interpretar correctamente la información tabular.

Para activar la conversión de tablas, especifique el siguiente parámetro en su solicitud.

"steps": {
    "tables_processing": {
      "enabled": true
    }
  }

Elegir el formato del archivo de salida

Por defecto, el texto extraído se escribe en sintaxis JSON. Si desea que el texto extraído se escriba en markdown, especifique el siguiente parámetro en el cuerpo de la solicitud de la API:

"assembly_md": {}

Gestión de documentos

Añada los documentos que desea procesar en IBM Cloud Object Storage para poder hacer referencia a ellos desde la API.

Sólo se admiten activos de conexión que utilicen el par de claves Access y Secret para las credenciales. Para más información sobre cómo configurar la conexión, consulte Referenciación de archivos desde la API.

Por ejemplo, se hace referencia al archivo que se agrega a IBM Cloud Object Storage de la siguiente manera:

"document_location": {
  "type": "connection_asset",
  "connection": {
    "id": "6f5688fd-f3bf-42c2-a18b-49c0d8a1920d"
  },
  "location": {
    "file_name": "document.pdf",
    "bucket":"janessandbox"
  }
}

Defina la ubicación en la que desea almacenar el archivo de salida generado de la siguiente manera:

"results_location": {
  "type": "connection_asset",
  "connection": {
    "id": "6f5688fd-f3bf-42c2-a18b-49c0d8a1920d"
  },
  "location": {
    "file_name": "extracted_document.json"
  }
}

El siguiente diagrama muestra el flujo de trabajo que se utiliza para extraer información estructural sobre un documento comercial con la API de extracción de texto.

watsonx.ai flujo de trabajo de la API de extracción de texto de documentos

Procedimiento

Siga estos pasos de alto nivel para extraer texto de un documento empresarial mediante la API REST:

  1. Crear una credencial de tarea.

    Una credencial de tarea es una clave API que se utiliza para autenticar trabajos de larga duración que se inician mediante los pasos que se seguirán en este procedimiento. No es necesario que pase la credencial de tarea en la solicitud de API. Una credencial de tarea creada por usted debe existir en el servicio de credenciales para su user_id y account_id. Véase Creación de credenciales de tareas.

  2. Añada el archivo del que desea extraer texto a un bucket IBM Cloud Object Storage y, a continuación, defina una conexión desde su proyecto watsonx.ai a la instancia de servicio IBM Cloud Object Storage.

    Para obtener más información, consulte Añadir archivos a los que hacer referencia desde la API.

  3. Utilice el método Iniciar una solicitud de extracción de texto para iniciar el proceso de extracción de texto.

    Observe el ID que se devuelve en el campo metadata.id. Utilice este ID como ID de extracción para comprobar el estado de su solicitud en el siguiente paso.

  4. Utilice la opción Obtener los resultados de la solicitud para comprobar el estado de su solicitud.

    Comprobar el estado es la única manera de saber si el proceso ha fallado por algún motivo.

    Cuando el estado es Completed, el archivo de texto extraído está disponible en el bucket IBM Cloud Object Storage especificado.

  5. Descargue el archivo generado desde Cloud Object Storage.

Ejemplo de solicitud

Por ejemplo, el siguiente comando envía una solicitud para extraer texto del archivo ' retail_guidebook.pdf ' y guardarlo en formato markdown.

curl -X POST \
  'https://{region}.ml.cloud.ibm.com/ml/v1/text/extractions?version=2024-10-18' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer eyJraWQiOi...'

El cuerpo de la solicitud tiene el siguiente aspecto:

{
    "project_id": "e40e5895-ce4d-42a3-b699-8ac764b89a09",
    "document_reference": {
      "type": "connection_asset",
      "connection": {
        "id": "5c0cefce-da57-408b-b47d-58f7785de3ee"
      },
      "location": {
        "bucket":"my-cloud-object-storage-bucket",
        "file_name": "retail_guidebook.pdf"
      }
    },
    "results_reference": {
      "type": "connection_asset",
      "connection": {
        "id": "5c0cefce-da57-408b-b47d-58f7785de3ee"
      },
      "location": {
        "bucket":"my-cloud-object-storage-bucket",
        "file_name": "output_retail.md"
      }
    },
    "steps": {
      "ocr": {
        "languages_list": [
          "en"
        ]
      },
      "tables_processing": {
        "enabled": true
      }
    },
    "assembly_md": {}
  }

De la respuesta, copia el metadata.id, como 64162e0a-b05d-4ba6-a688-422893f58663. Especifique este ID en el endpoint que utilice para comprobar el estado del proceso de extracción.

curl -X GET \
  'https://{region}.ml.cloud.ibm.com/ml/v1/text/extractions/64162e0a-b05d-4ba6-a688-422893f58663?project_id=e40e5895-ce4d-42a3-b699-8ac764b89a09&version=2024-09-23' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer eyJraWQiOi...'

Detalles de la salida

El texto extraído se escribe en un archivo markdown con el nombre especificado en el campo ' results_reference.location.file_name '.

El markdown captura las estructuras del documento, como secciones y tablas. Por ejemplo, la siguiente imagen muestra cómo se representa en markdown una tabla del archivo PDF original una vez extraído el texto. Se incluye una vista previa de la tabla markdown para mostrar que el texto de la tabla original en el PDF permanece intacto tras la extracción.

Tres capturas de pantalla donde la primera muestra una tabla en un documento PDF, la siguiente muestra el texto de la tabla extraído como markdown, y la tercera muestra una vista previa de la tabla

Ejemplo de salida JSON

Cuando se extrae texto a un archivo JSON, el archivo resultante contiene detalles sobre diferentes estructuras de datos en el documento, como secciones, párrafos, estructuras de tablas, tokens y más.

Para obtener más información sobre cómo trabajar con texto extraído en formato JSON, consulte Análisis sintáctico de estructuras JSON generadas por la extracción de texto.

Utilizar el texto extraído del archivo PDF

Puede convertir el archivo markdown generado en un archivo de texto cambiando la extensión del archivo de ' .md ' a ' .txt. El archivo de texto resultante incluye las etiquetas markdown. Si desea eliminar el etiquetado, puede utilizar una biblioteca de análisis sintáctico para encontrar y convertir las etiquetas.

Puede utilizar una biblioteca de procesadores JSON para extraer texto del archivo JSON generado y almacenarlo como texto sin formato. Por ejemplo, el siguiente comando extrae el texto de cada token para todas las estructuras del documento y almacena el texto en un archivo llamado parsed_output_text.txt:

cat output_retail.json | jq '[.all_structures.tokens[].text] | join(" ")' > parsed_output_text.txt
Nota: Este comando utiliza jq, que es un procesador JSON de línea de comandos que debe instalarse por separado.

Después de convertir el archivo generado a un archivo TXT, puede utilizar el texto extraído como información contextual para un aviso del modelo de base de las siguientes maneras:

Más información

Tema principal: Codificación de soluciones de IA generativa