IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ユーアイパス,インコーポレイテッドの特許一覧

特表2022-549974ロボティックプロセスオートメーションのための文書処理フレームワーク
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-30
(54)【発明の名称】ロボティックプロセスオートメーションのための文書処理フレームワーク
(51)【国際特許分類】
   G06F 16/35 20190101AFI20221122BHJP
   G06Q 10/10 20120101ALI20221122BHJP
   G06F 40/279 20200101ALI20221122BHJP
【FI】
G06F16/35
G06Q10/10
G06F40/279
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2020552804
(86)(22)【出願日】2020-08-28
(85)【翻訳文提出日】2020-11-13
(86)【国際出願番号】 US2020048389
(87)【国際公開番号】W WO2021066972
(87)【国際公開日】2021-04-08
(31)【優先権主張番号】16/587,386
(32)【優先日】2019-09-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ZIGBEE
2.BLUETOOTH
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】452 5th Avenue, 22nd Floor, New York,NY 10018,United States of America
(74)【代理人】
【識別番号】100180781
【弁理士】
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【弁理士】
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】イオアナ グリガン
(72)【発明者】
【氏名】ポール パラオ
【テーマコード(参考)】
5B091
5B175
5L049
【Fターム(参考)】
5B091EA01
5B175DA01
5B175FA03
5L049AA20
(57)【要約】
ロボティックプロセスオートメーション(RPA)のための文書処理フレームワーク(DPF)を提供する。DPFは、同じプラットフォーム上で異なるベンダー製品をプラグアンドプレイで使用することができ、ユーザーは文書処理と文書理解ワークフローのための基本的なスキーマを設定し得る。DPFは、ユーザーが、タクソノミを定義すること、ファイルをデジタル化すること、ファイルを1または複数の文書タイプに分類すること、分類を検証すること、データを抽出すること、抽出されたデータを確認すること、分類子を訓練すること、および/または抽出子を訓練することを可能にし得る。ソフトウェア開発者がDPFを管理し、独自の分類子および抽出子のコンポーネントを構築するためにソフトウェア開発者が使用するパブリックパッケージが提供され得る。
【選択図】図1

