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

Uma tabela com cabeçalhos chamados Categoria A e Categoria B, em que a Categoria A inclui subcabeçalhos: Tipo X e Tipo Y.

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

Um exemplo de tabela que pode ser transposta.

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 e category.

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.