【文献】
Office2000新機能チェック,これでわかった!Office2000,日本,日経BPソフトプレス,1999年 5月 1日,pp.82-90
(58)【調査した分野】(Int.Cl.,DB名)
請求項1記載の方法において、前記編集に基づいて前記データー・フォーマット規則を得るステップは、前記編集の各々に関係する情報を、前記データー・フォーマット規則を作成する機械学習発見的方法に提出するステップを含む、方法。
【発明を実施するための形態】
【0005】
[0012] これより図面を参照して、種々の実施形態について説明する。図面では、同様の番号は同様の要素を表す。具体的には、
図1および対応する論述は、実施形態を実現することができる、適した計算環境の端的な総合的説明を行うことを意図している。
【0006】
[0013] 一般に、プログラム・モジュールは、ルーチン、プログラム、コンポーネント、データー構造、および特定のタスクを実行するまたは特定の抽象的データー・タイプを実現する他のタイプの構造を含む。他のコンピューター・システム構成を用いることもでき、ハンドヘルド・デバイス、マルチプロセッサー・システム、マイクロプロセッサーに基づくまたはプログラマブル消費者用電子機器、ミニコンピューター、メインフレーム・コンピューター等が含まれる。分散型計算環境も用いることができ、この場合、通信ネットワークを通じてリンクされている、離れた処理デバイスによってタスクを実行する。分散型計算環境では、プログラム・モジュールは、ローカルおよびリモート双方のメモリー記憶デバイスに配置することができる。
【0007】
[0014] これより
図1を参照して、種々の実施形態において利用するコンピューター100のコンピューター環境例について説明する。
図1に示すコンピューター環境は、計算デバイスを含む。その各々は、サーバー、デスクトップまたは移動体コンピューター、あるいは他の何らかのタイプの計算デバイスとして構成することができ、中央演算装置5(「CPU」)、ランダム・アクセス・メモリー9(RAM)およびリード・オンリー・メモリー(「ROM」)10を含むシステム・メモリー7、ならびにこのメモリーを中央演算装置(「CPU」)5に結合するシステム・バス12を含む。
【0008】
[0015] 基本入力/出力システムは、起動中のようなときにコンピューター内部におけるエレメント間で情報を転送するのに役立つ基本的なルーチンを収容し、ROM10に格納されている。更に、コンピューター100は、オペレーティング・システム16、スプレッドシート11、スプレッドシート・アプリケーション24、他のプログラム・モジュール25、およびフォーマット処理マネージャー26を格納する大容量記憶デバイス14も含む。フォーマット処理マネージャー26については、以下で更に詳しく説明する。
【0009】
[0016] 大容量記憶デバイス14は、バス12に接続されている大容量記憶コントローラー(図示せず)を介してCPU5に接続されている。大容量記憶デバイス14およびそれに付随するコンピューター読み取り可能媒体は、不揮発性ストレージをコンピューター100に設ける。この中に収容されるコンピューター読み取り可能媒体の記述は、ハード・ディスクまたはCD−ROMドライブのような、大容量記憶デバイスに言及するが、コンピューター読み取り可能媒体は、コンピューター100によってアクセスできる入手可能な媒体であればいずれでも可能である。
【0010】
[0017] 一例として、そして限定ではなく、コンピューター読み取り可能媒体は、コンピューター記憶媒体および通信媒体を含むことができる。コンピューター記憶媒体は、揮発性および不揮発性、リムーバブルおよびリムーバブル以外の媒体を含み、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、または他のデーターというような情報の記憶方法または技術のいずれかで実現する。コンピューター記憶媒体は、RAM、ROM、消去可能プログラマブブル・リード・オンリー・メモリー(「EPROM」)、電気的消去可能プログラマブル・リード・オンリー・メモリー(「EEPROM」)、フラッシュ・メモリーまたはその他のソリッド・ステート・メモリー技術、CD−ROM、ディジタル・バーサタイル・ディスク(「DVD」)、あるいはその他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスク記憶デバイスまたは他の磁気記憶デバイス、あるいは所望の情報を格納するために用いることができコンピューター100によってアクセスすることができる他のあらゆる媒体が含まれるが、これらに限定されるのではない。
【0011】
[0018] コンピューター100は、インターネットのような、ネットワーク18を通じて、リモート・コンピューターへの論理接続を用いて、ネットワーク接続環境において動作する。コンピューター100は、バス12に接続されているネットワーク・インターフェース・ユニット20を介して、ネットワーク18に接続することができる。ネットワーク接続は、ワイヤレス接続および/または有線接続であってもよい。ネットワーク・インターフェース・ユニット20は、他のタイプのコンピューターや、ネットワーク・サービス(1つまたは複数)27のような、リモート・コンピューター・システムに接続するためにも利用できるとよい。また、コンピューター100は、キーボード、マウス、または電子スタイラス(
図1には示されていない)を含む多数の他のデバイスからの入力を受け取って処理する入力/出力コントローラー22も含むことができる。同様に、入力/出力コントローラー22は、入力/出力をIPフォン、表示画面23、プリンター、または他のタイプの出力デバイスに供給することもできる。
【0012】
[0019] 先に手短に述べたように、多数のプログラム・モジュールおよびデーター・ファイルをコンピューター100の大容量記憶デバイス14およびRAM9に格納することができ、その中には、ワシントン州、RedmondのMICROSOFT CORPORATIONのWINDOWS 7(登録商標)オペレーティング・システムのような、コンピューターの動作を制御するのに適したオペレーティング・システム16が含まれる。また、大容量記憶デバイス14およびRAM9は、1つ以上のプログラム・モジュールも格納することができる。具体的には、大容量記憶デバイス14およびRAM9は、スプレッドシート・アプリケーション24およびプログラム・モジュール25を含む1つ以上のアプリケーション・プログラムを格納することができる。一実施形態によれば、スプレッドシート・アプリケーション24は、MICROSOFT EXCELスプレッドシート・アプリケーションである。他のスプレッドシート・アプリケーションも用いてもよい。UI28のようなユーザー・インターフェースは、ユーザーが、スプレッドシート・アプリケーション24のような、アプリケーションと対話処理することを可能にする。
【0013】
[0020] フォーマット処理マネージャー26は、図示のように、スプレッドシート・アプリケーション24の外部に配置してもよく、またはスプレッドシート・アプリケーション24の一部であってもよい。更に、フォーマット処理マネージャー26によって設けられる機能の全部/一部は、スプレッドシート・アプリケーション24の内部/外部に配置してもよい。
【0014】
[0021] フォーマット処理マネージャー26は、元のデーターおよび出力例、例えば、ユーザーの編集に基づいてデーターを1つの形式から他の形式に変換するための1つ以上のデーター・フォーマット規則を生成するように構成されている。一実施形態によれば、フォーマット処理マネージャー26は、機械学習法を元のデーターおよび出力例、即ち、ユーザーの編集に適用して、データーに適用することができるデーター・フォーマット規則(1つまたは複数)を決定する。例えば、ユーザーは、キャラクターをデーターに/から追加/除去する、データーを繋げる、データーを抽出する、データーの名称を変更する等の編集を行うことができる。編集に応答して、文書(例えば、スプレッドシート)内にある他のデーターに適用するデーター・フォーマット規則(1つまたは複数)を生成する。データーに適用するフォーマット処理は、ユーザーが変更を受け入れる/拒否することができるように、ユーザーによって検討可能にするとよい。また、データーに適用するフォーマット処理は、メタデーターのフォーマット処理も含むことができる。一実施形態によれば、フォーマット規則から判定される信頼度を、データーに適用したフォーマット処理と関連付けて、データーが適正に再フォーマットされたときをユーザーが一層容易に識別できるようにするとよい。例えば、高い信頼度は、データーが適正にフォーマットされた可能性が高いことを示し、一方低い信頼度は、ユーザーが結果を見直すことを望むかもしれないことを示すことができる。機械学習経験法は、イベントに応答して(例えば、所定の回数の編集が同じタイプのデーターに対して行われた後)自動的にトリガーすることができ、または手動でトリガーすることもできる(例えば、ユーザー・インターフェースの選択肢を選択する)。更に他の編集/検討に基づいて、データー・フォーマット規則を更新することもできる。データー・フォーマット規則は、後に使用するためおよび/または変更のために格納することもできる。例えば、ユーザーは、データー・フォーマット規則の適用が、変更した規則に従うように、規則(例えば、スクリプト)を変更することができる。
【0015】
[0022]
図2は、文書に対して行われた編集に基づいてデーターをフォーマットするシステムを示す。図示のように、システム200は、フォーマット処理マネージャー26、アプリケーション・プログラム210、コールバック・コード(callback code)212、およびディスプレイ215を含む。用いられる計算デバイス(1つまたは複数)は、文書に対するユーザーの編集に基づいてデーターを自動的にフォーマットすることに関係する動作を実行するように構成された計算デバイスであればいずれのタイプでもよい。例えば、計算デバイスの一部が、移動体計算デバイス(例えば、セル・フォン、タブレット、スマート・フォン、ラップトップ等)、デスクトップ計算デバイス、およびサーバーであってもよい。
【0016】
[0023] フォーマット処理マネージャー26との通信をし易くするために、
図2ではコールバック・コード212として示されている、1つ以上のコールバック・ルーチンを実装することができる。一実施形態によれば、アプリケーション・プログラム210はスプレッドシート・アプリケーションである。
【0017】
[0024] ディスプレイ215は、スプレッドシート文書220のような文書、および文書と対話処理するために用いられるユーザー・インターフェース・エレメントを表示するように構成されている。図示のように、スプレッドシート220は、名の列(A)、姓の列(B)、および編集後の列(C)を含む3つの列を示す。この例では、ユーザーは編集後の列に編集を行ったところである。セルC2において、ユーザーはその行、即ち、行2に名(セルA2にも収容されている)を入力し、その後にカンマを入力し、更にその後に姓のイニシャル(セルB2にも収容されている)を入力した。セルC3において、ユーザーは、その行、即ち、行3に、名(セルA3にも収容されている)を入力し、その後にカンマを入力し、更にその後に姓のイニシャル(セルB3にも収容されている)を入力した。
【0018】
[0025] 一般に、フォーマット処理マネージャー26は、あるパターンに当てはまるデーターをユーザーが編集/変更しているときを検出し、このパターンでスプレッドシート内において追加のデーターを記入する(fill down)ことができ更にこれらのデーターに適用することができる場合、データー・フォーマット規則を適用したことから得られた結果で、列に自動的に記入する。編集に応答して、フォーマット処理マネージャー26は、この編集に伴う情報を用いて、データー・フォーマット規則を得て、これをスプレッドシート内の他のデーターに適用する。一実施形態によれば、この情報は、編集されたセル(例えば、セルC2およびC3)内に表示されているテキストに対する編集から得られた出力例と、この編集に関連がある入力例とを含む。この場合、列Aおよび列Bは、編集列(例えば、セルA2およびB2は出力例C2に対する入力例であり、セルA3およびB3は出力例C3に対する入力例である)に関係がある入力例を含む。これらの入力/出力例は、フォーマット処理マネージャー26によって決定され、他の同様にフォーマットされたセル(例えば、セルC4:C7(222))にデーター・フォーマット規則を生成するプロセスに供給される。機械学習発見的方法は、これら1組の入力/出力例を得て、パターンを決定し、データー・フォーマット規則を生成し、次いで、フォーマット処理マネージャー26がこのデーター・フォーマット規則を出力範囲に適用して、新たにフォーマットされた値を生成する。一実施形態によれば、機械学習発見的方法の一例が、"Automating String Processing in Spreadsheets Using Input-Output Examples"(入力−出力例を用いたスプレッドシートにおける文字列処理の自動化)(Sumit Gulwani, PoPL'11, January 26-28, 2011, Austin Texas)に記載されている。他の機械学習発見的方法も利用することができる。一般に、元のデーターおよびデーター編集を取り込み、同様にフォーマットされたデーターを得るために他のデーターに適用することができるデーター・フォーマット規則を生成する発見的方法であればいずれでも用いることができる。一実施形態によれば、機械学習発見的方法の機能は、フォーマット処理マネージャー26に含まれる。この機能は、他の場所に配置してもよい。
【0019】
[0026] フォーマット処理マネージャー26は、自動的にデーター・フォーマット規則を、スプレッドシート内部で同様にフォーマットされている他のセルに適用する。一実施形態によれば、データー・フォーマット規則は、編集列の内、この列で記入されるセルの出力範囲に自動的に適用される。現在の例では、出力範囲はセルC4:C7を含む。ボックス222は、データー・フォーマット規則をセルC4:C7に適用した結果、セルC5およびC6の中に値が入力されたことを示す。一実施形態によれば、出力範囲に適用するデーター・フォーマット規則は動的である。言い換えると、出力範囲内で値が編集されると、追加の入力/出力例(1つまたは複数)を用いてデーター・フォーマット規則が更新される。
【0020】
[0027] データー・フォーマット規則は、セルの各々に0個以上の値を生成することができる。例えば、セルC4およびC7には値は戻されない。何故なら、B列の対応するセルには名前がないからである。データー・フォーマット規則が値に確信がない場合、データー・フォーマット規則によって1つよりも多い潜在的な結果を生成することもできる。一実施形態によれば、データーを自動的に再フォーマットする前に、所定数のセルにデーター・フォーマット規則を適用して、フォーマット規則を適用することによって、所定の信頼度閾値を満たすまたはこれを超える結果を生成しているか否か判断する。例えば、所定数のセルにフォーマット規則を適用した結果、低い信頼度しか得られない場合、このデーター・フォーマット規則を自動的に適用しない。一実施形態によれば、データー・フォーマット規則を出力範囲内にあるセルに適用し、1の答えを有するセルの割合を判定する。一実施形態によれば、ゼロの答えを有するセルの割合を、計算から除外する。割合が所定の閾値(例えば、70%)よりも高い場合、データー・フォーマット規則によって得られた結果を用いて、出力範囲におけるセルに自動的に記入する。閾値が満たされない場合、結果をセルに適用してはならず、新たなデーター・フォーマット規則を作成する前に更に多くの編集を求める。あるいは、結果を適用してもよく、信頼度が閾値よりも低いことを示すセルに、セルおよびインディケーター(例えば、強調、フォーマット)を適用すればよい。データー・フォーマット規則をセルに適用することによって一意の結果が得られたなら、これは、そのデーター・フォーマット規則が精度高い結果を生成していることの正しいインディケーターになる。データー・フォーマット規則が精度高い結果を生成しているか否か判断するためには、他の閾値および/または規則を用いてもよい。
【0021】
[0028] ユーザーの編集に基づいて、多くのタイプのデーター・フォーマット規則を作成することができる。例えば、2つの列の連結、列からの情報抽出(例えば、アドレスから最上位ドメイン・ネームを抽出する、電子メール・アドレスを抽出する)等があげられる。一般に、データー・フォーマット規則は、いずれの編集活動に基づいても計算することができる。場合によっては、2つ以上の入力/出力例を用いて、精度が高い結果を生成することもできる。例えば、機械学習発見的方法は、2つの例を用いる場合には、50%の精度に過ぎないが、3つの例を用いると95%の精度になることもある。
【0022】
[0029] また、データー・フォーマット規則は、ユーザー・インターフェース内における選択(例えば、アイコン224)に基づいて得ることもでき、または他の何らかのメニュー選択肢を選択することもできる。編集例は、ユーザーによって手作業で選択してもよく(例えば、ユーザーがセルの例を選択する)、および/またはフォーマット処理マネージャー26によって例を自動的に決定してもよい。例えば、フォーマット処理マネージャー26がデーターを監視し、そのデーターから入力/出力例を決定するのでもよい(例えば、値の個数が最も少ない列を出力列として考慮することができ、残りの列を入力列として考慮することができる)。
【0023】
[0030]
図3から
図6は、ユーザーの編集に基づいてセルをフォーマットする例を示す。
[0031]
図3は、ユーザーの列に対する編集に基づいてデーター・フォーマット規則を決定し、その列内にある他のセルにこのデーター・フォーマット規則を適用することを示す。図示のように、ユーザーはスプレッドシート310の姓名列(C)に対して編集を行っている。この例では、ユーザーは名のイニシャルをタイプ入力し、それに続いてピリオドおよび空白をタイプ入力し、その後に姓をタイプ入力した。姓は、スプレッドシート310の列Aに収容されており、名のイニシャルはスプレッドシートの列Bに収容されている。ユーザーがセルC2およびC3に対して編集を行ったことに応答して、機械学習発見的方法によってデーター・フォーマット規則が生成され、この文書内における他のセルに適用することができる。
【0024】
[0032] この例では、入力/出力例は、編集された行毎に、C列におけるテキストと、AおよびB列におけるテキストとを含む。入力データーを決定するには、この文書を操作して、データー・フォーマット規則の適用において用いることができるデーターを突き止め、所望の結果を作成するとよい。この場合、データー・フォーマット規則は、列Bから名のイニシャルおよび列Aから姓を得て、更に名のイニシャルの後にピリオド・キャラクターと空白キャラクターとを挿入する規則を作成する。出力範囲312は、このデーター・フォーマット規則を適用すべきセルを示す。
【0025】
[0033] スプレッドシート320を参照すると、データー・フォーマット規則を自動的に適用することによって、セルC3:C6に、名のイニシャル、それに続くピリオドおよび空白、更にこれらに続く姓を含む姓名(name)が得られることが分かる。セルC7には記入されない。何故なら、名(first name)の列が空白であるので、このデーター・フォーマット規則を適用しても、精度高い結果が得られなかったからである。
【0026】
[0034] また、スプレッドシート320は、ユーザー・インターフェース・エレメントの検討322も示す。これは、データー・フォーマット規則の適用によって行われた変更を受け入れる/拒否するために用いることができる。また、誤りユーザー・インターフェース・エレメント324も、データー・フォーマット規則が適用されなかった場所(この場合、名前の列からのデーターがない)、またはデーター・フォーマット規則の適用が高精度であるとは判断されなかった位置の近くに置かれている(ユーザー・インターフェース・エレメントの検討および誤り補正ユーザー・インターフェース・エレメントに関するこれ以上の論述については、
図6および関連する論述を参照のこと)。
【0027】
[0035]
図4は、社会保障番号の列の中にある項目に対してユーザーが編集を行う例を示す。ユーザーは、社会保障番号のフォーマットを「XXXXXXXXX」から「XXX−XX−XXXX」に変更した(ここで、Xは0から9まえのいずれかの数値である)。他の例では、キャラクターは、数値以外のキャラクターでもよい。一実施形態によれば、ユーザーが2通り以上の編集を行った後、フォーマット処理マネージャーによって入力/出力例が用いられて、この列における他のデーターに適用されるデーター・フォーマット規則を生成する。この例では、入力例は、セルA2およびA3に収容されていた元のテキストであり、出力例は、セルA2およびA3に示される編集済みのテキストである。入力/出力例を提出する前に、これよりも多い編集または少ない編集を収集してもよい。例えば、場合によっては(この例のような)、1つの入力/出力例でも、精度高いデーター・フォーマット規則を生成するには十分なこともある。更に複雑な編集のシナリオでは、もっと多くの入力/出力例を用いてもよい。更に、ユーザーによって行われた追加の編集を、フォーマット処理マネージャーによってデーター・フォーマット規則を更新するために用いてもよい。データー・フォーマット規則をセルA4:A7に適用すると、ディスプレイ420によって示されるようなスプレッドシートが得られる。一実施形態によれば、既にデーターを収容しているセルは、自動的に変更されない。代わりに、提案された変更が、データーを収容しているセルに行われる前に、これらの変更を肯定的に受け入れることをユーザーに要請することもできる。これらのセルも自動的に変更して、ユーザーにはこの変更を元に戻す機会を与えるのでもよい。
【0028】
[0036]
図5は、ユーザーが日付けのフォーマットを変更する編集を行う例を示す。ユーザーは、スプレッドシート510において2つの日付けのフォーマットを、「MM/DD/CCYY」から「MM/DD/YY」というフォーマットに変更した。
【0029】
[0037] この例では、ユーザーは、セルA4およびA3における日付けのフォーマットを変更した。この入力例は、セルA3およびA4における元のテキストを含み、出力例は、ディスプレイ520のセルA3およびA4に示されているような、編集後のテキストを含む。生成されたデーター・フォーマット規則を適用すると、ディスプレイ520が得られる。図示のように、この編集は、同様にフォーマットされたデーターの範囲内ではどこにでも行うことができ、このデーター・フォーマット規則を適用すると、
図2から
図4において示したように記入する(fill down)だけでなく、他のセル(例えば、セルA2)にも適用することができる。
【0030】
[0038]
図6は、項目のフォーマット処理において対話話処理するために用いることができるユーザー・インターフェース・エレメントを示す。図示のように、スプレッドシート610は、検討ユーザー・インターフェース・エレメント612および618、ならびに誤り訂正ユーザー・インターフェース・エレメント614および616を示す。
【0031】
[0039] セルが一貫性のない値を有するとき、および/または精度が高いと判断されないというフラグが立てられたとき、このセルには誤り訂正ユーザー・インターフェース・エレメントを付けることができる。一実施形態によれば、データーに一貫性がないセルとは、セルの値がデーター・フォーマット規則が生成したはずのものと一致しない、またはセルの中にある値はデーター・フォーマット規則によって生成されたが1つよりも多い可能な結果があることを意味する。決定した出力範囲にデーター・フォーマット規則を適用したなら直ちに、一貫性のない結果にはいずれもフラグが立てられる。一実施形態によれば、結果に一貫性がないと見なされるのは、可能な結果の数が1つ以上または以下であるとき(例えば、結果がないか、またはデーター・フォーマット規則によって2つ以上の結果が得られる)、あるいは既存の値が、データー・フォーマット規則によって与えられる結果と一貫性がないときである。他の発見的方法を用いることもできる。例えば、結果の数が所定数の結果よりも多いときに結果を一貫性がないと見なすこともでき、および/または他の何らかの条件によって結果を一貫性がないと見なすこともできる。
【0032】
[0040] 誤り訂正ユーザー・インターフェース・エレメントを選択することができる。選択すると、誤り訂正ユーザー・インターフェース・エレメントは、種々の選択可能な選択肢(630)を表示する。一実施形態によれば、これらの選択項目は、「次」選択肢、「前」選択肢、「ヘルプ」選択肢、「無視」選択肢、「受け入れ」選択肢、「セル内編集」選択肢、「誤りチェック」選択肢、および「可能な値」選択肢を含む。メニュー630内には、これよりも多い選択肢または少ない選択肢を含むこともできる。「次」選択肢は、誤りの印が付けられた次のセルに移動する。「前」選択肢は、直前の誤りに移動する。「ヘルプ」選択肢は、ヘルプの表示を行う。「無視」選択肢は、現在の誤りを無視して、誤り訂正ユーザー・インターフェース・エレメントをディスプレイから消す。「受け入れ」選択肢は、誤り状態を取り払い、そのセルに対して関連する入力/出力例を追加して、新たなデーター・フォーマット規則を生成する。「セル内編集」選択肢は、ユーザーをこのセルにおける編集モードに導く。ユーザーがこれらの誤りセルの1つ以上を編集すると、この編集は入力/出力例として扱われ、新たな/更新フォーマット規則を計算する。一実施形態によれば、更新データー・フォーマット規則がこのデーター・フォーマット規則に関係する残りの誤りセルに適用される。「誤りチェック」選択肢は、ユーザーに、誤りチェックに関する種々の選択肢を提供する。「可能な値」選択肢は、選択すると、セルを再フォーマットするときに、他の可能な値のリストを表示する。例えば、データー・フォーマット規則によって生成される各結果を表示することができる。
【0033】
[0041] 検討ユーザー・インターフェース・エレメント612は、データー・フォーマット規則を用いてフォーマットしたセルと対話処理するための種々の選択肢を提示する。一実施形態によれば、検討メニュー620は、「取り消し」選択肢、「やり直し」選択肢、「中止」選択肢、「検討」選択肢、「全部無視」選択肢、「保存」選択肢、および「その他」選択肢を備えている。メニュー620には、これらよりも多いまたは少ない選択肢が含まれてもよい。「取り消し」選択肢は、データー・フォーマット規則をセルに適用する直前にあった状態に、 文書(例えば、データー・フォーマット規則を適用した文書の列)を 戻す。「やり直し」選択肢は、ユーザーによって以前に取り消されたセルにおいてデーターを復元する。「中止」選択肢は、データー・フォーマット規則を適用して自動的に記入する自動挙動を不能にする。「検討」選択肢は、有効なセル(active cell)を現在の変換範囲(例えば、出力範囲)内における最初のセルに、誤りタグと共に設定する。「無視」選択肢は、誤りタグおよび関係のあるあらゆる誤りフォーマットを、現在の記入(fill down)範囲から取り除く。「保存」選択肢は、ユーザーが現在のデーター・フォーマット規則を保存することを可能にする。「保存」選択肢は、入力することができる列(1つまたは複数)、およびいずれかの入力/出力例というような、規則に関する情報を保存する。「その他」選択肢は、他の選択肢を提供する。
【0034】
[0042]
図7は、類例による記入(fill by example)を可能/不能にするユーザー・インターフェースを示す。ディスプレイ700は、ユーザーが類例によるデーター自動記入をオン/オフに切り替えることを可能にする選択肢702を含む。ユーザー・インターフェースには、データー・フォーマット規則を得る前の所望数の編集/選択項目、既存のデーターを確認して/確認せずに上書きするか否か等というような、他の選択肢も含むことができる。
【0035】
[0043] これより
図8を参照して、類例によるデーター・フォーマット処理プロセスの一例について説明する。本明細書において提示するルーチンの論述を読むとき、種々の実施形態の論理動作は、(1)計算システム上で実行するコンピューター実装動作のシーケンスまたはプログラム・モジュールとして、および/または(2)計算システム内部において相互接続された機械の論理回路または回路モジュールとして実現されることは認められてしかるべきである。この実施態様は、本発明を実現する計算システムの性能要件に依存する選択事項である。したがって、例示する論理動作は、本明細書において説明した実施形態を構成するが、動作(operation)、構造的デバイス、作用(act)、またはモジュールと、様々に呼ぶことがある。これらの動作、構造的デバイス、作用、およびモジュールは、ソフトウェア、ファームウェア、特殊目的ディジタル・ロジック、およびそのあらゆる組み合わせで実現することができる。
【0036】
[0044] 開始ブロックの後、プロセス800は動作810に移り、文書内にあるデーターに対して行われた編集を検出する。この編集は、文書に対する編集であればいずれでもよい。一実施形態によれば、編集は、文書(即ち、スプレッドシート、表、リスト)のセルの内、同じデーター・タイプであり同様にフォーマットされたものに収容されているデーターに対して行われる。一般に、列内にある各セルは、同じタイプのデーター(即ち、日付け、住所、名前、番号等)を収容する。これらの項目の各々に適用される編集は、同じタイプの項目を有する他のセルに適用することができるパターンを当てはめる。
【0037】
[0045] 判断動作820に移り、編集の数が所定数の編集を超過し、同様にフォーマットされた他のセルに適用するデーター・フォーマット規則を得るプロセスをトリガーしたか否か判定を行う。一実施形態によれば、データー・フォーマット規則を得ることをトリガーする編集の数は2つである。トリガー点は、他の値に手作業/自動で設定することができる。例えば、トリガー点は、データー・フォーマット規則を文書内にある他の同様のデーター項目に適用する精度の予測に基づくことができる。場合によっては、トリガー点は1にするとよく、一方他の場合では、3以上であるとよいこともある。
【0038】
[0046] トリガー点に達していないとき、本プロセスは動作810に戻り、他の編集が行われたときを検出する。
[0047] トリガー点に達したとき、本プロセスは動作830に進み、入力/出力例を得て、機械発見的方法に供給してデーター・フォーマット規則を求める。入力/出力例は、以前の状態におけるデーターの例、およびデーターの編集に関する後状態におけるデーターの例を与える。例えば、編集が既存のデーターに対するものであるとき、入力例は、編集前のデーターとなり、出力例は編集後のデーターとなる。編集が新たなセルに対するものであるとき、出力例はそのセルにおいて編集されたデーターであり、入力例は、出力の作成に関するデーター(例えば、1つ以上の他の列のデーター)である。
【0039】
[0048] 動作840に移り、データー・フォーマット規則を得る。一実施形態によれば、データー・フォーマット規則は、テキスト入力を(例えば、1つ以上のセルから)受け取りゼロ以上の結果を生成する関数である。データー・フォーマット規則は、ユーザーが行った編集と一致するように、文書内にある同様の項目(例えば、列内にある他のセル)をフォーマットすることを目的とする。
【0040】
[0049] 動作850に移り、出力範囲を決定する。出力範囲は、データー・フォーマット規則を適用すべき項目を特定する。例えば、他の項目は、ユーザーによって項目が編集され、データー・フォーマット規則の基本となった列の中にあるセルの全部または一部であってもよい。例の中には、出力範囲が、列内において同じ項目タイプ(例えば、日付け、数、アドレス等)を有するセルである場合もある。他の例では、出力範囲は、互いに隣接する値を有し、編集されたセルに隣接する全てのセルである。
【0041】
[0050] 動作860に進み、データー・フォーマット規則を、決定した出力範囲における項目の各々に適用する。データー・フォーマット規則を適用することによって生成された結果はいずれも、文書に対していかなる変更が行われる前にも、一時的に格納することができる。
【0042】
[0051] 判断動作870に移り、データー・フォーマット規則を適用した結果、精度が高い結果が得られたか否か判定を行う。一実施形態によれば、データー・フォーマット規則を項目に適用したときに戻される結果の数によって、精度を推定する。ある項目についての結果の数がゼロである場合、データー・フォーマット規則は結果を生成するための十分なデーターを有していなかったことになる。結果の数が1よりも大きいとき、結果の精度には問題があることもあり得る。結果の数が1であるとき、その結果は精度が高いと考えられる。高い精度の結果を有すると推定されたセルの数/割合は、信頼閾値を超えたとき(例えば、>70%、80%、90%)を判定するために用いることができる。この信頼度を超えていないとき、本プロセスは動作810に戻り他の編集を検出する。一般に、得られる例が多い程、結果の精度も高くなる。信頼度レベルを超えたとき、本プロセスは動作880に進む。
【0043】
[0052] 動作880において、データー・フォーマット規則を項目の各々に適用したことによって作成された結果を用いて文書を更新する。例えば、1つの結果を有するセルは、その結果を用いて更新される。異なる数の結果を有するセルには、先に論じたように、誤りインディケーターを付けることができる。また、ユーザーがデーター・フォーマット規則の適用に関する種々の動作を実行することを可能にする検討ユーザー・インターフェース・エレメントも表示することができる。
【0044】
[0053] 次いで、本プロセスは終了ブロックに進み、他の動作の処理に戻る。
[0054] 以上の明細書、例、およびデーターは、本発明の構成物(composition)の製造および使用について完全な説明に備えたものである。本発明の多くの実施形態は、本発明の主旨および範囲から逸脱することなく形成することができるので、本発明は以下に添付する特許請求の範囲に属するものとする。