JPWO2007132564A1 - データ処理装置及び方法 - Google Patents

データ処理装置及び方法 Download PDF

Info

Publication number
JPWO2007132564A1
JPWO2007132564A1 JP2008515434A JP2008515434A JPWO2007132564A1 JP WO2007132564 A1 JPWO2007132564 A1 JP WO2007132564A1 JP 2008515434 A JP2008515434 A JP 2008515434A JP 2008515434 A JP2008515434 A JP 2008515434A JP WO2007132564 A1 JPWO2007132564 A1 JP WO2007132564A1
Authority
JP
Japan
Prior art keywords
data
distance
database
eigenvalue
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008515434A
Other languages
English (en)
Other versions
JP5049965B2 (ja
Inventor
良記 伊藤
良記 伊藤
広樹 谷岡
広樹 谷岡
Original Assignee
株式会社ジャストシステム
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社ジャストシステム filed Critical 株式会社ジャストシステム
Priority to JP2008515434A priority Critical patent/JP5049965B2/ja
Publication of JPWO2007132564A1 publication Critical patent/JPWO2007132564A1/ja
Application granted granted Critical
Publication of JP5049965B2 publication Critical patent/JP5049965B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

あるデータに類似するデータを高速に検索する技術を提供する。データ取得部41が対象データを取得すると、検索部42が、対象データがデータベース60に存在するか否かを検索する。データベース60に存在しなければ、まず、要素数比較部44が、対象データとの要素数の差が所定値以上であるデータを候補から除外する。次に、固有数値比較部45が、対象データの固有数値を算出し、固有数値間の偽距離が所定値以上であるデータを候補から除外する。さらに、使用要素比較部46が、対象データとの使用要素の差が所定値以上であるデータを候補から除外する。編集距離算出部47は、絞り込まれたデータに対して、対象データとの間の編集距離を算出し、編集距離が所定値以下であるデータを類似するデータとして抽出する。候補提示部48は、抽出された候補データをユーザに提示する。

Description

本発明は、データ処理技術に関し、特に、あるデータに類似するデータを検索する技術に関する。
ワードプロセッサなどに設けられる機能の一つに、英単語のスペルミスや誤字脱字などを検出し、修正候補を提示するスペルチェッカーがある。従来のスペルチェッカーは、ユーザが陥りやすいミスのパターンなどをルール化し、スペルミスを検出したときには、ルールに基づいて修正候補を抽出して提示していた。
しかし、ユーザが、必ずしもルール化されたパターンと同じミスをするとは限らないので、適切な修正候補を推測できない場合もある。より客観的で高速なアルゴリズムにより、類似するデータを抽出する技術が求められる。
本発明はこうした状況に鑑みてなされたものであり、その目的は、あるデータに類似するデータを高速に検索する技術を提供することにある。
本発明のある態様は、データ処理装置に関する。このデータ処理装置は、対象データがデータベースに格納されているか否かを検索する検索部と、前記対象データが前記データベースに格納されていなかった場合に、前記対象データに類似する候補データを前記データベースから抽出する抽出部と、を備え、前記抽出部は、前記対象データと前記データベースに格納されたデータとの間の距離を算出し、前記距離が所定の上限よりも小さいデータを前記候補データとして抽出する距離算出部と、前記距離算出部が前記距離を算出する前に、データの構成要素を複数のグループに分類したとき、それぞれのグループに属する構成要素が前記対象データに含まれるか否かを前記グループごとに表した固有数値を算出し、前記対象データの固有数値と前記データベースに格納されているデータの固有数値との間の偽距離を算出し、前記偽距離が前記所定の上限よりも大きいデータを、前記距離算出部が前記距離を算出する対象から除外する固有数値比較部と、を含むことを特徴とする。
この態様によると、データ間の距離を利用して、客観的に類似するデータを抽出することができる。また、データ間の距離を算出する前に、各データに定義された固有数値の間の偽距離を利用して計算の対象となるデータを絞り込むことにより、高速に類似するデータを抽出することができる。
前記固有数値は、前記グループの数と同じ桁数の二進数であってもよく、前記固有数値比較部は、それぞれの前記グループに対してビットを割り当て、グループに属する構成要素がデータに含まれる場合はそのグループに割り当てられたビットを「1」とし、含まれない場合はそのグループに割り当てられたビットを「0」として、前記固有数値を算出してもよい。前記固有数値比較部は、2つの固有数値の間の偽距離を算出するときに、一方の固有数値をビット反転した後に両者の論理積を演算したビット列に含まれる「1」の数と、他方の固有数値をビット反転した後に両者の論理積を演算したビット列に含まれる「1」の数とのうち大きい方を前記偽距離としてもよい。前記固有数値比較部は、2つの固有数値の間の偽距離を算出するときに、2つの固有数値のビット列のうち「1」が多い方の固有数値をビット反転した後に両者の論理積を演算したビット列に含まれる「1」の数を前記偽距離としてもよい。
前記抽出部は、前記固有数値比較部が前記偽距離を算出する前に、構成要素数の差が前記所定の上限を超えるデータを、前記固有数値比較部が前記偽距離を算出する対象から除外する要素数比較部を更に含んでもよい。前記抽出部は、前記距離算出部が前記距離を算出する前に、前記対象データに含まれ、かつ、前記データベースに格納されたデータに含まれない構成要素の数と、前記データベースに格納されたデータに含まれ、かつ、前記対象データに含まれない構成要素の数とを算出し、いずれかが前記所定の上限を超えるデータを、前記距離算出部が前記距離を算出する対象から除外する使用要素比較部を更に含んでもよい。これにより、更に高速に類似するデータを抽出することができる。
前記データベースは、前記データを、前記構成要素数ごと、かつ、前記固有数値ごとに分類して格納してもよい。これにより、データベースの検索効率を向上させることができ、検索に要する時間を短縮することができる。また、同様に、類似するデータをデータベースから抽出する効率及び速度を向上させることができる。
データ処理装置は、前記対象データ、前記候補データとして抽出されたデータ、又は前記候補データの中からユーザにより選択されたデータを、同じ固有数値を持つデータ群の中で上位に配置させる学習部を更に備えてもよい。前記対象データ、前記候補データとして抽出されたデータ、又は前記候補データの中からユーザにより選択されたデータと同じ固有数値を持つデータ群を、同じ構成要素数のデータ群の中で上位に配置させる学習部を更に備えてもよい。これにより、データベースの検索効率を向上させることができる。また、類似するデータの候補を提示するときに、よく使われるデータがより上位になるように表示順を最適化することができる。
前記距離算出部は、構成要素の挿入、削除、又は置換によって、一方のデータを他方のデータに変形するのに必要な手順の最小回数を算出して前記距離としてもよい。
本発明の別の態様も、データ処理装置に関する。このデータ処理装置は、データベースに格納するデータ群を取得し、取得したデータ群において、各データを構成する構成要素の使用頻度を算出する使用頻度算出部と、前記使用頻度に基づいて、前記構成要素を複数のグループに分類する分類生成部と、各データに対して、前記グループに属する構成要素が前記対象データに含まれるか否かを前記グループごとに表した固有数値を算出する固有数値算出部と、前記データ群に含まれるデータを、使用している要素数及び前記固有数値で分類して前記データベースに格納するデータソート部と、を備えることを特徴とする。
前記固有数値は、前記グループの数と同じ桁数の二進数であってもよく、前記固有数値算出部は、それぞれの前記グループに対してビットを割り当て、グループに属する構成要素がデータに含まれる場合はそのグループに割り当てられたビットを「1」とし、含まれない場合はそのグループに割り当てられたビットを「0」として、前記固有数値を算出してもよい。
本発明の更に別の態様は、データ処理方法に関する。このデータ処理方法は、対象データがデータベースに格納されているか否かを検索するステップと、前記対象データが前記データベースに格納されていなかった場合に、前記対象データに類似する候補データを前記データベースから抽出するステップと、を備え、前記抽出するステップは、前記対象データと前記データベースに格納されたデータとの間の距離を算出し、前記距離が所定の上限よりも小さいデータを前記候補データとして抽出するステップと、前記距離を算出する前に、データの構成要素を複数のグループに分類したとき、それぞれのグループに属する構成要素が前記対象データに含まれるか否かを前記グループごとに表した固有数値を算出し、前記対象データの固有数値と前記データベースに格納されているデータの固有数値との間の偽距離を算出し、前記偽距離が前記所定の上限よりも大きいデータを、前記距離を算出する対象から除外するステップと、を含むことを特徴とする。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、あるデータに類似するデータを高速に検索する技術を提供することができる。
実施の形態に係るデータ処理装置の構成を示す図である。 構成要素の分類を示す図である。 データベースの内部データの例を示す図である。 要素数比較部により候補が絞り込まれたデータを示す図である。 固有数値比較部により候補が絞り込まれたデータを示す図である。 使用要素比較部により候補が絞り込まれたデータを示す図である。 編集距離算出部により抽出された候補データを示す図である。 実施の形態に係るデータ処理方法の手順を示すフローチャートである。
符号の説明
10 データ処理装置、30 データベース生成部、31 使用頻度算出部、32 分類生成部、33 固有数値算出部、34 データソート部、41 データ取得部、42 検索部、43 候補抽出部、44 要素数比較部、45 固有数値比較部、46 使用要素比較部、47 編集距離算出部、48 候補提示部、49 学習部、60 データベース。
実施の形態に係るデータ処理装置は、対象データがデータベース中に存在するか否かを検索し、存在しない場合は、データベース中から類似するデータを抽出して提示する。例えば、英単語が登録された辞書データベースを用いて、英単語のスペルが正しいか否かをチェックし、正しくないと判定されたときには修正候補を提示するスペルチェッカー機能を提供することができる。また、DNAの塩基配列が登録されたDNAデータベースを用いて、異なる生物種が持つ同様の遺伝子を同定したり、またそれらの距離を測ることで種が分岐してから経過した時間を推定したりする機能を提供することができる。さらに、画像や音楽等のデータベースを用いて、類似する画像や音楽等を抽出することができる。
本実施の形態では、類似するデータを抽出するために、対象データと、データベースに登録されたデータの間の「距離」を算出し、距離が近いもの同士を類似していると判定する。データ間の距離は、データ間の差異を反映するものであればよく、例えば、ハミング距離(信号距離)、レーベンシュタイン距離(編集距離)など、既知の技術を利用可能である。また、スミス・ウォーターマンアルゴリズムなどを用いて、局所アライメントの類似度を計算してもよい。以下、編集距離を利用して英単語のスペルチェックを行う例について説明する。
編集距離は、文字の挿入や削除、置換によって、一つの文字列を別の文字列に変形するのに必要な手順の最小回数であり、一般に、動的計画法によるアルゴリズムを用いて計算できる。しかし、スペルチェッカーの精度を向上させるために、辞書に多くの英単語を登録すればするほど、編集距離を計算する対象が増える。1つの英単語のスペルミスを検出するために、その単語に対して、辞書に登録された全ての英単語との間の編集距離を算出して修正候補を提示すると、修正候補を提示するまでに多くの時間を要し、かえってユーザの利便性を損なうおそれがある。
本実施の形態では、編集距離を実際に計算する前に、類似度の低いものを予め計算の対象から除外し、対象を絞り込んでから編集距離を算出することにより、辞書の登録数が増加しても短時間で修正候補を抽出して提示する技術を提案する。本実施の形態では、各データに固有数値を定義して、固有数値間の偽距離を算出することによりデータ間のおおまかな距離を測定し、この偽距離が所定の上限を超えるものを予め除外する。
図1は、実施の形態に係るデータ処理装置の構成を示す。データ処理装置10は、データベース生成部30、データ取得部41、検索部42、候補抽出部43、候補提示部48、学習部49、データベース60を含む。データベース生成部30は、使用頻度算出部31、分類生成部32、固有数値算出部33、データソート部34を含む。候補抽出部43は、要素数比較部44、固有数値比較部45、使用要素比較部46、及び編集距離算出部47を含む。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
まず、英単語の辞書データを格納したデータベース60を生成する手順について説明する。使用頻度算出部31は、データベース60に格納すべきデータの集合を取得し、データ集合の内部において、各要素がどの程度多くのデータに使用されているかを算出する。この例では、使用頻度算出部31は、英単語のリストを取得すると、それらの英単語に使用されている文字の使用頻度を算出する。一つのデータに同じ要素が複数回使用されている場合には、本実施の形態では、使用頻度を1とカウントするが、データの内容によっては、使用されている要素の回数分カウントしてもよい。
分類生成部32は、データに使用される要素を複数のグループに分類する。このとき、分類生成部32は、各分類に属する要素の使用頻度の合計がほぼ均一になるように要素を分類する。例えば、10個の英単語のリストにおいて、「a」が8回、「b」が4回、「c」が6回、「d」が10回使用されている場合、「a」と「c」、「b」と「d」の2つのグループに分類すると、各分類に属する文字の使用頻度の合計は、いずれも14回となり、均一になる。分類生成部32が、要素をいくつのグループに分類するかは、後述する検索や候補の抽出の効率を考慮して決定される。本実施の形態では、説明を簡略化するために、図2に示すように、26文字のアルファベットを5つのグループに分類する。
固有数値算出部33は、それぞれのデータに対して、分類生成部32により分類された分類の数と同じ桁数のビット列で構成される固有数値を算出する。固有数値算出部33は、各分類に対して1つのビットを割り当て、その分類に属する要素がデータに使用されていれば、その分類に割り当てられたビットを「1」とし、使用されていなければ、その分類に割り当てられたビットを「0」とする。本実施の形態では、図2に示すように、アルファベットを5つのグループに分類しているので、固有数値は5ビットの2進数となる。英単語に、「a」、「b」、「c」、「d」、「e」のいずれかの文字が使用されていれば、最上位から「1」ビット目のビットを「1」とし、使用されていなければ「0」とする。同様に、英単語に、「f」から「j」のいずれかの文字が使用されていれば、最上位から「2」ビット目のビットを「1」とし、使用されていなければ「0」とする。このようにして、固有数値算出部33は、リストに含まれる全ての英単語の固有数値を算出する。例えば、英単語「test」の固有数値は「10010」となる。
データソート部34は、データ集合に含まれるデータを、使用している要素数でソートし、さらに、同じ要素数のデータ集合内で、同じ固有数値を持つデータをまとめる。すなわち、英単語のリストは、文字数によりソートされ、さらに、同じ文字数の英単語は、固有数値により分類される。このようにして、英単語の辞書データが生成される。生成された辞書データの例を図3に示す。
つづいて、英単語のスペルをチェックする手順について説明する。データ取得部41は、検索対象となるデータを取得する。ここでは、スペルチェックの対象となる英単語を取得する。検索部42は、取得したデータがデータベース60に存在するか否かを検索する。ここでは、前述したように、データベース60に格納された辞書には英単語が文字数でソートされ、かつ、固有数値で分類されて格納されているので、検索部42は、取得した英単語の文字数と固有数値を算出し、データベース60中の該当するレコードを検索する。例えば、データ取得部41が「test」という英単語を取得した場合、検索部42は、要素数が「4」で固有数値が「10010」であるレコードのみを検索すればよい。これにより、効率よくデータを検索することができる。
取得したデータがデータベース60に存在すれば、処理を終了する。存在しなければ、候補抽出部43は、データベース60に存在するデータの中で、取得したデータに類似するものを抽出する。スペルチェックの場合は、取得した英単語がデータベース60に存在しなければ、スペルミスの可能性があるので、候補抽出部43が修正候補を抽出する。候補抽出部43は、データ間の距離に基づいて類似度を判定し、距離が所定の値よりも近いデータを候補として抽出する。以下、対象データ「tewt」との編集距離が2以下である英単語を抽出する例について説明する。
要素数比較部44は、対象データの要素数を算出し、データベース60中のデータと比較する。編集距離がn以下のデータを抽出する場合、要素数の差がn+1以上であるデータは、編集距離を算出するまでもなく候補から除外される。したがって、要素数比較部44は、対象データ「tewt」の文字数が「4」であることから、文字数が「1」の英単語と、文字数が「7」以上の英単語を候補から除外する。これにより、図3に示したデータベース60のデータは、要素数という大分類により、図4に示すように絞り込まれる。
固有数値比較部45は、対象データの固有数値を算出し、データベース60中のデータと比較する。固有数値比較部45は、対象データの固有数値と、データベース60中のデータの固有数値との間の「偽距離」を以下のようにして算出し、算出された「偽距離」が、候補として抽出すべき編集距離の上限よりも大きいデータは候補から除外する。なお、以下で説明する固有数値間の偽距離は、距離公理のうち対称性を満たさないので、偽距離と呼んでいる。
固有数値比較部45は、一方の固有数値をビット反転した後に両者の論理積を演算したビット列に含まれる「1」の数と、他方の固有数値をビット反転した後に両者の論理積を演算したビット列に含まれる「1」の数とのうち大きい方を偽距離とする。例えば、対象データ「tewt」の固有数値「10011」と、固有数値「00100」との間の偽距離を算出すると、まず、前者「10011」の反転「01100」と後者「00100」との論理積「00100」の「1」の数は「1」である。また、後者「00100」の反転「11011」と前者「10011」との論理積「10011」の「1」の数は「3」である。したがって、「1」と「3」の大きい方である「3」が、固有数値「10011」と「00100」の間の偽距離となる。
固有数値間のハミング距離ではなく偽距離を計算するのは、データ間の編集距離を算出するときに、置換処理を「1」と数えるからである。データの削除、挿入のみを考慮する場合はハミング距離でもよいが、置換を考慮する場合は、固有数値間の排他的論理和から得られるハミング距離を編集距離の上限と比較してデータの候補を絞り込むと、編集距離が上限を超えていないデータまで除外してしまう可能性がある。例えば、文字列「afp」の固有数値は「11010」であり、文字列「up」の固有数値は「00011」である。これらの排他的論理和は「11001」であるから、固有数値間のハミング距離は「3」である。しかし、「afp」の「a」を「u」に置換し、「f」を削除すると、「up」になることから、データ間の編集距離は「2」である。したがって、固有数値間のハミング距離は、データ間の編集距離よりも大きくなる可能性がある。それに対して、上述の偽距離を算出すると、「afp」の固有数値の反転「00101」と「up」の固有数値「00011」の論理積は「00001」であり、後者の反転「11100」と前者「11010」の論理積は「11000」であるから、固有数値間の偽距離は「2」である。このように、固有数値間の偽距離は、データ間の編集距離を超えないので、データの絞り込みに利用することができる。
固有数値比較部45は、2つの固有数値の間の偽距離を算出するときに、2つの固有数値のビット列のうち「1」が多い方の固有数値をビット反転した後に両者の論理積を演算したビット列に含まれる「1」の数を偽距離としてもよい。例えば、対象データ「tewt」の固有数値「10011」と、固有数値「00100」との間の距離を算出すると、まず、後者の固有数値の方が「1」の数が少ないのでこれをビット反転し、「11011」を得る。これと「10011」の論理積を計算すると「10011」となり、「1」の数は「3」となる。これは、編集距離の上限「2」よりも大きいので、固有数値比較部45は、固有数値が「11011」である英単語を候補から除外する。これにより、図4に示した候補のデータは、固有数値という中分類により、さらに図5に示すように絞り込まれる。
使用要素比較部46は、対象データの構成要素と、データベース中のデータの構成要素とを比較する。使用要素比較部46は、対象データに使用されている要素と、データベース60中のデータに使用されている要素との違いを算出し、算出された違いが、候補として抽出すべき編集距離の上限よりも大きいデータは候補から除外する。使用要素比較部46は、対象データが使用していて、データベース60中のデータが使用していない要素の数と、データベース60中のデータが使用していて、対象データが使用していない要素の数を算出し、いずれかが編集距離の上限を超えていれば、そのデータを候補から除外する。例えば、対象データ「tewt」とデータ「word」の使用要素の違いは次のようになる。対象データ「tewt」に使用されていてデータ「word」に使用されていない要素は、「t」、「e」の2つであり、データ「word」に使用されていて対象データ「tewt」に使用されていない要素は、「o」、「r」、「d」の3つである。したがって、両者の使用要素の違いは「3」であり、編集距離の上限「2」よりも大きいので、データ「word」は候補から除外される。これにより、図5に示した候補のデータは、さらに図6に示すように絞り込まれる。
編集距離算出部47は、以上のように絞り込まれた候補に対して、対象データとの間の編集距離を算出し、編集距離が所定の値よりも近いデータを候補として抽出する。編集距離算出部47に代えて、信号距離やスミスウォーターマンアルゴリズムによる類似度など、他の方式でデータ間の距離や類似度を算出する構成を設けてもよい。一般に、距離は、データ間の類似性が高いほど小さい値となり、類似度は、データ間の類似性が高いほど大きい値となるが、ここでは、類似性が高いことを「距離が近い」と表現している。したがって、編集距離を算出する場合は、算出された値が所定の上限よりも小さいデータを抽出し、類似度を算出する場合は、算出された値が所定の下限よりも大きいデータを抽出する。以上の手順により、図7に示した候補データが抽出される。
候補提示部48は、候補抽出部43により抽出された候補をユーザに提示する。候補提示部48は、算出された距離が近いデータが上位になるように表示するのが好ましい。これにより、より類似性の高い候補を上位に表示することができる。候補提示部48は、算出された距離の値とともに候補データを提示してもよい。これにより、ユーザが提示された候補データの中からデータを選択する際に、距離の値を参照して類似性を判断することができる。提示された候補データの中からユーザにより選択されたデータがワードプロセッサなどに対して出力される。
学習部49は、候補抽出部43により抽出された候補データや、その後ユーザにより選択されたデータが、データベース60の上位に配置されるようにデータを並び替えて、データベース60を学習させる。学習部49は、対象データ、候補データとして抽出されたデータ、又は候補データの中からユーザにより選択されたデータと同じ固有数値を持つデータ群を、同じ構成要素数のデータ群の中で上位に配置されるように移動させる。さらに、学習部49は、対象データ、候補データとして抽出されたデータ、又は候補データの中からユーザにより選択されたデータを、同じ固有数値を持つデータ群の中で上位に配置されるように移動させる。これにより、使用されているデータや、使用されているデータに類似するデータとして抽出又は選択されたデータが、次回以降の検索において、より早く検索対象となるようにすることができ、検索の効率及び速度を向上させることができる。また、候補提示部48が候補データを提示する際に、使用、抽出、又は選択される頻度の高いデータがより上位になるように表示順を最適化することができる。これにより、ユーザの利便性を向上させることができる。
要素数、固有数値、使用要素を比較する処理は、編集距離を算出するよりも高速に行うことができるので、編集距離の算出に先立って、これらの処理により予め候補を絞り込むことで、類似するデータを抽出する処理を高速化することができる。要素数、固有数値、使用要素を比較する処理は、この順で処理時間が長くなるので、より高速な処理を先に実行することで、絞り込みの効率を向上させることができ、類似するデータを抽出する処理を更に高速化することができる。
図8は、実施の形態に係るデータ処理方法の手順を示すフローチャートである。まず、データ取得部41が対象データを取得すると(S10)、検索部42が、対象データがデータベース60に存在するか否かを検索する(S14)。データベース60に存在しなければ(S14のN)、候補抽出部43が対象データに類似するデータをデータベース60から抽出する。まず、要素数比較部44が、対象データに使用されている要素の数を算出し、要素数の差が所定値以上であるデータを候補から除外して対象を絞り込む(S16)。次に、固有数値比較部45が、対象データの固有数値を算出し、固有数値間の偽距離が所定値以上であるデータを候補から除外して対象を絞り込む(S18)。さらに、使用要素比較部46が、対象データに使用されている要素とデータベース60のデータに使用されている要素を比較して、所定値以上の差があるデータを候補から除外して対象を絞り込む(S20)。編集距離算出部47は、絞り込まれたデータに対して、対象データとの間の編集距離を算出し、編集距離が所定値以下であるデータを類似するデータとして抽出する(S22)。候補提示部48は、抽出された候補データをユーザに提示する(S24)。データベース60に対象データが存在していた場合は(S14のY)、類似するデータを抽出する処理をスキップする。学習部49は、対象データ、又は対象データに類似するデータとして抽出されたデータ、又は抽出されたデータの中からユーザにより選択されたデータが、データベース60の上位に配置されるように、データベース60における位置を移動させて、データベース60を学習させる(S26)。
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
本発明は、あるデータに類似するデータを抽出するデータ処理装置に利用可能である。

Claims (14)

  1. 対象データがデータベースに格納されているか否かを検索する検索部と、
    前記対象データが前記データベースに格納されていなかった場合に、前記対象データに類似する候補データを前記データベースから抽出する抽出部と、を備え、
    前記抽出部は、
    前記対象データと前記データベースに格納されたデータとの間の距離を算出し、前記距離が所定の上限よりも小さいデータを前記候補データとして抽出する距離算出部と、
    前記距離算出部が前記距離を算出する前に、データの構成要素を複数のグループに分類したとき、それぞれのグループに属する構成要素が前記対象データに含まれるか否かを前記グループごとに表した固有数値を算出し、前記対象データの固有数値と前記データベースに格納されているデータの固有数値との間の偽距離を算出し、前記偽距離が前記所定の上限よりも大きいデータを、前記距離算出部が前記距離を算出する対象から除外する固有数値比較部と、
    を含むことを特徴とするデータ処理装置。
  2. 前記固有数値は、前記グループの数と同じ桁数の二進数であり、前記固有数値比較部は、それぞれの前記グループに対してビットを割り当て、グループに属する構成要素がデータに含まれる場合はそのグループに割り当てられたビットを「1」とし、含まれない場合はそのグループに割り当てられたビットを「0」として、前記固有数値を算出することを特徴とする請求項1に記載のデータ処理装置。
  3. 前記固有数値比較部は、2つの固有数値の間の偽距離を算出するときに、一方の固有数値をビット反転した後に両者の論理積を演算したビット列に含まれる「1」の数と、他方の固有数値をビット反転した後に両者の論理積を演算したビット列に含まれる「1」の数とのうち大きい方を前記偽距離とすることを特徴とする請求項2に記載のデータ処理装置。
  4. 前記固有数値比較部は、2つの固有数値の間の偽距離を算出するときに、2つの固有数値のビット列のうち「1」が多い方の固有数値をビット反転した後に両者の論理積を演算したビット列に含まれる「1」の数を前記偽距離とすることを特徴とする請求項2に記載のデータ処理装置。
  5. 前記抽出部は、前記固有数値比較部が前記偽距離を算出する前に、構成要素数の差が前記所定の上限を超えるデータを、前記固有数値比較部が前記偽距離を算出する対象から除外する要素数比較部を更に含むことを特徴とする請求項1から4のいずれかに記載のデータ処理装置。
  6. 前記抽出部は、前記距離算出部が前記距離を算出する前に、前記対象データに含まれ、かつ、前記データベースに格納されたデータに含まれない構成要素の数と、前記データベースに格納されたデータに含まれ、かつ、前記対象データに含まれない構成要素の数とを算出し、いずれかが前記所定の上限を超えるデータを、前記距離算出部が前記距離を算出する対象から除外する使用要素比較部を更に含むことを特徴とする請求項1から5のいずれかに記載のデータ処理装置。
  7. 前記データベースは、前記データを、構成要素数ごと、かつ、前記固有数値ごとに分類して格納することを特徴とする請求項1から6のいずれかに記載のデータ処理装置。
  8. 前記対象データ、前記候補データとして抽出されたデータ、又は前記候補データの中からユーザにより選択されたデータを、同じ固有数値を持つデータ群の中で上位に配置させる学習部を更に備えることを特徴とする請求項7に記載のデータ処理装置。
  9. 前記対象データ、前記候補データとして抽出されたデータ、又は前記候補データの中からユーザにより選択されたデータと同じ固有数値を持つデータ群を、同じ構成要素数のデータ群の中で上位に配置させる学習部を更に備えることを特徴とする請求項7に記載のデータ処理装置。
  10. 前記距離算出部は、構成要素の挿入、削除、又は置換によって、一方のデータを他方のデータに変形するのに必要な手順の最小回数を算出して前記距離とすることを特徴とする請求項1から9のいずれかに記載のデータ処理装置。
  11. データベースに格納するデータ群を取得し、取得したデータ群において、各データを構成する構成要素の使用頻度を算出する使用頻度算出部と、
    前記使用頻度に基づいて、前記構成要素を複数のグループに分類する分類生成部と、
    各データに対して、前記グループに属する構成要素がデータに含まれるか否かを前記グループごとに表した固有数値を算出する固有数値算出部と、
    前記データ群に含まれるデータを、使用している要素数及び前記固有数値で分類して前記データベースに格納するデータソート部と、
    を備えることを特徴とするデータ処理装置。
  12. 前記固有数値は、前記グループの数と同じ桁数の二進数であり、前記固有数値算出部は、それぞれの前記グループに対してビットを割り当て、グループに属する構成要素がデータに含まれる場合はそのグループに割り当てられたビットを「1」とし、含まれない場合はそのグループに割り当てられたビットを「0」として、前記固有数値を算出することを特徴とする請求項11に記載のデータ処理装置。
  13. 対象データがデータベースに格納されているか否かを検索するステップと、
    前記対象データが前記データベースに格納されていなかった場合に、前記対象データに類似する候補データを前記データベースから抽出するステップと、を備え、
    前記抽出するステップは、
    前記対象データと前記データベースに格納されたデータとの間の距離を算出し、前記距離が所定の上限よりも小さいデータを前記候補データとして抽出するステップと、
    前記距離を算出する前に、データの構成要素を複数のグループに分類したとき、それぞれのグループに属する構成要素が前記対象データに含まれるか否かを前記グループごとに表した固有数値を算出し、前記対象データの固有数値と前記データベースに格納されているデータの固有数値との間の偽距離を算出し、前記偽距離が前記所定の上限よりも大きいデータを、前記距離を算出する対象から除外するステップと、
    を含むことを特徴とするデータ処理方法。
  14. 対象データがデータベースに格納されているか否かを検索する機能と、
    前記対象データが前記データベースに格納されていなかった場合に、前記対象データに類似する候補データを前記データベースから抽出する機能と、をコンピュータに実現させ、
    前記抽出する機能は、
    前記対象データと前記データベースに格納されたデータとの間の距離を算出し、前記距離が所定の上限よりも小さいデータを前記候補データとして抽出する機能と、
    前記距離を算出する前に、データの構成要素を複数のグループに分類したとき、それぞれのグループに属する構成要素が前記対象データに含まれるか否かを前記グループごとに表した固有数値を算出し、前記対象データの固有数値と前記データベースに格納されているデータの固有数値との間の偽距離を算出し、前記偽距離が前記所定の上限よりも大きいデータを、前記距離を算出する対象から除外する機能と、
    を含むことを特徴とするデータ処理プログラム。
JP2008515434A 2006-05-13 2007-05-14 データ処理装置及び方法 Expired - Fee Related JP5049965B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008515434A JP5049965B2 (ja) 2006-05-13 2007-05-14 データ処理装置及び方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2006134579 2006-05-13
JP2006134579 2006-05-13
PCT/JP2007/000515 WO2007132564A1 (ja) 2006-05-13 2007-05-14 データ処理装置及び方法
JP2008515434A JP5049965B2 (ja) 2006-05-13 2007-05-14 データ処理装置及び方法

Publications (2)

Publication Number Publication Date
JPWO2007132564A1 true JPWO2007132564A1 (ja) 2009-09-24
JP5049965B2 JP5049965B2 (ja) 2012-10-17

Family

ID=38693665

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008515434A Expired - Fee Related JP5049965B2 (ja) 2006-05-13 2007-05-14 データ処理装置及び方法

Country Status (2)

Country Link
JP (1) JP5049965B2 (ja)
WO (1) WO2007132564A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012104943A1 (ja) * 2011-02-02 2012-08-09 日本電気株式会社 結合処理装置、データ管理装置及び文字列類似結合システム
JP5884293B2 (ja) * 2011-04-28 2016-03-15 富士通株式会社 類似文字コード群検索支援方法、類似候補抽出方法、類似候補抽出プログラムおよび類似候補抽出装置
JPWO2013031117A1 (ja) * 2011-08-26 2015-03-23 日本電気株式会社 結合処理装置、データ管理装置及び文字列類似結合システム
JP6143606B2 (ja) * 2013-08-20 2017-06-07 株式会社日立ソリューションズ東日本 データ処理装置およびデータ処理方法
JP6348787B2 (ja) * 2014-07-02 2018-06-27 株式会社日立ソリューションズ東日本 データ処理装置およびデータ処理方法
US11354317B2 (en) * 2018-05-08 2022-06-07 Nippon Telegraph And Telephone Corporation Safety assessment apparatus, safety assessment method, and program

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235208A (ja) * 1995-02-28 1996-09-13 Toshiba Corp データ検索方法
JPH10207888A (ja) * 1997-01-20 1998-08-07 Canon Inc スペルチェック装置およびスペル修正装置
JP4486324B2 (ja) * 2003-06-19 2010-06-23 ヤフー株式会社 類似単語検索装置、この方法、このプログラム、および情報検索システム
JP2005222244A (ja) * 2004-02-04 2005-08-18 Language Craft Kenkyusho:Kk 単語検索装置、単語検索方法、およびその単語検索装置を備える情報提供システム
JP2005234800A (ja) * 2004-02-18 2005-09-02 Advanced Telecommunication Research Institute International 用例機械翻訳装置及び用例翻訳コンピュータプログラム、並びに用例検索装置及び用例検索コンピュータプログラム
JP2005352888A (ja) * 2004-06-11 2005-12-22 Hitachi Ltd 表記揺れ対応辞書作成システム
JP2006053866A (ja) * 2004-08-16 2006-02-23 Advanced Telecommunication Research Institute International カタカナ文字列の表記ゆれの検出方法

Also Published As

Publication number Publication date
JP5049965B2 (ja) 2012-10-17
WO2007132564A1 (ja) 2007-11-22

Similar Documents

Publication Publication Date Title
CN111079412A (zh) 文本纠错方法及装置
JP5049965B2 (ja) データ処理装置及び方法
CN114036930A (zh) 文本纠错方法、装置、设备及计算机可读介质
CN110134777B (zh) 问题去重方法、装置、电子设备和计算机可读存储介质
Atia et al. Increasing the accuracy of opinion mining in Arabic
US11507746B2 (en) Method and apparatus for generating context information
JP2019512127A (ja) 文字列距離計算方法及び装置
CN112395881B (zh) 物料标签的构建方法、装置、可读存储介质及电子设备
Mandal et al. Clustering-based Bangla spell checker
KR101379128B1 (ko) 사전 생성 장치, 사전 생성 방법 및 사전 생성 프로그램을 기억하는 컴퓨터 판독 가능 기록 매체
CN110837730A (zh) 一种未知实体词汇的确定方法及装置
CN113076939B (zh) 语境化字符识别***
US8700997B1 (en) Method and apparatus for spellchecking source code
JP2015018372A (ja) 表現抽出モデル学習装置、表現抽出モデル学習方法、および、コンピュータ・プログラム
CN113724779B (zh) 基于机器学习技术的SNAREs蛋白识别方法、***、存储介质及设备
CN112686045B (zh) 文本错误检测模型的评测方法及装置
Vesanto Detecting and analyzing text reuse with BLAST
Mohapatra et al. Spell checker for OCR
JP7272846B2 (ja) 文書分析装置および文書分析方法
CN112257416A (zh) 一种稽查新词发现方法及***
CN113704384A (zh) 语音识别生成代码的方法及装置、电子设备、存储介质
CN115495636A (zh) 网页搜索方法、装置及存储介质
JP2022091608A (ja) 情報処理装置、及び情報処理プログラム
QasemiZadeh et al. Adaptive language independent spell checking using intelligent traverse on a tree
Nawab et al. External plagiarism detection using information retrieval and sequence alignment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100318

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120424

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120625

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120717

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120723

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150727

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees