(57)【要約】【課題】  機械学習技術を使用して、多種多様なＷｅｂフォームにわたり１つまたは複数のフィールドに自動記入できるようにする。【解決手段】  １つ以上の実装されたツールがフォームフィールドの入力またはエントリを収集できる。機械学習を使用して、どのようなデータが何れのフィールド、何れのタイプのフィールドに対応するか学習できる。入力は、他のデータベースも集約される中央リポジトリに送られる。この入力が機械学習システムに与えられ、所望の出力をどのように予測するか学習される。または、学習は、部分的に、エントリを観察し、それに応じて自動記入コンポーネントを適応させることで実行できる。更に、データベースフィールドの幾つかの特徴、制約を使用して、特に自動記入システムがＷｅｂフォームをこれまで見たことがない場合、フォーム値に対するデータベースエントリの割り当てを円滑にできる。【選択図】  図１
2005327260.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数の入力のセットを使用してＷｅｂベースのフォームの自動記入を円滑にする訓練された機械学習コンポーネントと、
該機械学習コンポーネントによって生成された情報に少なくとも部分的に基づいて１つまたは複数のフォームフィールドに適切なデータを選択的に入力する自動記入コンポーネントと
を備えたことを特徴とする自動記入システム。
【請求項２】
前記１つまたは複数の入力のセットが１つまたは複数のデータベースに格納され、該データベースから取り出される、請求項１のシステム。
【請求項３】
前記機械学習コンポーネントが、複数のデータベースフィールドから対応するフォームフィールドにマップするように学習する、請求項２のシステム。
【請求項４】
前記１つまたは複数のデータベースが、自動記入データベース、連絡先リストデータベース、アカウント登録データベース、および製品登録データベースの少なくとも１つを含む、請求項２のシステム。
【請求項５】
前記機械学習コンポーネントが、１つまたは複数の制約に少なくとも部分的に基づいてフォームフィールドに対するデータベースエントリの割り当てを生成する、請求項２のシステム。
【請求項６】
前記１つまたは複数の制約が、任意の１つのデータベースエントリがＷｅｂベースのフォーム当たり使用される回数を制限する再使用制約を含む、請求項５のシステム。
【請求項７】
前記１つまたは複数の制約が、いずれのデータベースエントリまたは出力タイプが任意のＷｅｂベースのフォーム上で同時に提示されることが許されるかをコントロールする合成制約を含む、請求項５のシステム。
【請求項８】
前記１つまたは複数の制約が、一緒に、または特定の順序で出現するフィールドに対する制約を含む、請求項５のシステム。
【請求項９】
前記データベース内の前記入力は１つまたは複数のデータベースフィールドまたは入力フィールドに対応し、該データベースフィールドまたは該入力フィールドが、該データベースフィールドまたは該入力フィールドから導出された１つまたは複数の特徴を有する、請求項２のシステム。
【請求項１０】
少なくとも１つの特徴は、特定のデータベースフィールドが、他の何らかのデータベースフィールドの上、下、左、右、すぐ下、すぐ上、すぐ左、またはすぐ右の少なくともいずれかに位置することである、請求項９のシステム。
【請求項１１】
前記少なくとも１つの特徴を含むフォームフィールドに対する入力フィールドの特定の割り当ての同時確率を算出するコンポーネントをさらに含む、請求項１０のシステム。
【請求項１２】
特定のユーザに関して、一部の入力フィールドエントリが観察されたデータベースエントリと合致することを学習することにより、データベースフィールドからフォーム値へのマッピングをパーソナライズし、かつ、前記自動記入コンポーネントをそのような情報で更新するコンポーネントをさらに含む、請求項２のシステム。
【請求項１３】
前記更新するコンポーネントが、特定のＷｅｂページ上の一部の入力フィールドエントリが特定のデータベースエントリと合致することを学習することを含むサイト固有の形で前記自動記入コンポーネントを更新する、請求項１２のシステム。
【請求項１４】
前記機械学習コンポーネントが前記１つまたは複数のデータベース内で見られるデータに適合するフィールドにユーザがデータを入力していることを観察し、該観察が前記自動記入コンポーネントをトリガして、最高ランクの適合するエントリに部分的に基づいて新たな自動記入提案を提供させる、請求項２のシステム。
【請求項１５】
前記１つまたは複数のデータベースがユーザのコンピュータとは別個のマシン上に保持される、請求項２のシステム。
【請求項１６】
１つまたは複数のソースからトレーニングデータを収集するデータ収集コンポーネントをさらに含む、請求項１のシステム。
【請求項１７】
前記データ収集コンポーネントが、前記入力を集約して、それをさらなる処理のために中央リポジトリに送る、請求項１６のシステム。
【請求項１８】
前記データ収集コンポーネントが少なくとも１つの実装されたツールバーを含む、請求項１６のシステム。
【請求項１９】
前記入力がＭＡＸＬＥＮＧＴＨまたはＳＩＺＥエントリを含む、請求項１のシステム。
【請求項２０】
前記入力がフィールド名の部分文字列を含む、請求項１のシステム。
【請求項２１】
前記入力が１つまたは複数の隣接するフォームフィールドからの情報を含む、請求項１のシステム。
【請求項２２】
前記入力が近くのテキスト、または近くのテキストの部分文字列の少なくとも一つを含む、請求項１のシステム。
【請求項２３】
前記機械学習コンポーネントが、１つまたは複数の入力を１つまたは複数の特徴値に変換する、請求項１のシステム。
【請求項２４】
前記特徴値はブール値または数値のどちらかである、請求項２３のシステム。
【請求項２５】
前記ブール値は、役立つ範囲を見つけることと、共通の役立つ文字シーケンスを探すことの少なくとも一つを実行することによって自動的に特定される、請求項２４のシステム。
【請求項２６】
前記ブール値は、入力値を検査し、かつ、１つまたは複数の最も役立つブール値を特定することによって手動で特定される、請求項２４のシステム。
【請求項２７】
前記自動記入コンポーネントは、ユーザがフィールドにデータを入れ始めた場合に、該フィールドからドロップダウンボックスにおける自動記入提案を与える、請求項１のシステム。
【請求項２８】
前記自動記入コンポーネントは、ユーザがフィールドに入るとすぐに提案されたデータを該フィールドに記入する、請求項１のシステム。
【請求項２９】
前記Ｗｅｂベースのフォームが複数の様々なフィールドを含むかどうかを検出し、かつ、該フィールドを少なくとも２つのサブセットのフィールドに分けるコンポーネントをさらに含む、請求項１のシステム。
【請求項３０】
前記コンポーネントは、ヒューリスティックを使用して前記複数のセットを検出し、かつ、該複数のセットを少なくとも２つのサブセットに分ける、請求項２９のシステム。
【請求項３１】
前記機械学習コンポーネントは、フォームフィールドのユーザ入力を監視して、どのような値が前記１つまたは複数のフォームフィールドに最も適切であるかを学習することを円滑にする監視コンポーネントを含む、請求項１のシステム。
【請求項３２】
前記機械学習コンポーネントは、ユーザが以前に行った入力のいずれを、該ユーザが所与の入力フィールドに最も入力しそうか学習する、請求項３１のシステム。
【請求項３３】
前記機械学習コンポーネントは、要注意の情報を含むように思われるフィールドのユーザ入力を学習しない、請求項３２のシステム。
【請求項３４】
前記機械学習コンポーネントは、１つまたは複数のデータベースエントリおよび観察されたエントリを利用して、前記データベースからのエントリがフィールドに入力される確率に前記データベースフィールドが正しいエントリである確率を掛けた値と、前記データベースからのエントリがフィールドに記入されない確率にユーザ入力を観察することによって計算された確率を掛けた値の少なくとも一つを学習する、請求項３１のシステム。
【請求項３５】
前記機械学習コンポーネントは、前記フィールドにあり得る値に部分的に基づいて１つまたは複数の特徴を生成する、請求項３１のシステム。
【請求項３６】
前記１つまたは複数の特徴は、各値が次の値に先行する順序ベースである、請求項３５のシステム。
【請求項３７】
前記機械学習コンポーネントは、フィールドエントリの複数の観察された実例を収集し、該実例を格納することを含むオフラインアルゴリズムを使用して訓練される、請求項３１のシステム。
【請求項３８】
前記機械学習コンポーネントは、ナイーブベイズアプローチ、勾配法、選り分け、およびパーセプトロンアルゴリズムのいずれか１つを使用するオンラインアルゴリズムを使用して訓練される、請求項３１のシステム。
【請求項３９】
前記フォームフィールドは、最近アクセスされたファイルに部分的に基づいてファイルを表示するファイル入力フィールドを含む、請求項１のシステム。
【請求項４０】
前記自動記入コンポーネントによって入力される前記ファイルは、前記ファイルフィールド内で最近使用されたエントリと最近アクセスされたファイルの何らかの組合せに部分的に基づいて特定される、請求項３９のシステム。
【請求項４１】
前記組合せは、最新のアクセス時刻、および最新の入力時刻に少なくとも部分的に基づく、請求項４０のシステム。
【請求項４２】
前記フォームフィールドはラジオボタンとチェックボックスを含み、前記自動記入コンポーネントが、ボックスにチェックを入れるか、またはチェックを取り消すか、あるいはラジオボタンを選択するかどうかを学習することができる、請求項１のシステム。
【請求項４３】
請求項１のシステムを格納していることを特徴とするコンピュータ可読媒体。
【請求項４４】
Ｗｅｂベースのフォームの１つまたは複数のフォームフィールドに対するユーザ入力の観察に少なくとも部分的に基づいて訓練される機械学習コンポーネントと、
該機械学習コンポーネントを訓練するのに使用されるトレーニングデータを１つまたは複数のソースから収集するデータ収集コンポーネントと、
該機械学習コンポーネントによって行われた観察から学習された情報に少なくとも部分的に基づき、前記１つまたは複数のフォームフィールドに予期されるデータを自動的に入力する自動記入コンポーネントと
を備えたことを特徴とする自動記入システム。
【請求項４５】
Ｗｅｂベースのフォームの１つまたは複数のフォームフィールドに対するデータベースエントリの割り当てを生成する訓練された機械学習コンポーネントと、
該機械学習コンポーネントによって観察された学習済みのユーザ選好に少なくとも部分的に基づき、前記１つまたは複数のフォームフィールドに前記データベースエントリを自動的に入力する自動記入コンポーネントと
を備えたことを特徴とする自動記入システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全体的にはユーザ情報を学習することに関し、より詳細には、ユーザベースの入力をＷｅｂベースのフォームの１つまたは複数のフィールドにマップして、ユーザの情報の自動的な入力を円滑にすることに関する。
【背景技術】
【０００２】
インターネット上でビジネスの通信を行い、取引を行うことは、働く職業人にも、一般購入者にも日常的な経験となっている。インターネットユーザは、通常、製品を購入するにあたって、情報を要求する際、または質問を提出する際などに、一部は類似していることも、類似していないことも可能な多数のフォームを記入するように求められる。ユーザは、自分の名前、自宅住所、会社住所、電子メールアドレス、および／または電話番号を含む同一の情報を様々な異なるフォームに繰り返し入力しなければならない。
【０００３】
残念ながら、これらの懸念に対処しようと試みる慣例の方法には、問題がある。例えば、一部の技術では、以前の入力が記憶されていることが可能であるが、これは、フォームが、以前のフォームとまったく同一である場合だけである。インターネット上に多種多様なＷｅｂサイト、並びに夥しい数のＷｅｂサイト所有者およびＷｅｂサイト運営者が存在することを考慮すると、これは、インターネット上でユーザの時間の浪費を最小限に抑え、ユーザの効率を高める妥当な技術または問題解決法ではない可能性がある。
【０００４】
他の従来の方法は、一部のデータの自動化された入力を提供する可能性があるが、それらの方法には、依然として欠点があり、したがって、今日のインターネットユーザの多くのニーズを満たすことができない。
【０００５】
本発明の幾つかの態様の基本的な理解をもたらすため、本発明の簡略化した概要を以下に提示する。この概要は、本発明の広範な概観ではない。この概要は、本発明の重要な／不可欠な要素を特定すること、または本発明の範囲を画定することを意図するものではない。この概要の唯一の目的は、後に提示するより詳細な説明の前置きとして、本発明の幾つかの概念を簡略化した形で提示することである。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、ユーザの労力を最小限に抑える、様々な異なるＷｅｂフォームにおいてブラウザが使用するための改良されたデータ入力技術に関する。より具体的には、本発明は、機械学習技術を使用して、Ｗｅｂフォームの多種多様な配置にわたって１つまたは複数のフィールドを自動的に記入（自動記入（autofill））することができるシステムおよび／または方法を提供する。機械学習技術を使用することにより、ブラウザ、または他の実装されたツールが、いずれのデータ、またはいずれのタイプのデータをいずれのフィールド、またはいずれのタイプのフィールドと互いに関係付けるべきかを学習することができる。特定のデータが、特定のＷｅｂページ上の特定のフィールドに入力されるなどの、他のタイプの相互関係も同様に学習可能である。例えば、本発明の機械学習技術は、明示的なプログラミングと比べて、データ自動記入を増進することができる。
【課題を解決するための手段】
【０００７】
１つのアプローチによれば、本システムおよび方法は、ユーザに関する１つまたは複数のデータベースを利用して、いずれのフィールドをいずれのデータベースエントリ（または項目）にマップすべきかを学習することができる。詳細には、部分的に、実装されたツールまたはツールバーを介してユーザ入力を観察し、収集することにより、フィールド情報のデータベースを生成することができる。どのようなフォームフィールド（Ｗｅｂベースのフォーム上のフィールド）にいずれのデータベースフィールド（データベースからのフィールド）が記入されるべきかを判定することも学習可能である。例えば、ＦＩＲＳＴというラベルが付けられたフォームフィールドには、ユーザがユーザのデータベースからの「ファーストネーム」情報を入力する可能性が高いことを学習することができる。ユーザが、新たなＷｅｂフォームに出会うと、ブラウザは、例えば、フォームが、ブラウザによって記入可能なエントリを含むかどうかを判定し、含む場合、いずれのエントリがデータベースのいずれの部分に対応するかを判定する必要がある。さらに、複数のデータベースエントリが存在する場合、所与のフォームに対していずれのデータベースエントリを使用するかを判定することも、実行されなければならない。
【０００８】
以上の判定のいずれを行うトレーニングデータを獲得することも、極めて重要な作業である可能性がある。幸運なことに、訓練は、必ずしもユーザ固有である必要はない。本発明の一態様では、正しい入力の特徴および出力の特徴を含むトレーニングデータが何らかの形で収集可能である。例えば、ツールバーが、一部のユーザに関して、いずれのデータベースエントリをいずれのフィールドにユーザが入れるか、並びにそれらのフィールドの特徴がどのようなものであるかを収集し、集約することが可能である。この情報は中央リポジトリに返送可能である。中央リポジトリ内のデータをトレーニングアルゴリズムに対する入力として使用して、いずれのデータベースフィールドがいずれのフォームフィールドに対応するかが学習可能である。例えば、「ファーストネーム」というラベルが付けられたデータベースフィールドがＦＩＲＳＴというラベルが付けられたフォームフィールドに対応することが学習可能である。ユーザが、ＦＩＲＳＴというラベルが付けられたフォームフィールドに「Ｊｏｓｈｕａ」を入力し、ユーザが、「ファーストネーム」というラベルが付けられたデータベースフィールドを有する場合、情報ＦＩＲＳＴおよび「ファーストネーム」が返送可能である。このため、個人を特定できる情報が、本発明の上記の態様を実施するのに含められる必要がない。
【０００９】
前述したとおり、データベースフィールド、並びにデータベースフィールドから導出された様々な特徴を訓練目的で使用することができる。例えば、フォームフィールドの特性を活用し、異なるタイプのデータ、および異なるタイプのフォームフィールドを区別する特徴として使用することができる。詳細には、各フォームフィールドは、テキストボックスを示すことが可能な、テキストなどの入力タイプを有する。フォームフィールドがテキストタイプのフィールドであるという事実は、そのフィールドの中にどのようなデータが含まれるかを推測するのを容易にすることが可能なため、有用な情報である可能性がある。つまり、フォームフィールドが、何かテキストフィールド以外の、例えば、コンボボックス（combo box）であるとした場合、そのフィールドは、おそらく、名前または住所を含まない。
【００１０】
特徴は、フォームフィールド名、フォームフィールドの文字サイズまたは文字幅、フォームフィールドの周りのテキスト、および／または既知であるか、または識別されている可能性も、そうでない可能性もある他のフォームフィールドに対するフォームフィールドの位置に基づくことが可能である。ＨＴＭＬテーブルを調べることも、どのような語またはデータが、特定のフォームフィールドの上、下、左側、または右側に位置しているかを判定することを容易にする可能性がある。さらに、近くのテキスト、あるいは、近くのテキストと同一である可能性も、そうでない可能性もある近くのテキストの部分文字列（sub-strings）を使用することが、追加の情報をもたらす可能性がある。
【００１１】
本発明の別の態様によれば、１つまたは複数の制約に少なくとも部分的に基づき、データベースフィールドを、フォームフィールドまたはフォーム値に割り当てることが可能である。制約は、多数の異なる状況において、フォーム値に対するデータベースフィールド／エントリの割り当てをコントロールすることができる。例えば、制約は、Ｗｅｂフォームが競合する出力タイプを有することが明白である場合に、あるいはデータベースエントリを単一のＷｅｂフォーム内で再使用することができるかできないかを確認するために、使用することができる。
【００１２】
新たなＷｅｂフォームに導入される場合など、一部のケースでは、フォームフィールドに対するデータベースエントリの最良の割り当てが所望される可能性がある。この最良の割り当ては、１つまたは複数の制約に部分的に従って、同時確率（joint probabilities）を最大化することにより判定することができる。このタイプの制約の例には、あるフォームフィールド（例えば、住所（address line）＃２）を別のフォームフィールド（例えば、住所＃１）なしには許さないこと、エントリの繰り返しの使用を軽減する（mitigate）再使用制約、競合する出力タイプに対処する合成（composition）制約、および／または順序制約（例えば、市外局番が市内局番（exchange）の前に来る）が含まれることが可能である。
【００１３】
本発明のさらに別の態様では、データベースフィールドからフォーム値へのマッピングをパーソナライズすることができる。例えば、特定のＷｅｂページ上で、ユーザが、提案された自動的な入力を拒否し、データを手動で入力したことが観察可能である。そのデータの一部が、データベース内のエントリと一致することが可能である。その後、その特定のユーザに関して、一部のフォームフィールドエントリは、学習されたデータベースエントリにではなく、観察されたデータベースエントリに対応することが学習可能である。したがって、ユーザは、何らかの別のデータで自動的なエントリに上書きすることができ、本システムまたは方法は、その別のデータを学習することができる。これとは別に、またはさらに、ユーザの手動の入力は、サイト固有である（そのユーザに関して）ことが可能であり、つまり、そのような入力が、その特定のＷｅｂページまたはＷｅｂサイトにおいてだけ使用されることを意味する。さらに、自動的なエントリは、自動記入動作に応答してユーザ入力を観察することに基づいて変更可能である。
【００１４】
本発明のさらに別の態様では、自宅住所および会社住所、または請求先住所および配送先住所などの複数のセットのフィールドが存在する場合、ヒューリスティック（heuristics）または学習を使用可能である。例えば、ＨＴＭＬフォームにおいて、これらの住所は、しばしば異なるテーブルに現れる。このため、これらの住所のそれぞれの場所またはテーブルを学習し、任意の数のサブセットに分けることができる。
【００１５】
別のアプローチは、データベースを使用しない可能性があるが、代わりに、ユーザのデータ入力を観察し、かつ／または追跡して、どのようなデータをいずれのフィールドに入れるべきかを学習することを含む。詳細には、複数のフォームフィールドへのデータのユーザ入力を、オフライン学習の間に観察して格納すること、またはオンライン学習を介して追跡し適合させることができる。オフライン学習では、要注意の（sensitive）情報を含むフィールドエントリの複数の観察された実例が格納可能であり、後の時点で、機械学習システムのための入力として使用可能である。オンライン学習は、例えば、いくらかの個人を特定できる情報を含む可能性があるモデル自体を除き、情報を格納することをまったく必要としない、とりわけ、ナイーブベイズ（Naive Bayes）アプローチ、勾配法（gradient descent）、選り分け（winnow）、またはパーセプトロンアルゴリズム（perceptron algorithm）の１つなどの、オンライン学習アルゴリズムを使用する。前述した本発明の多くの態様は、この観察されたエントリのアプローチと組み合わせることもできる。
【００１６】
幾つかの実例では、すべてのフォームフィールドがユーザに見えるわけではない可能性があるが、それでも、記入可能である。これは、ユーザが、自分が公開している情報に気付いていない可能性があるということだけでも、多くのセキュリティまたはプライバシーの懸念を生じさせる可能性がある。そのような懸念に応答して、本発明の別の態様は、ユーザが、ページ上のフォームフィールドおよび／または自動的に記入されたフィールドのリストを見ることを可能にすることができる表示をユーザインターフェース上で提供する。これは、自動入力されるラジオボタンまたはチェックボックスに関して特に効果的である可能性がある。というのは、ラジオボタンまたはチェックボックスは、ユーザの目をひかない可能性があり、あるいはユーザは、ラジオボタンまたはチェックボックスが自動入力されることを予期しない可能性があるからである。
【００１７】
フォームフィールドのリストは、Ｗｅｂページ上の実際のフォームフィールドにリンクされることも可能である。したがって、リストされたフォームフィールドに対する変更が、実際のフォームフィールド内の内容に影響を与えることが可能である。これとは別に、自動記入機能の使用を、ユーザのコンピュータ上に備えられたセキュリティ対策に結び付けることもできる。つまり、自動記入機能は、信頼されたサイトで、またはユーザのセキュリティレベルを満足させるサイトでだけ、利用可能とすることができる。
【００１８】
以上の目的および関連する目的を達するため、本発明の幾つかの例示的な態様を本明細書で、以下の説明および添付の図面に関連して説明する。ただし、これらの態様は本発明の原理を使用することができる様々な形の幾つかだけを示し、本発明は、すべてのそのような態様、および均等な態様を含むものとする。本発明のその他の利点、および新規な特徴は、本発明の以下の詳細な説明を図面と併せて考慮することで、明白となる可能性がある。
【発明を実施するための最良の形態】
【００１９】
次に、本発明を図面を参照して説明する。すべての図面で、同様の符号は、同様の要素を指すのに使用される。以下の説明では、説明のため、本発明の完全な理解をもたらすように多数の特定の詳細を提示する。ただし、本発明は、それらの特定の詳細なしに実施できることが明白である可能性がある。その他、周知の構造およびデバイスは、本発明を説明するのを容易にするため、ブロック図の形態で示す。
【００２０】
本出願で使用する「コンポーネント」および「システム」という用語は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアであるコンピュータ関連のエンティティを指すものとする。例えば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、およびコンピュータとすることができるが、以上には限定されない。例として、サーバ上で実行されているアプリケーションと、そのサーバをともに、コンポーネントとすることができる。１つまたは複数のコンポーネントが、プロセスおよび／または実行のスレッドの内部に存在することが可能であり、コンポーネントは、１つのコンピュータ上にローカライズされること、または２つ以上のコンピュータ間に分散されることが可能である。
【００２１】
さらに、データベースエントリという用語は、１つまたは複数のデータベースに送られるデータ、または他のユーザベースの入力を指すことが可能である。データベースエントリは、データベース内の対応するデータベースフィールド内に位置することが可能である。「フォームフィールド」という用語は、ユーザから入力を受け入れることができ、出力を表示することもできるフィールドを指し、このため、異なる入力タイプ、および異なる出力タイプが存在することが可能である。異なる出力タイプは、異なるフィールドタイプに対応することが可能である。本明細書で使用する「入力フィールド」という用語は、ユーザが何らかのデータまたは情報を入力するフィールドを指すことも可能である。文脈に依存して、入力フィールドは、フォームフィールドを指すことも可能である。
【００２２】
本発明は、フォームフィールドの機械学習された自動記入のためのトレーニングデータを生成することに関連して、様々な推論スキームおよび／または推論技術を組み込むことができる。本明細書で使用する「推論」という用語は、一般に、イベントおよび／またはデータを介してキャプチャされた一組の所見から、システム、環境、および／またはユーザの状態について推理する、または推論するプロセスを指す。推論を使用して、例えば、特定の文脈またはアクションを識別すること、または諸状態にわたる確率分布を生成することができる。推論は、確率論的であること、つまり、データおよびイベントの考慮に基づく、関心対象の諸状態にわたる確率分布の計算とすることができる。また、推論は、一組のイベントおよび／またはデータからより高いレベルのイベントを合成するために使用される技術を指すことも可能である。そのような推論は、イベントが時間的に極めて近接して互いに関係しているか否かにかかわらず、また、イベントおよびデータが、１つのイベントソースおよびデータソースから来るか、幾つかのイベントソースおよびデータソースから来るかにかかわらず、一組の観察されたイベントおよび／または格納されたイベントデータから、新たなイベントまたはアクションの構築をもたらす。
【００２３】
本発明は、Ｗｅｂベースのフォーム内の各フィールドについて、例えば、そのフィールドが、１つまたは複数のデータベースから記入可能であるか否かについて学習することに関する。機械学習のシステムおよび技術を使用して、本発明の自動記入システムおよび方法は、どのようなデータがどのフォームフィールドに対応するかを学習し、ユーザによって要求された際にフォームフィールドに自動的に記入することができる。
【００２４】
多くの異なるタイプのＨＴＭＬＷｅｂフォームが、つまり、本明細書でむしろフォームフィールドと呼ばれることが可能なフィールドが存在する。フォームフィールドは、ボックスを選択するテキストボックスからラジオボタンまでの範囲にわたることが可能である。フォームフィールドを自動的に記入するのに成功するため、どのようなデータが特定のフォームフィールドに入るかを特定することが重要である可能性がある。通常、コーディングが、フォームがどのようなものであり、どこでフォームが始まるか、どこでフォームが終わるかを明らかにする。各フィールドは、テキストなどのタイプを有し、識別目的で名前を付けることができる。このため、ユーザの労力なしに、フォームフィールドのタイプを認識すること、並びに、どのようなデータが入力されることが可能であるか、または入力されるべきかを認識することを円滑にするように学習されることが可能な、Ｗｅｂフォームに関連する幾つかの特徴が存在する。
【００２５】
例えば、フィールドがテキストフィールドであるという事実を特徴とすることができる。フィールドの名前が「ラストネーム」である場合、これは、内容が個人のラストネームであるべきことを示し、そのことを特徴とすることができる。フォームフィールドの周りのテキストも重要である。というのは、そのテキストが、何がフィールドに入っているかについて何か伝える可能性があるからである。このため、「Ｆｉｒｓｔ」または「Ｌａｓｔ」または「Ｎａｍｅ」は、ユーザのファーストネーム、ラストネーム、またはフルネームがそれぞれ、フィールドに入っているか、または入力されるべきであることを示すことが可能である。
【００２６】
ラジオボタンは、従来、リストに構成され、それらの円をクリックすることによってチェックを入れることができる小さい円である。１回に、グループのボタンのうち１つのボタンだけにチェックを入れることができる。このため、１つのボタンにチェックを入れることにより、グループ内の以前にチェックを入れられていたボタンはクリアされる。ラジオボタンは「ラジオ」タイプを有し、グループに構成されたラジオボタンは、協働することができるように同一の名前を有さなければならない。ただし、グループ内の各ボタンは、他のボタンから区別するために異なるテキストタグを有することが可能である。チェックを入れられたボタンに対応するテキストタグが学習され、記憶可能である。
【００２７】
実際、ラジオボタンを使用して、ユーザの配送の選好を示すことができる。ユーザの労力を軽減するため、例えば、陸上の配送に対応する所望のラジオボタンが、ユーザが精算関連のＷｅｂページを訪れるたびに自動入力されることが可能である。チェックボックスも、同様の形で学習されることが可能である。ただし、チェックボックスは、複数のチェックボックスがユーザによって選択されることが可能であるという点で、ラジオボタンとは基本的に異なる。
【００２８】
ラジオボタンおよびチェックボックスの自動記入は慣例ではないため、そのような自動記入は、ユーザが予期していない可能性がある。これに対処するため、自動入力されたデータが正しいことのより高い保証を提供するため、マッチを学習すること、および／または互いに関係付けることに関して、より高い閾値が、必要とされる可能性がある。
【００２９】
選択ボックスも、学習され、自動入力されることが可能なデータを含む可能性がある。選択ボックスは、州の名前または略称を提供する目的などで、ほとんどのＷｅｂフォーム上で比較的一般的である。そのようなリストが検出されることが可能であり、その特定のリスト、または選択された州が学習されることも可能である。選択ボックスに加え、送信（submit）ボタンが、学習プロセスにおいて使用することができる。詳細には、送信ボタンは、文脈において、タイプ入力された別の何かに関連することが可能である。例えば、「購入」まは「買う」という名前の付いた送信ボタンが、住所をタイプ入力する文脈に関連することが可能である。このため、新たな、つまり初めて目にする（never-seen-before）Ｗｅｂフォームを自動記入する場合、「買う」という名前の付いた送信ボタンがユーザによって選択されたことを検出することにより、住所データおよび／または名前データもおそらく入力されたことが示されることが可能である。
【００３０】
他の指標も使用して、どのようなデータがいずれのフィールドに対応するかを検出するのを容易にすることができる。例えば、フィールド幅が重要である可能性がある。「ファーストネーム」フィールドは、「ラストネーム」フィールドより短い可能性がある。同様に、住所フィールドは、名前フィールドより長い可能性がある。フォームフィールドの位置、配置、順序などに関連する他の微妙な違いも、学習プロセスおよび自動記入プロセスに寄与することが可能である。さらに、機械学習は、それらの微妙な手がかり、またはヒントに非常に敏感なものとすることができる。実際、そのような微妙な違いが、複数の種類のフィールドが存在する場合に、いずれのデータがいずれのフィールドに属するか、並びにフィールドに対するデータの割り当てを効果的に、うまく学習するのに重要である可能性がある。
【００３１】
フォームフィールドは、多数の異なる種類の情報に関して作成することができる。例えば、ファーストネーム、ラストネーム、フルネーム、住所、会社、都市、州、郵便番号、電話番号、電子メールアドレス、保証情報や免責条項情報のようなテキストの段落、質問、オプション、意見、個人情報、および他の一般的なテキストなどの標準のタイプの入力フィールドに加え、ファイルを探してブラウズすることによりユーザによって通常、記入される、ファイルの名前を入力するためのフォームフィールドも作成されることが可能である。しばしば、ユーザがアップロードすることを所望するファイル（例えば、フィールドに入力することにより）は、ユーザが最近使用したファイルである。したがって、それらのフィールドは、ユーザのシステム上の最近アクセスされたファイルを使用して自動入力されることが可能である。
【００３２】
詳細には、一部のオペレーティングシステムは、「最近使ったドキュメント（my recent documents）」フォルダを含むことが可能であり、そのフィールドが、少なくとも部分的に、最近使用されたファイルを使用して自動入力されることが可能である。ユーザがそれらのドキュメントにアクセスして以来の時間の長さも、それらのドキュメントを自動記入のために使用すべきかどうかを判定する際に考慮することができる。その新しさを、ファイルフィールドに入力された他のファイルの新しさと比較することができ、最新のアクセスの時刻、および最新の入力の時刻に少なくとも部分的に基づく、それらのフィールドにおける最近使用されたエントリと最近アクセスされたファイルの何らかの組合せを入力することができる。
【００３３】
実際、ユーザが、デジタル写真を最近変更しており、その写真を写真サイトにアップロードすることにより、家族および友人と分かち合うことを所望するものと想定する。ファイルフォームフィールドは、部分的に、いずれのファイルを入力するかを判定するのに役立つように、最近アクセスされたファイルを調べることにより、自動入力されることが可能である。
【００３４】
次に、図１を参照すると、Ｗｅｂページ上のフォームフィールドにデータを自動的に入力することを円滑にするインテリジェント自動記入システム１００の高レベルのブロック図が存在する。システム１００は、名前（ファーストネームおよびラストネーム）、アドレス（電子メールアドレス、自宅住所、会社住所、請求先住所、または配送先住所）、電話番号（自宅番号、勤務先番号、ファックス番号、または携帯電話番号）、郵便番号、州、ファイル名、および／または他の任意のデータなど、どのような入力が、任意の所与のＷｅｂフォーム上のいずれのフィールドに対応するかを学習することができる機械学習コンポーネント１１０を含む。機械学習コンポーネント１１０は、トレーニングデータとも呼ばれる１組の入力を所与として、出力値を予測することを学習することもできる。
【００３５】
正しい入力の特徴および出力の特徴から成るトレーニングデータは、何らかの形で収集されることが可能である。例えば、特別に強化されたツールバーが、その情報を収集し、集約することが可能である。このデータが、トレーニングアルゴリズムに入力として与えられることが可能である。アルゴリズムは、ニューラルネットワーク、ロジスティック回帰、最大エントロピーモデル、デシジョンツリー、ナイーブベイズモデル、パーセプトロン（perceptron）、選り分け、任意のリニアセパレータ（linear separator）、サポートベクトルマシンなどを作成する無数の機械学習技術のいずれか１つによって提供されることが可能である。ほとんどのモデルタイプは、特徴の値を所与として、それぞれの可能な出力のスコアまたは確率を出力する。
【００３６】
アルゴリズムから学習されたモデルがもたらされ、このモデルが、選択的自動記入コンポーネント１２０によって、その後のＷｅｂフォームに適用されることが可能である。ユーザによって呼び出されると、選択的自動記入コンポーネント１２０は、データとフィールドの間の学習された相互関係に少なくとも部分的に基づき、最も適切なエントリをフィールドに入力することができる。選択的自動記入コンポーネント１２０は、フィールド別に、グループのフィールドで、またはすべての記入可能なフィールドに対して一度に呼び出すことができる。各フィールドに関するドロップダウンメニューをポピュレートすることができ、フォームフィールドにデータを直接に入力しても良い。ドロップダウンメニューの中で提示される項目は、観察されたエントリを含む学習された相互関係に基づいて選択されることが可能である。
【００３７】
さらに、機械学習コンポーネント１１０も選択的自動記入コンポーネント１２０も、アドレス帳、連絡先リスト（contact list）、アカウント登録、ユーザプロファイルなどの１つまたは複数のデータベースに結び付けるか、またはリンクすることができる。システムは、既に入力された情報に基づき、いずれのデータベースエントリを使用するかを自動的に判定することができる。詳細には、機械学習コンポーネントを、データベースの１つまたは複数の中に格納されたデータで訓練することができる。使用中、選択的自動記入コンポーネント１２０は、必要に応じて、それぞれのデータベースからデータを抽出することができる。例えば、ユーザは、自分の母親のファーストネームおよびラストネームをタイプ入力した後、自動記入コンポーネント１２０を呼び出すことができる。母親のファーストネームおよびラストネームは、ユーザによって手動で入力されるので、自動記入コンポーネントは、それを検出し、それらの名前をファーストネームエントリおよびラストネームエントリとして含むデータベースエントリを探索し、次に、データベースからの母親の情報を使用して、フォームの残りの部分を自動記入することができる。
【００３８】
機械学習を使用して、Ｗｅｂフォーム上のデータ入力を自動化された形で実行する幾つかの異なるアプローチが存在することが可能である。図２および図３は、組み合わせることも、別々に使用することも可能な２つの異なるアプローチを、機械学習技術とともに説明する。トレーニングスキーム２００は、ユーザによって入力されたデータを観察し、かつ／または収集することができるユーザベースの入力を記録するコンポーネントを含む。例えば、ユーザは、オンライン雑誌の定期購読を注文する際、Ｗｅｂベースのフォームに自分のメーリング（mailing）情報を入力することができる。特定のデータおよびデータのタイプ（例えば、テキスト、チェックが入れられたボックスなど）、並びに対応するフォームフィールド（名前、電子メールアドレス、請求先住所など）が収集されて、中央リポジトリ２２０に送られることが可能である。
【００３９】
これとは別に、またはさらに、ユーザが、ユーザの個人プロファイル、連絡先リスト、アドレス帳、製品登録、および／またはアカウント登録に関するデータベースなどの、１つまたは複数のデータベースをあらかじめポピュレートするように求められることも可能である。それらのデータベースは、集約することも、単に中央リポジトリ２２０に供給することも可能である。中央リポジトリ２２０の中に保持されるデータ、または少なくともデータの一部分を機械学習アルゴリズムに対する入力として使用して、トレーニングデータの１つまたは複数のセットを生成することができる。次に、トレーニングデータを使用して自動記入システムを訓練して、どのようなデータベースエントリをいずれのフォームフィールドに記入するかを学習させることができる。
【００４０】
より具体的には、入力マッピングコンポーネント２３０は、実際のデータを適切なフォームフィールドにマップすることにより、中央リポジトリデータを利用することができる。例えば、マッピングコンポーネント２３０が、データ「９８０５２」を郵便番号フォームフィールドにマップすることができ、数字データ「９８０５２」が郵便番号フォームフィールドに対応することが、学習されることが可能である。このため、郵便番号フォームフィールドがＷｅｂフォーム上で再び見られた場合、自動記入システムは、そのフィールドに「９８０５２」を入力するか、または入力することを提案することができる。
【００４１】
プライバシーが懸念される状況では、実際のデータ（例えば、「フレッド」）は、中央リポジトリ２２０に送られる、または格納される必要がない。代わりに、「ファーストネーム」という用語が、ＦＩＲＳＴ  ＮＡＭＥフィールド内のユーザのデータを表すように送られることが可能である。
【００４２】
実際、ユーザが、ブラウザを使用しており、本を買うためにＡｍａｚｏｎ．ｃｏｍ（登録商標）のような電子商取引Ｗｅｂページに立ち寄るものと想定されたい。ユーザは、ＦＩＲＳＴと示されたフォームフィールドに自分のファーストネームを入力し、ＬＡＳＴと示されたフィールドに自分のラストネームを入力する。Ｗｅｂページを含むこの情報は、実装されたツールバーによって収集され、中央データベースに格納された後、学習されることが可能であり、したがって、そのユーザ、または他の任意のユーザが、さらなる本を買うためにＡｍａｚｏｎ．ｃｏｍ（登録商標）を再び訪れた場合、自動記入システムは、それが同一のページであると認識し、それに応じて、同一の情報（例えば、ＦＩＲＳＴフィールドにファーストネーム、ＬＡＳＴフィールドにラストネーム）が入力されるべきであると予測することができる。一般に、システムは、訓練された何らかの対象を見て取るか、または認識すると、次回、正しい予測を行う尤度が比較的高い。
【００４３】
しかし、実施するのがより簡単である可能性がある、これとは別のアプローチは、所与のユーザに関して、そのユーザがフィールドに何を入力する可能性が最も高いかを学習することである。このアプローチは、データベースをまったく使用しない可能性がある。このアプローチは、観察されたエントリのアプローチと呼ぶことができる。例えば、観察されたエントリのアプローチは、ユーザが、普通、ＦＩＲＳＴという名前の付いたフィールドの中に、ユーザのデータベースからの「ファーストネーム」フィールドを入力することを学習するのではなく、ユーザが、通常、ＦＩＲＳＴという名前の付いたフィールドに「Ｊｏｓｈｕａ」を入力することを学習することができる。この目的で、機械学習システムをやはり、使用することができる。システムの可能な出力は、ユーザがこれまでに入力したことがあるすべてのフィールド値である。例えば、ユーザが、自分のファーストネーム、自分のラストネーム、幾つかの電話番号、および幾つかの電子メールアドレスを入力している場合、以上のすべてが、可能なエントリになる。システムに対する入力は、以下に説明するブールシステム（Boolean system）に対する入力と同一種類の特徴である。オプションとして、この学習は、フィールドが、要注意の情報（例えば、クレジットカード情報またはパスワード）を含むか、または要注意の情報に関わるように思われる場合、行われない。
【００４４】
図３は、フォームフィールドを自動記入することを円滑にすることができる観察されたエントリのトレーニングスキーム３００のブロック図を示す。観察されたエントリのトレーニングスキーム３００は、ユーザによって行われたデータエントリを観察し、追跡することができるエントリ追跡コンポーネント３１０を含む。学習目的で長期ストレージリポジトリまたはデータベースに移動されるデータがまったく存在しないので、情報のエントリが、自動記入出力に対してより重要であり、かつ／またはより影響を与える可能性がある。
【００４５】
スキーム３００が入力されたデータを検出するとすぐに、データおよびＷｅｂフォームに関する幾つかの特徴が、学習コンポーネント３２０によって学習されることが可能である。１つの実例では、実際のデータが、特定のフォームフィールドに関連付けられることが可能である。例えば、ユーザが、自分のファーストネーム、「Ｊｏｓｈｕａ」をＦＩＲＳＴ  ＮＡＭＥフィールドにタイプ入力する。これは、学習されるべき特徴と特徴付けることができる。すなわち、文字列、またはテキスト文字列、Ｊ−ｏ−ｓ−ｈ−ｕ−ａが、ＦＩＲＳＴ  ＮＡＭＥフィールドに対応する。他の特徴には、フォームフィールドが特定のＷｅｂページ上に位置すること、ＦＩＲＳＴ  ＮＡＭＥフィールドが、ＬＡＳＴ  ＮＡＭＥフィールドの左側にあり、幅がより短い可能性があること、ユーザが、左から右にデータを入力することを始めた場合、最も左側のフィールドが、ファーストネームフィールドであること、５桁より長い数字データが、大概、電話番号であること、並びにフォームフィールド、およびＷｅｂページ自体にさえ関連する他の様々な特性を観察し、学習することが含まれる。
【００４６】
さらに、観察されたエントリのスキーム３００は、しばしば、順序情報を利用することができる。例えば、ユーザは「Ｊｏｓｈｕａ」を入力した直後に、しばしば、「Ｇｏｏｄｍａｎ」を入力する。ユーザは自分の市外局番を入力した直後に、通常、自分の市内局番を入力する。このため、次の値に先行する各値に関する特徴を作成することができる。
【００４７】
学習コンポーネント３２０は、オフライン学習、またはオンライン学習を実行することができる。オフライン学習では、要注意の情報を含むフィールドエントリの複数の観察された実例が、格納され、後の時点で機械学習システムに対する入力として使用されることが可能である。任意の機械学習システムを使用することができるが、オフライン学習には、オンライン学習よりも時間がかかる傾向がある。さらに、要注意の情報が格納される可能性があるため、オフライン学習の方が、オンライン学習よりも効果的である傾向がある可能性がある。オンライン学習は、例えば、いくらかの個人を特定できる情報を含む可能性があるモデル自体を除き、まったく情報を格納する必要がない、とりわけ、ナイーブベイズアプローチ、勾配法、選り分け、またはパーセプトロンアルゴリズムの１つなどのオンライン学習アプローチを使用する。新たな実例が観察されると、自動記入システム３００は、適応することができる。基本的に、ユーザによって入力されたデータが、データベースまたは中央リポジトリを使用することなしに、フォームフィールドにマップされることが可能である（エントリ−フィールドマッピングコンポーネント３３０により）。
【００４８】
しかし、観察されたエントリの方法は、データベースエントリ方法と併せて使用することもできる。例えば、任意の所与のフィールドに関して、データベースからのエントリが記入される確率に、データベースフィールドが正しいエントリである確率を掛けた値が、学習されることが可能である。データベースからではないエントリが記入される確率に、観察されたエントリのモデルによって与えられる確率を掛けた値も、学習されることが可能である。生成された推測をその情報に基づいて並べるか、またはランク付けすることができる。
【００４９】
いずれのアプローチが採られるかにかかわらず、異なる言い回しでＷｅｂページを提示するためにＷｅｂページをときどき、わずかに変更する可能性がある多くのタイプのＷｅｂページ（例えば、電子商取引サイト）に対して役立つ可能性があるトレーニングデータを一般化することができる。トレーニングデータは、Ｗｅｂベースのフォームに対して自動記入動作を実行することに関してその汎用性を増すような変更にもかかわらず、依然として正しい応答をもたらすことができる。
【００５０】
次に、図４を参照すると、Ｖｅｒｉｚｏｎ  Ｗｉｒｅｌｅｓｓ（登録商標）Ｗｅｂページからの典型的なＨＴＭＬＷｅｂフォーム４００が示されている。以下は、対応するＨＴＭＬソースの例である。
【００５１】
【表１−１】
2005327260.tif 000003
【００５２】
【表１−２】
2005327260.tif 000004
【００５３】
このＨＴＭＬを理解することの鍵は、以上に「入力」と（太字で）ラベルが付けられた領域を見つけることである。最初の入力は、ユーザのファーストネームである。最初の入力は、以下から構成される。
【００５４】
【表２】
2005327260.tif 000005
【００５５】
これは、以下を表す。すなわち、
【００５６】
【表３】
2005327260.tif 000006
【００５７】
以上の情報のすべては、第１の入力がファーストネームエントリであると機械学習システムが予測するのに非常に役立つ可能性がある。例えば、フィールド名が「ファースト」と「ネーム」の両方を含むという事実は、極めて役に立つ。フィールドの幅およびサイズが１５文字であるという事実も、役に立つ（例えば、ラストネームエントリは、幅２０を有することに留意されたい）。加えて、このフィールドエントリは、テーブルの形態になっている。このテーブルを解析すると、すぐ上のテーブルエントリは、以下のとおりであることを見て取ることができる。
【００５８】
【表４】
2005327260.tif 000007
【００５９】
上記のテーブルエントリが入力フィールドではなく、文字列、「Ｆｉｒｓｔ  Ｎａｍｅ」を含むという事実は、エントリがファーストネームフィールドであることを極めてよく表している。一部のケースでは、すぐ左側のテーブルエントリも役に立ち、すぐ右側のテーブルエントリも同様である。例えば、このケースでは、すぐ右側のフィールドも入力フィールドであり、名前、「ｐ＿ｌａｓｔ＿ｎａｍｅ」を有するという事実も、そのエントリがファーストネームフィールドであることを極めてよく表す。同一ではないか、または単に完全に一致しない近くのテキスト、または近くのテキストの部分文字列を使用することも、役に立つ可能性がある。
【００６０】
機械学習システムは、通常、入力のセットを所与として、出力値を予測することを学習しようと試みる。この実施例では、可能な出力値は、どのように自動記入すべきか分からなかったフィールドタイプに関して、「ファーストネーム」、「ラストネーム」、「都市」、「州」、「住所１」、「住所２」、「電話＃」などであることも、「なし」であることも可能である。システムに対する入力は、以下のような値である。すなわち、
【００６１】
【表５】
2005327260.tif 000008
【００６２】
など。
【００６３】
以上の入力は、次に、通常、ブール値であるが、ときとして、数値、カテゴリ値、および／または関係値である、特徴値（feature values）に変換される。このケースでは、ブール値には、以下が含まれることが可能である。すなわち、
【００６４】
【表６】
2005327260.tif 000009
【００６５】
他の多くの可能な特徴値が存在し、そのほとんどは、このケースでは、値「偽」を有する。
【００６６】
ブール値は、例えば、役立つ範囲を見出し、共通の役立つ文字サブシーケンスを探すことにより、自動的に判定できる。これとは別に、ブール値は、例えば、プログラマが、入力値を検査し、最も役立つブール値を特定することにより、手動で判定することができる。
【００６７】
次に、図５を参照すると、本発明の態様に従って訓練されたインテリジェント自動記入システム５００の概略ブロック図が示されている。図は、新たなＷｅｂフォームがユーザ（５１０）に提示され、または表示され、自動記入機能がユーザによって呼び出されて、フォームフィールドの１つまたは複数に記入することを示す。詳細には、選択的記入コンポーネント５２０がトリガされて、１つまたは複数のフォームフィールドへの情報の自動的入力を求めることが可能である。
【００６８】
新たなフォームが見られると、すべてのフィールドに関する特徴値が算出されることが可能である。それらの値が、次に、学習されたモデルに送られ、このモデルが、各フィールドに対する各出力（フィールドタイプ）に関する確率、スコア、または０−１の値を出力する。例えば、フォームフィールド、およびフォームフィールドの値を詳細に決める（map out）ことができる。すなわち、あるフィールドは、最初である９０％の尤度と、最初でない１０％（または最後である１０％）の尤度を有し、別のフィールドは、最後である９０％の確率と、最初である１０％の確率を有することが可能である。このため、最も高い精度でフォームフィールドにデータを記入することを円滑にする最良の割り当てが見出されなければならない。
【００６９】
フォーム値に対するデータエントリ（またはデータベースエントリ）の割り当ては、１つまたは複数の制約５３０に少なくとも部分的に基づくことが可能である。制約５３０が設定されて、あるタイプの割り当てが行われるのを制限するか、または禁止することが可能である。制約限度の１つの実施例は、所与のフォームにおいて、あるデータベースエントリを使用することができる回数に関係する（relate back）。通常、データベースエントリは、フォーム当たり１回だけしか使用されるべきでないが、一部のケース（例えば、電話番号）では、再使用を許すことが適切である可能性がある。一部のフィールドの再使用が禁じられるか、または禁止される（例えば、制約として設定される）場合、再使用制約に適合する、データベース名に対するフィールド名の最も可能性の高い割り当て、または最もスコアの高い割り当てが見つけられることが可能である。このため、データエントリ−フォームフィールド分析コンポーネント５４０が、所与のＷｅｂフォームに対する１つまたは複数の適用可能な制約を評価して、フォームフィールドに対するデータエントリ（オプションのデータベース５５０からの）の割り当てを決めることができる。最終的に、自動記入システムの「提案される」出力が、それぞれのフォームフィールド内に表示されることが可能である。
【００７０】
例えば、「ファーストネーム」、「ラストネーム」、および「名前」（ファーストネームとラストネームの両方から構成される）などの競合する出力タイプも存在することが可能である。このため、それらの異なるバリエーションが同一のページ上に存在すべきことを想定する合成制約が設定されることが可能である。制約は、「名前」フィールドだけ、または「ファースト」ネームフィールドと「ラスト」ネームフィールドが存在できることを示すことが可能である。「名前」フィールドが存在する場合、例えば、データベースからのファーストネームフィールドとラストネームフィールドを連結することにより、データを構築する。同様に、「市外局番」、「市内局番」、および「ｌａｓｔ４ｄｉｇｉｔｓ（最後の４桁）」フィールドと並んで、「電話番号」フィールド（データベースからの３つのフィールドすべてが連結されて構成される）も存在する可能性がある。いずれの状況でも、合成制約に適合する最も可能性の高い、または最も高いスコアのフィールド名割り当ても、判定されることが可能である（名前エントリとラストネームエントリをともに有することは許されないため）。
【００７１】
一部のフィールドエントリは、決して、他のフィールドエントリを伴わずに使用されてはならない。例えば、第２の住所（＃２）エントリは、決して第１の住所（＃１）エントリを伴わずに使用されてはならない。同様に、ユーザのミドルイニシャルは、決してファーストネームフィールドより前に出現しない可能性があり、住所１２は、決して住所１より前に出現しない可能性がある。さらに、これらの制約に適合する最も可能性の高い、または最も高いスコアのフィールド名割り当ても、見つけられることが可能である。
【００７２】
さらに、ある人が、左から右に情報を記入している場合、システムは、最初のデータエントリが、ファーストネームに相当することを推測することができ、次に、右側のフィールドが、ラストネームフィールドに相当することを予測することができる。したがって、制約を考慮して観察を行い、フォームフィールドに対するデータ入力フィールドの割り当てをよりよく決めることができる。
【００７３】
一部のフィールドに固有の特徴も、制約に制限されることが可能である。例えば、特定のデータベースフィールドに関して、他の何らかのフィールドの上、下、左側、右側、すぐ上、すぐ下、すぐ左側、またはすぐ右側にあるという特徴が、存在することが可能である。このため、実際には、「市内局番」フィールドは、「市外局番」フィールドのすぐ右側にあることが予期することができる。システム５００が使用される場合、いずれの入力フィールドがいずれであるか「分からない」ことが可能であるが、多くの異なる割り当てが試みられ、制約に適合する割り当てを選ぶ試みが行われることが可能である。
【００７４】
これとは別に、幾つかの異なる割り当てを行うこともできる。割り当ての後、それらのレイアウトの特徴を含む、フォームフィールドに対する入力フィールドの特定の割り当ての最大化された同時確率（joint probabilities）を算出することができる。これは、部分的に、次の条件付けを行うことによって達することができる。すなわち、その第１の事象が第１であり、第１の事象を所与として、第２の事象が第２であり、第１の事象および第２の事象を所与として、第３の事象が第３であり、以下同様の確率は、どのようなものであるか。これを最後まで掛け合わせる（multiply out）と、全体的な同時確率を獲得することができる。このため、他のフィールドとは独立に各フィールドに割り当てを行うこととしてこの問題を考える代りに、同時確率を最大化するという点で、フィールドの最良の割り当てを特定することができる。
【００７５】
制約５３０は、ハード制約であっても、ソフト制約であっても良い。ハード制約では、制約は満たされなければならない。ソフト制約では、制約に違反することに大きなペナルティが存在する。
【００７６】
前述の説明の多くは、すべてのユーザ向けに機能する（ユーザ固有ではない）自動記入システムを構築することに関わっている。しかし、自動記入システムは、ユーザに応じてカスタマイズすることもできる。詳細には、フォーム値に対するデータベースフィールドからのマッピングをパーソナライズすることができる。例えば、特定のページ上で、ユーザが、提案された自動的なエントリを拒否し、手動でデータを入力することが観察される可能性がある。そのデータの一部が、データベース内のエントリと一致することが可能である。このため、そのユーザに関して、それらの入力フィールドエントリが観察されたデータベースエントリと一致することが、学習されることが可能である。続いて、ユーザの自動記入システムが、その情報で更新されることが可能である。情報は、サイト固有の形で更新されて、特定のＷｅｂページ上のエントリが特定のデータベースエントリと一致することを学習することも可能である。さらに、ユーザは、自動記入システムを最初からカスタマイズすること、または必要に応じてユーザが変更することができる既定の設定の提示を受けることもできる。
【００７７】
パーソナライズは、サイト固有の形、または機械学習による一般的な形で行われることが可能である。例えば、システムは、フィールドがＮＯＭＢＲＥを示す場合に、ユーザが、自動記入提案であることが可能なＪｕａｎではなく、「Ｊｏｓｅ」を入力したことを観察する可能性がある。サイト固有である場合、システムは、ユーザがその特定のページ上で「Ｊｏｓｅ」をタイプ入力したことを認識することができる。一般に、データベースエントリおよび／または任意のパーソナライズは、オプションとして、ユーザのコンピュータとは別個のコンピュータ上に（例えば、インターネットまたはＬＡＮを介してアクセスされるサーバ上に）格納されることも可能である。
【００７８】
前述の典型的なページなどの一部のフォームは、複数のセットのフィールド（例えば、自宅住所および会社住所）を含むことが可能である。ヒューリスティックまたは学習を使用して、そのようなケースを識別することができる。例えば、Ｖｅｒｉｚｏｎ（登録商標）のページ（図４）で、異なる住所が異なるテーブルの中に入っている。通常、異なる住所は、ページの実際のテキストの中で空間的にばらばらであり、かつ／または比較的遠くに離れていることが可能である。このため、情報をそれぞれのセット（例えば、自宅アドレスおよび会社アドレス）に分割することが学習されることが可能である。
【００７９】
一部のケースでは、自動記入システムが特定のフォームに関する正しいエントリをユーザに即時には提案しない可能性がある。ユーザがフォーム上でデータを手動で入力するにつれ、ユーザが何を入力したかを観察し、ユーザのエントリに適合するデータベースフィールドに対する入力フィールドの他のマッピングか、またはデータベース内の異なるエントリを特定しようと試みることができる。例えば、システムはユーザの自宅住所を入力するが、その後、ユーザがユーザの会社住所に適合するデータを入力するのを観察することができる。これとは別にシステムは、ユーザがユーザの連絡先リスト内のエントリに適合するデータを入力するのを観察することもできる。このケースでは、最高ランクの適合するエントリに基づき、新たな自動的フィールドエントリが行われることが可能である。
【００８０】
エントリに関する提案は、現在、行われているとおり、「一斉（all-at-once）」ユーザインターフェースを使用して行われることが可能であるが、フィールドのデータベースを伴っても、伴わなくても、機械学習を伴っても、伴わなくても、（例えば、各フィールドにおけるドロップダウンリストを介して）増加する形で行われることも可能である。ユーザがフィールドにデータを入力することを始めると、ユーザが何を入力しているかに部分的に基づき、最良の提案を伴うドロップダウンボックスが存在することが可能である（例えば、ユーザが「Ｊ」をタイプし、ドロップダウンボックスが「Ｊｏｓｈｕａ」を提案する）。これとは別に、ユーザが入力フィールドに入る（例えば、矢印キー、タブ送り、またはフィールド内でクリックすることにより）と瞬時に、フィールドに最良の提案が記入されることが可能である。ユーザが、選択されたテキストを含むフィールド内でタイプすると、選択されたテキストが自動的に削除されることが可能であるが、ユーザがタイプをまったく行わなかった場合、テキストは、そこに留まることが可能である。
【００８１】
次に、本発明による様々な方法を一連の動作を介して説明するが、本発明は、動作の順序によって限定されないことを理解され、認識されたい。というのは、一部の動作は、本発明によれば、本明細書で図示し、説明するのとは異なる順序で、かつ／または他の動作と同時に行われることも可能であるからである。例えば、方法は、これとは別に、状態図などにおいて、一連の互いに関連する状態またはイベントとして表すこともできることが、当業者には理解され、認識されよう。さらに、本発明による方法を実施するのに、例示したすべての動作は要求されない可能性がある。
【００８２】
次に、図６を参照すると、本発明の態様による、Ｗｅｂページ上の１つまたは複数のフォームフィールドへのデータの自動的な入力を円滑にする典型的な方法６００のフローチャートが存在する。方法６００は、６１０で、Ｗｅｂベースのフォームを提供する、または生成することに関する。Ｗｅｂベースのフォームは、ユーザが自動的な形で記入することを所望する１つまたは複数のフォームフィールドを含むことが可能である。これにより、ユーザが最小限に抑えられ、データ入力エラーが軽減されることが可能である。６２０で、データ入力が、機械学習技術を使用してそれぞれのデータエントリフィールドにマップされることが可能である。この結果、機械学習システムは、どのようなデータがいずれのフィールドに対応するかを学習することができる。
【００８３】
図７を参照すると、インテリジェント自動記入システムを構築することに関連して、機械学習システムにて使用するためのトレーニングデータを生成することを円滑にする典型的な方法７００のフローチャートが存在する。方法７００は、７１０で、ユーザが１つまたは複数のフォームフィールドにデータを入力することで始まることが可能である。７２０で、以下の１つまたは複数が、１つまたは複数の実装されたツールバーによって観察され、かつ／または収集されることが可能である。すなわち、少なくとも１つのそれぞれのフォームフィールドに入力されたデータ、いずれのデータエントリがいずれのフォームフィールドに入るか、および／またはそれぞれのフォームフィールドの特徴が、観察され、かつ／または収集され得る。７３０で、１つまたは複数の機械学習システムを使用してデータエントリと正しいフォームフィールドの間の相互関係を学習して、新たなページを訪れた場合、または以前のページを再訪した場合、方法７００が、どのようなデータがいずれのフィールドに入るかを自動化された形で知ることができるようにすることが可能である。そのような学習には、オフライン学習またはオンライン学習を含むことができる。
【００８４】
オプションとして、７２０で収集されたデータを、図８に示すとおり、８１０で、中央リポジトリまたはデータベースに返送することもできる。中央リポジトリ内のデータをそれぞれのフィールドにマップして、１つまたは複数のセットのトレーニングデータの生成をもたらすことができる。次に、トレーニングデータを機械学習システムに対する入力として使用して、いずれのデータベースフィールドまたはデータベースエントリがいずれのフォームフィールドに対応するかを学習させることができる。そのような学習の結果として、ユーザのＷｅｂページ上のフォームフィールドは、Ｗｅｂページを以前に見たことがあるか否かにかかわらず、自動的に記入されることが可能である。
【００８５】
次に、図９を参照すると、特にＷｅｂフォームを自動記入システムまたは自動記入方法がこれまで見たことがない場合にフォームフィールドにデータベースエントリを割り当てることを円滑にする典型的な方法９００のフローチャートが存在する。そのような状況では、方法９００は、９１０で最初に、フォームフィールドの特徴値を算出することができる。特徴値は、どのように計算されるかに依存して、確率またはスコアとすることができる。９２０で、１つまたは複数の制約を設定して、フォームフィールドに対するデータエントリ（またはデータベースエントリ）の割り当てを調整するか、または制御することができる。合成制約（例えば、競合する出力タイプ）、再使用制約（例えば、フォーム当たりに複数回の同一データエントリの使用）、順序制約（例えば、一部のフォームフィールドは、必ずある順序で、ある位置で、または他のフォームフィールドからある距離を離れて配置される）、および／またはコンパニオン（companion）制約（例えば、一部のフォームは、他のフォームと独立には使用することができない）などの、ただし、以上には限定されない、使用することができる幾つかの種類の制約が存在する。
【００８６】
９３０で、１つまたは複数の制約に少なくとも部分的に基づき、フォームフィールドに対するデータエントリの割り当てを決めることができる。制約には、ハード制約とソフト制約がともに含まれることが可能である。ハード制約とは異なり、ソフト制約は満たされることを要さない。ただし、ソフト制約を満たすことができないことは、深刻なペナルティをもたらす可能性がある。近隣であるか否かにかかわらず、その他のフォームフィールドとは独立に各フォームフィールドの割り当てを決める代わりに、９４０で、最大化された同時確率を計算して、割り当ての全体的な確率を算出することができる。多数の異なるセットの割り当てを行うことができ、セット内のその他の割り当てを所与として、そのセット内の各割り当てのそれぞれの確率を一緒に掛け合わせることができる。最高の同時確率を有する割り当てのセットを選択し、Ｗｅｂベースのフォームに自動記入するのに利用することができる。
【００８７】
次に、図１０を参照すると、前述したインテリジェント自動記入の方法またはシステムの呼び出しを示す典型的な方法１０００のフローチャートが存在する。この特定のシナリオでは、１０１０で、１つまたは複数のデータベースが構築されることが可能であり、データベースに格納されたデータを、互いに関係付けて、データベースエントリをフォームフィールドとマッチさせることができる。１０２０で、ユーザが、ユーザのデータが記入されるべき１つまたは複数のフィールドを有するＷｅｂベースのフォームページを開いたものと想定されたい。１０３０で、ユーザは、フィールド別に、またはグループのフィールド別に自動記入機能を選択的に呼び出す。
【００８８】
例えば、自動記入機能は、各フィールドがユーザの所望に応じて自動入力されることが可能であるようにフィールドごとに呼び出されること、および／またはグループのフィールド（例えば、住所フィールド、都市フィールド、および州フィールドなどの関連するフィールド群）により、フィールドをすべて、すなわち一度で記入するように呼び出されることが可能である。少なくとも１つのフィールドが自動記入済みであるものと想定すると、ユーザは、単にその上にタイプすることにより、そのデータに上書きを行うことができる。この「新たな」データも学習され、自動記入コンポーネントが、この新たなデータが使用されるべき場合を認識するように変更されることが可能である。上書きを行った後、残りのフィールドに記入するなどのために、自動記入機能が再び呼び出されることが可能である。ただし、上書きされたフィールドは影響を受けない。加えて、自動記入機能は、ユーザによって手動で入力されたデータを観察し、上書きされたデータに関係のあるデータを使用して、残りのフィールドに自動記入することができる。
【００８９】
例えば、ＮＡＭＥフィールドが、最初、自動入力されるものと想定されたい。ユーザは、自分の名前を削除し、自分の兄弟の名前を挿入するユーザの兄弟の情報は、自動記入コンポーネントがアクセスすることができるデータベースの１つの中に格納されていることが可能である。このため、兄弟の名前を認識すると、それに応じて、自動記入コンポーネントまたは自動記入方法は、データベースから兄弟のデータをプルして（pull）、フォームフィールドをポピュレートすることができる。
【００９０】
本発明の様々な態様に関するさらなる文脈を提供するため、図１１、および以下の説明は、本発明の様々な態様を実施することができる適切な動作環境１１１０の簡単な一般的説明を提供することを目的とする。本発明を、１つまたは複数のコンピュータ、または他のデバイスによって実行される、プログラムモジュール群などのコンピュータ実行可能命令の一般的な文脈において説明するが、本発明は、他のプログラムモジュールと組み合わせて、かつ／またはハードウェアとソフトウェアの組合せとしても実施できることが、当業者には認識されよう。
【００９１】
ただし、一般に、プログラムモジュールには、特定のタスクを実行するか、または特定のデータ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。動作環境１１１０は、適切な動作環境の一例に過ぎず、本発明の用途または機能の範囲について何ら限定を提案するものではない。本発明で使用するのに適する可能性がある他の周知のコンピュータシステム、コンピュータ環境、および／またはコンピュータ構成には、パーソナルコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラマブル家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、以上のシステムまたはデバイスを含む分散コンピューティング環境などが含まれるが、以上には限定されない。
【００９２】
図１１を参照すると、本発明の様々な態様を実施するための典型的な環境１１１０が、コンピュータ１１１２を含む。コンピュータ１１１２は、処理装置１１１４、システムメモリ１１１６、およびシステムバス１１１８を含む。システムバス１１１８は、システムメモリ１１１６から処理装置１１１４までを含むが、これらには限定されないシステムコンポーネント群を結合する。処理装置１１１４は、様々な利用可能なプロセッサのいずれであることも可能である。デュアルマイクロプロセッサ、およびその他のマイクロプロセッサアーキテクチャも、処理装置１１１４として使用することができる。
【００９３】
システムバス１１１８は、１１ビットバス、インダストリアルスタンダードアーキテクチャ（Industrial Standard Architecture）（ＩＳＡ）、マイクロチャネルアーキテクチャ（Micro-Channel Architecture）（ＭＳＡ）、エクステンデッドＩＳＡ（Extended ＩＳＡ）（ＥＩＳＡ）、インテリジェントドライブエレクトロニクス（Intelligent Drive Electronics）（ＩＤＥ）、ＶＥＳＡローカルバス（ＶＬＢ）、ペリフェラルコンポーネントインタコネクト（Peripheral Component Interconnect）（ＰＣＩ）、ユニバーサルシリアルバス（Universal Serial Bus）（ＵＳＢ）、アドバンストグラフィックスポート（Advanced Graphics Port）（ＡＧＰ）、パーソナルコンピュータメモリカードインタナショナルアソシエーション（Personal Computer Memory Card International Association）バス（ＰＣＭＣＩＡ）、およびスモールコンピュータシステムズインターフェース（Small Computer Systems Interface）（ＳＣＳＩ）を含むが、以上には限定されない任意の様々な利用可能であるバスアーキテクチャを使用する。メモリバスまたはメモリコントローラ、周辺バスまたは外部バス、および／またはローカルバスを含む幾つかのタイプのバス構造のいずれであることも可能である。
【００９４】
システムメモリ１１１６は、揮発性メモリ１１２０および不揮発性メモリ１１２２を含む。始動中などに、コンピュータ１１１２内部の要素間で情報を転送する基本ルーチンを含む基本入出力システム（ＢＩＯＳ）が、不揮発性メモリ１１２２に格納される。例として、限定としてではなく、不揮発性メモリ１１２２には読み取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的にプログラミング可能なＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なＲＯＭ（ＥＥＰＲＯＭ）、またはフラッシュメモリが含まれ得る。揮発性メモリ１１２０には、外部キャッシュメモリとして動作するランダムアクセスメモリ（ＲＡＭ）が含まれる。例として、限定としてではなく、ＲＡＭは、シンクロナスＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、エンハンストＳＤＲＡＭ（ＥＳＤＲＡＭ）、シンクリンクＤＲＡＭ（ＳＬＤＲＡＭ）、およびダイレクトＲａｍｂｕｓ  ＲＡＭ（ＤＲＲＡＭ）などの多くの形態で利用可能である。
【００９５】
コンピュータ１１１２は、リムーバブルな／リムーバブルでない、揮発性／不揮発性のコンピュータ記憶メディアも含む。図１１は、例えば、ディスクストレージ１１２４を示す。ディスクストレージ１１２４には、磁気ディスクドライブ、フロッピー（登録商標）ディスクドライブ、テープドライブ、Ｊａｚドライブ、Ｚｉｐドライブ、ＬＳ−１００ドライブ、フラッシュメモリカード、またはメモリスティックなどのデバイス群が含まれるが、以上には限定されない。さらに、ディスクストレージ１１２４には、コンパクトディスクＲＯＭデバイス（ＣＤ−ＲＯＭ）、書き込み可能ＣＤドライブ（ＣＤ−Ｒドライブ）、再書き込み可能ＣＤドライブ（ＣＤ−ＲＷドライブ）、またはデジタルバーサタイルディスクＲＯＭドライブ（ＤＶＤ−ＲＯＭ）を含むが、以上には限定されない他の記憶媒体とは別個に、または組合せで記憶媒体が含まれ得る。システムバス１１１８に対するディスク記憶装置群１１２４の接続を円滑にするため、インターフェース１１２６のようなリムーバブルな、またはリムーバブルでないインターフェースが、通常、使用される。
【００９６】
図１１に、ユーザと、適切な動作環境１１１０において説明した基本的なコンピュータリソース群の間の仲介役として作用するソフトウェアを示す。そのようなソフトウェアにはオペレーティングシステム１１２８が含まれる。ディスクストレージ１１２４上に格納されることが可能なオペレーティングシステム１１２８は、コンピュータシステム１１１２のリソースを制御し、割り当てるように動作する。システムアプリケーション群１１３０が、システムメモリ１１１６またはディスクストレージ１１２４に格納されたプログラムモジュール群１１３２およびプログラムデータ１１３４を介して、オペレーティングシステム１１２８によるリソースの管理を利用する。本発明は、様々なオペレーティングシステム、またはオペレーティングシステムの組合せで実施できることを認識されたい。
【００９７】
ユーザは、入力デバイス１１３６を介してコマンドまたは情報をコンピュータ１１１２に入力する。入力デバイス群１１３６には、マウス、トラックボール、スタイラス、タッチパッドなどのポインティングデバイス、キーボード、マイク、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、ＴＶチューナカード、デジタルカメラ、デジタルビデオカメラ、Ｗｅｂカメラなどが含まれるが、以上には限定されない。以上の入力デバイス群、およびその他の入力デバイス群は、インターフェースポート１１３８経由でシステムバス１１１８を介して処理装置１１１４に接続される。インターフェースポート１１３８には、例えば、シリアルポート、パラレルポート、ゲームポート、およびユニバーサルシリアルバス（ＵＳＢ）ポートが含まれる。他のデバイス１１４０も、入力デバイス１１３６と同一のタイプのポート群の一部を使用する。このため、例えば、ＵＳＢポートを使用して、入力がコンピュータ１１１２に与えられ、出力情報がコンピュータ１１１２から出力デバイス１１４０に与えられる。特殊なアダプタを要する出力デバイス群１１４０のなかに、とりわけ、モニタ、スピーカ、およびプリンタのような幾つかの出力デバイス１１４０が存在することを例示するために、出力アダプタ１１４２を提示している。出力アダプタ群１１４２には、例として、限定としてではなく、出力デバイス１１４０とシステムバス１１１８の間で接続の手段を提供するビデオカードおよびサウンドカードが含まれる。他のデバイス群および／またはデバイスのシステム群が、リモートコンピュータ１１４４などの入力機能および出力機能を提供することに留意されたい。
【００９８】
コンピュータ１１１２は、リモートコンピュータ１１４４などの１つまたは複数のリモートコンピュータに対する論理接続を使用するネットワーク化された環境で動作することができる。リモートコンピュータ１１４４は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ワークステーション、マイクロプロセッサベースの機器、ピアデバイス、または他の一般的なネットワークノードなどとすることができ、通常、コンピュータ１１１２に関して説明した要素の多く、またはすべてを含む。簡潔にするため、メモリ記憶装置１１４６だけをリモートコンピュータ１１４４とともに例示している。リモートコンピュータ１１４４は、ネットワークインターフェース１１４８を介してコンピュータ１１１２に論理的に接続され、通信接続１１５０を介して物理的に接続される。ネットワークインターフェース１１４８は、ローカルエリアネットワーク（ＬＡＮ）やワイドエリアネットワーク（ＷＡＮ）などの通信ネットワークを包含する。ＬＡＮ技術には、光ファイバ分散データインターフェース（ＦＤＤＩ）、銅線配線インターフェース（ＣＤＤＩ）、イーサネット（登録商標）／ＩＥＥＥ１１０２．３、トークンリング／ＩＥＥＥ１１０２．５などが含まれる。ＷＡＮ技術には、ポイントツーポイントリンク、デジタル総合サービス網（ＩＳＤＮ）およびその変種、パケット交換網、およびデジタル加入者線（ＤＳＬ）が含まれるが、以上には限定されない。
【００９９】
通信接続１１５０は、ネットワークインターフェース１１４８をバス１１１８に接続するのに使用されるハードウェア／ソフトウェアを指す。通信接続１１５０は、図を簡明にするためにコンピュータ１１１２内部に示しているが、コンピュータ１１１２の外部にあることも可能である。ネットワークインターフェース１１４８に接続するのに必要なハードウェア／ソフトウェアには、単に例として、通常の電話級のモデム、ケーブルモデムおよびＤＳＬモデム、ＩＳＤＮアダプタ、およびイーサネット（登録商標）カードを含むモデムなどの、内部技術および外部技術が含まれる。
【０１００】
以上に説明してきたことに、本発明の実施例が含まれる。勿論、本発明を説明する目的で、コンポーネントまたは方法の考えられる全ての組合せを説明することは不可能だが、本発明の多数の更なる組合せおよび置換が可能であることを当業者は認識できよう。したがって、本発明は、添付の特許請求の範囲の趣旨および範囲に含まれる全てのそのような変更形態、改変形態、および変形形態を包含するものとする。更に、詳細な説明または特許請求の範囲で「含まれる（include）」という用語を使用する限り、そのような用語は、「含む（comprising）」が、特許請求の範囲において移行的な語（transitional word）として使用される場合に解釈されるのと同様の形で、包含的であるものとする。
【図面の簡単な説明】
【０１０１】
【図１】本発明の態様による機械学習を利用するインテリジェント自動記入システムを示す高レベルのブロック図である。
【図２】本発明の別の態様による、収集されたデータを機械学習システムに対する入力として使用して、どのようなデータがいずれのフィールドに対応するかが学習されるようにすることができる場合に、収集されたデータをデータベースに供給するインテリジェント自動記入システムを示すブロック図である。
【図３】本発明のさらに別の態様による、部分的に、ユーザ入力を観察することにより、どのようなデータがいずれのフィールドに対応するかを学習するインテリジェント自動記入システムを示すブロック図である。
【図４】本発明の態様による、学習されたデータに部分的に基づき、所望のフィールドに効果的に、効率的に記入するようにインテリジェント自動記入システムが適用されることが可能なＷｅｂフォームを示す典型的なスクリーン表示を示す図である。
【図５】本発明のさらに別の態様による、新たなＷｅｂフォームに対するインテリジェント自動記入システムの使用を示す概略ブロック図である。
【図６】本発明の態様による、機械学習技術に基づいてフォームフィールドの自動的な入力を円滑にする典型的な方法を示すフローチャートである。
【図７】本発明の態様による、どのようなデータがいずれのフィールドに対応するかを学習することを円滑にする典型的な方法を示すフローチャートである。
【図８】本発明の態様によるユーザ入力を学習する典型的なアプローチを示す図７の方法から延びることが可能なフローチャートである。
【図９】本発明の態様による、任意の数の制約および条件に部分的に基づき、ユーザデータを新たなＷｅｂフォームに入力することを円滑にする典型的な方法のフローチャートである。
【図１０】本発明の態様による、自動入力された入力の上に入力されたユーザ入力を保存することを円滑にする典型的な方法を示すフローチャートである。
【図１１】本発明の様々な態様を実施するための典型的な環境を示す図である。
【図１】
2005327260.tif 000010
【図２】
2005327260.tif 000011
【図３】
2005327260.tif 000012
【図４】
2005327260.tif 000013
【図５】
2005327260.tif 000014
【図６】
2005327260.tif 000015
【図７】
2005327260.tif 000016
【図８】
2005327260.tif 000017
【図９】
2005327260.tif 000018
【図１０】
2005327260.tif 000019
【図１１】
2005327260.tif 000020