【特許請求の範囲】
【請求項1】
非一時的なコンピュータ読み取り可能な媒体上に具現化されたコンピュータプログラムであって、前記プログラムは、少なくとも1つのプロセッサが、
ロボティックプロセスオートメーション(RPA)ワークフローにおいて、1または複数の分類子を使用して、ファイルを1または複数の文書タイプに自動的に分類し、
前記自動分類の結果を分類データ構造体に格納し、
前記RPAワークフロー内の1または複数の抽出子を使用して、前記分類されたファイルからデータを自動的に抽出し、
前記自動的に抽出されたデータを抽出データ構造体に格納し、
前記自動的に抽出されたデータを出力する、ように構成される、コンピュータプログラム。
【請求項2】
前記1または複数の分類子は、レイアウトベースの分類、感情ベースの分類、特徴ベースの分類、自然言語処理(NLP)ベースの分類、機械学習(ML)ベースの分類、深層学習ベースの分類、画像ベースの分類、キーワードベースの分類、カラーベースの分類、またはそれらのいずれかの組み合わせを実行するように構成される、請求項1に記載のコンピュータプログラム。
【請求項3】
前記自動分類は、前記1または複数の分類子のそれぞれについての最小信頼度しきい値に基づいた受入れ基準を使用することを含む、請求項1に記載のコンピュータプログラム。
【請求項4】
前記自動分類は、マスタータクソノミおよび内部タクソノミを、前記1または複数の分類子のそれぞれの分類子にマッピングすることを含む、請求項1に記載のコンピュータプログラム。
【請求項5】
前記プログラムはさらに、前記少なくとも1つのプロセッサが、
前記RPAワークフローにおける分類子の順序に基づいて各分類子からの結果に優先順位を付け、前記文書のタイプに基づいて前記自動分類で使用するための前記1または複数の分類子を選択し、前記1または複数の分類子の少なくとも1つに最小信頼度しきい値を割り当てる、またはそれらのいずれかの組み合わせを行うように、構成される、請求項1に記載のコンピュータプログラム。
【請求項6】
前記プログラムはさらに、前記少なくとも1つのプロセッサが、
前記自動分類のためのファイルをレビュー、修正、および/または手動で処理するためのインターフェースを提供する分類確認モジュールを実行するように、構成される、請求項1に記載のコンピュータプログラム。
【請求項7】
前記1または複数の抽出子は、テンプレートベースの抽出、レイアウトベースの抽出、キーワードベースの抽出、正規表現ベースの抽出、コンテキストベースの抽出、ラベル/アンカーベースの抽出、パターンベースの抽出、自然言語処理ベースの抽出、機械学習抽出、深層学習抽出、メタデータベースの抽出、またはそれらのいずれかの組み合わせを実行するように、構成される、請求項1に記載のコンピュータプログラム。
【請求項8】
前記自動データ抽出は、前記1または複数の抽出子のそれぞれについての最小信頼度しきい値に基づいた受入れ基準を使用することを含む、請求項1に記載のコンピュータプログラム。
【請求項9】
前記自動データ抽出は、前記1または複数の抽出子のそれぞれの抽出子の前記マスタータクソノミおよび内部タクソノミをマッピングすることを含む、請求項1に記載のコンピュータプログラム。
【請求項10】
前記プログラムはさらに、前記少なくとも1つのプロセッサが、
前記RPAワークフローにおける抽出子の順序に基づいて各抽出子からの結果に優先順位を付け、前記文書のタイプに基づいて前記自動抽出で使用するための前記1または複数の抽出子のうちの抽出子を選択し、前記1または複数の抽出子の少なくとも1つに最小信頼度しきい値を割り当てる、またはそれらのいずれかの組み合わせを行うように、構成される、請求項1に記載のコンピュータプログラム。
【請求項11】
前記プログラムはさらに、前記少なくとも1つのプロセッサが、
前記自動抽出からのデータポイントを修正および/または手動で処理するためのインターフェースを提供するデータ抽出確認モジュールを実行するように、構成される、請求項1に記載のコンピュータプログラム。
【請求項12】
前記プログラムはさらに、前記少なくとも1つのプロセッサが、
前記1または複数の抽出子のフィードバックループの完了を促進する抽出子訓練モジュールを実行するように、構成される、請求項1に記載のコンピュータプログラム。
【請求項13】
前記プログラムは、前記少なくとも1つのプロセッサが、
前記1または複数の分類子のフィードバックループの完了を促進する分類子訓練モジュールを実行するように、構成される、請求項1に記載のコンピュータプログラム。
【請求項14】
前記プログラムはさらに、少なくとも1つのプロセッサが、
前記自動分類および自動データ抽出の対象となる文書タイプのリストの定義を容易にするインターフェースを提供するタクソノミマネージャを、前記文書タイプごとに関連するフィールドとともに実行し、
前記タクソノミマネージャを介して、前記定義された文書タイプのリストと前記定義された文書タイプのそれぞれに関連するフィールドを受信し、
前記文書タイプのリストと前記関連するフィールドをマスタータクソノミのデータ構造体に格納するように、構成される、請求項1に記載のコンピュータプログラム。
【請求項15】
前記プログラムはさらに、前記少なくとも1つのプロセッサが、
ロボティックプロセスオートメーション(RPA)ワークフローでデジタル化活動を実行し、
ドキュメントオブジェクトモデル(DOM(Document Object Model))データ構造体に格納されたファイルのテキストバージョンおよびDOMを出力するように、構成された、請求項1に記載のコンピュータプログラム。
【請求項16】
前記DOMは、前記ファイル内における、回転、スキュー、相対的な幅および高さの情報、またはそれらのいずれかの組み合わせで増強されたタイプされたセクション、タイプされたワードグループ、およびワードレベル情報に関連する情報を含む、請求項15に記載のコンピュータプログラム。
【請求項17】
前記デジタル化アクティビティが複数の光学的文字認識(OCR)エンジンを使用しており、さらに
前記複数のOCRエンジンのための投票システムを実装し、
前記複数のOCRエンジンから最適な組み合わせの結果を出力することを含む、請求項15に記載のコンピュータプログラム。
【請求項18】
前記プログラムはさらに、前記少なくとも1つのプロセッサが、
他のシステムで使用するために、前記自動分類の結果と前記自動的に抽出されたデータとを書き出すように、構成される、請求項1に記載のコンピュータプログラム。
【請求項19】
タクソノミマネージャから、前記定義された文書タイプのリストと前記定義された文書タイプのそれぞれに関連するフィールドをコンピューティングシステムにより受信し、
前記コンピューティングシステムにより、前記文書タイプのリストと前記関連するフィールドをマスタータクソノミのデータ構造体に格納し、
ロボティックプロセスオートメーション(RPA)ワークフローにおいて、1または複数の分類子を使用して、前記コンピューティングシステムにより、前記ファイルを1または複数の文書タイプに自動的に分類し、
前記コンピューティングシステムにより、前記自動分類の結果を分類データ構造体に格納し、
前記コンピューティングシステムにより、前記自動分類の結果を出力することを含む、コンピュータ実装方法。
【請求項20】
前記コンピューティングシステムによって、前記RPAワークフロー内でデジタル化アクティビティを実行し、
前記コンピューティングシステムにより、ドキュメントオブジェクトモデル(DOM(Document Object Model))データ構造体に格納されたファイルのテキストバージョンおよびDOMを出力することをさらに含み、
前記DOMは、前記ファイル内における、回転、スキュー、相対的な幅および高さの情報、またはそれらのいずれかの組み合わせで増強されたタイプされたセクション、タイプされたワードグループ、およびワードレベル情報に関連する情報を含む、請求項19に記載のコンピュータ実装方法。
【請求項21】
前記コンピューティングシステムにより、前記1または複数の分類子のフィードバックループの完了を促進する分類子訓練モジュールを実行することをさらに含む、請求項19に記載のコンピュータ実装方法。
【請求項22】
前記コンピューティングシステムにより、前記自動分類のためのファイルをレビュー、修正、および/または手動で処理するためのインターフェースを提供する分類確認モジュールを実行することをさらに含む、請求項19に記載のコンピュータ実装方法。
【請求項23】
前記コンピューティングシステムにより、前記RPAワークフロー内の1または複数の抽出子を使用して、前記分類された文書からデータを自動的に抽出し、
前記コンピューティングシステムにより、前記自動的に抽出されたデータを抽出データ構造体に格納することをさらに含む、請求項19に記載のコンピュータ実装方法。
【請求項24】
前記コンピューティングシステムにより、前記1または複数の抽出子のフィードバックループの完了を促進する抽出子訓練モジュールを実行することをさらに含む、請求項23に記載のコンピュータ実装方法。
【請求項25】
前記コンピューティングシステムにより、前記自動抽出からのデータポイントを修正および/または手動で処理するためのインターフェースを提供するデータ抽出確認モジュールを実行することをさらに含む、請求項23に記載のコンピュータ実装方法。
【請求項26】
コンピュータプログラム命令を格納するメモリと、
前記コンピュータプログラム命令を実行するように構成された少なくとも1つのプロセッサとを含み、前記命令は、前記少なくとも1つのプロセッサが、
タクソノミマネージャから、前記定義された文書タイプのリストと前記定義された文書タイプのそれぞれに関連するフィールドを受信し、
ロボティックプロセスオートメーション(RPA)ワークフローでデジタル化アクティビティを実行し、ファイルのテキストバージョンとドキュメントオブジェクトモデル(DOM(Document Object Model))を出力し、
前記RPAワークフローにおいて、1または複数の分類子を使用して、前記ファイルを1または複数の文書タイプに自動的に分類し、
前記RPAワークフロー内の1または複数の抽出子を使用して、前記分類された文書からデータを自動的に抽出し、
前記自動的に抽出されたデータを出力する、ように構成される、システム。
【請求項27】
前記自動分類は、前記RPAワークフローにおける分類子の順序に基づいて各分類子からの結果に優先順位を付け、前記文書のタイプに基づいて前記自動分類で使用するための前記1または複数の分類子のうちの分類子を選択し、前記1または複数の分類子の少なくとも1つに最小信頼度しきい値を割り当てる、またはそれらのいずれかの組み合わせを行うことをさらに含み、
前記自動抽出は、前記RPAワークフローにおける抽出子の順序に基づいて各抽出子からの結果に優先順位を付け、前記文書のタイプに基づいて前記自動抽出で使用するための前記1または複数の抽出子のうちの抽出子を選択し、前記1または複数の抽出子の少なくとも1つに最小信頼度しきい値を割り当てる、またはそれらのいずれかの組み合わせを行うことをさらに含む、請求項26に記載のシステム。
【請求項28】
前記命令はさらに、前記少なくとも1つのプロセッサが、
前記1または複数の抽出子のフィードバックループの完了を促進する抽出子訓練モジュールを実行するように、構成される、請求項26に記載のシステム。
【請求項29】
前記命令はさらに、前記少なくとも1つのプロセッサが、
前記自動分類のためのファイルをレビュー、修正、および/または手動で処理するためのインターフェースを提供する分類確認モジュールを実行するように、構成される、請求項26に記載のシステム。
【請求項30】
前記命令はさらに、前記少なくとも1つのプロセッサが、
前記1または複数の抽出子のフィードバックループの完了を促進する抽出子訓練モジュールを実行するように、構成される、請求項26に記載のシステム。
【請求項31】
前記命令はさらに、前記少なくとも1つのプロセッサが、
前記自動抽出からのデータポイントを修正および/または手動で処理するためのインターフェースを提供するデータ抽出確認モジュールを実行するように、構成される、請求項26に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願への相互参照)
本出願は、2019年9月30日に出願された米国非仮特許出願第16/587,386号の利益を主張する。先に提出された本出願の主題は、その全体を参照することにより、本明細書に組み込まれる。
【0002】
本発明は、一般に、ロボティックプロセスオートメーション(RPA)に関し、より具体的には、RPAのための文書処理フレームワーク(DPF)に関する。
【背景技術】
【0003】
市販の電子文書処理ツールのほとんどは、単一のプラットフォーム上で文書処理を行う。また、文書処理分野のほとんどのベンダーは、サードパーティ製の製品とコンポーネントを交換できないブラックボックスソリューションを提供する。この制限のため、複数のベンダーを使用したいお客は、2つ以上の並列統合を設定し、2つ以上の異なるツールを使用するための従業員の訓練を行い、これらの業務を実行するためのそれぞれのユーザーインターフェースを用意する必要がある。この問題は、文書処理のための複数の技術を統合することを目的としたソリューションに存在し、必ずしもRPA固有のものではない。確かに、ベンダーごとに別途ワークフローが必要になる。
【0004】
さらに、独自のカスタム文書処理アルゴリズムを使用したいユーザーは、エンドツーエンドのプロセスでそれらを統合して使用できるようにするために、インフラストラクチャ全体を自分で構築する必要がある。そのような文書処理アルゴリズムには、複数のOCRベンダーを使用したデジタル化の処理、異なるソリューション間でのタクソノミマッピングの処理、異なるベンダーの文書処理アルゴリズムの統合および構成、統一されたデータフォーマットの下での複数のベンダーからの結果の統合などが含まれるが、これらに限定されるものではない。以上のことを考えると、改善された文書処理フレームワークソリューションが有益であり得る。
【発明の概要】
【0005】
本発明の特定の実施形態は、現在のコンピュータベースの文書処理技術によってまだ十分に特定されていない、評価されていない、または解決されていない本分野における問題およびニーズのソリューションを提供し得る。例えば、本発明のいくつかの実施形態は、RPA用のDPFに関する。
【0006】
実施形態では、コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体上に具現化される。プログラムは、少なくとも1つのプロセッサに、RPAワークフロー内の1または複数の分類子を使用してファイルを1または複数の文書タイプに自動的に分類させ、自動分類の結果を分類データ構造体に格納するように構成される。プログラムはまた、少なくとも1つのプロセッサに、RPAワークフロー内の1または複数の抽出子を使用して分類ファイルからデータを自動的に抽出させ、自動的に抽出されたデータを抽出データ構造体に格納させるように構成される。プログラムは、少なくとも1つのプロセッサに、自動的に抽出されたデータを出力させるようにさらに構成される。
【0007】
別の実施形態では、コンピュータ実装方法は、コンピューティングシステムによって、定義された文書タイプのリストと定義された文書タイプのそれぞれのための関連するフィールドをタクソノミマネージャから受信し、コンピューティングシステムによって、文書タイプのリストと関連するフィールドとをマスタータクソノミデータ構造体内に格納することを含む。コンピュータ実装方法はまた、コンピューティングシステムによって、RPAワークフロー内で1または複数の分類子を使用して、ファイルを1または複数の文書タイプに自動的に分類し、コンピューティングシステムによって、自動分類の結果を分類データ構造体に格納することを含む。コンピュータ実装方法はさらに、コンピューティングシステムにより、自動分類の結果を出力することを含む。
【0008】
さらに別の実施形態では、システムは、コンピュータプログラム命令を格納するメモリと、コンピュータプログラム命令を実行するように構成された少なくとも1つのプロセッサとを含む。命令は、少なくとも1つのプロセッサが、タクソノミマネージャから、定義された文書タイプのリストと定義された文書タイプのそれぞれに関連するフィールドを受信するように構成される。命令はまた、少なくとも1つのプロセッサが、RPAワークフローにおけるデジタル化アクティビティを実行し、ファイルのテキストバージョンとドキュメントオブジェクトモデル(DOM(Document Object Model))を出力するように構成される。命令はさらに、少なくとも1つのプロセッサが、ファイルを、RPAワークフロー内の1または複数の分類子を使用して1または複数の文書タイプに自動的に分類し、RPAワークフロー内の1または複数の抽出子を使用して、分類された文書からデータを自動的に抽出するように構成される。さらに、命令はさらに、少なくとも1つのプロセッサが、自動的に抽出されたデータを出力するように構成される。
【図面の簡単な説明】
【0009】
本発明の特定の実施形態の利点が容易に理解されるように、上記で簡単に説明した本発明のより特定の説明は、添付の図面に図示されている特定の実施形態を参照して描写される。これらの図面は、本発明の典型的な実施形態のみを描いており、したがって、その範囲を限定するものとは考えられないことが理解されるべきであるが、本発明は、以下の添付の図面を使用することにより、さらなる特定および詳細をもって描写され、説明されるであろう。
【0010】
図1】本発明の実施形態による、RPAシステムを示すアーキテクチャ図である。
【0011】
図2】本発明の実施形態による、展開したRPAシステムを示すアーキテクチャ図である。
【0012】
図3】本発明の実施形態による、デザイナ、アクティビティ、およびドライバの間の関係を示すアーキテクチャ図である。
【0013】
図4】本発明の実施形態による、RPAシステムを示すアーキテクチャ図である。
【0014】
図5】本発明の実施形態による、RPA用のDPFを提供するように構成されたコンピューティングシステムを示すアーキテクチャ図である。
【0015】
図6A】本発明の実施形態による、タクソノミマネージャを示すスクリーンショットである。
【0016】
図6B】本発明の実施形態による、タクソノミマネージャの文書タイプ定義インターフェースを示すスクリーンショットである。
【0017】
図6C】本発明の実施形態による、タクソノミマネージャの文書タイプ詳細インターフェースを示すスクリーンショットである。
【0018】
図6D】本発明の実施形態による、タクソノミマネージャの編集フィールドインターフェースを示すスクリーンショットである。
【0019】
図7A】本発明の実施形態による、デジタル化アクティビティを伴うRPAワークフローを示すスクリーンショットである。
【0020】
図7B】本発明の実施形態による、デジタル化アクティビティを伴うRPAワークフローの一部の拡大図である。
【0021】
図8A】本発明の実施形態による、分類文書範囲のワークフローを示すスクリーンショットである。
【0022】
図8B】本発明の実施形態による、分類子構成インターフェースを示すスクリーンショットである。
【0023】
図9A】本発明の実施形態による、データ抽出範囲のワークフローを示すスクリーンショットである。
【0024】
図9B】本発明の実施形態による、抽出子構成インターフェースを示すスクリーンショットである。
【0025】
図9C】本発明の実施形態による、抽出子構成インターフェースの文書タイプおよびフィールドペインを示すスクリーンショットである。
【0026】
図9D】本発明の実施形態による、抽出子構成インターフェースのFlexiCapture(商標)抽出子ペインを示すスクリーンショットである。
【0027】
図9E】本発明の実施形態による、抽出子構成インターフェースの固定形態の抽出子ペインを示すスクリーンショットである。
【0028】
図10】本発明の実施形態による、分類子および抽出子の訓練ワークフローを示すスクリーンショットである。
【0029】
図11】本発明の実施形態による、分類子訓練構成インターフェースを示すスクリーンショットである。
【0030】
図12】本発明の実施形態による、RPA用のDPFを実装するためのプロセスを示すフローチャートである。
【発明を実施するための形態】
【0031】
(実施形態の詳細な説明)
いくつかの実施形態は、ロボティックプロセスオートメーション(RPA)のための文書処理フレームワーク(DPF)に関連する。いくつかの実施形態では、DPFは、同じプラットフォーム上で異なるベンダー製品をプラグアンドプレイで使用することができ、ユーザーは文書処理と文書理解ワークフローのための基本的なスキーマを設定し得る。したがって、DPFは、限定されないが、デジタル化、文書分類、およびデータ抽出などのタスクのために、ユーザーがアプリケーション内のアルゴリズムまたはサードパーティのアルゴリズムを使用して、フロー全体を通して文書を処理することを可能にし得る。これにより、統一された経験が提供され、ベンダーのロックインを回避し得る。いくつかの実施形態のDPFは、このプラグアンドプレイアプローチにより、各使用ケースのニーズに基づいて文書処理技術の組み合わせ、置換、優先順位付け、およびフィルタリングをサポートし、それにより、解決すべき各特定の問題に対して適切なソリューションを選択する際の柔軟性を提供する。
【0032】
いくつかの実施形態では、DPFは、ユーザーが、(1)タクソノミ(すなわち、文書タイプの収集)を定義し、(2)機械読み取り可能なテキストを得るためにファイルを処理してデジタル化し、(3)文書分類のための利用可能なアルゴリズムの組み合わせを使用して、文書タイプとページの範囲を各分類結果に割り当てることにより、ファイルを1または複数の文書タイプに分類し、(4)人がファイルの分解と分類を確認/修正/手動で行うことができるツールを介して確認を検証し、(5)データ抽出のための利用可能なアルゴリズムの組み合わせを使用して文書内またはページの範囲から識別された値を要求されたフィールドに割り当てることによってデータを抽出し、(6)人がデータ抽出を確認/修正/手動で行うことができるツールを介して抽出を確認し、(7)分類アルゴリズムが、人のフィードバックを受信し、必要に応じてフィードバックループをトリガするように構成されていることを確認することにより分類子を訓練し、および/または(8)抽出アルゴリズムが、人のフィードバックを受信し、必要に応じてフィードバックループをトリガするように構成されていることを確認することにより抽出子を訓練するようにする。
【0033】
いくつかの実施形態のDPFはまた、ソフトウェア開発者(例えば、サードパーティ企業の開発者または個人の貢献者)がDPFを管理し、分類子および抽出子コンポーネントを含むがこれらに限定されない独自の文書処理コンポーネントを構築するために使用することができる公開パッケージを含む。いくつかの実施形態における公開パッケージは、以下を含むが、これらに限定されない。(1)タクソノミ、文書、および抽出結果のデータ構造体と共にこれらの管理を支援する機能、(2)カスタム分類子および抽出子コンポーネントを構築するために使用される抽象的なクラスおよびインターフェース、ならびに/または(3)分類またはデータ抽出の出力を報告する際に使用されるデータ抽出および分類の入出力データ構造体およびコントラクト。この公開パッケージは、DPF全体が完全にスケーラブルでオープンであり、サードパーティがDPFと完全に互換性のある統一された方法で使用ケース固有のコンポーネントまたはソリューション固有のコンポーネントを開発するために使用できることを保証し得る。
【0034】
図1は、本発明の実施形態による、RPAシステム100を示すアーキテクチャ図である。RPAシステム100は、開発者がワークフローを設計して実装することを可能にするデザイナ110を含む。デザイナ110は、アプリケーション統合のためのソリューションを提供するとともに、サードパーティアプリケーション、管理情報技術(IT)タスク、およびビジネスITプロセスを自動化する。デザイナ110は、ビジネスプロセスのグラフィック表現である自動化プロジェクトの開発を容易にし得る。簡単に言えば、デザイナ110は、ワークフローおよびロボットの開発およびデプロイメントを容易にする。
【0035】
自動化プロジェクトは、本明細書で「アクティビティ」と定義されるワークフローで開発されたカスタムセットのステップ間の実行順序および関係の制御を開発者に与えることにより、ルールベースのプロセスの自動化を可能にする。デザイナ110の実施形態の商業的な一例は、UiPath Studio(商標)である。各アクティビティは、ボタンをクリックする、ファイルを読む、ログパネルに書き込むなどのアクションを含み得る。いくつかの実施形態では、ワークフローは入れ子になっているか、または埋め込まれ得る。
【0036】
ワークフローのタイプには、シーケンス、フローチャート、有限状態機械(FSM)、および/またはグローバル例外ハンドラなどがあるが、これらに限定されない。シーケンスは、ワークフローを乱雑にすることなく、あるアクティビティから別のアクティビティへのフローを可能にする、線形プロセスに特に適し得る。フローチャートは、特により複雑なビジネスロジックに適し得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適し得る。FSMは、条件(すなわち、遷移)またはアクティビティによってトリガされる有限の数の状態をそれらの実行中に使用し得る。グローバル例外ハンドラは、実行エラーに遭遇したときのワークフローの動作を決定したり、プロセスをデバッグしたりするのに特に適し得る。
【0037】
ワークフローがデザイナ110内で開発されると、ビジネスプロセスの実行は、コンダクタ120によって調整され、デザイナ110内で開発されたワークフローを実行する1または複数のロボット130を調整する。コンダクタ120の実施形態の商業的な一例は、UiPath Orchestrator(商標)である。コンダクタ120は、環境におけるリソースの生成、監視、およびデプロイメントの管理を容易にする。コンダクタ120は、サードパーティのソリューションおよびアプリケーションとの統合ポイントとして動作し得る。
【0038】
コンダクタ120は、全てのロボット130を管理し得、ロボット130を集中ポイントから接続して実行する。管理され得るロボット130のタイプには、アテンディッドロボット132、アンアテンディッドロボット134、開発ロボット(アンアテンディッドロボット134と同様であるが、開発およびテストの目的で使用される)、および非生産ロボット(アテンディッドロボット132と同様であるが、開発およびテストの目的で使用される)が含まれるが、これらに限定されない。アテンディッドロボット132は、ユーザーイベントによってトリガされ、同じコンピューティングシステム上で人と並んで動作する。アテンディッドロボット132は、集中プロセスデプロイメントおよびロギング媒体のためのコンダクタ120とともに使用され得る。アテンディッドロボット132は、人のユーザーが様々なタスクを達成するのを支援してもよく、ユーザーイベントによってトリガされてもよい。いくつかの実施形態では、プロセスは、このタイプのロボット上でコンダクタ120から開始することができず、および/またはそれらはロックされた画面の下で実行することができない。特定の実施形態では、アテンディッドロボット132は、ロボットトレイからまたはコマンドプロンプトからのみ起動され得る。アテンディッドロボット132は、いくつかの実施形態では、人の監督下で動作することが好ましい。
【0039】
アンアテンディッドロボット134は、仮想環境で無人で動作し、多くのプロセスを自動化し得る。アンアテンディッドロボット134は、リモート実行、監視、スケジューリング、および作業キューのサポートの提供を担当し得る。全てのロボットタイプのためのデバッグは、いくつかの実施形態では、デザイナ110で実行され得る。アテンディッドロボットおよびアンアテンディッドロボットの両方は、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などによって生成されたもの)、およびコンピューティングシステムアプリケーション(例えば、デスクトップおよびラップトップアプリケーション、モバイル装置アプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むが、これらに限定されない様々なシステムおよびアプリケーションを自動化し得る。
【0040】
コンダクタ120は、プロビジョニング、デプロイメント、構成、キューイング、監視、ロギング、および/または相互接続性の提供を含むがこれらに限定されない様々な能力を有し得る。プロビジョニングは、ロボット130とコンダクタ120(例えば、ウェブアプリケーション)との間の接続を作成し、維持することを含み得る。デプロイメントは、実行のために割り当てられたロボット130へのパッケージバージョンの正しい配信を保証することを含み得る。構成は、ロボット環境およびプロセス構成のメンテナンスおよび配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの識別データを追跡し、ユーザーの権限を維持することを含み得る。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標)へのログの保存およびインデックス作成を含み得る。コンダクタ120は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として動作することにより、相互接続性を提供し得る。
【0041】
ロボット130は、デザイナ110で構築されたワークフローを実行する実行エージェントである。ロボット(複数可)130のいくつかの実施形態の1つの商業的な例は、UiPath Robots(商標)である。いくつかの実施形態では、ロボット130は、デフォルトで、Microsoft Windows(登録商標)Service Control Manager(SCM)管理サービスをインストールする。その結果、このようなロボット130は、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を有し得る。
【0042】
いくつかの実施形態では、ロボット130は、ユーザーモードで設置され得る。このようなロボット130については、所定のロボット130が設置されているユーザーと同じ権利を有することを意味する。この特色はまた、各機械を最大限に全活用することを保証する高密度(HD)ロボットにも利用可能であり得る。いくつかの実施形態では、いずれかのタイプのロボット130は、HD環境で構成され得る。
【0043】
いくつかの実施形態におけるロボット130は、複数のコンポーネントに分割され、それぞれが特定の自動化タスクに特化されている。いくつかの実施形態におけるロボットコンポーネントは、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、およびコマンドラインを含むが、これらに限定されない。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と実行ホスト(すなわち、ロボット130が実行されるコンピューティングシステム)との間のプロキシとして動作する。これらのサービスは、ロボット130の資格情報を信頼して管理する。コンソールアプリケーションは、ローカルシステム下のSCMによって起動される。
【0044】
いくつかの実施形態におけるユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と実行ホストとの間のプロキシとして動作する。ユーザーモードのロボットサービスは、ロボット130の資格情報を信頼して管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。
【0045】
エグゼキュータは、Windows(登録商標)セッションの下で与えられたジョブを実行し得る(つまり、ワークフローを実行し得る。エグゼキュータは、モニタ毎のドットパーインチ(DPI)設定を意識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標) Presentation Foundation(WPF)アプリケーションであり得る。エージェントはサービスのクライアントとなり得る。エージェントは、ジョブの開始または停止、設定の変更を依頼し得る。コマンドラインはサービスのクライアントである。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0046】
上で説明したように、ロボット130のコンポーネントが分割されていることは、開発者、サポートユーザー、およびコンピューティングシステムが、各コンポーネントが何を実行しているかをより容易に実行し、識別し、および追跡するのに役立つ。この方法では、エグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な動作を構成し得る。エグゼキュータは常に、いくつかの実施形態では、モニタごとのDPI設定を認識し得る。その結果、ワークフローは、ワークフローが作成されたコンピューティングシステムの構成に関係なく、いずれかのDPIで実行し得る。また、いくつかの実施形態では、デザイナ110からのプロジェクトは、ブラウザのズームレベルに依存しないようにし得る。DPIを認識していないまたは意図的に認識していないとマークされているアプリケーションの場合、いくつかの実施形態ではDPIを無効にし得る。
【0047】
図2は、本発明の実施形態による、展開したRPAシステム200を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム200は、図1のRPAシステム100であってもよく、またはその一部であってもよい。クライアント側、サーバー側、またはその両方が、本発明の範囲から逸脱することなく、いずれかの所望の数のコンピューティングシステムを含むことができることに留意すべきである。クライアント側では、ロボットアプリケーション210は、エグゼキュータ212、エージェント214、およびデザイナ216を含む。しかし、いくつかの実施形態では、デザイナ216は、コンピューティングシステム210上で実行されていなくてもよい。エグゼキュータ212はプロセスを実行する。図2に示すように、複数のビジネスプロジェクトが同時に実行され得る。エージェント214(例えば、Windows(登録商標)サービス)は、本実施形態では、全てのエグゼキュータ212のための単一の接続ポイントである。この実施形態における全てのメッセージは、コンダクタ230に記録され、コンダクタ230は、データベースサーバー240、インデクササーバー250、またはその両方を介して、それらをさらに処理する。図1に関して上述したように、エグゼキュータ212は、ロボットコンポーネントであり得る。
【0048】
いくつかの実施形態では、ロボットは、マシン名とユーザー名との間の関連付けを表す。ロボットは、複数のエグゼキュータを同時に管理し得る。同時に実行される複数の対話型セッションをサポートするコンピューティングシステム(Windows(登録商標)Server 2012など)では、複数のロボットが同時に実行され、それぞれが一意のユーザー名を使用して別々のWindows(登録商標)セッションで実行され得る。これは、上記のHDロボットと呼ばれる。
【0049】
エージェント214はまた、ロボットの状態を送信し(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信する)、実行されるパッケージの必要なバージョンをダウンロードすることにも責任を負う。エージェント214とコンダクタ230との間の通信は、いくつかの実施形態では、常にエージェント214によって開始される。通知シナリオでは、エージェント214は、後にコンダクタ230によってロボットにコマンド(例えば、開始、停止など)を送信するために使用されるWebSocketチャネルを開いてもよい。
【0050】
サーバー側には、プレゼンテーション層(ウェブアプリケーション232、オープンデータプロトコル(OData)代表状態転送(REST)アプリケーションプログラミングインターフェース(API)エンドポイント234、通知および監視236)、サービス層(API実装/ビジネスロジック238)、永続層(データベースサーバー240、インデクササーバー250)が含まれる。コンダクタ230は、ウェブアプリケーション232、OData REST APIエンドポイント234、通知および監視236、ならびにAPI実装/ビジネスロジック238を含む。いくつかの実施形態では、ユーザーがコンダクタ230のインターフェース(例えば、ブラウザ220を介して)で実行するほとんどのアクションは、様々なAPIを呼び出すことによって実行される。このような動作は、本発明の範囲を逸脱することなく、ロボット上でのジョブの起動、キュー内のデータの追加/削除、アンアテンディッドで実行するジョブのスケジューリングなどを含み得るが、これらに限定されない。ウェブアプリケーション232は、サーバープラットフォームのビジュアル層である。この実施形態では、ウェブアプリケーション232は、ハイパーテキストマークアップ言語(HTML)およびジャバスクリプト(JS)を使用する。しかし、本発明の範囲を逸脱することなく、いずれかの所望のマークアップ言語、スクリプト言語、または他のいずれかのフォーマットを使用し得る。ユーザーは、コンダクタ230を制御するための様々な動作を実行するために、本実施形態ではブラウザ220を介してウェブアプリケーション232からのウェブページと対話する。例えば、ユーザーは、ロボットグループを作成し、ロボットへのパッケージの割り当てを行い、ロボット毎および/またはプロセス毎のログを解析し、ロボットを起動しおよび停止し得る。
【0051】
ウェブアプリケーション232に加えて、コンダクタ230は、OData REST APIエンドポイント234を公開するサービス層も含む。しかし、本発明の範囲を逸脱することなく、他のエンドポイントが含まれていてもよい。REST APIは、ウェブアプリケーション232とエージェント214の両方によって消費される。エージェント214は、本実施形態では、クライアントコンピュータ上の1または複数のロボットのスーパーバイザである。
【0052】
本実施形態のREST APIは、構成、ロギング、監視、およびキューイング機能をカバーする。構成エンドポイントは、いくつかの実施形態では、アプリケーションのユーザー、権限、ロボット、アセット、リリース、および環境を定義し、構成するために使用されてもよい。ロギングRESTエンドポイントは、例えば、エラー、ロボットによって送信された明示的なメッセージ、およびその他の環境固有の情報など、様々な情報をログに記録するために使用され得る。デプロイメントRESTエンドポイントは、コンダクタ230においてジョブ開始コマンドが使用された場合に実行されるべきパッケージのバージョンを問い合わせるためにロボットによって使用されてもよい。キューイングRESTエンドポイントは、キューへのデータの追加、キューからのトランザクションの取得、トランザクションのステータスの設定など、キューおよびキューアイテムの管理を担ってもよい。
【0053】
RESTエンドポイントの監視は、ウェブアプリケーション232およびエージェント214を監視してもよい。通知および監視API236は、エージェント214の登録、エージェント214への構成設定の配信、およびサーバーとエージェント214との間の通知の送受信に使用されるRESTエンドポイントであってもよい。通知および監視API236は、いくつかの実施形態では、WebSocket通信を使用してもよい。
【0054】
永続層は、本実施形態では、一対のサーバー-データベースサーバー240(例えば、SQLサーバー)およびインデクササーバー250-を含む。本実施形態におけるデータベースサーバー240は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を格納する。この情報は、いくつかの実施形態では、ウェブアプリケーション232を介して管理される。データベースサーバー240は、キューおよびキューアイテムを管理してもよい。いくつかの実施形態では、データベースサーバー240は、ロボットによって記録されたメッセージを(インデクササーバー250に加えて、またはインデクササーバー250に代えて)格納してもよい。
【0055】
いくつかの実施形態では任意であるが、インデクササーバー250は、ロボットによって記録された情報を保存し、インデックスを作成する。特定の実施形態では、インデクササーバー250は、構成設定を介して無効化されてもよい。いくつかの実施形態では、インデクササーバー250は、オープンソースプロジェクトの全文検索エンジンであるElasticSearch(登録商標)を使用する。ロボットによって記録されたメッセージ(例えば、ログメッセージまたはライン書き込みのようなアクティビティを使用して)は、ロギングRESTエンドポイント(複数可)を介してインデクササーバー250に送信されてもよく、そこで将来の利用のためにそれらはインデックス化される。
【0056】
図3は、本発明の実施形態による、デザイナ310、アクティビティ320、330、およびドライバ340の間の関係300を示すアーキテクチャ図である。以上のように、開発者は、デザイナ310を用いて、ロボットによって実行されるワークフローを開発する。ワークフローは、ユーザー定義のアクティビティ320およびUI自動化アクティビティ330を含んでもよい。いくつかの実施形態では、画像中の非テキストの視覚的コンポーネントを識別することができ、これは、本明細書ではコンピュータビジョン(CV)と呼ばれる。このようなコンポーネントに関連するいくつかのCVアクティビティは、クリック、タイプ、テキストを取得、ホバー、要素の有無を検出、スコープの更新、ハイライトなどを含むが、これらに限定されない。いくつかの実施形態では、クリックは、例えば、CV、光学的文字認識(OCR)、ファジーテキストマッチング、およびマルチアンカーを使用して要素を識別し、それをクリックする。タイプは、上記および要素内のタイプを用いて要素を識別してもよい。テキストの取得は、特定のテキストの場所を特定し、OCRを使用してそれをスキャンし得る。ホバーは、要素を識別し、その上にホバーし得る。要素の有無の検出は、上述した技術を用いて、画面上に要素の有無を検出するかどうかを確認し得る。いくつかの実施形態では、デザイナ310に実装され得る数百または数千でさえのアクティビティが存在してもよい。しかし、本発明の範囲を逸脱することなく、いずれかの数および/またはアクティビティのタイプを利用することができる。
【0057】
UI自動化アクティビティ330は、低レベルのコード(例えば、CVアクティビティ)で記述され、画面との対話を促進する特別な低レベルのアクティビティのサブセットである。UI自動化アクティビティ330は、ロボットが所望のソフトウェアと対話することを可能にするドライバ340を介して、これらの対話を促進する。例えば、ドライバ340は、OSドライバ342、ブラウザドライバ344、VMドライバ346、エンタープライズアプリケーションドライバ348などを含んでもよい。
【0058】
ドライバ340は、フックを探したり、キーを監視したりするなど、低レベルでOSと対話してもよい。それらは、Chrome(登録商標)、IE(登録商標)、Citrix(登録商標)、SAP(登録商標)などとの統合を促進してもよい。例えば、「クリック」アクティビティは、ドライバ340を介して、これらの異なるアプリケーションにおいて同じ役割を果たす。
【0059】
図4は、本発明の実施形態による、RPAシステム400を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム400は、図1および/または図2のRPAシステム100および/または200であってもよいし、それを含んでもよい。RPAシステム400は、ロボットを実行する複数のクライアントコンピューティングシステム410を含む。コンピューティングシステム410は、その上で実行されるウェブアプリケーションを介してコンダクタコンピューティングシステム420と通信することができる。コンダクタコンピューティングシステム420は、順番に、データベースサーバー430および任意のインデクササーバー440と通信することができる。
【0060】
図1および図3に関して、これらの実施形態ではウェブアプリケーションが使用されているが、本発明の範囲から逸脱することなく、いずれかの適切なクライアント/サーバーソフトウェアを使用することができることに留意すべきである。例えば、コンダクタは、クライアントコンピューティングシステム上で、非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバーサイドアプリケーションを実行してもよい。
【0061】
図5は、本発明の実施形態による、RPA用のDPFを提供するように構成されたコンピューティングシステム500を示すアーキテクチャ図である。いくつかの実施形態では、コンピューティングシステム500は、本明細書に描かれたおよび/または記載された1または複数のコンピューティングシステムであってもよい。コンピューティングシステム500は、情報を通信するためのバス505または他の通信機構と、情報を処理するためのバス505に結合されたプロセッサ(複数可)510とを含む。プロセッサ(複数可)510は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数のインスタンス、および/またはそれらのいずれかの組み合わせを含む、いずれかのタイプの一般的または特定用途向けプロセッサであり得る。プロセッサ(複数可)510はまた、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。いくつかの実施形態では、複数並列処理が使用されてもよい。特定の実施形態では、少なくとも1つのプロセッサ(複数可)510は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。いくつかの実施形態では、ニューロモーフィック回路は、フォンノイマンコンピューティングアーキテクチャの典型的なコンポーネントを必要としない場合がある。
【0062】
コンピューティングシステム500は、プロセッサ(複数可)510によって実行される情報および命令を格納するためのメモリ515をさらに含む。メモリ515は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または他のタイプの非一時的なコンピュータ読み取り可能な媒体、あるいはそれらの組み合わせのいずれかの組み合わせで構成され得る。非一時的なコンピュータ読み取り可能な媒体は、プロセッサ(複数可)510によってアクセス可能ないずれかの利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体または両方などを含み得る。また、媒体は、取り外し可能なもの、取り外し不可能なもの、または両方であってもよい。
【0063】
さらに、コンピューティングシステム500は、無線および/または有線接続を介して通信ネットワークへのアクセスを提供するために、トランシーバなどの通信装置520を含む。いくつかの実施形態では、通信装置520は、周波数分割多元接続(FDMA)、シングルキャリアFDMA(SC-FDMA)、時分割多元接続(TDMA)、符号分割多元接続(CDMA)、直交周波数分割多重方式(OFDM)、直交周波数分割多元接続(OFDMA)、移動体用グローバルシステム(GSM:Global System for Mobile)通信、汎用パケット無線サービス(GPRS:General Packet Radio Service)、ユニバーサル移動体通信システム(UMTS:Universal Mobile Telecommunications System)、cdma2000、広帯域CDMA(W-CDMA:Wideband CDMA)、高速ダウンリンクパケットアクセス(HSDPA:High-Speed Downlink Packet Access)、高速アップリンクパケットアクセス(HSUPA:High-Speed Uplink Packet Access)、高速パケットアクセス(HSPA:High-Speed Packet Access)、ロングタームエボリューション(LTE:Long Term Evolution)、LTEアドバンスト(LTE-A:LTE Advanced)、802.11x、Wi-Fi、Zigbee、超広帯域無線(UWB:Ultra-WideBand)、802.16x、802.15、Home Node-B(HnB)、Bluetooth、無線IDタグ(RFID:Radio Frequency Identification)、IrDA(Infrared Data Association)、近距離無線通信(NFC:Near-Field Communications)、第5世代(5G)、New Radio(NR)、それらのいずれかの組み合わせ、および/または本発明の範囲から逸脱することなく、いずれかの他の現在存在するまたは将来実装される通信標準および/またはプロトコルを使用するように構成され得る。いくつかの実施形態では、通信装置520は、本発明の範囲から逸脱することなく、単数のアンテナ、アレイ状のアンテナ、フェーズドアンテナ、スイッチドアンテナ、ビームフォーミングアンテナ、ビームステアリングアンテナ、それらの組み合わせ、および/またはいずれかの他のアンテナ構成である1または複数のアンテナを含み得る。
【0064】
プロセッサ(複数可)510は、バス505を介して、プラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、IPS(In-Plane Switching)ディスプレイ、またはユーザーに情報を表示するためのいずれかの他の適切なディスプレイなどのディスプレイ525にさらに結合されている。ディスプレイ525は、抵抗方式、静電容量方式、表面弾性波(SAW)静電容量方式、赤外線方式、光学イメージング方式、分散信号方式、音響パルス認識方式、フラストレート全内部反射方式などを用いて、タッチ(ハプティック)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成されていてもよい。本発明の範囲を逸脱することなく、いずれかの好適な表示装置およびハプティックI/Oを使用することができる。
【0065】
コンピュータマウス、タッチパッドなどのようなキーボード530およびカーソル制御装置535は、ユーザーがコンピューティングシステムとインターフェースすることを可能にするために、バス505にさらに結合されている。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在しない場合があり、ユーザーは、ディスプレイ525および/またはタッチパッド(図示せず)のみを介してデバイスと対話することができる。入力デバイスの種類および組み合わせは、設計の選択の問題として使用され得る。特定の実施形態では、物理的な入力装置および/またはディスプレイは存在しない。例えば、ユーザーは、コンピューティングシステム500と通信している別のコンピューティングシステムを介してリモートでコンピューティングシステム500と対話してもよいし、コンピューティングシステム500は自律的に動作してもよい。
【0066】
メモリ515は、プロセッサ(複数可)510によって実行されたときに機能を提供するソフトウェアモジュールを格納する。モジュールは、コンピューティングシステム500のためのオペレーティングシステム540を含む。モジュールはさらに、本明細書に記載されたプロセスの全部もしくは一部またはその派生物を実行するように構成されたDPFモジュール545を含む。コンピューティングシステム500は、付加的な機能を含む1または複数の付加的な機能モジュール550を含み得る。
【0067】
当業者であれば、「システム」は、本発明の範囲から逸脱することなく、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、または他のいずれかの適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上述した機能を「システム」によって実行されるものとして提示することは、何ら本発明の範囲を限定することを意図するものではなく、本発明の多くの実施形態の一例を提供することを意図するものである。実際、本明細書に開示された方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技術と整合性のあるローカライズされた形態および分散された形態で実装されてもよい。
【0068】
本明細書で説明するシステム特色のいくつかは、実装の独立性をより強調するために、モジュールとして提示されていることに留意すべきである。例えば、モジュールは、カスタムの非常に大規模な集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他のディスクリート構成要素のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジック装置、グラフィックス処理ユニットなどのプログラマブルハードウェア装置に実装され得る。
【0069】
モジュールまたは、様々なタイプのプロセッサによって実行されるためのソフトウェアに少なくとも部分的に実装され得る。例えば、識別された実行可能コードの単位は、例えば、オブジェクト、プロシージャ、または関数として編成されていてもよいコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。それにもかかわらず、実行可能な識別されたモジュールは、物理的に一緒に配置されている必要はなく、論理的に結合されたときにモジュールを含み、モジュールのために述べられた目的を達成するために、異なる場所に格納された別々の命令を含んでいてもよい。さらに、モジュールは、例えば、ハードディスクドライブ、フラッシュ装置、RAM、テープ、および/または本発明の範囲から逸脱することなくデータを格納するために使用される他のいずれかのそのような非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。
【0070】
実際、実行可能コードのモジュールは、単一の命令であってもよいし、多数の命令であってもよいし、さらには、複数の異なるコードセグメント、異なるプログラム間、および複数のメモリ装置間に分散されていてもよい。同様に、操作データは、モジュール内で識別され、ここで示されてもよく、いずれかの適切なタイプのデータ構造体内でいずれかの適切な形態で具現化され、組織化され得る。操作データは、単一のデータセットとして収集されてもよいし、または異なる記憶装置にわたり異なる場所に分散されていてもよく、少なくとも部分的には、単にシステムまたはネットワーク上の電子信号として存在していてもよい。
【0071】
タクソノミの定義および管理
【0072】
文書処理のためのワークフローを設計する前に、いくつかの実施形態のDPFは、ユーザーが、分類およびデータ抽出の対象となる文書タイプのリストを、文書タイプのそれぞれのための関連するフィールド(すなわち、文書および関連するタイプの中で検索されるべき情報)とともに定義することを可能にする。これは、いくつかの実施形態では、タクソノミマネージャを使用して達成されてもよい。定義されたタクソノミ情報は、ソフトウェア開発者およびRPA開発者の両方がタクソノミーオブジェクトを操作するためにプログラム的に使用できるように、パブリックパッケージ内のクラスとして定義されたパブリックプロプライエタリデータ構造体内のマスタータクソノミとして格納されていてもよい。いくつかの実施形態では、このクラスは、例えば、UiPath Studio(商標)のDocumentTaxonomyであってもよい。
【0073】
図6A図6Dは、本発明の実施形態による、タクソノミマネージャ600を示すスクリーンショットである。タクソノミマネージャ600は、文書タイプ定義インターフェース610(図6Bも参照)、文書タイプ詳細インターフェース620(図6Cも参照)、および編集フィールドインターフェース630(図6Dも参照)を含む。集合的に、インターフェース610、620、630は、ユーザーが文書タイプのリストを定義し、文書タイプの詳細を提供し、そして文書タイプのフィールドを編集することを可能にする。
【0074】
文書タイプ定義インターフェース610は、ユーザーが新しい文書タイプを追加したり、または既存の文書タイプを編集もしくは削除したりすることを可能にする。インターフェースは、グループおよびカテゴリを選択する機能ならびにグループおよびカテゴリを検索する機能も提供する。グループおよびカテゴリは、本実施形態では、タクソノミにおける文書タイプの収集をよりよく整理するために使用される。インターフェース610におけるこれらの設定に基づいて、グループフィルタリングおよびカテゴリフィルタリングが利用可能であり得る(図6Bも参照)。各文書タイプは、インターフェース620を介してグループおよびカテゴリに割り当てられ得る(図6Cも参照)。文書処理メタデータを取り込むという同じ目的を保持しながら、タクソノミ組織(例えば、グループ、カテゴリ、文書タイプ、フィールドなどによる)は、時間の経過とともに変化してもよい。さらに、データ構造、ユーザーインターフェース、および公的機関が締結する契約も、設計、パッケージング、コンテンツ、機能性などで進化し得る。
【0075】
文書タイプ詳細インターフェース620は、ユーザーが文書タイプに名前を提供することを可能にするとともに、文書タイプのグループおよびカテゴリを選択することを可能にする。文書タイプコードを任意に指定することもできる。文書タイプに関連付けられたフィールドが表示され、ユーザーはフィールドを追加、編集、または削除し得る。
【0076】
編集フィールドインターフェース630は、ユーザーが所定のフィールドのプロパティを編集することを可能にする。利用可能なプロパティは、フィールドタイプ、カテゴリ、グループなどを含むがこれらに限定されない複数の要因に基づいて異なり得る。
【0077】
ファイルのデジタル化
【0078】
いくつかの実施形態では、ファイルのデジタル化は、処理されたファイルのテキストバージョンをドキュメントオブジェクトモデル(DOM(Document Object Model))とともに出力するRPAツール700(例えば、UiPast Studio(商標))のワークフロー内のデジタル化アクティビティ710を使用して実行されてもよい。図7Aおよび7Bを参照のこと。DOMは、パブリックパッケージ内のクラスとして定義され得るRPAツールのプロプライエタリデータ構造体に取り込まれ得る。このクラスは、ソフトウェア開発者およびRPA開発者がDOMオブジェクトを操作するためにプログラム的に使用され得る。DOMは、タイプされたセクション(例えば、段落、表、列、縦書きテキスト、ヘッダー、見出し、フッターなど)、タイプされた単語グループ(文章、表のセルなど)、および単語レベルの情報(例えば、各ページ上での絶対位置、OCRの信頼度、内容など)を含む、ファイルが各ページに何を含んでいるかについての情報を取り込み、全てが回転、スキュー、相対的な幅および高さの情報などで拡張する。
【0079】
ファイルデジタル化コンポーネントは、文書処理フレームワークによって強制される定義された契約を尊重したいずれかの適切なOCRエンジンの実装を使用することができるように、使用されるOCRエンジンに関連するプラグアンドプレイ機能を使用して構築され得る。デジタル化コンポーネントはまた、複数のOCRエンジンの使用を可能にし、使用された全てのエンジンの最良の結合結果を報告する投票システムを実装するように強化されてもよい。例えば、最もOCRエンジンが同意した結果が選択され得る。特定の実施形態では、そのような結果は、所定のOCRシステムの精度に基づいて重み付けされてもよい。しかしながら、いくつかの実施形態では、投票/OCR結果統合アルゴリズムは、本発明の範囲から逸脱することなく、利用可能な最良のテキスト出力を決定して報告するために、人のフィードバックに基づいているか否かにかかわらず、いずれかのタイプのメトリックまたは信頼度計算を採用してもよいことに留意すべきである。
【0080】
ファイルを1または複数の文書タイプに分類する
【0081】
この機能により、ユーザーは、文書の分類のために1または複数の所望の分類子アルゴリズムを使用し得る。分類アルゴリズムの例は、限定されないが、レイアウトベースの分類、感情ベースの分類、特徴ベースの分類、自然言語処理(NLP)ベースの分類、機械学習(ML)ベースの分類、深層学習ベースの分類、画像ベースの分類、キーワードベースの分類、およびカラーベースの分類である。ユーザーは、いくつかの実施形態では、いずれかの数の分類子実装をプラグインとして追加したり、削除したり、変更したり、交換したり、分類子の順序を変更したりすることができる。特定の実施形態では、同じタイプの複数の異なる分類子(例えば、複数の画像ベースの分類子)が使用されてもよい。いくつかの実施形態では、ユーザーは、使用される各分類子の最小信頼度しきい値に基づいて受け入れ基準を定義し得る。
【0082】
いくつかの実施形態では、ユーザーは、統一された方法で全てのデータを共通の分母に持ってくる目的で、マスタータクソノミ(例えば、いくつかの実施形態ではタクソノミマネージャを使用して設計され定義されたもの)と、与えられた分類子のためのいずれかの内部タクソノミからのタクソノミマッピングを実行し得る。この機能は、ある分類子が、マスタータクソノミにマッピング(翻訳)されるべき分類の結果として、「クラス」(例えば、文書タイプ)の内部セットを報告している場合に使用される。例えば、ある分類子は、受信文書が請求書である場合、クラス「INV」を報告してもよいが、マスタータクソノミは「Expense Invoice(経費請求書)」と呼ばれる文書タイプを含んでいてもよい。この機能により、分類子から報告された「INV」がマスタータクソノミで定義された「Expense Invoice(経費請求書)」に該当することを指定することができる。
【0083】
特定の実施形態では、ユーザーは、使用される各分類子コンポーネントからの結果の優先度を決定し得る。いくつかの実施形態では、ユーザーはまた、どの分類子コンポーネントが特定の文書タイプを解決することを許可され、どの分類子コンポーネントが解決することを制限されるかを決定することができる。この機能は、特定の使用ケースで使用される各分類子の実装(すなわち、コンポーネント)の既知の特色および制限を考慮して、文書の分類を微調整することができる。
【0084】
文書分類機能は、デジタル化されたファイルとタクソノミに基づいて使用される分類子(複数可)に関係なく、同じタイプの出力を保証することもできる。文書分類機能の出力は、パブリックパッケージのクラスとして定義されるプロプライエタリデータ構造体に取り込まれてもよい。クラスは、ソフトウェア開発者およびRPA開発者が分類結果オブジェクトを操作するためにプログラム的に使用され得る。いくつかの実施形態では、これらのクラスは、UiPath Studio(商標)の公開データ契約パッケージで定義されたClassifierResultおよびClassificationResultであり得る。特定の実施形態では、どの結果がより良いかを自動的に決定するために、異なる分類子コンポーネント間のより複雑な結果仲介システムの実装、および異なるページ範囲のための異なる分類子コンポーネントからの結果を結合するためのシステムを含んでもよい。この機能は、ファイルを複数の論理文書に分割する際に使用され得る。例えば、同一PDFファイル内に文書が次々とスキャンされていく文書のパッケージが単一のファイルに含まれている場合である。
【0085】
図8Aは、本発明の実施形態による、分類文書範囲のワークフロー800を示すスクリーンショットである。ワークフロー800は、キーワードベースの分類子アクティビティ802と固定形式の分類子アクティビティ804とを含む。ユーザーは、構成分類子リンク806をクリックすることにより、ワークフロー800内の分類子を構成し得る。分類文書範囲コンポーネントは、いくつかの実施形態では、いずれかの所望の数の分類子を用いて構成され得る。
【0086】
構成分類子リンク806をクリックすると、図8Bの分類子構成インターフェース810が開き、これは、構成テーブルの最初の列で処理され得る文書タイプ820のリストを提供し、次の列はそれぞれ、それらが範囲コンポーネントで構成された順に、範囲で使用される1つの分類子に対応する。この例では、キーワードベースの分類子構成ペイン830と固定形式の分類子構成ペイン840により、ユーザーは、それぞれの最小信頼度832、842を設定することができる。各分類子からの分類結果は、各分類子に対して個別に設定された最小信頼度しきい値に基づいてフィルタリングされてもよい。ユーザーはまた、分類子構成(ここでは、キーワードベースの分類子構成ペイン830および固定形式の分類子構成ペイン840)のチェックボックスを介して、各文書タイプに分類子を適用するか、両方適用するか、または適用しないかを選択することができる。ユーザーはまた、各分類子が内部タクソノミを使用している文書タイプのための内部タクソノミ固有のIDを、チェックボックスの横のテキストフィールドに任意に入力し得る。
【0087】
いくつかの実施形態では、分類文書範囲アクティビティは、分類子ごとだけでなく、分類子および文書タイプのレベルで最小信頼度しきい値を設定することを可能にしてもよい。特定の実施形態では、分類文書範囲アクティビティ、分類子構成、優先順位付けアルゴリズム、ユーザーインターフェース、データ構造、および公的機関が締結する契約は、オープンで拡張可能なフレームワークで文書の分類を容易にするという同じ目的を維持しながら、変更および調整を経験し得る。
【0088】
自動分類の確認
【0089】
いくつかの実施形態では、分類確認モジュールは、分類のためのファイルをレビュー、修正、および/または手動で処理するためのユーザーインターフェースを提供する。ユーザーは、処理されたファイルのページ範囲と自動的に関連付けられた文書タイプを表示することによって自動分類をレビューしたり、ページ範囲と文書タイプの両方のレベルで修正を実行したり、関連付けられた文書タイプを有する新しいセクションを削除もしくは追加したり、および/または必要に応じて完全に手動で文書を処理したりすることができ得る。
【0090】
いくつかの実施形態のユーザーインターフェースは、簡単に使用することができ、ファイル内の個々のページを理解して判断するための視覚的なアプローチを提供する。いくつかの実施形態におけるユーザーインターフェースは、前の自動分類フェーズで使用された分類コンポーネントから独立して使用することができ、文書分類レビューおよび処理のための単一の統一された最先端のユーザーインターフェースを提供する。このアプローチにより、人が文書分類のために採用される分類技術に応じて異なる画面を学習したり使用したりする必要がなくなり、これによって全体的な経験を統一し、文書処理に必要な学習曲線および全体的な時間を短縮し得る。
【0091】
文書からのデータの自動抽出
【0092】
いくつかの実施形態では、自動データ抽出機能は、ワークフロー内の抽出子を互換的に使用することを可能にする。そのような実施形態は、標準入力、標準出力、抽出子間の仲介、およびフォールバック機構を確保してもよい。抽出子の例は、テンプレートベースの抽出子、レイアウトベースの抽出子、キーワードベースの抽出子、正規表現ベースの抽出子、コンテキストベースの抽出子、ラベル/アンカーベースの抽出子、パターンベースの抽出子、自然言語処理ベースの抽出子、機械学習ベースの抽出子、メタデータベースの抽出子などを含み得るが、これらに限定されない。
【0093】
いくつかの実施形態では、ユーザーは、プラグインとして所望の数の抽出子実装を追加し得る。特定の実施形態では、ユーザーは、抽出子の削除、変更、交換、および順序の変更を行うことができる。いくつかの実施形態では、ユーザーは、使用される各抽出子の最小信頼度しきい値に基づいて受け入れ基準を定義し得る。いくつかの実施形態では、ユーザーはフィールド/抽出子の組み合わせの最小信頼度しきい値に基づいて受け入れ基準を定義し得る。
【0094】
いくつかの実施形態では、ユーザーは、統一された方法で全てのデータを共通の分母に持ってくる目的で、マスタータクソノミ(例えば、いくつかの実施形態ではタクソノミマネージャを使用して設計され定義されたもの)と、1または複数の抽出子内部タクソノミからのタクソノミマッピングを実行し得る。この機能は、ある抽出子が、マスタータクソノミにマッピング(翻訳)されるべきデータ抽出の結果として、「能力」(すなわち、抽出子が抽出できるフィールド)の内部セットを報告する場合に使用され得る。ユーザーは、使用する各抽出子の結果の優先度を決定してもよい。例えば、抽出子は、請求書を処理する際に「INV-NO」と呼ばれるフィールドの値を報告してもよいが、マスタータクソノミは「インボイス番号」と呼ばれるフィールドを含んでもよい。この機能により、抽出子から報告された「INV-NO」が、マスタータクソノミで定義された「インボイス番号」に対応することを指定し得る。
【0095】
ユーザーはまた、どの抽出子コンポーネントが特定のフィールドを解決することを許可され、どの抽出子コンポーネントが解決することを制限されるかを決定することができる。これら機能は、特定の使用ケースで使用される各抽出子の実装(すなわち、コンポーネント)の既知の特色および制限を考慮して、文書の抽出を微調整することができる。抽出子は、いくつかの実施形態では、RPAワークフローのアクティビティとして実装され得る。
【0096】
図9Aは、本発明の実施形態による、データ抽出範囲のワークフロー900を示すスクリーンショットである。ワークフロー900は、FlexiCapture(商標)抽出子アクティビティ902および固定形式の抽出子アクティビティ904を含む。ユーザーは、構成抽出子リンク906をクリックすることにより、ワークフロー900内の抽出子を構成し得る。
【0097】
構成抽出子リンク906をクリックすると、図9Bの抽出子構成インターフェース910が開く。マスタータクソノミからの文書タイプおよびフィールドは、文書タイプおよびフィールドペイン920(図9Cも参照)で見ることができ、ここで、フィールド(例えば、「インボイス番号」)は、それぞれの文書タイプ(例えば、「インボイス」)の下にグループ化される。抽出子は、各抽出子のペイン(例えば、本実施例ではFlexiCapture(商標)抽出子ペイン930(図9Dも参照))および固定形式抽出子ペイン940(図9Eも参照)で対応するチェックボックスを選択することにより、フィールドごとに適用される。最小信頼度パーセンテージはまた、抽出子固有のペイン(例えば、FlexiCapture(商標)抽出子ペイン930および固定形式抽出子ペイン940)内のテキストフィールド932、942を介して指定され得る。
【0098】
本実施形態の文書抽出機能は、デジタル化されたファイルとタクソノミに基づいて使用される抽出子に関係なく、同じタイプの出力を保証する。例えば、FlexiCapture(商標)は、独自の内部タクソノミを持つサードパーティ製ツールである。全ての抽出子を共通の分母に持ってくるために、本実施形態ではエイリアスを追加することができる。例えば、以下に示すように、FlexiCapture(商標)抽出子ペイン930のインボイス番号フィールドは、固定形式抽出子ペイン940の「inv-no」に等しい。これは、一度だけ構成されることを必要とし得、データ抽出範囲の出力は、その後、常に開発者が定義したマスタータクソノミに従ってデータを抽出するようにしてもよい。文書抽出機能の出力は、ソフトウェア開発者とRPA開発者の両方が抽出結果オブジェクトを操作するためにプログラム的に使用され得るパブリックパッケージ内のクラスとして定義されたプロプライエタリデータ構造体に取り込まれてもよい。
【0099】
いくつかの実施形態では、これらのクラスは、例えば、UiPath Studio(商標)の公開データ契約パッケージで定義されたExtractorResultおよびExtractionResultであり得る。特定の実施形態では、どの結果がより良いかを自動的に決定するために、異なる抽出子コンポーネント間のより複雑な結果仲介システムの実装、および同じフィールドのための異なる抽出子コンポーネントからの抽出子処理を結合または連鎖させるためのシステムを含んでもよい。この機能は、より大きな識別部からの細目データの識別に使用され得る。例えば、いくつかの実施形態では、第1抽出子は、文全体を抽出してもよく、一方で連鎖した第2抽出子は、第1抽出子によって識別された文から特定の情報の識別をターゲットにしてもよい。
【0100】
要するに、いくつかの実施形態のDPFは、ファイルとページ境界を持つ分類結果を受け取り、関連する各フィールドのデータを特定しようとし、ワークフローに含まれる抽出アルゴリズムを使用し、結果を収集し、そして信頼性、順序付け、および抽出子連鎖に基づいて、各フィールドの最良の結果を報告する。図9A~Eの例では、2つの抽出子-FlexiCapture(商標)抽出子902および固定形式抽出子904-が使用される。本実施形態の文書抽出モジュールは、ワークフロー900内のこれら2つのプラグインの間でRPA開発者によって選択された順序に起因して、固定形式抽出子904よりもFlexiCapture(商標)抽出子902によって返される結果を優先する。文書抽出モジュールは、設定された信頼値(例えば、ユーザーがこの値を最小信頼度フィールド932に設定した場合、FlexiCapture(商標)抽出子902によって報告された結果に対して70%)を下回るいずれかの報告された抽出を受け入れないことがあり得、一方で、それは、最小信頼度フィールド942が0%に設定されている場合、固定形式抽出子904によって報告されたいずれかの分類を受け入れることがある。文書抽出モジュールは、FlexiCapture(商標)抽出子902によって実行された許容可能な抽出を探し、許容可能であれば、その結果を報告してもよい。FlexiCapture(商標)抽出子902によって許容可能な抽出が報告されない場合、文書抽出モジュールは、固定形式抽出子904によって実行される許容可能な抽出を探してもよい。
【0101】
いくつかの実施形態では、抽出結果は、ビジネス固有の情報または確認、特定のフォーマット化、および/または他の後処理によってさらに強化されてもよい。特定の実施形態では、自動データ抽出コンポーネントの出力は、いずれかの所望の組み合わせで利用可能ないずれかの他のRPAワークフローアクティビティを使用して、チェック/修正/強化されてもよい。これらのアクティビティは、自動データ抽出の出力を操作するために使用することができ、結果に含まれる特定の値を追加、削除、または変更することができる。これは、例えば、抽出されたデータを、その時点で処理された単一ファイルに対して外部にあるデータベースまたは他のソースからの情報で強化する必要がある複雑な使用ケースに使用され得る。
【0102】
自動データ抽出の確認
【0103】
いくつかの実施形態では、データ抽出確認モジュールは、データ抽出モジュールによって報告されたデータポイント(すなわち、抽出された情報)をレビュー、修正、および/または手動で処理するためのユーザーインターフェースを提供する。ユーザーは、自動データ抽出からの結果を、以下の方法でレビューし得る:(1)文書の処理された部分(例えば、分類に係る特定のページ範囲)から、値、証拠、文書内で抽出された値が発見された位置、抽出された値の信頼性等を閲覧すること、(2)正しく報告された値のOCRエラーを編集すること、報告された値の位置を修正すること、報告された値を完全に置き換えること、自動処理によって見逃した値を追加すること、および/もしくは自動処理によって誤って特定された値を削除することによる修正を実行すること。(3)元のファイルビュー上で直接、範囲、領域、単語(複数可)などを選択して操作を実行することにより、処理中の元のファイルのグラフィカル表示と直接対話すること、(4)文書のテキストバージョンを表示して操作を実行すること、ならびに/または(5)所望の場合には、完全に手動で文書を処理すること。
【0104】
いくつかの実施形態のユーザーインターフェースは、簡単に使用することができ、ファイル内で識別され、抽出される個々のフィールドおよびデータの断片について理解し、判断を下すための視覚的なアプローチを提供する。特定の実施形態におけるユーザーインターフェースは、以前の自動分類およびデータ抽出フェーズで使用されたデータ抽出コンポーネントとは独立して使用できるようにすることができ、文書データ抽出レビューおよび処理のための単一の統一された最先端のユーザーインターフェースを提供する。このアプローチにより、人がデータ確認のために採用されるデータ確認技術に応じて異なる画面を学習したり使用したりする必要がなくなり、これによって全体的な経験を統一し、文書処理のための学習曲線および全体的な時間を短縮し得る。いくつかの実施形態のデータ確認コンポーネントは、文書検証機能を介して処理された文書を人が提出することを可能にする前にチェックされ得るカスタム確認ルールの定義および使用を可能にする。このように、モジュールは完全な拡張性を確保し、カバーされるビジネス使用ケースに応じてカスタム実装をオープンにし得る。
【0105】
分類子および抽出子の訓練
【0106】
いくつかの実施形態では、分類子トレーニングモジュールは、人のフィードバックから学習することができる分類子のためのフィードバックループの完了を容易にする。分類子訓練モジュールは、人によって確認されたデータおよび人のフィードバックからアルゴリズムが学習することを可能にする情報が、各分類子によって(例えば、タクソノミマッピング機能を使用することによって)理解可能な形式でかつ正しい権限が有効にされた状態で(例えば、訓練分類子フィールドレベルの起動機能を使用することによって)起動した抽出子に到達することを、統一された方法で確実にしてもよい。このアプローチは、使用される分類子(複数可)に依存しないフィードバックループを閉じるための統一された経験を提供することができ、また、実際のファイル分類に使用される分類子コンポーネントに依存しなくてもよい。これにより、RPA開発者は、例えば、実際のファイル分類のために起動される前に分類子を訓練することができ、「その場で」の訓練が可能になり、各分類コンポーネントに固有の大量のアノテーションファイルを前もって用意する必要がなくなる。
【0107】
いくつかの実施形態では、抽出子訓練モジュールは、人のフィードバックから学習することができる分類子のためのフィードバックループの完了を容易にする。抽出子訓練モジュールは、人によって確認されたデータおよび人のフィードバックからアルゴリズムが学習することを可能にする情報が、抽出子(複数可)によって(例えば、タクソノミマッピング機能を使用することによって)理解可能な形式でかつ正しい権限が有効にされた状態で(例えば、訓練抽出子フィールドレベルの起動機能を使用することによって)起動した抽出子(複数可)に到達することを、統一された方法で確実にしてもよい。このアプローチは、どの抽出子コンポーネント(複数可)が使用されるかに依存しない、フィードバックループを閉じるための統一された経験を提供してもよく、また、データ抽出のための実際のファイル処理に使用される抽出子コンポーネントに依存しなくてもよい。これにより、RPA開発者は、例えば、実際の文書データ抽出のために抽出子を起動する前に抽出子を訓練することができ、それにより「その場で」訓練を行うことができ、抽出コンポーネントごとに固有の大量のアノテーションファイルを前もって用意する必要がなくなる。
【0108】
図10は、本発明の実施形態による、分類子および抽出子の訓練ワークフロー1000を示すスクリーンショットである。この例では、訓練分類子スコープアクティビティ1010は、構成分類子リンク1014をクリックすることによって構成可能なキーワードベースの分類子1012を含む。分類子訓練構成インターフェースの機能は、いくつかの実施形態では最小信頼度しきい値を設定する必要がないことを除いて、図8Bの分類子構成インターフェース810と類似していてもよい。このような分類子訓練構成インターフェース1100は、図11に示されている。しかしながら、特定の実施形態では、分類子訓練構成インターフェースは、文書タイプおよび分類子固有のものであってもよい訓練設定パラメータをさらに含んでもよい。同様に、抽出子訓練構成インターフェースの機能は、図9Bの抽出子構成インターフェース910に類似していてもよく、特定の実施形態では、追加の訓練設定パラメータが含まれていてもよい。
【0109】
図12は、本発明の実施形態による、RPA用のDPFを実装するためのプロセス1200を示すフローチャートである。プロセスは、1210で一般的なタクソノミを定義して格納することである。いくつかの実施形態では、これは、分類およびデータ抽出の対象となる文書タイプのリストの定義を容易にするインターフェースを提供するタクソノミマネージャを実行し、文書タイプのそれぞれについての関連フィールドとともに、文書タイプの定義されたリストおよび定義された文書タイプのそれぞれについての関連フィールドを受信し、そして文書タイプのリストおよび関連フィールドをマスタータクソノミデータ構造体内に格納することを含んでもよい。
【0110】
次に、RPAワークフローでデジタル化アクティビティが実行され、1220でファイルのテキストバージョンとDOMデータ構造に格納されたドキュメントオブジェクトモデル(DOM(Document Object Model))が出力される。いくつかの実施形態では、DOMは、ファイル内における、回転、スキュー、および相対的な幅および高さの情報で増強されたタイプされたセクション、タイプされたワードグループ、およびワードレベル情報に関連する情報を含む。特定の実施形態では、デジタル化アクティビティは、複数のOCRエンジンを使用し、デジタル化アクティビティは、複数のOCRエンジンの投票システムを実装し、複数のOCRエンジンから最良の組み合わせ結果を出力することを含む。
【0111】
ファイルをRPAワークフローの1または複数の分類子を用いて1または複数の文書タイプに分類し、自動分類情報を1230で出力する。この情報は、いくつかの実施形態では、分類データ構造体に格納され得る。いくつかの実施形態では、1または複数の分類子は、レイアウトベースの分類、感情ベースの分類、特徴ベースの分類、自然言語処理(NLP)ベースの分類、機械学習(ML)ベースの分類、深層学習ベースの分類、画像ベースの分類、キーワードベースの分類、カラーベースの分類、それらのいずれかの組み合わせ、またはいずれかの他の文書分類方法を実行するように構成される。特定の実施形態では、分類は、1または複数の分類子のそれぞれについての最小信頼度しきい値に基づいた受入れ基準を使用することを含む。いくつかの実施形態では、分類は、1または複数の分類子のために、それぞれの分類子のマスタータクソノミおよび内部タクソノミをマッピングすることを含む。特定の実施形態では、分類は、RPAワークフローにおける分類子の順序に基づいて各分類子からの結果に優先順位を付け、文書のタイプに基づいて分類で使用するための1または複数の分類子のうちの分類子を選択し、1または複数の分類子の少なくとも1つに最小信頼度フィールドを割り当てる、またはそれらのいずれかの組み合わせを行うことを含む。
【0112】
分類のためのファイルをレビュー、修正、および/または手動で処理するためのインターフェースを提供する分類確認モジュールが実行され、自動分類情報が1240で出力される。1または複数の分類子のフィードバックループの完了を促進する分類子訓練モジュールが1250で実行される。そして、RPAワークフロー内の1または複数の抽出子を用いて、分類された文書からデータを抽出し、自動的に抽出されたデータを1260で出力する。この抽出データは、いくつかの実施形態では、抽出データ構造体に格納され得る。いくつかの実施形態では、抽出は、RPAワークフローにおける抽出子の順序に基づいて各抽出子からの結果に優先順位を付け、文書のタイプに基づいて抽出で使用するための1または複数の抽出子のうちの抽出子を選択し、1または複数の抽出子の少なくとも1つに最小信頼度フィールドを割り当てる、またはそれらのいずれかの組み合わせを行うことを含む。
【0113】
データ抽出からのデータポイントを修正および/または手動で処理するためのインターフェースを提供するデータ抽出確認モジュールが実行され、確認された抽出データが1270で出力される。1または複数の抽出子のフィードバックループの完了を促進する抽出子訓練モジュールが1280で実行される。そして、分類結果と抽出された情報を含む処理データは、1290で書き出される。タクソノミが定義されると、使用ケースのニーズに基づいて、いくつかの実施形態では、1または複数のステップ1220~1290が任意であってもよいことに留意すべきである。
【0114】
プロセス1200が完了した後、確認された情報は、他のシステムで使用できるようになる。例えば、データベースやエクセル(登録商標)ファイルに情報を挿入したり、特定の値の通知を電子メールなどで送信したりしてもよい。非限定的な例として、図12のプロセス1200は、PDFファイルから始まり、そのファイルがインボイスであり、そのインボイスに書かれた合計金額が42ドルであり、ベンダーが「XYZ書店」であり、購入日が2019年7月23日であることを知った状態で終了してもよい。これらの値は、今や例えば会計システムにプログラムで挿入できる。
【0115】
図12で実行されるプロセスステップは、本発明の実施形態に従って、図12で説明したプロセスの少なくとも一部を実行するようにプロセッサ(複数可)への命令をエンコードするコンピュータプログラムによって実行されてもよい。コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体に具現化されていてもよい。コンピュータ読み取り可能な媒体は、ハードディスクドライブ、フラッシュ装置、RAM、テープ、および/またはデータを格納するために使用される他のいずれかのそのような媒体または媒体の組み合わせであってもよいが、これらに限定されるものではない。コンピュータプログラムは、図12に記載されたプロセスステップの全部または一部を実装するために、コンピューティングシステム(例えば、図5のコンピューティングシステム500のプロセッサ(複数可)510)のプロセッサ(複数可)を制御するためのコード化された命令を含んでもよく、これはまた、コンピュータ読み取り可能な媒体に格納されてもよい。
【0116】
コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で実装され得る。コンピュータプログラムは、互いに操作可能な通信を行うモジュールで構成され得、情報または命令をディスプレイに送るように設計されている。コンピュータプログラムは、汎用コンピュータ、ASIC、またはいずれかの他の好適な装置で動作するように構成され得る。
【0117】
本発明の様々な実施形態のコンポーネントは、本明細書に一般的に記載され、図示されているように、様々な異なる構成で配置され、設計されてもよいことが、容易に理解されるであろう。したがって、添付の図に表されるような本発明の実施形態の詳細な説明は、特許請求されるような本発明の範囲を限定することを意図するものではなく、本発明の選択された実施形態を代表するものにすぎない。
【0118】
本明細書を通して記載された本発明の特色、構造、または特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせられ得る。例えば、本明細書全体を通して「特定の実施形態」、「いくつかの実施形態」、または類似の言語を参照することは、実施形態に関連して記載された特定の特色、構造、または特徴が、本発明の少なくとも1つの実施形態に含まれていることを意味する。したがって、本明細書全体を通して「特定の実施形態では」、「いくつかの実施形態では」、「他の実施形態では」、または類似の言語の出現は、必ずしも全ての実施形態の同じグループを指すものではなく、記載された特色、構造、または特徴は、1または複数の実施形態ではいずれかの好適な方法で組み合わせられ得る。
【0119】
本明細書全体を通して特色、利点、または類似の言語への参照は、本発明で実現され得る特色および利点の全てが、本発明のいずれかの単一の実施形態にあるべきであること、または本発明のいずれかの実施形態にあることを意味するものではないことに留意すべきである。むしろ、特色および利点に言及する言語は、実施形態に関連して記載された特定の特色、利点、または特徴が、本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書全体での特色および利点の議論、ならびに類似の言語は、同じ実施形態を参照することができるが、必ずしもその必要性はない。
【0120】
さらに、本発明の記載された特色、利点、および特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせることができる。関連する技術に熟練した人は、本発明が、1または複数の特定の実施形態の特定の特徴または利点なしに実施され得ることを認識するであろう。他の実施形態では、追加の特徴および利点は、本発明の全ての実施形態には存在しないかもしれない特定の実施形態では認識され得る。
【0121】
本分野における通常の技術を有する者は、上述したような本発明を、異なる順序でのステップを用いて、および/または開示されているものとは異なる構成のハードウェア要素を用いて実施することができることを容易に理解するであろう。したがって、本発明は、これらの好ましい実施形態に基づいて説明されてきたが、本発明の精神および範囲内にとどまりながら、特定の変更、変形、および代替的な構成が明らかになることは、当業者には明らかであろう。したがって、本発明の範囲を決定するためには、添付の特許請求の範囲を参照すべきである。

図1
図2
図3
図4
図5
図6A
図6B
図6C
図6D
図7A
図7B
図8A
図8B
図9A
図9B
図9C
図9D
図9E
図10
図11
図12
【国際調査報告】