KR102478331B1 - 로봇 프로세스 자동화를 위한 문서 프로세싱 프레임워크 - Google Patents

로봇 프로세스 자동화를 위한 문서 프로세싱 프레임워크 Download PDF

Info

Publication number
KR102478331B1
KR102478331B1 KR1020207028245A KR20207028245A KR102478331B1 KR 102478331 B1 KR102478331 B1 KR 102478331B1 KR 1020207028245 A KR1020207028245 A KR 1020207028245A KR 20207028245 A KR20207028245 A KR 20207028245A KR 102478331 B1 KR102478331 B1 KR 102478331B1
Authority
KR
South Korea
Prior art keywords
classification
extraction
document
extractors
classifiers
Prior art date
Application number
KR1020207028245A
Other languages
English (en)
Other versions
KR20210040826A (ko
Inventor
이오아나 글리간
폴 파라우
Original Assignee
유아이패스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 유아이패스, 인크. filed Critical 유아이패스, 인크.
Publication of KR20210040826A publication Critical patent/KR20210040826A/ko
Application granted granted Critical
Publication of KR102478331B1 publication Critical patent/KR102478331B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/353Clustering; Classification into predefined classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/313Selection or weighting of terms for indexing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/338Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2431Multiple classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/285Selection of pattern recognition techniques, e.g. of classifiers in a multi-classifier system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/123Storage facilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/62Text, e.g. of license plates, overlay texts or captions on TV images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/148Segmentation of character regions
    • G06V30/153Segmentation of character regions using recognition of characters or words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/191Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
    • G06V30/19113Selection of pattern recognition techniques, e.g. of classifiers in a multi-classifier system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/191Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
    • G06V30/19167Active pattern learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/412Layout analysis of documents structured with printed lines or input boxes, e.g. business forms or tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/416Extracting the logical structure, e.g. chapters, sections or page numbers; Identifying elements of the document, e.g. authors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/259Fusion by voting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Human Resources & Organizations (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

로봇 프로세스 자동화(RPA)를 위한 문서 프로세싱 프레임워크(DPF)가 제공된다. DPF는 동일한 플랫폼 상에서의 상이한 벤더 제품들의 플러그-앤드-플레이 이용을 허용할 수 있고, 여기서, 사용자들은 문서 프로세싱 및 문서 이해 작업흐름을 위한 기본적인 스키마를 셋업할 수 있다. DPF는 사용자들이 분류체계를 정의하는 것, 파일을 디지털화하는 것, 파일을 하나 이상의 문서 유형으로 분류하는 것, 분류를 유효성확인하는 것, 데이터를 추출하는 것, 추출된 데이터를 유효성확인하는 것, 분류기들을 훈련시키는 것, 및/또는 추출기들을 훈련시키는 것을 허용할 수 있다. DPF를 관리하고 그 자신의 분류기 및 추출기 컴포넌트들을 구축하기 위하여 소프트웨어 개발자들에 의해 이용될 수 있는 공개 패키지가 제공될 수 있다.

Description

로봇 프로세스 자동화를 위한 문서 프로세싱 프레임워크
관련 출원에 대한 상호-참조
이 출원은 2019년 9월 30일자로 출원된 미국 정규 특허 출원 제16/587,386호의 이익을 주장한다. 이 더 이전에 출원된 출원의 발명 요지는 이로써, 그 전체적으로 참조에 의해 편입된다.
본 발명은 일반적으로 로봇 프로세스 자동화(robotic process automation; RPA)에 관한 것으로, 더 구체적으로, RPA를 위한 문서 프로세싱 프레임워크(document processing framework; DPF)에 관한 것이다.
가장 상업적으로 입수가능한 전자 문서 프로세싱 툴들은 단일 플랫폼 상에서 문서 프로세싱을 수행한다. 또한, 문서 프로세싱 공간에서의 대부분의 벤더(vendor)들은 컴포넌트들이 제3자 제공들과 상호 교환될 수 없는 블랙 박스(black box) 해결책을 제공한다. 이 제한으로 인해, 하나 초과의 벤더를 이용하는 것을 소망하는 고객들은 2 개 이상의 병렬 통합들을 셋업(set up)하고, 2 개 이상의 상이한 툴(tool)들을 이용할 시에 종업원들을 훈련시키고, 이 의무들을 수행하기 위한 개개의 사용자 인터페이스들을 제공할 필요가 있다. 이 쟁점은 문서 프로세싱을 위한 다수의 기법들을 통합하는 것을 목적으로 하는 해결책들에서 존재하고, 반드시 RPA-특정적이지는 않는다. 실제로, 별도의 작업흐름(workflow)이 각각의 벤더를 위하여 요구된다.
또한, 그 자신의 맞춤형 문서 프로세싱 알고리즘들을 이용하는 것을 소망하는 사용자들은 기반구조 자체들이 통합되게 하고 엔드-투-엔드(end-to-end) 프로세스에서 이용가능하게 하기 위하여 전체 기반구조 자체들을 구축할 필요가 있다. 이러한 문서 프로세싱 알고리즘들은 다수의 OCR 벤더들을 이용하여 디지털화(digitization)를 핸들링하는 것, 상이한 해결책들에 걸쳐 분류체계 맵핑(taxonomy mapping)들을 핸들링하는 것, 상이한 벤더들로부터의 문서 프로세싱 알고리즘들의 통합 및 구성, 합체된 데이터 포맷(unified data format) 하에서 다수의 벤더들로부터의 결과들을 집합시키는 것 등을 포함하지만, 이것으로 제한되지는 않는다. 상기한 것이 주어지면, 개선된 문서 프로세싱 프레임워크 해결책이 유익할 수 있다.
본 발명의 어떤 실시예들은 현재의 컴퓨터-기반 문서 프로세싱 기법들에 의해 아직 완전히 식별되거나, 인식되거나, 해결되지 않은 종래 기술에서의 문제들 및 필요성들에 대한 해결책들을 제공할 수 있다. 예를 들어, 본 발명의 일부 실시예들은 RPA를 위한 DPF에 속한다.
실시예에서, 컴퓨터 프로그램은 컴퓨터-판독가능 비-일시적 매체 상에서 구체화된다. 프로그램은, 적어도 하나의 프로세서로 하여금, RPA 작업흐름에서의 하나 이상의 분류기를 이용하여 파일을 하나 이상의 문서 유형으로 자동적으로 분류하게 하고, 자동적 분류의 결과들을 분류 데이터 구조 내에 저장하게 하도록 구성된다. 프로그램은 또한, 적어도 하나의 프로세서로 하여금, RPA 작업흐름에서의 하나 이상의 추출기를 이용하여 분류된 파일로부터 데이터를 자동적으로 추출하게 하고, 자동적으로 추출된 데이터를 추출 데이터 구조 내에 저장하게 하도록 구성된다. 프로그램은 또한, 적어도 하나의 프로세서로 하여금, 자동적으로 추출된 데이터를 출력하게 하도록 구성된다.
또 다른 실시예에서, 컴퓨터-구현 방법은 컴퓨팅 시스템에 의해, 분류체계 관리자(taxonomy manager)로부터 정의된 문서 유형들의 리스트 및 정의된 문서 유형들 각각에 대한 연관된 필드들을 수신하는 단계, 및 컴퓨팅 시스템에 의해, 문서 유형들의 리스트 및 연관된 필드들을 마스터 분류체계 데이터 구조(master taxonomy data structure) 내에 저장하는 단계를 포함한다. 컴퓨터-구현 방법은 또한, RPA 작업흐름에서의 하나 이상의 분류기를 이용하여, 컴퓨팅 시스템에 의해, 파일을 하나 이상의 문서 유형으로 자동적으로 분류하는 단계, 및 컴퓨팅 시스템에 의해, 자동적 분류의 결과들을 분류 데이터 구조 내에 저장하는 단계를 포함한다. 컴퓨터-구현 방법은 컴퓨팅 시스템에 의해, 자동적 분류의 결과들을 출력하는 단계를 더 포함한다.
또 다른 실시예에서, 시스템은 컴퓨터 프로그램 명령어들을 저장하는 메모리, 및 컴퓨터 프로그램 명령어들을 실행하도록 구성된 적어도 하나의 프로세서를 포함한다. 명령어들은, 적어도 하나의 프로세서로 하여금, 분류체계 관리자로부터 정의된 문서 유형들의 리스트 및 정의된 문서 유형들 각각에 대한 연관된 필드들을 수신하게 하도록 구성된다. 명령어들은 또한, 적어도 하나의 프로세서로 하여금, RPA 작업흐름에서의 디지털화 활동을 실행하게 하고, 파일의 텍스트 버전(text version) 및 문서 오브젝트 모델(Document Object Model; DOM)을 출력하게 하도록 구성된다. 명령어들은 또한, 적어도 하나의 프로세서로 하여금, RPA 작업흐름에서의 하나 이상의 분류기를 이용하여 파일을 하나 이상의 문서 유형으로 자동적으로 분류하게 하고, RPA 작업흐름에서의 하나 이상의 추출기를 이용하여 분류된 문서로부터 데이터를 자동적으로 추출하게 하도록 구성된다. 추가적으로, 명령어들은 또한, 적어도 하나의 프로세서로 하여금, 자동적으로 추출된 데이터를 출력하게 하도록 구성된다.
발명의 어떤 실시예들의 장점들이 용이하게 이해되도록 하기 위하여, 위에서 간략하게 설명된 발명의 더 특정한 설명은 첨부된 도면들에서 예시되는 특정 실시예들을 참조하게 될 것이다. 이 도면들은 발명의 오직 전형적인 실시예들을 도시하고, 그러므로, 그 범위의 제한인 것으로 고려되지 않아야 한다는 것이 이해되어야 하지만, 발명은 동반 도면들의 이용을 통해 추가적인 구체성 및 상세함으로 설명되고 기술될 것이다:
도 1은 본 발명의 실시예에 따라, RPA 시스템을 예시하는 아키텍처 다이어그램이다.
도 2는 본 발명의 실시예에 따라, 전개된 RPA 시스템을 예시하는 아키텍처 다이어그램이다.
도 3은 본 발명의 실시예에 따라, 설계자, 활동들, 및 구동기들 사이의 관계를 예시하는 아키텍처 다이어그램이다.
도 4는 본 발명의 실시예에 따라, RPA 시스템을 예시하는 아키텍처 다이어그램이다.
도 5는 본 발명의 실시예에 따라, RPA를 위한 DPF를 제공하도록 구성된 컴퓨팅 시스템을 예시하는 아키텍처 다이어그램이다.
도 6a는 본 발명의 실시예에 따라, 분류체계 관리자를 예시하는 스크린샷이다.
도 6b는 본 발명의 실시예에 따라, 분류체계 관리자의 문서 유형들 정의 인터페이스를 예시하는 스크린샷이다.
도 6c는 본 발명의 실시예에 따라, 분류체계 관리자의 문서 유형 세부사항들 인터페이스를 예시하는 스크린샷이다.
도 6d는 본 발명의 실시예에 따라, 분류체계 관리자의 필드 편집 인터페이스를 예시하는 스크린샷이다.
도 7a는 본 발명의 실시예에 따라, 디지털화 활동을 갖는 RPA 작업흐름을 예시하는 스크린샷이다.
도 7b는 본 발명의 실시예에 따라, 디지털화 활동을 갖는 RPA 작업흐름의 일부분의 확대도이다.
도 8a는 본 발명의 실시예에 따라, 문서 범위 분류 작업흐름을 예시하는 스크린샷이다.
도 8b는 본 발명의 실시예에 따라, 분류기 구성 인터페이스를 예시하는 스크린샷이다.
도 9a는 본 발명의 실시예에 따라, 데이터 추출 범위 작업흐름을 예시하는 스크린샷이다.
도 9b는 본 발명의 실시예에 따라, 추출기 구성 인터페이스를 예시하는 스크린샷이다.
도 9c는 본 발명의 실시예에 따라, 추출기 구성 인터페이스의 문서 유형들 및 필드들 페인(pane)을 예시하는 스크린샷이다.
도 9d는 본 발명의 실시예에 따라, 추출기 구성 인터페이스의 FlexiCapture™ 추출기 페인을 예시하는 스크린샷이다.
도 9e는 본 발명의 실시예에 따라, 추출기 구성 인터페이스의 고정된 형태의 추출기 페인을 예시하는 스크린샷이다.
도 10은 본 발명의 실시예에 따라, 분류기 및 추출기 훈련 작업흐름을 예시하는 스크린샷이다.
도 11은 본 발명의 실시예에 따라, 분류기 훈련 구성 인터페이스를 예시하는 스크린샷이다.
도 12는 본 발명의 실시예에 따라, RPA를 위한 DPF를 구현하기 위한 프로세스를 예시하는 플로우차트이다.
일부 실시예들은 로봇 프로세스 자동화(RPA)를 위한 문서 프로세싱 프레임워크(DPF)에 속한다. 일부 실시예들에서, DPF는 동일한 플랫폼 상에서의 상이한 벤더 제품들의 플러그-앤드-플레이(plug-and-play) 이용을 허용하고, 여기서, 사용자들은 문서 프로세싱 및 문서 이해 작업흐름을 위한 기본적인 스키마(schema)를 셋업할 수 있다. DPF는 이에 따라, 사용자들이 디지털화, 문서 분류, 및 데이터 추출과 같은, 그러나 이것으로 제한되지는 않는 태스크(task)들을 위하여, 애플리케이션-내부(in-application) 또는 제3자(third-party) 알고리즘들 이용하여 전체 흐름을 통해 문서들을 프로세싱하는 것을 허용할 수 있다. 이것은 합체된 경험을 제공하고 벤더 록-인(lock-in)을 회피한다. 일부 실시예들의 DPF는 이 플러그-앤드-플레이 접근법으로, 각각의 이용 케이스(use case)의 필요성들에 기초하여 문서 프로세싱 기술들의 조합, 대체, 우선순위화, 및 필터링을 지원하고, 이에 따라, 해결되어야 할 각각의 특정한 문제에 대한 적절한 해결책을 선택할 시에 신축성을 제공한다.
일부 실시예들에서, DPF는 사용자들이: (1) 분류체계(즉, 문서 유형들의 모음)를 정의하고; (2) 머신-판독가능 텍스트를 획득하기 위하여 파일을 프로세싱함으로써 파일을 디지털화하고; (3) 문서 분류를 위한 알고리즘들의 이용가능한 조합을 이용하여 문서 유형 및 페이지(page)들의 범위를 각각의 분류 결과에 배정함으로써 파일을 하나 이상의 문서 유형으로 분류하고; (4) 인간들이 파일 고장 및 분류를 유효성확인/정정/수동으로 수행할 수 있는 툴을 통해 분류를 유효성확인하고; (5) 데이터 추출을 위한 알고리즘들의 이용가능한 조합을 이용하여 문서 또는 페이지들의 범위 내로부터의 식별된 값들을 요청된 필드에 배정함으로써 데이터를 추출하고; (6) 인간들이 데이터 추출을 유효성확인/정정/수동으로 수행할 수 있는 툴을 통해 추출을 유효성확인하고; (7) 분류 알고리즘들이 인간 피드백을 수신하고 적용가능할 경우에 피드백 루프들을 트리거링하도록 구성된다는 것을 보장함으로써 분류기들을 훈련시키고; 및/또는 (8) 추출 알고리즘들이 인간 피드백을 수신하고 적용가능할 경우에 피드백 루프들을 트리거링하도록 구성된다는 것을 보장함으로써 추출기들을 훈련시키는 것을 허용한다.
일부 실시예들의 DPF는 또한, DPF를 관리하고, 분류기 및 추출기 컴포넌트들을 포함하지만, 이것으로 제한되지는 않는 그 자신의 문서 프로세싱 컴포넌트들을 구축하기 위하여, 소프트웨어 개발자들(예컨대, 제3자 회사들로부터의 개발자들 또는 개별적인 기여자들)에 의해 이용될 수 있는 공개 패키지(public package)를 포함한다. 일부 실시예들에서의 공개 패키지는: (1) 이 구조들을 관리하는 것을 보조하기 위한 기능성과 함께, 분류체계, 문서, 및 추출 결과들 데이터 구조들; (2) 맞춤형 분류기 및 추출기 컴포넌트들을 구축하기 위하여 이용되어야 할 추상 클래스(abstract class)들 및 인터페이스들; 및/또는 (3) 분류 또는 데이터 추출 출력들을 보고할 때에 이용되어야 할 데이터 추출 및 분류 입력 및 출력 데이터 구조들 및 계약들을 포함할 수 있지만, 이것으로 제한되지는 않는다. 이 공개 패키지는 DPF와 완전히 호환가능한 이용 케이스-특정 또는 해결책-특정 컴포넌트들을 합체된 방식으로 개발하기 위하여, 전체 DPF가 제3자들에 의해 완전히 스케일링가능하고, 개방되어 있고, 이용가능하다는 것을 보장할 수 있다.
도 1은 본 발명의 실시예에 따라, RPA 시스템(100)을 예시하는 아키텍처 다이어그램이다. RPA 시스템(100)은 개발자가 작업흐름(workflow)들을 설계하고 구현하는 것을 허용하는 설계자(designer)(110)를 포함한다. 설계자(110)는 애플리케이션 통합 뿐만 아니라, 자동화 제3자 애플리케이션들, 행정적인 정보 기술(Information Technology; IT) 태스크들, 및 비지니스 IT 프로세스들을 위한 해결책을 제공할 수 있다. 설계자(110)는 비지니스 프로세스의 그래픽 표현인 자동화 프로젝트(automation project)의 개발을 용이하게 할 수 있다. 간단하게 말하면, 설계자(110)는 작업흐름들 및 로봇들의 개발 및 전개(deployment)를 용이하게 한다.
자동화 프로젝트는 실행 순서의 개발자 제어, 및 "활동(activity)들"로서 본원에서 정의된, 작업흐름에서 개발된 단계들의 맞춤형 세트(custom set) 사이의 관계를 제공함으로써 규칙-기반 프로세스들의 자동화를 가능하게 한다. 설계자(110)의 실시예의 하나의 상업적인 예는 UiPath Studio™이다. 각각의 활동은 버튼을 클릭하는 것, 파일을 판독하는 것, 로그 패널(log panel)로 기록하는 것 등과 같은 액션(action)을 포함할 수 있다. 일부 실시예들에서, 작업흐름들은 네스팅(nest)될 수 있거나 내장될 수 있다.
일부 유형들의 작업흐름들은 시퀀스들, 플로우차트들, 유한 상태 머신(Finite State Machine; FSM)들, 및/또는 전역적 예외 핸들러(global exception handler)들을 포함할 수 있지만, 이것으로 제한되지는 않는다. 시퀀스들은 선형 프로세스들을 위하여 특히 적당할 수 있어서, 작업흐름을 혼란스럽게 하지 않으면서, 하나의 활동으로부터 또 다른 것으로의 흐름을 가능하게 할 수 있다. 플로우차트들은 더 복잡한 비지니스 로직에 특히 적당할 수 있어서, 다수의 분기 로직 조작자들을 통해 더 다양한 방식으로 판정들의 통합 및 활동들의 접속을 가능하게 할 수 있다. FSM들은 큰 작업흐름들을 위하여 특히 적당할 수 있다. FSM들은 그 실행에서 유한한 수의 상태(state)들을 이용할 수 있고, 상태들은 조건(즉, 전이) 또는 활동에 의해 트리거링된다. 전역적 예외 핸들러들은 실행 에러(execution error)를 조우할 때에 작업흐름 거동(workflow behavior)을 결정하기 위하여, 그리고 디버깅 프로세스들을 위하여 특히 적당할 수 있다.
일단 작업흐름이 설계자(110)에서 개발되면, 비지니스 프로세스들의 실행은 설계자(110)에서 개발된 작업흐름들을 실행하는 하나 이상의 로봇들(130)을 편성(orchestrate)하는 지휘자(conductor)(120)에 의해 편성된다. 지휘자(120)의 실시예의 하나의 상업적인 예는 UiPath Orchestrator™이다. 지휘자(120)는 환경에서 자원들의 생성, 모니터링, 및 전개의 관리를 용이하게 한다. 지휘자(120)는 제3자 해결책들 및 애플리케이션들과의 통합 포인트(integration point)로서 작용할 수 있다.
지휘자(120)는 로봇들(130)의 함대(fleet)를 관리할 수 있어서, 중앙집중화된 포인트로부터 로봇들(130)을 접속하고 실행할 수 있다. 관리될 수 있는 로봇들(130)의 유형들은 유인 로봇(attended robot)들(132), 무인 로봇(unattended robot)들(134), (무인 로봇들(134)과 유사하지만, 개발 및 테스팅 목적들을 위하여 이용된) 개발 로봇들, 및 (유인 로봇들(132)과 유사하지만, 개발 및 테스팅 목적들을 위하여 이용된) 비생산 로봇들을 포함하지만, 이것으로 제한되지는 않는다. 유인 로봇들(132)은 사용자 이벤트들에 의해 트리거링되고, 동일한 컴퓨팅 시스템 상에서 인간과 함께 동작한다. 유인 로봇들(132)은 중앙집중화된 프로세스 전개 및 로깅 매체를 위한 지휘자(120)와 함께 이용될 수 있다. 유인 로봇들(132)은 인간 사용자가 다양한 태스크들을 달성하는 것을 도울 수 있고, 사용자 이벤트들에 의해 트리거링될 수 있다. 일부 실시예들에서, 프로세스들은 이 유형의 로봇에 대한 지휘자(120)로부터 시작될 수 없고, 및/또는 프로세스들은 록킹된 스크린 하에서 작동할 수 없다. 어떤 실시예들에서, 유인 로봇들(132)은 로봇 트레이(robot tray)로부터 또는 커맨드 프롬프트(command prompt)로부터 오직 시작될 수 있다. 유인 로봇들(132)은 일부 실시예들에서 인간 감독 하에서 작동해야 한다.
무인 로봇들(134)은 가상적 환경들에서 무인으로 작동하고, 많은 프로세스들을 자동화할 수 있다. 무인 로봇들(134)은 원격 실행, 모니터링, 스케줄링, 및 작업 큐들에 대한 지원을 제공하는 것을 담당할 수 있다. 모든 로봇 유형들에 대한 디버깅(debugging)은 일부 실시예들에서 설계자(110) 내에서 작동될 수 있다. 양자의 유인 및 무인 로봇들은, 메인프레임(mainframe)들, 웹 애플리케이션들, VM들, 기업 애플리케이션들(예컨대, SAP®, SalesForce®, Oracle® 등에 의해 생산된 것들), 및 컴퓨팅 시스템 애플리케이션들(예컨대, 데스크톱 및 랩톱 애플리케이션들, 이동 디바이스 애플리케이션들, 웨어러블 컴퓨터 애플리케이션들 등)을 포함하지만 이것으로 제한되지는 않는 다양한 시스템들 및 애플리케이션들을 자동화할 수 있다.
지휘자(120)는 프로비저닝(provisioning), 전개, 구성, 큐잉(queueing), 모니터링(monitoring), 로깅(logging), 및/또는 상호접속성 제공을 포함하지만 이것으로 제한되지는 않는 다양한 능력들을 가질 수 있다. 프로비저닝은 로봇들(130)과 지휘자(120)(예컨대, 웹 애플리케이션) 사이의 접속들의 생성 및 유지보수를 포함할 수 있다. 전개는 실행을 위한 배정된 로봇들(130)로의 패키지 버전들의 올바른 전달을 보장하는 것을 포함할 수 있다. 구성은 로봇 환경들 및 프로세스 구성들의 유지보수 및 전달을 포함할 수 있다. 큐잉은 큐들 및 큐 항목들의 관리를 제공하는 것을 포함할 수 있다. 모니터링은 로봇 식별 데이터를 추적하는 것 및 사용자 허가들을 유지하는 것을 포함할 수 있다. 로깅은 로그들을 데이터베이스(예컨대, SQL 데이터베이스) 및/또는 또 다른 저장 메커니즘(예컨대, 큰 데이터세트들을 저장하고 신속하게 질의하기 위한 능력을 제공하는 ElasticSearch®)으로 저장하고 인덱싱하는 것을 포함할 수 있다. 지휘자(120)는 제3자 해결책들 및/또는 애플리케이션들을 위한 통신의 중앙집중화된 포인트로서 작용함으로써 상호접속성을 제공할 수 있다.
로봇들(130)은 설계자(110) 내에 구축된 작업흐름들을 작동시키는 실행 에이전트(execution agent)들이다. 로봇(들)(130)의 일부 실시예들의 하나의 상업적인 예는 UiPath Robots™이다. 일부 실시예들에서, 로봇들(130)은 Microsoft Windows® 서비스 제어 관리자(Service Control Manager; SCM)-관리된 서비스를 디폴트(default)로 설치한다. 그 결과, 이러한 로봇들(130)은 로컬 시스템 계정(local system account) 하에서 대화형(interactive) Windows® 세션들을 개방할 수 있고, Windows® 서비스의 권리들을 가질 수 있다.
일부 실시예들에서, 로봇들(130)은 사용자 모드에서 설치될 수 있다. 이러한 로봇들(130)에 대하여, 이것은 로봇들이 주어진 로봇(130)이 설치된 사용자와 동일한 권리들을 가진다는 것을 의미한다. 이 특징은 또한, 그 최대 잠재력에서 각각의 머신의 전체 사용을 보장하는 고밀도(High Density; HD) 로봇들을 위하여 이용가능할 수 있다. 일부 실시예들에서, 임의의 유형의 로봇(130)은 HD 환경에서 구성될 수 있다.
일부 실시예들에서의 로봇들(130)은 몇몇 컴포넌트들로 분할되고, 각각은 특정한 자동화 태스크에 전용된다. 일부 실시예들에서의 로봇 컴포넌트들은 SCM-관리된 로봇 서비스들, 사용자 모드 로봇 서비스들, 실행자(executor)들, 에이전트들, 및 커맨드 라인(command line)을 포함하지만, 이것으로 제한되지는 않는다. SCM-관리된 로봇 서비스들은 Windows® 세션들을 관리 및 모니터링하고, 지휘자(120)와 실행 호스트들(즉, 로봇들(130)이 그 상에서 실행되는 컴퓨팅 시스템들) 사이의 프록시(proxy)로서 작용한다. 이 서비스들은 로봇들(130)을 위한 크리덴셜(credential)들로 신뢰되고, 로봇들(130)을 위한 크리덴셜들을 관리한다. 콘솔 애플리케이션은 로컬 시스템 하에서 SCM에 의해 기동된다.
일부 실시예들에서의 사용자 모드 로봇 서비스들은 Windows® 세션들을 관리 및 모니터링하고, 지휘자(120)와 실행 호스트들 사이의 프록시로서 작용한다. 사용자 모드 로봇 서비스들은 로봇들(130)을 위한 크리덴셜들로 신뢰될 수 있고, 로봇들(130)을 위한 크리덴셜들을 관리할 수 있다. Windows® 애플리케이션은 SCM-관리된 로봇 서비스가 설치되지 않을 경우에 자동적으로 기동될 수 있다.
실행자들은 Windows® 세션 하에서 주어진 잡(job)들을 작동시킬 수 있다(즉, 실행자들은 작업흐름들을 실행할 수 있음). 실행자들은 모니터-당(per-monitor) 인치 당 도트들(dots per inch; DPI) 설정들을 인지할 수 있다. 에이전트들은 시스템 트레이 윈도우(system tray window)에서 이용가능한 잡들을 디스플레이하는 Windows® 프리젠테이션 파운데이션(Windows® Presentation Foundation; WPF) 애플리케이션들일 수 있다. 에이전트들은 서비스의 클라이언트일 수 있다. 에이전트들은 잡들을 시작하거나 정지시키고 설정들을 변경하도록 요청할 수 있다. 커맨드 라인은 서비스의 클라이언트이다. 커맨드 라인은 잡들을 시작하도록 요청할 수 있고 그 출력을 대기하는 콘솔 애플리케이션(console application)이다.
위에서 설명된 바와 같이 분할된 로봇들(130)의 컴포넌트들을 가지는 것은 개발자들, 지원 사용자들, 및 컴퓨팅 시스템들이 각각의 컴포넌트가 실행하고 있는 것을 더 용이하게 작동시키고, 식별하고, 추적하는 것을 돕는다. 특수한 거동들은 실행자 및 서비스를 위한 상이한 방화벽 규칙(firewall rule)들을 셋업하는 것과 같이, 컴포넌트 당 이러한 방식으로 구성될 수 있다. 실행자는 일부 실시예들에서 모니터 당 DPI 설정들을 항상 인지할 수 있다. 그 결과, 작업흐름들은 작업흐름들이 생성된 컴퓨팅 시스템의 구성에 관계 없이, 임의의 DPI에서 실행될 수 있다. 설계자(110)로부터의 프로젝트들은 또한, 일부 실시예들에서 브라우저 줌 레벨(browser zoom level)에 독립적일 수 있다. DPI-비인지(unaware)이거나 의도적으로 비인지인 것으로서 표기되는 애플리케이션들에 대하여, DPI는 일부 실시예들에서 디스에이블될 수 있다.
도 2는 본 발명의 실시예에 따라, 전개된 RPA 시스템(200)을 예시하는 아키텍처 다이어그램이다. 일부 실시예들에서, RPA 시스템(200)은 도 1의 RPA 시스템(100)일 수 있거나 그 일부일 수 있다. 클라이언트 측, 서버 측, 또는 양자 모두는 발명의 범위로부터 이탈하지 않으면서, 임의의 희망된 수의 컴퓨팅 시스템들을 포함할 수 있다는 것이 주목되어야 한다. 클라이언트 측 상에서, 로봇 애플리케이션(210)은 실행자들(212), 에이전트(214), 및 설계자(216)를 포함한다. 그러나, 일부 실시예들에서, 설계자(216)는 컴퓨팅 시스템(210) 상에서 작동하고 있지 않을 수 있다. 실행자들(212)은 프로세스들을 작동시키고 있다. 몇몇 비지니스 프로젝트들은 도 2에서 도시된 바와 같이 동시에 작동할 수 있다. 에이전트(214)(예컨대, Windows® 서비스)는 이 실시예에서 모든 실행자들(212)을 위한 접촉의 단일 포인트이다. 이 실시예에서의 모든 메시지들은 지휘자(230)로 로깅되고, 지휘자(230)는 데이터베이스 서버(240, 인덱서 서버(indexer server)(250), 또는 양자 모두를 통해 메시지들을 추가로 프로세싱한다. 도 1에 대하여 위에서 논의된 바와 같이, 실행자들(212)은 로봇 컴포넌트들일 수 있다.
일부 실시예들에서, 로봇은 머신 명칭과 사용자명(username) 사이의 연관성을 표현한다. 로봇은 다수의 실행자들을 동시에 관리할 수 있다. 동시에 작동하는 다수의 대화형 세션들을 지원하는 컴퓨팅 시스템들(예컨대, Windows® 서버 2012) 상에서, 각각 고유한 사용자명을 이용하는 별도의 Windows® 세션에서 동시에 작동하는 다수의 로봇들이 있을 수 있다. 이것은 위의 HD 로봇들로서 지칭된다.
에이전트(214)는 또한, 로봇의 스테이터스(status)를 전송하고(예컨대, 로봇이 여전히 기능하고 있다는 것을 표시하는 "하트비트(heartbeat)" 메시지를 주기적으로 전송함) 실행되어야 할 패키지의 요구된 버전을 다운로딩하는 것을 담당한다. 에이전트(214)와 지휘자(230) 사이의 통신은 일부 실시예들에서 에이전트(214)에 의해 항상 개시된다. 통지 시나리오에서, 에이전트(214)는 커맨드들을 로봇으로 전송하기 위하여(예컨대, 시작, 정지 등) 지휘자(230)에 의해 더 이후에 이용되는 웹소켓(WebSocket) 채널을 개방할 수 있다.
서버 측 상에서, 프리젠테이션 계층(웹 애플리케이션(232), 개방 데이터 프로토콜(Open Data Protocol; OData) 대표 상태 전송(Representative State Transfer; REST) 애플리케이션 프로그래밍 인터페이스(Application Programming Interface; API) 엔드포인트(endpoint)들(234), 및 통지 및 모니터링(236)), 서비스 계층(API 구현/비지니스 로직(238)), 및 지속 계층(persistence layer)(데이터베이스 서버(240) 및 인덱서 서버(250))이 포함된다. 지휘자(230)는 웹 애플리케이션(232), ODATA REST API 엔드포인트들(234), 통지 및 모니터링(236), 및 API 구현/비지니스 로직(238)을 포함한다. 일부 실시예들에서, 사용자가 (예컨대, 브라우저(230)를 통해) 지휘자(220)의 인터페이스에서 수행하는 대부분의 액션들은 다양한 API들을 호출함으로써 수행된다. 이러한 액션들은 발명의 범위로부터 이탈하지 않으면서, 로봇들 상에서 잡들을 시작하는 것, 큐들에서 데이터를 추가/제거하는 것, 무인으로 작동시키기 위한 잡들을 스케줄링하는 것 등을 포함할 수 있지만, 이것으로 제한되지는 않는다. 웹 애플리케이션(232)은 서버 플랫폼의 시각적 계층이다. 이 실시예에서, 웹 애플리케이션(232)은 하이퍼텍스트 마크업 언어(Hypertext Markup Language; HTML) 및 자바스크립트(JavaScript; JS)를 이용한다. 그러나, 임의의 희망된 마크업 언어들, 스크립트 언어(script language)들, 또는 임의의 다른 포맷들은 발명의 범위로부터 이탈하지 않으면서 이용될 수 있다. 사용자는 지휘자(230)를 제어하기 위한 다양한 액션들을 수행하기 위하여 이 실시예에서 브라우저(220)를 통해 웹 애플리케이션(232)으로부터의 웹 페이지들과 상호작용한다. 예를 들어, 사용자는 로봇 그룹들을 생성할 수 있고, 패키지들을 로봇들에 배정할 수 있고, 로봇 당 및/또는 프로세스 당 로그들을 분석할 수 있고, 로봇들을 시작 및 정지시킬 수 있는 등과 같다.
웹 애플리케이션(232)에 추가적으로, 지휘자(230)는 또한, OData REST API 엔드포인트들(234)을 노출시키는 서비스 계층을 포함한다. 그러나, 다른 엔드포인트들이 발명의 범위를 이탈하지 않으면서 포함될 수 있다. REST API는 양자의 웹 애플리케이션(232) 및 에이전트(214)에 의해 소비된다. 에이전트(214)는 이 실시예에서 클라이언트 컴퓨터 상의 하나 이상의 로봇들의 감독자이다.
이 실시예에서의 REST API는 구성, 로깅, 모니터링, 및 큐잉 기능성을 커버한다. 구성 엔드포인트들은 일부 실시예들에서 애플리케이션 사용자들, 허가들, 로봇들, 자산(asset)들, 배포(release)들, 및 환경들을 정의하고 구성하기 위하여 이용될 수 있다. 로깅 REST 엔드포인트들은 예를 들어, 에러들, 로봇들에 의해 전송된 명시적 메시지들, 및 다른 환경-특정 정보와 같은 상이한 정보를 로깅하기 위하여 이용될 수 있다. 전개 REST 엔드포인트들은 시작 잡 커맨드가 지휘자(230)에서 이용될 경우에 실행되어야 하는 패키지 버전을 질의하기 위하여 로봇들에 의해 이용될 수 있다. 큐잉 REST 엔드포인트들은 데이터를 큐에 추가하는 것, 큐로부터 트랜잭션(transaction)을 획득하는 것, 트랜잭션의 스테이터스를 설정하는 것 등과 같은, 큐들 및 큐 항목 관리를 담당할 수 있다.
모니터링 REST 엔드포인트들은 웹 애플리케이션(232) 및 에이전트(214)를 모니터링할 수 있다. 통지 및 모니터링 API(236)는, 에이전트(214)를 등록하고, 구성 설정들을 에이전트(214)로 전달하고, 서버 및 에이전트(214)로부터 통지들을 전송/수신하기 위하여 이용되는 REST 엔드포인트들일 수 있다. 통지 및 모니터링 API(236)는 또한, 일부 실시예들에서 웹소켓 통신을 이용할 수 있다.
지속 계층은 이 실시예에서 한 쌍의 서버들 - 데이터베이스 서버(240)(예컨대, SQL 서버) 및 인덱서 서버(250) - 을 포함한다. 이 실시예에서의 데이터베이스 서버(240)는 로봇들의 구성들, 로봇 그룹들, 연관된 프로세스들, 사용자들, 역할들, 스케줄들 등을 저장한다. 이 정보는 일부 실시예들에서 웹 애플리케이션(232)을 통해 관리된다. 데이터베이스 서버(240)는 큐들 및 큐 항목들을 관리할 수 있다. 일부 실시예들에서, 데이터베이스 서버(240)는 (인덱서 서버(250)에 추가적으로 또는 그 대신에) 로봇들에 의해 로깅된 메시지들을 저장할 수 있다.
일부 실시예들에서 옵션적인 인덱서 서버(250)는 로봇들에 의해 로깅된 정보를 저장하고 인덱싱한다. 어떤 실시예들에서, 인덱서 서버(250)는 구성 설정들을 통해 디스에이블될 수 있다. 일부 실시예들에서, 인덱서 서버(250)는 개방 소스 프로젝트 전체-텍스트 검색 엔진(open source project full-text search engine)인 ElasticSearch®를 이용한다. (예컨대, 로그 메시지 또는 기록 라인과 같은 활동들을 이용하는) 로봇들에 의해 로깅된 메시지들은 로깅 REST 엔드포인트(들)를 통해 인덱서 서버(250)로 전송될 수 있고, 여기서, 메시지들은 미래의 사용을 위하여 인덱싱된다.
도 3은 본 발명의 실시예에 따라, 설계자(310), 활동들(320, 330), 및 구동기들(340) 사이의 관계(300)를 예시하는 아키텍처 다이어그램이다. 상기에 따라, 개발자는 로봇들에 의해 실행되는 작업흐름들을 개발하기 위하여 설계자(310)를 이용한다. 작업흐름들은 사용자-정의된 활동들(320) 및 UI 자동화 활동들(330)을 포함할 수 있다. 일부 실시예들은 이미지에서의 비-텍스트 시각적 컴포넌트들을 식별할 수 있고, 이것은 본원에서 컴퓨터 비전(CV)으로 칭해진다. 이러한 컴포넌트들에 속하는 일부 CV 활동들은 클릭(click), 타이핑(type), 텍스트 얻기(get text), 호버(hover), 엘리먼트 존재, 범위 리프레시(refresh scope), 강조표시 등을 포함할 수 있지만, 이것으로 제한되지는 않는다. 일부 실시예들에서의 클릭은 예를 들어, CV, 광학적 문자 인식(OCR), 퍼지 텍스트 정합(fuzzy text matching), 및 멀티-앵커(multi-anchor)를 이용하여 엘리먼트를 식별하고, 그것을 클릭한다. 타이핑은 상기한 것을 이용하여 엘리먼트를 식별할 수 있고, 엘리먼트에서 타이핑한다. 텍스트 얻기는 특정 텍스트의 위치를 식별할 수 있고, OCR을 이용하여 그 텍스를 스캔할 수 있다. 호버는 엘리먼트를 식별할 수 있고, 엘리먼트 상에서 호버링할 수 있다. 엘리먼트 존재는 위에서 설명된 기법들을 이용하여 스크린 상에 엘리먼트가 존재하는지 여부를 체크할 수 있다. 일부 실시예들에서는, 설계자(310) 내에 구현될 수 있는 수백 또는 심지어 수천 개의 활동들이 있을 수 있다. 그러나, 임의의 수 및/또는 유형의 활동들은 발명의 범위로부터 이탈하지 않으면서 이용가능할 수 있다.
UI 자동화 활동들(330)은, 더 낮은 레벨의 코드로 기록되는 특수한 더 낮은 레벨의 활동들(예컨대, CV 활동들)의 서브세트(subset)이고, 스크린과의 상호작용들을 용이하게 한다. UI 자동화 활동들(330)은 로봇이 희망된 소프트웨어와 상호작용하는 것을 허용하는 구동기들(340)을 통해 이 상호작용들을 용이하게 한다. 예를 들어, 구동기들(340)은 OS 구동기들(342), 브라우저 구동기들(344), VM 구동기들(346), 기업 애플리케이션 구동기들(348) 등을 포함할 수 있다.
구동기들(340)은 후크들을 검색하고, 키들에 대해 모니터링하는 등의 낮은 레벨에서 OS와 상호작용할 수 있다. 구동기들은 Chrome®, IE®, Citrix®, SAP® 등과의 상호작용을 용이하게 할 수 있다. 예를 들어, "클릭" 활동은 구동기들(340)을 통해 이 상이한 애플리케이션들에서 동일한 역할을 수행한다.
도 4는 본 발명의 실시예에 따라, RPA 시스템(400)을 예시하는 아키텍처 다이어그램이다. 일부 실시예들에서, RPA 시스템(400)은 도 1 및/또는 도 2의 RPA 시스템들(100 및/또는 200)일 수 있거나 이들을 포함할 수 있다. RPA 시스템(400)은 로봇들을 작동시키는 다수의 클라이언트 컴퓨팅 시스템들(410)을 포함한다. 컴퓨팅 시스템들(410)은 그 상에서 작동하는 웹 애플리케이션을 통해 지휘자 컴퓨팅 시스템(420)과 통신할 수 있다. 지휘자 컴퓨팅 시스템(420)은 궁극적으로, 데이터베이스 서버(430) 및 옵션적인 인덱서 서버(440)와 통신할 수 있다.
도 1 및 도 3에 대하여, 웹 애플리케이션이 이 실시예들에서 이용되지만, 임의의 적당한 클라이언트/서버 소프트웨어는 발명의 범위로부터 이탈하지 않으면서 이용될 수 있다는 것이 주목되어야 한다. 예를 들어, 지휘자는 클라이언트 컴퓨팅 시스템들 상에서 비-웹-기반(non-web-based) 클라이언트 소프트웨어 애플리케이션들과 통신하는 서버-측 애플리케이션을 작동시킬 수 있다.
도 5는 본 발명의 실시예에 따라, RPA를 위한 DPF를 제공하도록 구성된 컴퓨팅 시스템(500)을 예시하는 아키텍처 다이어그램이다. 일부 실시예들에서, 컴퓨팅 시스템(500)은 본원에서 도시되고 및/또는 설명된 컴퓨팅 시스템들 중의 하나 이상일 수 있다. 컴퓨팅 시스템(500)은 정보를 통신하기 위한 버스(505) 또는 다른 통신 메커니즘, 및 정보를 프로세싱하기 위하여 버스(505)에 결합된 프로세서(들)(510)를 포함한다. 프로세서(들)(510)는 중앙 프로세싱 유닛(Central Processing Unit; CPU), 애플리케이션 특정 집적 회로(Application Specific Integrated Circuit; ASIC), 필드 프로그래밍가능 게이트 어레이(Field Programmable Gate Array; FPGA), 그래픽 프로세싱 유닛(Graphics Processing Unit; GPU), 그 다수의 사례들, 및/또는 이들의 임의의 조합을 포함하는 임의의 유형의 일반 또는 특정 목적 프로세서일 수 있다. 프로세서(들)(510)는 또한, 다수의 프로세싱 코어들을 가질 수 있고, 코어들의 적어도 일부는 특정 기능들을 수행하도록 구성될 수 있다. 멀티-병렬(multi-parallel) 프로세싱은 일부 실시예들에서 이용될 수 있다. 어떤 실시예들에서, 프로세서(들)(510) 중의 적어도 하나는 생물학적 뉴런(neuron)들을 모방하는 프로세싱 엘리먼트들을 포함하는 뉴로모픽 회로(neuromorphic circuit)일 수 있다. 일부 실시예들에서, 뉴로모픽 회로들은 폰 노이만(Von Neumann) 컴퓨팅 아키텍처의 전형적인 컴포넌트들을 요구하지 않을 수 있다.
컴퓨팅 시스템(500)은 프로세서(들)(510)에 의해 실행되어야 명령어들 및 정보를 저장하기 위한 메모리(515)를 더 포함한다. 메모리(515)는 랜덤 액세스 메모리(Random Access Memory; RAM), 판독 전용 메모리(Read Only Memory; ROM), 플래시 메모리, 캐시, 자기적 또는 광학 디스크와 같은 정적 스토리지, 또는 임의의 다른 유형들의 컴퓨터-판독가능 비-일시적 매체들의 임의의 조합 또는 그 조합들로 이루어질 수 있다. 컴퓨터-판독가능 비-일시적 매체들은 프로세서(들)(510)에 의해 액세스될 수 있고 휘발성 매체들, 비-휘발성 매체들, 또는 양자 모두를 포함할 수 있는 임의의 이용가능한 매체들일 수 있다. 매체들은 또한, 분리가능, 비-분리가능, 또는 양자 모두일 수 있다.
추가적으로, 컴퓨팅 시스템(500)은 무선 및/또는 유선 접속을 통해 통신 네트워크에 대한 액세스를 제공하기 위한, 트랜시버(transceiver)와 같은 통신 디바이스(520)를 포함한다. 일부 실시예들에서, 통신 디바이스(520)는 발명의 범위로부터 이탈하지 않으면서, 주파수 분할 다중 액세스(Frequency Division Multiple Access; FDMA), 단일 캐리어 FDMA(Single Carrier FDMA; SC-FDMA), 시간 분할 다중 액세스(Time Division Multiple Access; TDMA), 코드 분할 다중 액세스(Code Division Multiple Access; CDMA), 직교 주파수 분할 멀티플렉싱(Orthogonal Frequency Division Multiplexing; OFDM), 직교 주파수 분할 다중 액세스(Orthogonal Frequency Division Multiple Access; OFDMA), 이동 통신들을 위한 글로벌 시스템(Global System for Mobile communications; GSM), 범용 패킷 라디오 서비스(General Packet Radio Service; GPRS), 유니버셜 이동 전기통신 시스템(Universal Mobile Telecommunications System; UMTS), cdma2000, 광대역 CDMA(Wideband CDMA; W-CDMA), 고속 다운링크 패킷 액세스(High-Speed Downlink Packet Access; HSDPA), 고속 업링크 패킷 액세스(High-Speed Uplink Packet Access; HSUPA), 고속 패킷 액세스(High-Speed Packet Access; HSPA), 롱텀 에볼루션(Long Term Evolution; LTE), LTE 어드밴스드(LTE Advanced; LTE-A), 802.11x, Wi-Fi, 지그비(Zigbee), 초광대역(Ultra-WideBand; UWB), 802.16x, 802.15, 홈 노드-B(Home Node-B; HnB), 블루투스(Bluetooth), 라디오 주파수 식별(Radio Frequency Identification; RFID), 적외선 데이터 연계(Infrared Data Association; IrDA), 근접장 통신(Near-Field Communications; NFC), 제5 세대(fifth generation; 5G), 뉴 라디오(New Radio; NR), 그 임의의 조합, 및/또는 임의의 다른 현재 현존하거나 미래-구현된 통신 표준 및/또는 프로토콜을 이용하도록 구성될 수 있다. 일부 실시예들에서, 통신 디바이스(520)는 발명의 범위로부터 이탈하지 않으면서, 단일체, 어레이(array)되고, 페이징(phase)되고, 스위칭되고, 빔포밍(beamforming), 빔조향(beamsteering), 그 조합, 및/또는 임의의 다른 안테나 구성인 하나 이상의 안테나들을 포함할 수 있다.
프로세서(들)(510)는 플라즈마 디스플레이, 액정 디스플레이(Liquid Crystal Display; LCD), 발광 다이오드(Light Emitting Diode; LED) 디스플레이, 필드 방출 디스플레이(Field Emission Display; FED), 유기 발광 다이오드(Organic Light Emitting Diode; OLED) 디스플레이, 플렉시블 OLED 디스플레이, 플렉시블 기판 디스플레이, 투사 디스플레이(projection display), 4K 디스플레이, 고해상도 디스플레이(high definition display), Retina® 디스플레이, 평면내 스위칭(In-Plane Switching; IPS) 디스플레이, 또는 정보를 사용자에게 디스플레이하기 위한 임의의 다른 적당한 디스플레이와 같은 디스플레이(525)에 버스(505)를 통해 추가로 결합된다. 디스플레이(525)는 저항성, 용량성, 표면-음향파(surface-acoustic wave; SAW) 용량성, 적외선, 광학적 이미징, 분산 신호 기술, 음향 펄스 인식, 전반사 장애(frustrated total internal reflection) 등을 이용하여 터치(햅틱(haptic)) 디스플레이, 3 차원(3D) 터치 디스플레이, 멀티-입력 터치 디스플레이, 멀티-터치 디스플레이 등으로서 구성될 수 있다. 임의의 적당한 디스플레이 디바이스 및 햅틱 I/O는 발명의 범위로부터 이탈하지 않으면서 이용될 수 있다.
키보드(530) 및, 컴퓨터 마우스, 터치패드 등과 같은 커서 제어 디바이스(535)는 사용자가 컴퓨팅 시스템과 인터페이싱하는 것을 가능하게 하기 위하여 버스(505)에 추가로 결합된다. 그러나, 어떤 실시예들에서, 물리적 키보드 및 마우스는 존재하지 않을 수 있고, 사용자는 전적으로 디스플레이(525) 및/또는 터치패드(도시되지 않음)를 통해 디바이스와 상호작용할 수 있다. 입력 디바이스들의 임의의 유형 및 조합은 설계 선택의 문제로서 이용될 수 있다. 어떤 실시예들에서, 물리적 입력 디바이스 및/또는 디스플레이는 존재하지 않는다. 예를 들어, 사용자는 그 통신하는 또 다른 컴퓨팅 시스템을 통해 원격으로 컴퓨팅 시스템(500)과 상호작용할 수 있거나, 컴퓨팅 시스템(500)은 자율적으로 동작할 수 있다.
메모리(515)는 프로세서(들)(510)에 의해 실행될 때에 기능성을 제공하는 소프트웨어 모듈들을 저장한다. 모듈들은 컴퓨팅 시스템(500)을 위한 운영 체제(540)을 포함한다. 모듈들은 본원에서 설명된 프로세스들의 전부 또는 일부 또는 그 파생부들을 수행하도록 구성되는 DPF 모듈(545)을 더 포함한다. 컴퓨팅 시스템(500)은 추가적인 기능성을 포함하는 하나 이상의 추가적인 기능 모듈들(550)을 포함할 수 있다.
당해 분야의 당업자는 발명의 범위로부터 이탈하지 않으면서, "시스템"이 서버, 내장된 컴퓨팅 시스템, 개인용 컴퓨터, 콘솔, 개인 정보 단말(personal digital assistant; PDA), 셀 전화, 태블릿 컴퓨팅 디바이스, 퀀텀(quantum) 컴퓨팅 시스템, 또는 임의의 다른 적당한 컴퓨팅 디바이스, 또는 디바이스들의 조합으로서 구체화될 수 있다는 것을 인식할 것이다. 위에서 설명된 기능들을 "시스템"에 의해 수행되는 것으로서 제시하는 것은 본 발명의 범위를 임의의 방식으로 제한하도록 의도된 것이 아니라, 본 발명의 많은 실시예들 중의 하나의 예를 제공하도록 의도된다. 실제로, 본원에서 개시된 방법들, 시스템들, 및 장치들은 클라우드 컴퓨팅 시스템들을 포함하는 컴퓨팅 기술과 부합하는 국소화된 및 분산된 형태들로 구현될 수 있다.
이 명세서에서 설명된 시스템 특징들의 일부는 그 구현 독립성을 더 상세하게 강조하기 위하여 모듈들로서 제시되었다는 것이 주목되어야 한다. 예를 들어, 모듈은 맞춤형 초고밀도 집적(very large scale integration; VLSI) 회로들 또는 게이트 어레이들, 로직 칩들과 같은 기성품(off-the-shelf) 반도체들, 트랜지스터들, 또는 다른 개별 컴포넌트들을 포함하는 하드웨어 회로로서 구현될 수 있다. 모듈은 또한, 필드 프로그래밍가능 게이트 어레이들, 프로그래밍가능 어레이 로직, 프로그래밍가능 로직 디바이스들, 그래픽 프로세싱 유닛들 등과 같은 프로그래밍가능 하드웨어 디바이스들로 구현될 수 있다.
모듈은 또한, 다양한 유형들의 프로세서들에 의한 실행을 위하여 소프트웨어로 적어도 부분적으로 구현될 수 있다. 예를 들어, 실행가능 코드의 식별된 유닛은, 예를 들어, 오브젝트(object), 프로시저(procedure), 또는 함수(function)로서 조직화(organize)될 수 있는 컴퓨터 명령어들의 하나 이상의 물리적 또는 논리적 블록들을 포함할 수 있다. 그럼에도 불구하고, 식별된 모듈의 익스큐터블(executable)들은 함께 물리적으로 위치될 필요가 없지만, 함께 논리적으로 병합될 때, 모듈을 포함하고 모듈을 위한 기재된 목적을 달성하는 상이한 위치들에서 저장된 이질적인 명령어들을 포함할 수 있다. 또한, 모듈들은 예를 들어, 발명의 범위로부터 이탈하지 않으면서, 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프, 및/또는 데이터를 저장하기 위하여 이용된 임의의 다른 이러한 컴퓨터-판독가능 비-일시적 매체일 수 있는 컴퓨터-판독가능 매체 상에서 저장될 수 있다.
실제로, 실행가능 코드의 모듈은 단일 명령 또는 다수의 명령어들일 수 있고, 몇몇 상이한 코드 세그먼트들 상에서, 상이한 프로그램 사이에서, 그리고 몇몇 메모리 디바이스들에 걸쳐 심지어 분산될 수 있다. 유사하게, 동작 데이터는 모듈들 내에서 본원에서 식별 및 예시될 수 있고, 임의의 적당한 형태로 구체화될 수 있고, 임의의 적당한 유형의 데이터 구조 내에서 조직화될 수 있다. 동작 데이터는 단일 데이터 세트로서 수집될 수 있거나, 상이한 저장 디바이스들 상부를 포함하는 상이한 위치들 상에서 분산될 수 있고, 적어도 부분적으로, 시스템 또는 네트워크 상의 단지 전자 신호들로서 존재할 수 있다.
분류체계의 정의 및 관리
문서 프로세싱을 위한 작업흐름을 설계하기 전에, 일부 실시예들의 DPF는 사용자들이 문서 유형들 각각에 대한 연관된 필드들(즉, 문서들 및 연관된 유형들에서 검색되어야 할 정보)과 함께, 분류 및 데이터 추출을 위하여 표적화된 문서 유형들의 리스트를 정의하는 것을 허용한다. 이것은 일부 실시예들에서 분류체계 관리자를 이용하여 달성될 수 있다. 정의된 분류체계 정보는 분류체계 오브젝트들을 조작하기 위하여 양자의 소프트웨어 개발자들 및 RPA 개발자들에 의해 프로그램 방식으로 이용될 수 있는, 공개 패키지에서의 클래스로서 정의된 공개 전용 데이터 구조(public proprietary data structure) 내에 마스터 분류체계로서 저장될 수 있다. 일부 실시예들에서, 이 클래스는 예를 들어, UiPath Studio™에서의 DocumentTaxonomy일 수 있다.
도 6a 내지 도 6d는 본 발명의 실시예에 따라, 분류체계 관리자(600)를 예시하는 스크린샷들이다. 분류체계 관리자(600)는 문서 유형들 정의 인터페이스(610)(또한 도 6b 참조), 문서 유형 세부사항들 인터페이스(620)(또한 도 6c 참조), 및 필드 편집 인터페이스(630)(또한 도 6d 참조)를 포함한다. 집합적으로, 인터페이스들(610, 620, 630)은 사용자가 문서 유형들의 리스트를 정의하는 것, 문서 유형 세부사항들을 제공하는 것, 및 문서 유형들 필드들을 편집하는 것을 허용한다.
문서 유형들 정의 인터페이스(610)는 사용자가 새로운 문서 유형들을 추가하는 것, 또는 현존하는 문서 유형들을 편집하거나 제거하는 것을 허용한다. 인터페이스는 또한, 그룹들 및 카테고리들을 선택하는 것 뿐만 아니라, 그룹들 및 카테고리들을 검색하기 위한 기능성을 제공한다. 그룹들 및 카테고리들은 분류체계에서 문서 유형들의 모음을 더 양호하게 조직화하기 위하여 이 실시예에서 이용된다. 그룹 및 카테고리 필터링은 인터페이스(610)(또한 도 6b 참조)에서의 이 설정들에 기초하여 이용가능할 수 있다. 각각의 문서 유형은 인터페이스(620)(또한 도 6c 참조)를 통해 그룹 및 카테고리에 배정될 수 있다. (예컨대, 그룹들, 카테고리들, 문서 유형들, 필드들 등에 의한) 분류체계 조직화는 문서 프로세싱 메타데이터를 캡처하는 동일한 목적을 보유하면서, 시간 경과에 따라 변경될 수 있다. 또한, 데이터 구조들, 사용자 인터페이스들, 및 공개 계약들은 또한, 설계, 패키징, 컨텐츠, 기능성 등에서 진화할 수 있다.
문서 유형 세부사항들 인터페이스(620)는 사용자가 문서 유형에 대한 명칭을 제공하는 것 뿐만 아니라, 문서 유형에 대한 그룹 및 카테고리를 선택하는 것을 허용한다. 문서 유형 코드는 또한, 옵션적으로 특정될 수 있다. 문서 유형과 연관된 필드들이 도시되고, 사용자는 마찬가지로 필드들을 추가, 편집, 또는 제거할 수 있다.
필드 편집 인터페이스(630)는 사용자가 주어진 필드의 성질들을 편집하는 것을 허용한다. 이용가능한 성질들은, 필드 유형, 카테고리, 그룹 등을 포함할 수 있지만, 이것으로 제한되지는 않는 다수의 인자들에 기초하여 변동될 수 있다.
파일들 디지털화
일부 실시예들에서, 파일의 디지털화는 문서 오브젝트 모델(DOM)과 함께, 프로세싱된 파일의 텍스트 버전을 출력하는 RPA 툴(700)(예컨대, UiPath Studio™)의 작업흐름에서의 디지털화 활동(710)을 이용하여 수행될 수 있다. 도 7a 및 도 7b를 참조한다. DOM은 공개 패키지에서 클래스로서 정의될 수 있는, RPA 툴의 전용 데이터 구조에서 캡처될 수 있다. 이 클래스는 DOM 오브젝트들을 조작하기 위하여 양자의 소프트웨어 개발자들 및 RPA 개발자들에 의해 프로그램 방식으로 이용될 수 있다. DOM은 회전, 스큐(skew), 상대적 폭 및 높이 정보 등으로 모두 증대된, 타이핑된 섹션들(예컨대, 단락들, 표들, 열(column)들, 수직 텍스트, 헤더들, 제목들, 꼬리말(footer)들 등), 타이핑된 워드 그룹들(예컨대, 문장들, 표 셀들 등), 및 워드 레벨 정보(예컨대, 각각의 페이지 상의 절대적 위치결정, OCR 신뢰도, 컨텐츠 등)로, 파일이 각각의 페이지에 대하여 포함하는 것에 대한 정보를 캡처한다.
파일 디지털화 컴포넌트는 이용되어야 할 OCR 엔진에 관련된 플러그-앤드-플레이 기능성으로 구축될 수 있어서, 문서 프로세싱 프레임워크에 의해 집행되는 정의된 계약을 준수하는 임의의 적당한 OCR 엔진 구현예가 이용될 수 있다. 디지털화 컴포넌트는 또한, 다수의 OCR 엔진들의 이용을 허용하고 이용된 모든 엔진들의 최상의 조합된 결과를 보고하기 위한 투표 시스템(voting system)을 구현하도록 개략될 수 있다. 예를 들어, 대부분의 OCR 엔진들이 동의하는 결과가 선택될 수 있다. 어떤 실시예들에서, 이러한 결과들은 주어진 OCR 시스템의 정확성에 기초하여 가중화될 수 있다. 그러나, 일부 실시예들에서, 투표/OCR 결과 집합 알고리즘은 발명의 범위로부터 이탈하지 않으면서 최상의 이용가능한 텍스트 출력을 결정하고 보고하기 위하여, 인간 피드백에 기초하거나 또는 인간 피드백에 기초하지 않는, 임의의 유형의 메트릭 또는 신뢰도 연산을 채용할 수 있다는 것이 주목되어야 한다.
파일들을 하나 이상의 문서 유형으로 분류
이 기능성은 사용자가 문서 분류를 위한 하나 이상의 희망된 분류기 알고리즘들을 이용하는 것을 허용한다. 분류 알고리즘들의 예들은 레이아웃-기반 분류, 감정(sentiment)-기반 분류, 특징-기반 분류, 자연어 처리(natural language processing; NLP)-기반 분류, 기계 학습(machine learning; ML)-기반 분류, 심층 학습(deep learning)-기반 분류, 이미지-기반 분류, 키워드-기반 분류, 및 컬러-기반 분류를 포함하지만, 이것으로 제한되지는 않는다. 사용자는 일부 실시예들에서 임의의 수의 분류기 구현예들을 플러그-인(plug-in)들로서 추가할 수 있고, 분류기들의 순서를 삭제, 변경, 상호 교환, 및 변경할 수 있다. 어떤 실시예들에서는, 동일한 유형의 다수의 상이한 분류기들(예컨대, 다수의 이미지-기반 분류기들)이 이용될 수 있다. 일부 실시예들에서, 사용자는 이용되는 각각의 분류기를 위한 최소 신뢰도 임계치들에 기초한 수락 기준들을 정의할 수 있다.
일부 실시예들에서, 사용자는 합체된 방식으로 모든 데이터를 공통 분모(common denominator)로 보내는 목적을 위하여, 주어진 분류기를 위한 마스터 분류체계(예컨대, 일부 실시예들에서 분류체계 관리자를 이용하여 설계되고 정의된 것) 및 임의의 내부 분류체계로부터의 분류체계 맵핑을 수행할 수 있다. 이 기능성은 주어진 분류기가 마스터 분류체계로 맵핑(변환)되어야 하는 분류의 결과로서 "클래스들"(예컨대, 문서 유형들)의 내부 세트를 보고할 때에 이용될 수 있다. 예를 들어, 분류기는 인입 문서가 청구서(invoice)일 때에 클래스 "INV"를 보고할 수 있는 반면, 마스터 분류체계는 "지출 청구서(Expense Invoice"로 칭해진 문서 유형을 포함할 수 있다. 이 기능성은 분류기로부터 보고된 "INV"가 마스터 분류체계에서 정의된 "지출 청구서"에 대응한다는 특정을 허용한다.
어떤 실시예들에서, 사용자는 이용되는 각각의 분류기 컴포넌트로부터의 결과들의 우선순위에 대해 판정할 수 있다. 일부 실시예들에서, 사용자는 또한, 어느 분류기 컴포넌트들이 어떤 문서 유형들을 분해하도록 허용되는지와, 어느 것이 그렇게 행하지 않도록 한정되는지를 판정할 수 있다. 이 기능성은 특정 이용 케이스에서 이용된 각각의 분류기 구현예(즉, 컴포넌트)의 알려진 특징들 및 제한들이 주어질 경우에, 문서 분류의 미세 조율을 허용한다.
문서 분류 기능성은 또한, 디지털화된 파일 및 분류체계에 기초하여 이용된 분류기(들)에 관계 없이, 동일한 유형의 출력을 보장할 수 있다. 분서 분류 기능성의 출력은 공개 패키지에서 클래스로서 정의되는 전용 데이터 구조에서 캡처될 수 있다. 클래스는 분류 결과들 오브젝트들을 조작하기 위하여 양자의 소프트웨어 개발자들 및 RPA 개발자들에 의해 프로그램 방식으로 이용될 수 있다. 일부 실시예들에서, 이 클래스들은 UiPath Studio™에서의 공개 데이터 계약들 패키지에서 정의된 ClassifierResult 및 ClassificationResult일 수 있다. 어떤 실시예들은 어느 결과들이 더 양호한지를 자동적으로 판정하기 위한 상이한 분류기 컴포넌트들 사이의 더 복잡한 결과들 중개 시스템들 뿐만 아니라, 상이한 페이지 범위들에 대한 상이한 분류기 컴포넌트들로부터의 결과들을 조합하기 위한 시스템의 구현예를 포함할 수 있다. 이 기능성은 다수의 논리적 문서들로의 파일 분할을 위하여 이용될 수 있다. 예를 들어, 단일 파일이 문서들의 패키지를 포함할 경우에, 문서들은 동일한 PDF 파일 내에서 교대로 스캐닝된다.
도 8a는 본 발명의 실시예에 따라, 문서 범위 분류 작업흐름(800)을 예시하는 스크린샷이다. 작업흐름(800)은 키워드-기반 분류기 활동(802) 및 고정된 형태의 분류기 활동(804)을 포함한다. 사용자는 분류기들 구성 링크(806)를 클릭함으로써 작업흐름(800)에서의 분류기들을 구성할 수 있다. 문서 범위 분류 컴포넌트는 일부 실시예들에서 임의의 희망된 수의 분류기들로 구성될 수 있다.
분류기들 구성 링크(806)를 클릭하는 것은 구성 표의 최초 열에서 프로세싱될 수 있는 문서 유형들(820)의 리스트를 제공하는 도 8b의 분류기 구성 인터페이스(810)를 개방하는 반면, 다음의 열들은 열들이 범위 컴포넌트에서 구성되는 순서로 범위에서 이용된 하나의 분류기에 각각 대응한다. 이 예에서, 키워드-기반 분류기 구성 페인(830) 및 고정된 형태의 분류기 구성 페인(840)은 사용자가 각각에 대한 최소 신뢰도(832, 842)를 설정하는 것을 허용한다. 각각의 분류기로부터의 분류 결과들은 각각의 분류기에 대하여 개별적으로 설정된 최소 신뢰도 임계치에 기초하여 필터링될 수 있다. 사용자는 또한, 분류기 구성(여기서, 키워드-기반 분류기 구성 페인(830) 및 고정된 형태의 분류기 구성 페인(840))에서의 체크박스(checkbox)들을 통해 하나, 양자의 분류기들, 또는 분류기 없음을 각각의 문서 유형에 적용할 것인지 여부를 선택할 수 있다. 사용자는 또한 옵션적으로, 각각의 분류기가 체크박스들 옆의 텍스트 필드들에서의 내부 분류체계를 이용하고 있는 문서 유형들에 대한 내부 분류체계 고유 ID들을 기입할 수 있다.
일부 실시예들에서, 문서 범위 분류 활동은 분류기에 따르는 것 뿐만 아니라, 분류기 및 문서 유형 레벨에서, 최소 신뢰도 임계치들의 설정을 허용할 수 있다. 어떤 실시예들에서, 문서 범위 분류 활동, 분류기 구성, 우선순위화 알고리즘, 사용자 인터페이스들, 데이터 구조들, 및 공개 계약들은 공개 및 확장가능한 프레임워크에서의 문서 분류를 용이하게 하는 동일한 목적을 보유하면서, 변경들 및 조절들을 경험할 수 있다.
자동적 분류의 유효성확인
일부 실시예들에서, 분류 유효성확인 모듈은 분류를 위한 파일들을 검토, 정정, 및/또는 수동으로 프로세싱하기 위한 사용자 인터페이스를 제공한다. 사용자들은 프로세싱된 파일 및 자동적으로 연관된 문서 유형으로부터의 페이지들의 범위들을 관측함으로써 자동적 분류를 검토할 수 있고, 양자의 페이지 범위 및 문서 유형 레벨에서 정정들을 수행할 수 있고, 문서 유형들과 연관된 새로운 섹션들을 삭제하거나 추가할 수 있고, 및/또는 희망될 경우에 문서들을 완전히 수동으로 프로세싱할 수 있다.
일부 실시예들의 사용자 인터페이스는 이용하기가 쉽고, 파일에서의 각각의 개별적인 페이지에 대한 판단들을 이해하고 행하는 것에 대한 시각적 접근법을 제공한다. 일부 실시예들에서의 사용자 인터페이스는 이전의 자동적 분류 국면에서 이용된 분류 컴포넌트들에 독립적인 사용을 위하여 이용가능하여, 문서 분류 검토 및 프로세싱을 위한 단일의 합체된 최신 사용자 인터페이스를 제공한다. 이 접근법은 인간들이 채용되는 분류 기법들에 종속적인 문서 분류를 위하여 상이한 스크린들을 학습하고 이용하기 위한 필요성을 제거할 수 있고, 이에 따라, 전체적인 경험을 합체할 수 있고, 문서 프로세싱을 위하여 요구된 학습 곡선 및 전체적인 시간을 감소시킬 수 있다.
문서들로부터 데이터를 자동적으로 추출
일부 실시예들에서, 자동적 데이터 추출 기능성은 작업흐름에서의 추출기들이 상호 교환가능하게 이용되는 것을 허용한다. 이러한 실시예들은 표준 입력들, 표준 출력들, 추출기들 사이의 중개, 및 폴백(fallback) 메커니즘들을 보장할 수 있다. 추출기들의 일부 예들은 템플릿-기반 추출기들, 레이아웃-기반 추출기들, 키워드-기반 추출기들, 규칙적 표현-기반 추출기들, 컨텍스트-기반 추출기들, 라벨/앵커(label/anchor)-기반 추출기들, 패턴-기반 추출기들, 자연어 처리-기반 추출기들, 기계 학습 추출기들, 메타데이터-기반 추출기들 등을 포함할 수 있지만, 이것으로 제한되지는 않는다.
일부 실시예들에서, 사용자는 임의의 희망된 수의 추출기 구현예들을 플러그-인들로서 추가할 수 있다. 어떤 실시예들에서, 사용자는 추출기들의 순서를 삭제, 변경, 상호 교환, 및 변경할 수 있다. 일부 실시예들에서, 사용자는 이용되는 각각의 추출기를 위한 최소 신뢰도 임계치들에 기초한 수락 기준들을 정의할 수 있다. 일부 실시예들에서, 사용자는 각각의 필드/추출기 조합을 위한 최소 신뢰도 임계치들에 기초한 수락 기준들을 정의할 수 있다.
일부 실시예들에서, 사용자는 합체된 방식으로 모든 데이터를 공통 분모로 보내는 목적을 위하여, 마스터 분류체계(예컨대, 일부 실시예들에서 분류체계 관리자를 이용하여 설계되고 정의된 것) 및 하나 이상의 추출기 내부 분류체계로부터의 분류체계 맵핑을 수행할 수 있다. 이 기능성은 주어진 추출기가 마스터 분류체계로 맵핑(변환)되어야 하는 데이터 추출의 결과로서 "능력들"(예컨대, 추출기가 추출할 수 있는 필드들)의 내부 세트를 보고할 때에 이용될 수 있다. 사용자는 이용되는 각각의 추출기로부터의 결과들의 우선순위를 판정할 수 있다. 예를 들어, 추출기는 청구서들을 프로세싱할 때에 "INV-NO"로 칭해진 필드에 대한 값들을 보고할 수 있는 반면, 마스터 분류체계는 "청구서 번호(Invoice Number)"로 칭해진 필드를 포함할 수 있다. 이 기능성은 추출기로부터 보고된 "INV-NO"가 마스터 분류체계에서 정의된 "청구서 번호"에 대응한다는 특정을 허용한다.
사용자는 또한, 어느 추출기 컴포넌트들이 어떤 필드들을 분해하도록 허용되는지와, 어느 것이 그렇게 행하지 않도록 한정되는지를 판정할 수 있다. 이 기능성들은 특정 이용 케이스에서 이용된 각각의 추출기 구현예(즉, 컴포넌트)의 알려진 특징들 및 제한들이 주어질 경우에, 문서 추출의 미세 조율을 허용한다. 추출기들은 일부 실시예들에서 RPA 작업흐름에서의 활동들로서 구현될 수 있다.
도 9a는 본 발명의 실시예에 따라, 데이터 추출 범위 작업흐름(900)을 예시하는 스크린샷이다. 작업흐름(900)은 FlexiCapture™ 추출기 활동(902) 및 고정된 형태의 추출기 활동(903)을 포함한다. 사용자는 추출기들 구성 링크(906)를 클릭함으로써 작업흐름(900)에서의 추출기들을 구성할 수 있다.
추출기들 구성 링크(906)를 클릭하는 것은 도 9b의 추출기 구성 인터페이스(910)를 개방한다. 마스터 분류체계로부터의 문서 유형들 및 필드들은 문서 유형들 및 필드들 페인(920)(또한 도 9c 참조)에서 관측될 수 있고, 여기서, 필드들(예컨대, "InvoiceNumber")은 그 개개의 문서 유형(예컨대, "청구서") 하에서 그룹화된다. 추출기들은 각각의 추출기의 페인(예컨대, 이 예에서의 FlexiCapture™ 추출기 페인(930)(또한 도 9d 참조)) 및 고정된 형태의 추출기 페인(940)(또한 도 9e 참조)에서의 대응하는 체크박스들을 선택함으로써 필드마다에 기초하여 적용된다. 최소 신뢰도 백분율은 또한, 추출기-특정 페인들(예컨대, 각각 FlexiCapture™ 추출기 페인(930) 및 고정된 형태의 추출기 페인(940))에서의 텍스트 필드들(932, 942)을 통해 특정될 수 있다.
이 실시예에서의 문서 추출 기능성은 디지털화된 파일 및 분류체계에 기초하여 이용된 추출기에 관계 없이 동일한 유형의 출력을 보장한다. 예를 들어, FlexiCapture™은 그 자신의 내부 분류체계를 가지는 제3자 툴이다. 매 추출기를 공통 분모로 보내기 위하여, 가명(alias)들이 이 실시예에서 추가될 수 있다. 예를 들어, 이하에서 도시된 바와 같이, FlexiCapture™ 추출기 페인(930)에서의 InvoiceNumber 필드는 고정된 형태의 추출기 페인(940)에서의 "inv-no"와 동일하다. 이것은 한번 구성될 필요가 오직 있을 수 있고, 데이터 추출 범위의 출력은 그 다음으로, 개발자가 정의한 마스터 분류체계에 따라 데이터를 항상 추출할 수 있다. 문서 추출 기능성의 출력은 추출 결과 오브젝트들을 조작하기 위하여 양자의 소프트웨어 개발자들 및 RPA 개발자들에 의해 프로그램 방식으로 이용될 수 있는 공개 패키지에서의 클래스로서 정의된 전용 데이터 구조에서 캡처될 수 있다.
일부 실시예들에서, 이 클래스들은 예를 들어, UiPath Studio™의 공개 데이터 계약들 패키지에서 정의된 ExtractorResult 및 ExtractionResult일 수 있다. 어떤 실시예들은 어느 결과들이 더 양호한지를 자동적으로 판정하기 위한 상이한 추출기 컴포넌트들 사이의 더 복잡한 결과들 중개 시스템들 뿐만 아니라, 동일한 필드에 대한 상이한 추출기 컴포넌트들로부터의 추출기 프로세싱을 조합하거나 체이닝(chaining)하기 위한 시스템의 구현예를 포함할 수 있다. 이 기능성은 더 큰 식별된 섹션들로부터의 미세한(fine-grain) 데이터 식별을 위하여 이용될 수 있다. 예를 들어, 일부 실시예들에서, 제1 추출기는 전체 문장을 추출할 수 있는 반면, 체이닝된(chained) 제2 추출기는 제1 추출기에 의해 식별된 문장으로부터의 특정 정보의 식별을 표적화할 수 있다.
요약하면, 일부 실시예들의 DPF는 파일, 및 페이지 경계들을 갖는 분류 결과를 취하고, 각각의 연관된 필드에 대한 데이터를 식별하는 것을 시도하고, 작업흐름 내에 포함된 추출 알고리즘들을 이용하고, 결과들을 수집하고, 신뢰도, 순서화, 및 추출기 체이닝에 기초하여 각각의 필드에 대한 최상의 결과를 보고한다. 도 9a 내지 도 9e의 예에서는, 2 개의 추출기들 - FlexiCapture™ 추출기(902) 및 고정된 형태의 추출기(904) - 이 이용된다. 이 실시예에서의 문서 추출 모듈은 작업흐름(900)에서의 이 2 개의 플러그인들 사이의 RPA 개발자에 의해 선택된 순서화에 기인하여, 고정된 형태의 추출기(904)에 비해, FlexiCapture™ 추출기(902)에 의해 반환된 결과에 우선순위를 부여한다. 문서 추출 모듈은 설정된 신뢰도 값(예컨대, 사용자가 최소 신뢰도 필드(932)에서 이 값을 설정할 경우에, FlexiCapture™ 추출기(902)에 의해 보고된 결과들에 대하여 70 %) 미만인 임의의 보고된 추출을 수락하지 않을 수 있는 반면, 문서 추출 모듈은 최소 신뢰도 필드(942)가 0 %로 설정될 경우에, 고정된 형태의 추출기(904)에 의해 보고된 임의의 분류를 수락할 것이다. 문서 추출 모듈은 FlexiCapture™ 추출기(902)에 의해 수행된 수락가능한 추출을 검색할 수 있고, 수락가능할 경우에, 그 결과를 보고할 수 있다. 수락가능한 추출이 FlexiCapture™ 추출기(902)에 의해 보고되지 않을 경우에, 문서 추출 모듈은 고정된 형태의 추출기(904)에 의해 수행된 수락가능한 추출을 검색할 수 있다.
일부 실시예들에서, 추출 결과들은 비지니스-특정 정보 또는 유효성확인, 특정 포맷팅, 및/또는 다른 포스트-프로세싱(post-processing)으로 추가로 증대될 수 있다. 어떤 실시예들에서, 자동적 데이터 추출 컴포넌트의 출력은 임의의 희망된 조합으로 이용가능한 임의의 다른 RPA 작업흐름 활동들을 이용하여 체크/정정/증대될 수 있다. 이 활동들은 자동적 데이터 추출의 출력을 조작하기 위하여 이용될 수 있고, 결과에 포함된 어떤 값들을 추가, 제거, 또는 변경할 수 있다. 이것은 추출된 데이터가 데이터베이스, 또는 예를 들어, 그 때에 프로세싱된 단일체 파일에 외부적인 다른 소스들로부터의 정보로 증대되어야 하는 복잡한 이용 케이스들을 위하여 이용될 수 있다.
자동적 데이터 추출의 유효성확인
일부 실시예들에서, 데이터 추출 유효성확인 모듈은 데이터 추출 모듈에 의해 보고된 데이터 포인트들(즉, 추출된 정보)을 검토, 정정, 및/또는 수동으로 프로세싱하기 위한 사용자 인터페이스를 제공한다. 사용자들은 다음에 의해 자동적 데이터 추출로부터의 결과들을 검토할 수 있다: (1) 문서의 프로세싱된 부분으로부터(예컨대, 분류에 속하는 바와 같은 어떤 페이지 범위들 상에서) 값들, 증거, 추출된 값이 문서 내에서 발견된 포지션들, 추출된 값 신뢰도 등을 관측하는 것; (2) 올바르게 보고된 값에서 OCR 에러들을 편집함으로써 정정들을 수행하고, 보고된 값의 위치결정을 정정하고, 보고된 값을 완전히 대체하고, 자동적 프로세싱에 의해 누락된 값을 추가하고, 및/또는 자동적 프로세싱에 의해 잘못 식별된 값을 제거하는 것; (3) 원래의 파일 뷰(file view) 상에서 직접적으로 범위, 에어리어(area), 워드(들) 등의 선택들을 통해 동작들을 수행함으로써 프로세싱되는 원래의 파일의 그래픽 표현과 직접적으로 상호작용하는 것; (4) 문서의 텍스트 버전에 대한 동작들을 관측하고 수행하는 것; 및/또는 (5) 희망될 때, 문서들을 완전히 수동으로 프로세싱하는 것.
일부 실시예들의 사용자 인터페이스는 이용하기가 쉽고, 파일에서 식별되고 추출되어야 할 개별적인 필드들 및 데이터의 피스(piece)들에 대한 판단들을 이용하고 행하는 것에 대한 시각적 접근법을 제공한다. 어떤 실시예들에서의 사용자 인터페이스는 이전의 자동적 분류 및 데이터 추출 국면들에서 이용된 데이터 추출 컴포넌트들에 독립적인 사용을 위하여 이용가능하게 될 수 있어서, 문서 데이터 추출 검토 및 프로세싱을 위한 단일의 합체된 최신 사용자 인터페이스를 제공한다. 이 접근법은 인간들이 채용되는 데이터 추출 기법들에 종속적인 데이터 유효성확인을 위하여 상이한 스크린들을 학습하고 이용하기 위한 필요성을 제거할 수 있고, 이에 따라, 전체적인 경험을 합체할 수 있고, 문서 프로세싱을 위한 학습 곡선 및 전체적인 시간을 감소시킬 수 있다. 일부 실시예들의 데이터 유효성확인 컴포넌트는 인간이 문서 유효성확인 기능성을 통해 프로세싱된 문서를 제출하는 것을 허용하기 전에 체크될 수 있는 맞춤형 유효성확인 규칙들의 정의 및 이용을 허용한다. 이러한 방식으로, 모듈은 완전한 확장가능성을 보장할 수 있고, 커버되어야 할 비니지스 이용 케이스에 따라 맞춤형 구현예들에 개방되게 할 수 있다.
분류기들 및 추출기들의 훈련
일부 실시예들에서, 분류기 훈련 모듈은 인간 피드백으로부터 학습할 수 있는 분류기들을 위한 피드백 루프의 완료를 용이하게 한다. 분류기 훈련 모듈은 합체된 방식으로, 알고리즘들이 인간 피드백으로부터 학습하는 것을 가능하게 하는 정보 및 인간-유효성확인된 데이터가 (예컨대, 분류체계 맵핑 기능성을 이용함으로써) 개개의 분류기들에 의해 그리고 (예컨대, 분류기들 훈련 활성화 기능성을 이용함으로써) 가능하게 된 올바른 허가들로 이해가능한 형태로 활성화된 분류기들에 도달하는 것을 보장할 수 있다. 이 접근법은 이용되는 분류기(들)에 독립적인 피드백 루프를 폐쇄하기 위한 합체된 경험을 제공할 수 있고, 또한, 실제적인 파일 분류를 위하여 이용된 분류기 컴포넌트들에 독립적일 수 있다. 이것은 분류기들이 실제적인 파일 분류를 위하여 활성화되기 전에, 예를 들어, RPA 개발자들이 분류기들을 훈련시키는 것을 허용하고, 이에 따라, "현장(on-the-fly)" 훈련을 가능하게 하고, 각각의 분류 컴포넌트에 특정적인 두드러진 주석붙여진 파일들의 큰 용량들의 필요성을 제거한다.
일부 실시예들에서, 추출기 훈련 모듈은 인간 피드백으로부터 학습할 수 있는 추출기들을 위한 피드백 루프의 완료를 용이하게 한다. 추출기 훈련 모듈은 합체된 방식으로, 알고리즘들이 인간 피드백으로부터 학습하는 것을 가능하게 하는 정보 및 인간-유효성확인된 데이터가 (예컨대, 분류체계 맵핑 기능성을 이용함으로써) 추출기(들)에 의해 그리고 (예컨대, 추출기들 필드-레벨 훈련 활성화 기능성을 이용함으로써) 가능하게 된 올바른 허가들로 이해가능한 형태로 활성화된 추출기(들)에 도달하는 것을 보장할 수 있다. 이 접근법은 어느 추출기 컴포넌트(들)가 이용되는지에 독립적인 피드백 루프를 폐쇄하기 위한 합체된 경험을 제공할 수 있고, 또한, 데이터 추출을 위한 실제적인 파일 프로세싱을 위하여 이용된 추출기 컴포넌트들에 독립적일 수 있다. 이것은 추출기들이 실제적인 문서 데이터 추출을 위하여 활성화되기 전에, 예를 들어, RPA 개발자들이 추출기들을 훈련시키는 것을 허용하고, 이에 따라, "현장" 훈련을 가능하게 하고, 각각의 추출 컴포넌트를 위하여 특정적인 두드러진 주석붙여진 파일들의 큰 용량들의 필요성을 제거한다.
도 10은 본 발명의 실시예에 따라, 분류기 및 추출기 훈련 작업흐름(1000)을 예시하는 스크린샷이다. 이 예에서, 분류기 훈련 범위 활동(1010)은 분류기들 구성 링크(1014)를 클릭함으로써 구성될 수 있는 키워드-기반 분류기(1012)를 포함한다. 최소 신뢰도 임계치가 일부 실시예들에서 설정될 필요가 없다는 것을 제외하고는, 분류기 훈련 구성 인터페이스의 기능성은 도 8b의 분류기 구성 인터페이스(810)와 유사할 수 있다. 이러한 분류기 훈련 구성 인터페이스(1100)는 도 11에서 도시된다. 그러나, 어떤 실시예들에서, 분류기 훈련 구성 인터페이스는 문서 유형 및 분류기-특정적일 수 있는 추가적인 훈련 셋업 파라미터들을 포함할 수 있다. 유사하게, 추출기 훈련 구성 인터페이스의 기능성은 도 9b의 추출기 구성 인터페이스(910)와 유사할 수 있고, 어떤 실시예들에서는, 추가적인 훈련 셋업 파라미터들이 포함될 수 있다.
도 12는 본 발명의 실시예에 따라, RPA를 위한 DPF를 구현하기 위한 프로세스(1200)를 예시하는 플로우차트이다. 프로세스는 1210에서 일반적인 분류체계를 정의하고 저장함으로써 시작된다. 일부 실시예들에서, 이것은 문서 유형들 각각에 대한 연관된 필드들과 함께, 분류 및 데이터 추출을 위하여 표적화된 문서 유형들의 리스트의 정의를 용이하게 하는 인터페이스를 제공하는 분류체계 관리자를 실행하는 것, 정의된 문서 유형들의 리스트 및 정의된 문서 유형들 각각에 대한 연관된 필드들을 수신하는 것, 및 문서 유형들의 리스트 및 연관된 필드들을 마스터 분류체계 데이터 구조 내에 저장하는 것을 포함할 수 있다.
다음으로, 1220에서, 디지털화 활동은 RPA 작업흐름에서 실행되고, DOM 데이터 구조 내에 저장된 파일의 텍스트 버전 및 문서 오브젝트 모델(DOM)이 출력된다. 일부 실시예들에서, DOM은 회전, 스큐, 및 상대적 폭 및 높이 정보로 증대되는, 타이핑된 섹션들, 타이핑된 워드 그룹들, 및 파일에서의 워드 레벨 정보에 속하는 정보를 포함한다. 어떤 실시예들에서, 디지털화 활동은 복수의 OCR 엔진들을 이용하고, 디지털화 활동은 복수의 OCR 엔진들을 위한 투표 시스템을 구현하는 것, 및 복수의 OCR 엔진들로부터의 최상의 조합된 결과를 출력하는 것을 포함한다.
1230에서, 파일은 RPA 작업흐름에서의 하나 이상의 분류기를 이용하여 하나 이상의 문서 유형으로 분류되고, 자동적 분류 정보가 출력된다. 이 정보는 일부 실시예들에서 분류 데이터 구조 내에 저장될 수 있다. 일부 실시예들에서, 하나 이상의 분류기는 레이아웃-기반 분류, 감정-기반 분류, 특징-기반 분류, 자연어 처리(NLP)-기반 분류, 기계 학습(ML)-기반 분류, 심층 학습-기반 분류, 이미지-기반 분류, 키워드-기반 분류, 컬러-기반 분류, 그 임의의 조합, 또는 임의의 다른 문서 분류 방법을 수행하도록 구성된다. 어떤 실시예들에서, 분류는 하나 이상의 분류기 각각을 위한 최소 신뢰도 임계치들에 기초한 수락 기준들을 이용하는 것을 포함한다. 일부 실시예들에서, 분류는 하나 이상의 분류기를 위한 개개의 분류기의 마스터 분류체계 및 내부 분류체계를 맵핑하는 것을 포함한다. 어떤 실시예들에서, 분류는 RPA 작업흐름에서의 분류기 순서에 기초하여 각각의 분류기로부터의 결과들을 우선순위화하는 것, 문서 유형에 기초하여 분류에서의 이용을 위한 하나 이상의 분류기 중의 분류기들을 선택하는 것, 최소 신뢰도 필드를 하나 이상의 분류기 중의 적어도 하나에 배정하는 것, 또는 이들의 임의의 조합을 포함한다.
1240에서, 분류를 위한 파일들을 검토, 정정, 및/또는 수동으로 프로세싱하기 위한 인터페이스를 제공하는 분류 유효성확인 모듈이 실행되고, 자동적 분류 정보가 출력된다. 하나 이상의 분류기를 위한 피드백 루프의 완료를 용이하게 하는 분류기 훈련 모듈이 1250에서 실행된다. 그 다음으로, 1260에서, 데이터가 RPA 작업흐름에서의 하나 이상의 추출기를 이용하여 분류된 문서로부터 추출되고, 자동적으로 추출된 데이터가 출력된다. 이 추출된 데이터는 일부 실시예들에서 추출 데이터 구조 내에 저장될 수 있다. 일부 실시예들에서, 추출은 RPA 작업흐름에서의 추출기 순서에 기초하여 각각의 추출기로부터의 결과들을 우선순위화하는 것, 문서 유형에 기초하여 추출에서의 이용을 위한 하나 이상의 추출기 중의 추출기들을 선택하는 것, 최소 신뢰도 필드를 하나 이상의 추출기 중의 적어도 하나의 추출기에 배정하는 것, 또는 이들의 임의의 조합을 포함한다.
1270에서, 데이터 추출로부터의 데이터 포인트들을 정정 및/또는 수동으로 프로세싱하기 위한 인터페이스를 제공하는 데이터 추출 유효성확인 모듈이 실행되고, 확인된 추출된 데이터가 출력된다. 하나 이상의 추출기를 위한 피드백 루프의 완료를 용이하게 하는 추출기 훈련 모듈이 1280에서 실행된다. 분류 결과들 및 추출된 정보를 포함하는 프로세싱 데이터가 그 다음으로 1290에서 익스포트(export)된다. 일단 분류체계가 정의되면, 단계들(1220 내지 1290) 중의 하나 이상은 이용 케이스의 필요성들에 기초하여 일부 실시예들에서 옵션적일 수 있다는 것이 주목되어야 한다.
프로세스(1200)가 완료된 후에, 유효성확인된 정보는 다른 시스템들에서의 사용을 위하여 지금 이용가능하다. 예를 들어, 정보는 데이터베이스 또는 Excel® 파일로 삽입될 수 있고, 특정 값들을 갖는 통지가 이메일(email)을 통해 전송될 수 있는 등과 같다. 비제한적인 예로서, 도 12의 프로세스(1200)는 PDF 파일로 시작될 수 있고, 파일이 청구서이고, 그 청구서에 기록된 총량이 $42이고, 벤더가 "XYZ 서점"이고, 구입 일자가 2019년 7월 23일었다는 지식으로 종료된다. 이 값들은 예를 들어, 과금 시스템으로 프로그램 방식으로 삽입되기 위하여 지금 이용가능하다.
도 12에서 수행된 프로세스 단계들은 프로세서(들)가 본 발명의 실시예들에 따라 도 12에서 설명된 프로세스의 적어도 일부를 수행하기 위한 명령어들을 인코딩하는 컴퓨터 프로그램에 의해 수행될 수 있다. 컴퓨터 프로그램은 컴퓨터-판독가능 비-일시적 매체 상에서 구체화될 수 있다. 컴퓨터-판독가능 매체는 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프, 및/또는 데이터를 저장하기 위하여 이용된 임의의 다른 이러한 매체 또는 매체들의 조합일 수 있지만, 이것으로 제한되지는 않는다. 컴퓨터 프로그램은 컴퓨터-판독가능 매체 상에서 또한 저장될 수 있는, 도 12에서 설명된 프로세스 단계들의 전부 또는 일부를 구현하기 위하여 컴퓨팅 시스템의 프로세서(들)(예컨대, 도 5의 컴퓨팅 시스템(500)의 프로세서(들)(510))를 제어하기 위한 인코딩된 명령어들을 포함할 수 있다.
컴퓨터 프로그램은 하드웨어, 소프트웨어, 또는 하이브리드 구현예로 구현될 수 있다. 컴퓨터 프로그램은, 서로 통신 동작하고 있고, 정보 또는 명령어들을 디스플레이로 전달하도록 설계되는 모듈들로 구성될 수 있다. 컴퓨터 프로그램은 범용 컴퓨터, ASIC, 또는 임의의 다른 적당한 디바이스 상에서 동작하도록 구성될 수 있다.
본 발명의 다양한 실시예들의 컴포넌트들은 본원에서의 도면들에서 일반적으로 설명되고 예시된 바와 같이, 폭넓게 다양한 상이한 구성들로 배열 및 설계될 수 있다는 것이 용이하게 이해될 것이다. 이에 따라, 본 발명의 실시예들의 상세한 설명은 첨부된 도면들에서 표현된 바와 같이, 청구된 바와 같은 발명의 범위를 제한하도록 의도된 것이 아니라, 발명의 선택된 실시예들을 단지 대표한다.
이 명세서의 전반에 걸쳐 설명된 발명의 특징들, 구조들, 또는 특성들은 하나 이상의 실시예들에서 임의의 적당한 방식으로 조합될 수 있다. 예를 들어, "어떤 실시예들", "일부 실시예들", 또는 유사한 언어에 대한 이 명세서의 전반에 걸친 참조는 실시예와 관련하여 설명된 특정한 특징, 구조, 또는 특성이 본 발명의 적어도 하나의 실시예 내에 포함된다는 것을 의미한다. 이에 따라, 이 명세서의 전반에 걸친 어구들 "어떤 실시예들에서", "일부 실시예에서", "다른 실시예들에서", 또는 유사한 언어의 출현들은 실시예들의 동일한 그룹을 반드시 모두 지칭하는 것은 아니고, 설명된 특징들, 구조들, 또는 특성들은 하나 이상의 실시예들에서 임의의 적당한 방식으로 조합될 수 있다.
특징들, 장점들, 또는 유사한 언어에 대한 이 명세서의 전반에 걸친 참조는 본 발명으로 실현될 수 있는 특징들 및 장점들의 전부가 발명의 임의의 단일 실시예 내에 있어야 하거나 있다는 것을 암시하지는 않는다는 것이 주목되어야 한다. 오히려, 특징들 및 장점들을 지칭하는 언어는 실시예와 관련하여 설명된 특정 특징, 장점, 또는 특성이 본 발명의 적어도 하나의 실시예 내에 포함된다는 것을 의미하도록 이해된다. 이에 따라, 이 명세서의 전반에 걸친 특징들 및 장점들, 및 유사한 언어의 논의는 동일한 실시예를 지칭할 수 있지만, 반드시 그러한 것은 아니다.
또한, 발명의 설명된 특징들, 장점들, 및 특성들은 하나 이상의 실시예들에서 임의의 적당한 방식으로 조합될 수 있다. 관련 기술분야의 당업자는 발명이 특정한 실시예의 특정 특징들 또는 장점들 중의 하나 이상 없이 실시될 수 있다는 것을 인식할 것이다. 다른 사례들에서, 추가적인 특징들 및 장점들은 발명의 모든 실시예들에서 존재하지 않을 수 있는 어떤 실시예들에서 인식될 수 있다.
당해 분야의 당업자는 위에서 논의된 바와 같은 발명이 상이한 순서인 단계들로, 및/또는 개시되는 것들과 상이한 구성들인 하드웨어 엘리먼트들로 실시될 수 있다는 것을 용이하게 이해할 것이다. 그러므로, 발명은 이 바람직한 실시예들에 기초하여 설명되었지만, 발명의 사상 및 범위 내에서 유지되면서, 어떤 수정들, 변동들, 및 대안적인 구성들이 분명할 것이라는 것이 당해 분야의 당업자들에게 분명할 것이다. 그러므로, 발명의 한계들 및 경계들을 결정하기 위하여, 첨부된 청구항들에 대해 참조가 행해져야 한다.

Claims (31)

  1. 컴퓨터 프로그램을 저장한 컴퓨터-판독가능 비-일시적 매체에 있어서,
    상기 프로그램은, 적어도 하나의 프로세서로 하여금,
    복수의 활동들을 포함하는 로봇 프로세스 자동화(robotic process automation; RPA) 작업흐름에서의 하나 이상의 분류기를 사용하여 파일을 하나 이상의 문서 유형으로 자동적으로 분류하게 하고 - 상기 복수의 활동들 중 하나 이상은 상기 하나 이상의 분류기를 포함하고, 상기 자동적인 분류는, 하나 이상의 알고리즘을 이용하여 상기 파일을 위한 문서 유형 및 페이지들의 범위를 각각의 분류 결과에 배정(assign)하는 것을 포함함 - ;
    상기 자동적 분류의 결과들을 분류 데이터 구조 내에 저장하게 하고;
    상기 RPA 작업흐름에서의 하나 이상의 추출기 - 상기 복수의 활동들 중 하나 이상은 상기 하나 이상의 추출기를 포함함 - 를 사용하여 상기 분류된 파일로부터 데이터를 자동적으로 추출하게 하고;
    상기 자동적으로 추출된 데이터를 추출 데이터 구조 내에 저장하게 하고;
    상기 자동적으로 추출된 데이터를 출력하게 하도록
    구성되는 것인, 컴퓨터-판독가능 비-일시적 매체.
  2. 제 1 항에 있어서,
    상기 자동적 분류는 상기 하나 이상의 분류기 각각을 위한 최소 신뢰도 임계치들에 기초한 수락 기준들을 사용하는 것을 포함하는 것인, 컴퓨터-판독가능 비-일시적 매체.
  3. 제 1 항에 있어서,
    상기 자동적 분류는 상기 하나 이상의 분류기의 각각의 분류기의 마스터 분류체계 및 내부 분류체계를 맵핑하는 것을 포함하는 것인, 컴퓨터-판독가능 비-일시적 매체.
  4. 제 1 항에 있어서,
    상기 프로그램은 또한, 상기 적어도 하나의 프로세서로 하여금,
    상기 RPA 작업흐름에서의 분류기 순서에 기초하여 각각의 분류기로부터의 결과들을 우선순위화하게 하거나, 상기 문서 유형에 기초하여 상기 자동적 분류에서의 사용을 위한 상기 하나 이상의 분류기 중의 분류기들을 선택하게 하거나, 최소 신뢰도 임계치를 상기 하나 이상의 분류기 중의 적어도 하나의 분류기에 배정하게 하거나, 또는 이들의 임의의 조합을 행하게 하도록 구성되는 것인, 컴퓨터-판독가능 비-일시적 매체.
  5. 제 1 항에 있어서,
    상기 프로그램은 또한, 상기 적어도 하나의 프로세서로 하여금,
    상기 자동적 분류를 위한 파일들의 검토, 정정, 및 수동 프로세싱 중 적어도 하나를 수행하기 위한 인터페이스를 제공하는 분류 유효성확인 모듈을 실행하게 하도록 구성되는 것인, 컴퓨터-판독가능 비-일시적 매체.
  6. 제 1 항에 있어서,
    상기 하나 이상의 추출기는 템플릿-기반 추출, 레이아웃-기반 추출, 키워드-기반 추출, 규칙적 표현-기반 추출, 컨텍스트-기반 추출, 라벨/앵커-기반 추출, 패턴-기반 추출, 자연어 처리-기반 추출, 기계 학습 추출, 심층 학습 추출, 메타데이터-기반 추출, 또는 이들의 임의의 조합을 수행하도록 구성되는 것인, 컴퓨터-판독가능 비-일시적 매체.
  7. 제 1 항에 있어서,
    상기 자동적 데이터 추출은 상기 하나 이상의 추출기 각각을 위한 최소 신뢰도 임계치들에 기초한 수락 기준들을 사용하는 것을 포함하는 것인, 컴퓨터-판독가능 비-일시적 매체.
  8. 제 1 항에 있어서,
    상기 자동적 데이터 추출은 상기 하나 이상의 추출기의 각각의 추출기의 마스터 분류체계 및 내부 분류체계를 맵핑하는 것을 포함하는 것인, 컴퓨터-판독가능 비-일시적 매체.
  9. 제 1 항에 있어서,
    상기 프로그램은 또한, 상기 적어도 하나의 프로세서로 하여금,
    상기 RPA 작업흐름에서의 추출기 순서에 기초하여 각각의 추출기로부터의 결과들을 우선순위화하게 하거나, 상기 문서 유형에 기초하여 상기 자동적 추출에서의 사용을 위한 상기 하나 이상의 추출기 중의 추출기들을 선택하게 하거나, 최소 신뢰도 임계치를 상기 하나 이상의 추출기 중의 적어도 하나의 추출기에 배정하게 하거나, 또는 이들의 임의의 조합을 행하게 하도록 구성되는 것인, 컴퓨터-판독가능 비-일시적 매체.
  10. 제 1 항에 있어서,
    상기 프로그램은 또한, 상기 적어도 하나의 프로세서로 하여금,
    상기 자동적 추출로부터의 데이터 포인트들의 정정 및 수동 프로세싱 중 적어도 하나를 수행하기 위한 인터페이스를 제공하는 데이터 추출 유효성확인 모듈을 실행하게 하도록 구성되는 것인, 컴퓨터-판독가능 비-일시적 매체.
  11. 제 1 항에 있어서,
    상기 프로그램은 또한, 상기 적어도 하나의 프로세서로 하여금,
    상기 하나 이상의 추출기를 위한 피드백 루프의 완료를 용이하게 하는 추출기 훈련 모듈을 실행하게 하도록 구성되는 것인, 컴퓨터-판독가능 비-일시적 매체.
  12. 제 1 항에 있어서,
    상기 프로그램은, 상기 적어도 하나의 프로세서로 하여금,
    상기 하나 이상의 분류기를 위한 피드백 루프의 완료를 용이하게 하는 분류기 훈련 모듈을 실행하게 하도록 구성되는 것인, 컴퓨터-판독가능 비-일시적 매체.
  13. 제 1 항에 있어서,
    상기 프로그램은 또한, 적어도 하나의 프로세서로 하여금,
    상기 문서 유형들 각각에 대한 연관된 필드들과 함께, 상기 자동적 분류 및 자동적 데이터 추출을 위하여 표적화된 문서 유형들의 리스트의 정의를 용이하게 하는 인터페이스를 제공하는 분류체계 관리자를 실행하게 하고;
    상기 분류체계 관리자를 통해 상기 정의된 문서 유형들의 리스트 및 상기 정의된 문서 유형들 각각에 대한 상기 연관된 필드들을 수신하게 하고;
    상기 문서 유형들의 리스트 및 상기 연관된 필드들을 마스터 분류체계 데이터 구조 내에 저장하게 하도록
    구성되는 것인, 컴퓨터-판독가능 비-일시적 매체.
  14. 제 1 항에 있어서,
    상기 프로그램은 또한, 상기 적어도 하나의 프로세서로 하여금,
    상기 RPA 작업흐름에서의 디지털화 활동을 실행하게 하고;
    DOM 데이터 구조 내에 저장된 문서 오브젝트 모델(Document Object Model; DOM) 및 파일의 텍스트 버전을 출력하게 하도록
    구성되는 것인, 컴퓨터-판독가능 비-일시적 매체.
  15. 제 14 항에 있어서,
    상기 디지털화 활동은, 복수의 광학적 문자 인식(optical character recognition; OCR) 엔진들을 사용하고, 상기 디지털화 활동은,
    상기 복수의 OCR 엔진들을 위한 투표 시스템(voting system)을 구현하는 것; 및
    상기 복수의 OCR 엔진들로부터의 최상의 조합된 결과를 출력하는 것
    을 더 포함하는 것인, 컴퓨터-판독가능 비-일시적 매체.
  16. 컴퓨터-구현 방법에 있어서,
    컴퓨팅 시스템에 의해, 분류체계 관리자로부터 정의된 문서 유형들의 리스트 및 상기 정의된 문서 유형들 각각에 대한 연관된 필드들을 수신하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 문서 유형들의 리스트 및 상기 연관된 필드들을 마스터 분류체계 데이터 구조 내에 저장하는 단계;
    상기 컴퓨팅 시스템에 의해, 복수의 활동들을 포함하는 로봇 프로세스 자동화(RPA) 작업흐름에서의 하나 이상의 분류기를 사용하여 파일을 하나 이상의 문서 유형으로 자동적으로 분류하는 단계 - 상기 복수의 활동들 중 하나 이상은 상기 하나 이상의 분류기를 포함하고, 상기 자동적인 분류는, 상기 정의된 문서 유형들의 리스트 및 하나 이상의 분류 알고리즘을 이용하여 상기 파일을 위한 문서 유형 및 페이지들의 범위를 각각의 분류 결과에 배정하는 것을 포함함 - ;
    상기 컴퓨팅 시스템에 의해, 상기 자동적 분류의 결과들을 분류 데이터 구조 내에 저장하는 단계; 및
    상기 컴퓨팅 시스템에 의해, 상기 자동적 분류의 상기 결과들을 출력하는 단계
    를 포함하는, 컴퓨터-구현 방법.
  17. 제 16 항에 있어서,
    상기 컴퓨팅 시스템에 의해, 상기 RPA 작업흐름에서의 디지털화 활동을 실행하는 단계; 및
    상기 컴퓨팅 시스템에 의해, DOM 데이터 구조 내에 저장된 문서 오브젝트 모델(DOM) 및 파일의 텍스트 버전을 출력하는 단계
    를 더 포함하고,
    상기 DOM은 회전, 스큐, 상대적 폭 및 높이 정보, 또는 이들의 임의의 조합으로 증대되는, 타이핑된 섹션들, 타이핑된 워드 그룹들, 및 상기 파일에서의 워드 레벨 정보에 속하는 정보를 포함하는 것인, 컴퓨터-구현 방법.
  18. 제 16 항에 있어서,
    상기 컴퓨팅 시스템에 의해, 상기 하나 이상의 분류기를 위한 피드백 루프의 완료를 용이하게 하는 분류기 훈련 모듈을 실행하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 자동적 분류를 위한 파일들의 검토, 정정, 및 수동 프로세싱 중 적어도 하나를 수행하기 위한 인터페이스를 제공하는 분류 유효성확인 모듈을 실행하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 RPA 작업흐름에서의 하나 이상의 추출기를 사용하여 상기 분류된 문서로부터 데이터를 자동적으로 추출하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 자동적으로 추출된 데이터를 추출 데이터 구조 내에 저장하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 하나 이상의 추출기를 위한 피드백 루프의 완료를 용이하게 하는 추출기 훈련 모듈을 실행하는 단계; 및
    상기 컴퓨팅 시스템에 의해, 상기 자동적 추출로부터의 데이터 포인트들의 정정 및 수동 프로세싱 중 적어도 하나를 수행하기 위한 인터페이스를 제공하는 데이터 추출 유효성확인 모듈을 실행하는 단계
    를 더 포함하는, 컴퓨터-구현 방법.
  19. 시스템에 있어서,
    컴퓨터 프로그램 명령어들을 저장하는 메모리; 및
    상기 컴퓨터 프로그램 명령어들을 실행하도록 구성된 적어도 하나의 프로세서
    를 포함하고, 상기 명령어들은, 상기 적어도 하나의 프로세서로 하여금,
    분류체계 관리자로부터 정의된 문서 유형들의 리스트 및 상기 정의된 문서 유형들 각각에 대한 연관된 필드들을 수신하게 하고;
    복수의 활동들을 포함하는 로봇 프로세스 자동화(RPA) 작업흐름에서의 디지털화 활동을 실행하게 하고;
    파일의 텍스트 버전 및 문서 오브젝트 모델(DOM)을 출력하게 하고;
    상기 RPA 작업흐름에서의 하나 이상의 분류기를 사용하여 상기 파일을 하나 이상의 문서 유형으로 자동적으로 분류하게 하고 - 상기 복수의 활동들 중 하나 이상은 상기 하나 이상의 분류기를 포함하고, 상기 자동적인 분류는, 상기 정의된 문서 유형들의 리스트 및 하나 이상의 분류 알고리즘을 이용하여 상기 파일을 위한 문서 유형 및 페이지들의 범위를 각각의 분류 결과에 배정하는 것을 포함함 - ;
    상기 RPA 작업흐름에서의 하나 이상의 추출기 - 상기 복수의 활동들 중 하나 이상은 상기 하나 이상의 추출기를 포함함 - 를 사용하여 상기 분류된 문서로부터 데이터를 자동적으로 추출하게 하고;
    상기 자동적으로 추출된 데이터를 출력하게 하도록
    구성되는 것인, 시스템.
  20. 제 19 항에 있어서,
    상기 자동적 분류는 상기 RPA 작업흐름에서의 분류기 순서에 기초하여 각각의 분류기로부터의 결과들을 우선순위화하는 것, 상기 문서 유형에 기초하여 상기 자동적 분류에서의 사용을 위한 상기 하나 이상의 분류기 중의 분류기들을 선택하는 것, 최소 신뢰도 임계치를 상기 하나 이상의 분류기 중의 적어도 하나의 분류기에 배정하는 것, 또는 이들의 임의의 조합을 더 포함하고,
    상기 자동적 추출은 상기 RPA 작업흐름에서의 추출기 순서에 기초하여 각각의 추출기로부터의 결과들을 우선순위화하는 것, 상기 문서 유형에 기초하여 상기 자동적 추출에서의 사용을 위한 상기 하나 이상의 추출기 중의 추출기들을 선택하는 것, 최소 신뢰도 임계치를 상기 하나 이상의 추출기 중의 적어도 하나의 추출기에 배정하는 것, 또는 이들의 임의의 조합을 더 포함하는 것인, 시스템.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
KR1020207028245A 2019-09-30 2020-08-28 로봇 프로세스 자동화를 위한 문서 프로세싱 프레임워크 KR102478331B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/587,386 2019-09-30
US16/587,386 US20210097274A1 (en) 2019-09-30 2019-09-30 Document processing framework for robotic process automation
PCT/US2020/048389 WO2021066972A1 (en) 2019-09-30 2020-08-28 Document processing framework for robotic process automation

Publications (2)

Publication Number Publication Date
KR20210040826A KR20210040826A (ko) 2021-04-14
KR102478331B1 true KR102478331B1 (ko) 2022-12-15

Family

ID=75161831

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207028245A KR102478331B1 (ko) 2019-09-30 2020-08-28 로봇 프로세스 자동화를 위한 문서 프로세싱 프레임워크

Country Status (5)

Country Link
US (1) US20210097274A1 (ko)
KR (1) KR102478331B1 (ko)
CN (1) CN112771514A (ko)
TW (1) TW202115601A (ko)
WO (1) WO2021066972A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12017362B2 (en) * 2019-10-31 2024-06-25 Automation Anywhere, Inc. Productivity plugin for integration with robotic process automation
US11288064B1 (en) * 2020-09-14 2022-03-29 Sap Se Robotic process automation for interactive documentation
CN113157729A (zh) * 2021-04-23 2021-07-23 中国工商银行股份有限公司 批量邮件自动处理方法和装置
TWI815140B (zh) * 2021-07-05 2023-09-11 廣達電腦股份有限公司 流程操作系統及流程操作方法
TWI789907B (zh) * 2021-09-14 2023-01-11 神雲科技股份有限公司 自動分派除錯人員的方法
US20230107316A1 (en) 2021-10-05 2023-04-06 UiPath, Inc. Automatic data transfer between a source and a target using semantic artificial intelligence for robotic process automation
US11961317B2 (en) * 2021-11-24 2024-04-16 Oracle Financial Services Software Limited Extracting textual information from image documents
KR102643073B1 (ko) 2021-12-23 2024-03-05 주식회사 제인소프트 지능형 업무 처리 자동화 시스템 및 그 구동방법
CN114416049B (zh) * 2021-12-23 2023-03-14 北京来也网络科技有限公司 结合rpa和ai的服务接口的配置方法及装置
CN114492399A (zh) * 2021-12-29 2022-05-13 国网天津市电力公司 一种基于正则表达式的合同信息提取系统及方法
TWI826155B (zh) * 2022-11-30 2023-12-11 元赫數位雲股份有限公司 識別隨機多合一帳務憑證影像以自動獲取多組帳務關聯資訊之帳務管理系統
CN115934077A (zh) * 2023-03-10 2023-04-07 北京安锐卓越信息技术股份有限公司 一种面向UiPath的数据处理方法、装置及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170132313A1 (en) * 2015-11-06 2017-05-11 RedShred LLC Automatically assessing structured data for decision making

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020129006A1 (en) * 2001-02-16 2002-09-12 David Emmett System and method for modifying a document format
US8540158B2 (en) * 2007-12-12 2013-09-24 Yiwu Lei Document verification using dynamic document identification framework
US9672293B2 (en) * 2009-01-12 2017-06-06 Namesforlife, Llc Systems and methods for automatically identifying and linking names in digital resources
KR101389977B1 (ko) * 2012-02-28 2014-05-07 주식회사 팬택 다중 운영체제를 지원하는 클라이언트 단말 및 다중 운영체제 지원방법
US10489502B2 (en) * 2017-06-30 2019-11-26 Accenture Global Solutions Limited Document processing
US10402641B1 (en) * 2019-03-19 2019-09-03 Capital One Services, Llc Platform for document classification

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170132313A1 (en) * 2015-11-06 2017-05-11 RedShred LLC Automatically assessing structured data for decision making

Also Published As

Publication number Publication date
US20210097274A1 (en) 2021-04-01
CN112771514A (zh) 2021-05-07
WO2021066972A1 (en) 2021-04-08
TW202115601A (zh) 2021-04-16
KR20210040826A (ko) 2021-04-14

Similar Documents

Publication Publication Date Title
KR102478331B1 (ko) 로봇 프로세스 자동화를 위한 문서 프로세싱 프레임워크
US11648686B2 (en) Artificial intelligence-based process identification, extraction, and automation for robotic process automation
US20210109503A1 (en) Human-in-the-loop robot training for robotic process automation
KR102453990B1 (ko) 인공 지능(ai)을 사용한 미디어 대 워크플로우 생성
EP3798956A1 (en) Document processing framework for robotic process automation
KR20220079801A (ko) 머신 러닝 모델을 호스팅, 모니터링, 및 리트레이닝하기 위한 로보틱 프로세스 오토메이션 아키텍처 및 프로세스
US20220207268A1 (en) Form extractor
US11410316B1 (en) System and computer-implemented method for validation of label data
EP3809347A1 (en) Media-to-workflow generation using artificial intelligence (ai)
KR20220079830A (ko) 로봇 프로세스 자동화 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인
US11797770B2 (en) Self-improving document classification and splitting for document processing in robotic process automation
US20220100964A1 (en) Deep learning based document splitter
KR102447072B1 (ko) 둘 이상의 그래픽 요소 검출 기법들로부터의 사용자 인터페이스 디스크립터 속성들의 조합을 사용한 그래픽 요소 검출
US20240046142A1 (en) Intent-based automation
EP4398142A1 (en) Artificial intelligence-driven, semantic, automatic data transfer between a source and a target using task mining
US20240220581A1 (en) Artificial intelligence-driven, semantic, automatic data transfer between a source and a target using task mining
CN118295825A (en) Artificial intelligence driven, semantic, automated data transfer between source and target using task mining
CN116909763A (zh) 部署机器人流程自动化的系统、装置和方法

Legal Events

Date Code Title Description
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant