- 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
- Processo do Document Understanding - Modelo do Studio
- Document Understanding
- Notas de versão
- About the Document Understanding activity package
- Compatibilidade do projeto
- Dados do documento
- 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
- About the IntelligentOCR activity package
- Compatibilidade do projeto
- Carregar Taxonomia
- Digitize Document
- Classificar Escopo do Documento
- Classificador baseado em palavra-chave
- Intelligent Keyword Classifier
- Present Classification Station
- Create Document Classification Action
- Wait For Document Classification Action And Resume
- Train Classifiers Scope
- Instrutor de Classificador Baseado em Palavra-chave
- Intelligent Keyword Classifier Trainer
- Escopo da Extração de Dados
- 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 com base em âncoras 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 com base em âncoras 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 .
Como criar o fluxo de trabalho
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
É assim que o processo de automação pode ser construído:</summary>
É assim que um processo de automação pode ser construído:
- Abra o Studio e crie um Processo.
-
Arraste um container Sequence no Workflow Designer, nomeie-o Sequence1e crie as seguintes variáveis:
Nome da variável
Tipo de Variável
Valor padrão
item
String
classificationResult
ClassificationResult[]
outputFileName
GenericValue
-
Arraste outro container Sequence no Workflow Designer, abaixo do primeiro, nomeie-o Sequence2, e crie as seguintes variáveis:
Nome da variável
Tipo de Variável
Valor padrão
text
String
taxonomy
DocumentTaxonomy
dom
Documento
documentPath
String
classificationResult2
ClassificationResult[]
outputFileName2
GenericValue
-
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 Select File embaixo da atividade Message Box.
- 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 Assign embaixo da atividade Select File.
- 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 abaixo da 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 abaixo da 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 Escrever arquivo de texto abaixo da 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 abaixo da 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 no Designer de fluxo de trabalho, o nomeie Sequência3 e crie as seguintes variáveis:
Nome da variável
Tipo de Variável
Valor Padrão
extractionResult
ExtractionResult
validatedResults
ExtractionResult
doubleValidatedResults
ExtractionResult
dataset
ConjuntoDeDados
i
Int32
-
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 abaixo da atividade Escopo de 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 abaixo da atividade Escrever 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 abaixo da atividade Apresentar Estação de Validação .
- 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 abaixo da 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.
Baixe o exemplo aqui.
Definindo sua taxonomia
Você criou seu fluxo de trabalho, definiu todas as variáveis e personalizou todas as atividades. Agora é hora de definir sua taxonomia. Para fazer isso, siga as etapas descritas aqui.
Crie sua taxonomia para poder extrair informações de uma fatura. Você deve se concentrar em criar um documento do tipo Fatura , com os seguintes campos:
Nome do Campo |
Tipo de Campo |
---|---|
Nº da Fatura |
|
Subtotal |
|
Imposto sobre vendas |
|
Total |
|
Aqui está como sua taxonomia deve ficar:
Criar seu modelo
Agora é hora de criar o modelo para o processo de extração. Crie-o seguindo as instruções daqui.
O gif a seguir explica como criar o modelo:
Definir âncoras no modelo
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.
Os gifs a seguir explicam como usar as âncoras no documento de fatura usado para o exemplo acima. Mais informações sobre as âncoras, podem ser encontradas aqui.
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.
Aqui estão algumas dicas 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. Os gifs abaixo explicam como marcar a área de extração e adicionar as âncoras principais e secundárias.
-
Defina 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 clicando nas palavras desejadas.
-
Definir a âncora principal
-
Defina as â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.