(57)【要約】  システムおよび方法はビジネス名の分類されたリストを利用して、クレジットカード取引データ等の、取引情報に対応するカテゴリーを識別する。
2010528393.tif 000002
【特許請求の範囲】
【請求項１】
取引データにカテゴリーを割り当てる方法であって、
取引に対応する取引データを提供するステップであって、前記取引データはビジネスの識別子を含み、前記識別子は文字セットを含むステップと、
各々が少なくとも１つの単語を含み少なくとも１つのカテゴリーに割り当てられる複数のビジネス名の分類されたリストを提供するステップと、
前記取引データの前記識別子内の少なくとも１つの文字セットと前記分類されたリスト内の前記複数のビジネス名の少なくとも１つの各々のビジネス名内の少なくとも１つの単語間の一致を決定するステップと、
一致が識別された前記分類されたリスト内の前記ビジネス名の少なくとも２つの各々に対して、前記ビジネス名にスコアを割り当てるステップであって、前記スコアは前記ビジネス名内の単語との前記一致が決定された前記取引データ内の最左文字セットの場所、および各々が前記ビジネス名および前記最左文字セットと一致する少なくともゼロのいくつかの他のビジネス名に応答するステップと、
割り当てられたスコアの少なくとも他の１つよりも高いスコアを有する前記分類されたリスト内の前記ビジネス名の少なくとも２つのスコアおよびカテゴリーに応答して前記取引データに前記カテゴリーを割り当てるステップと、
を含む方法。
【請求項２】
請求項１記載の方法であって、
前記取引データは場所を含み、
さらに、前記取引データ内の前記場所を識別するステップを含み、
前記一致を決定するステップは前記識別された場所に応答する方法。
【請求項３】
請求項１記載の方法であって、
前記取引データ内の前記場所は少なくとも１つの都市または州を含み、
前記場所を識別するステップは、
前記取引データ内の州を識別するステップ、および、
前記州に応答して前記取引データ内の前記都市を識別するステップ、
の少なくとも１つを含む方法。
【請求項４】
請求項１記載の方法であって、前記取引データに前記カテゴリーを割り当てる前記ステップは、さらに、前記ビジネス名内の単語との前記一致が決定された前記取引データ内の最右文字セットの場所に応答する方法。
【請求項５】
請求項１記載の方法であって、前記取引データに前記カテゴリーを割り当てる前記ステップは、さらに、マニュアル選択に応答する方法。
【請求項６】
請求項１記載の方法であって、前記マニュアル選択は以前の取引データ・セットに応答する方法。
【請求項７】
請求項１記載の方法であって、
前記分類されたリストはカテゴリーの少なくとも１つの階層を含み、
前記取引データに前記カテゴリーを割り当てる前記ステップは、さらに、それに対して一致が決定された前記カテゴリーの少なくとも２つが由来するカテゴリーの前記階層内のカテゴリーに応答する方法。
【請求項８】
請求項１記載の方法であって、さらに、前記カテゴリーに対応するビジネスに関する他の情報を前記取引データに割り当てるステップを含む方法。
【請求項９】
取引データに対応するカテゴリーを識別するシステムであって、
取引に対応する前記取引データを受信するように有効に接続された入力を有する取引情報受信機であって、前記取引データはビジネスの識別子を含み、前記識別子は文字セットを含み、前記取引情報受信機は出力に取引データを提供する前記取引情報受信機と、
各々が少なくとも１つの単語を含み少なくとも１つのカテゴリーへ割り当てられる、複数のビジネス名の分類されたリストを格納しかつ入出力に提供する都市ビジネス・データベースと、
前記取引情報受信機出力に接続されて前記取引データを受信する第１の入力、および前記都市／ビジネス・データベース入出力に接続されてビジネス名の分類されたリストを受信する入出力を有するビジネス名マッチャーであって、前記取引データの前記識別子内の少なくとも１つの文字セットと前記分類されたリスト内の前記複数のビジネス名の少なくとも１つの各々のビジネス名との間の一致を決定し、かつ前記一致に関する情報を出力に提供するビジネス名マッチャーと、
前記ビジネス名マッチャーに接続されて前記一致に関する情報を受信する第１の入力、および前記都市／ビジネス・データベース入出力に接続された入出力を有するプロダクト識別器であって、前記プロダクト識別器は一致が識別された前記分類されたリスト内の前記ビジネス名の少なくとも２つの各々に対して、前記ビジネス名にスコアを割り当て、前記スコアは前記ビジネス名内の単語との一致が決定された前記取引データ内の最左文字セットの場所、および各々が前記ビジネス名内の単語および前記最左文字セットと一致する少なくともゼロのいくつかの他のビジネス名に応答し、かつ最高スコアを有するビジネス名に対応する少なくとも１つのカテゴリーの識別子を前記都市／ビジネス・データベースから検索して出力に提供するプロダクト識別器と、
を含むシステム。
【請求項１０】
請求項９記載のシステムであって、
前記取引データは場所を含み、
さらに、前記取引情報受信機出力に接続されて前記取引データの少なくとも一部を受信する入力を有する場所識別器を含み、前記場所識別器は前記取引データ内の前記場所を識別して前記識別された場所の表示を出力に提供し、
前記ビジネス名マッチャーは、さらに、前記場所識別器出力に接続された場所入力を含み、前記ビジネス名マッチャーは前記ビジネス名マッチャー場所入力において受信された前記場所に応答して前記一致を決定するシステム。
【請求項１１】
請求項９記載のシステムであって、
前記取引データ内の前記場所は都市および州から選択された少なくとも１つを含み、
前記場所識別器は、
前記場所識別器入力に接続されて前記取引データの前記少なくとも一部の少なくともいくつかを受信する入力を有する州識別器であって、前記州識別器は前記取引データ内の前記州を識別して前記州の識別子を前記場所識別器出力に接続された出力において提供し、前記州は複数の都市を包含する地理的エンティティである州識別器、および、
前記場所識別器入力に接続されて前記取引データの前記少なくとも一部の少なくともいくつかを受信する第１の入力、および前記州識別器出力に接続されて前記州の前記識別子を受信する第２の入力を有する都市識別器であって、前記都市識別器は前記州に応答して前記取引データ内の前記都市を識別し、前記場所識別子出力に接続された出力において前記都市の識別子を提供する都市識別器、
から選択された少なくとも１つを含むシステム。
【請求項１２】
請求項９記載のシステムであって、前記カテゴリー・アソシエータは前記ビジネス名内の単語との前記一致が決定された前記取引データ内の最右文字セットの場所に応答してさらに前記取引データの前記カテゴリーを識別するシステム。
【請求項１３】
請求項９記載のシステムであって、
さらに、ユーザからカテゴリーの識別子を受信するように接続された入力を有するマニュアル・カテゴリー・マネジャーを含み、前記マニュアル・カテゴリー・マネジャーは前記カテゴリーの前記識別子を出力において提供し、
前記カテゴリー・アソシエータは、さらに、前記マニュアル・カテゴリー・マネジャー出力に接続されて前記カテゴリーの前記識別子を受信するマニュアル・カテゴリー入力を含み、前記カテゴリー・アソシエータは前記カテゴリー・アソシエータ・マニュアル・カテゴリー入力において受信した前記カテゴリーの前記識別子に応答して、さらに、前記取引データの前記カテゴリーを識別するシステム。
【請求項１４】
請求項９記載のシステムであって、
前記プロダクト識別器は基準を満たす少なくとも１つの最高スコアリング・カテゴリーに関連するスコアに応答して前記プロダクト識別器出力において前記少なくとも１つのカテゴリーの１つの識別子を提供し、かつ基準を満たさない少なくとも１つの最高スコアリング・カテゴリーに関連するスコアに応答して代替出力において信号を送り、
さらに、前記プロダクト識別器代替出力に接続されて前記信号を受信する第１の入力、および前記取引情報受信機出力に接続されて前記取引データの少なくとも一部を受信する入力を有するキャッシュ・マッチャーを含み、前記キャッシュ・マッチャーは前記キャッシュ・マッチャー入力において受信された前記取引データの前記少なくとも一部に対応する前の取引に対して予め識別されたカテゴリーを前記取引データの前記カテゴリーとして識別し、かつ識別された前記カテゴリーを出力において提供する、システム。
【請求項１５】
請求項９記載のシステムであって、
前記プロダクト識別器は基準を満たす少なくとも１つの最高スコアリング・カテゴリーに関連する前記スコアに応答して前記プロダクト識別器出力において前記少なくとも１つのカテゴリーの１つの識別子を提供し、かつ基準を満たさない少なくとも１つの最高スコアリング・カテゴリーに関連する前記スコアに応答して代替出力において前記少なくとも１つのカテゴリーの複数の前記識別子を提供し、
前記分類されたリストはカテゴリーの少なくとも１つの階層を含み、
さらに、前記プロダクト識別器代替出力に接続されて前記少なくとも１つのカテゴリーの前記複数の識別子を受信する入力を有する共通カテゴリー・プロセッサであって、前記共通カテゴリー・プロセッサは、第１の出力において、同じである前記少なくとも１つのカテゴリーの前記複数の識別子の少なくとも２つ、および基準を満たす前記少なくとも１つのカテゴリーの前記複数の識別子の少なくとも１つに応答して前記複数のカテゴリーの前記識別子の少なくとも１つを提供し、また、第２の出力において、同じではない前記少なくとも１つのカテゴリーの前記複数の識別子の少なくとも２つまたは基準を満たさない前記少なくとも１つのカテゴリーの前記複数の識別子の少なくとも１つに応答して前記複数のカテゴリーの前記識別子の少なくとも２つを提供する共通カテゴリー・プロセッサと、
前記共通カテゴリー・プロセッサ第２出力に接続されて前記複数のカテゴリーの前記識別子の少なくとも２つを受信する入力、および前記都市ビジネス・データベースに接続された入出力を有する階層トラバーサであって、出力において、前記複数のカテゴリーの前記識別子の少なくとも２つの複数の識別子が由来するカテゴリーの識別子を提供する階層トラバーサと、を含むシステム。
【請求項１６】
取引データにカテゴリーを割り当てるためのコンピュータ読取可能プログラム・コードが埋め込まれているコンピュータ使用可能媒体を含むコンピュータ・プログラム・プロダクトであって、前記コンピュータ・プログラム・プロダクトはコンピュータ読取可能プログラム・コード・デバイスを含み、それはコンピュータ・システムに、
取引に対応する前記取引データを提供させ、前記取引データはビジネスの識別子を含み、前記識別子は文字セットを含み、
複数のビジネス名の分類されたリストを提供させ、各ビジネス名が少なくとも１つの単語を含みかつ少なくとも１つのカテゴリーに割り当てられ、
前記取引データの前記識別子内の少なくとも１つの文字セットと前記分類されたリスト内の前記複数のビジネス名の少なくとも１つの各々のビジネス名の中の少なくとも１つの単語との一致を決定させ、
一致が識別された前記分類されたリスト内の前記ビジネス名の少なくとも２つの各々に対して、前記ビジネス名にスコアを割り当てさせ、前記スコアは前記ビジネス名内の単語との一致が決定された前記取引データ内の最左文字セットの場所、および各々が前記ビジネス名内の単語および前記最左文字セットと一致する少なくともゼロのいくつかの他のビジネス名に応答し、さらに、
前記割り当てられたスコアの少なくとも１つの他のスコアよりも高いスコアを有する前記分類されたリスト内の前記ビジネス名の前記少なくとも２つの前記スコアおよびカテゴリーに応答する前記取引データに前記カテゴリーを割り当てさせる、ように構成されるコンピュータ・プログラム・プロダクト。
【請求項１７】
請求項１６記載のコンピュータ・プログラム・プロダクトであって、
前記取引データは場所を含み、
さらに、前記コンピュータ・システムに前記取引データ内の前記場所を識別させるように構成されたコンピュータ読取可能プログラム・コード・デバイスを含み、
前記コンピュータ・システムに前記一致を決定させるように構成された前記コンピュータ読取可能プログラム・コード・デバイスは前記識別された場所に応答するコンピュータ・プログラム・プロダクト。
【請求項１８】
請求項１６記載のコンピュータ・プログラム・プロダクトであって、
前記取引データ内の前記場所は都市および州の少なくとも１つを含み、
前記コンピュータ・システムに前記場所を識別させるように構成された前記コンピュータ読取可能プログラム・コード・デバイスは前記コンピュータ・システムに、
前記取引データ内の前記州を識別させ、
前記州に応答して前記取引データ内の前記都市を識別させる、
ように構成された少なくとも１つのコンピュータ読取可能プログラム・コード・デバイスを含む、コンピュータ・プログラム・プロダクト。
【請求項１９】
請求項１６記載のコンピュータ・プログラム・プロダクトであって、コンピュータ・システムに前記カテゴリーを前記取引データに割り当てさせるように構成された前記コンピュータ読取可能プログラム・コード・デバイスは、さらに、前記ビジネス名内の単語との前記一致が決定された前記取引データ内の最右文字セットの場所に応答するコンピュータ・プログラム・プロダクト。
【請求項２０】
請求項１６記載のコンピュータ・プログラム・プロダクトであって、前記コンピュータ・システムに前記カテゴリーを前記取引データに割り当てさせるように構成された前記コンピュータ読取可能プログラム・コード・デバイスは、さらに、マニュアル選択に応答するコンピュータ・プログラム・プロダクト。
【請求項２１】
請求項１６記載のコンピュータ・プログラム・プロダクトであって、前記マニュアル選択は以前の取引データ・セットに対応するコンピュータ・プログラム・プロダクト。
【請求項２２】
請求項１６記載のコンピュータ・プログラム・プロダクトであって、
前記分類されたリストはカテゴリーの少なくとも１つの階層を含み、
前記コンピュータ・システムに前記カテゴリーを前記取引データに割り当てさせるように構成された前記コンピュータ読取可能プログラム・コード・デバイスは、さらに、一致が決定された前記カテゴリーの少なくとも２つが由来するカテゴリーの前記階層に応答するコンピュータ・プログラム・プロダクト。
【請求項２３】
請求項１６記載のコンピュータ・プログラム・プロダクトであって、さらに、前記コンピュータ・システムに前記カテゴリーに対応するビジネスに関する他の情報を前記取引データに割り当てさせるように構成されたコンピュータ読取可能プログラム・コード・デバイスを含むコンピュータ・プログラム・プロダクト。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の分野）
本発明はコンピュータ・ソフトアェアに関し、特に、財務分析用コンピュータ・ソフトアェアに関する。
【背景技術】
【０００２】
（発明の背景）
マイクロソフト（登録商標）株式会社から市販されている従来のＭＯＮＥＹ（登録商標）プロダクト、およびＩＮＴＵＩＴ（登録商標）株式会社から市販されている従来のＱＵＩＣＫＥＮ（登録商標）プロダクト等の従来のコンピュータ・プログラムによりユーザは支出パターンを確認し、さまざまなカテゴリーにおいてユーザが支出する金額を追跡することにより他の操作を行うことができる。
【０００３】
支出する金額を分類するために、ユーザは自分が行った各取引の量を入力して、その取引にカテゴリーを割り当てることができる。たとえば、ガソリンを購入する場合、ユーザは金額を入力し、カテゴリー「自動車」を割り当てることができる。月末に、ユーザは分類された取引データを使用して、たとえば、自動車カテゴリーに割り当てられるその月に行った全取引の合計を示す概略計算書を得ることができる。
【０００４】
このような多数のカテゴリーがあることがあり、このようなカテゴリーの階層があることがある。たとえば、自動車カテゴリーは「ガソリン」および「メンテナンス」カテゴリーに更に分割されることがある。カテゴリーの階層性により報告の異なるレベルの粒度が許され、自動車に関する任意の支出、またはガソリンだけの支出を示す報告書が得られる。
【０００５】
多数のカテゴリーの他に、ユーザが行う多数の取引があることがある。たとえば、典型的なクレジットカード計算書は数ダースの取引を有することがあり、データ入力プロセスを時間がかかる厄介なものとする。さらに、ユーザは取引の正確な種類を忘れてしまっていたり、商人の名前を思い出せなかったり、クレジットカード計算書上の商人の名前が取引した店の名前と違ったりすることがあるため、取引にどのカテゴリーを割り当てるべきか判らないことがある。
【０００６】
クレジットカードのこれらの問題を解決するために、いくつかの金融機関はユーザが自分達のクレジットカードから取引データをダウンロードできるようにしている。それにより、金額の入力プロセスを速めるのを助け、エラー防止を助けることができるが、前記した分類問題は解決しない。これらの問題の解決を助けるために、前記したプログラムは未知のアルゴリズムを使用して取引を分類しようとするが、前記したどのプロダクトも大部分の時間正確な分類を行うようには見えないため、非常に有効なわけではない。ユーザが残りの取引を分類することができるため、このようなプログラムによる１００％正確な分類は必要ないが、既存のアプリケーション・プログラムにより提供される低レベルの自動化は取引を全く自動的に分類しない場合よりも遥かに良いものではない。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
取引データを正確に分類することができるシステムおよび方法が必要とされている。
【課題を解決するための手段】
【０００８】
（発明の概要）
システムおよび方法がクレジットカードその他のソースからの取引データを分類する。このシステムおよび方法は、取引データの終りで開始して後向きに働いて、取引データ内の州コードを見つけようと試みる。州コードが見つかれば、その州を使用して後で取引を分類するのに使用される検索スペースを狭めることができる。州コードから後向きに働いて（州コードが見つからなければ、取引データの終りから）、取引データ内の都市名を識別する試みがなされ、取引を分類するのに使用される検索スペースを識別された任意の州コードを使用している州内の都市に狭める。都市名内の単語が取引データ内の単語と一致する、都市名内の第１文字が取引データの単語内の文字と同じである、または取引データ内の文字が都市名の単語内の文字と同じ順序で生じ、略語を示せば、一致が生じると見なすことができる。都市名が２つ以上の都市と一致すれば、一致した一方の都市を都市のサイズ、人口または面積、ユーザにより識別されたホームシティ付近、その両方、または問題の取引の前または後の時間的に幾分近い取引付近を使用して選択することができる。
【０００９】
都市名および随意州名が識別されていると、都市および随意州を使用して、つきとめられた任意の都市または州に先行する取引データ内のビジネス名の探索を、イエローページ・データベース等の、階層構成でリスティングを分類するビジネス・リスティング・データベース内に記載されたビジネスに限定する。（前記した形態の照合を使用して）やはり「一致する」少なくともいくつかの単語を有する、前記したように識別された任意の都市および／または州に制限された、このようなデータベース内のビジネスが識別される。各ビジネス名内の「一致する」単語には取引データに対応するマトリクス内の位置が割り当てられる。関連スコアがマトリクス内の占有された各ローに割り当てられ、カテゴリー信頼スコアがマトリクスの占有された各エントリに割り当てられる。
【００１０】
ｊ−ｉカラムからの各トークンに「一致する」全ての一致するビジネスを見つけ出し、これらのビジネスのカテゴリーを識別することによりマトリクス内のエントリ（ｉ，ｊ）のカテゴリー信頼スコアが割り当てられ、ここに、ｊ＞ｉである。最大数のビジネスに対応するカテゴリーはこのようなビジネスの合計数で除されて（あるいは、表示されたカテゴリー数で１が除されて）カテゴリー信頼スコアを識別する。
【００１１】
各カテゴリー信頼スコアに対して、そのスコアに関連スコアが乗じられてエントリ・スコアが作り出され、最高スコアを有するエントリが選択される。そのエントリに対応するビジネスを表すカテゴリーがその取引のカテゴリーとして選択される。
【００１２】
ｉおよびｊ間の最大差を有するエントリに有利なように結び付き（ｔｉｅ）を断つことができる。このようにして単一エントリが識別されると、そのエントリに対応するビジネスを表すカテゴリーが取引データと関連付けられる。
【００１３】
選択されたカテゴリーが単一ビジネスに対応する場合、ビジネス・リスティング・データベース内のそのビジネスに関連する他の情報を取引と関連付けることができる。このような他の情報は名称、住所、電話、ファクス番号、電子メールアドレス、ウェブサイト、またはオーナ名を含むことができる。
【００１４】
結び付きが残れば、結びつけられたエントリに対応するビジネスのビジネス・リスティング内のカテゴリーが見直されてこのような任意のカテゴリーに対するパーセンテージが表示されたビジネスの全カテゴリーの、５０％等の、閾値パーセンテージを超えるかどうか決定する（各「一致する」ビジネスは、たとえもう１つの一致したビジネスと同じカテゴリーを有していても、別々にカウントされ−そのカテゴリーはそれに割り当てられる各ビジネスに対して１度カウントされる）。結びつけられたエントリに対応する最大数のビジネスを表すカテゴリーが結びつけられたエントリに対応するカテゴリーの閾値パーセンテージを超えれば、そのカテゴリーは取引に関連づけられる。そうでなければ、結びつけられたエントリに対応するビジネスに対するカテゴリーの階層はこのようなビジネスの大部分がそこから割り当てられる最低レベル・カテゴリー（リーフ・ノードに最も近い）を識別するためにトラバース（ｔｒａｖｅｒｓｅ）される。次に、そのカテゴリーは取引データへ割り当てられる。
【図面の簡単な説明】
【００１５】
【図１】従来のコンピュータ・システムの略フロー図である。
【図２Ａ】本発明の一実施例に従った取引を分類する方法を例示するフロー図である。
【図２Ｂ】本発明の一実施例に従った取引を分類する方法を例示するフロー図である。
【図３】本発明の一実施例に従った取引を分類する方法を例示するフロー図である。
【図４Ａ】本発明の一実施例に従った取引データ、「一致する」ビジネス名、およびブランク・マトリクスを例示する図である。
【図４Ｂ】本発明の一実施例に従った取引データおよび一致するビジネス名、および完了したマトリクスを例示する図である。
【図５】本発明の一実施例に従った取引を分類するシステムの略ブロック図である。
【図６】本発明の一実施例に従った取引を分類するシステムの略ブロック図である。
【発明を実施するための形態】
【００１６】
（好ましい実施例の詳細な説明）
本発明は従来のコンピュータ・システム上でコンピュータ・ソフトアェアとして実現することができる。図１には本発明を実行するための従来のコンピュータ・システム１５０が示されている。プロセッサ１６０は、ランダム・アクセス・メモリ（ＲＡＭ）とすることができかつ本発明を実施するように他のコンポーネントを制御することができる、メモリ等の記憶装置１６２内に格納されたソフトアェア命令を検索して実行する。記憶装置１６２はプログラム命令またはデータまたはその両方を格納するのに使用することができる。コンピュータ・ディスク装置または他の非揮発性記憶装置等の記憶装置１６４がデータまたはプログラム命令のストレージを提供することができる。一実施例では、記憶装置１６４は命令およびデータのより長期のストレージを提供し、記憶装置１６２は記憶装置１６４よりも短時間しか必要とされないデータまたは命令に対するストレージを提供する。コンピュータ・キーボードまたはマウスまたはその両方とすることができる入力装置１６６によりユーザはシステム１５０へ入力することができる。ディスプレーまたはプリンタ等の出力１６８によりシステムは命令、データまたは他の情報をシステム１５０のユーザへ提供することができる。従来のフロッピー（登録商標）・ディスク・ドライブやＣＤ−ＲＯＭドライブ等の記憶入力装置１７０は、コンピュータ命令またはデータをシステム１５０へ移送するのに使用することができる、従来のフロッピー（登録商標）・ディスクやＣＤ−ＲＯＭまたは他の非揮発性記憶媒体等のコンピュータ・プログラム・プロダクト１７４を入力１７２を経由して受け入れる。コンピュータ・プログラム・プロダクト１７４は、フロッピー（登録商標）・ディスクの場合は磁荷でありＣＤ−ＲＯＭの場合は光符号化である、コンピュータ読取可能プログラム・コード・デバイス１７６がその上に符号化されており、それらはプログラム命令、データまたはその両方として符号化されてコンピュータ・システム１５０を後述するように作動するように構成する。
【００１７】
一実施例では、各コンピュータ・システム１５０はカリフォルニア州Ｍｏｕｎｔａｉｎ  ＶｉｅｗのＳＵＮ  ＭＩＣＲＯＳＹＳＴＥＭ（登録商標）社から市販されているＳＯＬＡＲＩＳ（登録商標）オペレーティング・システムを実行する従来のＳＵＮ  ＭＩＣＲＯＳＹＳＴＥＭＳ  ＵＬＴＲＡ  １０（登録商標）ワークステーション、ワシントン州ＲｅｄｍｏｎｄのＭＩＣＲＯＳＯＦＴ（登録商標）社から市販されているＷＩＮＤＯＷＳ（登録商標）オペレーティング・システムの１バージョン（９５、９８、Ｍｅ、ＸＰ、ＮＴまたは２０００等）を実行するテキサス州Ｒｏｕｎｄ  ＲｏｃｋのＤＥＬＬ  ＣＯＭＰＵＴＥＲ（登録商標）ＣＯＲＰＯＲＡＴＩＯＮ社から入手できるようなＰＥＮＴＩＵＭ（登録商標）−コンパチブル・パーソナル・コンピュータ・システムまたはカリフォルニア州ＣｕｐｅｒｔｉｎｏのＡＰＰＬＥ  ＣＯＭＰＵＴＥＲ（登録商標）ＣＯＲＰＯＲＡＴＩＯＮ社から市販されているＭＡＣＯＳ（登録商標）またはＯＰＥＮＳＴＥＰ（登録商標）オペレーティング・システムおよびカリフォルニア州Ｍｏｕｎｔａｉｎ  ＶｉｅｗのＮＥＴＳＣＡＰＥ  ＣＯＭＭＵＮＩＣＡＴＩＯＮＳ（登録商標）ＣＯＲＰＯＲＡＴＩＯＮ社から市販されているＮＥＴＳＣＡＰＥ（登録商標）ブラウザまたは前記したＭＩＣＲＯＳＯＦＴ（登録商標）から市販されているＩＮＴＥＲＮＥＴ  ＥＸＰＬＯＲＥＲ（登録商標）ブラウザを実行するＭａｃｉｎｔｏｓｈ（登録商標）コンピュータ・システムであるが、他のシステムも使用することができる。
【００１８】
図２Ａ、２Ｂ、および３は本発明の一実施例に従った取引分類方法を例示するフロー図である。図２Ａ、２Ｂ、および３について、ユーザのホームロケーションが随意受信され第１の取引記述（ｔｒａｎｓａｃｔｉｏｎ  ｄｅｓｃｒｉｐｔｉｏｎ）が選択される２１０。一実施例では、ホームロケーションはユーザが居住している都市および州である。一実施例では、ステップ２１０の一部としてユーザから任意数のホームロケーションを受信することができ、それらは主要な住居、バケーションホーム、およびオフィスの各々の都市および州等のユーザがかなりの時間を過ごすと思っているロケーションとすることができる。
【００１９】
ステップ２１０において受信された取引記述から制限された単語２１２が除去される。一実施例では、制限された単語には“ｃａｒｄ”、“ｃｒｄ”、“ｃｈｅｃｋ”、“ｃｈｅｃｋｃａｒｄ”、“ｃｒｅｄｉｔ”、“ｄｅｂｉｔ”、“ｆｒｏｍ”、“ｌｏｃ”、“ｍｅｒｃｈａｎｔ”、“ｐａｙｍｅｎｔ”、“ｐｕｒｃｈａｓｅ”、および３つ以上の大文字Ｘあるいはそれを含むある任意の単語を含んでいる。ここに記述されているように、単語はスペースまたは取引記述の開始または終り等の任意の区切り間の文字の任意の連続シーケンスである。ステップ２１２は取引記述の単語をトークン化することを含むことができ、各トークンは１つ以上の連続スペース、または取引記述の開始または終りにより区切られた文字シーケンスを含んでいる。
【００２０】
単語またはトークンは最後の単語から最初の単語へ向かってスキャンされ、このような任意の単語またはトークンと２文字州コードまたは他の場所識別子とのマッチングが試みられる２１４。一実施例では、州コードは正規の米国郵便番号である。ステップ２１４において州コードの替わりに国コード等の他のタイプのコードを使用することができる。
【００２１】
州が見つかれば２１６、前記したように、その州を使用して検索スペースが制限され２１８、この方法はステップ２２０に続く。そうでなければ（２１６）、この方法はステップ２２０に続く。
【００２２】
ステップ２２０において、その州コードが見つかっておれば州コードの場所から開始して、あるいは州コードが見つかっていなければ、取引記述の最後の単語またはトークンから開始して、記述内の単語またはトークンは都市名に対して１単語またはトークンだけ後向きスキャンされる。都市名を識別するために、前記した場所から開始する単語またはトークンが都市名のデータベースと比較される。一実施例では、都市名のデータベース中を探索して一致する都市名をつきとめる試みはステップ２１４で見つけられている任意州の都市名に制限される。
【００２３】
一致が見つからず２２２、また前記されかつ後述するように前の一致が見つかっておれば、この方法は図２Ｂのステップ２７０に続く。ステップ２７０において、州が識別されておれば、この方法は図２Ａのステップ２４２に続く。そうではなくて、ステップ２１４において州が見つかっておらず、かつ任意の単語またはトークンが取引記述内に残っておれば２７２、スキャンされた単語またはトークンは都市名を識別する試みにおいて考慮から取り除かれ（２７４）、この方法は次の最後の単語またはトークンを使用してステップ２２０に続く。単語またはトークンが残っておれば（２７２）、この方法はステップ２４２に続く。これにより都市名“Ｒｏｃｈｅｌｌｅ”への一致は、たとえば、“Ｎｅｗ  Ｒｏｃｈｅｌｌｅ”との一致の試みへ続くことができる。単語またはトークン“Ｒｏｃｈｅｌｌｅ”は“Ｎｅｗ  Ｒｏｃｈｅｌｌｅ”との一致の試みにおいて前のトークンが加えられる時の前の一致（ｐｒｉｏｒ  ｍａｔｃｈ）である。
【００２４】
都市名に対してスキャンされた単語またはトークンとの正確に１つの一致しかなければ（２２２）、この方法はステップ２４０に続く。都市名としてスキャンされた単語／トークンを使用して都市名に対する２つ以上の一致があれば（２２２）、もう１つの単語またはトークンが後向きスキャンされその単語またはトークンは既にスキャンされている任意の単語またはトークンに加えられ（単一スペースを間に置いて、取引データ内に現れるこれらの単語と同順で）、そのように識別された単語またはトークンと一致する都市名をつきとめる試みがなされる（２２０）。
【００２５】
一致はゼロであるが（２２２）、追加単語またはトークンが後向きスキャンされる前に１つ以上の前の一致があり（２２４）、かついくつかの一致が最も最近スキャンされた単語が追加されるまでに生じておれば、最も最近スキャンされた単語は破棄され、前記したように、前にスキャンされた単語を使用して一致する可能性があるいくつかの都市から１つの一意的都市を識別する。一実施例では、結び付きを断つために、一致するさまざまな都市の付近をステップ２１０において受信された１つ以上のホームロケーションと比較して最も近いものとの一致を確認したり、その都市のサイズおよび人口または面積を使用して一致を確認することができる。一実施例では、都市の付近およびサイズの両方を使用して一致を確認することができ、各々に対してトレードオフがなされる。一実施例では、閾値人口またはサイズ（またはもう１つのメトリック）の都市が一致する都市の１つであれば（２２６）、これらの都市の中の最大都市が選択され（２２８）、そうでなければ（２２６）、前記ステップ２１０において受信された場所のいずれかに最も近い都市が選択される（２３０）。いずれの場合もこの方法はステップ２４０に続く。
【００２６】
一実施例では、前記したように受信された１つの場所の付近を使用する替わりに、取引がデータおよびその都市が一意的に識別されたもう１つの取引の閾値時間量内の時間を有し、かつ一致した都市のいずれかがこのような識別された都市の閾値距離内であれば、その都市（またはこのような都市の中の最大都市）を使用して結び付きを断ち一致したものから単一都市を一意的に識別することができる。前の取引またはホームロケーションに基づいて識別できない取引は保持して後続取引が処理された後で処理することができる。これらの実施例では、受信された取引はデータ、時間またはその両方を含んでいる。一実施例では、前の取引からの閾値距離は選択された取引の時間またはデータの時間的に近い取引からの差の関数として変動することがあり、この距離はデータまたは時間の差が大きくなるにつれ大きくなる。
【００２７】
ステップ２４０において、前記したように、識別された任意の一致した都市を使用して会社名に対する検索スペースがさらに制限され、この方法はステップ２４２に続く。ステップ２４２において、前の一致がなければ、都市名はつきとめられず、この方法はステップ２４２に続く。
【００２８】
ステップ２４２において、任意の都市名の前（たとえば、左）、あるいはこのような都市名が見つからない場合は、任意の州コードの前、あるいはこのような州コードが見つからない場合は、取引記述内の全単語の終りの前、の残りの単語またはトークンはまだトークン化されていなければトークン化され、このようなトークンは「残りのトークン」と呼ばれる。また、ステップ２４２の一部として、前記したように任意の州内またはその取引に対して識別された都市および州内のこれらのビジネスに制限された検索スペースで、残りのトークンを電子イエローページで見つけられるようなビジネス名のデータベースと一致させる試みがなされる。一実施例では、ここに記述されかつ後述するように、ビジネス名内の任意の単語が残りのトークンと同順で任意の残りのトークンと「一致される」と一致が生じる。それ故、この実施例では、ビジネス名“Ｈａｒｒｙ’ｓ  Ｓｍｏｋｅ  Ｓｈｏｐ  Ｏｎ  Ｍａｉｎ”は残りのトークン“Ｅｘｔｒａ  Ｓｍｏｋｅ  Ｍａｉｎ  Ｅｘｔｒａ”に一致すると見なされる。このようになされる任意数の一致があることがあり、各一致が「残りのトークン」のいずれかまたは全部を使用し、各一致が互いに独立して生じ、１つのビジネス名に一致することができるトークンを使用して１つ以上の他のビジネス名を一致させることもできる。
【００２９】
もう１つの実施例では、トークンに一致するビジネス名に対して、ビジネス名内の単語は、開始、終わり、またはその両方におけるゼロ以上を除き、いかなるトークンもスキップすることなくトークンに一致する。それ故、この実施例では、トークン“Ｅｍｐｏｒｉｕｍ”が一致したトークン“Ｓｍｏｋｅ”および“Ｍａｉｎ”間で一致しないため、“Ｈａｒｒｙ’ｓ  Ｓｍｏｋｅ  Ｓｈｏｐ  Ｏｎ  Ｍａｉｎ”は残りのトークン“Ｅｘｔｒａ  Ｓｍｏｋｅ  Ｍａｉｎ  Ｅｘｔｒａ”に一致しないと見なされる。しかしながら、ビジネス名内の単語“Ｈａｒｒｙ’ｓ”および“Ｏｎ”はいかなる残りのトークンとも一致せず、かつ最初の一致する残りのトークンはまさに最初の一致する残りのトークンではないという事実にもかかわらず、ビジネス名“Ｈａｒｒｙ’ｓ  Ｓｍｏｋｅ  Ｅｍｐｏｒｉｕｍ  Ｏｎ  Ｍａｉｎ”はこのような残りのトークン（“Ｅｘｔｒａ  Ｓｍｏｋｅ  Ｍａｉｎ  Ｅｘｔｒａ”）と一致する。
【００３０】
さらにまたは替わりに、一実施例では、単語内の文字が残りのトークン内と同順で起これば、単語内の全文字の一致を要することなく、データベースのビジネス名内の単語と単語内のいくつかの文字を使用する残りの各トークンとの一致が生じることがある。一実施例では、先行するルールの他にまたはその替わりに、単語内の最初のいくつかの文字が残りのトークンと一致すれば一致が生じることがある。それゆえ、一実施例では、トークン“Ｓｍｋ  Ｓｈｐ”はビジネス名“Ｓｍｏｋｅ”および“Ｓｈｏｐ”内の単語に一致し、かつ／またはトークン“Ｓｍｏ  Ｓｈｏ”は、それぞれ、ビジネス名“Ｓｍｏｋｅ”および“Ｓｈｏｐ”内の単語に一致する。
【００３１】
少なくとも１つの残りのトークンがビジネス名に一致されると、一致した各ビジネス名内の各単語がマトリクス内のエントリへ割り当てられる２４４。（一実施例では、任意のビジネス名に一致される残りのトークンが無ければ、取引はマニュアル分類に対してマークされる）。マトリクスはロー（ｒｏｗ）およびカラム（ｃｏｌｕｍｎ）からなり、図４Ａに示すように、各カラムは残りのトークンに対応する。単語が割り当てられるマトリクス内のエントリはその単語に一致した残りのトークンに対応するカラム、および任意の残りのトークンが一致したビジネス名内の最初の単語に対応するローを有する。それ故、ビジネス名“Ｈａｒｒｙ’ｓ  Ｓｍｏｋｅ  Ｓｈｏｐ  Ｏｎ  Ｍａｉｎ”がトークン“Ｅｘｔｒａ  Ｓｍｏｋｅ  Ｍａｉｎ  Ｅｘｔｒａ”と一致すると見なされる図４に示す例を使用して、ビジネス名内の単語“Ｍａｉｎ”が第１ロー第２カラムの内のマトリクス・エントリへ割り当てられ、それは単語“Ｍａｉｎ”がトークン２に一致し、ビジネス名内の第１の一致する単語（“Ｓｍｏｋｅ”）がトークン１に一致するためである。たとえば、異なるビジネス名からの多数の単語をマトリクス内の同じエントリに割り当てることができる。また、一実施例では、ローおよびカラムは０から始まって番号づけられ、トークンは１から始まって番号づけられ、第１ロー第２カラムのマトリクス・エントリはエントリ（０，１）として識別される。
【００３２】
このような割当てを行うために、第１ロー、たとえば、ロー０が選択され２４６、一実施例では、ロー番号に等しく累乗されたアルファである関連スコアが、そのロー内の全エントリに対して、識別される２４８かつ割り当てられる２５０。関連スコアはより低い値を有するより低いローでローの値を減じるように働く。一実施例では、アルファは０．７５であるが、１よりも小さい他の値を使用することができる。
【００３３】
選択されたロー内の第１カラムのマトリクス・エントリが選択され２５２、選択されたエントリに対する逆交差一致された（ｒｅｖｅｒｓｅ  ｉｎｔｅｒｓｅｃｔｉｎｇ  ｍａｔｃｈｅｄ）ビジネス名が識別される２５４。ローｉ、カラムｊにおけるエントリに対する逆交差一致されたビジネス名はカラムｊからｉまでに対応する残りのトークンの各々に一致する単語を含む一致されたビジネス名の１つである。逆交差一致されたビジネス名としては、このようなビジネス名はカラムｉに対応する残りのトークンの前またはカラムｊに対応するトークンの後の任意の残りのトークンに一致する必要はなく、もし一致しても、まだローｉ、カラムｊにおけるエントリに対する逆交差一致されたビジネス名である。これらのビジネス名が割り当てられるビジネス名も識別される。
【００３４】
マトリクスに対するマッチングおよび割当ては、最右トークンで開始して、そのトークンを選択し、全ての潜在的一致をつきとめ、任意の一致するビジネス名をやはり一致する最左トークンに基づいてマトリクスに割り当てて進めることができる。
【００３５】
ステップ２５２において識別された任意の逆交差一致されたビジネス名に対応するカテゴリーを使用して、選択されたエントリにカテゴリー信頼スコアが割り当てられる（２５６）。（一実施例では、選択されたローおよびカラムに対して逆交差一致されたビジネス名が見つからなければ、ゼロのカテゴリー信頼スコアが割り当てられ、この方法はステップ２５８に続く。）カテゴリー信頼スコアを割り当てるために、一実施例では、選択されたエントリにおける全ての逆交差一致されたビジネスに割り当てられたカテゴリーの総数で1が除される。もう１つの実施例では、各カテゴリーに対応する選択されたエントリにおける逆交差一致されたビジネス名の数が記録され、最大記録を有するカテゴリーがこのようなビジネスの総数で除される。ステップ２５６の一部として、カテゴリー信頼スコアが選択されたマトリクス・エントリに関連付けられる。
【００３６】
選択されたロー内の次のカラム内のエントリが一致されたビジネス名内の単語と関連付けられると（２５８）、選択されたロー内の次のカラム内のエントリが選択され（２６０）、この方法は新たに選択されたエントリを使用するステップ２５４に続く。そうでなければ（２５８）、この方法は図３のステップ３１０に続く。ステップ３１０において、前記したように、ビジネス名内の単語が一致されるエントリを有するローがさらにあれば、次のこのようなローが選択され（３１２）、この方法は新たに選択されたローを使用する図２Ａのステップ２４８に続く。
【００３７】
そうではなく、前記されかつ３１０に記述されているように、ビジネス名内の単語が一致されるエントリを有するローがこれ以上は無い場合、前記したように計算された、各エントリのカテゴリー信頼スコアにそのエントリに対応するローの関連スコアが乗ぜられ最高結果スコアを有するエントリが識別される（３１４）。
【００３８】
ステップ３１４において識別されたエントリに関連付けられたカテゴリーが調べられる（３１６）。前記したように、エントリに対して逆交差一致されたビジネス名がそのカテゴリーに関連付けられると、カテゴリーはエントリに関連付けられる。
【００３９】
ステップ３１６において、１つ以上のこのようなカテゴリーがあれば（３１８）、ステップ３１４において識別されたエントリの最長一致を有する１つ以上のエントリが識別され、このようなエントリに関連づけられたカテゴリーが選択される（３２０）。一実施例では、最長一致を有するエントリはｉおよびｊ間の最高差を有するエントリであり、これらのエントリがいくつかあることがある。ステップ３２０において２つ以上のカテゴリーが選択されると（３２２）、一実施例では、この方法はステップ３４２に続く。
【００４０】
もう１つの実施例では、ステップ３２０において２つ以上のカテゴリーが選択されると（３２２）、たとえば、この方法の前の反復のステップ３５４において、取引の記述がマニュアルに分類された同じユーザに対する取引記述およびカテゴリーの循環バッファ（たとえば、キャッシュ）と比較される３２６。記述がキャッシュ３２８内であれば、取引は前に一致する記述を有する取引に割り当てられたカテゴリーに関連づけられ３３０、この方法はステップ３５０に続く。取引がキャッシュ３２８内になければ３２８、この方法はステップ３４２に続く。
【００４１】
ステップ３１８または３２２において単一カテゴリーが識別されると、そのカテゴリーは取引と関連付けられ３２４、この方法はステップ３５０に続く。
【００４２】
ステップ３４２において、最大数の逆交差一致されたビジネス名が対応するカテゴリーがステップ３２０において選択されたカテゴリーの中から選択される。一実施例では、ステップ３４２は随意マニュアル分類に対する取引のマーキングを含んでいる。ステップ３２０において識別されたエントリに関連づけられた逆交差一致されたビジネス名の総数のパーセンテージで表わされた、選択されたカテゴリーに対応する逆交差一致されたビジネス名の数が閾値パーセンテージを超えれば（３４４）、選択されたカテゴリーは取引と関連付けられ３４８、この方法はステップ３５０に続く。一実施例では、閾値パーセンテージは５０％である。
【００４３】
そうでなければ３４４、カテゴリーの階層がその最低レベルをつきとめるためにトラバースされ３４６、最低レベルは階層のリーフノードに最も近いレベルであり、それに対して階層のそのレベルから由来するカテゴリーに対応する逆交差一致されたビジネス名の数はステップ３２０において識別されたエントリに関連づけられた逆交差一致されたビジネス名の総数の閾値パーセンテージ（５０％等）を超える。この最低レベルにおけるカテゴリーは取引と関連付けられる。この方法はステップ３５０に続く。
【００４４】
ステップ３５０において、さらに取引があれば、次の取引記述が選択され（３５２）、この方法は図２Ａのステップ２１２に続く。そうではなく、これ以上取引がなければ３５０、ステップ３４２においてマークされた取引がユーザに提示され、これらの取引に対応するカテゴリーがユーザから要求され受信されて取引と関連付けられ、記述およびカテゴリーはキャッシュ内に保存される（３５４）。
【００４５】
システム
図５および６は本発明の一実施例に従って取引を分類するシステムの略ブロック図である。図５および６について、任意の時間に、たとえば、システムに関連づけられたＵＲＬを要求する従来のウェブ・ブラウザを使用して、ユーザはシステムの使用を要求することができる。ユーザ・インターフェイス・マネジャー５２０は通信インターフェイス５１０を介して要求を受信する。一実施例では、通信インターフェイス５１０はＴＣＰ／ＩＰまたは他の通信プロトコルをサポートする従来の通信インターフェイスを含み、通信インターフェイス５１０の入出力５０８はインターネットまたはローカルエリア・ネットワークまたはその両方に接続されている。一実施例では、ユーザとシステム間の全ての通信が通信インターフェイス５１０の入出力５０８を介して行われ、ウェブ・ブラウザまたはユーザの従来のコンピュータ・システム（図示せず）が担う類似のアプリケーションを介しても行われる。
【００４６】
要求を受信すると、ユーザ・インターフェイス・マネジャー５２０はシステムにログオンするユーザにユーザ・インターフェイスを提供する、あるいは、ユーザがまだ登録されていなければ、登録情報を提供する。一実施例では、登録情報は一意的ユーザ名およびパスワードを含み、そのいずれかまたは両方をユーザが選択したりユーザ・インターフェイス・マネジャー５２０により割り当てることができ、さらに、オプショナル・クレジット口座番号および他のクレジットカード情報、および随意１つ以上のホームロケーションを含み、それは、たとえば、ユーザが住んでいるまたは働いている都市および州とすることができる。ユーザ・インターフェイス・マネジャー５２０は登録情報をユーザ記憶装置５２２内に格納する。
【００４７】
ユーザが登録情報を使用してログオンしていると、ユーザ・インターフェイス・マネジャー５２０はユーザ・インターフェイスを提供してユーザが取引情報を提供できるようにする。取引情報は、たとえば、ユーザの銀行またはクレジットカード会社により発生された１つ以上のファイルの形とすることができ、ユーザはファイルを直接供給したり、ファイルの場所の表示を供給したり、たとえば、銀行またはクレジットカード明細書、または他のソースから受信した情報をユーザ・インターフェイス内にコピーしたり貼り付けたりすることができる。ユーザ・インターフェイス・マネジャー５２０は取引情報またはその場所の表示を、ユーザの識別子と共に、取引情報受信機５２４へ提供する。一実施例では、取引情報はデータおよび時間、金額、およびここでは取引記述と呼ばれる追加情報を含んでいる。
【００４８】
取引情報またはその場所の表示を受信すると、取引情報受信機５２４は必要ならばその情報を検索して取引情報記憶装置５２６内に格納する。取引情報受信機５２４は取引情報を解析して各取引に一意的識別子を割り当てる。また、取引情報受信機５２４は各取引記述内の単語をトークン化する。前記したように、各トークンは１つ以上の連続スペース、または取引記述の始まりまたは終りにより画定される一連の文字を含んでいる。取引情報受信機５２４は制限された単語をトークン化しない。制限された単語のリストは、たとえば、システム・アドミニストレータから受信され、取引情報受信機５２４により内部格納することができる。前記したように、一実施例では、制限された単語は“ｃａｒｄ”、“ｃｒｄ”、“ｃｈｅｃｋ”、“ｃｈｅｃｋｃａｒｄ”、“ｃｒｅｄｉｔ”、“ｄｅｂｉｔ”、“ｆｒｏｍ”、“ｌｏｃ”、“ｍｅｒｃｈａｎｔ”、“ｐａｙｍｅｎｔ”、“ｐｕｒｃｈａｓｅ”、および３つ以上の大文字Ｘであるかそれを含む任意の単語を含んでいる。
【００４９】
取引情報受信機５２４は各取引に対するトークンの二重リンク・リストを作り、このリストを取引情報記憶装置５２６内に格納する。一実施例では、取引情報記憶装置５２６は従来のデータベースを含んでいる。また、取引情報受信機５２４は、取引識別子、その取引に対するトークンの二重リンク・リスト内の最初および最後のトークンへのポインタ、取引の日付および時刻、およびユーザ識別子を含む各取引に対する取引記録も作り出し、その取引記録を取引情報記憶装置５２６内に格納する。取引情報受信機５２４は、銀行、クレジット・ユニオン、およびクレジットカード・プロセッサ等の金融サービス機関から追加取引情報を受信することができる。取引情報受信機５２４は、たとえば、口座番号および金融機関を一致させることにより取引情報を取引が対応するユーザ識別子と一致させ、記述をトークン化してリストを取引情報記憶装置５２６内に格納し、取引記録を作り出して取引情報記憶装置５２６内に格納し、取引記録内に口座記録内の金融機関の口座番号および識別子を含めることができる。取引情報受信機５２４は新たに格納された最初の取引記録を選択し、その取引記録へのポインタを州識別子５４０へ提供する。
【００５０】
ポインタを受信すると、州識別器５４０は取引の州コードを識別しようと試みる。州コードを識別するために、州識別器５４０は取引記録を使用してその取引に対するトークンのリストをつきとめ、リスト内の最後のトークンで開始して一致が見つかるまで最初のトークンへ逆進行し、各トークンを２文字州コード（たとえば、ＮＹ、ＣＡ等）に一致させようと試みる。国コード等の場所に対する他のタイプのコードを他の実施例において州コードの替わりに使用することができる。トークンを州コードに一致させると、州識別器５４０はその州コードを、どのトークンが州コードまたは他の場所コードに一致したかの表示と共に、その記録に対する取引記録に加える。州識別器５４０がこの情報を取引記録に加えた時、または州コードを見つけることなく最初のトークンに達した時、州識別器５４０は取引記録へのポインタを都市識別器５４２へ提供する。
【００５１】
ポインタを受信すると、都市識別器５４２は取引に対する都市を識別しようと試みる。都市を識別するために、都市識別器５４２は取引記録を使用して取引に対するトークンのリストをつきとめ、州または他の場所コードを含む任意のトークンの前のトークンから開始してリスト内のトークンを都市名と一致させようと試みる。一実施例では、都市識別器５４２はトークンを都市／ビジネス・データベース５３０内に格納された都市名リストと比較し、それは、たとえば、システム・アドミニストレータから受信することができる。一実施例では、都市／ビジネス・データベース５３０は各州に対する都市を記述する従来のデータベース、およびカテゴリーの階層に割り当てられたビジネス名を含んでいる。前記したような、ビジネス名に対応するビジネスに関する他の情報も都市／ビジネス・データベース内の各ビジネス名に関連づけることができる。カテゴリーの階層も都市／ビジネス・データベース５３０の一部とすることができる。
【００５２】
州識別器５４０および／または都市識別器５４２は場所識別器５３８と見なすことができ、それは取引に対応する場所を識別する。この場所は都市および州を含むことができるが、州は郡、州、地域、国、または大陸等の、１つ以上の都市を取り囲む任意の地理的エリアとすることができる。
【００５３】
一実施例では、都市／ビジネス・データベース５３０はＬｏｓ  Ａｎｇｅｌｅｓに対する“Ｌ．Ａ．”のような都市の共通略語名も含んでいる。もう１つの実施例では、前記したように、都市識別器５４２は、都市名内には任意数の追加文字も含まれるが、トークン内の各文字が都市名内に同順で含まれる限りトークンは都市名に一致すると見なす。もう１つの実施例では、追加文字無しで全体トークンが都市名内に同順で現れる限り、また都市名内のそのトークンの前または後にスペース以外の文字が現れない限りトークンは都市名に一致すると見なされる。したがって、トークン“Ｌｏｕｉｓ”は都市名“Ｓｔ．Ｌｏｕｉｓ”および“Ｅａｓｔ  Ｓｔ．Ｌｏｕｉｓ”にも一致すると見なされるが、都市名“Ｌｏｕｉｓｖｉｌｌｅ”には一致しない。もう１つの実施例では、トークンは３つの都市名全部に一致すると見なされる。
【００５４】
前記したように、定められたトークンに一致する２つ以上の都市名があれば、一実施例では、都市識別器５４２は一致するトークンの前に記載されているトークンを加え、間に単一スペースのある一緒に取られたトークンに一致する都市名を識別しようと試みる。両方のトークンに一致する都市名が１つしか見つからない場合、都市識別器５４２はそれを一致する都市名として決定する。都市識別器５４２は一致が１つだけまたはゼロになるまでトークンを加え続ける。ゼロ一致が見つかると、都市識別器５４２は前に見つかった一致は一致する都市名であると決定する。
【００５５】
取引記録に州コードが含まれておれば、都市識別器５４２はトークンを使用してそれが州コードに一致していると識別されるまでマッチング・プロセスを開始し、そのトークンを取引記録内で識別された州内ある都市名だけと比較する。この実施例では、都市／ビジネス・データベース５３０内に格納された都市名のリストは各都市がある州をも示す。そのトークンに一致する都市名が見つからない場合、都市識別器５４２は都市名マッチャ（ｍａｔｃｈｅｒ）５５０にその取引記録へのポインタを提供し、それは前記したように進行する。
【００５６】
取引記録に州コードが含まれていなければ、都市識別器５４２は最後のトークンからマッチング・プロセスを開始する。マッチング・プロセスは前記したものと同じであり、最後のトークンがどの都市名とも一致しない場合、都市識別器５４２はネクスト・ツー・ラスト・トークン（ｎｅｘｔ−ｔｏ−ｌａｓｔ  ｔｏｋｅｎ）を選択して一致する都市名を見つける試みのプロセスを繰り返す点が違っている。都市識別器５４２は一致する都市名が見つかるまで、あるいは前記したように多数の一致する都市名が存在すると決定するまで、または都市名に一致するトークンは無いと決定するまでトークンのリストを後向きに進行する。
【００５７】
取引に対する単一の都市名を識別すると、都市識別器５４２は取引情報記憶装置５２６内の取引記録に、どのトークンがその都市名に一致してかの表示と共に、都市名を加える。取引記録内に州コードが含まれていなければ、一実施例において都市識別器５４２は、一意的一致が確認できれば、やはりその中に一致する都市がある州の州コードを加え、それは、一実施例では、前記したように結びつきが断たれるまで遅らせることができる。この情報が取引記録に加えられている時、あるいは都市名に一致するトークンは無いと決定すると、都市識別器５４２はその取引記録へのポインタをビジネス名マッチャ５５０へ提供し、それは前記したように進行する。
【００５８】
そうではなく、２つ以上の一致する都市名を見つけると、都市識別器５４２はその取引記録へのポインタおよび、これらの名称に一致すると判ったトークンに関連づけられた、全ての一致する都市名を都市タイ・ブレーカ（ｔｉｅ  ｂｒｅａｋｅｒ）５４４へ提供する。
【００５９】
前記したように、ポインタ、複数の一致する都市名、および関連情報を受信すると、都市タイ・ブレーカ５４４は一致する都市の中から最も一致する都市を識別する。一実施例では、前記したように、最善の一致する都市を識別するために、都市タイ・ブレーカ５４４は任意の一致する都市が閾値人口以上であるかどうかを決定し、そうであれば、最大の都市を選択する。この実施例では、都市名に関連する都市／ビジネス・データベース５３０内に都市人口が格納され、都市タイ・ブレーカ５４４はこの情報を使用して決定する。さらに、または替わりに、都市タイ・ブレーカ５４４は取引記録内に含まれるユーザ識別子を使用してユーザ記憶装置５２２内のそのユーザのホームロケーションを見つけることができ、またこのようなホームロケーションに最も近い都市を選択することができる。この実施例では、都市／ビジネス・データベース５３０は、たとえば、都市の緯度と経度の座標を含むことができ、都市タイ・ブレーカ５４４はこの情報を使用して近接（ｐｒｏｘｉｍｉｔｙ）を決定することができる。
【００６０】
一実施例では、前記したように、都市タイ・ブレーカ５４４は都市の選択において人口と近接の両方を考慮することができ、かつ／またはその取引から閾値時間量内に生じる他の取引の場所等の他の情報を考慮することができる。この実施例では、都市タイ・ブレーカ５４４は取引情報記憶装置５２６内の取引記録を調べて他のこのような取引の場所を見つけ、また他の取引の場所が決定されるまで取引を保持することができる。他の実施例では、都市タイ・ブレーカ５４４は一致する都市名の中から最善の一致を選択するための他の技術を使用することができる。最善の一致を選択すると、都市タイ・ブレーカ５４４は最善一致する都市名を、その名称に一致することが判ったトークンの識別子に関連する、取引情報記憶装置５２６内の取引記録内に格納する。取引記録内に州コードが含まれていなければ、一実施例において、都市タイ・ブレーカ５４４はその都市がある州の州コードも含んでいる。都市タイ・ブレーカ５４４は取引記録へのポインタをビジネス名マッチャ５５０に提供する。
【００６１】
前記したように、都市タイ・ブレーカ５４４または都市識別器５４２から取引記録ポインタを受信すると、ビジネス名マッチャ５５０は取引記録を使用して取引に対するトークンのリストをつきとめ、取引記録内に格納された情報を使用して「残りのトークン」を見つけ出す。前記したように、残りのトークンは都市名または州コードまたは他の形の場所に一致しないトークンである。ビジネス名マッチャ５５０は、識別された任意の都市および州と共に、各残りのトークンを単語マッチャ５４６に提供する。
【００６２】
残りのトークンおよび識別された任意の都市および州を受信すると、単語マッチャ５４６はトークンを、電子イエローページ・データベース等の、ビジネス名リストと比較し、それは一実施例では、システム・アドミニストレータから受信され都市／ビジネス・データベース５３０内に格納される。一実施例では、都市／ビジネス・データベース５３０は都市および州によるビジネスのリスティングを含んでいる。都市および州が識別されていると、単語マッチャ５４６はトークンをその都市および州内にあるビジネスの名称のみと比較する。州または他の場所が識別されると、単語マッチャ５４６はトークンをその州または他の場所内にあるビジネスの名称のみと比較する。
【００６３】
１つ以上のトークンが定められたビジネス名と一致するかどうかを決定するのに使用される基準はさまざまな実施例において異なることがあり、残りのトークンのいずれかとこれらのトークンの、必ずしも全てではない、任意のトークンを特徴づけるビジネス名との同順マッチング（すなわち、トークン“Ｅｘｔｒａ  Ｓｍｏｋｅ  Ｍａｉｎ  Ｅｘｔｒａ”とビジネス名“Ｈａｒｒｙ‘ｓ  Ｓｍｏｋｅ  Ｓｈｏｐ  Ｏｎ  Ｍａｉｎ”のマッチング）、開始、終わり、またはその両方におけるゼロ以上を除く、残りのトークンと全ての残りのトークンを特徴づけるビジネス名との同順マッチング（すなわち、トークン“Ｅｘｔｒａ  Ｓｍｏｋｅ  Ｅｍｐｏｒｉｕｍ  Ｍａｉｎ  Ｅｘｔｒａ”とビジネス名“Ｈａｒｒｙ‘ｓ  Ｓｍｏｋｅ  Ｅｍｐｏｒｉｕｍ  Ｏｎ  Ｍａｉｎ”のマッチング）、および／または残りのトークンと、任意数の追加文字と共に、トークン内で定められたものと同順でトークンの文字を含む単語を有するビジネス名とのマッチング（すなわち、“Ｓｍｋ  Ｓｈｐ”と“Ｈａｒｒｙ′ｓ  Ｓｍｏｋｅ  Ｓｈｏｐ”のマッチング）等の前記した基準のいずれかまたは全てを含むことができる。
【００６４】
単語マッチャ５４６は任意数のビジネス名が残りのトークンと一致すると決定することができる。一致するビジネス名が見つからず、都市および州が識別されておれば、一実施例において、単語マッチャ５４６はトークンを識別された州内にあるビジネスとも比較する。一致するビジネス名が見つからなければ、一実施例において、単語マッチャ５４６はトークンを全てのビジネス名と比較し、かつ／または少なくとも１つの一致が見つかるまで次第に緩いマッチング基準でマッチング・プロセスを繰り返す。
【００６５】
トークンをビジネス名と比較した時、単語マッチャ５４６は各一致するビジネス名をそのビジネス名と一致したトークンの識別子と関連付ける。一実施例では、都市／ビジネス・データベース５３０は各ビジネス名が対応するカテゴリーを含み、単語マッチャ５４６は、都市／ビジネス・データベース５３０内のそのビジネスに関連する他の情報の一部または全てだけでなく、各一致するビジネス名をその対応するカテゴリーの識別子と関連付ける。単語マッチャ５４６は全ての一致するビジネス名および関連する情報をビジネス名マッチャ５５０へ提供する。
【００６６】
一致するビジネス名および関連するトークンおよびカテゴリー識別子を受信すると、ビジネス名マッチャ５５０はこの情報を取引情報記憶装置５２６内の取引記録に加える。また、ビジネス名マッチャ５５０は取引記録へのポインタをマトリクス・アサイナ／セレクタ５６０へ提供する。
【００６７】
ポインタを受信すると、マトリクス・アサイナ／セレクタ５６０は各一致するビジネス名を前記したマトリクス内のエントリの１つへ割り当てる。前記したように、一実施例では、各単語が割り当てられるマトリクス内のエントリはその単語に一致した最も右の残りのトークンの順序位置に対応するカラム（すなわち、第１カラムは第１の残りのトークンに対応し、第２カラムは第２の残りのトークンに対応し、以下同様）、およびビジネス名内の任意の単語が一致した最も左のトークンの順序位置に対応するロー（すなわち、第１ローは第１のトークンに対応し、第２ローは第２のトークンに対応し、以下同様）を有する。マトリクス・アサイナ／セレクタ５６０は、その名称に関連する、各一致するビジネス名が対応するマトリクス・エントリの識別子を取引情報記憶装置５２６内に格納する。また、マトリクス・アサイナ／セレクタ５６０はマトリクス内の第１ローを選択し、そのローの識別子をファクタ・コンピュータ５６２へ提供する。一実施例では、第１ローはロー０、第２ローはロー１、等である。
【００６８】
ロー識別子を受信すると、ファクタ・コンピュータ５６２は、一実施例では、ロー番号で累乗したアルファに等しい関連スコアを識別するが、他の実施例では他の関数を使用することができる。アルファの値、たとえば、０．７５はシステム・アトミニストレータから受信してファクタ・コンピュータ５６２により内部格納することができる。たとえば、ロー０に対して、ファクタ・コンピュータ５６２は、０乗した０．７５の値は１であり、したがって、関連スコアは１であると決定することができる。ファクタ・コンピュータ５６２は関連スコアをマトリクス・アサイナ（ａｓｓｉｇｎｅｒ）／セレクタ５６０へ提供する。
【００６９】
関連スコアを受信すると、マトリクス・アサイナ／セレクタ５６０はその関連スコアをそれが提供したロー識別子に対応するロー内のエントリへ割り当てる。関連スコアを割り当てると、前記したように、マトリクス・アサイナ／セレクタ５６０は選択されたローの第１のカラムにおけるマトリクス・エントリを選択し、取引記録へのポインタと共に、そのエントリの識別子（たとえば、ロー０、カラム０におけるエントリに対する０，０）を逆交差マッチャ５６４へ提供する。
【００７０】
エントリ識別子およびポインタを受信すると、逆交差マッチャ５６４は取引記録内の情報を使用してマトリクスをつきとめ、そのエントリに対する任意の逆交差一致したビジネス名を識別する。前記したように、ローｉ、カラムｊにおける逆交差一致したビジネス名はカラムｊ−ｉに対応する残りのトークンの各々と一致する語を含む一致したビジネス名の一つである。そのエントリに対する任意の逆交差一致したビジネス名を識別しなければ、逆交差マッチャ５６４は逆交差一致したビジネス名は識別されなかったという表示を信頼スコア・アサイナ５６６へ提供する。そうでなければ、逆交差マッチャ５６４はそのエントリに対する逆交差一致したビジネス名を、それらの対応するカテゴリー識別子と共に、信頼スコア・アサイナ５６６へ提供する。
【００７１】
信頼スコア・アサイナ５６６は、逆一致したビジネス名および対応するカテゴリー識別子を受信すると、または逆交差一致したビジネス名は識別されなかったという表示を受信すると、カテゴリー信頼スコアを識別する。前記したように、一実施例では、カテゴリー信頼スコアは選択された全ての逆交差一致したビジネスに対応するカテゴリーの総数で１を除したものである。もう１つの実施例では、信頼スコア・アサイナ５６６は各カテゴリーに対応する逆交差一致したビジネス数を記録し、カテゴリー信頼スコアは逆交差一致したビジネスの総数で除した最大記録を有するカテゴリーの記録である。一実施例では、逆交差一致したビジネスは識別されなかった表示を受信すると、信頼スコア・アサイナ５６６はカテゴリー信頼スコアがゼロであると決定する。カテゴリー信頼スコアを識別していると、信頼スコア・アサイナ５６６はカテゴリー信頼スコアを、任意の逆交差一致したビジネス名およびそれらの関連するカテゴリー識別子と共に、マトリクス・アサイナ／セレクタ５６０へ提供する。
【００７２】
任意の逆交差一致したビジネス名および関連するカテゴリー識別子と共にカテゴリー信頼スコアを受信すると、マトリクス・アサイナ／セレクタ５６０はそのカテゴリー信頼スコアを取引記憶装置５２６内に格納されたマトリクス内の選択されたエントリへ割り当てる。マトリクス・アサイナ／セレクタ５６０は任意の逆交差一致したビジネス名および、選択されたマトリクス・エントリの識別子に関連する、取引情報記憶装置５２６内の取引記録内の関連するカテゴリー識別子も格納する。
【００７３】
任意の追加エントリが選択されたロー内に残る場合、マトリクス・アサイナ／セレクタ５６０は選択されたロー内の次のエントリを選択し、取引記録へのポインタと共に、そのエントリの識別子を逆交差マッチャ５６４へ提供する。逆交差マッチャ５６４、信頼スコア・アサイナ５６６、およびマトリクス・アサイナ／セレクタ５６０は任意の逆交差一致したビジネス名および関連カテゴリーを識別し、カテゴリー信頼スコアを選択されたエントリへ割り当てる前記したプロセスを繰り返し、その後、このプロセスは選択されたロー内の各エントリに対して繰り返される。
【００７４】
そうではなく、追加エントリが選択されたロー内に残らない場合、マトリクス・アサイナ／セレクタ５６０はマトリクス内の次のローを選択し、そのローの識別子をファクタ・コンピュータ５６２へ提供する。ファクタ・コンピュータ５６２は関連スコアを識別してマトリクス・アサイナ／セレクタ５６０へ提供する前記したプロセスを繰り返し、マトリクス・アサイナ／セレクタ５６０は関連スコアを選択されたロー内の全エントリに割り当てる。次に、マトリクス・アサイナ／セレクタ５６０は選択されたロー内の第１エントリを選択しそのエントリの識別子を、取引記録へのポインタと共に、逆交差マッチャ５６４へ提供する。逆交差マッチャ５６４、信頼スコア・アサイナ５６６、およびマトリクス・アサイナ／セレクタ５６０は任意の逆交差一致したビジネス名および関連カテゴリーを識別し、カテゴリー信頼スコアを選択されたエントリへ割り当てる前記したプロセスを繰り返し、その後、このプロセスは選択されたロー内の各エントリに対して繰り返される。任意の追加ローがマトリクス内に割り当てられると、このプロセスは次のローに対して繰り返される。この方法では、関連スコアおよびカテゴリー信頼スコアの両方がマトリクスに割り当てられた各エントリへ割り当てられ、取引記録は逆交差一致したビジネス名および各エントリに対する関連カテゴリーにより更新される。
【００７５】
まだ処理されていないローがこれ以上マトリクスに割り当てられなければ、マトリクス・アサイナ／セレクタ５６０は取引記録へのポインタをプロダクト識別器６１０へ提供する。ポインタを受信すると、プロダクト識別器６１０は取引記録を使用してその取引に対するマトリクス内のエントリをつきとめる。マトリクス内の各エントリに対して、プロダクト識別器６１０はカテゴリー信頼スコアに関連スコアを乗じる。得られるスコアはここではエントリ・スコアと呼ばれる。プロダクト識別器６１０は最高エントリ・スコアを有するエントリを識別し、最高エントリ・スコアに２つ以上のエントリが結びついておれば、このような全てのエントリを識別する。また、プロダクト識別器６１０は取引記録内の情報を使用してこのような全てのエントリに関連するカテゴリー数を決定する。一実施例では、そのエントリに対する逆交差一致したビジネス名がそのカテゴリーに関連しておれば、カテゴリーはエントリと関連付けられる。
【００７６】
全ての最高スコアリング・エントリ（その内、１つしかないことがある）に１つのカテゴリーしか関連していなければ、プロダクト識別器６１０はそのカテゴリーをカテゴリー・アソシエータ（ａｓｓｏｃｉａｔｅｒ）６２０へ提供し、それは前記したように進行する。一実施例では、全てのエントリまたは全ての高スコアリング・エントリに１つのビジネス名しか関連していなければ、プロダクト識別器６１０は前記したようなデータベース内に提供されていることがある他の情報を都市／ビジネス・データベース５３０から検索し、その情報をカテゴリー・アソシエータ６２０へ提供する。単一の最高スコアリング・エントリに対応する多数のカテゴリーがあれば、プロダクト識別器６１０はそのエントリの識別子を、取引情報記憶装置５２６内の取引記録へのポインタと共に、共通カテゴリー・プロセッサ６３０へ提供し、それは前記したように進行する。そうではなく、最高スコアに対して結びつけられた多数のエントリに対応する多数のカテゴリーがあれば、プロダクト識別器６１０は最高スコアリング・エントリの識別子を、取引情報記憶装置５２６内の取引記録へのポインタと共に、ロングマッチ識別器６１２へ提供する。
【００７７】
識別子およびポインタを受信すると、ロングマッチ識別器６１２はどの識別されたエントリが最長一致（ｌｏｎｇｅｓｔ  ｍａｔｃｈ）を表すか決定する。一実施例では、エントリはそれらのローおよびカラム番号により識別される、すなわち、ローｉおよびカラムｊにおけるエントリはエントリ（ｉ，ｊ）として識別される。この実施例では、最長一致を有するエントリはｉおよびｊ間の最高差を有するものである。ロングマッチ識別器６１２は取引記録内の情報を使用して最長一致エントリに関連するカテゴリーを決定する。そのエントリまたはそれらのエントリと１つのカテゴリーしか関連していなければ、ロングマッチ識別器６１２はそのカテゴリーの識別子を、取引記録へのポインタと共に、カテゴリー・アソシエータ６２０へ提供し、それは前記したように進行する。そうでなければ、ロングマッチ識別器６１２は最長一致を有するエントリの識別子を、取引情報記憶装置５２６内の取引記録へのポインタと共に、共通カテゴリー・プロセッサ６３０へ提供する。
【００７８】
前記したように、ロングマッチ識別器６１２またはプロダクト識別器６１０からエントリ識別子およびポインタを受信すると、共通カテゴリー・プロセッサ６３０は取引記録内の情報を使用してオリジナル取引をつきとめ、一実施例では、その取引をユーザ確認のためにマークする。また、共通カテゴリー・プロセッサ６３０は取引記録内の情報を使用してその取引に対応するマトリクス・エントリをつきとめ、識別されたエントリを見つけ出し、取引記録内でこれらのエントリに関連する逆交差一致するビジネス名、およびこれらの逆交差一致するビジネス名に対応するカテゴリーを見つけ出し、これらのカテゴリーの中から「最も共通な」カテゴリーを選択する。一実施例では、最も共通なカテゴリーは最大数のこれら逆交差一致するビジネス名が対応するカテゴリーである。このようなカテゴリーが１つだけ存在し、かつこれらの逆交差一致するビジネス名の閾値パーセンテージ（たとえば、５０％）を超えるものがそのカテゴリーに対応すれば、共通カテゴリー・プロセッサ６３０はそのカテゴリーの識別子を、取引記録へのポインタと共に、カテゴリー・アソシエータ６２０へ提供し、それは前記したように進行する。
【００７９】
一実施例では、このようなカテゴリーが１つしかなければ、共通カテゴリー・プロセッサ６３０はエントリの各々が同じビジネス名に対応するかどうかを決定する。そうであれば、共通カテゴリー・プロセッサ６３０は都市／ビジネス・データベース５３０内のそのビジネス名に関連する任意他の情報を検索し、それをカテゴリー・アソシエータ６２０へも提供する。他の情報は、ビジネス名自体を含む、前記した情報のいずれかまたは全てとすることができる。
【００８０】
そうではなく、最も共通なカテゴリーである単一カテゴリーが無い、または最も共通なカテゴリーが識別されたエントリに対応する逆交差一致するビジネス名の閾値パーセンテージよりも少ないものに対応する場合、共通カテゴリー・プロセッサ６３０はエントリ識別子を、取引記録へのポインタと共に、階層トラバーサ（ｔｒａｖｅｒｓｅｒ）６４０へ提供する。
【００８１】
エントリ識別子およびポインタを受信すると、階層トラバーサ６４０はこれらのエントリの閾値パーセンテージよりも多いものに対応する最低共通カテゴリーを識別するために取引記録内の情報およびカテゴリーの階層を使用する。一実施例では、カテゴリーの階層は、その下でこのようなカテゴリーが構成される親、祖父母、等のカテゴリーだけでなく、都市／ビジネス・データベース５３０内でビジネス名を関連付けることができるビジネスの全カテゴリー間の関係の説明である。階層は都市／ビジネス・データベース５３０内に格納される。
【００８２】
たとえば、階層トラバーサ６４０はエントリ（ｉ，ｊ）へのポインタを受信し、かつこのエントリは逆交差一致したビジネス名“Ｄａｎ’ｓ  Ｕｓｅｄ  Ｃａｒ  Ｗｏｒｌｄ”および“Ｌｕｘｕｒｙ  Ｃａｒ  Ｗｏｒｌｄ  Ｗｉｄｅ  Ｉｍｐｏｒｔｓ”に対応するものと仮定する。“Ｄａｎ’ｓ  Ｕｓｅｄ  Ｃａｒ  Ｗｏｒｌｄ”は、たとえば、カテゴリー「自動車、中古」に対応することができ、“Ｌｕｘｕｒｙ  Ｃａｒ  Ｗｏｒｌｄ  Ｗｉｄｅ  Ｉｍｐｏｒｔｓ”はカテゴリー「自動車、新車」に対応することができる。この例では、逆交差一致したビジネス名の５０％よりも多くに対応するカテゴリーは無い。しかしながら、カテゴリーの階層内で、「自動車、中古」および「自動車、新車」は共に「自動車」のより一般的な親カテゴリーに分類される。この場合、階層トラバーサ６４０は階層を横断して選択されたカテゴリーに対応する最低の最も共通するカテゴリーは「自動車」であると決定する。
【００８３】
最低の最も共通するカテゴリーを有する時に、階層トラバーサ６４０はそのカテゴリーの識別子を、取引記録へのポインタと共に、カテゴリー・アソシエータ６２０へ提供する。
【００８４】
前記したように、階層トラバーサ６４０、またはプロダクト識別器６１０、ロングマッチ識別器６１２、共通カテゴリー・プロセッサ６３０、またはキャッシュ・マッチャ６６０からカテゴリー識別子およびポインタを受信すると、カテゴリー・アソシエータ６２０は取引記録内の情報を使用して取引情報記憶装置５２６内のオリジナル取引をつきとめ、前記したように格納された、オリジナル取引情報にカテゴリー識別子を加える。一実施例では、カテゴリー・アソシエータ６２０は取引記録内に格納されたユーザ識別子をもオリジナル取引に加える。前記したように、プロダクト識別器６１０からカテゴリー・アソシエータ６２０へ提供されたビジネスに関する他の情報も取引に関連付けることができる。他の情報が前記したように受信されると、カテゴリー・アソシエータ６２０はこの情報を取引情報記憶装置５２６内のオリジナル取引に加える。また、カテゴリー・アソシエータ６２０は取引情報受信機５２４へ信号を送る。
【００８５】
信号が送られると、取引情報受信機５２４は取引情報記憶装置５２６内の最近格納された取引記録の次を選択し、その取引記録へのポインタを州識別器５４０へ提供する。州および都市を見つけ出し、一致するビジネス名およびカテゴリーを見つけ出し、マトリクスを作って埋め、逆交差一致したビジネス名を識別し、マトリクスおよび逆交差一致したビジネス名を使用してカテゴリーを取引に割り当てる前記したプロセスを新たに選択された取引記録に対応する取引に対して繰り返し、その時点でカテゴリー・アソシエータ６２０は取引情報受信機５２４へ再び信号を送り、このプロセスは次の取引に対して繰り返される。
【００８６】
カテゴリー・アソシエータ６２０が取引情報受信機５２４へ信号を送る時、全ての最近格納された取引記録が処理されておれば、一実施例において、取引情報受信機５２４はマニュアル・カテゴリー・マネジャ６５０へ信号を送る。そのように信号が送られると、前記したように、マニュアル・カテゴリー・マネジャ６５０は共通カテゴリー・プロセッサ６３０によりマークされた取引情報記憶装置５２６内のオリジナル取引を見つける。
【００８７】
一実施例では、全ての取引記録が処理されている時に取引情報受信機５２４がマニュアル・カテゴリー・マネジャ６５０へ信号を送るのではなく、ユーザ・インターフェイス・マネジャ５２０がマニュアル・カテゴリー・マネジャ６５０へユーザがログインする時のユーザ識別子を提供し、マニュアル・カテゴリー・マネジャ６５０はそのユーザに対応する取引情報記憶装置５２６内のマークされたオリジナル取引を見つける。
【００８８】
両方の実施例において、マニュアル・カテゴリー・マネジャ６５０はマークされたオリジナル取引を見つけていると、これらの取引へのポインタをユーザ・インターフェイス・マネジャ５２０へ提供し、ユーザ・インターフェイス・マネジャ５２０はユーザ・インターフェイスをユーザへ提供し、その取引に割り当てられているカテゴリーと共に各取引を表示する。ユーザ・インターフェイスによりユーザは正しくなければカテゴリーを修正し、あるいはなにも割り当てられていなければ１つを割り当てることができる。一実施例では、ユーザが修正する各取引に対して、ユーザ・インターフェイス・マネジャ５２０はその取引をマニュアル・カテゴリー・キャッシュ６５２内に格納する。一実施例では、マニュアル・カテゴリー・キャッシュ６５２は従来の循環バッファを含んでいる。取引がユーザに表示されていると、ユーザ・インターフェイス・マネジャ５２０は取引情報記憶装置５２６内の取引をアンマーク（ｕｎｍａｒｋ）する。ユーザがカテゴリーを割り当てるものに対しては、ユーザ・インターフェイス・マネジャ５２０は取引記録へのポインタおよびカテゴリーをカテゴリー・アソシエータ６２０へ提供し、それは前記したように進行する。
【００８９】
一実施例では、単一の最高スコアリング・エントリに対応する多数のカテゴリーがあるとプロダクト識別器６１０が決定すると、前記したように、取引記録へのポインタと共にそのエントリを共通カテゴリー・プロセッサ６３０へ提供するのではなく、プロダクト識別器６１０が取引記録へのポインタをキャッシュ・マッチャ６６０へ提供する。
【００９０】
この実施例では、ポインタを受信するとキャッシュ・マッチャ６６０は取引記録内の情報を使用してオリジナル取引を見つけ出し、キャッシュ・マッチャ６６０は取引記述を同じユーザに対応する任意の取引内に含まれマニュアル・カテゴリー・キャッシュ６５２内にキャッシュされている記述と比較する。一致する記述を見つけると、キャッシュ・マッチャ６６０はユーザによりキャッシュされた取引に割り当てられたカテゴリーを見つけ出し、そのカテゴリーの識別子を取引記録へのポインタと共にカテゴリー・アソシエータ６２０へ提供する。前記したように、カテゴリー・アソシエータ６２０はそのカテゴリーを取引記録に対応するオリジナル取引へ割り当てる。
【００９１】
そうではなく、一致する記述を見つけなければ、キャッシュ・マッチャ６６０は一致がみつからなかったという表示をプロダクト識別器６１０へ提供する。プロダクト識別器６１０は最高スコアリング・エントリの識別子および取引記録へのポインタを共通カテゴリー・プロセッサ６３０へ提供し、それは前記したように進行する。
【００９２】
同様に、この実施例では、前記したように、ロングマッチ識別器６１２は取引に対応する単一カテゴリーの識別に失敗すると、最長一致を有するエントリの識別子および取引記録へのポインタを共通カテゴリー・プロセッサ６３０へ提供するのではなく、取引記録へのポインタをキャッシュ・マッチャ６６０へ提供し、前記したように、キャッシュ・マッチャ６６０はマニュアル・カテゴリー・キャッシュ６５２内の一致する取引にマニュアルに割り当てられたカテゴリーを識別しようと試みる。このようなカテゴリーを見つけると、キャッシュ・マッチャ６６０はカテゴリー識別子およびポインタをカテゴリー・アソシエータ６２０へ提供し、それは前記したように進行する。そうでなければ、キャッシュ・マッチャ６６０は一致は見つからなかったという表示をロングマッチ識別器６１２へ提供し、ロングマッチ識別器６１２は最長一致を有するエントリの識別子および取引記録へのポインタを共通カテゴリー・プロセッサ６３０へ提供し、それは前記したように進行する。
【００９３】
図４Ａは、前記したように、取引にカテゴリーを割り当てるのに使用されるマトリクスの代表的例であるマトリクス４４０を例示している。この例では、トークン化された取引記述は“ＢＯＢＳ  ＳＵＰＲＥＭＥ  ＣＯＵＲＴ  ＩＮ  ＭＡＩＮ”であり、ここに、“ＢＯＢＳ”はトークン０、“ＳＵＰＲＥＭＥ” はトークン１、等である。これらの各トークンに一致するビジネス名が各トークンの下に示される。たとえば、トークン“ＢＯＢＳ”はビジネス名“ＢＯＢＳ  ＢＡＫＥＲＹ”および“ＢＩＬＬＹ  ＢＯＢＳ”に一致される。
【００９４】
前記したように、一実施例では、一致する各ビジネス名内の各単語はそれに一致したトークンの序数位置に対応するカラム（すなわち、第１のカラムは第１のトークンに対応し、第２のカラムは第２のトークンに対応する、等）、および任意のトークンが一致したビジネス名内の第１の単語の序数位置に対応するロー（すなわち、第１のローはビジネス名内の第１の一致する単語に対応し、第２のローはビジネス名内の第２の一致する単語に対応する、等）を有するマトリクス４４０内のエントリへ割り当てられる。たとえば、一致するビジネス名“ＢＯＢＳ  ＢＡＫＥＲＹ”内で、単語“ＢＯＢＳ”は第１のトークンに対応するため第１のカラムに割り当てられ、かつ任意のトークンに一致したビジネス名内の第１の単語に対応するため第１のローに割り当てられる。前記したように、一実施例では、第１のカラムおよび第１のローにおけるエントリはエントリ（０，０）である。単語“ＢＡＫＥＲＹ”はいずれのトークンとも一致しないためいずれのエントリにも割り当てられない。同様に、“ＢＩＬＬＹ  ＢＯＢＳ”内の単語“ＢＩＬＬＹ”はいずれのエントリにも割り当てられない。しかしながら、ＢＩＬＬＹ  ＢＯＢＳ”内の単語“ＢＯＢＳ”はエントリ（０，０）に割り当てられる。
【００９５】
マトリクス４４０内の各エントリはそのエントリに対するエントリ・スコアがどのように計算されるかを示す公式を含んでいる。たとえば、エントリ（０，０）は公式Ａ０Ｃ（Ｉ１．．．１）を含んでいる。Ａ０は関連性スコアであり、前記したように、アルファの値（たとえば、０．７５）をロー番号で累乗したものに等しい。この例では、０．７５を０で累乗すれば１となるため、エントリ（０，０）に対する関連性スコアは１である。
【００９６】
公式内のＣはカテゴリー信頼スコアを表し、前記したように、それは一実施例においてそのエントリに対する逆交差一致ビジネス名に対応するカテゴリーを使用して計算される。ローｉ、カラムｊにおけるエントリに対する逆交差一致ビジネス名はカラムｊからｉに対応する残りの各トークンに一致する単語を含む一致したビジネス名の１つである。したがって、この実施例では、エントリ（０，０）に対する逆交差一致ビジネス名（公式内で“Ｔ”として示されている）は第１のトークンに一致する単語を有する全ての一致したビジネス名を含んでいる（公式内に“１．．．１”、すなわち最初から最初までとして示されている）。“ＢＯＢＳ  ＢＡＫＥＲＹ”および“ＢＩＬＬＹ ＢＯＢＳ”は共に第１のトークン“ＢＯＢＳ”に一致する単語を含むため、これらのビジネス名は共にエントリ（０，０）に対する逆交差一致したビジネス名である。しかしながら、第１ローおよび第６カラムにおけるエントリ、エントリ（０，５）、に対する逆交差一致したビジネス名は全てのトークン（Ｉ１．．．６）一致しなければならない。一致するビジネス名のどれも全てのトークンには一致しないため、エントリ（０，５）に対する逆交差一致するビジネス名はない。
【００９７】
前記したように、一実施例では、カテゴリー信頼スコアは全ての逆交差一致したビジネス名に対応する総カテゴリー数で１を除したものである。この例では、“ＢＯＢＳ  ＢＡＫＥＲＹ”はカテゴリー「焼き菓子」に対応し、“ＢＩＬＬＹ ＢＯＢＳ”はカテゴリー「ワイン、ビールおよびアルコール」に対応するものと仮定する。したがって、この実施例では、エントリ（０，０）に対するカテゴリー信頼スコアは１を２で除したものとなる。同じステートメントのもう１つの表現方法は、Ｃ（Ｉ１．．．１）＝０．５である。
【００９８】
前記したように、エントリ・スコアを見つけるために関連性スコアにカテゴリー信頼スコアが乗ぜられる。Ａ０は１であり、Ｃ（Ｉ１．．．１）は０．５であるため、エントリ（０，０）に対するエントリ・スコアは０．５である。図４Ｂは各エントリに対するエントリ・スコアを示すマトリクス４４０を例示している。一実施例では、０のスコアがロー内のエントリに割り当てられていると、そのロー内のそのエントリの右の残り全てのエントリにも、それらのエントリに対して得られるスコアを計算することなく、スコア０を割り当てることができる。計算される必要のないエントリは図４Ｂにダッシュで示されている。
【００９９】
前記したように、取引にカテゴリーを割り当てるために最高エントリ・スコアを有するエントリが識別される。この例では、最高エントリ・スコアを有するエントリはエントリ（１，２）および（１，３）であり、各々が０．７５のエントリ・スコアを有する。前記したように、これらのエントリに一致するカテゴリーはこれらのエントリに対する逆交差一致したビジネス名に関連するカテゴリーである。両方のトークン２および３に一致する一致するビジネス名を識別して見つけられた、エントリ（１，２）に対する逆交差一致したビジネス名は“ＳＵＰＲＥＭＥ  ＣＯＵＲＴ  Ｉ”である。トークン２，３および４に一致する一致するビジネス名を識別して見つけられた、エントリ（１，３）に対する逆交差一致したビジネス名はやはり“ＳＵＰＲＥＭＥ  ＣＯＵＲＴ  Ｉ”である。したがって、この例では、ビジネス名“ＳＵＰＲＥＭＥ  ＣＯＵＲＴ  Ｉ” に関連するカテゴリーは取引に割り当てられるカテゴリーである。
【０１００】
このように割り当てられたカテゴリーを使用して取引データを編成することができる。たとえば、ユーザに対する多数の取引データを使用して、ある期間中のユーザの支出の概要がカテゴリーによりソートしてユーザに示され、各カテゴリーに対する支出の合計および取引データがカテゴリー名および合計の下に示される。カテゴリー合計およびカテゴリー名をグラフまたはチャートのエレメントとして使用して、円グラフ等の、グラフまたはチャートを示すことができる。カテゴリーにより過去のデータを示すことができ、ユーザは自動車メンテナンス支出が時間の経過とともにどのように異なっているか知ることができる。解析を行って、たとえば、新車への支払いは過去に行った自動車メンテナンス支出よりも安くつくことをユーザに確認させることができる。カテゴリー内の支出または支出の不足に基づいてユーザに広告を示すことができる。
【０１０１】
多くの取引に対して、取引データはいかなるユーザ入力も無しにカテゴリーに入れることができる。
【図１】
2010528393.tif 000003
【図２Ａ】
2010528393.tif 000004
【図２Ｂ】
2010528393.tif 000005
【図３】
2010528393.tif 000006
【図４Ａ】
2010528393.tif 000007
【図４Ｂ】
2010528393.tif 000008
【図５】
2010528393.tif 000009
【図６】
2010528393.tif 000010
【国際調査報告】
2010528393.tif 000011