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

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

▶ 富士通株式会社の特許一覧

特許7211297訂正支援プログラム、訂正支援方法、および情報処理装置
<>
  • 特許-訂正支援プログラム、訂正支援方法、および情報処理装置 図1
  • 特許-訂正支援プログラム、訂正支援方法、および情報処理装置 図2
  • 特許-訂正支援プログラム、訂正支援方法、および情報処理装置 図3
  • 特許-訂正支援プログラム、訂正支援方法、および情報処理装置 図4
  • 特許-訂正支援プログラム、訂正支援方法、および情報処理装置 図5
  • 特許-訂正支援プログラム、訂正支援方法、および情報処理装置 図6
  • 特許-訂正支援プログラム、訂正支援方法、および情報処理装置 図7
  • 特許-訂正支援プログラム、訂正支援方法、および情報処理装置 図8
  • 特許-訂正支援プログラム、訂正支援方法、および情報処理装置 図9
  • 特許-訂正支援プログラム、訂正支援方法、および情報処理装置 図10
  • 特許-訂正支援プログラム、訂正支援方法、および情報処理装置 図11
  • 特許-訂正支援プログラム、訂正支援方法、および情報処理装置 図12
  • 特許-訂正支援プログラム、訂正支援方法、および情報処理装置 図13
  • 特許-訂正支援プログラム、訂正支援方法、および情報処理装置 図14
  • 特許-訂正支援プログラム、訂正支援方法、および情報処理装置 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-16
(45)【発行日】2023-01-24
(54)【発明の名称】訂正支援プログラム、訂正支援方法、および情報処理装置
(51)【国際特許分類】
   G06F 16/215 20190101AFI20230117BHJP
