- Visão geral
- Contratos de Processamento de Documentos
- Notas de versão
- Sobre os Contratos de Processamento de Documentos
- Classe Box
- Interface IPersistedActivity
- Classe PrettyBoxConverter
- Interface IClassifierActivity
- Interface IClassifierCapabilitiesProvider
- Classe ClassifierDocumentType
- Classe ClassifierResult
- Classe ClassifierCodeActivity
- Classe ClassifierNativeActivity
- Classe ClassifierAsyncCodeActivity
- Classe ClassifierDocumentTypeCapability
- Classe ExtractorAsyncCodeActivity
- Classe ExtractorCodeActivity
- Classe ExtractorDocumentType
- Classe ExtractorDocumentTypeCapabilities
- Classe ExtractorFieldCapability
- Classe ExtractorNativeActivity
- Classe ExtractorResult
- Interface ICapabilitiesProvider
- Interface IExtractorActivity
- Classe ExtractorPayload
- Enumeração DocumentActionPriority
- Classe DocumentActionData
- Enumeração DocumentActionStatus
- Enumeração DocumentActionType
- Classe DocumentClassificationActionData
- Classe DocumentValidationActionData
- Classe UserData
- Classe Document
- Classe DocumentSplittingResult
- Classe DomExtensions
- Classe Page
- Classe PageSection
- Classe Polígono
- Classe PolygonConverter
- Classe de metadados
- Classe WordGroup
- Classe Word
- Enumeração ProcessingSource
- Classe ResultsTableCell
- Classe ResultsTableValue
- Classe ResultsTableColumnInfo
- Classe ResultsTable
- Enumeração Rotation
- Enumeração SectionType
- Enumeração WordGroupType
- Interface IDocumentTextProjection
- Classe ClassificationResult
- Classe ExtractionResult
- Classe ResultsDocument
- Classe ResultsDocumentBounds
- Classe ResultsDataPoint
- Classe ResultsValue
- Classe ResultsContentReference
- Classe ResultsValueTokens
- Classe ResultsDerivedField
- Enumeração ResultsDataSource
- Classe ResultConstants
- Classe SimpleFieldValue
- Classe TableFieldValue
- Classe DocumentGroup
- Classe DocumentTaxonomy
- Classe DocumentType
- Classe Field
- Enumeração FieldType
- Classe LanguageInfo
- Classe MetadataEntry
- Enumeração de tipo de texto
- Classe TypeField
- Interface ITrackingActivity
- Interface ITrainableActivity
- Interface ITrainableClassifierActivity
- Interface ITrainableExtractorActivity
- Classe TrainableClassifierAsyncCodeActivity
- Classe TrainableClassifierCodeActivity
- Classe TrainableClassifierNativeActivity
- Classe TrainableExtractorAsyncCodeActivity
- Classe TrainableExtractorCodeActivity
- Classe TrainableExtractorNativeActivity
- Digitalizador do Document Understanding
- Document Understanding ML
- Document Understanding OCR Local Server
- Document Understanding
- Notas de versão
- Sobre o pacote de atividades Document Understanding
- Compatibilidade do projeto
- Definir Senha do PDF
- Merge PDFs
- Get PDF Page Count
- Extract PDF Text
- Extract PDF Images
- Extract PDF Page Range
- Extract Document Data
- Criar tarefa de validação e aguardar
- Aguarde a tarefa de validação e retome
- Create Validation Task
- Classificar Documento
- Create Classification Validation Task
- Create Classification Validation Task and Wait
- Aguardar a tarefa de Validação de Classificação e retomar
- IntelligentOCR
- Notas de versão
- Sobre o pacote de atividades IntelligentOCR
- Compatibilidade do projeto
- Configuração da autenticação
- Carregar Taxonomia
- Digitize Document
- Classificar Escopo do Documento
- Classificador baseado em palavra-chave
- Document Understanding Project Classifier
- Intelligent Keyword Classifier
- Create Document Classification Action
- Aguardar ação de classificação do documento e retomar
- Train Classifiers Scope
- Instrutor de Classificador Baseado em Palavra-chave
- Intelligent Keyword Classifier Trainer
- Escopo da Extração de Dados
- Document Understanding Project Extractor
- Regex Based Extractor
- Form Extractor
- Intelligent Form Extractor
- Present Validation Station
- Create Document Validation Action
- Wait For Document Validation Action And Resume
- Escopo de Extratores de Treinamento
- Exportar Resultados da Extração
- Validação manual para digitalizar documentos
- Extração de dados baseada em âncora usando a atividade Intelligent Form Extractor
- Validation Station
- Serviços de ML
- OCR
- Contratos de OCR
- Notas de versão
- Sobre os Contratos OCR
- Compatibilidade do projeto
- Interface IOCRActivity
- Classe OCRAsyncCodeActivity
- Classe OCRCodeActivity
- Classe OCRNativeActivity
- Character Class
- Classe OCRResult
- Classe Word
- Enumeração FontStyles
- Enumeração OCRRotation
- Classe OCRCapabilities
- Classe OCRScrapeBase
- Classe OCRScrapeFactory
- Classe ScrapeControlBase
- Enumeração ScrapeEngineUsages
- ScrapeEngineBase
- Classe ScrapeEngineFactory
- Classe ScrapeEngineProvider
- OmniPage
- PDF
- [Não listado] Abbyy
- [Não listado] Abbyy Embedded
Extração de dados baseada em âncora usando a atividade Intelligent Form Extractor
O exemplo abaixo explica como extrair dados de um formulário que também pode incluir texto manuscrito. O seguinte cenário de caso de uso explica como extrair dados de uma ordem de compra.
Ele apresenta atividades como Digitize Document, Data Extraction Scopeou Intelligent Form Extractor. Essas atividades podem ser encontradas no pacote UiPath.IntelligentOCR.Activities .
Os seguintes pacotes precisam ser instalados antes de criar o fluxo de trabalho abaixo:
- UiPath.DocumentProcessing.Contracts.Activities
- UiPath.IntelligentOCR.Activities
- UiPath.OCR.Activities
- UiPath.OCR.Contracts
- UiPath.WebApi.Activities
Steps:
- Abra o Studio e crie um Processo.
- Adicione um contêiner Sequência no Designer de fluxo de trabalho, nomeie-o Sequence1 e crie as variáveis exibidas na tabela a seguir:
Tabela 1. Variáveis a serem criadas Tipo de Variável
Valor padrão
item
String
N/A classificationResult
ClassificationResult[]
N/A outputFileName
GenericValue
N/A - Adicione outro contêiner Sequência no Designer de fluxo de trabalho, após o primeiro, nomeie-o Sequence2 e crie as variáveis exibidas na tabela a seguir:
Tabela 2. Variáveis a serem criadas Tipo de Variável
Valor padrão
text
String
N/A taxonomy
DocumentTaxonomy
N/A dom
Documento
N/A documentPath
String
N/A classificationResult2
ClassificationResult[]
N/A outputFileName2
GenericValue
N/A - Adicione uma atividade de caixa de mensagem dentro da sequência.
- No painel Propriedades , selecione a opção Ok no menu suspenso Botões . Adicione a seguinte mensagem no campo Texto : "Selecione um arquivo PDF".
- Marque a caixa de seleção para a opção Superior. Isso traz a caixa de mensagens para o primeiro plano.
- Adicione uma atividade Selecionar Arquivo após a atividade Caixa de Mensagem.
- No painel Propriedades, adicione o seguinte texto no campo Filtro:
Pdf files (*.pdf)|*.pdf
- Adicione a variável
documentPath
no campo SelectedFile .
- No painel Propriedades, adicione o seguinte texto no campo Filtro:
- Adicione uma atividade Atribuir após a atividade Selecionar Arquivo.
- Adicione a variável
outputFileName2
no campo Para . - Adicione a expressão
".temp/" + Path.GetFileName(documentPath)
no campo Valor.
- Adicione a variável
- Adicione uma atividade Deserialize JSON após a atividade Atribuir.
- Adicione a expressão
File.ReadAllText("DocumentProcessing axonomy.json")
no campo String JSON. - No painel Propriedades , selecione a opção UiPath.DocumentProcessing.Contracts.Taxonomy.DocumentTaxonomy na lista suspensa TypeArgument .
- Adicione a variável
taxonomy
no campo ObjetoJSON.
- Adicione a expressão
- Adicione uma atividade Digitalizar documento após a atividade Deserialize JSON.
- No painel Propriedades, adicione o valor
1
no campo GrauDeParalelismo. - Adicione a variável
documentPath
no campo DocumentPath . - Adicione a variável
dom
no campo ModeloDeObjetoDeDocumento. - Adicione a variável
text
no campo TextoDoDocumento. - Add the UiPath® Document OCR engine inside the activity.
- Adicione sua chave de API dentro do campo ApiKey .
- Adicione a expressão
"https://du.uipath.com/ocr"
no campo Endpoint .
- No painel Propriedades, adicione o valor
- Adicione uma atividade Gravar Arquivo de Texto após a atividade Digitalizar Documento.
- Adicione a expressão
JsonConvert.SerializeObject(dom)
no campo Texto. - Adicione a expressão
outputFileName2 + ".dom.json"
no campo NomeDoArquivo.
- Adicione a expressão
- Adicione outra atividade Gravar arquivo de texto após a atividade Gravar arquivo de texto.
- Adicione a variável
text
no campo Texto. - Adicione a expressão
outputFileName2 + ".text.txt"
no campo NomeDoArquivo.
- Adicione a variável
- Arraste outro contêiner Sequência para o Designer do fluxo de trabalho, nomeie-o Sequence3 e crie as variáveis exibidas na tabela a seguir:
Tabela 3. Variáveis a serem criadas Tipo de Variável
Valor Padrão
extractionResult
ExtractionResult
N/A validatedResults
ExtractionResult
N/A doubleValidatedResults
ExtractionResult
N/A dataset
ConjuntoDeDados
N/A i
Int32
N/A - Adicione uma atividade Data Extraction Scope dentro do Sequence3.
- No painel Propriedades , adicione a variável
dom
no campo DocumentObjectModel . - Adicione a variável
documentPath
no campo DocumentPath . - Adicione a variável
text
no campo TextoDoDocumento. - Adicione a expressão
"All.Benchmarks.Invoice"
no campo DocumentTypeId . - Adicione a variável
taxonomy
no capo Taxonomia. - Adicione a variável
extractionResult
no campo ExtractionResults .
- No painel Propriedades , adicione a variável
- Adicione uma atividade do Intelligent Form Extractor dentro da atividade Data Extraction Scope .
- Adicione sua chave de API no campo ChaveDaAPI.
- Adicione uma atividade Gravar Arquivo de Texto após a atividade Escopo da Extração de Dados.
- Adicione a expressão
JsonConvert.SerializeObject(extractionResult)
no campo Texto. - Adicione a expressão
outputFileName2 + ".results.json"
no campo NomeDoArquivo.
- Adicione a expressão
- Adicione uma atividade Estação de validação presente após a atividade Gravar Arquivo de Texto.
- Adicione a variável
extractionResult
no campo ResultadosDaExtraçãoAutomática. - Adicione a variável
dom
no campo ModeloDeObjetoDeDocumento. - Adicione a variável
documentPath
no campo DocumentPath . - Adicione a variável
text
no campo TextoDoDocumento. - Adicione a variável
taxonomy
no capo Taxonomia. - Adicione a variável
validatedResults
no campo ResultadosValidadosDaExtração.
- Adicione a variável
- Adicione uma atividade Gravar Arquivo de Texto após a atividade Estação de validação presente.
- Adicione a expressão
JsonConvert.SerializeObject(validatedResults)
no campo Texto. - Adicione a expressão
outputFileName2 + ".savedinVS.results.json"
no campo NomeDoArquivo.
- Adicione a expressão
- Adicione outra atividade Gravar arquivo de texto após a atividade Gravar arquivo de texto.
- Adicione a expressão
JsonConvert.SerializeObject(doubleValidatedResults)
no campo Texto. - Adicione a expressão
outputFileName2 + ".doubleSavedinVS.results.json"
no campo NomeDoArquivo.
- Adicione a expressão
- Execute o processo. O processo de automação deve abrir a Estação de Validação, extrair os dados, validá-los e armazená-los na pasta Saída.
ZIP
: Exemplo.
Você criou seu fluxo de trabalho, definiu todas as variáveis e personalizou todas as atividades. Agora é hora de definir sua taxonomia. Acesse Carregar taxonomia para saber mais sobre a definição da sua própria taxonomia.
Crie sua taxonomia para poder extrair informações de uma fatura. Você deve estar focado em criar um tipo de documento de Fatura, com os campos exibidos na tabela a seguir:
Tipo de Campo | |
---|---|
Nº da Fatura |
|
Subtotal |
|
Imposto sobre vendas |
|
Total |
|
Agora é hora de criar o modelo para o processo de extração. Acesse Carregar taxonomia para saber como criar um modelo.
- Tipo de documento: fatura.
- Nome do modelo: exemplo de fatura.
- Documento de modelo: selecione o arquivo de destino.
- Mecanismo de OCR: Microsoft OCR.
- Idiomas: inglês.
- Perfil: digitalização.
- Escala: 1.
As âncoras são um recurso muito especial e útil para usar quando você precisa extrair informações precisas de um documento. Ao definir uma área de extração com uma âncora, você pode esperar uma alta precisão na extração de dados.
Uma vez definida a taxonomia e criado o modelo, você pode começar a configurar o modelo usando âncoras, o que significa que a área de extração é definida em uma caixa e as âncoras são usadas para definir a posição da caixa.
Verifique a lista a seguir para alguns ponteiros antes de começar a adicionar âncoras ao seu modelo:
- A caixa âncora deve ser o maior possível (altura, largura) para cobrir qualquer tipo de número de fatura, fonte longa, curta, grande, etc.
- Uma área de extração pode ter quantas âncoras forem necessárias, mas apenas uma definida como principal (a primeira).
- Use âncoras formadas por várias palavras lado a lado.
- A âncora principal deve estar o mais próximo possível da área de extração.
- As posições da área de extração e da âncora principal são fixadas no template, mesmo quando aplicadas a documentos diferentes. A única coisa que pode variar é a distância entre a âncora principal e as secundárias.
Vamos continuar configurando o modelo e ver como você pode extrair dados usando uma âncora.
- Defina a área de extração:
- Na área direita da Estação de Validação, selecione Modos de seleção.
- Selecione Âncora.
- Comece a selecionar a área desejada.
Figura 3. Imagem animada mostrando como definir a área de extração
Observação:A âncora principal deve conter duas ou três palavras para maior precisão e melhores resultados no processo de extração.
Selecione várias palavras ao marcar uma âncora pressionando CTRL e selecionando as palavras desejadas.
- Defina a âncora principal:
- Enquanto ainda estiver no modo de seleção Âncora, selecione a área desejada como sua âncora principal.
- Selecione Extrair valor para o campo desejado.
Figura 4. Exemplo de imagem animada mostrando como definir a âncora principal
- Defina as âncoras secundárias:
- Certifique-se de ainda estar no modo de seleção de Âncora e com as principais seleções de âncora ativadas.
- Selecione as novas áreas para as âncoras secundárias.
- Selecione Opções para o campo desejado e, em seguida, selecione Alterar valor extraído.
Figura 5. Exemplo de imagem animada mostrando como definir âncoras secundárias
Repita o processo até terminar de definir todas as áreas de extração e adicionar todas as suas âncoras. Depois de concluído, salve o modelo.