<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>LangExtract on KnightLi Blog</title>
        <link>https://www.knightli.com/es/tags/langextract/</link>
        <description>Recent content in LangExtract on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Fri, 01 May 2026 02:58:21 +0800</lastBuildDate><atom:link href="https://www.knightli.com/es/tags/langextract/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Google LangExtract: extraiga datos estructurados de texto largo con LLM</title>
        <link>https://www.knightli.com/es/2026/05/01/google-langextract-llm-structured-data-extraction/</link>
        <pubDate>Fri, 01 May 2026 02:58:21 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/01/google-langextract-llm-structured-data-extraction/</guid>
        <description>&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; es una biblioteca Python de código abierto de Google para extraer información estructurada de texto no estructurado.&lt;/p&gt;
&lt;p&gt;Su caso de uso es sencillo: proporcione un fragmento de texto, un mensaje y algunos ejemplos, luego deje que un modelo de lenguaje grande extraiga campos de acuerdo con su definición y organice el resultado en datos que puedan procesarse.&lt;/p&gt;
&lt;p&gt;A diferencia de simplemente pedirle a un modelo que resuma algo, &amp;ldquo;LangExtract&amp;rdquo; se centra en tres cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Extraer información en una estructura fija.&lt;/li&gt;
&lt;li&gt;Preservar la relación entre los resultados extraídos y sus ubicaciones de origen.&lt;/li&gt;
&lt;li&gt;Soporte de documentos largos e inspección visual.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si a menudo necesita extraer entidades, eventos, relaciones o atributos de informes, documentos, notas médicas, contratos, registros o páginas web, este tipo de herramienta es más flexible que las expresiones regulares escritas a mano y más fácil de conectar a flujos de trabajo de datos posteriores que las simples preguntas estilo chat.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;¿Qué problema resuelve?
&lt;/h2&gt;&lt;p&gt;Muchas tareas de extracción de texto parecen simples, pero resultan problemáticas en la práctica.&lt;/p&gt;
&lt;p&gt;Por ejemplo, es posible que desee extraer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Personas, organizaciones y ubicaciones.&lt;/li&gt;
&lt;li&gt;Eventos, horarios y participantes.&lt;/li&gt;
&lt;li&gt;Medicamentos, dosis y reacciones adversas.&lt;/li&gt;
&lt;li&gt;Modelos, parámetros y precios de productos.&lt;/li&gt;
&lt;li&gt;Cláusulas, obligaciones y plazos del contrato.&lt;/li&gt;
&lt;li&gt;Tipos de errores y contexto de los registros.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si el formato es fijo, pueden funcionar las expresiones regulares o los analizadores tradicionales.&lt;br&gt;
Pero una vez que el texto se vuelve más natural, las reglas rápidamente se complican.&lt;/p&gt;
&lt;p&gt;Los modelos de lenguaje grandes son buenos para comprender el lenguaje natural, pero pedirle directamente a un modelo que lo &amp;ldquo;extraiga&amp;rdquo; a menudo causa varios problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El formato de salida es inestable.&lt;/li&gt;
&lt;li&gt;No está claro de dónde proviene la información en el texto fuente.&lt;/li&gt;
&lt;li&gt;Es fácil pasar por alto los documentos largos&lt;/li&gt;
&lt;li&gt;El procesamiento por lotes es difícil&lt;/li&gt;
&lt;li&gt;Los resultados son incómodos de revisar manualmente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; aborda esta capa del problema: integra la comprensión de LLM en un flujo de trabajo de extracción más controlable.&lt;/p&gt;
&lt;h2 id=&#34;características-clave-de-langextract&#34;&gt;Características clave de LangExtract
&lt;/h2&gt;&lt;h3 id=&#34;1-utilice-ejemplos-para-restringir-el-formato-de-extracción&#34;&gt;1. Utilice ejemplos para restringir el formato de extracción
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; no se basa en un mensaje vago de una sola línea. En cambio, utiliza indicaciones y ejemplos para decirle al modelo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qué extraer&lt;/li&gt;
&lt;li&gt;Cómo se llama cada campo&lt;/li&gt;
&lt;li&gt;Cómo se debe llenar cada campo&lt;/li&gt;
&lt;li&gt;Qué hacer cuando la información es incierta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este enfoque de pocas tomas funciona bien para la extracción de información.&lt;br&gt;
Cuanto más se acerquen sus ejemplos a los datos reales, más estable se volverá la salida estructurada del modelo.&lt;/p&gt;
&lt;h3 id=&#34;2-los-resultados-extraídos-pueden-vincularse-a-la-fuente&#34;&gt;2. Los resultados extraídos pueden vincularse a la fuente
&lt;/h3&gt;&lt;p&gt;El peor tipo de resultado de extracción es el que parece correcto pero no se puede rastrear.&lt;/p&gt;
&lt;p&gt;Uno de los puntos importantes de &amp;ldquo;LangExtract&amp;rdquo; es alinear los resultados extraídos con las ubicaciones de origen. Cuando revise más tarde, no solo verá un resultado JSON; también puedes volver al texto original y ver de dónde vino la información.&lt;/p&gt;
&lt;p&gt;Esto es importante en escenarios que requieren revisión, como textos médicos, textos legales, material de investigación y documentos comerciales internos.&lt;/p&gt;
&lt;h3 id=&#34;3-soporte-para-documentos-largos&#34;&gt;3. Soporte para documentos largos
&lt;/h3&gt;&lt;p&gt;La extracción de documentos largos a menudo se topa con límites de ventana de contexto, resultados perdidos y resultados duplicados.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; proporciona un flujo de trabajo para texto largo: divide el documento, procesa fragmentos en paralelo y luego organiza los resultados extraídos.
Esto lo hace más adecuado para informes completos, artículos, páginas web largas y documentos masivos, en lugar de solo fragmentos cortos.&lt;/p&gt;
&lt;h3 id=&#34;4-inspección-visual&#34;&gt;4. Inspección visual
&lt;/h3&gt;&lt;p&gt;Si los resultados de la extracción solo están disponibles como JSON, es fácil pasar por alto los problemas.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; admite la visualización de resultados extraídos, lo que facilita ver qué extrajo el modelo y de dónde proviene.&lt;br&gt;
Esto es útil para ajustar indicaciones, comprobar extracciones omitidas y encontrar falsos positivos.&lt;/p&gt;
&lt;h2 id=&#34;cuándo-debería-usarlo&#34;&gt;¿Cuándo debería usarlo?
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; es adecuado cuando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Es necesario extraer campos estructurados del texto en lenguaje natural.&lt;/li&gt;
&lt;li&gt;El formato del texto no está completamente arreglado.&lt;/li&gt;
&lt;li&gt;Debes preservar la relación entre los resultados extraídos y el texto fuente.&lt;/li&gt;
&lt;li&gt;Necesita procesar documentos más largos.&lt;/li&gt;
&lt;li&gt;Los resultados requieren revisión humana&lt;/li&gt;
&lt;li&gt;El resultado se incluirá posteriormente en tablas, bases de datos o flujos de trabajo de análisis de datos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los ejemplos típicos incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Extracción de síntomas, medicamentos, dosis y reacciones del texto médico.&lt;/li&gt;
&lt;li&gt;Extracción de partes, obligaciones, montos y plazos de los contratos.&lt;/li&gt;
&lt;li&gt;Extraer temas, métodos y conclusiones de los artículos.&lt;/li&gt;
&lt;li&gt;Extracción de parámetros de especificación de documentos de producto.&lt;/li&gt;
&lt;li&gt;Extracción de tipos de problemas y resoluciones de registros de soporte.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si sólo necesita un resumen temporal de un breve fragmento de texto, un modelo de chat normal es suficiente.&lt;br&gt;
Si desea convertir texto en datos que puedan procesarse más adelante, &lt;code&gt;LangExtract&lt;/code&gt; es la mejor opción.&lt;/p&gt;
&lt;h2 id=&#34;instalación-básica&#34;&gt;Instalación básica
&lt;/h2&gt;&lt;p&gt;El proyecto admite la instalación a través de &lt;code&gt;pip&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install langextract
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También puedes instalarlo desde la fuente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/google/langextract.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; langextract
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install -e .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si desea utilizar una API modelo, configure la clave API para el proveedor del modelo correspondiente.&lt;br&gt;
La documentación del proyecto se centra en el uso de Gemini y también puede conectarse a otros proveedores de modelos a través de adaptadores.&lt;/p&gt;
&lt;h2 id=&#34;flujo-de-uso-básico&#34;&gt;Flujo de uso básico
&lt;/h2&gt;&lt;p&gt;Un flujo de trabajo típico se ve así:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Prepara el texto fuente.&lt;/li&gt;
&lt;li&gt;Describa claramente el objetivo de extracción.&lt;/li&gt;
&lt;li&gt;Proporcione algunos ejemplos&lt;/li&gt;
&lt;li&gt;Llame a &lt;code&gt;LangExtract&lt;/code&gt; para realizar la extracción.&lt;/li&gt;
&lt;li&gt;Inspeccionar el resultado estructurado.&lt;/li&gt;
&lt;li&gt;Genere una página de visualización para revisarla si es necesario.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El segundo y tercer paso son los más importantes.&lt;/p&gt;
&lt;p&gt;El mensaje debe describir claramente la tarea, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Extraer sólo información explícitamente presente en el texto.&lt;/li&gt;
&lt;li&gt;No completes hechos faltantes de sentido común.&lt;/li&gt;
&lt;li&gt;Deje los campos vacíos cuando falte información&lt;/li&gt;
&lt;li&gt;Mantener la misma estructura de campos para el mismo tipo de entidad.&lt;/li&gt;
&lt;li&gt;Conservar fragmentos de código fuente o posiciones en la salida&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los ejemplos deben ser lo más parecidos posible a las entradas reales.&lt;br&gt;
Si el texto real tiene ruido, abreviaturas, saltos de línea o residuos de tabla, los ejemplos deberían reflejarlo.&lt;/p&gt;
&lt;h2 id=&#34;cosas-a-tener-en-cuenta&#34;&gt;Cosas a tener en cuenta
&lt;/h2&gt;&lt;p&gt;En primer lugar, no amplíe demasiado la tarea de extracción.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Extraer información útil&amp;rdquo; es demasiado vago.&lt;br&gt;
Una mejor instrucción sería &amp;ldquo;extraer el nombre del medicamento, la dosis, la frecuencia y las reacciones adversas&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;En segundo lugar, no confíe plenamente en los resultados del modelo.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; puede alinear los resultados con el texto fuente, pero eso no significa que el modelo nunca omitirá o extraerá incorrectamente información. Los escenarios importantes aún requieren controles de muestreo o revisión humana.&lt;/p&gt;
&lt;p&gt;En tercer lugar, los ejemplos son más útiles que las explicaciones largas.&lt;/p&gt;
&lt;p&gt;En las tareas de extracción de información, los modelos suelen basarse más en ejemplos para comprender el formato de salida.&lt;br&gt;
En lugar de escribir un conjunto de reglas largas y abstractas, proporcione algunos ejemplos de alta calidad.
Cuarto, preste atención al costo y la velocidad para documentos largos.&lt;/p&gt;
&lt;p&gt;La división de documentos largos, la extracción paralela y las llamadas de modelos tienen costos. Antes del procesamiento por lotes, utilice un pequeño conjunto de muestra para ajustar la estructura de campos y mensajes.&lt;/p&gt;
&lt;h2 id=&#34;en-qué-se-diferencia-de-regex-o-pnl-tradicional&#34;&gt;¿En qué se diferencia de Regex o PNL tradicional?
&lt;/h2&gt;&lt;p&gt;Las expresiones regulares son buenas para formatos de texto estables y bien definidos.&lt;/p&gt;
&lt;p&gt;Los canales de PNL tradicionales funcionan bien cuando los límites de las tareas son claros y el modelo o diccionario ya está preparado.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; es mejor para texto cuyo formato es menos fijo pero cuyo significado es claro.&lt;br&gt;
No requiere que escribas una regla para cada expresión posible; en cambio, el LLM aprende el objetivo de extracción a partir de ejemplos.&lt;/p&gt;
&lt;p&gt;Pero no es un reemplazo completo de las expresiones regulares:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Para texto de formato fijo, las expresiones regulares son más económicas y estables.&lt;/li&gt;
&lt;li&gt;Para escenarios de alto riesgo, aún se requiere validación y revisión.&lt;/li&gt;
&lt;li&gt;Para el procesamiento por lotes a gran escala, el costo de la llamada al modelo es importante&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un enfoque práctico es manejar las partes con reglas claras con código y usar &lt;code&gt;LangExtract&lt;/code&gt; para las partes con más variación semántica.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-es&#34;&gt;¿Para quién es?
&lt;/h2&gt;&lt;p&gt;Es posible que desee consultar &lt;code&gt;LangExtract&lt;/code&gt; si está realizando alguna de las siguientes acciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Convertir texto largo en tablas.&lt;/li&gt;
&lt;li&gt;Extracción de entidades y relaciones de documentos.&lt;/li&gt;
&lt;li&gt;Limpiar datos antes de ponerlos en una base de conocimientos.&lt;/li&gt;
&lt;li&gt;Extracción de campos del texto comercial.&lt;/li&gt;
&lt;li&gt;Construcción de un prototipo de extracción de información impulsado por LLM.&lt;/li&gt;
&lt;li&gt;Preservar evidencia entre los resultados extraídos y el texto fuente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No es una herramienta de tipo &amp;ldquo;haga clic una vez y comprenda cada documento&amp;rdquo;. Es más como una biblioteca para diseñar un flujo de trabajo de extracción de LLM.&lt;/p&gt;
&lt;p&gt;Aún necesita diseñar campos, escribir ejemplos e inspeccionar los resultados.&lt;br&gt;
Pero en comparación con escribir manualmente llamadas de modelo, unir mensajes y analizar resultados cada vez, proporciona un marco de extracción más completo.&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/google/langextract&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;google/langextract&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;pensamiento-final&#34;&gt;Pensamiento final
&lt;/h2&gt;&lt;p&gt;El valor de &lt;code&gt;LangExtract&lt;/code&gt; hace que &amp;ldquo;permitir que un LLM encuentre información en texto&amp;rdquo; sea más controlable.&lt;/p&gt;
&lt;p&gt;No es para resúmenes casuales. Es para tareas de extracción de información con requisitos de campos, evidencia y revisión.&lt;br&gt;
Si su trabajo convierte a menudo textos largos en datos estructurados, vale la pena intentarlo.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