【FI】
G06F16/215
【請求項の数】 6
(21)【出願番号】P 2019135880
(22)【出願日】2019-07-24
(65)【公開番号】P2021018768
(43)【公開日】2021-02-15
【審査請求日】2022-04-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100074099
【弁理士】
【氏名又は名称】大菅 義之
(74)【代理人】
【識別番号】100121083
【弁理士】
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【弁理士】
【氏名又は名称】天田 昌行
(72)【発明者】
【氏名】坂巻 慶行
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】特開平04-245319(JP,A)
【文献】特開2013-206003(JP,A)
【文献】特開平06-195328(JP,A)
【文献】特表2003-501711(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
それぞれに複数のフィールドが対応づけられたレコードが登録されている第1のデータおよび第2のデータを、所定のフィールドで外部結合し、
前記第1のデータに登録されている第1のレコードの前記フィールドの文字列と、前記第2のデータのうちで結合相手の見つからなかった第2の未結合レコードの前記フィールドの文字列との間の距離を、異なる複数の種別の入力デバイスごとのキー配列に基づいて決定し、
前記複数の種別の入力デバイスごとのキー配列に基づき決定した前記距離に基づいて、前記複数の種別のうちから前記第2のデータの入力に用いられた入力デバイスの種別を判定し、
前記第2のデータの入力に用いられた入力デバイスとして判定された種別の入力デバイスのキー配列に基づき決定した前記距離に基づいて、前記第1のレコードと前記第2の未結合レコードとを対応づける、
処理を、情報処理装置に実行させる訂正支援プログラム。
【請求項2】
前記決定する処理は、前記複数の種別の入力デバイスごとに、前記第1のレコードの前記フィールドの文字列の入力にかかる入力操作の回数と、前記第2の未結合レコードの前記フィールドの文字列の入力にかかる入力操作の回数との差を示す値に更に基づいて前記距離を決定する、請求項1に記載の訂正支援プログラム。
【請求項3】
前記判定する処理は、前記第1のレコードのそれぞれについて前記距離が最小となる第2の未結合レコードを特定し、特定した第2の未結合レコードとの最小の距離の分布に基づいて、前記複数の種別の入力デバイスのうちから前記第2のデータの入力に用いられた入力デバイスの種別を判定する、請求項1または2に記載の訂正支援プログラム。
【請求項4】
前記判定する処理は、更に、前記複数の種別の入力デバイスのうちから、前記第1のレコードのそれぞれについて特定された第2の未結合レコードとの最小の距離を代表する代表値が所定の条件を満たして小さい種別の入力デバイスを特定し、特定した種別の入力デバイスのうちから、前記最小の距離の分布に基づいて、前記第2のデータの入力に用いられた入力デバイスの種別を判定する、請求項3に記載の訂正支援プログラム。
【請求項5】
それぞれに複数のフィールドが対応づけられたレコードが登録されている第1のデータおよび第2のデータを、所定のフィールドで外部結合し、
前記第1のデータに登録されている第1のレコードの前記フィールドの文字列と、前記第2のデータのうちで結合相手の見つからなかった第2の未結合レコードの前記フィールドの文字列との間の距離を、異なる複数の種別の入力デバイスごとのキー配列に基づいて決定し、
前記複数の種別の入力デバイスごとのキー配列に基づき決定した前記距離に基づいて、前記複数の種別のうちから前記第2のデータの入力に用いられた入力デバイスの種別を判定し、
前記第2のデータの入力に用いられた入力デバイスとして判定された種別の入力デバイスの前記キー配列に基づき決定された前記距離に基づいて、前記第1のレコードと前記第2の未結合レコードとを対応づける、
ことを含む、情報処理装置が実行する訂正支援方法。
【請求項6】
それぞれに複数のフィールドが対応づけられたレコードが登録されている第1のデータおよび第2のデータを、所定のフィールドで外部結合する結合部と、
前記第1のデータに登録されている第1のレコードの前記フィールドの文字列と、前記第2のデータのうちで結合相手の見つからなかった第2の未結合レコードの前記フィールドの文字列との間の距離を、異なる複数の種別の入力デバイスごとのキー配列に基づいて決定する決定部と、
前記複数の種別の入力デバイスごとのキー配列に基づき決定した前記距離に基づいて、前記複数の種別のうちから前記第2のデータの入力に用いられた入力デバイスの種別を判定する判定部と、
前記判定部で判定された種別の入力デバイスの前記キー配列に基づいて決定された前記距離に基づいて、前記第1のレコードと前記第2の未結合レコードとを対応づける処理部と、
を含む、情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、訂正支援プログラム、訂正支援方法、および情報処理装置に関する。
【背景技術】
【0002】
データマーケットと呼ばれるデータの利活用の場が提供されている。データマーケットでは、データの利用者と提供者が、データを取引する。データマーケットでは、様々なシステムやデバイスから入力されたデータが取引されている。例えば、リレーショナルデータベース(RDB:Relational Database)は、多くのシステムで利用されており、テーブルデータはデータマーケットで流通する基本的なデータ形式の一つである。そして、こうしたデータには、複数のフィールドが対応づけられたレコードが登録されている。
【0003】
データに含まれるフィールドには、例えば、名前、住所、電話番号、アイテム名、作業名といった人手により入力が行われるデータが登録されることがある。そして、人手により入力が行われる場合、入力ミスが発生することがある。
【0004】
これに関し、誤入力の訂正に関連する技術が知られている(例えば、特許文献1から特許文献3)。
【先行技術文献】
【特許文献】
【0005】
【文献】特開平4-245319号公報
【文献】特開2013-206003号公報
【文献】特開平4-71064号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述のように、人手により入力が行われたデータには、入力ミスに起因する誤ったデータが含まれることがある。データに誤りが含まれている場合、利用者が、提供者から提供されるデータを、既存のデータに外部結合して利活用しようとしても、結合相手が見つからないレコードが生じてしまうことがある。この様な場合に、一律的な方法で結合できなかったレコードのデータをクレンジングしようとしても、提供者がデータの入力に用いるデバイスの種類は多種多様であり得、入力デバイスによって入力ミスの発生の仕方が異なるため、難しいことがある。
【0007】
1つの側面では、本発明は、データクレンジングの精度を向上させることを目的とする。
【課題を解決するための手段】
【0008】
本発明の一つの態様の訂正支援プログラムは、それぞれに複数のフィールドが対応づけられたレコードが登録されている第1のデータおよび第2のデータを、所定のフィールドで外部結合し、第1のデータに登録されている第1のレコードのフィールドの文字列と、第2のデータのうちで結合相手の見つからなかった第2の未結合レコードのフィールドの文字列との間の距離を、異なる複数の種別の入力デバイスごとのキー配列に基づいて決定し、複数の種別の入力デバイスごとのキー配列に基づき決定した距離に基づいて、複数の種別のうちから第2のデータの入力に用いられた入力デバイスの種別を判定し、第2のデータの入力に用いられた入力デバイスとして判定された種別の入力デバイスのキー配列に基づき決定した距離に基づいて、第1のレコードと第2の未結合レコードとを対応づける、処理を、情報処理装置に実行させる。
【発明の効果】
【0009】
データクレンジングの精度を向上させることができる。
【図面の簡単な説明】
【0010】
図1】例示的なデータの外部結合を示す図である。
図2】レーベンシュタイン距離を用いた例示的な対応づけを示す図である。
図3】例示的なデータの利活用が行われるシステムを示す図である。
図4】実施形態に係るサーバのブロック構成を例示する図である。
図5】例示的なキーボードのキー配列を示す図である。
図6】例示的なトグル入力のテンキーのキー配列を示す図である。
図7】実施形態に係るキーボードとトグル入力のテンキーとによる距離の算出について説明する図である。
図8】入力デバイスの種別の判定を例示する図である。
図9】実施形態に係るクレンジング候補の提示を例示する図である。
図10】データマーケットのデータの信頼性に基づくランク付けを例示する図である。
図11】実施形態に係るデータの結合候補の提示処理の動作フローを例示する図である。
図12】種別がQWERTY配列のキーボードの入力デバイス情報を例示する図である。
図13】種別がトグル入力のテンキーの入力デバイス情報を例示する図である。
図14】その他の入力デバイスを例示する図である。
図15】実施形態に係るサーバを実現するための情報処理装置のハードウェア構成を例示する図である。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら、本発明のいくつかの実施形態について詳細に説明する。なお、複数の図面において対応する要素には同一の符号を付す。
【0012】
上述のように、データベースなどのデータへの入力が人手で行われることがあり、入力の際に入力ミスが発生することがある。入力ミスと推定されるデータの入力が検知された場合に、正しい入力内容への訂正を促すオートコンプリート機能およびサジェスト機能などが知られているが、こうした誤入力を抑制する技術を用いたとしても、全ての誤入力を抑制することは難しい。そのため、入力ミスにより誤ったデータを含むデータが存在している。そして、入力ミスによる誤ったデータを訂正するために、データクレンジングが行われることがある。なお、データクレンジングとは、例えば、データベースに保存されているデータの中から、重複や誤記、表記の揺れなどを探し出し、削除や修正、正規化などを行い、データの品質を高める処理のことである。
【0013】
以下、例示的な入力の誤りを含むデータのクレンジングについて説明する。例えば、ユーザは、データYを持っているとする。そして、ユーザは、新たにデータXをデータマーケットで購入してデータXをデータYに結合したいと望んでいるとする。
【0014】
図1は、例示的なデータの外部結合を示す図である。図1(a)に示すように、データXとデータYとでは、フィールド:idの列で同じ種別のデータを格納しており、フィールド:idの値を用いて、データXとデータYとを対応づけて結合することが可能である。図1(a)は、データにエラーを含まない場合の例である。この場合、図1(a)に示すようにフィールド:idの値を用いて、データXをデータYに結合することで、データYに含まれるフィールド:名前と、データXに含まれるフィールド:data、およびフィールド:種類の情報と対応づけることができる。
【0015】
しかしながら、データXのフィールド:idの列にエラーが含まれている場合、エラーを含むデータは、idが一致しないため、対応づけられない未結合のレコードが発生することになる。図1(b)は、データXのフィールド:idに、入力エラーが含まれる場合を例示しており、太字で示すデータにはエラーが含まれているものとする。この場合に、データXとデータYとをidで結合しようとしても、図1(b)に示すように、エラーを含むidは、データYと対応づけられないため、上手く結合されず、nullを含む未結合のレコードが生じてしまう。
【0016】
この場合に、データXの未結合のレコードと、データYとの未結合のレコードとの間で、対応づかなかったレコードのidに記載される文字列間の距離を測ることで、未結合のレコードのうちから対応するレコードを特定することが考えられる。なお、データYのデータは、ユーザが既に利活用しているものであり、一例では正しいデータが登録されていると仮定することができる。
【0017】
図2は、レーベンシュタイン距離を用いた例示的な対応づけを示す図である。図2(a)には、図1(b)で述べた外部結合で、対応する結合相手が見つからなかったnullを含む未結合のレコードが示されている。そして、図2(b)では、縦軸にデータX由来の未結合のレコードのidを列挙しており、横軸にデータY由来の未結合のレコードのidを列挙しており、それぞれのidの文字列間でレーベンシュタイン距離が計算されている。レーベンシュタイン距離は、例えば、二つの文字列がどの程度異なっているかを示す距離の一種である。レーベンシュタイン距離は、編集距離とも呼ばれることがある。レーベンシュタイン距離は、例えば、1文字の挿入、削除、置換によって、二つの文字列の一方の文字列を他方の文字列に変形するのにかかる手順の最小回数として定義される。
【0018】
この場合に、例えば、データXの「700#9」は、データYの「70098」と最も距離が短く、図2(c)に示すように、レーベンシュタイン距離を用いて、データXの「700#9」をデータYの「70098」と1対1で対応づけることができる。しかしながら、例えば、データXの「200a2」には、レーベンシュタイン距離が最小の値:2の候補として「20021」と「50052」との2つがある。
【0019】
この場合に、例えば、データXの「200a2」では種類:野菜に対して、データYの「20021」の名前「トマト」と「50052」の「牛肉」とが対応づいている。そのため、ユーザが確認すれば、野菜であるデータYの「20021」の名前「トマト」が正しい対応づけであると推定することができる。しかしながら、この場合、ユーザが1つずつデータを見て判断を行うことになり、ユーザの作業負担が増加してしまう。
【0020】
また、データXの「40042」には、レーベンシュタイン距離が最小の値:2の候補として「30041」と「50052」とがある。この場合に、例えば、データXの「40042」には種類:肉に、データYの「30041」の「豚肉」と「50052」の「牛肉」とが対応づいている。そのため、距離が等しく2であり、また、データの内容を見ても「豚肉」と「牛肉」とはいずれも種類:肉に該当するため、ユーザはどちらが正しいかを判定することができない。
【0021】
このように、レーベンシュタイン距離などの文字列の編集にかかる距離を比較しても、入力ミスを含むレコードの対応づけに十分な情報が得られないことがある。
【0022】
また、提供者がデータの入力に用いる入力デバイスは、例えば、キーボード、スマートフォンのタッチパネル、携帯電話機のボタンなど多種多様であり得、入力デバイスによって、誤入力の発生の仕方も異なる。そのため、一律的な方法でデータをクレンジングしようとしても、難しいことがある。例えば、データの誤入力は、ユーザがキー配列において近いキーを誤って押してしまうことで起こることがある。そのため、例えば、データの入力がキーボードで行われたと仮定して、キー配列におけるキーの近さに基づいてデータ入力の誤りを訂正したとする。この場合、データがキーボード以外の入力デバイスによって入力されていると、データを正しく訂正できないことがある。そのため、データのクレンジング精度を向上させる技術の提供が望まれている。
【0023】
以下で述べる実施形態では、入力に用いられる複数の異なる種別の入力デバイスを想定し、それぞれの種別の入力デバイスごとに、その入力デバイスのキー配列と、入力にかかる操作数とに基づいて、距離を推定する。続いて、入力デバイスの種別ごとの得られた距離に基づいて、そのデータの入力に用いられた入力デバイスの種別を判定する。そして、実施形態では、判定された入力デバイスの種別に基づいて、入力ミスのあったデータのクレンジングを支援する。このように、入力デバイスの種別を特定し、特定した入力デバイスの種別に応じたデータのクレンジングを実行することで、正しくデータを訂正することが可能である。以下、実施形態を更に詳細に説明する。
【0024】
図3は、例示的なデータの利活用が行われるシステム300を示す図である。システム300は、例えば、サーバ301、および端末302を含む。サーバ301は、例えば、データマーケットを提供するサーバコンピュータであってよい。端末302は、例えば、データマーケットにデータを提供する提供者の端末302と、データマーケットのデータを利用する利用者の端末302とを含んでよい。サーバ301と、端末302とは、例えば、ネットワーク305を介して接続されている。
【0025】
図4は、実施形態に係るサーバ301のブロック構成を例示する図である。サーバ301は、例えば、制御部401、記憶部402、および通信部403を含む。制御部401は、例えば結合部411、決定部412、判定部413、処理部414などとして動作する。記憶部402は、例えば、データマーケットで取り扱われるデータ、および後述する入力デバイス情報などの情報を記憶している。通信部403は、制御部401の指示に従って、端末302などの他の装置と通信する。これらの各部の詳細および記憶部402に格納されている情報の詳細については後述する。
【0026】
続いて、入力に用いられる複数の種別の入力デバイスとして、キーボードと、トグル入力のテンキーとを例に実施形態に係るデータの結合処理を説明する。
【0027】
図5は、例示的なキーボードのキー配列を示す図である。なお、図5では、QWERTY配列のキーボードが例示されている。
【0028】
また、図6は、例示的なトグル入力のテンキーのキー配列が例示されている。トグル入力は、例えば、テンキーにて文字入力を行う方法の一種であり、キーに割り当てられている複数の文字を、キーの入力回数によって選択することで、文字の入力が実行される。
【0029】
図7は、実施形態に係るキーボードと、トグル入力のテンキーとによる距離の算出について説明する図である。図7には、図1(b)で述べた外部結合で、結合相手が見つからずnullを含む未結合のレコードが登録されたデータ700が示されている。そして、実施形態では制御部401は、データXの未結合のレコードと、データYの未結合のレコードとの間の距離を、入力デバイスの種別ごとに、キー配列と入力操作の回数とに基づいて決定する。一例では、制御部401は、以下のように距離を決定してよい。
【0030】
まず、キー配列に基づく距離の特定について述べる。例えば、比較対象の2つの文字列の間で、第1の文字が、第2の文字に置き換わっていたとする。この場合に、制御部401は、第1の文字の入力に用いられる第1のキーと、第2の文字の入力に用いられる第2のキーとの間のキー配列上での距離を取得する。キー配列上での距離は、一例では、キー配列上での第1のキーから第2のキーまでの移動で経由するキーの数のうち最小の数であってよい。
【0031】
続いて、入力操作の回数に基づく距離の特定について述べる。制御部401は、例えば、比較対象の2つの文字列のそれぞれの入力にかかる入力操作の回数の差分の大きさを、入力操作の回数に基づく距離として用いてよい。一例として、上述のように、例えば、比較対象の2つの文字列の間で、第1の文字が、第2の文字に置き換わっていたとする。そして、第1の文字の入力には第1のキーが用いられ、また、第2の文字の入力には第2のキーが用いられるとする。この場合に、制御部401は、第1のキーを用いて入力デバイスを何回操作すれば第1の文字が入力されるかを表す第1の入力操作の回数を取得する。また、制御部401は、第2のキーを用いて入力デバイスを何回操作すれば第2の文字が入力されるかを表す第2の入力操作の回数を取得する。そして、制御部401は、第1の入力操作の回数と第2の入力操作の回数との差分の大きさを用いて距離を特定してよい。
【0032】
そして、制御部401は、得られたキー配列上での距離と、入力操作の回数に基づく距離とを用いて、比較対象の2つの文字列の間の距離を特定する。例えば、制御部401は、キー配列上での距離と、入力操作の回数に基づく距離とを足し合わせて比較対象の2つの文字列の間の距離としてよい。
【0033】
以下、距離の算出の例を説明する。図7の左側では、入力デバイスをキーボードと仮定した場合の距離の算出が例示されている。例えば、図7のデータ700において、データXの「200a1」とデータYの「20021」とを比較した場合、「a」と「2」とが置き換わっている。ここで、QWERTY配列のキーボードでは、「a」の入力に用いるキーと、「2」の入力に用いるキーとの間には、キー「q」または「w」が挟まっており、「a」から「2」までのキーの移動ではキーを2つ経由する。そのため、制御部401は、キー配列上での距離を“2”と判定してよい。
【0034】
また、例えば、QWERTY配列のキーボードでは、文字「a」は「a」のキーを押すだけで入力できるため、入力操作回数は“1”であってよい。同様に、QWERTY配列のキーボードでは、文字「2」は「2」のキーを押すだけで入力できるため、こちらも入力操作回数は“1”であってよい。そのため、QWERTY配列のキーボードでの「a」と「2」との入力操作回数の距離は、1-1=0で“0”と算出することができる。
【0035】
従って、入力デバイスの種別をQWERTY配列のキーボードと仮定すると、データXの「200a1」とデータYの「20021」との距離は、キー配列上での距離“2”と、入力操作回数の距離“0”とを可算して“2”と求めることができる。
【0036】
また、データ700において、例えば、データXの「70098」とデータYの「700#9」とでは、「9」と「#」が置き換わっており、また、「8」と「9」が置き換わっている。ここで、QWERTY配列のキーボード上での「9」の入力に用いるキーから「#」の入力に用いるキーまでの移動では、「4」、「5」、「6」、「7」、「8」のキーを経由し、キーの6つ分の距離が離れている。そのため、制御部401は、「9」から「#」までのキー配列上での距離を“6”と判定してよい。また、QWERTY配列のキーボード上での「8」の入力に用いるキーと「9」の入力に用いるキーとは、隣り合っているため、制御部401は、キー配列上での距離を“1”と判定してよい。
【0037】
また、例えば、QWERTY配列のキーボードでは、文字「9」は「9」のキーを押すだけで入力できるため、入力操作回数は“1”であってよい。一方、QWERTY配列のキーボードでの文字「#」の入力では、shiftキーで修飾した状態で「3」のキーを押して入力を行うため、「#」の入力操作回数は“2”であってよい。そのため、入力操作回数の距離は、2-1=1で“1”と算出することができる。一方、QWERTY配列のキーボードでは、文字「8」および文字「9」は、どちらもキーを押すだけで入力できるため、入力操作回数の距離は、1-1=0で“0”と算出することができる。
【0038】
従って、例えば、「70098」と「700#9」との距離は、「9」から「#」までのキー配列上での距離“6”と、「8」と「9」とのキー配列上での距離“1”に、入力操作回数の距離“1”を足し合わせ、6+1+1=8で“8”と算出することができる。なお、QWERTY配列のキーボードでは、大文字(例えば、「A」など)の入力や、「#」などの一部の記号の入力にshiftキーによる修飾が行われる。このように、入力の際に他のキーの修飾が行われる場合、制御部401は、入力操作回数に、修飾キーの操作回数(例えば、1回など)を可算してよい。
【0039】
続いて、入力デバイスがトグル入力のテンキーであると仮定した場合の距離の算出について説明する。図7の右側は、入力デバイスがトグル入力のテンキーであると仮定した場合の距離の算出を例示している。
【0040】
上述のように、図7のデータ700において、データXの「200a1」とデータYの「20021」とを比較した場合、「a」と「2」とが置き換わっている。ここで、トグル入力のテンキーでは、「a」の入力に用いるキーと、「2」の入力に用いるキーとは同じであるため、制御部401は、キー配列上での距離を“0”と判定してよい。
【0041】
また、例えば、トグル入力のテンキーでは、文字「2」は、テンキーの「2」を1度押せば入力できるため、入力操作回数は“1”であってよい。一方、トグル入力のテンキーでは、文字「a」は、テンキーの「2」を2度押して入力するため、入力操作回数は“2”となる。そのため、トグル入力のテンキーでの「a」と「2」との入力操作回数の距離は、2-1=1で“1”と算出することができる。
【0042】
従って、入力デバイスの種別を、トグル入力のテンキーと仮定してデータXの「200a1」とデータYの「20021」との距離を求めた場合、その距離は、キー配列上での距離“0”と、入力操作回数の距離“1”とを可算して“1”と求めることができる。
【0043】
また、図7のデータ700において、例えば、データXの「70098」とデータYの「700#9」とでは、「9」と「#」が置き換わっており、また、「8」と「9」が置き換わっている。ここで、トグル入力のテンキーでは「9」の入力に用いるキーと、「#」の入力に用いるキーとは、隣り合っているため、制御部401は、「9」から「#」までのキー配列上での距離を“1”と判定してよい。
【0044】
また、例えば、トグル入力のテンキーでは、文字「9」は、テンキーの「9」を1度押せば入力できるため、入力操作回数は“1”であってよい。一方、トグル入力のテンキーでは、文字「#」もテンキーの「#」を1度押せば入力できるため、入力操作回数は“1”となる。そのため、トグル入力のテンキーでの「9」と「#」との入力操作回数の距離は、1-1=0で“0”と算出することができる。
【0045】
従って、トグル入力のテンキーでの「9」と「#」との間の距離は、キー配列上での距離を“1”に入力操作回数の距離“0”を可算して、“1”と求めることができる。
【0046】
また、トグル入力のテンキーでは「9」の入力に用いるキーと、「8」の入力に用いるキーとは、隣り合っているため、制御部401は、「9」から「8」までのキー配列上での距離を“1”と判定してよい。
【0047】
また、例えば、トグル入力のテンキーでは、文字「9」は、テンキーの「9」を1度押せば入力できるため、入力操作回数は“1”であってよい。一方、トグル入力のテンキーでは、文字「8」もテンキーの「8」を1度押せば入力できるため、入力操作回数は“1”となる。そのため、トグル入力のテンキーでの「9」と「8」との入力操作回数の距離は、1-1=0で“0”と算出することができる。
【0048】
従って、データXの「70098」とデータYの「700#9」との間の距離は、トグル入力のテンキーでの「9」と「#」との間の距離“1”と、トグル入力のテンキーでの「9」と「8」との間の距離“1”とを可算して、“2”と求めることができる。
【0049】
例えば、以上のようにして、入力デバイスの種別ごとに、文字列間の距離を見積もることができる。そして、制御部401は、以上のように、入力デバイスのそれぞれの種別を仮定して求めた距離に基づいて、入力デバイスの種別を推定する。例えば、制御部401は、入力デバイスのそれぞれの種別ごとに計算した最小距離の分布に基づいて、入力デバイスの種別を判定してよい。
【0050】
図8は、入力デバイスの種別の判定を例示する図である。図8(a)には、キーボードで算出された文字列間の距離のテーブルが示されている。ここで、データXのそれぞれのレコードでの最小の距離は、以下である。
「200a1」と「20021」との距離:2
「300g1」と「30041」との距離:3
「40042」と「30041」(または、「50052」)との距離:2
「700#9」と「70098」との距離:8
【0051】
この最小距離の分布を表したグラフが図8(a)の下段に示されており、キーボードでは、最小距離の値:2が2回、最小距離の値:3および8がそれぞれ1回ずつ検出されている。
【0052】
また、図8(b)には、トグル入力のテンキーで算出された文字列間の距離のテーブルが示されている。そして、データXのそれぞれのレコードでの最小の距離は、以下である。
「200a1」と「20021」との距離:1
「300g1」と「30041」との距離:1
「40042」と「50052」とでは距離:2
「700#9」と「70098」とでは距離:2
【0053】
この最小距離の分布を表したグラフが図8(b)の下段に示されており、トグル入力のテンキーでは、最小距離の値:1が2回、および最小距離の値:2が2回検出されている。
【0054】
ここで、データXの入力に用いられた入力デバイスで距離が求められた場合、文字列間の距離は、全体的に似通った値を示す可能性が高く、分散は小さくなることが推定される。そのため、制御部401は、例えば、最小距離の頻度の分布において分散の小さい入力デバイスを、文字列の入力に用いられた入力デバイスとして判定してよい。また、データXの入力に用いられた入力デバイスで距離が求められた場合、文字列間の距離は、全体的に小さな値に抑えられることが推定される。そのため、制御部401は、例えば、最小距離の頻度の分布において、最小距離が全体的に小さい入力デバイスを、文字列の入力に用いられた入力デバイスとして判定してよい。一例では、制御部401は、最小距離の頻度の分布において、最小距離を代表する平均値または中央値などの代表値を特定してよい。そして、制御部401は、代表値が所定の閾値以下であるなどの所定の条件を満たして小さい値を示す入力デバイスを、文字列の入力に用いられた入力デバイスとして判定してよい。更には、制御部401は、これらの分散と代表値の条件とを組み合わせて入力デバイスを判定してもよい。一例では、制御部401は、例えば、最小距離の平均値または中央値などの代表値が所定の閾値以下である入力デバイスのうちから、最小距離の分散が最小の入力デバイスを文字列の入力に用いられた入力デバイスとして判定してもよい。
【0055】
例えば、図8の例では、キーボードよりも、トグル入力のテンキーの方が、最小距離の分散も平均値も小さいため、制御部401は、データXの入力に用いられた入力デバイスをキーボードではなく、トグル入力のテンキーと判定してよい。そして、制御部401は、判定された種別の入力デバイスについて求めたデータ間の距離に基づいて、クレンジング候補を決定してよい。
【0056】
図9は、実施形態に係るクレンジング候補の提示を例示する図である。図9(a)に示すように、制御部401は、入力デバイスの種別ごとに算出した距離を用いて、最小の距離となる文字列間での距離の分布から、入力デバイスを判定する。そして、図9(b)に示すように、制御部401は、判定した入力デバイスの文字列間の距離に基づいて、文字列を対応づける。例えば、制御部401は、図9(c)に示すように、文字列間の距離が最小である文字列同士を対応づけてクレンジング候補としてよい。
【0057】
なお、データYのデータは、ユーザが既に利活用しているものであり、一例では誤りを含んでいないものと仮定することができる。一方、データXは、例えば、データマーケットから入手するデータであり、誤りを含まれると仮定することができる。そのため、制御部401は、例えば、最小の距離を有するペアとして特定されたデータXの文字列を、それと対応するデータYの文字列に自動で修正してよい。なお、別の実施形態では、対応づけたペアを候補として表示装置の表示画面などに表示して、ユーザに訂正の実行の有無を選択させてもよい。
【0058】
また、以上の実施形態で述べた文字列間の最小距離の分散、および最小距離の代表値は、データマーケットに登録されている複数のデータの信頼性の評価にも用いることができる。
【0059】
例えば、制御部401が、データマーケットに登録されているデータのうちで、結合対象のフィールドを含むデータを抽出したとする。続いて、制御部401は、抽出されたデータと、所持しているデータとを、結合対象のフィールドのデータを用いて外部結合する。更に、実施形態では、制御部401は、結合できなかった未結合のレコードについては、入力デバイスの種別ごとにキー配列と、入力操作の回数とに基づいて文字列間で距離を求める。そして、制御部401は、得られた距離が最小となる文字列間での最小距離の分散や最小距離の代表値に基づいてデータマーケットのデータの入力に用いられた入力デバイスの種別を判定する。この場合に、制御部401は、判定した種別の入力デバイスでの最小距離の分散や最小距離の代表値に基づいて、データマーケットのデータの信頼性を評価してもよい。例えば、判定した種別の入力デバイスでの最小距離の分散、および最小距離の代表値が小さいほど、判定された入力デバイスでユーザが入力操作を行った場合に、正しいデータの入力に近い操作で入力を行っていると推定することができる。そのため、制御部401は、例えば、判定した種別の入力デバイスでの最小距離の分散、および最小距離の代表値の少なくとも一方が小さいほど、データの信頼度を高く評価してよい。
【0060】
図10は、データマーケットのデータの信頼性に基づくランク付けを例示する図である。図10(a)では、データマーケットに登録されているデータのうちで、結合対象のフィールドを含むデータの一覧が示されている。データの並び順は、一例では、データの信頼度に応じて並べられていてよい。データの信頼度は、判定した種別の入力デバイスでの最小距離の分散、および最小距離の代表値の少なくとも一方が小さいほど高く評価されてよく、データの一覧では、評価が高いほど上位に表示されるようにデータは並べ替えられてよい。
【0061】
また、例えば、ユーザがデータの一覧のうちからデータを選択した場合、制御部401は、図10(b)の表示画面を表示してよい。図10(b)には、例えば、図9(c)で例示したクレンジングのためのデータの対応づけを示すテーブルが示されている。ユーザは、表示画面に表示されたテーブルを参照することで、クレンジングのためのデータの対応づけが正しいかなどを確認することができる。
【0062】
続いて、図11を参照して、実施形態に係るデータの結合候補の提示処理を説明する。図11は、実施形態に係るデータの結合候補の提示処理の動作フローを例示する図である。サーバ301の制御部401は、例えば、利用者の端末302からのアクセスを受けると、図11の動作フローを開始してよい。
【0063】
ステップ1101(以降、ステップを“S”と記載し、例えば、S1101と表記する)において制御部401は、利用者からのデータYの入力を受け付ける。
【0064】
S1102において、制御部401は、利用者からのデータYと結合可能なデータをデータマーケットに登録されているデータのうちから検索する。例えば、制御部401は、データYの外部結合に用いる所定のフィールドと対応するフィールドを含むデータを、データマーケットのデータのうちから検索してよい。そして、検索の結果、例えば、データYと結合可能なデータXがi個見つかったものとする。
【0065】
続く、S1103からS1111までの処理は、見つかったデータXごとに実行される繰り返し処理である。S1103において制御部401は、見つかったi個のデータXのうちから未選択のデータXを1つ選択する。
【0066】
S1104において制御部401は、選択されたデータXと、データYとの外部結合を実行する。例えば、制御部401は、データXとデータYとの間で共通した内容を含む所定のフィールドの値に基づいて、2つのデータを外部結合してよい。
【0067】
続く、S1105からS1108までの処理は、異なる複数の種別の入力デバイスの種別ごとに実行される繰り返し処理である。S1105において制御部401は、予め設定されている異なる複数の種別の入力デバイスのうちから未選択の種別を1つ選択する。
【0068】
S1106において制御部401は、選択された種別の入力デバイスのキー配列の情報と、入力操作の回数の情報とに基づいて、外部結合で結合できなかったデータXの未結合のレコードと、データYのレコードとの所定のフィールドの文字列間の距離を計算する。なお、距離の計算に用いるデータYのレコードは、全てのレコードであってもよいし、未結合レコードを対象としてもよい。
【0069】
S1107において制御部401は、外部結合で結合できなかったデータXの未結合のレコードのそれぞれについて、距離が最小となるデータYのレコードを特定し、その距離を、データXの未結合のレコードと対応する最小距離として特定する。最小距離の特定は、例えば、図7を参照して上述したように実行されてよい。
【0070】
S1108において制御部401は、全ての種別の入力デバイスを選択し終わっているか否かを判定する。S1108において全ての種別の入力デバイスを選択し終わっていない場合、フローはS1105に戻り、未選択の種別の入力デバイスを選択して処理を繰り返す。一方、S1108において全ての種別の入力デバイスを選択し終わっている場合、フローはS1109に進む。
【0071】
S1109において制御部401は、データXの未結合のレコードごとに特定した最小距離の分布を、入力デバイスの種別ごとに解析し、その結果に基づいて、選択したデータXの入力に用いられた入力デバイスの種別を判定する。入力デバイスの種別の判定は、例えば、図8を参照して述べたように、最小距離の分散や代表値に基づいて実行することができる。
【0072】
S1110において制御部401は、判定した入力デバイスの種別において計算された最小距離に基づいて、データXの未結合のレコードに対して結合するデータYのレコードを、クレンジングのペアとして決定する。制御部401は、例えば、最小距離のペアを、クレンジングのペアとして決定してよい。なお、クレンジング候補のペアの決定は、これに限定されるものではなく、その他の手法で決定されてもよい。例えば、別の実施形態では、制御部401は、距離の短い方から所定の数のペアを、クレンジング候補のペアとして決定してもよいし、所定の距離以下のペアをクレンジング候補のペアとして決定してもよい。
【0073】
S1111において制御部401は、結合可能な全てのデータXを選択し終わっているか否かを判定する。S1111において結合可能な全てのデータXを選択し終わっていない場合、フローはS1103に戻り、未選択のデータXを選択して処理を繰り返す。一方、S1111において結合可能な全てのデータXを選択し終わっている場合、フローはS1112に進む。
【0074】
S1112において制御部401は、結合可能なデータXの情報を利用者の端末302に提示し、本動作フローは終了する。端末302は、例えば、結合可能なデータXの情報を受信すると、備えた表示装置に図10(a)に例示する情報などを表示装置の表示画面に表示させてよい。なお、制御部401は、例えば、図10(a)の説明で上述したように、結合可能なデータXについて求めた最小距離の分散や代表値に基づいて、データXをランク付けしてよい。また、制御部401は、例えば、結合可能なデータXを利用者の端末302に提示する際に、図10(b)に示すように、クレンジングのペアの情報を利用者に提示してもよい。
【0075】
以上の図11の動作フローによれば、制御部401は、入力デバイスのキー配列と操作入力の回数とに基づいて、結合に用いるフィールドの文字列間の距離を取得し、その分散や代表値に基づいて入力デバイスの種別を判定することができる。このように、入力デバイスごとの入力操作に関する情報を用いてフィールドの文字列間の距離を評価するため、単純な文字列の比較により算出される距離よりも、高い精度でクレンジングのペアを特定することが可能である。
【0076】
なお、実施形態では記憶部402は、例えば、異なる複数の種別の入力デバイスごとに、キー配列の情報と、入力操作の回数の情報とを含む入力デバイス情報を記憶していてよい。
【0077】
図12は、種別がQWERTY配列のキーボードの入力デバイス情報を例示する図である。図12(a)には、QWERTY配列のキーボードのキー配列が示されており、また、図12(b)には、QWERTY配列のキーボードでの文字の入力にかかる操作回数の情報が示されている。
【0078】
また、図13は、種別がトグル入力のテンキーの入力デバイス情報を例示する図である。図13(a)には、トグル入力のテンキーのキー配列が示されており、また、図13(b)には、トグル入力のテンキーでの文字の入力にかかる操作回数の情報が示されている。
【0079】
そして、実施形態では、例えば、以上に例示する入力デバイス情報が記憶部402に記憶されていてよい。しかしながら、実施形態に係る入力デバイス情報はこれに限定されるものではない。入力デバイス情報は、上述のキー配列における2つのキーの間の距離および入力操作回数の距離を特定可能であれば、その他の形式であってもよい。
【0080】
以上で述べたように、実施形態によれば、入力デバイスのキー配列に基づいて文字列間の距離を求めるため、単純に文字列の比較を行う場合よりも、差が生じ易くなり、クレンジングのペアの特定精度を向上させることができる。また同様に、実施形態によれば、入力デバイスの入力操作の回数に基づいて文字列間の距離を求めるため、単純に文字列の比較を行う場合よりも、差が生じ易くなり、クレンジングのペアの特定精度を向上させることができる。
【0081】
また、実施形態によれば、複数の種別の入力デバイスについて求めた距離を用いて、入力デバイスの種別を判定し、判定された入力デバイスで求めた距離を用いてクレンジングのペアを特定する。そのため、データクレンジングの精度を向上させることができる。
【0082】
以上において、実施形態を例示したが、実施形態はこれに限定されるものではない。例えば、上述の動作フローは例示であり、実施形態はこれに限定されるものではない。可能な場合には、動作フローは、処理の順番を変更して実行されてもよく、別に更なる処理を含んでもよく、または、一部の処理が省略されてもよい。例えば、上述の図11の処理では、データマーケットから結合可能な複数のデータXを抽出し、それぞれに処理を実行する例が示されている。しかしながら、実施形態はこれに限定されるものではない。例えば、別の実施形態では、図11のS1102からS1103とS1111からS1112の処理は省略されてもよい。この場合、制御部401は、S1104においてユーザが指定した所定のデータYとの外部結合を実行してもよい。
【0083】
また、例えば、上述の実施形態では、QWERTY配列のキーボードおよびトグル入力のテンキーを入力デバイスの例として用いているが、実施形態で利用可能な入力デバイスの種別はこれらに限定されるものではない。例えば、別の実施形態では、Dvorak配列などのその他のキー配列を有するキーボードであってもよいし、または、テンキーも図14に示すように、電卓型のテンキー配列であっても、電話型のテンキー配列であってもよい。また、入力操作の回数についても、フリック入力などその他の入力方式について入力操作の回数が算出されてもよい。
【0084】
また、上述の実施形態では、キー配列における距離および入力操作の回数の距離との2つを用いて、文字列間の距離を決定する例を述べたが、実施形態はこれに限定されるものではない。別の実施形態では、制御部401は、キー配列における距離および入力操作の回数の距離のいずれか一方を用いて文字列間の距離を特定してもよい。その場合には、記憶部402にも、キー配列の情報、および入力操作の回数についての情報のうちで、距離の算出に用いる一方が記憶されていればよい。
【0085】
なお、上述の実施形態において、例えば、S1104の処理では制御部401は、結合部411として動作する。また、例えば、S1106の処理では制御部401は、決定部412として動作する。例えば、S1109の処理では制御部401は、判定部413として動作する。例えば、S1110の処理では制御部401は、処理部414として動作する。
【0086】
図15は、実施形態に係るサーバ301を実現するためのコンピュータなどの情報処理装置1500のハードウェア構成を例示する図である。図15の情報処理装置1500のハードウェア構成は、例えば、プロセッサ1501、メモリ1502、記憶装置1503、読取装置1504、通信インタフェース1506、および入出力インタフェース1507を備える。なお、プロセッサ1501、メモリ1502、記憶装置1503、読取装置1504、通信インタフェース1506、入出力インタフェース1507は、例えば、バス1508を介して互いに接続されている。
【0087】
プロセッサ1501は、例えば、シングルプロセッサであっても、マルチプロセッサやマルチコアであってもよい。プロセッサ1501は、例えば、メモリ1502を利用して上述の動作フローの手順を記述したプログラムを実行することにより、上述した制御部401の一部または全部の機能を提供する。例えば、サーバ301のプロセッサ1501は、記憶装置1503に格納されているプログラムを読み出して実行することで、結合部411、決定部412、判定部413、および処理部414として動作する。
【0088】
メモリ1502は、例えば半導体メモリであり、RAM領域およびROM領域を含んでいてよい。記憶装置1503は、例えばハードディスク、フラッシュメモリ等の半導体メモリ、または外部記憶装置である。なお、RAMは、Random Access Memoryの略称である。また、ROMは、Read Only Memoryの略称である。
【0089】
読取装置1504は、プロセッサ1501の指示に従って着脱可能記憶媒体1505にアクセスする。着脱可能記憶媒体1505は、例えば、半導体デバイス(USBメモリ等)、磁気的作用により情報が入出力される媒体(磁気ディスク等)、光学的作用により情報が入出力される媒体(CD-ROM、DVD等)などにより実現される。なお、USBは、Universal Serial Busの略称である。CDは、Compact Discの略称である。DVDは、Digital Versatile Diskの略称である。
【0090】
例えば、上述のサーバ301の記憶部402は、メモリ1502、記憶装置1503、および着脱可能記憶媒体1505を含んでよい。サーバ301の記憶装置1503には、例えば、例えば、データマーケットで取り扱われるデータ、および入力デバイス情報が記憶されていてよい。
【0091】
通信インタフェース1506は、例えば、プロセッサ1501の指示に従ってネットワークを介してデータを送受信する。通信インタフェース1506は、上述の通信部403の一例である。入出力インタフェース1507は、例えば、入力装置および出力装置との間のインタフェースであってよい。入力装置は、例えばユーザからの指示を受け付けるキーボードやマウスなどのデバイスである。出力装置は、例えばディスプレーなどの表示装置、およびスピーカなどの音声装置である。
【0092】
実施形態に係る各プログラムは、例えば、下記の形態でサーバ301に提供される。
(1)記憶装置1503に予めインストールされている。
(2)着脱可能記憶媒体1505により提供される。
(3)プログラムサーバなどのサーバから提供される。
【0093】
なお、上述の実施形態ではサーバ301が、図11の動作フローを実行する例を述べたが、実施形態はこれに限定されるものではない。例えば、別の実施形態では、利用者または提供者の端末302などのその他の情報処理装置が、図11の動作フローの全部または一部の処理を実行してもよい。
【0094】
また、図15を参照して述べた情報処理装置1500のハードウェア構成は、例示であり、実施形態はこれに限定されるものではない。例えば、上述の機能部の一部または全部の機能がFPGAおよびSoCなどによるハードウェアとして実装されてもよい。なお、FPGAは、Field Programmable Gate Arrayの略称である。SoCは、System-on-a-chipの略称である。
【0095】
以上において、いくつかの実施形態が説明される。しかしながら、実施形態は上記の実施形態に限定されるものではなく、上述の実施形態の各種変形形態および代替形態を包含するものとして理解されるべきである。例えば、各種実施形態は、その趣旨および範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、前述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態が実施され得ることが理解されよう。更には、実施形態に示される全構成要素からいくつかの構成要素を削除してまたは置換して、或いは実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施され得ることが当業者には理解されよう。
【符号の説明】
【0096】
300 :システム
301 :サーバ
302 :端末
305 :ネットワーク
401 :制御部
402 :記憶部
403 :通信部
411 :結合部
412 :決定部
413 :判定部
414 :処理部
1500 :情報処理装置
1501 :プロセッサ
1502 :メモリ
1503 :記憶装置
1504 :読取装置
1505 :着脱可能記憶媒体
1506 :通信インタフェース
1507 :入出力インタフェース
1508 :バス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15