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ón | Prácticas recomendadas | razó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 duplicados | La misma cantidad no representa datos duplicados |
| Debe mostrarse ordenado por cantidad | Cree una vista de visualización y mantenga el número de línea original sin cambios | Los números de serie ordenados no deben devolverse a la fuente |
| Aparecen encabezados o subtotales duplicados en la tabla | Excluir según reglas interpretables y conservar filas y motivos excluidos | Facilite a los revisores la detección de eliminaciones accidentales |
| Es necesario alinear los detalles multilingües | Alinear por ID de fuente, no solo por nombre de producto traducido | Tanto 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 origen | Adecuado | Puede localizar de forma estable la línea en el texto original. |
| Nombre del producto | No apto para uso solo | posible duplicado |
| Cantidad | No apto para uso solo | posible duplicado |
| Mostrar el número de serie después de ordenar | No 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ómeno | debe ser revisado | no debe tomarse inmediatamente |
|---|---|---|
| Cantidad duplicada | Ya sea un proyecto diferente o una línea fuente diferente | Eliminar 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 reducido | Fusionar celdas, filas en blanco y reglas de filtrado | Completar con la línea anterior |
| cambio de secuencia | Si se debe ordenar solo por impresiones | Sobrescribir 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


