Extraer la lista subsidiaria; no dejes que la ordenación altere la correspondencia entre las filas y el texto original

The same amount of details in the two rows does not mean that they are duplicate data; the sorted table is more tidy, but it does not mean that it can be aligned with the original text line by line. What is most easily lost when extracting details is often the correspondence between each row and the source. Este artículo explicará cómo conservarlo.

El hecho de que las cantidades en las dos filas sean iguales no significa que sean datos duplicados. El hecho de que la tabla esté ordenada no significa que todavía corresponda al texto original línea por línea. Al extraer detalles, lo que se pierde fácilmente a menudo no es el campo en sí, sino la correspondencia entre cada fila y la fuente.

Este artículo es adecuado para personas que necesitan extraer detalles de documentos como contratos, cotizaciones, cuadros financieros, etc. También es adecuado para desarrolladores que están creando procesos de procesamiento posteriores. Después de leer, sabrá cómo conservar la información de origen para cada detalle, cómo lidiar con los problemas causados por la misma cantidad, encabezados entre páginas y clasificación, y qué alineación se debe utilizar durante la verificación posterior a la traducción.

¿Cómo mantener la correspondencia entre filas y fuentes al extraer detalles? Conclusión de una frase

Guarde un identificador de fuente estable para cada detalle. La clasificación es sólo para visualización y no sobrescribe el número de línea original.

tu situaciónPrácticas recomendadasrazón
Ambas líneas tienen la misma cantidad.Primero, verifica la página de origen y el número del banco de fuentes; no te apresures a eliminar los duplicadosLa misma cantidad no representa datos duplicados
Debe mostrarse ordenado por cantidadCree una vista de visualización y mantenga el número de línea original sin cambiosLos números de serie ordenados no deben devolverse a la fuente
Aparecen encabezados o subtotales duplicados en la tablaExcluir según reglas interpretables y conservar filas y motivos excluidosFacilite a los revisores la detección de eliminaciones accidentales
Es necesario alinear los detalles multilingüesAlinear por ID de fuente, no solo por nombre de producto traducidoTanto el nombre del producto como la cantidad pueden repetirse.

Guarde primero la identidad de la fila estable

Las páginas fuente, números de tabla y números de fila se conservan para cada elemento, o un identificador estable compuesto por esta información. Los nombres y cantidades de los productos pueden duplicarse y no ser adecuados como identidades independientes.

Cuando el canal descendente necesita ordenar por cantidad, puede crear una vista de visualización, pero no escriba por error los números de serie ordenados en la fuente original.

Varias formas de utilizarlo como identidad de fila

Forma¿Es adecuado como identidad?razón
Página de origen + número de tabla + número de fila de origenAdecuadoPuede localizar de forma estable la línea en el texto original.
Nombre del productoNo apto para uso soloposible duplicado
CantidadNo apto para uso soloposible duplicado
Mostrar el número de serie después de ordenarNo apto como fuente.Cambiará después de ordenar

Preste atención a la singularidad del esquema JSON

La matriz JSON en sí conserva el orden, pero uniqueItems en el esquema no es un atajo para "un campo es único". Dos objetos aún pueden considerarse elementos distintos siempre que otros campos sean diferentes. La unicidad a nivel de campo debe comprobarse individualmente.

Un conjunto de detalles con la misma cantidad y diferentes fuentes.

from collections import Counter

rows = [{"source_id": "p1-t1-r1", "item": "Bolt", "amount": "10.00"},
        {"source_id": "p1-t1-r2", "item": "Nut", "amount": "10.00"}]

def check_ids(items):
    counts = Counter(row["source_id"] for row in items)
    return [key for key, count in counts.items() if count > 1]

assert check_ids(rows) == []
assert len(rows) == 2
assert check_ids(rows + [dict(rows[0])]) == ["p1-t1-r1"]
display = sorted(rows, key=lambda row: row["item"], reverse=True)
assert [r["source_id"] for r in rows] == ["p1-t1-r1", "p1-t1-r2"]
assert {r["source_id"] for r in display} == {r["source_id"] for r in rows}

Se trata de una verificación de identidad de datos sintéticos, no de un reconocedor de tablas. El código deliberadamente no deduplica las mismas cantidades, ni considera el orden de visualización como el orden de origen.

