Extração de tabelas com Document AI: Práticas recomendadas¶
Com o Document AI, é possível extrair informações de entidades no formato de um único valor ou de uma lista de valores, ou de tabelas com base em uma lista de colunas especificadas. Para obter informações sobre como trabalhar com extração de tabelas na interface do Document AI, consulte Definição de valores para uma compilação de modelo de Document AI.
Este tópico apresenta as melhores práticas para trabalhar com a extração de tabelas no Document AI.
Uso de compilação de modelo única para extração de entidades e tabelas¶
Para extrair valores de entidades e tabelas, use o tipo de processamento de extração de tabelas ao criar a compilação de modelo. Defina valores para todas as tabelas e adicione outra tabela para agrupar todas as entidades nela. Para nomes de colunas, use os das entidades extraídas. Observe que pode ser necessário treinamento para melhorar os resultados.
Uso de compilação de modelo para um tipo específico de documento¶
Cada compilação de modelo deve conter documentos do mesmo tipo, e os dados que você quer extrair devem ser semelhantes para a maioria das tabelas. Se o número de colunas no documento de origem for diferente entre um documento e outro, mas todos os documentos incluírem um subconjunto definido de colunas a serem extraídas e as colunas comuns tiverem nome e localização iguais ou semelhantes, essas colunas comuns poderão ser extraídas.
Por exemplo, as faturas podem ter números diferentes de colunas com vários dados, mas se todas as tabelas tiverem as mesmas três primeiras colunas, Item Description
, Quantity
e Price
, os dados poderão ser extraídos.
Uso de linguagem natural para definir nomes de colunas¶
Você pode copiar os nomes das colunas do documento para que sejam exatamente iguais. Por exemplo, não insira nomes de colunas como product_code
ou REPORT_DATE
; em vez disso, insira Product Code
ou Report Date
.
Especificação correta das linhas vazias na revisão¶
Ao revisar as respostas fornecidas pelo modelo, para linhas vazias, use -
em cada célula, em vez de None
. Linhas com None
em cada célula são ignorados pelo modelo durante o treinamento.
Definição de colunas na mesma ordem em que aparecem no documento¶
Para melhorar a precisão, defina as colunas na mesma ordem em que aparecem no documento, que geralmente é da esquerda para a direita ou de cima para baixo para tabelas transpostas. Se você definir a ordem de forma diferente, poderá ser necessário treinamento.
Entretanto, para colunas que agrupam várias linhas, como Invoice Number
e Invoice Date
, adicione as colunas no início. Por exemplo:
Invoice Number
Invoice Date
Item Code
Item Name
Quantity
Definição de valores usando as letras maiúsculas e minúsculas do documento¶
Quando possível, defina valores usando as letras maiúsculas e minúsculas do documento. Se o uso de letras maiúsculas e minúsculas no documento for variado, use maiúsculas.
Uso do campo do localizador somente quando necessário¶
O campo do localizador é opcional; na maioria dos casos, não é necessário preenchê-lo. No entanto, se houver várias tabelas semelhantes em um documento, o modelo poderá responder de forma imprecisa. Se as respostas vierem de uma tabela de origem diferente da esperada, tente usar o campo do localizador. Adicione informações que ajudem o modelo a identificar a tabela correta, como título ou número da tabela.
Adição da coluna de seção para descrever o layout da tabela¶
Se a tabela for dividida em várias seções nomeadas, adicione uma coluna de seção. Isso ajuda o modelo a entender melhor o layout e melhorar a precisão. Por exemplo, você pode inserir um nome de coluna Section
, Item section``ou ``Item category
. Se houver um segundo nível de aninhamento nas seções, você poderá adicionar duas colunas: Section
e Subsection
.
Criação de uma coluna adicional para agrupar valores¶
Como descrito em Uso de compilação de modelo única para extração de entidades e tabelas, é possível adicionar outra tabela para conter todas as entidades. No entanto, você também pode adicionar uma coluna à tabela existente em vez de criar uma tabela separada. Dessa forma, você pode unir os resultados de todo o conjunto de documentos em uma única tabela. Por exemplo:
Número da fatura |
Detalhes do item |
Preço do item |
Quantidade |
---|---|---|---|
A |
Item A1 |
10,00 |
1 |
A |
Item A2 |
20,00 |
1 |
A |
Item A3 |
30,00 |
1 |
B |
Item B1 |
15,00 |
1 |
B |
Item B2 |
25,00 |
1 |
B |
Item B3 |
35,00 |
1 |
Observe que o valor na primeira coluna é repetido para os itens correspondentes.
Se você quiser adicionar mais colunas ou se a tabela for grande, a Snowflake recomenda criar uma tabela adicional com uma única linha (como explicado na seção Uso de compilação de modelo única para extração de entidades e tabelas) para otimizar os custos.
Distinção dos nomes das colunas entre documentos¶
Tente distinguir semanticamente uma coluna. Não use nomes como col1
, val1
ou item1
.
Em alguns casos, a transposição pode funcionar melhor, especialmente quando os nomes das linhas são iguais entre os documentos ou são ligeiramente diferentes e estão dentro de um conjunto fechado de valores.
Observe que o treinamento no conjunto de colunas especificado pode melhorar os resultados.
Uso do nome pai como prefixo ao trabalhar com cabeçalhos hierárquicos¶
Para extrair informações de tabelas com cabeçalhos hierárquicos, una o caminho do cabeçalho usando cada nome pai como prefixo. Por exemplo, para a tabela a seguir, defina as colunas como:
Category A Type X Column 1
Category A Type Y Column 2
Category A Type Y Column 3
Category B Column 4
Category B Column 5

Transposição das tabelas, se necessário¶
Você pode extrair informações de tabelas transpostas usando os valores da primeira coluna da tabela no documento como nomes de colunas na tabela de saída.
Por exemplo, para a tabela a seguir, insira estes nomes de colunas:
Type A: Item 1
Type A: Item 2
Type B: Item 3
Type B: Item 4

Observe que este exemplo inclui cabeçalhos hierárquicos.
Divisão do documento para tabelas grandes¶
O modelo para extração de tabela retorna respostas com tamanho máximo de 2.048 tokens. Isso significa que o modelo para de extrair quando atinge esse limite. Você pode trabalhar com isso das seguintes maneiras:
Se a tabela ocupar várias páginas, divida o documento em vários documentos de uma página e una os resultados no pós-processamento.
Se a tabela for muito densa a ponto de inviabilizar a extração dos dados até mesmo de uma única página, divida a tabela por colunas.
Por exemplo, se a tabela tiver 10 colunas, tente definir dois valores separados: um com 5 colunas da metade esquerda da tabela e outro com 5 colunas da metade direita da tabela. Talvez você tenha que testar a opção da coluna para obter melhores resultados.
Criação de nomes para colunas sem nome no documento¶
Se a primeira coluna no documento não tiver um nome, você mesmo deverá criar esse nome ao definir o valor. Você pode trabalhar com isso das seguintes maneiras:
Use o título ou uma parte significativa do título da tabela.
Crie um nome descritivo que represente os dados na coluna, por exemplo,
description
,type of asset
,year
ecategory
.
Comparação de dados de dois períodos de tempo diferentes¶
Se quiser comparar os dados de dois períodos de tempo diferentes, por exemplo, dos anos 2023 e 2024 em documentos financeiros, como relatórios anuais, você poderá inserir os prefixos «atual» e «anterior» nas colunas. Observe que pode ser necessário treinamento para melhorar os resultados.