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

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

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

特表2023-544461深層学習ベースのドキュメントスプリッタ
<>
  • 特表-深層学習ベースのドキュメントスプリッタ 図1
  • 特表-深層学習ベースのドキュメントスプリッタ 図2
  • 特表-深層学習ベースのドキュメントスプリッタ 図3
  • 特表-深層学習ベースのドキュメントスプリッタ 図4
  • 特表-深層学習ベースのドキュメントスプリッタ 図5
  • 特表-深層学習ベースのドキュメントスプリッタ 図6
  • 特表-深層学習ベースのドキュメントスプリッタ 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-24
(54)【発明の名称】深層学習ベースのドキュメントスプリッタ
(51)【国際特許分類】
   G06N 20/00 20190101AFI20231017BHJP
   G06F 40/216 20200101ALI20231017BHJP
【FI】
G06N20/00
G06F40/216
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2020564880
(86)(22)【出願日】2020-11-10
(85)【翻訳文提出日】2021-03-31
(86)【国際出願番号】 US2020059763
(87)【国際公開番号】W WO2022066195
(87)【国際公開日】2022-03-31
(31)【優先権主張番号】202011041647
(32)【優先日】2020-09-25
(33)【優先権主張国・地域又は機関】IN
(31)【優先権主張番号】17/075,731
(32)【優先日】2020-10-21
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】100180781
【弁理士】
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【弁理士】
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】ルクマ タルワドカー
(72)【発明者】
【氏名】アイヤー ラダクリシュナン
(57)【要約】
電子ファイルをサブドキュメントに分割するためのシステム及び方法が提供される。電子ファイルが受け取られる。電子ファイルの複数の部分が、訓練済みの機械学習ベースのモデルを使用して分類される。分類は、電子ファイルのサブドキュメント内の複数の部分の相対位置を表す。電子ファイルは、該複数の部分の相対位置に基づいてサブドキュメントに分割される。サブドキュメントが出力される。