Las reglas para generar ID de fuente verdadera deben tener en cuenta las versiones de los archivos. De lo contrario, el contenido de la misma página y línea en ambas versiones puede confundirse con la misma prueba.

Cuando el número de líneas es incorrecto, primero busque el enlace que falta.

Fenómenodebe ser revisadono debe tomarse inmediatamente
Cantidad duplicadaYa sea un proyecto diferente o una línea fuente diferenteEliminar duplicados por cantidad
ID de fuente duplicado¿Hay un error de importación o mapeo duplicado?Agregar aleatoriamente una nueva identificación
Número de filas reducidoFusionar celdas, filas en blanco y reglas de filtradoCompletar con la línea anterior
cambio de secuenciaSi se debe ordenar solo por impresionesSobrescribir el número de línea original

El encabezado de varias páginas no es una fila de datos ordinaria.

Los encabezados de tabla repetidos, las descripciones de la tabla de continuación y las filas de subtotales pueden ingresar a la matriz de detalles. Eliminarlos requiere reglas interpretables que no se limiten a una posición más alta o un texto más corto.

Mantener las líneas excluidas y sus motivos puede ayudar a los revisores a detectar eliminaciones accidentales. De lo contrario, el problema sólo se perseguirá si el total final no cuadra.

Llevar la relación de origen a la verificación posterior a la traducción

Los programas multilingües deberían poder alinearse por ID de origen, no solo por el nombre del producto traducido. Al evaluar los resultados de la traducción de los documentos tabulares de OmniDoc (portal de productos), vale la pena verificar individualmente las relaciones fila-columna, cantidades y unidades.

La identificación de la fuente de este artículo es una convención de ingeniería externa y no es una descripción de la implementación interna de la plataforma.

Referencias: Matriz de esquema JSON

🎯 ¿Qué método es el adecuado para ti?

Si necesita ordenar por cantidad para mostrárselo a otros

Cree una vista de visualización, la clasificación solo afecta la visualización, la página de origen original y el número de línea de origen permanecen sin cambios.

Si su tabla tiene encabezados o subtotales entre páginas

Utilice reglas interpretables para excluir estas líneas y conserve las líneas excluidas y los motivos para una revisión posterior.

Si desea procesar varias versiones de un archivo

Las reglas de generación de ID de origen deben incorporarse en la versión del archivo para evitar que el contenido de la misma línea en la misma página se confunda entre diferentes versiones.

Si desea realizar una alineación detallada en varios idiomas

Alinee por ID de fuente, no confíe únicamente en el nombre del producto traducido.

❓ Preguntas frecuentes (FAQ)

1. Los montos en las dos filas son iguales. ¿Puedo eliminar los duplicados directamente?

no puedo. La misma cantidad no significa datos duplicados. Primero debe verificar su página de origen y el número de fila de origen para confirmar si pertenecen a proyectos diferentes o a filas de origen diferentes.

2. ¿Por qué el nombre del producto no es adecuado como identidad de fila?

El nombre del producto y la cantidad pueden repetirse y es imposible ubicar de manera estable la línea en el texto original cuando se usa solo.

3. ¿Se puede volver a escribir el nuevo número de secuencia en los datos originales después de ordenarlos?

No recomendado. Los números de serie ordenados sólo son aptos para su visualización. Al sobrescribir los números de línea originales se perderá la correspondencia con la fuente.

4. ¿A qué debes prestar atención al eliminar encabezados duplicados?

Es necesario que haya reglas interpretables y las líneas y motivos excluidos deben conservarse para que se puedan detectar eliminaciones accidentales.

📝 Resumen

Al extraer detalles, primero mantenga la correspondencia entre cada fila y la fuente, y luego hable sobre clasificación y deduplicación. El código de este artículo es solo una demostración de muestra sintética y no representa una garantía de todos los archivos o efectos del producto reales. Antes de procesar documentos importantes, conserve los originales y revíselos de acuerdo con los límites y elementos de aceptación del texto.

Pruébelo ahora: cargue el documento para comenzar la traducción, conservando el diseño original

Actualizado 2026-11-13