(57)【要約】      （修正有）【課題】異なる特性に応じてユーザをグルーピングする認知ロボットアナライザのための方法を提供する。【解決手段】認知ロボットアナライザのためのプロセスは、複数のユーザ特性のうちの各ユーザ特性について、第１プロセスを実行する１つ以上の第１アクションを特定する第１データ、および、第１プロセスに類似するとラベリングされた第２プロセスを実行する１つ以上の第２アクションを特定する第２データを受け取るステップ５１０と、予測モデルをトレーニングするステップ５２０と、ユーザにより実行されたアクションを特定するデータを受け取るステップ５３０と、アクションのうちの１つ以上に対して予測モデルを適用するステップ５４０と、１つ以上のアクションにより実行されるプロセスを、特定のプロセスに類似すると分類するステップ５５０と、ユーザを特定のユーザ特性と関連付けるステップ５６０と、を含む。【選択図】図５
2018116688.tif 000002
【特許請求の範囲】
【請求項１】
複数のユーザ特性のうちの各ユーザ特性について、第１プロセスを実行する１つ以上の第１アクションを特定する第１データ、および、前記第１プロセスに類似するとラベリングされた第２プロセスを実行する１つ以上の第２アクションを特定する第２データを受け取ることと、
各ユーザ特性について前記第１データを用いかつ各ユーザ特性について前記第２データを用いて、アクションを前記第１プロセスおよび前記第２プロセスに類似するまたは類似しないと分類するように構成された予測モデルをトレーニングすることと、
ユーザにより行われたアクションを特定するデータを受け取ることと、
前記予測モデルを前記アクションのうちの１つ以上に適用することと、
前記アクションのうちの前記１つ以上に前記予測モデルを適用することに基づいて、前記１つ以上のアクションにより実行されるプロセスを特定のユーザ特性と関連する特定のプロセスに類似すると分類することと、
前記ユーザを前記特定のユーザ特性と関連付けることと、を含む、
コンピュータ実行される方法。
【請求項２】
前記ユーザが前記ユーザ特性と関連付けられていることを確認するデータを受け取ることと、
前記ユーザが前記ユーザ特性と関連付けられていることを確認する前記データに基づいて前記予測モデルをアップデートすることと、
を含む、請求項１に記載の方法。
【請求項３】
前記ユーザが前記ユーザ特性と関連付けられていないことを確認するデータを受け取ることと、
前記ユーザが前記ユーザ特性と関連付けられていないことを確認する前記データに基づいて前記予測モデルをアップデートすることと、
を含む、請求項１に記載の方法。
【請求項４】
複数のユーザ特性のうちの各ユーザ特性について、第１プロセスを実行する１つ以上の第１アクションを特定する第１データ、および、前記第１プロセスに類似するとラベリングされた第２プロセスを実行する１つ以上の第２アクションを特定する第２データを受け取ることは、
前記１つ以上の第１アクションを実行するデバイスから第１スクリーンキャプチャーデータを受け取ることと、
前記１つ以上の第２アクションを実行するデバイスから第２スクリーンキャプチャーデータを受け取ることと、
前記第１スクリーンキャプチャーデータに対してコンピュータビジョン技術を実行することによって前記第１データを生成することと、
前記第２スクリーンキャプチャーデータに対してコンピュータビジョン技術を実行することにより前記第２データを生成することと、
を含む、請求項１に記載の方法。
【請求項５】
複数のユーザ特性のうちの各ユーザ特性について、第１プロセスを実行する１つ以上の第１アクションを特定する第１データおよび第１プロセスに類似するとラベリングされた第２プロセスを実行する１つ以上の第２アクションを特定する第２データを受け取ることは、
前記１つ以上の第１アクションを実行するデバイスから第１ユーザ入力データを受け取ることと、
前記１つ以上の第２アクションを実行するデバイスから第２ユーザ入力データを受け取ることと、
前記第１ユーザ入力データを分析することにより前記第１データを生成することと、
前記第２ユーザ入力データを分析することにより前記第２データを生成することと、
を含む、請求項１に記載の方法。
【請求項６】
複数のユーザ特性のうちの各ユーザ特性について、第１プロセスを実行する１つ以上の第１アクションを特定する第１データおよび前記第１プロセスに類似するとラベリングされた第２プロセスを実行する１つ以上の第２アクションを特定する第２データを受け取ることは、
前記１つ以上の第１アクションを実行するデバイスから第１ネットワークトラフィックデータを受け取ることと、
前記１つ以上の第２アクションを実行するデバイスから第２ネットワークトラフィックデータを受け取ることと、
前記第１ネットワークトラフィックデータを分析することにより前記第１データを生成することと、
前記第２ネットワークトラフィックデータを分析することにより前記第２データを生成することと、
を含む、請求項１に記載の方法。
【請求項７】
前記第１プロセスおよび前記第２プロセスが同じハードウェアまたは同じソフトウェアを使用するならば前記第１プロセスは前記第２プロセスに類似する、請求項１に記載の方法。
【請求項８】
ユーザ特性は、会社、地理的位置、演算ユニット、演算役割、または専門技術レベルを特定する、請求項１に記載の方法。
【請求項９】
アクションは、キープレス、マウスクリック、スクリーンタッチ、フォアグラウンドプロセス変更、シーン変更、ネットワークリクエスト、またはネットワーク受信を含む、請求項１に記載の方法。
【請求項１０】
プロセスは、ウェブサイトを見ること、１つのタイプの電子メール添付ファイルを受け取ること、１つのタイプのデータを入力すること、ウェブ検索を実行すること、または１つのタイプのソフトウェアを使用することを含む、請求項１に記載の方法。
【請求項１１】
同じプロセスを実行するとラベリングされた１つ以上のアクションのグループを特定するデータを受け取ることと、
１つ以上のアクションの各グループの中の、変数情報と関連付けられた特定のアクションを特定することと、
前記同じプロセスを実行するとラベリングされた前記１つ以上のアクションの前記グループを特定する前記データを用いかつ変数情報と関連付けられた前記特定のアクションを用いて、（ｉ）１つ以上のアクションのグループを、前記同じプロセスを実行するかまたは前記同じプロセスを実行しないものとして分類し、および（ｉｉ）前記１つ以上のアクションの前記グループに属する、変数情報と関連付けられたアクションを特定するように構成された予測モデルをトレーニングすることと、
アクションの所与のグループを特定するデータを受け取ることと、
アクションの前記所与のグループに前記予測モデルを適用することと、
アクションの前記所与のグループに前記予測モデルを適用することに基づいて、アクションの前記所与のグループを前記同じプロセスを実行するものとして分類するとともにアクションの前記所与のグループに属する変数情報と関連付けられた所与のアクションを特定することと、
アクションの前記所与のグループを前記同じプロセスを実行するものとして分類するデータならびに前記所与のアクションおよび前記変数情報を特定するデータを出力することと、
を含む、コンピュータ実行される方法。
【請求項１２】
アクションの前記所与のグループが前記同じプロセスを実行することを確認するデータを受け取ることと、
アクションの前記所与のグループが前記同じプロセスを実行することを確認する前記データに基づいて前記予測モデルをアップデートすることと、
を含む、請求項１１に記載の方法。
【請求項１３】
アクションの前記所与のグループが前記同じプロセスを実行しないことを確認するデータを受け取ることと、
アクションの前記所与のグループが前記同じプロセスを実行しないことを確認する前記データに基づいて前記予測モデルをアップデートすることと、
を含む、請求項１１に記載の方法。
【請求項１４】
同じプロセスを実行するとラベリングされた１つ以上のアクションのグループを特定するデータを受け取ることは、
前記１つ以上のアクションの前記グループのうちの１つを実行するデバイスからスクリーンキャプチャーデータを受け取ることと、
前記スクリーンキャプチャーデータに対してコンピュータビジョン技術を実行することにより前記データを生成することと、
を含む、請求項１１に記載の方法。
【請求項１５】
同じプロセスを実行するとラベリングされた１つ以上のアクションのグループを特定するデータを受け取ることは、
前記１つ以上のアクションの前記グループのうちの１つを実行するデバイスからユーザ入力データを受け取ることと、
前記ユーザ入力データを分析することにより前記データを生成することと、
を含む、請求項１１に記載の方法。
【請求項１６】
同じプロセスを実行するとラベリングされた１つ以上のアクションのグループを特定するデータを受け取ることは、
前記１つ以上のアクションの前記グループのうちの１つを実行するデバイスからネットワークトラフィックデータを受け取ることと、
前記ネットワークトラフィックデータを分析することにより前記データを生成することと、
を含む、請求項１１に記載の方法。
【請求項１７】
アクションは、キープレス、マウスクリック、スクリーンタッチ、フォアグラウンドプロセス変更、シーン変更、ネットワークリクエスト、またはネットワーク受信を含む、請求項１１に記載の方法。
【請求項１８】
アクションの前記所与のグループに対して前記予測モデルを適用することに基づいて、アクションの前記所与のグループに属するノイズアクションと関連する付加的アクションを特定することを含む、
請求項１１に記載の方法。
【請求項１９】
前記所与のアクションに対応する変数のタイプを判定することを含む、
請求項１１に記載の方法。
【請求項２０】
前記所与のアクションおよび前記変数情報を特定する前記データは、前記所与のアクションに基づく前記変数情報のための名前を含む、請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、一般的には機械学習に関する。
【背景技術】
【０００２】
コンピュータ上で行われる手動操作は、反復的で時間がかかることがある。例えば、ウェブフォーム提出に応答して電子メールを送信することができ、各ウェブフォーム提出について、新しい電子メールを作成するためにウィンドウを開くボタンをクリックし、そのウェブフォーム提出からの情報をウィンドウにコピーするボタンをクリックし、その電子メールの本文のためにテキストを書くキーをクリックし、その電子メールを送信するボタンをクリックするためにコンピュータと手動でインタラクトしなければならないであろう。
【発明の概要】
【課題を解決するための手段】
【０００３】
異なる特性に応じてユーザをグルーピングすることは、従来、ユーザ自身が提供する特性に、または雇用者等の他者が提供する特性に依拠している。ユーザを特性に応じてグルーピングするために、システムは、トレーニングデータからユーザのアクションを分析し、機械学習、データクラスタリング、およびディープラーニングを用いて予測モデルを生成する。予測モデルは、ユーザが実行するプロセスを特定して、それらのプロセスを、既知の特性に対応する他のプロセスに関連付けるように構成される。換言すれば、予測モデルは、初めに、ユーザが実行するプロセスを特定する。予測モデルは、次に、そのプロセスのアクションに基づいてユーザの特性を特定する。アクションは、予測モデルが特性を特定するためには不十分であり得る。例えば、英国に位置するユーザは、そのテキスト中に“ｃｏｌｏｕｒ”というスペルを含むウェブサイトを訪れる可能性がより高いであろう。この例では、そのウェブサイトを訪れることはプロセスであり、そのテキスト“ｃｏｌｏｕｒ”を見ることはアクションである。ユーザは米国にいて英国のユーザから送られた電子メールを読むかもしれないから、“ｃｏｌｏｕｒ”というスペルを伴う電子メールを読むユーザが英国に位置しているという可能性が同様に高いとは言えないであろう。この例では、その電子メールを読むことがプロセスであり、“ｃｏｌｏｕｒ”というテキストを見ることがアクションである。従って、システムは、予測モデルを用いてプロセスを特定し、次に類似するプロセスのアクションに基づいてユーザに特性を割り当てる。
【０００４】
システムは、アクションの各グループが同じプロセスを実行する場合、ユーザのアクションのグループにおいて変数を特定するためにも予測モデルを用いることができる。システムは、それぞれ少なくとも１つのプロセスを実行するアクションを特定するトレーニングデータを受け取る。そのトレーニングデータを用いて、システムは、ユーザが実行するアクションを受け取ることに戻づいてプロセスを特定するように構成された予測モデルを生成する。ユーザは、マウスをクリックし、スクリーンをスワイプし、キーパッドをタイピングし、イメージおよびテキストを見ることができ、予測モデルは、インボイスを入力するなどのアクションを、それらのアクションに基づいて特定することができる。システムは、それらのアクションを同じプロセスのためのアクションの他のグループと比較し、アクションのそれらのグループにおいて様々であり得るアクションを特定する。システムは、プロセス全体の部分ではないノイズや不要なアクションであり得るアクションをも特定する。ノイズおよび変数を特定することにより、システムはより効率的にプロセスを自動化することができる。
【０００５】
本明細書に記載される主題の革新的な局面は１つの方法に実装され得、その方法は、複数のユーザ特性のうちの各ユーザ特性について、第１プロセスを実行する１つ以上の第１アクションを特定する第１データ、および、第１プロセスに類似するとラベリングされる第２プロセスを実行する１つ以上の第２アクションを特定する第２データを受け取るアクションと、各ユーザ特性について第１データを用いかつ各ユーザ特性について第２データを用いて、アクションを第１プロセスおよび第２プロセスに類似するまたは類似しないと分類するように構成された予測モデルをトレーニングするアクションと、ユーザにより実行されたアクションを特定するデータを受け取るアクションと、その予測モデルをこれらのアクションのうちの１つ以上に適用するアクションと、これらのアクションのうちの１つ以上にその予測モデルを適用することに基づいて、その１つ以上のアクションにより行われるプロセスを特定のユーザ特性と関連する特定のプロセスに類似すると分類するアクションと、ユーザをその特定のユーザ特性と関連付けるアクションと、を含む。
【０００６】
これらのおよび他の実装は、それぞれ次の特徴事項を任意に含むことができる。アクションは、ユーザがユーザ特性と関連付けられていることを確認するデータを受け取ること、および、ユーザがユーザ特性と関連付けられていることを確認するデータに基づいて予測モデルをアップデートすること、をさらに含む。アクションは、ユーザがユーザ特性と関連付けられていないことを確認するデータを受け取ることと、ユーザがユーザ特性と関連付けられていないことを確認するデータに基づいて予測モデルをアップデートすることと、をさらに含む。複数のユーザ特性のうちの各ユーザ特性について、第１プロセスを実行する１つ以上の第１アクションを特定する第１データおよび第１プロセスに類似するとラベリングされた第２プロセスを実行する１つ以上の第２アクションを特定する第２データを受け取るアクションは、１つ以上の第１アクションを実行するデバイスから第１スクリーンキャプチャーデータを受け取ることと、１つ以上の第２アクションを実行するデバイスから第２スクリーンキャプチャーデータを受け取ることと、第１スクリーンキャプチャーデータに対してコンピュータビジョン技術を実行することにより第１データを生成することと、第２スクリーンキャプチャーデータに対してコンピュータビジョン技術を実行することにより第２データを生成することと、を含む。
【０００７】
複数のユーザ特性のうちの各ユーザ特性について、第１プロセスを実行する１つ以上の第１アクションを特定する第１データおよび第１プロセスに類似するとラベリングされた第２プロセスを実行する１つ以上の第２アクションを特定する第２データを受け取るアクションは、１つ以上の第１アクションを実行するデバイスから第１ユーザ入力データを受け取ることと、１つ以上の第２アクションを実行するデバイスから第２ユーザ入力データを受け取ることと、第１ユーザ入力データを分析することにより第１データを生成することと、第２ユーザ入力データを分析することにより第２データを生成することと、を含む。複数のユーザ特性のうちの各ユーザ特性について、第１プロセスを実行する１つ以上の第１アクションを特定する第１データおよび第１プロセスに類似するとラベリングされた第２プロセスを実行する１つ以上の第２アクションを特定する第２データを受け取るアクションは、１つ以上の第１アクションを実行するデバイスから第１ネットワークトラフィックデータを受け取ることと、１つ以上の第２アクションを実行するデバイスから第２ネットワークトラフィックデータを受け取ることと、第１ネットワークトラフィックデータを分析することにより第１データを生成することと、第２ネットワークトラフィックデータを分析することにより第２データを生成することと、を含む。第１プロセスおよび第２プロセスが同じハードウェアまたは同じソフトウェアを使用するならば、第１プロセスは第２プロセスに類似する。ユーザ特性は、会社、地理的位置、演算ユニット、演算役割、または専門技術レベルを特定する。アクションは、キープレス、マウスクリック、スクリーンタッチ、フォアグラウンドプロセス変更、シーン変更、ネットワークリクエスト、またはネットワーク受信を含む。プロセスは、ウェブサイトを見ること、１つのタイプの電子メール添付ファイルを受け取ること、１つのタイプのデータを入力すること、ウェブ検索を実行すること、または１つのタイプのソフトウェアを使用することを含む。
【０００８】
この局面の他の実装は、これらの方法の操作を実行するようにそれぞれ構成された、対応するシステム、装置、およびコンピュータ記憶デバイスに記録されたコンピュータプログラムを含む。
【０００９】
本明細書に記載される主題の他の革新的局面は１つの方法において実装され得、その方法は、同じプロセスを実行するとラベリングされた１つ以上のアクションのグループを特定するデータを受け取るアクションと、１つ以上のアクションの各グループの中の、変数情報と関連付けられた特定のアクションを特定するアクションと、同じプロセスを実行するとラベリングされた１つ以上のアクションのグループを特定するデータを用いかつ変数情報と関連付けられた特定のアクションを用いて、（ｉ）１つ以上のアクションのグループを、同じプロセスを実行するかまたは同じプロセスを実行しないものとして分類し、および（ｉｉ）１つ以上のアクションのグループに属する、変数情報と関連付けられたアクションを特定するように構成された予測モデルをトレーニングするアクションと、アクションの所与のグループを特定するデータを受け取るアクションと、アクションの所与のグループに予測モデルを適用するアクションと、アクションの所与のグループに予測モデルを適用することに基づいて、アクションの所与のグループを同じプロセスを実行するものとして分類するとともにアクションの所与のグループに属する変数情報と関連付けられた所与のアクションを特定するアクションと、アクションの所与のグループを同じプロセスを実行するものとして分類するデータならびに所与のアクションおよび変数情報を特定するデータを出力するアクションと、を含む。
【００１０】
これらのおよび他の実装は、それぞれ、次の特徴事項のうちの１つ以上を任意に含む。アクションは、アクションの所与のグループが同じプロセスを実行することを確認するデータを受け取ることと、アクションの所与のグループが同じプロセスを実行することを確認するデータに基づいて予測モデルをアップデートすることと、をさらに含む。アクションは、アクションの所与のグループが同じプロセスを実行しないことを確認するデータを受け取ることと、アクションの所与のグループが同じプロセスを実行しないことを確認するデータに基づいて予測モデルをアップデートすることと、をさらに含む。同じプロセスを実行するとラベリングされた１つ以上のアクションのグループを特定するデータを受け取るアクションは、１つ以上のアクションのグループのうちの１つを実行するデバイスからスクリーンキャプチャーデータを受け取ることと、スクリーンキャプチャーデータに対してコンピュータビジョン技術を実行することによりデータを生成することと、を含む。
【００１１】
同じプロセスを実行するとラベリングされた１つ以上のアクションのグループを特定するデータを受け取るアクションは、１つ以上のアクションのグループのうちの１つを実行するデバイスからユーザ入力データを受け取ることと、ユーザ入力データを分析することによりデータを生成することと、を含む。同じプロセスを実行するとラベリングされた１つ以上のアクションのグループを特定するデータを受け取るアクションは、１つ以上のアクションのグループのうちの１つを実行するデバイスからネットワークトラフィックデータを受け取ることと、ネットワークトラフィックデータを分析することによりデータを生成することと、を含む。アクションは、キープレス、マウスクリック、スクリーンタッチ、フォアグラウンドプロセス変更、シーン変更、ネットワークリクエスト、またはネットワーク受信を含む。アクションは、アクションの所与のグループに予測モデルを適用することに基づいて、アクションの所与のグループに属するノイズアクションと関連する付加的アクションを特定することをさらに含む。アクションは、所与のアクションに対応する１つのタイプの変数を判定することをさらに含む。所与のアクションおよび変数情報を特定するデータは所与のアクションに基づく変数情報のための名前を含む、請求項１１に記載の方法。
【００１２】
この局面の他の実装は、これらの方法の操作を実行するようにそれぞれ構成された、対応するシステム、装置、およびコンピュータ記憶デバイスに記録されたコンピュータプログラムを含む。
【００１３】
本明細書に記載される主題の特定の実装は、次の利点のうちの１つ以上を実現するように実装され得る。システムは、ユーザを、ユーザが実際に実行するアクションに基づく特性に基づいてグループに割り当てることによって、セキュリティを改善することができる。各グループは、種々のセキュリティパーミッションに結び付けられ得る。システムは、プロセスを完成するには不要であるかもしれないアクションを特定することによってプロセス中の非能率事項をも特定することができる。
【００１４】
本明細書に記載された主題の１つ以上の実装は、添付図面と以下の説明において明らかにされる。主題の他の特徴、局面、および利点は、説明、図面、および請求項から明らかになるであろう。
【図面の簡単な説明】
【００１５】
【図１】認知ロボットアナライザのための例示システムを示す。
【図２】認知ロボットアナライザのための例示システムを示す。
【図３】認知ロボットアナライザのための例示システムを示す。
【図４】類似するプロセスを実行するアクションの例示グループを示す。
【図５】認知ロボットアナライザのための例示プロセスを示す。
【図６】認知ロボットアナライザのための例示プロセスを示す。
【図７】コンピューティングデバイスおよびモバイルコンピューティングデバイスの例を示す。
【発明を実施するための形態】
【００１６】
種々の図において同様の参照番号および名称は同様の要素を示す。
【００１７】
図１は、認知ロボットアナライザのための例示システム１００を示す。簡単に、かつ以下でより詳しく記載されるように、システム１００はユーザの、コンピューティングデバイスとの以前のインタラクションに基づくトレーニングデータを受け取る。トレーニングデータは、ユーザのインタラクションが実行するプロセスとユーザの特性とを特定する。システム１００は、他のユーザのコンピューティングデバイスとのインタラクションを分析することにより他のユーザに特性を割り当てるために予測モデルを生成する。システム１００は、その割り当てられた特性に応じてユーザをグルーピングすることができる。
【００１８】
図１に示されている例では、システム１００は、ユーザ１０２、１０４、および１０６に由来するトレーニングデータを受け取る。ユーザ１０２は、ウェブサイトｔｉｍｅｓ．ｃｏ．ｕｋを訪れることにより、コンピューティングデバイス１０８とインタラクトする。ユーザ１０４は、コンピューティングデバイス１１０とインタラクトして、“Ｗｈａｔ  ｃｏｌｏｕｒ  ａｍ  Ｉ？”に関連するクイズに書き込みをする。ユーザ１０６は、コンピューティングデバイス１１２とインタラクトし、サーチクエリ“エレベータ修理”を入力する。コンピューティングデバイス１０８、１１０、および１１２の各々は、携帯電話、タブレット、ラップトップコンピュータ、デスクトップコンピュータ、時計、または他の、タッチスクリーン、キーボード、マイクロフォン、ポインティングデバイス、アンテナ、カメラ等のデバイスを通して入力を受け取るように構成された任意のデバイスなど、ネットワークを介して通信するように構成されたデバイスであり得る。コンピューティングデバイス１０８、１１０、および１１２の各々は、データをスクリーン、スピーカ、または触覚フィードバックデバイスに出力するようにも構成される。
【００１９】
ユーザデータ１１４からトレーニングデータを生成するために、システム１００は入力および出力データを監視し収集するように構成される。システム１００は、ウェブサイトｔｉｍｅｓ．ｃｏ．ｕｋを訪れているユーザに関連するデータを含み得るスクリーンキャプチャーデータを収集することができる。システム１００は、データ１１４に対して画像認識および光学的文字認識を実行することができる。データ１１４は、アドレスバーがｔｉｍｅｓ．ｃｏ．ｕｋウェブアドレスを含んでいるｔｉｍｅｓ．ｃｏ．ｕｋウェブサイトを訪れているブラウザを図示するスクリーンキャプチャーデータを含むことができる。システム１００は、コンピューティングデバイス１０８から送受信されるネットワークトラフィックを監視することもできる。ネットワークトラフィックは、ｔｉｍｅｓ．ｃｏ．ｕｋサーバからコンピューティングデバイス１０８へ送られるデータパケットおよびコンピューティングデバイス１０８からｔｉｍｅｓ．ｃｏ．ｕｋサーバへ送られるデータパケットを含み得る。データ１１４は、コンピューティングデバイス１０８により受け取られたユーザ入力をも含み得る。ユーザ入力は、キーボードプレス、マウスの位置決めおよびクリック、タッチデータ、マイクロフォンを通して受け取られたオーディオデータ、またはカメラを通して受け取られたビジュアルデータを含み得る。システム１００は、１秒ごとにスクリーンデータをキャプチャーするなどしてデータ１１４を所定間隔でキャプチャーし、あるいはユーザがマウスをクリックするなどしてユーザがデータを入力したときにスクリーンデータ１１４をキャプチャーすることができる。
【００２０】
システム１００は、データ１１６およびデータ１１８からトレーニングデータを生成することもできる。データ１１６および１１８は、スクリーンキャプチャーデータ、ネットワークトラフィックデータ、およびユーザ入力データを含み得る。例えば、データ１１６は、ユーザ１０４が“Ｗｈａｔ  ｃｏｌｏｕｒ  ａｍ  Ｉ？”クイズに対してデータを入力することを含むスクリーンキャプチャーデータを含み得る。データ１１８は、ユーザ１０６がサーチクエリ“エレベータ修理”を入力することに関連するネットワークトラフィックデータを含み得る。データ１１４、１１６、および１１８は、それぞれ、プロセスデータをも含み得る。プロセスデータは、対応するコンピューティングデバイス上で現在実行中のプロセスに関連する。例えば、種々のオペレーティングシステムのプロセスおよび基本的コンピューティングプロセスの他に、コンピューティングデバイス１０８はブラウザプロセスを実行していることがある。プロセスデータは、各プロセスが利用する処理パワーの量、またはパーセンテージをも含み得る。プロセスデータは、そのプロセスに割り当てられたメモリの量をも含み得る。
【００２１】
幾つかの実装では、データ１１４、１１６、および１１８は、ユーザ、ユーザの雇用、ユーザの位置に関連するデータ、または他の類似のタイプのデータをも含み得る。例えば、データ１１４は、ユーザ１０２の位置が英国にあることを示すデータを含み得る。データ１１６も、ユーザ１０４の位置が英国にあることを示すデータを含み得る。データ１１８は、ユーザ１０６の位置が米国にあることを示すデータを含み得る。加えて、データ１１４は、ユーザ１０２を、財務部で働いている会計士として記述するデータを含み得る。データ１１４は、ユーザ１０２が新米のあるいは若手の会計士であることを示すこともできる。同様に、データ１１８は、ユーザ１０６を購買部の契約担当職員として記述するデータを含み得る。データ１１８は、ユーザ１０６が熟練したあるいは上級の契約担当職員であることを示すこともできる。幾つかの実装では、このデータはユーザにより入力される。例えば、ユーザ１０５は、データを収集する権限をユーザがシステム１００に与えるときに、雇用関連データを入力することができる。幾つかの実装では、システム１００は、会社が維持している人的資源データベースなどのデータストアからそのデータを取り出す。
【００２２】
システム１００は、データ１１４、１１６、および１１８を受け取り、次にデータ１１４、１１６、および１１８を用いてトレーニングデータを生成する。トレーニングデータを生成するために、システム１００は、データ１１４、１１６、および１１８をプロセスラベラー１２０に提供する。プロセスラベラー１２０は、各ユーザ１０２、１０４、および１０６により実行されているアクションに、特定のプロセスを実行しているとラベリングする。プロセスラベラー１２０は、ユーザ１０２により実行されているアクションならびに他のコンピューティングデバイス１０８データを含むデータ１１４に、ウェブコンテンツをブラウズし、ニュースを読み、またはインターネットアクティビティのプロセスを実行しているとラベリングすることができる。プロセスラベラー１２０は、一定数のプロセスラベルをアクションの各グループに付けることができる。例えば、プロセスラベラー１２０は、アクションの各グループに１つ、３つ、または５つのラベルを付けることができる。プロセスラベラー１２０は、アクションの各グループに、そのアクションのグループにどのラベルを付けられるかによって、可変数のプロセスラベルを付けることもできる。
【００２３】
プロセスラベラー１２０は、コンピューティングデバイス１１０のアクションおよびデータに、オンラインクイズまたはインターネットアクティビティを仕上げるプロセスを実行しているとラベリングすることができる。プロセスラベラー１２０は、コンピューティングデバイス１１２のアクションおよびデータに、サーチクエリを入力するプロセスを実行しているとラベリングすることができる。プロセスラベラー１２０は、アクションのグループに、ルールの所定のセットに従ってラベリングすることができる。例えば、アクションがデータをサーチエンジンに提供することを含んでいるならば、プロセスラベラー１２０はそれらのアクションに、サーチクエリを入力しかつウェブコンテンツをブラウズしているとラベリングする。ラベリングは、アクションを良く調べて自身の判断に基づいてラベルを付ける個人によっても実行され得る。例えば、ラベルは、ユーザ１０２、１０４、および１０６によって選択され得る。この場合、ユーザは、データ１１４、１１６、および１１８を提供することに同意し、次にそのデータのために１つ以上のラベルを選択することもできる。ラベルは、プロセスラベラー１２０が特定のラベルの中から選択をすることができるだけであるように、予め定義され得る。プロセスラベラー１２０は、アクションに任意のラベルを付けることもできる。
【００２４】
幾つかの実装では、システム１００および下記の他のシステムは、グルーピングモジュールを含み得る。グルーピングモジュールは、互いに類似するアクションのシリーズを自動的にグルーピングすることができる。グルーピングモジュールは、アクションのシリーズを特定するラベルを付けることもできる。幾つかの実装では、ラベルが正確であることを確認するためにアクションのシリーズを特定するラベルを個人が再調査することができる。幾つかの実装では、グルーピングモジュールがラベルを付ける代わりに個人がラベルを付けることができる。アクションのシリーズは、ユーザにより連続的に実行されるアクションまたはユーザによりほとんど連続的に実行されるアクションであり得る。アクションのシリーズは、複数のユーザにより実行されるアクションでもあり得る。幾つかの実装では、グルーピングモジュールは、類似するアクションを特定するために、階層クラスタリング、セントロイドベースのクラスタリング、分散ベースのクラスタリング、または密度ベースのクラスタリングなどのクラスタ分析を使用することができる。システム１００および下記の他のシステムの他のコンポーネントは、そのコンポーネントの対応する機能を実行するために、グルーピングモジュールにより生成されたデータを使用することができる。
【００２５】
プロセスラベラー１２０がデータ１１４、１１６、および１１８の各々にラベリングすると、システム１００は、そのデータを特性ラベラー１２２に提供する。特性ラベラー１２２は、データ１１４、１１６、および１１８の各々に１つ以上の特定の特性を付ける。幾つかの実装では、特性は、特性データストア１２４から選択される。幾つかの実装では、特性ラベラー１２２は、特性を特定し、それらを特性データストア１２４にストアする。図１に示されている例では、データ１１４および１１６から特定される特性は、ユーザ１０２および１０４が英国に位置していることである。データ１１８から特定される特性は、ユーザ１０６が米国に位置していることである。特性ラベラー１２２は、次に、これらのラベルを、システム１００が使用し得るように特性データストア１２４にストアすることができる。
【００２６】
特性ラベラー１２２は、プロセスに対応するアクションの各グループに２つ以上の特性を割り当てることができる。例えば、特性ラベラー１２２は、英国というラベルと若手会計士というラベルとをデータ１１４に付けることができる。特性ラベラー１２２は、特性ラベルをデータ１１４、１１６、および１１８から直接抽出することができる。特性ラベラー１２２は、データ１１４、１１６、または１１８に含まれていて特性データストア１２４内のラベル、例えば英国および米国、に対応するラベルを特定することができる。幾つかの実装では、特性ラベラー１２２により割り当てられる特性は、予測モデルトレーナ１２６のためのトレーニングデータを生成している個人により行われ得る。幾つかの実装では、特性ラベラー１２２により割り当てられる特性は、個人によりチェックされベリファイされる。幾つかの実装では、特性ラベラー１２２は、特性ラベルを付けるためにクラスタリング技術および文脈インテリジェンスを使用する。幾つかの実装では、特性ラベラー１２２は、自己学習コンポーネントを含むように構成される。例えば、特性ラベラー１２２は、アクションの将来のグループのためにより正確に特性ラベルを付けるようにラベリングプロセスを調整するために機械学習を使用することができる。特性ラベラー１２２は、前もって特性でラベリングされたアクションを含むトレーニングデータを分析することができる。システム１００において示されているプロセスが完了した後、ラベリングされたアクションおよびプロセスは、特性ラベラー１２２の特性ラベリング機能を調整調節するために特性ラベラー１２２に提供され得る。幾つかの実装では、システム１００および下記の他のシステムのコンポーネントであって特性ラベルを特定して付ける他のコンポーネントは、類似する機械学習局面を含み得る。機械学習局面は、本明細書全体において記載される他の機械学習局面に類似し得る。
【００２７】
システム１００は、様々なプロセスラベルおよび特性ラベルでラベリングされたデータを予測モデルトレーナ１２６に提供する。予測モデルトレーナ１２６は、ユーザがコンピューティングデバイスで実行するアクションにラベルを付けるように設計されている予測モデルを生成する。予測モデルトレーナ１２６は、予測モデルを生成して予測モデルデータストア１２８にストアする。予測モデルトレーナ１２６は、ニューラルネットワークを用いて予測モデルを生成する。一例では、予測モデルトレーナ１２６は、ユーザがｃｏｌｏｒの代わりにｃｏｌｏｕｒというスペルを用いるならばそのユーザが英国にいると特定するモデルを生成することができる。しかし、予測モデルトレーナ１２６は、ユーザが選択する他のスペル、ユーザが訪れるウェブサイト、ユーザが実行する入力アクションなどの多くの要素を考慮に入れるようにモデルをトレーニングすることもできる。１つの要素では、ラベルを割り当てるために不十分であるかもしれない。幾つかの実装では、予測モデルトレーナ１２６は、各特性のためにモデルを生成することができる。例えば、ユーザの位置、ユーザの雇用職位、ユーザを雇用している部などを特定するモデルがあり得る。
【００２８】
予測モデルデータストア１２８にストアされている予測モデルで、システム１００は、様々なユーザのアクション、プロセス、および特性を特定することができる。図１に示されている例では、ユーザ１３０はコンピューティングデバイス１３２とインタラクトする。ユーザ１３０は、ウェブサイトｍａｉｌ．ｃｏ．ｕｋを用いて電子メールにアクセスする。電子メールに、ユーザ１３０は“Ｗｈａｔ  ｉｓ  ｙｏｕｒ  ｆａｖｏｕｒｉｔｅ  ｃｏｌｏｕｒ？”と書く。コンピューティングデバイス１３２は、ユーザ１３０により実行される様々なアクションを検出するように構成されているシステム１００の様々なコンポーネントと、ネットワークを介して、通信する。それらのコンポーネントは、コンピューティングデバイス１３２のスクリーンのイメージをキャプチャーするように構成されているイメージキャプチャラー１３６を含む。それらのコンポーネントは、様々なタイプのユーザ入力を検出するように構成されたユーザ入力検出器１３８をも含む。それらのコンポーネントは、コンピューティングデバイス１３２から受け取られ送信されたネットワークデータを監視するように構成されたネットワークリスナー１４０をも含む。幾つかの実装では、それらのコンポーネントは、フォアグラウンドで動作しているプロセスを含むコンピューティングデバイス１３２により実行されているプロセスを読み出すためにコンピューティングデバイス１３２にクエリするように構成されたデバイスを含む。
【００２９】
イメージキャプチャラー１３６は、周期的間隔を置いてデバイス１３２のディスプレイに示されているデータをキャプチャーするように構成される。例えば、イメージキャプチャラー１３６は、５秒ごとにスクリーンショットをキャプチャーすることができる。イメージキャプチャラー１３６は、ユーザ入力検出器１３８により指令された通りにスクリーンをキャプチャーすることもできる。例えば、イメージキャプチャラー１３６は、ユーザがマウスをクリックしあるいはスクリーンにタッチしたときにスクリーンをキャプチャーすることができる。スクリーンショットをキャプチャーする他に、イメージキャプチャラー１３６は、スクリーンショットに対して光学的文字認識を実行することもできる。イメージキャプチャラー１３６は、アドレスバーの中のｍａｉｌ．ｃｏ．ｕｋのウェブアドレスおよびスクリーン上のテキスト“Ｗｈａｔ  ｉｓ  ｙｏｕｒ  ｆａｖｏｕｒｉｔｅ  ｃｏｌｏｕｒ？”を特定することができる。イメージキャプチャラー１３６は、画像認識を実行することもできる。例えば、イメージキャプチャラー１３６は、有名人の絵画、歴史的人物、人気のあるタイプのソフトウェアのスプラッシュスクリーンなどを特定することもできる。
【００３０】
ユーザ入力検出器１３８は、マウスクリック、キーボードプレス、スクリーンタッチ、プリントジョブ、カメラキャプチャー、マイクロフォン入力、スピーカ出力など、ユーザ入力および出力を様々なタイプのユーザ入力デバイスを通して検出するように構成される。図１に示されている例では、ユーザ入力検出器１３８は、ユーザが、他のキープレスに加えてキーｗ−ｈ−ａ−ｔ−スペース−ｉ−ｓ−スペース−ｙ−ｏ−ｏ−バックスペース−ｕ−ｒをタイピングしたことを検出する。ユーザ入力検出器１３８は、ポインタがピクセル２４８×５８６に位置したときにユーザがマウスをクリックしたことも検出することができる。
【００３１】
ネットワークリスナー１４０は、コンピューティングデバイス１３２によって送受信されるネットワークデータパケットトラフィックを検出するように構成される。ネットワークリスナー１４０は、ｍａｉｌ．ｃｏ．ｕｋサーバからデータを求めるリクエストに関連するデータパケットを受け取ることができる。ｍａｉｌ．ｃｏ．ｕｋサーバは、コンピューティングデバイス１３２にデータパケットを戻すことができる。コンピューティングデバイス１３２で実行中のプロセスに関連するデータを受け取るように構成されているプロセス検出器は、ブラウザがフォアグラウンドで実行中であることを示すデータを受け取ることができる。プロセス検出器は、スプレッドシートプログラムおよびｐｄｆビューワなど、他のプロセスがバックグラウンドで実行中であることを示すデータを受け取ることができる。プロセス検出器は、ユーザがｐｄｆプログラムをフォアグラウンドに切り替え、次にブラウザをフォアグラウンドに戻す時点でデータを受け取ることができる。
【００３２】
システム１００は、ユーザ１３０によりコンピューティングデバイス１３２上で行われているアクティビティ１３４に関連するデータをアクションアイデンティファイア１４２に提供する。アクションアイデンティファイアは、イメージキャプチャラー１３６、ユーザ入力検出器１３８、ネットワークリスナー１４０、および、場合によっては、プロセス検出器から受け取ったデータに基づいてユーザにより実行されているアクションを特定するように構成される。アクションアイデンティファイア１４２は、実行されるアクションを判定するために、それらのコンポーネントから受け取ったデータと、データの各ピースのタイミングデータとを比較する。例えば、アクションアイデンティファイア１４２は、特定の時点でポインタがピクセル２４８×５８６に位置していた時にユーザがマウスをクリックしたことを示すデータを受け取る。アクションアイデンティファイア１４２は、スクリーンキャプチャーデータを調べて、そのピクセルが“送る”というテキストの中に位置すると判定する。アクションアイデンティファイアは、ネットワークデータを調べて、アクションアイデンティファイア１４２が熟知していないかもしれないエンコーディングによってのみ特定され得る特定のユーザ選択ボタンの選択に関連するデータをコンピューティングデバイス１３２が送ったことをネットワークトラフィックが示すと判定することもできる。このデータに基づいて、アクションアイデンティファイア１４２は、ユーザが“送る”ボタンをマウスで選択したと判定することができる。
【００３３】
アクションアイデンティファイア１４２は、様々なレベルのグラニュラリティでアクションを検出するように構成可能である。例えば、アクションアイデンティファイア１４２は、各文字キーストロークを１つのアクションと特定しないように構成され得る。代わりに、アクションアイデンティファイア１４２は、スペースバー、エンターキー、または他の句読点キーをキーイングし終わることにより“ｙｏｕｒ”あるいは“ｆａｖｏｕｒｉｔｅ”などの語全体を入力したと特定することができる。アクションアイデンティファイア１４２は、各キーストロークを、ｙ−ｏ−ｕ−ｒが４つのキーストロークアクションであるように、１つのアクションと特定するようにも構成され得る。
【００３４】
アクションアイデンティファイア１４２は、ユーザ１３０により行われる連続するアクションを特定するデータをプロセスアイデンティファイア１４４に提供する。アクションアイデンティファイア１４２により特定されるアクションは、ブラウザを開くこと、ウェブアドレスを入力すること、ｃｏｍｐｏｓｅ、“ｗｒｉｔｅ  Ｗｈａｔ  ｉｓ  ｙｏｕｒ  ｆａｖｏｕｒｉｔｅ  ｃｏｌｏｕｒ”、を選択すること、ｕｓｅｒ＠ｍａｉｌ．ｃｏ．ｕｋを入力すること、およびｓｅｎｄを選択することを含み得る。プロセスアイデンティファイア１４４は、予測モデル１２８にアクセスして、ユーザ１３０がアクションアイデンティファイア１４２により特定されたアクションで実行しているプロセスを特定するように構成される。プロセスアイデンティファイア１４４は、それらのアクションに対応する最も本当らしいプロセスを選択する。プロセスアイデンティファイア１４４は、特定のプロセスがそれらのアクションに対応する公算を示す尤度スコアを生成することができる。プロセスアイデンティファイア１４４は、ユーザが電子メールを作成していることの０．８６のスコアを計算し得る。他のスコアは、ユーザが他のユーザとチャットしていることについての０．６１、および、ユーザがソーシャルメディアウェブサイトでコメントを入力していることについての０．５８であり得る。この場合、プロセスアイデンティファイア１４４は、ユーザ１３０が電子メールを作成しているらしいと判定する。幾つかの実装では、プロセスアイデンティファイア１４４は、様々なコンピューティングデバイスからのデータ同士を比較し、実行されているアクション同士を比較することができる。例えば、プロセスアイデンティファイア１４４は、ユーザがテキストを入力している間にコンピューティングデバイスからデータを受け取ることができる。ほぼ同時に、別のコンピューティングデバイスのスクリーンに類似のテキストが出現する。プロセスアイデンティファイア１４４は、その２つのコンピューティングデバイスのアクション同士をリンクさせて、両方のユーザが互いにチャットし合っていると判定することができる。幾つかの実装では、プロセスアイデンティファイア１４４は、対応するスコアが１つのスレショルドを満たすことに基づいて、アクションに対応する２つ以上のプロセスを特定することができる。例えば、プロセスアイデンティファイア１４４は、電子メールを作成することおよびインターネットをブラウズすることなど、０．８というスレショルドより大きなスコアを有するプロセスを特定することができる。
【００３５】
プロセスアイデンティファイア１４４は、アクションに対応するプロセスを特定すると、それらのアクションおよび対応するプロセスを特定するデータを特性アサイナー１４６に提供する。特性アサイナー１４６は、特性データストア１２４にアクセスするとともに、幾つかの実装では、予測モデル１２８にアクセスする。特性アサイナー１４６は、実行されたプロセスを考慮しながらユーザが実行したアクションに基づいて様々な特性を特定することができる。例えば、ユーザ１３０が電子メールを作成していてスペル“ｃｏｌｏｕｒ”および“ｆａｖｏｕｒｉｔｅ”を使用するならば、ユーザ１３０は特性１４８を有し、英国に位置しているらしい。特性アサイナー１４６は、ユーザが電子メールを受け取ってテキスト中の“経歴”および“教育”を含む書類を見ていることに基づいてそのユーザが人事部で働いているなどの特性を割り当てることもできる。特性アサイナー１４６は、特性データストア１２４内の各特性についてスコアを計算することができる。特性アサイナー１４６は、その特性に、他の特性スコアを上回るスコアを割り当てることができる。代わりに、特性アサイナー１４６は、特性にスレショルドを満たすスコアを割り当てることができる。
【００３６】
幾つかの実装では、システム１００は、予測モデルトレーナ１２６にフィードバックを提供することができる。フィードバックは、予測モデルトレーナ１２６に追加のデータを提供することにより予測モデル１２８の精度を高めることができる。特性コンファメーション１５０は、自身に割り当てられた特性をコンファームまたはリジェクトするユーザ１３０などのユーザからフィードバックを受け取ることができる。特性コンファメーションまたはリジェクト１５０は、その特性が割り当てられたユーザ１３０から必ず受け取られるとは限らない。例えば、追加のユーザが、割り当てられた特性を再調査することができる。
【００３７】
幾つかの実装では、ユーザを特性に割り当てることにより、それらのユーザがアクセスを有するシステムのセキュリティを高めることができる。ユーザは、ユーザの会社での雇用職位に基づいて割り当てられるアクセスおよびパーミッションを持つことができる。類似する職位にあるユーザにより実行されるプロセスに基づいて、システム１００は、その職位にある若手グループが実行するプロセスとその職位にある熟練グループが実行するプロセスとを特定することができる。熟練グループにより実行されるプロセスは、幾つかの追加プロセスを含み得る。熟練したユーザにより実行されるこれらのプロセスの全てに対するアクセスを若手ユーザに提供する代わりに、会社は、その職位がアクセスを有するプロセスをユーザの年功序列特性に基づいて減らすことによってセキュリティを改善することができる。
【００３８】
図２は、認知ロボットアナライザのための例示システム２００を示す。手短に、かつ下でより詳しく記載されるように、システム２００は、ユーザのコンピューティングデバイスとの以前のインタラクションに基づくトレーニングデータを受け取る。トレーニングデータは、ユーザのインタラクションが実行するプロセスと、変数データを表現するアクションとを特定する。システム２００は、他のユーザのコンピューティングデバイスとのインタラクションにプロセスを割り当てるとともに、同じプロセスを実行するインタラクションのグループにおいて変数を特定する予測モデルを生成する。システム２００は、ノイズ、あるいはプロセス全体と関連しないアクションをも特定することができる。
【００３９】
図２に示されている例示では、システム２００は、ユーザ２０２、２０４、および２０６に由来するトレーニングデータを受け取る。ユーザ２０２は、コンピューティングデバイス２０８とインタラクトし、インボイス処理ソフトウェアを使用して、２０１７年２月２日期限のＡＢＣベンダーから受け取られたインボイスを入力する。ユーザ２０４は、コンピューティングデバイス２１０とインタラクトし、インボイス処理ソフトウェアを使用して、１００ドルの額のＲＳＴベンダーから受け取られたインボイスを入力する。ユーザ２０６は、コンピューティングデバイス２１２とインタラクトし、人事ソフトウェアを使用して、開発者の職位に対する、アリスという名前の応募者に関するデータを入力する。コンピューティングデバイス２０８、２１０、および２１２の各々は、携帯電話、タブレット、ラップトップコンピュータ、デスクトップコンピュータ、時計、または他の、タッチスクリーン、キーボード、マイクロフォン、ポインティングデバイス、アンテナ、カメラ等のデバイスを通して入力を受け取るように構成された任意のデバイスなど、ネットワークを介して通信するように構成されたデバイスであり得る。コンピューティングデバイス２０８、２１０、および２１２の各々は、データをスクリーン、スピーカ、または触覚フィードバックデバイスに出力するようにも構成される。
【００４０】
図１のシステム１００と同様に、システム２００は、入力および出力データを監視し収集することによってトレーニングデータを生成するように構成される。システム２００は、スクリーンキャプチャーデータを収集し、画像認識、光学的文字認識を実行し、ネットワークトラフィックを監視し、キーボードプレス、マウス位置およびクリック、タッチデータ、マイクロフォンを通して受け取られたオーディオデータ、あるいはカメラを通して受け取られたビジュアルデータを検出することができる。システム２００は、所定の間隔を置いて、またはマウスクリックなどのデータを受け取ったことに応答して、このデータを収集することができる。
【００４１】
システム２００は、コンピューティングデバイスにより実行され各ユーザにより使用されるコンピューティングプロセスおよびソフトウェアに関連するプロセスデータを収集することができる。システム２００は、ユーザ、ユーザの雇用、ユーザの位置に関連するデータ、または他の類似タイプのデータを収集することもできる。そのデータは、その会社におけるユーザの年功序列を記述することができる。このデータはユーザにより提供され得るか、あるいは、システム２００は、会社により維持されている人事データストアからデータを検索することができる。
【００４２】
システム２００は、データ２１４、２１６、および２１８をプロセスラベラー２２０に提供する。プロセスラベラー１２０と同様に、プロセスラベラー２２０は、ユーザ２０２、２０４、および２０６により実行されたアクションに１つ以上のプロセスを実行しているとラベリングする。プロセスラベラー２２０は、データ２１４および２１６にそれぞれインボイスを入力するプロセスを実行しているとラベリングする。プロセスラベラー２２０は、データ２１８に、履歴書を人事データストアに入力するプロセスを実行しているとラベリングする。
【００４３】
システム２００は、データ２１４、２１６、および２１８ならびにプロセスラベルを変数アイデンティファイア２２２に提供する。変数アイデンティファイア２２２は、類似するプロセスのアクションにおける変数を特定する。例えば、変数アイデンティファイア１２２は、データ２１４および２１６の間で変数を特定することができる。データ２１４は、テキストＡＢＣおよび日付２０１７年２月２日を含む。データ２１６は、テキストＲＳＴおよび数１００を含む。これら２つのプロセスは、インボイスを入力するという同じラベルを共有しているので。幾つかの実装では、変数アイデンティファイア２２２は、各変数に関連するデータを特定し、かつ、場合によってはストアすることができる。例えば、変数アイデンティファイア２２０は、ＡＢＣおよびＲＳＴをベンダーの名前と特定し、２０１７年２月２日を期限と特定し、１００をインボイス額と特定することができる。変数アイデンティファイア２２０は、ベンダー、期限、および額などのデータを変数データストア２２４にストアすることができる。同様に、データ２１８については、変数アイデンティファイア２２２は、変数アリスおよび開発者を特定することができる。特性ラベラー１２２の場合と同じく、変数アイデンティファイア２２２は、データ２１４、２１６、および２１８を調べて各プロセスの各実行で変化しそうなデータ部分を特定する一人以上の個人により実装され得る。
【００４４】
システム２００は、様々なプロセスラベルおよび変数アイデンティファイアでラベリングしたデータを予測モデルトレーナ２２６に提供する。予測モデルトレーナ１２６と同様に、予測モデルトレーナ２２６は、ユーザがコンピューティングデバイスで実行するアクションにラベルを付けるように設計されている予測モデルを生成する。予測モデルトレーナ２２６は、予測モデルを生成して予測モデルデータストア２２８にストアする。予測モデルトレーナ２２６は、ニューラルネットワークを用いて予測モデルを生成する。一例においては、もしユーザがインボイス処理プログラムにアクセスして、ベンダー、期限、および額を特定すると思われるデータを入力したならば、予測モデルトレーナ２２６は、ユーザがベンダーインボイスを入力するプロセスを実行しているとするモデルを生成することができる。しかし、予測モデルトレーナ２２６は、語のスペル、使用された他のソフトウェア、訪れたウェブサイトなどの他の要素を考慮に入れるようにモデルをトレーニングすることもできる。ラベルを割り当てるには１つの要素では不十分であろう。幾つかの実装では、予測モデルトレーナ２２６は、各プロセスのためにモデルを生成することができる。例えば、インボイスを入力することを特定するモデル、履歴書を入力することを特定するモデル、電子メールを送ることを特定するモデル、カレンダーアポイントメントを入力することを特定するモデル、などがあり得る。
【００４５】
予測モデルデータストア２２８に予測モデルがストアされていれば、システム２００は、アクション、プロセス、および変数を特定できる状態にある。図２に示されている例では、ユーザ２３０はコンピューティングデバイス２３２とインタラクトする。ユーザ２３０は、インボイス処理ソフトウェアにアクセスして、インボイス番号１２３、ベンダーＸＹＺ、期限２０１７年１月１日、および支払高１００ドルを入力する。コンピューティングデバイス２３２は、ネットワークを介して、ユーザ２３０が実行する様々なアクションを検出するように構成されているシステム２００の様々なコンポーネントと通信する。それらのコンポーネントは、コンピューティングデバイス２３２のスクリーンのイメージをキャプチャーするように構成されているイメージキャプチャラー２３６を含む。それらのコンポーネントは、様々なタイプのユーザ入力を検出するように構成されているユーザ入力検出器２３８をも含む。それらのコンポーネントは、コンピューティングデバイス２３２から送受信されるネットワークデータを監視するように構成されているネットワークリスナー２４０をも含む。幾つかの実装では、それらのコンポーネントは、フォアグラウンドで実行中のプロセスを含むコンピューティングデバイス２３２により実行されているプロセスを検索するためにコンピューティングデバイス２３２にクエリするように構成されているデバイスを含む。イメージキャプチャラー２３６、ユーザ入力検出器２３８、およびネットワークリスナー２４０は、図１の対応するコンポーネントと同様の特性を有する。
【００４６】
イメージキャプチャラー２３６は、デバイス２３２のディスプレイで示されているデータを、定期的間隔を置いてキャプチャーするように構成される。例えば、イメージキャプチャラー２３６は、５秒ごとにスクリーンショットをキャプチャーすることができる。イメージキャプチャラー２３６は、ユーザ入力検出器２３８により指示された通りにスクリーンをキャプチャーすることもできる。例えば、イメージキャプチャラー２３６は、ユーザがマウスをクリックしたときあるいはスクリーンにタッチしたときにスクリーンをキャプチャーすることができる。スクリーンショットをキャプチャーする他に、イメージキャプチャラー２３６は、スクリーンショットに対して光学的文字認識を実行することもできる。イメージキャプチャラー２３６は、テキスト１２３、ＸＹＺ、＄１００、および１／１／２０１７を特定することができる。イメージキャプチャラー２３６は、画像認識を行うこともできる。例えば、イメージキャプチャラー２３６は、インボイス処理ソフトウェアのロゴをできるであろう。
【００４７】
ユーザ入力検出器２３８は、マウスクリック、キーボードプレス、スクリーンタッチ、プリントジョブ、カメラキャプチャー、マイクロフォン入力、スピーカ出力など、種々のユーザ入力デバイスを通るユーザ入力および出力を検出するように構成される。図２に示されている例では、ユーザ入力検出器２３８は、ユーザが他のキープレスに加えてキー１−２−３−タブ−ＸＹＺ−タブ−１００をタイピングしたことを検出する。ユーザ入力検出器２３８は、カーソルがピクセル６７９×５４１に位置していたときにユーザが“１２３”とタイピングしたことをも検出することができる。
【００４８】
ネットワークリスナー２４０は、コンピューティングデバイス２３２により送受信されるネットワークデータパケットトラフィックを検出するように構成される。ネットワークリスナー２４０は、社内サーバからデータを求めるリクエストに関連するデータパケットを受け取ることができる。その内部サーバは、コンピューティングデバイス２３２にデータパケットを戻すことができる。コンピューティングデバイス２３２で実行中のプロセスに関連するデータを受け取るように構成されているプロセス検出器は、インボイス処理ソフトウェアがフォアグラウンドで実行中であることを示すデータを受け取ることができる。プロセス検出器は、電子メールプログラムおよびウェブブラウザなどの他のプロセスがバックグラウンドで実行中であることを示すデータを受け取ることができる。プロセス検出器は、ユーザがウェブブラウザプログラムをフォアグラウンドへ切り替えてからインボイス処理ソフトウェアをフォアグラウンドに戻す時点でデータを受け取ることができる。
【００４９】
システム２００は、コンピューティングデバイス２３２でユーザ２３０により実行されているアクティビティ２３４に関連するデータをアクションアイデンティファイア２４２に提供する。アクションアイデンティファイア１４２と同様に、アクションアイデンティファイア２４２は、イメージキャプチャラー２３６、ユーザ入力検出器２３８、ネットワークリスナー２４０、および、場合によってはプロセス検出器から受け取ったデータに基づいてユーザ２３０により実行されたアクションを特定するように構成される。アクションアイデンティファイア２４２は、コンポーネントから受け取ったデータとデータの各ピースのタイミングデータとを比較して、実行されたアクションを判定する。例えば、アクションアイデンティファイア２４２は、特定の時点でカーソルがピクセル６７９×５４１に位置していたときにユーザが“１２３”をタイピングしたことを示すデータを受け取る。アクションアイデンティファイア２４２は、スクリーンキャプチャーデータを調べて、そのピクセルが“インボイス番号”のテキストの近くに位置すると判定する。アクションアイデンティファイアは、ネットワークデータも調べて、コンピューティングデバイス２３２がテキスト“１２３”を含むデータパケットを社内サーバに送ったことをネットワークトラフィックが示していると判定する。このデータに基づいて、アクションアイデンティファイア１４２は、ユーザ２３０が“インボイス番号”とラベリングされているフィールドを選択してからテキスト“１２３”を入力したと判定することができる。
【００５０】
アクションアイデンティファイア２４２は、様々なレベルのグラニュラリティでアクションを検出するように設定可能であり得る。例えば、アクションアイデンティファイア２４２は、各文字キーストロークを１つのアクションと特定しないように設定され得る。代わりにアクションアイデンティファイア２４２は、スペース、句読点キー、またはキーボード以外の別の入力により分離されている文字のグループをユーザが入力したときを特定することができる。あるいは、アクションアイデンティファイア２４２は、１−２−３が３つの特定されたアクションであるように、各キーストロークを１つのアクションと特定するようにも設定され得る。
【００５１】
アクションアイデンティファイア２４２は、ユーザ２３０により実行された連続するアクションを特定するデータをプロセスアイデンティファイア２４４に提供し、プロセスアイデンティファイア２４４はプロセスアイデンティファイア１４４と同様の機能性を有する。アクションアイデンティファイア２４２により特定されたアクションは、“インボイス番号”の近くでマウスをクリックしたこと、“１２３”をタイピングしたこと、タブキーを選択してカーソルをテキスト“ベンダー”の近くへ移したこと、“ＸＹＺ”をタイピングしたことを含み得る。プロセスアイデンティファイア２４４は、ユーザ２３０がアクションアイデンティファイア２４２により特定されたアクションで実行しているプロセスを特定するために予測モデル２２８にアクセスするように構成される。プロセスアイデンティファイア２４４は、それらのアクションに対応する最も本当らしいプロセスを選択する。プロセスアイデンティファイア２４４は、特定のプロセスがそれらのアクションに対応する公算を示す尤度スコアを生成することができる。プロセスアイデンティファイア１４４は、ユーザがインボイスを入力することについて０．７６のスコアを計算することができる。他のスコアは、ユーザが電子メールを作成することについての０．５４と、ユーザがスプレッドシートにデータを入力することについての０．３９であり得る。この場合、プロセスアイデンティファイア２４４は、ユーザ２３０がおそらくインボイスを入力していると判定する。
【００５２】
システム２００は、ユーザ２３０により実行された連続するアクションと本当らしいプロセスとを特定するデータをノイズ検出器２４６に提供する。ノイズ検出器２４６は、同じプロセスを実行しているとラベリングされているアクションの以前のグループにアクセスする。図２に示されている例では、ノイズ検出器２４６は、インボイスを入力するプロセスを実行するアクションのグループを検索する。ノイズ検出器２４６は、それらのプロセスの中の類似するアクションを特定するとともに幾つかのアクションをノイズと特定する。ノイズアクションは、コアプロセスに関連していなくてユーザによる付加的な入力もしくはアクティビティを表すものであり得る。例えば、ノイズ検出器２４６は、ユーザ２３０のアクションを、インボイスを入力するアクションの他のグループと比較する。ノイズ検出器２４６は、“ｓｏｃｉａｌｍｅｄｉａ．ｃｏｍ”、“ｓｈｏｐｐｉｎｇ．ｃｏｍ”、または“ｌｕｎｃｈ”をタイピングするなどの幾つかのアクションを、これらのアクションはアクションの対応するグループから除去されたとしてもそのプロセスに影響を及ぼさないので、インボイスを入力するというコアプロセスの一部ではないと特定することができる。ノイズ検出器２４６は、アクションがノイズに対応するかどうかを、そのアクションを除去してアクションのアップデートされたグループをプロセスアイデンティファイア２４４に提供することにより、テストすることができる。プロセスアイデンティファイアにより戻されたスコアに基づいて、ノイズ検出器２４６は、そのアクションがノイズだったのかどうか判定することができる。例えば、スコアが特定量低下するならば、そのアクションがノイズである公算はより小さいであろう。スコアが変化しなければ、そのアクションがノイズである公算はより大きい。
【００５３】
システム２００は、ユーザ２３０により実行された連続するアクションを特定するデータ、ノイズアクション、および本当らしいプロセスを特定するデータを変数アサイナー２４８に提供する。変数アサイナー２４８は、コアプロセスの部分ではあるけれどもそのプロセスを実行するアクションのグループの各々について通例変動する情報を含む変数ラベルをアクションに割り当てる。もし１つの変数がアクションのグループから除去されたならばアクションのそのグループが同じプロセスに対応する公算がより小さくなるようにプロセススコアが変化し得るという点で、ノイズとは異なる変数。例えば、もしユーザ２３０により実行されたアクションが“１２３”をタイピングすること、あるいは“ＸＹＺ”をタイピングすることを含んでいなければ、プロセスアイデンティファイア２４４は、計算されたスコアに基づいて、それらのアクションがインボイスを入力するプロセスに対応する公算がより小さいと判定することができる。従って、変数アサイナー２４８は、“１２３”をタイピングするアクションおよび“ＸＹＺ”をタイピングするアクションを変数とラベリングすることができる。
【００５４】
幾つかの実装では、変数アサイナー２４８は、変数の以前に特定された名前を含む変数データストア２２４にアクセスする。変数アサイナー２４８は、特定された変数の各々に変数名を割り当てることができる。変数アサイナー２４８は、ユーザが変数を入力する少し前または直後に実行されたアクションに基づいて変数名を割り当てることができる。例えば、“１２３”をタイピングするアクションより前に、カーソルをテキスト“インボイス番号”の近くへ移動させるアクションが行われる。変数アサイナー２４８は、この情報を用いて、“インボイス番号”が変数データストア２２４において名づけられている変数であることに基づいて、その変数に“インボイス番号”と名付けることができる。図２に示されている例では、変数アサイナー２４８は、変数２５０にインボイス番号、ベンダー、期限、および額と名付ける。
【００５５】
システム２００は、プロセスアイデンティファイア２４４、ノイズ検出器２４６、および変数アサイナー２４８により割り当てられたラベルを確認またはリジェクトするユーザ２３０または他の個人からのフィードバックを勧誘するように構成されたプロセスおよび変数コンファメーション２５２を含むことができる。特性コンファメーション１５０と同様に、システム２００は、予測モデル２２８を調整しアップデートするためにそのフィードバックを予測モデルトレーナ２２６に提供することができる。
【００５６】
システム２００は、プロセスの自動化を生成し改善するために使用され得る。例えば、システム２００は、プロセスを実行するユーザを調べることによりプロセスを実行する高速の仕方を特定することができるとともにそのプロセスの必須のアクションを特定することができる。図２を参照すると、システム２００は、インボイスを入力するプロセスを実行する少数のアクションを特定することができる。同様に、システム２００は、インボイスを入力するプロセスを長くするアクションを特定することができる。システムは、そのとき、不必要なアクションを実行するユーザにガイダンスを提供することができる。
【００５７】
幾つかの実装では、システム１００および２００は、プロセスマイニング技術のために使用され得る。プロセスマイニング技術は、アクションに含まれているトレンド、パターン、および詳細を特定するために、特定されたアクションおよび特定されたプロセスに適用され得る。上記のコンポーネントのうちの幾つかと同様に、処理マイニング技術は、トレンド、パターン、および詳細を特定する機能を調整調節するために機械学習を採用することができる。
【００５８】
図３は、認知ロボットアナライザのための例示システム３００を示す。システム３００は、４つのステージ、すなわち、キャプチャーステージ３２０、収集およびエンハンスステージ３４０、分析ステージ３６０、および結果ステージ３８０、にグルーピングされ得る。システム３００は、類似する特性に応じてユーザをグルーピングし、次に同じ特性を有するユーザに共通パーミッションを割り当てるように構成される。
【００５９】
キャプチャーステージ３２０は、ユーザがコンピューティングデバイスで実行するアクションに関連するデータを収集する。アクションは、マウスクリック、キーボードタイピング、タッチスクリーンスワイプ、使用されたソフトウェアなどに関連し得る。システム３００は、キャプチャーされたアクションデータを収集およびエンハンスステージ３４０に提供する。収集およびエンハンスステージ３４０は、生の入力および出力アクションを、ブラウザを開く、ウェブアドレスを入力する、電子メールを開く、添付ファイルを開くなどのより高いレベルのアクションへ精選する。
【００６０】
分析ステージ３６０は、収集およびエンハンスステージ３４０からアクションデータを受け取り、それらのアクションにより実行されているプロセスを特定するために予測モデルを適用する。予測モデルは、それらのアクションにより実行されるプロセスを特定するためにニューラルネットワーク、機械学習、ディープラーニング、文脈インテリジェンス、およびデータクラスタリングを利用することができる。幾つかの実例プロセスは、ウェブサイトを訪れることまたは添付ファイルを受け取って見ることを含み得る。分析ステージ３６０は、ユーザがプロセスを完成させる際に取るアクションに基づいて各ユーザの種々の特性をも判定する。例えば、ｃｏ．ｕｋで終わるウェブページを訪れるかあるいはスペル“ｃｏｌｏｕｒ”を使用するユーザは英国に位置するであろう。履歴書、カバーレター、またはＣＶという名前の添付ファイルを伴う電子メールを受け取るユーザは人事部に雇用されているであろう。ソフトウェア開発ツールを使用することを含むプロセスを実行するユーザは、開発者であろう。
【００６１】
結果ステージ３８０は、分析ステージ３６０からユーザ特性を受け取り、特性に応じてユーザをグルーピングする。結果ステージ３６０は、１つの特性を共有するユーザたちに一定のパーミッションを与え、他の特性を共有している他のユーザにはパーミッションを与えないことができる。システムは、パーミッションを、ユーザが実行しているであろうと推測されるアクションではなくてユーザにより実行された現実のアクションに基づかせることができる。
【００６２】
図４は、類似するプロセスを実行するアクションの実例グループ４００を示す。アクションの各グループは、システム２００により同じプロセスを実行していると特定され得る。例えば、アクションのグループ４０５、４１０、４１５、および４２０は、それぞれインボイスを入力するプロセスを実行できる。
【００６３】
各グループのアクションの各々は、円および対応する文字により示されている。アクションは、マウスをクリックする、文字のシリーズをタイピングする、ソフトウェアを開く、アプリケーションを切り替える、などの、上で論じられたものに類似するアクションを含み得る。同様のアクションは同様の文字により示されている。例えば、Ｔアクションは全て同じまたは類似するアクションを実行する。システムがグループ４０５、４１０、４１５、および４２０のアクションを比較するとき。システムは、アクション４２５がグループ４２０に挿入されているのにアクション４２５の前後のアクションが他のグループ４０５、４１０、および４１５のアクションに対応するので、アクション４２５をノイズと特定する。
【００６４】
システムは、変数に対応するアクションを特定することもできる。グループ４０５、４１０、４１５、および４２０を分析するとき、システムは、それぞれ異なる情報を含むアクション４３０を特定する。アクション４３０の前後のアクションの各々は同じアクションに対応し、かつ、各グループ４０５、４１０、４１５、および４２０は同じプロセスに対応するので、システムは、アクション４３０を変数と特定する。グループ４３５は、ノイズ４２５が除去されて変数が“Ｘ”に置き換えられている完全なプロセスを示す。
【００６５】
図５は、認知ロボットアナライザのための実例プロセス５００を示す。一般に、プロセス５００は、各ユーザが実行するプロセスまたはアクションに基づいてユーザを特定の特性を有すると分類するために予測モデルをトレーニングする。プロセス５００は、１つ以上のコンピュータを含むコンピュータシステム、例えば図１に示されているシステム１００、により実行されるものとして記載されるであろう。
【００６６】
システムは、複数のユーザ特性のうちの各ユーザ特性について、第１プロセスを実行する１つ以上の第１アクションを特定する第１データ、および、第１プロセスと類似するとラベリングされた第２プロセスを実行する１つ以上の第２アクションを特定する第２データを受け取る（５１０）。幾つかの実装では、システムは、各プロセスについて受け取られたスクリーンキャプチャーされたデータに対してコンピュータビジョン技術を実行する。コンピュータビジョン技術は、光学的文字認識および画像認識を実行することができる。幾つかの実装では、システムは、各プロセスについてユーザ入力データを受け取る。ユーザ入力データは、キーボード入力、マウスクリック、カメラキャプチャーデータ、マイクロフォンキャプチャーデータ、スピーカへのオーディオ出力、プリンタに送られるデータ、無線で送受信されるデータなどを含み得る。幾つかの実装では、システムは、デバイスにより送受信される有線または無線ネットワークパケットに基づくネットワークトラフィックデータを受け取る。
【００６７】
システムは、各ユーザ特性についての第１データを用いるとともに各ユーザ特性についての第２データを用いて、アクションを第１プロセスおよび第２プロセスに類似するかまたは類似しないと分類するように構成された予測モデルをトレーニングする（５２０）。幾つかの実装では、プロセスは、もしそれらのプロセスが同じソフトウェアまたはハードウェアを使用するならば、類似する。幾つかの実装では、プロセスは、もしそれらがインボイスを入力する、電子メールを送る、またはサーチクエリを入力するなどの同じ最終結果に対応するならば、類似している。幾つかの実装では、予測モデルは、モデルを生成するためにニューラルネットワーク、機械学習、ディープラーニング、およびデータクラスタリングを使用する。
【００６８】
システムは、ユーザにより実行されたアクションを特定するデータを受け取る（５３０）。幾つかの実装では、アクションはキープレス、マウスクリック、スクリーンタッチ、フォアグラウンドプロセス変更、シーン変更、ネットワークリクエスト、またはネットワーク受信を含む。システムは、それらのアクションのうちの１つ以上に対して予測モデルを適用する（５４０）。システムは、それらのアクションのうちの１つ以上に対して予測モデルを適用したことに基づいて、その１つ以上のアクションにより実行されたプロセスを、特定のユーザ特性と関連付けられた特定のプロセスに類似すると分類する（５５０）。幾つかの実装では、プロセスは、ウェブサイトを見るための、１つのタイプの電子メール添付ファイルを受け取るための、１つのタイプのデータを入力するための、ウェブ検索を実行するための、または１つのタイプのソフトウェアを使用するための、アクションのグループである。
【００６９】
システムは、ユーザを特定のユーザ特性と関連付ける（５６０）。幾つかの実装では、ユーザ特性は、会社、地理的位置、演算ユニット、演算役割、または専門技術レベルを特定する。幾つかの実装では、システムは、割り当てられた特性を確認またはリジェクトするオプションをユーザに提供する。例えば、ユーザは、ユーザが英国に位置していることを確認することができる。システムは、次にこのデータを使用して予測モデルを調整または再トレーニングすることができる。同様に、ユーザが英国に位置しているという特性をユーザがリジェクトするならば、システムはそのデータを使用して予測モデルを調整または再トレーニングするであろう。
【００７０】
図６は、認知ロボットアナライザのための実例プロセスを示す。一般に、プロセス６００は、プロセスを実行するアクションのグループの中の変数を特定するように予測モデルをトレーニングする。プロセス６００は、１つ以上のコンピュータを含むコンピュータシステム、例えば図２に示されているシステム２００、により実行されると記載されるであろう。
【００７１】
システムは、同じプロセスを実行するとラベリングされている１つ以上のアクションのグループを特定するデータを受け取る（６１０）。システムは、１つ以上のアクションの各グループにおいて、変数情報と関連付けられている特定のアクションを特定する（６２０）。幾つかの実装では、システムは、受け取ったデータに対して光学的文字認識および画像認識などのコンピュータビジョン技術を実行する。幾つかの実装では、システムは、キーボード入力、マウスクリック、カメラキャプチャーデータ、マイクロフォンキャプチャーデータ、スピーカへのオーディオ出力、プリンタに送られるデータ、無線で送受信されるデータなどを含み得るようなユーザ入力を分析することによってアクションを特定する。幾つかの実装では、システムは、デバイスにより送受信された有線または無線ネットワークパケットに基づくネットワークトラフィックデータを受け取る。
【００７２】
システムは、同じプロセスを実行するとラベリングされた１つ以上のアクションのグループを特定するデータを使用するとともに変数情報と関連付けられた特定のアクションを使用して、（ｉ）１つ以上のアクションのグループを、同じプロセスを実行しているかまたは同じプロセスを実行していないと分類し、（ｉｉ）１つ以上のアクションのグループのうちの、変数情報と関連付けられているアクションを特定するように構成されている予測モデルをトレーニングする（６３０）。幾つかの実装では、予測モデルは、ニューラルネットワーク、機械学習、ディープラーニング、およびデータクラスタリングを用いてモデルを生成する。
【００７３】
システムは、アクションの所与のグループを特定するデータを受け取る（６４０）。幾つかの実装では、アクションはキープレス、マウスクリック、スクリーンタッチ、フォアグラウンドプロセス変更、シーン変更、ネットワークリクエスト、またはネットワーク受信である。システムは、アクションのその所与のグループに対して予測モデルを適用する（６５０）。幾つかの実装では、システムは、アクションのその所与のグループに対して予測モデルを適用することに基づいて、アクションのその所与のグループのうちの、ノイズアクションと関連付けられている付加的アクションを特定する。例えば、ノイズアクションは、通例特定のプロセスに対応するアクションの前後の、スプレッドシートにインボイスを入力しているときにショッピングをタイピングするなどの、アクションであり得る。システムは、アクションの所与のグループに対して予測モデルを適用することに基づいて、アクションのその所与のグループを同じプロセスを実行していると分類するとともにアクションのその所与のグループのうちの変数情報と関連付けられている所与のアクションを特定する（６６０）。
【００７４】
システムは、アクションの所与のグループを、同じプロセスを実行すると分類するデータ、ならびに、所与のアクションおよび変数情報を特定するデータを出力する（６７０）。幾つかの実装では、システムは、アクションのグループを、同じプロセスを実行すると確認するかあるいはリジェクトするか、変数情報は実際に可変であるのか確認するかあるいはリジェクトするオプションをユーザに提供する。システムは、予測モデルをトレーニングまたは調整するためにユーザのレスポンスを使用することができる。幾つかの実装では、システムは、変数情報に名前を割り当てる。名前は、“インボイス番号”または“ベンダー”など、変数と関係の深いアクションに関連付けられ得る。幾つかの実装では、システムは、変数情報に対応する変数のタイプを判定する。そのタイプは、整数、ストリング、長い数、倍精度浮動小数点数、キャラクタ、または他の任意のコンピュータ変数タイプを含み得る。
【００７５】
図７は、本明細書に記載された技術を実装するために使用され得るコンピューティングデバイス７００およびモバイルコンピューティングデバイス７５０の例を示す。コンピューティングデバイス７００は、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどの種々の形のデジタルコンピュータを代表するべく意図されている。モバイルコンピューティングデバイス７５０は、パーソナルデジタルアシスタント、携帯電話、スマートフォン、および他の同様のコンピューティングデバイスなど、種々の形のモバイルデバイスを代表するべく意図されている。ここに示されているコンポーネント、それらの接続および関係、ならびにそれらの機能は、単なる例であると意図され、限定を意図したものではない。
【００７６】
コンピューティングデバイス７００は、プロセッサ７０２、メモリ７０４、記憶デバイス７０６、メモリ７０４と複数の高速拡張ポート７１０とに接続する高速インターフェース７０８、ならびに低速拡張ポート７１４と記憶デバイス７０６とに接続する低速インターフェース７１２を含む。プロセッサ７０２、メモリ７０４、記憶デバイス７０６、高速インターフェース７０８、高速拡張ポート７１０、および低速インターフェース７１２の各々は、種々のバスを用いて相互接続され、共通のマザーボードにあるいは他の適切な仕方で搭載され得る。プロセッサ７０２は、高速インターフェース７０８に結合されたディスプレイ７１６などの外部入力／出力デバイスでＧＵＩのためのグラフィック情報を表示する、メモリ７０４にまたは記憶デバイス７０６にストアされている命令を含めて、コンピューティングデバイス７００の中で実行される命令を処理することができる。他の実装では、複数のメモリおよび複数のタイプのメモリの他に、複数のプロセッサおよび／または複数のバスが適宜使用され得る。さらに、必要なオペレーションの部分をそれぞれ提供するような複数のコンピューティングデバイスが接続され得る（例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして）。
【００７７】
メモリ７０４は、コンピューティングデバイス７００の中の情報をストアする。幾つかの実装では、メモリ７０４は１つまたは複数の揮発性メモリユニットである。幾つかの実装では、メモリ７０４は１つまたは複数の不揮発性メモリユニットである。メモリ７０４は、磁気ディスクまたは光ディスクなど、他の形のコンピュータ可読媒体でもあり得る。
【００７８】
記憶デバイス７０６は、コンピューティングデバイス７００のために大容量記憶を提供することができる。幾つかの実装では、記憶デバイス７０６は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、もしくはテープデバイス、フラッシュメモリもしくは他の類似のソリッドステートメモリデバイス、あるいは、ストレージエリアネットワークもしくは他の構成のデバイスを含むデバイスのアレイなどの、コンピュータ可読媒体であり得、あるいはこれらを含み得る。命令は、情報キャリヤにストアされ得る。命令は、１つ以上の処理デバイス（例えば、プロセッサ７０２）により実行されると、上記の方法の様な１つ以上の方法を実行する。命令は、コンピュータ可読のもしくは機械可読の媒体などの１つ以上の記憶デバイス（例えば、メモリ７０４、記憶デバイス７０６、またはプロセッサ７０２上のメモリ）によってもストアされ得る。
【００７９】
高速インターフェース７０８はコンピューティングデバイス７００のための帯域幅集約的オペレーションを管理し、低速インターフェース７１２は低帯域幅集約的オペレーションを管理する。このような機能割り当ては単なる例である。幾つかの実装では、高速インターフェース７０８は、メモリ７０４、ディスプレイ７１６に（例えば、グラフィクスプロセッサまたはアクセラレータを通して）、および、種々の拡張カードを受け入れ得る高速拡張ポート７１０に結合される。この実装では、低速インターフェース７１２は、記憶デバイス７０６および低速拡張ポート７１４に結合される。種々の通信ポート（例えば、ＵＳＢ、ブルートゥース、イーサネット、無線イーサネット）を含み得る低速拡張ポート７１４は、キーボード、ポインティングデバイス、スキャナなどの１つ以上の入力／出力デバイスに、または例えばネットワークアダプタを通して、スイッチもしくはルータなどのネットワーキングデバイスに、結合され得る。
【００８０】
コンピューティングデバイス７００は、図に示されているように、様々な形で実装され得る。例えば、コンピューティングデバイス７００は、標準的サーバ７２０として、あるいは数回、そのようなサーバのグループにおいて、実装され得る。さらに、コンピューティングデバイス７００は、ラップトップコンピュータ７２２などのパーソナルコンピュータにおいて実装され得る。コンピューティングデバイス７００は、ラックサーバシステム７２４の部分としても実装され得る。あるいは、コンピューティングデバイス７００のコンポーネントは、モバイルコンピューティングデバイス７５０などのモバイルデバイスにおいて他のコンポーネントと組み合わされ得る。そのようなデバイスの各々は、コンピューティングデバイス７００およびモバイルコンピューティングデバイス７５０のうちの１つ以上を含むことができ、システム全体は、互いに通信し合う複数のコンピューティングデバイスから構成され得る。
【００８１】
モバイルコンピューティングデバイス７５０は、プロセッサ７５２、メモリ７６４、ディスプレイ７５４などの入力／出力デバイス、通信インターフェース７６６、およびトランシーバ７６８を含むが、他にもコンポーネントはある。モバイルコンピューティングデバイス７５０は、追加のストレージを提供するマイクロドライブもしくは他のデバイスなどの記憶デバイスも備えることができる。プロセッサ７５２、メモリ７６４、ディスプレイ７５４、通信インターフェース７６６、およびトランシーバ７６８の各々は種々のバスを用いて相互に接続され、これらのコンポーネントのうちの幾つかは共通のマザーボード上に、或いは適宜他の仕方で、搭載され得る。
【００８２】
プロセッサ７５２は、メモリ７６４にストアされている命令を含めて、モバイルコンピューティングデバイス７５０内で命令を実行することができる。プロセッサ７５２は、別々の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実装され得る。プロセッサ７５２は、例えば、ユーザインターフェース、モバイルコンピューティングデバイス７５０により実行されているアプリケーション、およびモバイルコンピューティングデバイス７５０による無線通信の制御など、モバイルコンピューティングデバイス７５０の他のコンポーネントの調整に役立ち得る。
【００８３】
プロセッサ７５２は、制御インターフェース７５８と、ディスプレイ７５４に結合されているディスプレイインターフェース７５６とを通して、ユーザと通信することができる。ディスプレイ７５４は、例えば、ＴＦＴ（Ｔｈｉｎ−Ｆｉｌｍ−Ｔｒａｎｓｉｓｔｏｒ  Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：薄膜トランジスタ液晶表示装置）ディスプレイまたはＯＬＥＤ（Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ：有機発光ダイオード）ディスプレイ、または他の適切なディスプレイ技術であり得る。ディスプレイインターフェース７５６は、グラフィック情報および他の情報をユーザに提示するためにディスプレイ７５４を駆動するための適切な回路を含み得る。制御インターフェース７５８は、ユーザからコマンドを受け取って、それらをプロセッサ７５２に提出するべく変換することができる。さらに、外部インターフェース７６２は、モバイルコンピューティングデバイス７５０の他のデバイスとの近域通信を可能にするために、プロセッサ７５２との通信を与えることができる。外部インターフェース７６２は、例えば幾つかの実装で有線通信に、あるいは別の実装で無線通信に役立つことができ、複数のインターフェースも使用され得る。
【００８４】
メモリ７６４は、モバイルコンピューティングデバイス７５０の中で情報をストアする。メモリ７６４は、１つまたは複数のコンピュータ可読媒体、１つまたは複数の揮発性メモリユニット、または１つまたは複数の不揮発性メモリユニットのうちの１つ以上として実装され得る。拡張メモリ７７４も設けられて拡張インターフェース７７２を通してモバイルコンピューティングデバイス７５０に接続されることができ、拡張インターフェース７７２は例えばＳＩＭＭ（Ｓｉｎｇｌｅ  Ｉｎ  Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ：シングルインラインメモリモジュール）カードインターフェースを含むことができる。拡張メモリ７７４は、モバイルコンピューティングデバイス７５０のために余分のストレージスペースを提供することができ、あるいは、モバイルコンピューティングデバイス７５０のためのアプリケーションまたは他の情報をストアすることもできる。特に、拡張メモリ７７４は、上記のプロセスを実行しあるいは補足する命令を含むことができ、セキュア情報も含むことができる。従って、例えば、拡張メモリ７７４は、モバイルコンピューティングデバイス７５０のためのセキュリティモジュールとして設けられることができ、モバイルコンピューティングデバイス７５０のセキュアな使用を可能にする命令でプログラムされることができる。さらに、ハッキングできない仕方で識別情報をＳＩＭＭカードに置くなど、追加の情報と共に、ＳＩＭＭカードを介してセキュアアプリケーションが設けられ得る。
【００８５】
メモリは、下記のように、例えば、フラッシュメモリおよび／またはＮＶＲＡＭメモリ（不揮発性ランダムアクセスメモリ）を含み得る。幾つかの実装では、命令は情報キャリヤにストアされる。それらの命令は、１つ以上の処理デバイス（例えば、プロセッサ７５２）により実行されると、上記の方法などの、１つ以上の方法を実行する。命令は、１つ以上のコンピュータ可読媒体または機械可読媒体（例えば、メモリ７６４、拡張メモリ７７４、またはプロセッサ７５２上のメモリ）などの１つ以上の記憶デバイスによってもストアされ得る。幾つかの実装では、命令は、例えば、トランシーバ７６８または外部インターフェース７６２を伝わる伝播信号で受信され得る。
【００８６】
モバイルコンピューティングデバイス７５０は、必要ならばデジタル信号処理回路を含み得る通信インターフェース７６６を通して無線で通信することができる。通信インターフェース７６６は、ＧＳＭ音声通話（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  ｃｏｍｍｕｎｉｃａｔｉｏｎｓ：モバイル通信のためのグローバルシステム）、ＳＭＳ（Ｓｈｏｒｔ  Ｍｅｓｓａｇｅ  Ｓｅｒｖｉｃｅ：ショートメッセージサービス）、ＥＭＳ（Ｅｎｈａｎｃｅｄ  Ｍｅｓｓａｇｉｎｇ  Ｓｅｒｖｉｃｅ：エンハンストメッセージングサービス）、またはＭＭＳメッセージング（Ｍｕｌｔｉｍｅｄｉａ  Ｍｅｓｓａｇｉｎｇ  Ｓｅｒｖｉｃｅ：マルチメディアメッセージングサービス）、ＣＤＭＡ（ｃｏｄｅ  ｄｉｖｉｓｉｏｎ  ｍｕｌｔｉｐｌｅ  ａｃｃｅｓｓ：符号分割多重アクセス）、ＴＤＭＡ（ｔｉｍｅ  ｄｉｖｉｓｉｏｎ  ｍｕｌｔｉｐｌｅ  ａｃｃｅｓｓ：時分割多重アクセス）、ＰＤＣ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ｃｅｌｌｕｌａｒ：パーソナルデジタルセルラー）、ＷＣＤＭＡ（Ｗｉｄｅｂａｎｄ  Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ：広帯域符号分割多重アクセス）、ＣＤＭＡ２０００、またはＧＰＲＳ（Ｇｅｎｅｒａｌ  Ｐａｃｋｅｔ  Ｒａｄｉｏ  Ｓｅｒｖｉｃｅ：汎用パケット無線サービス）およびその他など、種々のモードまたはプロトコルのもとでの通信に役立ち得る。このような通信は、例えば、無線周波数を用いてトランシーバ７６８を通して生じ得る。さらに、ブルートゥース、ＷｉＦｉ、または他のそのようなトランシーバを用いるなどして、短距離通信が生じ得る。さらに、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ：全地球測位システム）レシーバモジュール７７０は、追加のナビゲーション関連および位置関連無線データをモバイルコンピューティングデバイス７５０に提供することができ、そのデータは、モバイルコンピューティングデバイス７５０で実行中のアプリケーションにより適宜使用され得る。
【００８７】
モバイルコンピューティングデバイス７５０は、ユーザから発話された情報を受け取ってそれを使用可能なデジタル情報に変換し得るオーディオコーデック７６０を用いて可聴的に通信することもできる。オーディオコーデック７６０は、同様に、例えばモバイルコンピューティングデバイス７５０のハンドセットで、スピーカを通すなどして、ユーザのために可聴音を生成することができる。そのような音は、音声電話機通話からの音を含むことができ、記録されている音を含むことができ（例えば、音声メッセージ、ミュージックファイルなど）、モバイルコンピューティングデバイス７５０で動作しているアプリケーションにより生成された音を含むこともできる。
【００８８】
モバイルコンピューティングデバイス７５０は、図に示されているように、様々な形で実装され得る。例えば、モバイルコンピューティングデバイス７５０は、携帯電話７８０として実装され得る。モバイルコンピューティングデバイス７５０は、スマートフォン５８２、パーソナルデジタルアシスタント、または他の類似するモバイルデバイスの部分としても実装され得る。
【００８９】
本明細書に記載されたシステムおよび技術の種々の実装は、デジタル電子回路、集積回路、特別に設計されたＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ：特定用途向け集積回路）、コンピュータハードウェア、ファームウェア、ソフトウェア、および／またはこれらの組み合わせにおいて実現され得る。これらの種々の実装は、ストレージシステム、少なくとも１つの入力デバイスおよび少なくとも１つの出力デバイスからデータおよび命令を受信するとともに、それらにデータおよび命令を送信するように結合された、特別目的または汎用のものであり得る少なくとも１つのプログラマブルなプロセッサを含むプログラマブルなシステム上で実行可能および／または解釈可能な１つ以上のコンピュータプログラムにおける実装を含み得る。
【００９０】
これらのコンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている）は、プログラマブルなプロセッサのための機械命令を含み、高レベルな手続き型および／またはオブジェクト指向プログラミング言語において、および／または、アセンブリ／機械語において実装され得る。本明細書で使用される、機械可読媒体およびコンピュータ可読媒体という用語は、機械命令を機械可読信号として受け取る機械可読媒体を含む、機械命令および／またはデータをプログラマブルなプロセッサに提供するために使用される任意のコンピュータプログラム製品、装置および／またはデバイス（例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス（ＰＬＤ：Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ））を指す。機械可読信号という用語は、機械命令および／またはデータをプログラマブルなプロセッサに提供するために使用される任意の信号を指す。
【００９１】
ユーザとのインタラクションに備えて、本明細書に記載されたシステムおよび技術は、ユーザに情報を表示するためのディスプレイデバイス（例えば、ＣＲＴ（ｃａｔｈｏｄｅ  ｒａｙ  ｔｕｂｅ：ブラウン管）またはＬＣＤ（ｌｉｑｕｉｄ  ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ：液晶ディスプレイ）モニタ）ならびに、ユーザがコンピュータに入力を与えることのできるキーボードおよびポインティングデバイス（例えば、マウスまたはトラックボール）を有するコンピュータ上で実装され得る。ユーザとのインタラクションに備えて他の種類のデバイスも使用され得る。例えば、ユーザに与えられるフィードバックは任意の形の感覚フィードバック（例えば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバック）であり得る。ユーザからの入力は、音響、スピーチ、または触覚的入力を含む、任意の形で受け取られ得る。
【００９２】
本明細書に記載されたシステムおよび技術は、バックエンドコンポーネント（例えば、データサーバとして）を含み、またはミドルウェアコンポーネント（例えば、アプリケーションサーバ）を含み、またはフロントエンドコンポーネント（例えば、本明細書に記載されたシステムおよび技術の実装とユーザがインタラクトできるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータ）を含み、またはそのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムにおいて実装され得る。システムのコンポーネント同士は、デジタルデータ通信の任意の形または媒体（例えば、通信ネットワーク）により相互に接続され得る。通信ネットワークの例は、ローカルエリアネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ワイドエリアネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、およびインターネットを含む。
【００９３】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、一般に、互い距離を置き、通例通信ネットワークを通してインタラクトする。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行される、互いにクライアント対サーバの関係を有するコンピュータプログラムのおかげで生じる。
【００９４】
幾つかの実装が上で詳しく記載されたが、他の変形が可能である。例えば、クライアントアプリケーションは１つまたは複数のデレゲートにアクセスすると記載されているが、他の実装においては、その１つまたは複数のデレゲートは、１つ以上のサーバ上で実行されるアプリケーションなどの、１つ以上のプロセッサにより実行される他のアプリケーションにより採用され得る。さらに、図示されたロジックフローは、望ましい結果を達成するために、示された特定のオーダー、あるいは順序を必要としない。さらに、他のアクションが設けられてもよく、あるいは、記載されたフローからアクションを削除することができ、記載されたシステムに他のコンポーネントを加えたり取り除いたりすることができる。従って、次の請求項の範囲内に他の実装が存在する。
【図１】
2018116688.tif 000003
【図２】
2018116688.tif 000004
【図３】
2018116688.tif 000005
【図４】
2018116688.tif 000006
【図５】
2018116688.tif 000007
【図６】
2018116688.tif 000008
【図７】
2018116688.tif 000009
【外国語明細書】
2018116688000001.pdf
2018116688000002.pdf
2018116688000003.pdf
2018116688000004.pdf