【特許請求の範囲】
【請求項1】
コンピュータによって実施される方法であって、
前記方法は、
訓練済みの機械学習ベースのモデルを使用して電子ファイルの複数の部分を、前記電子ファイルのサブドキュメント内の前記複数の部分の相対位置を表す分類で、分類することと、
前記複数の部分の相対位置に基づいて前記電子ファイルを前記サブドキュメントに分割することと、
前記サブドキュメントを出力することと、
を含むことを特徴とする方法。
【請求項2】
前記電子ファイルの前記サブドキュメント内の前記複数の部分の相対位置を表す分類は、サブドキュメントの最初の部分を表す分類と、サブドキュメントの最後の部分を表す分類と、サブドキュメントの前記最初の部分と前記最後の部分との間の部分を表す分類とを含むことを特徴とする、請求項1に記載の方法。
【請求項3】
訓練済みの機械学習ベースのモデルを使用して電子ファイルの複数の部分を分類することは、
前記電子ファイルの前記複数の部分の各々から抽出された関心の特徴を前記分類にマッピングすること
を含み、
前記関心の特徴は、ワードクラウド、ページ数、又はテキストに関連する特徴のうち一又は複数を含むことを特徴とする、請求項1に記載の方法。
【請求項4】
訓練済みの機械学習ベースのモデルを使用して電子ファイルの複数の部分を分類することは、
統計的チェッカを使用して、分類された前記複数の部分から誤分類された部分を検出することと、
手動分類のためユーザに前記誤分類された部分を提示することと、
をさらに含むことを特徴とする、請求項1に記載の方法。
【請求項5】
前記複数の部分の相対位置に基づいて前記電子ファイルを前記サブドキュメントに分割することは、
サブドキュメントの最初の部分であるとして分類される各部分の直前で前記電子ファイルを分割すること
を含むことを特徴とする、請求項1に記載の方法。
【請求項6】
前記電子ファイルの前記複数の部分は、前記電子ファイルの複数のページに対応することを特徴とする、請求項1に記載の方法。
【請求項7】
前記訓練済みの機械学習ベースのモデルには、訓練済みの深層学習モデルが含まれることを特徴とする、請求項1に記載の方法。
【請求項8】
前記訓練済みの機械学習ベースのモデルは、LSTM(長期短期記憶)アーキテクチャ、Bi-LSTM(双方向LSTM)アーキテクチャ、seq2seq(sequence-to-sequence)アーキテクチャのうちのいずれかに基づくことを特徴とする、請求項1に記載の方法。
【請求項9】
分類器を使用して前記サブドキュメントを分類すること
をさらに含むことを特徴とする、請求項1に記載の方法。
【請求項10】
コンピュータ命令を記憶するメモリと、
前記コンピュータ命令を実行するように構成された少なくとも1つのプロセッサと、
を備え、
前記コンピュータ命令は、
訓練済みの機械学習ベースのモデルを使用して電子ファイルの複数の部分を、前記電子ファイルのサブドキュメント内の前記複数の部分の相対位置を表す分類で、分類することと、
前記複数の部分の相対位置に基づいて前記電子ファイルを前記サブドキュメントに分割することと、
前記サブドキュメントを出力することと、
を前記少なくとも1つのプロセッサに実行させるように構成されていることを特徴とする方法。
【請求項11】
前記電子ファイルの前記サブドキュメント内の前記複数の部分の相対位置を表す分類は、サブドキュメントの最初の部分を表す分類と、サブドキュメントの最後の部分を表す分類と、サブドキュメントの前記最初の部分と前記最後の部分との間の部分を表す分類とを含むことを特徴とする、請求項10に記載の装置。
【請求項12】
訓練済みの機械学習ベースのモデルを使用して電子ファイルの複数の部分を分類することは、
前記電子ファイルの前記複数の部分の各々から抽出された関心の特徴を前記分類にマッピングすること
を含み、
前記関心の特徴は、ワードクラウド、ページ数、又はテキストに関連する特徴のうち一又は複数を含むことを特徴とする、請求項10に記載の装置。
【請求項13】
訓練済みの機械学習ベースのモデルを使用して電子ファイルの複数の部分を分類することは、
統計的チェッカを使用して、分類された前記複数の部分から誤分類された部分を検出することと、
手動分類のためユーザに前記誤分類された部分を提示することと、
をさらに含むことを特徴とする、請求項10に記載の装置。
【請求項14】
前記複数の部分の相対位置に基づいて前記電子ファイルを前記サブドキュメントに分割することは、
サブドキュメントの最初の部分であるとして分類される各部分の直前で前記電子ファイルを分割すること
を含むことを特徴とする、請求項10に記載の装置。
【請求項15】
非一時的なコンピュータ読み取り可能な媒体に格納されたコンピュータプログラムであって、
前記コンピュータプログラムは、
訓練済みの機械学習ベースのモデルを使用して電子ファイルの複数の部分を、前記電子ファイルのサブドキュメント内の前記複数の部分の相対位置を表す分類で、分類することと、
前記複数の部分の相対位置に基づいて前記電子ファイルを前記サブドキュメントに分割することと、
前記サブドキュメントを出力することと、
を少なくとも1つのプロセッサに実行させるように構成されていることを特徴とするコンピュータプログラム。
【請求項16】
前記電子ファイルの前記サブドキュメント内の前記複数の部分の相対位置を表す分類は、サブドキュメントの最初の部分を表す分類と、サブドキュメントの最後の部分を表す分類と、サブドキュメントの前記最初の部分と前記最後の部分との間の部分を表す分類とを含むことを特徴とする、請求項15に記載のコンピュータプログラム。
【請求項17】
前記電子ファイルの前記複数の部分は、前記電子ファイルの複数のページに対応することを特徴とする、請求項15に記載のコンピュータプログラム。
【請求項18】
前記訓練済みの機械学習ベースのモデルには、訓練済みの深層学習モデルが含まれることを特徴とする、請求項15に記載のコンピュータプログラム。
【請求項19】
前記訓練済みの機械学習ベースのモデルは、LSTM(長期短期記憶)アーキテクチャ、Bi-LSTM(双方向LSTM)アーキテクチャ、seq2seq(sequence-to-sequence)アーキテクチャのうちのいずれかに基づくことを特徴とする、請求項15に記載のコンピュータプログラム。
【請求項20】
分類器を使用して前記サブドキュメントを分類すること
をさらに含むことを特徴とする、請求項15に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年9月25日に出願されたインド特許出願番号202011041647及び2020年10月21日に出願された米国特許出願番号17/075,731の優先権を主張し、これらの開示は、参照によりその全体が本明細書に組み込まれる。
【0002】
本発明は、ロボティックプロセスオートメーション(RPA)に関し、詳細には、RPAにおけるドキュメント処理のための深層学習ベースのドキュメントスプリッタに関する。
【背景技術】
【0003】
ロボティックプロセスオートメーション(RPA)は、ソフトウェアロボットを使用してワークフローを自動化するプロセス自動化の一形態である。RPAを実装して、反復的及び/又は労働集約的なタスクを自動化して、コストを削減し効率を高め得る。RPAにおける1つ重要なタスクは、ドキュメント(文書)処理である。通常、ドキュメント処理は、複数のサブドキュメントを含む電子コンピュータファイルで実行される。例えば、このような電子コンピュータファイルには、請求書、報告書、保険フォームなどに対応するサブドキュメントが含まれ得る。例えばドキュメントのデジタル化など、多くのドキュメント処理タスクを実行するために、電子コンピュータファイルを複数のサブドキュメントに分割する必要がある。
【0004】
電子コンピュータファイルのドキュメント分割のための従来のアプローチは、電子コンピュータファイルにおけるキーワードの識別に依存している。しかし、従来のドキュメント分割のアプローチによるこのようなキーワード識別への依存は、例えば、キーワードの手動識別の必要、電子コンピュータファイルにおけるキーワードを見つけることの難しさ、複数のサブドキュメントが同一のキーワードを含む場合のキーワード衝突(コリジョン)、キーワード割り当てにおける人為的エラーなどの多くの欠点を有する。
【発明の概要】
【0005】
一又は複数の実施形態によれば、訓練済みの機械学習ベースのモデルを使用して電子ファイルをサブドキュメントに分割するためのシステム及び方法が提供される。電子ファイルが受け取られる。電子ファイルの複数の部分が、訓練済みの機械学習ベースのモデルを使用して分類される。分類は、電子ファイルのサブドキュメント内の複数の部分の相対位置を表す。電子ファイルは、該複数の部分の相対位置に基づいてサブドキュメントに分割される。サブドキュメントが出力される。
【0006】
一実施形態において、電子ファイルのサブドキュメント内の複数の部分の相対位置を表す分類は、サブドキュメントの最初の部分を表す分類と、サブドキュメントの最後の部分を表す分類と、サブドキュメントの最初の部分と最後の部分との間の部分を表す分類とを含む。電子ファイルの複数の部分は、電子ファイルの複数の部分の各々から抽出された関心の特徴を分類にマッピングすることによって、分類され得る。関心の特徴は、ワードクラウド、ページ数、又はテキストに関連する特徴のうち一又は複数を含み得る。
【0007】
一実施形態において、誤分類された部分が、統計的チェッカを使用して、分類された複数の部分から検出され、この誤分類された部分は、手動分類のためユーザに提示される。
【0008】
一実施形態において、電子ファイルは、サブドキュメントの最初の部分であるとして分類される各部分の直前で分割される。電子ファイルの複数の部分は、電子ファイルの複数のページに対応し得る。
【0009】
一実施形態において、訓練済みの機械学習ベースのモデルには、訓練済みの深層学習モデルである。訓練済みの機械学習ベースのモデルは、LSTM(長期短期記憶)アーキテクチャ、Bi-LSTM(双方向LSTM)アーキテクチャ、seq2seq(sequence-to-sequence)アーキテクチャのうちのいずれかに基づき得る。
【0010】
一実施形態において、サブドキュメントは、分類器を使用し分類される。
【0011】
本発明のこれら及び他の利点が、以下の詳細な説明及び添付の図面を参照することにより、当業者に明らかであろう。
【図面の簡単な説明】
【0012】
図1】本発明の一実施形態による、ロボティックプロセスオートメーション(RPA)を示すアーキテクチャ図である。
【0013】
図2】本発明の一実施形態による、デプロイされたRPAシステムの一例を示すアーキテクチャ図である。
【0014】
図3】本発明の一実施形態による、RPAシステムの簡略化されたデプロイメント例を示すアーキテクチャ図である。
【0015】
図4】本発明の一実施形態による、電子コンピュータファイルをサブドキュメントに分割する方法を示す。
【0016】
図5】本発明の一実施形態による、電子ファイルのブロック図表現である。
【0017】
図6】本発明の一実施形態による、電子ファイルの複数の部分を分類するために機械学習ベースのモデルを訓練する方法を示す。
【0018】
図7】本発明の一実施形態による、コンピューティングシステムのブロック図である。
【発明を実施するための形態】
【0019】
ロボティックプロセスオートメーション(RPA)は、ワークフロー及びプロセスを自動化するために使用される。図1は、一又は複数の実施形態によるRPAシステム100のアーキテクチャ図である。図1に示すように、RPAシステム100は、開発者が自動化プロセスを設計することを可能にするデザイナ102を含む。より詳細には、デザイナ102は、プロセスでアクティビティを実行するためのRPAプロセス及びロボットの開発及びデプロイメントを容易にする。デザイナ102は、アプリケーション統合、並びにサードパーティアプリケーション、管理情報技術(IT)タスク、及びコンタクトセンターオペレーションのためのビジネスプロセスの自動化のためのソリューションを提供し得る。デザイナ102の実施形態の1つの商業的な例は、UiPath Studio(商標)である。
【0020】
ルールベースのプロセスの自動化の設計において、開発者は、本明細書において「アクティビティ」として定義される、プロセスで開発されたカスタムセットのステップ間の実行順序及び関係を制御する。各アクティビティには、例えばボタンのクリック、ファイルの読み込み、ログパネルへの書き込みなどのアクションが含まれていてもよい。幾つかの実施形態において、プロセスがネストされ又は埋め込まれてもよい。
【0021】
一部の種類のプロセスには、シーケンス、フローチャート、有限状態機械(FSM)、及び/又はグローバル例外ハンドラが含まれ得るが、これらに限定されない。シーケンスは、線形プロセスに特に適している可能性があり、プロセスを混乱させることなく、あるアクティビティから別のアクティビティへのフローを可能にする。フローチャートは、より複雑なビジネスロジックに特に適している可能性があり、複数の分岐論理演算子によって、より多様な方法で決定の統合及びアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適している可能性がある。FSMは、実行時に有限数の状態を使用してもよく、それらの状態は、条件(即ち、遷移)又はアクティビティによってトリガされる。グローバル例外ハンドラは、実行エラーが発生したときのワークフローの振る舞いを決定したり、プロセスをデバッグしたりするのに特に適している可能性がある。
【0022】
プロセスがデザイナ102で開発されると、ビジネスプロセスの実行は、デザイナ102で開発されたワークフローを実行する一又は複数のロボット106を調整するコンダクタ104によって調整される。コンダクタ104の実施形態の1つの商用的な例は、UiPath Orchestrator(商標)である。コンダクタ104は、RPA環境におけるリソースの作成、監視、及びデプロイメントの管理を容易にする。一例において、コンダクタ104はウェブアプリケーションである。コンダクタ104は、サードパーティのソリューション及びアプリケーションとの統合ポイントとしても機能してもよい。
【0023】
コンダクタ104は、集中ポイントからロボット106を接続して実行することで、全てのRPAロボット106を管理してもよい。コンダクタ104は、プロビジョニング、デプロイメント、コンフィギュレーション、キューイング、監視(モニタリング)、ロギング、及び/又は相互接続性の提供を含むがこれらに限定されない様々な機能を有してもよい。プロビジョニングには、ロボット106とコンダクタ104(例えば、ウェブアプリケーションなど)の間の接続の作成及び保守が含まれてもよい。デプロイメントには、実行のために割り当てられたロボット106へのパッケージバージョンの正しい配信を保証することが含まれてもよい。コンフィギュレーションには、ロボット環境及びプロセスコンフィギュレーションの保守及び配信が含まれてもよい。キューイングには、キュー及びキューアイテムの管理の提供が含まれてもよい。監視には、ロボット識別データの追跡及びユーザ権限の維持が含まれてもよい。ロギングには、データベース(例えば、SQLデータベースなど)及び/又は他のストレージメカニズム(例えば、ElasticSearch(登録商標)など。これは、大規模なデータセットを記憶してすばやくクエリを実行する機能を提供する)へのログの記憶及びインデックス付けが含まれてもよい。コンダクタ104は、サードパーティのソリューション及び/又はアプリケーションのための通信の集中ポイントとして機能することで、相互接続性を提供してもよい。
【0024】
ロボット106は、デザイナ102に埋め込まれたプロセスを実行する実行エージェントである。ロボット106の幾つかの実施形態のうち1つの商用的な例は、UiPath Robots(商標)である。ロボット106の種類には、アテンディッドロボット108とアンアテンディッドロボット110が含まれ得るが、これらに限定されない。アテンディッドロボット108は、ユーザ又はユーザイベントによってトリガされ、同じコンピューティングシステム上で人間のユーザと一緒に動作する。アテンディッドロボット108は、人間のユーザが様々なタスクを達成するのを助け、人間のユーザ及び/又はユーザイベントによって直接トリガされてもよい。アテンディッドロボットの場合、コンダクタ104が、集中プロセス展開及びロギング媒体を提供してもよい。特定の実施形態において、アテンディッドロボット108は、ウェブアプリケーションで「ロボットトレイ」から又はコマンドプロンプトから開始できるのみである。アンアテンディッドロボット110は、仮想環境で操作不要で実行され、例えば大量のバックエンドプロセスのためなど、多くのプロセスを自動化するために使用できる。アンアテンディッドロボット110は、遠隔実行、監視、スケジューリング、及びワークキューのサポートの提供を担当してもよい。アテンディッドロボットとアンアテンディッドロボットの両方が、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などによって生成されたもの)、及びコンピューティングシステムアプリケーション(例えば、デスクトップ及びラップトップアプリケーション、モバイルデバイスアプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むがこれらに限定されない様々なシステム及びアプリケーションを自動化してもよい。
【0025】
幾つかの実施形態において、ロボット106は、デフォルトで、Microsoft Windows(登録商標)サービスコントロールマネージャー(SCM)が管理するサービスをインストールする。その結果、そのようなロボット106が、ローカルシステムアカウントでインタラクティブなWindows(登録商標)セッションを開き、Windows(登録商標)サービスの権限を有してもよい。幾つかの実施形態において、ロボット106は、ユーザのもとでロボット106がインストールされて、そのユーザと同じ権利をロボット106が有するユーザモードでインストールされてもよい。
【0026】
幾つかの実施形態におけるロボット106は、それぞれが特定のタスク専用である幾つかのコンポーネントに分割される。幾つかの実施形態におけるロボットコンポーネントには、SCM管理のロボットサービス、ユーザモードのロボットサービス、エグゼキュータ、エージェント、及びコマンドラインが含まれるが、これらに限定されない。SCM管理のロボットサービスは、Windows(登録商標)セッションを管理、監視してコンダクタ104と実行ホスト(即ち、ロボット106が実行されるコンピューティングシステム)の間のプロキシとして機能する。このようなサービスは、ロボット106の資格情報を託され、これを管理する。コンソールアプリケーションは、ローカルシステムのもとでSCMによって起動される。幾つかの実施形態におけるユーザモードロボットサービスは、Windows(登録商標)セッションを管理、監視し、コンダクタ104と実行ホストの間のプロキシとして機能する。ユーザモードロボットサービスは、ロボット106の資格情報を託され、これを管理してもよい。SCM管理のロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動されてもよい。エグゼキュータは、Windows(登録商標)セッションのもとで所定のジョブを実行してもよく(例えば、エグゼキュータはワークフローを実行してもよい)、エグゼキュータは、モニタ毎のドット/インチ(DPI)設定を認識していてもよい。エージェントは、システムトレイウィンドウで利用可能なジョブを表示するWindows(登録商標)Presentation Foundation(WPF)アプリケーションであってもよい。エージェントはこのサービスのクライアントであってもよい。エージェントは、ジョブの開始又は停止を要求し、設定を変更してもよい。コマンドラインはそのサービスのクライアントである。コマンドラインは、ジョブの開始を要求可能なコンソールアプリケーションであり、その出力を待つ。ロボットコンポーネントを分割することにより、開発者、サポートユーザを支援することができ、コンピューティングシステムが、各ロボットコンポーネントの実行内容の実行、識別、及び追跡をより容易に行うことができる。例えば、エグゼキュータとサービスに異なるファイアウォールルールを設定するなど、ロボットコンポーネント毎に特別な振る舞いが構成されてもよい。さらなる例として、幾つかの実施形態において、エグゼキュータは、モニタ毎のDPI設定を認識していてもよい。その結果、ワークフローが作成されたコンピューティングシステムの構成に関わらず、ワークフローが任意のDPIで実行されてもよい。
【0027】
図2は、一又は複数の実施形態によるRPAシステム200を示す。RPAシステム200は、図1のRPAシステム100であってもよいし、その一部であってもよい。「クライアント側」、「サーバ側」、又はこれらの両方が、本発明の範囲から逸脱することなく、任意の所望の数のコンピューティングシステムを含み得ることに留意されたい。
【0028】
この実施形態においてクライアント側に示すように、コンピューティングシステム202は、一又は複数のエグゼキュータ204、エージェント206、及びデザイナ208を含む。別の実施形態において、デザイナ208は同じコンピューティングシステム20で実行されていなくてもよい。エグゼキュータ204は(上記のようなロボットコンポーネントであってもよく、)プロセスを実行し、幾つかの実施形態において、複数のビジネスプロセスが同時に実行されてもよい。このような例において、エージェント206(例えば、Windows(登録商標)サービスなど)は、エグゼキュータ204を管理するための単一の接続ポイントである。
【0029】
幾つかの実施形態において、ロボットは、マシン名とユーザ名との間の関連付けを表す。ロボットは同時に複数のエグゼキュータを管理してもよい。同時に実行されている複数の対話型セッションをサポートするコンピューティングシステム(例えば、Windows(登録商標)Server 2012など)では、複数のロボットが同時に(例えば、高密度(HD)環境など)、それぞれ一意のユーザ名を使用する個別のWindows(登録商標)セッションで実行されてもよい。
【0030】
エージェント206はまた、ロボットのステータスを送り(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送り)、実行されるパッケージの必要なバージョンをダウンロードすることも担当する。幾つかの実施形態において、エージェント206とコンダクタ212との間の通信は、エージェント206によって開始される。通知シナリオの例において、エージェント206は、コンダクタ212によって後で使用されるWebSocketチャネルを開き、ロボットにコマンド(例えば、開始、停止など)を送ってもよい。
【0031】
この実施形態においてサーバ側に示すように、プレゼンテーション層は、ウェブアプリケーション214、Open Data Protocol(オープンデータプロトコル)(OData)Representative State Transfer(リプレゼンタティブステートトランスファー)(REST)Application Programming Interface(アプリケーションプログラミングインタフェース)(API)エンドポイント216、通知・監視API218を含む。サーバ側のサービス層は、API実装/ビジネスロジック220を含む。サーバ側の永続層は、データベースサーバ222及びインデクササーバ224を含む。コンダクタ212は、ウェブアプリケーション214、OData REST APIエンドポイント216、通知・監視API218、及びAPI実装/ビジネスロジック220を含む。
【0032】
様々な実施形態において、コンダクタ212のインタフェースで(例えば、ブラウザ210を介して)ユーザが実行する殆どのアクションが、様々なAPIを呼び出すことで実行される。このようなアクションには、ロボットでのジョブの開始、キュー内のデータの追加/削除、操作不要で実行するジョブのスケジューリングなどが含まれてもよいが、これらに限定されない。ウェブアプリケーション214は、サーバプラットフォームのビジュアル層である。このような実施形態において、ウェブアプリケーション214は、ハイパーテキストマークアップ言語(HTML)及びJavaScript(JS)を使用する。しかし、本発明の範囲から逸脱することなく、任意の所望のマークアップ言語、スクリプト言語、又は任意の他のフォーマットが使用されてもよい。このような実施形態において、ユーザは、コンダクタ212を制御するための様々なアクションを実行するため、ブラウザ210を介してウェブアプリケーション214からウェブページと対話する。例えば、ユーザは、ロボットグループを作成し、ロボットにパッケージを割り当て、ロボット毎に且つ/又はプロセス毎にログを分析し、ロボットを起動、停止させるなどしてもよい。
【0033】
ウェブアプリケーション214に加えて、コンダクタ212には、OData REST APIエンドポイント216を公開するサービス層も含まれる(或いは、本発明の範囲から逸脱することなく、他のエンドポイントが実装されてもよい)。REST APIは、ウェブアプリケーション214とエージェント206の両方によって使用される。この例示的な構成において、エージェント206は、クライアントコンピュータ上の一又は複数のロボットのスーパーバイザである。
【0034】
このような実施形態におけるREST APIは、コンフィギュレーション、ロギング、監視、及びキューイングの機能をカバーする。幾つかの実施形態において、コンフィギュレーションRESTエンドポイントが使用されて、アプリケーションユーザ、権限、ロボット、アセット、リリース、及び環境を定義、構成してもよい。ロギングRESTエンドポイントが使用されて、例えばエラー、ロボットによって送られた明示的なメッセージ、その他の環境固有の情報など、様々な情報をログに記録するのに有用であり得る。デプロイメントRESTエンドポイントがロボットによって使用されて、コンダクタ212でジョブ開始コマンドが使用される場合に実行する必要があるパッケージバージョンをクエリしてもよい。キューイングRESTエンドポイントは、例えばキューへのデータの追加、キューからのトランザクションの取得、トランザクションのステータスの設定など、キュー及びキューアイテムの管理を担当してもよい。監視RESTエンドポイントは、ウェブアプリケーション214及びエージェント206を監視してもよい。通知・監視API218は、エージェント314の登録、エージェント206へのコンフィギュレーション設定の配信、並びにサーバ及びエージェント206からの通知の送受信に使用されるRESTエンドポイントであってもよい。幾つかの実施形態において、通知・監視API218はまた、WebSocket通信を使用してもよい。
【0035】
サーバ側の永続層は、この例示的な実施形態では1対のサーバ、つまり、データベースサーバ222(例えば、SQLサーバなど)及びインデクササーバ224を含む。この実施形態のデータベースサーバ222は、ロボット、ロボットグループ、関連プロセス、ユーザ、ロール、スケジュールなどのコンフィギュレーションを記憶する。このような情報は、幾つかの実施形態において、ウェブアプリケーション214を介して管理される。データベースサーバ222は、キュー及びキューアイテムを管理してもよい。幾つかの実施形態において、データベースサーバ222は、(インデクササーバ224に加えて又はその代わりに)ロボットによってログに記録されたメッセージを記憶してもよい。幾つかの実施形態において任意であるインデクササーバ224は、ロボットによってログに記録された情報を記憶し、インデックスを付ける。特定の実施形態において、インデクササーバ224は、コンフィギュレーション設定を通じて無効にされてもよい。幾つかの実施形態において、インデクササーバ224は、オープンソースプロジェクトの全文検索エンジンであるElasticSearch(登録商標)を使用する。ロボットによって(例えば、ログメッセージ、行書き込みなどのアクティビティを使用して)ログに記録されたメッセージは、ロギングRESTエンドポイントを介してインデクササーバ224に送られてもよく、そこで将来の利用のためにインデックスが付けられてもよい。
【0036】
図3は、本発明の一又は複数の実施形態による、RPAシステム300の簡略化されたデプロイメント例を示すアーキテクチャ図である。幾つかの実施形態において、RPAシステム300は、図1図2の各々のRPAシステム100及び/又は200であってもよいし、それを含んでもよい。RPAシステム300は、ロボットを実行する複数のクライアントコンピューティングシステム302を含む。コンピューティングシステム302は、そこで実行されるウェブアプリケーションを介してコンダクタコンピューティングシステム304と通信可能である。次に、コンダクタコンピューティングシステム304は、データベースサーバ306及び任意のインデクササーバ308と通信する。図2図3に関して、これらの実施形態においてウェブアプリケーションが使用されているが、本発明の範囲から逸脱することなく、任意の適切なクライアント/サーバソフトウェアが使用されてもよいことに留意されたい。例えば、コンダクタは、クライアントコンピューティングシステム上の非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバ側アプリケーションを実行してもよい。
【0037】
図1のRPAシステム100、図2のRPAシステム200、及び/又は図3のRPAシステム300は、一又は複数のRPAロボットを使用して様々なRPAタスクを自動的に実行するように実装され得る。1つの重要なRPAタスクはドキュメント処理である。例えばドキュメントのデジタル化などの多くのドキュメント処理タスクでは、サブドキュメントに対してさらに下流(ダウンストリーム)のドキュメント処理を実行するために、電子ファイルを様々なサブドキュメントに分割する必要がある。各サブドキュメントは、例えば、請求書、報告書、保険フォームなどに対応し得る。本明細書に記載の実施形態は、訓練済みの機械学習ベースのモデルを使用して電子ファイルをサブドキュメントに分割することを提供する。電子ファイルの各部分は、一般的に訓練された機械学習ベースのモデルを使用してラベル付けされている。このラベル付けは、2つの連続するサブドキュメント間の部分の包含性を判断するのに役立つ。有利なことに、本明細書に記載の実施形態は、従来のキーワードベースのドキュメント分割のアプローチの欠点なしに、より正確なドキュメント分割の結果を提供し、これにより、より高品質の下流のドキュメント処理をもたらす。
【0038】
図4は、一又は複数の実施形態による、電子コンピュータファイルをサブドキュメントに分割する方法400を示す。方法400は、例えば図7のコンピューティングシステム700などの一又は複数の適切なコンピューティングデバイスによって実行され得る。
【0039】
ステップ402で、電子ファイルが受け取られる。電子ファイルは、例えば、PDF(ポータブルドキュメントフォーマット)などの任意の適切なフォーマットのコンピュータファイルである。電子ファイルは、コンピュータシステムの記憶装置又はメモリから以前に記憶された電子ファイルをロードすることによって、又は、リモートコンピュータシステムから送られた電子ファイルを受け取ることによって、受け取られる。
【0040】
電子ファイルは複数の部分を含む。一実施形態において、電子ファイルの各部分は、電子ファイルのページに対応する。しかし、電子ファイルの部分は、例えば電子ファイルの段落、電子ファイルのセクションなどの任意の適切な部分であり得ることを理解されたい。電子ファイルの部分は、様々なドキュメント種類のサブドキュメントに関連付けられる。例えば、部分は、例えば請求書、報告書、保険フォーム、又は任意の他の適切なサブドキュメントなどのサブドキュメントに関連付けられ得る。
【0041】
図5は、一又は複数の実施形態による、電子ファイル500のブロック図表現を示す。電子ファイル500は、図4のステップ402で受け取られた電子ファイルであり得る。電子ファイル500は、ページ502-A、502-B、502-C、・・・、502-X、502-Y、502-Z(本明細書では、総称してページ502という)を含む。ページ502は、電子ファイル500の任意の数のページを含み得る。ページ502は、電子ファイル500のページとして表されるが、ページ502は、電子ファイル502の任意の部分(例えば、段落、セクションなど)であり得ることを理解されたい。各ページ502-A、502-B、502-C、・・・、502-X、502-Y、502-Zは各々、複数の語(ワード)504-A、504-B、504-C、・・・、504-X、504-Y、504-Z(本明細書では、総称して語504という)を含む。
【0042】
図4に戻ると、ステップ404で、電子ファイルの複数の部分が、訓練済みの機械学習ベースのモデルを使用して分類される。分類は、電子ファイルのサブドキュメント内の部分の相対位置を表す。一実施形態において、分類は、IOB(inside-outside-begin(内部-外部-始まり)又はinside-other-begin(内部-他-始まり))フォーマットであり、サブドキュメント内の部分の相対位置を、内部分類、外部(又は他の)分類、始まり分類のうちのいずれかとして表す。始まり分類は、サブドキュメントの最初の部分を表し、外部分類はサブドキュメントの最後の部分を表し、内部分類は最初の部分と最後の部分との間の部分を表す。しかし、分類には、サブドキュメント内の部分の相対位置を表す他の適切な分類が含まれ得る。
【0043】
訓練済みの機械学習ベースのモデルは、電子ファイルを入力として受け取る。電子ファイルの各部分は、任意の数の語を含み得る。しかし、訓練済みの機械学習ベースのモデルは、所定の数の語(語のメタ機能を含む)のみを考慮する。この所定の語数は、機械学習ベースのモデルの訓練中に経験的に決定される。したがって、所定の語数より少ない部分については、そのような部分は、所定の語数に達するまでヌル(null)語を追加することによってヌルパディングされる。所定の語数を超える部分については、所定の語数に達するまで、部分の上部から下に、そして部分の下部から上に、語が、訓練済みの機械学習ベースのモデルによって考慮のために選択される。語は、部分の上部と下部から等しく選択され、或いは、部分の上部からより多くの語を又は部分の下部からより多くの語を選択するために重み付けされ得る。例えば、所定の語数が1ページあたり250であり、ある特定のページが400語を有する場合、所定の250の語数の70%がページの上部から選択され、所定の250の語数の30%がページの下部から選択されてもよい。この例では、ページの上部から175語が選択され、ページの下部から75語が選択されることになる。部分の上部と下部から語を選択することにより、テキストのメタデータ及び/又はプロパティが実際の語よりも優先され、部分(例えば、ページなど)のヘッダとフッタにおける有益な情報が保持される。所定の語数は、機械学習ベースのモデルの事前のオフライン又は訓練段階で決定され得る。一実施形態において、所定の語数は、訓練データセットの部分における語数の中央値として決定される。
【0044】
訓練済みの機械学習ベースのモデルは、電子ファイルの各部分から関心の特徴(関心のある特徴)を抽出し、複数の部分の各々について抽出された関心の特徴を分類にマッピングして、これにより、電子ファイルの複数の部分を分類する。関心の特徴は、任意の適切なフォーマットで表され得る。一実施形態において、関心の特徴は、テンソルの一部として含まれる。例えば、テンソルは、第1の次元として複数の部分のリストを、第2の次元として部分毎の語を、第3の次元として各語についてのテキストに関連する特徴のセットを含む3次元テンソルであってもよい。
【0045】
関心の特徴は、DOM(ドキュメントオブジェクトモデル)に関連する特徴であり得る。例えば、一実施形態において、関心の特徴は、電子ファイルの各部分についてのワードクラウドを含む。ワードクラウドは、部分における語に基づく該部分の範囲の表現である。ワードクラウドは、単語埋め込み(word embeddings)に基づいて生成される。単語埋め込みは、例えばGloVe(global vectors for word representation)アルゴリズムなどを使用して抽出された部分における語の数値ベクトル表現である。別の一実施形態において、関心の特徴は、ページの数又は長さを含む。例えば、ページ数「5ページ中2ページ」は、合計5ページのサブドキュメントの内部としてページを分類するために、そのページのフッタ又はヘッダにおいて識別されてもよい。別の一実施形態において、関心の特徴は、テキストに関連する特徴を含む。テキストに関連する特徴は、例えばテキストの文字の大きさ(例えば、小文字、大文字など)、テキストのフォント又はフォーマット(例えば、語の高さ、幅、フォントスタイル、長さ(例えば、境界ボックスを使用して決定される)、テキストの上部又は下部からの距離)、セクションの種類(例えば、段落、テーブル、ヘッダ)、又は任意の他の適切なテキストに関連する特徴などの、部分のテキストに関連する任意の特徴を含む。一実施形態において、電子ファイルから抽出された関心の特徴は、訓練済みの機械学習ベースのモデルによって分類にマッピングされる前に、正規化される。
【0046】
訓練済みの機械学習ベースのモデルの出力は、電子ファイルの各部分についての分類を識別する分類ベクトルであり得る。一実施形態において、分類ベクトルは、[inside outside begin(内部 外部 始まり)]フォーマットでone-hotでエンコードした分類ベクトルであり、ベクトルが1の場合、肯定的な分類を示し、ベクトルが0の場合、否定的な分類を示す。例えば、部分についての「1 0 0」のベクトルは、その部分が内部(inside)して分類されることを示し、「0 1 0」のベクトルは、その部分が外部(outside)として分類されることを示し、「0 0 1」のベクトルは、その部分が始まり(begin)して分類されることを示す。この分類ベクトルは、電子ファイルにおける各部分についてのベクトルを含む。一例において、分類ベクトルが、[[0 0 1],[1 0 0],[1 0 0],[0 1 0]]であり、これは、第1の部分が始まりとして分類され、第2の部分が内部として分類され、第3の部分が内部として分類され、第4の部分が外部として分類されることを示す。
【0047】
訓練済みの機械学習ベースのモデルは、例えば、ニューラルネットワークベースのモデル、人工ニューラルネットワークベースのモデルなどの、任意の適切な機械学習ベースのモデルであり得る。一実施形態において、機械学習ベースのモデルは、深層学習ベースのモデルである。一実施形態において、機械学習ベースのモデルは、LSTM(長期短期記憶)RNN(再帰型ニューラルネットワーク)アーキテクチャを使用して実装され得る。LSTM RNNは、入力ゲート、出力ゲート、及び/又は忘却ゲートを開閉することで制御される長期記憶を提供する。したがって、LSTM RNNは、エンコードされた特徴の記憶及びその後の検索を可能にし、これにより、電子ファイルの以前の部分の分類からのエンコードされた特徴に基づいて電子ファイルの複数の部分の分類を提供する。別の一実施形態において、機械学習ベースのモデルは、Bi-LSTM(双方向LSTM)RNNアーキテクチャを使用して実装され得る。Bi-LSTM RNNは、双方向通信を可能にし、電子ファイルにおける以前の部分の分類からのエンコードされた特徴と次の部分の分類からのエンコードされた特徴とに基づいて、電子ファイルの部分の分類を提供する。別の一実施形態において、機械学習ベースのモデルは、seq2seq(sequence-to-sequence)ネットワークアーキテクチャを使用して実装され得る。
【0048】
機械学習ベースのモデルは、事前のオフライン又は訓練段階で訓練データセットを使用しで電子ファイルの複数の部分を分類するために、訓練される。一実施形態において、機械学習ベースのモデルは、下記で詳述する図6の方法600にしたがって、訓練される。訓練されると、ステップ404で、訓練済みの機械学習ベースのモデルは、オンライン又は予測段階で電子ファイルの複数の部分を分類するために、初見のデータに適用される。
【0049】
一実施形態において、訓練済みの機械学習ベースのモデルによって電子ファイルの複数の部分の各々を分類した後、誤分類された部分を検出するために、統計的チェッカが適用される。この検出は、事前の訓練段階で正しい予測についてのsoftmaxスコアがガウス分布又は正規分布に従うという想定に基づいて実行される。事前の訓練段階で、各分類について、ガウス分布を仮定すると、その分布の最小偏差、最大偏差、平均偏差、標準偏差が、観察されたsoftmax値を使用して計算される。新たな予測(例えば、ステップ404での部分の分類)については、softmaxが訓練済みの機械学習ベースのモデルから取得される。閾値又はカットオフ値が次のような式(1)に従って計算される。
閾値=CEILING(平均-標準偏差) ・・・式(1)
ここで、CEILINGは、値を最も近い整数に切り上げることであり、平均と標準偏差は、事前の訓練段階で計算される。統計的チェッカは、softmax及び計算された閾値に基づいてガイダンスを提供する。ガイダンスは、softmaxの値が計算された閾値よりも小さい場合には訓練済みの機械学習ベースのモデルによる予測された分類が破棄され、そうでない場合には予測された分類が有効になるように、2値のガイダンスであり得る。統計的チェッカが誤分類された部分を識別した場合、誤分類された部分を含む電子ファイルが手動分類のためユーザに提示され得る。
【0050】
ステップ406で、電子ファイルが、部分の相対位置に基づいて、サブドキュメントに分割される。各サブドキュメントは、一又は複数の部分のシーケンスを含む。一実施形態において、電子ファイルは、サブドキュメントの最初の部分であるとして分類された各部分の直前で分割される。例えば、電子ファイルは、始まり分類を有する各部分の直前で分割され得る。したがって、電子ファイルは、例えば、サブドキュメントとして電子ファイルから分割された各々の間の部分のシーケンスを抽出することで、分割され得る。
【0051】
各サブドキュメントについての部分のシーケンスは、始まりとして分類される部分と、内部として分類される一又は複数の部分と、外部として分類される部分とを含む必要はないことを理解されたい。例えば、単一の部分を含むサブドキュメントが、始まりとして分類される1つの部分であるということもある。別の一例において、2つの部分のシーケンスを含むサブドキュメントが、始まりとして分類される1つの部分と外部として分類される他の部分とを含むこともある。
【0052】
ステップ408で、サブドキュメントが出力される。サブドキュメントは、例えば、コンピュータシステムの表示デバイス(例えば、図7のディスプレイ710)にサブドキュメントを表示させることによって、又は、コンピュータシステムのメモリ又は記憶装置(例えば、図7のメモリ706)にサブドキュメントを記憶することによって、出力され得る。
【0053】
一実施形態において、サブドキュメントは、RPAタスクを実行するためのさらなるドキュメント処理のために出力される。一例において、サブドキュメントは、例えば請求書、報告書、保険フォーム、又は任意の他の適切なドキュメントの種類などのドキュメント種類に従ってサブドキュメントと分類するための分類器に出力される。この分類器は、任意の適切な分類器であり得る。一例において、分類器は、機械学習ベースの分類器である。
【0054】
図6は、一又は複数の実施形態による、電子ファイルの複数の部分を分類するために機械学習ベースのモデルを訓練する方法600を示す。方法600のステップは、オフライン又は訓練段階で実行される。訓練されると、訓練済みの機械学習ベースのモデルが、オンライン又は予測段階で、電子ファイルの複数の部分を分類するために、適用される。一実施形態において、方法600に従って訓練された訓練済みの機械学習ベースのモデルは、図4のステップ404での予測段階で適用されて、電子ファイルの複数のファイルを分類し得る。訓練済みの機械学習ベースのモデルの適用(例えば、図4の方法400での予測段階で)に関して記載される特徴及び実施形態は、機械学習ベースのモデルの訓練(例えば、方法600での訓練段階で)についても適用可能であり得ることを理解されたい。方法600は、例えば図7のコンピューティングシステム700など一又は複数の適切なコンピューティングシステムによって実行され得る。
【0055】
ステップ602で、訓練データセットが受け取られる。訓練データセットは、一又は複数の電子訓練ファイルを含み、電子訓練ファイルの各々は、一又は複数の訓練サブドキュメントを含む。各訓練サブドキュメントは、訓練データセット内で識別され、機械学習ベースのモデルが手動のアノテーションを必要とすることなくサブドキュメント内の複数の部分の相対位置を推測することを可能にする。
【0056】
ステップ604で、関心の特徴が、訓練データセットから抽出される。この関心の特徴は、図4のステップ404に関して上記で説明した関心の特徴を含み得る。例えば、関心の特徴は、訓練サブドキュメントの部分についてのワードクラウド、ページの数若しくは長さ、又はテキストに関連する特徴を含み得る。
【0057】
ステップ606で、機械学習ベースのモデルが、抽出された関心の特徴に基づいて訓練データセットの複数の部分を分類するために、訓練される。機械学習ベースのモデルは、深層学習ベースのモデル又は任意の他の適切な機械学習ベースのモデルであり得る。一実施形態において、機械学習ベースのモデルは、LSTM RNN、Bi-LSTM RNN、又はseq2seqネットワークアーキテクチャを使用して、実装され得る。訓練中、機械学習ベースのモデルは、抽出された関心の特徴と分類との間のマッピングを学習する。一実施形態において、分類は、IOBフォーマットであるが、サブドキュメント内の複数の部分の相対位置を表す任意の他の適切な分類であってもよい。
【0058】
ステップ608で、訓練済みの機械学習ベースのモデルが出力される。訓練済みの機械学習ベースのモデルは、例えば、コンピュータシステムのメモリ又は記憶装置(例えば、図7のメモリ706)に訓練済みの機械学習ベースのモデルを記憶することによって、出力され得る。その後、訓練済みの機械学習ベースのモデルは、例えば図4のステップ404などで、オンライン又は予測段階で、電子ファイルの複数の部分を分類するために、メモリから取得され得る。
【0059】
本明細書に記載の実施形態は、約52,000ページで合計540のサブドキュメントの利用可能なデータセットを使用して、実験的に確認(バリデーション)された。この実験的な確認の結果、訓練の正解率は88%であり、確認の正解率は83%であった。
【0060】
有利なことに、本明細書に記載の実施形態は、機械学習ベースのモデルを訓練するための訓練データセットの事前のアノテーション又は分割を必要とすることなく、訓練済みの機械学習ベースのモデルを使用して、電子ファイルをサブドキュメントに分割することを提供する。訓練されると、訓練済みの機械学習ベースのモデルの再訓練は、予測段階で適用される前に、必要とされない。本明細書で記載の実施形態は、ユーザによる手動の確認を必要とせずに電子ファイルを分割するためのコスト効率の良いソリューションを提供し、また、従来のキーワードベースのドキュメント分割のアプローチの欠点を回避する。
【0061】
図7は、本発明の一実施形態による、図4図6に示す方法を含む、本明細書に記載の方法、ワークフロー、プロセスを実行するように構成されたコンピューティングシステム700を示すブロック図である。幾つかの実施形態において、コンピューティングシステム700は、本出願において図示及び/又は説明される一又は複数のコンピューティングシステムであり得る。コンピューティングシステム700は、情報を通信するためのバス702又は他の通信メカニズムと、情報を処理するためにバス702に接続されたプロセッサ704とを含む。プロセッサ704は、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数の例、及び/又はそれらのうちの任意の組み合わせを含む、任意の種類の汎用又は特定用途のプロセッサであり得る。プロセッサ704はまた、複数の処理コアを有してもよく、コアの少なくとも一部が、特定の機能を実行するように構成されてもよい。幾つかの実施形態において、複数並列処理が使用されてもよい。
【0062】
コンピューティングシステム700は、プロセッサ704によって実行される情報及び命令を記憶するためのメモリ706をさらに含む。メモリ706は、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、フラッシュメモリ、キャッシュ、例えば磁気若しくは光ディスクなどの静的記憶装置、又は任意の他の種類の非一時的なコンピュータ読み取り可能な媒体、又はこれらのうちの組み合わせのうちの任意の組み合わせから構成され得る。非一時的なコンピュータ読み取り可能な媒体は、プロセッサ704によってアクセス可能な任意の利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体、又はその両方を含み得る。媒体は、取り外し可能、取り外し不可能、又はその両方であり得る。
【0063】
さらに、コンピューティングシステム700は、任意の現在存在する又は将来実施される通信規格及び/又はプロトコルに従って無線及び/又は有線接続を介して通信ネットワークへのアクセスを提供するために、例えばトランシーバなどの通信デバイス708を含む。
【0064】
プロセッサ704は、バス702を介して、ユーザに情報を表示するのに適切なディスプレイ710にさらに接続される。また、ディスプレイ710は、タッチディスプレイ及び/又は任意の適切な触覚I/Oデバイスとして構成されてもよい。
【0065】
キーボード712と、例えばコンピュータマウス、タッチパッドなどのカーソル制御デバイス714とが、さらにバス702に接続されて、ユーザがコンピューティングシステムとインタフェースをとることを可能にする。しかし、特定の実施形態において、物理的なキーボード及びマウスが存在しなくてもよく、ユーザは、ディスプレイ710及び/又はタッチパッド(図示せず)を介してのみデバイスと対話してもよい。入力デバイスの任意の種類及び組み合わせが、設計上の選択事項として使用されてもよい。特定の実施形態において、物理的な入力デバイス及び/又はディスプレイが存在しない。例えば、ユーザは、コンピューティングシステム700と通信する別のコンピューティングシステムを介してリモートでコンピューティングシステム700と対話してもよく、或いは、コンピューティングシステム700は自律的に動作してもよい。
【0066】
メモリ706は、プロセッサ704によって実行されると機能を提供するソフトウェアモジュールを記憶する。該モジュールは、コンピューティングシステム700用のオペレーティングシステム716を含み、本明細書に記載されているプロセス又はその派生のプロセスの全て又は一部を実行するように構成される一又は複数の追加の機能モジュール718を含む。
【0067】
当業者は、「システム」が、本発明の範囲から逸脱することなく、サーバ、組込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、任意の他の適切なコンピューティングデバイス、又はデバイスの組み合わせとして具現化され得ることを理解するであろう。上記の機能を「システム」によって実行されるものとして示すことは、決して本発明の範囲を限定することを意図するものではなく、本発明の多くの実施形態の一例を示すことを意図する。実際、本明細書において開示される方法、システム、及び装置は、クラウドコンピューティングシステムを含むコンピューティング技術と整合するローカライズされ分散された形式で実装されてもよい。
【0068】
本明細書に記載されているシステム機能の一部は、実装の独立性をより強調するため、モジュールとして示されていることに留意されたい。例えば、モジュールは、カスタムの超大規模集積(VLSI)回路又はゲートアレイを含むハードウェア回路、ロジックチップ、トランジスタ、又は他のディスクリートコンポーネントなどの既製の半導体として実装されてもよい。モジュールは、例えばフィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックスプロセッシングユニットなどのプログラマブルハードウェアデバイスに実装されてもよい。モジュールは、様々な種類のプロセッサによる実行のため、ソフトウェアで少なくとも部分的に実装されてもよい。例えば、実行可能コードの識別されたユニットは、例えばオブジェクト、手順、又は機能として構成され得るコンピュータ命令の一又は複数の物理ブロック又は論理ブロックを含んでもよい。これにも関わらず、識別されたモジュールの実行可能ファイルは物理的に一緒に配置される必要はないが、論理的に結合されるとモジュールを含んでモジュールの上記目的を達成するような様々な場所に記憶された異種の命令を含んでもよい。さらに、モジュールは、本発明の範囲から逸脱することなく、コンピュータ読み取り可能な媒体に記憶されてもよく、コンピュータ読み取り可能な媒体は、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、及び/又はデータを記憶するために使用される他のそのような非一時的なコンピュータ読み取り可能な媒体であってもよい。実際、実行可能コードのモジュールは、単一の命令であっても多数の命令であってもよく、異なるプログラム間で複数の異なるコードセグメントにわたり、複数のメモリデバイスにわたって分散されてもよい。同様に、動作データが、識別されて、本明細書においてモジュール内に示されてもよく、任意の適切な形式で具体化され、任意の適切な種類のデータ構造内で構成されてもよい。動作データは、単一のデータセットとしてまとめられてもよく、或いは、異なるストレージデバイスを含む異なる場所に分散されてもよく、少なくとも部分的に、単にシステム又はネットワーク上の電子信号として存在してもよい。
【0069】
上記は本開示の原理を単に例示する。したがって、当業者は、本明細書で明示的に説明又は示されていないが、本開示の原理を具現化してその主旨及び範囲内に含まれる様々な構成を考案できるであろうことを理解するであろう。さらに、本明細書に記載されている全ての例及び条件付き文言は、主に、本開示の原理と本技術を発展させるため発明者によって提供された概念とを読み手が理解するのを助けるための教育目的のみを意図しており、そのような具体的に記載された例及び条件に限定しないものとして解釈されるべきである。さらに、本開示の原理、態様、及び実施形態、並びにこれらの具体的な例を記載する本明細書における全ての記述は、その構造的均等物及び機能的均等物の両方を包含することが意図される。さらに、そのような均等物には、現在知られている均等物と将来開発される均等物の両方が含まれることが意図される。

図1
図2
図3
図4
図5
図6
図7
【国際調査報告】