JP2011243148A - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
JP2011243148A
JP2011243148A JP2010117259A JP2010117259A JP2011243148A JP 2011243148 A JP2011243148 A JP 2011243148A JP 2010117259 A JP2010117259 A JP 2010117259A JP 2010117259 A JP2010117259 A JP 2010117259A JP 2011243148 A JP2011243148 A JP 2011243148A
Authority
JP
Japan
Prior art keywords
distance
calculation unit
transition
value
data
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.)
Withdrawn
Application number
JP2010117259A
Other languages
English (en)
Inventor
Kaoru Yoshida
かおる 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2010117259A priority Critical patent/JP2011243148A/ja
Priority to US13/085,059 priority patent/US8874573B2/en
Priority to CN2011101269331A priority patent/CN102253960A/zh
Publication of JP2011243148A publication Critical patent/JP2011243148A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques

Abstract

【課題】より高い精度の距離尺度を算出に要する負荷を抑制しながら提供することが可能な、情報処理装置、情報処理方法及びプログラムを提供すること。
【解決手段】本発明に係る情報処理装置は、少なくとも2つの要素データを取得するデータ取得部と、データ取得部により取得された要素データ間の相違度を算出する相違度算出部と、データ取得部により取得された要素データのうち、一つの要素データから相異なる他の一つの要素データへと推移するために要するコストを算出する推移コスト算出部と、相違度算出部により算出された相違度と、推移コスト算出部により算出されたコストとを利用して、要素データ間の相違の度合いを表す要素間距離を算出する距離算出部と、を備える。
【選択図】図3

Description

本発明は、情報処理装置、情報処理方法及びプログラムに関する。
近年、様々な情報がデジタル化された上で蓄積されており、その規模は、増加する一方である。このような状況において、蓄積された情報源から必要な情報を効率よく検索する方法が求められることとなる。
生の情報源を記号化する様々な符号法が近年発明されるに伴い、近似文字列照合(approximate string matching)が、文書のみならず、音声、音楽、画像、ビデオなどの記号化されたマルチメディアを含む、広い分野の情報検索および解析で使われている。記号情報検索および解析にとって、近似文字列照合で使われる文字列間距離尺度が、検索された結果の適合性と検索過程の効率に大きな影響を与える。
かかる文字列間距離尺度として、例えば、同じ長さの二つの文字列に適用されるハミング距離と、異なる長さの文字列に対しても利用可能なリーべンシュタイン距離(あるいは編集距離ともいう。)が広く使われている。
この際、距離の精度を上げて文字列を効率的に分離するために、不一致の場所と分散を反映する他の尺度が近似文字列照合に導入されてきた。かかる他の尺度として、例えば、エントロピー尺度やN−gram法(以下の特許文献1)を挙げることができる。
国際公開第2009/085555号パンフレット
しかしながら、上記のエントロピー尺度や特許文献1に記載されているN−gram法は、高い精度の距離尺度を与えるものの、算出に要する負荷が大きいという問題があった。
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、より高い精度の距離尺度を算出に要する負荷を抑制しながら提供することが可能な、情報処理装置、情報処理方法及びプログラムを提供することにある。
上記課題を解決するために、本発明のある観点によれば、少なくとも2つの要素データを取得するデータ取得部と、前記データ取得部により取得された要素データ間の相違度を算出する相違度算出部と、前記データ取得部により取得された前記要素データのうち、一つの前記要素データから相異なる他の一つの前記要素データへと推移するために要するコストを算出する推移コスト算出部と、前記相違度算出部により算出された相違度と、前記推移コスト算出部により算出されたコストとを利用して、要素データ間の相違の度合いを表す要素間距離を算出する距離算出部と、を備える情報処理装置が提供される。
前記推移コスト算出部は、前記要素データを構成する単位要素の相違度に基づいて、相対的に小さい値を有する相違度から相対的に大きい値を有する相違度へと推移するための第1の推移コスト、又は、相対的に大きな値を有する相違度から相対的に小さい値を有する相違度へと推移するための第2の推移コストを算出することが好ましい。
前記距離算出部は、前記相違度算出部により算出された前記相違度と、前記推移コスト算出部により算出された前記第1の推移コスト及び前記第2の推移コストと、の総和を算出し、前記要素間距離とすることが好ましい。
前記情報処理装置は、前記データ取得部により取得された前記要素データに対して、所定の前処理を実施するデータ前処理部を更に備えてもよい。
前記データ前処理部は、前記要素データが構造化されたデータである場合に、当該構造化されたデータを複数の構造要素へと分割し、前記相違度算出部、前記推移コスト算出部及び前記距離算出部は、前記構造要素毎に処理を実施してもよい。
また、上記課題を解決するために、本発明の別の観点によれば、少なくとも2つの要素データを取得するステップと、前記データ取得部により取得された要素データ間の相違度を算出するステップと、取得された前記要素データのうち、一つの前記要素データから相異なる他の一つの前記要素データへと推移するために要するコストを算出するステップと、算出された相違度及びコストを利用して、要素データ間の相違の度合いを表す要素間距離を算出するステップと、を含む情報処理方法が提供される。
また、上記課題を解決するために、本発明の更に別の観点によれば、コンピュータに、少なくとも2つの要素データを取得するデータ取得機能と、前記データ取得機能により取得された要素データ間の相違度を算出する相違度算出機能と、前記データ取得機能により取得された前記要素データのうち、一つの前記要素データから相異なる他の一つの前記要素データへと推移するために要するコストを算出する推移コスト算出機能と、前記相違度算出機能により算出された相違度と、前記推移コスト算出機能により算出されたコストとを利用して、要素データ間の相違の度合いを表す要素間距離を算出する距離算出機能と、を実現するためのプログラムが提供される。
以上説明したように本発明によれば、より高い精度の距離を、算出に要する負荷を抑制しながら提供することが可能である。
本発明の実施形態に係る情報処理方法を説明するための説明図である。 本発明の実施形態に係る情報処理方法を説明するための説明図である。 本発明の第1の実施形態に係る情報処理装置の構成を示したブロック図である。 同実施形態に係る情報処理方法を説明するための説明図である。 同実施形態に係る情報処理方法の流れを示した流れ図である。 同実施形態に係る情報処理方法の流れを示した流れ図である。 同実施形態に係る情報処理方法の流れを示した流れ図である。 同実施形態に係る情報処理方法の具体例を示した説明図である。 同実施形態に係る情報処理方法の第1変形例を説明するための説明図である。 同実施形態に係る情報処理方法の第1変形例の流れを示した流れ図である。 同実施形態に係る情報処理方法の第2変形例を説明するための説明図である。 同実施形態に係る情報処理方法の第2変形例の流れを示した流れ図である。 同実施形態に係る情報処理方法の第2変形例の流れを示した流れ図である。 同実施形態に係る情報処理方法の第2変形例の流れを示した流れ図である。 同実施形態に係る情報処理方法の第2変形例の流れを示した流れ図である。 同実施形態に係る情報処理方法の第3変形例を説明するための説明図である。 同実施形態に係る情報処理方法の第3変形例の流れを示した流れ図である。 同実施形態に係る情報処理方法の適用例について説明するための流れ図である。 同実施形態に係る情報処理方法の適用結果を示したグラフ図である。 同実施形態に係る情報処理方法の適用結果を示したグラフ図である。 同実施形態に係る情報処理方法の適用例について説明するための流れ図である。 同実施形態に係る情報処理方法の適用結果を示した説明図である。 同実施形態に係る情報処理方法の適用結果を示したグラフ図である。 本発明の第2の実施形態に係る情報処理方法について示した説明図である。 同実施形態に係る情報処理方法について示した説明図である。 同実施形態に係る情報処理方法の適用例について説明するための流れ図である。 同実施形態に係る情報処理方法の適用結果を示した説明図である。 同実施形態に係る情報処理方法の適用結果を示した説明図である。 本発明の実施形態に係る情報処理装置のハードウェア構成を示したブロック図である。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は、以下の順序で行うものとする。
(1)推移感受文字列間距離尺度について
(1−1)基盤技術
(1−2)基盤技術の問題点
(1−3)推移感受文字列間距離尺度の概略
(1−4)推移感受文字列間距離の定式化
(2)第1の実施形態
(2−1)情報処理装置の構成について
(2−2)情報処理方法について
(2−3)第1変形例
(2−4)第2変形例
(2−5)第3変形例
(2−6)推移感受文字列間距離尺度の適用例について
(3)推移感受配列間距離尺度について
(3−1)基盤技術とその問題点
(3−2)推移感受配列間距離尺度の概略
(3−3)推移感受配列間距離の定式化
(4)第2の実施形態
(4−1)情報処理装置の構成について
(4−2)情報処理方法について
(4−3)推移感受配列間距離尺度の適用例について
(5)本発明の各実施形態に係る情報処理装置のハードウェア構成について
(推移感受文字列間距離尺度について)
本発明の第1の実施形態に係る情報処理装置及び情報処理方法の詳細について説明するに先立ち、本発明の実施形態に係る推移感受文字列間距離尺度(Transition−sensitive String Metric)について、簡単に説明する。
<基盤技術について>
まず、本発明の基盤となる技術(基盤技術)として、近似文字列照合に利用される距離尺度について、簡単に説明する。
[ハミング距離について]
近似文字列照合に利用される距離尺度の一つに、ハミング距離(Hamming Distance:HD)がある。このハミング距離は、同じ長さを有する2つの文字列の距離尺度を表わすものであり、一つの文字列から他の文字列へと変換するために必要な最小文字置換数として定義されるものである。
例えば、文字列formと、文字列farmとの間のハミング距離について着目する。この場合、文字列formを文字列farmに変換するためには、2番目の文字「o」を「a」へと変換する処理を行えばよい。従って、かかる場合におけるハミング距離は、1となる。
[リーベンシュタイン距離について]
上記ハミング距離は、同じ長さの文字列に対して定義される距離尺度であるが、長さの異なってもよい2つの文字列に対する距離尺度の一つに、リーベンシュタイン距離(Levenshtein Distance:LD)がある。このリーベンシュタイン距離は、編集距離とも呼ばれ、一つの文字列から他の文字列へと変換するために必要な文字の削除・挿入及び置換の最小総和数として定義されるものである。
ここで、文字列を構成する二つの要素x,yの相違度(すなわち、正規化距離)d(x,y)を、以下の式11のように定義する。
Figure 2011243148
・・・(式11)
すると、長さMの文字列Xと、長さNの文字列Yとが与えられた場合、文字列Xと文字列Yとの間のリーベンシュタイン距離LD(X,Y)は、以下の式12として定義される。
LD(X,Y)=D[M,N] ・・・(式12)
ここで、上記式12において、D[i,j]は距離行列であり、以下のように定義される。
Figure 2011243148
・・・(式13)
Figure 2011243148
・・・(式14)
Figure 2011243148
・・・(式15)
ここで、上記式15において、0≦i≦M、0≦j≦Nであり、Xiは、文字列Xのi番目の文字を表わし、Yjは、文字列Yのj番目の文字を表わす。
例えば、文字列formに対して、二つの文字列forms及びforumは、どちらも一文字、「s」又は「u」が挿入されているため、リーベンシュタイン距離は、いずれの文字列の場合にも、同じ値(距離1)となる。
個々の文字列は、挿入(insertion)、削除(deletion)、置換(substitution)といった不一致により、一致する文字列断片とそうでない文字列断片とに分断される。例えば、上記の例では、文字列formsは、form−sのように、長さ4の文字列(form)と長さ1の文字(s)の二つに断片化される。また、文字列forumは、for−u−mのように、順に長さ3の文字列、長さ1の文字,長さ1の文字、の三つに断片化される。挿入が末尾にあろうと中間にあろうと、また、不一致が固まっていようと分散していようと、不一致文字数が同じ1である限り、リーベンシュタイン距離では、同じ距離1と判定される。
<基盤技術の問題点>
他方、近似文字列照合を使う数多くの応用分野において、問合わせ文字列と比べ、試験する文字列の先頭部又は末尾部が異なっている場合、問い合わせ文字列は、試験する文字列と関連性の高い文字列である可能性が高い、としばしば推定される。同様に、試験する文字列の中間部に異なる文字が挿入されていたり、試験する文字列の全域に異なる文字が分散していたりする場合、問合わせ文字列は、試験する文字列と関連性の低い独立した文字列である可能性が高い、としばしば推定される。
例えば、forms(form−s)はformの変異語であり、forum(for−u−m)は独立語である。このような変異語を独立語から容易に分離する方法が、自然言語処理では高く望まれている。このような分離を行うためには、近似文字列照合によって算出される距離の精度を向上させることが必要となる。
距離の精度を上げ、ある距離尺度(例えば、リーベンシュタイン距離尺度)において等距離に位置する文字列を分離するために、従来、不一致の場所と分散とを反映する他の尺度が、近似文字列照合に導入されてきた。このような他の尺度の例として、上記のように、エントロピー尺度や、N−gram法がある。
かかる場合におけるエントロピーHは、以下の式16のように定義される値であり、文字列の分断化具合の尺度として広く使われ、リーベンシュタイン距離と組み合わせられて用いられる。なお、以下の式16において、pは、i番目の断片の占有度である。
Figure 2011243148
・・・(式16)
また、長さNの枠を文字列上で移動させるN−gram法は、不一致の場所を捕まえる方法として広く使われ、リーベンシュタイン距離と組合せられて用いられる。
ここで、エントロピー尺度の算出には、対象とする文字列について、全ての長さの断片の頻度を収集する必要があり、N−gram法では、対象とする文字列について、一致する枠の頻度を測定する必要がある。このような頻度の特定は、対象とする文字列が大きくなればなるほど計算コストがかかるものであり、かかる方法は、より高い精度の距離を提供するものの、計算に要する負荷が高いという問題がある。
<推移感受文字列間距離尺度の概略について>
本発明者は、上述のような問題を解決するために鋭意検討を行った結果、より高い精度の距離を計算コストを抑制しながら算出することが可能な文字列間距離尺度(推移感受文字列間距離尺度)に想到した。以下では、まず、図1及び図2を参照しながら、本発明の実施形態に係る推移感受文字列間距離尺度の概略について説明する。
本発明の実施形態に係る推移感受文字列間距離尺度は、二つの文字列の間の距離を決定する文字列間距離尺度である。かかる距離尺度の算出には、二つの文字列の他に、少なくとも2つの環境変数が用いられる。
対象とする文字列は、量的比較が可能な記号要素の列であればよく、記号要素は、単体要素であっても、複合要素であってもよい。ここで、上記単体要素は、例えば文字や符号などのような、あらゆる種類の記号である。また、複合要素は、単語や符号ブロックなど、2つ以上の単体要素からなる要素である。
文字列間距離尺度の算出では、まず、二つの要素の比較から、二つの要素間の相違の度合い(要素間相違度:element dissimilarity)を決定する。これは、一般に、0から1の範囲内の実数で表す。要素間の比較法は、厳密比較法又は近似比較法のいずれを用いてもよい。厳密比較法(exact matching)は、二つの要素が一致した場合には0を出力し、二つの要素が不一致である場合には1を出力するものである。近似比較法(fuzzy matching)は、要素間相違度として、0から1の範囲内の実数を出力するものであり、出力0は完全一致を表わし、出力1は完全不一致を表すものである。
本発明の実施形態に係る推移感受文字列間距離尺度は、要素の削除、挿入及び置換に相当する要素間相違度のみならず、隣接する要素上で観測される要素間相違度の推移(transition)をも考慮し、距離の一部として要素間相違度に加算する。このような要素間相違度の推移として、上昇推移(ascending transition、短くはascent)と、下降推移(descendingtransition、短くはdescent)とがある。
ここで、上記上昇推移は、要素間相違度が(相対的に)小さい値である状態から、要素間相違度が(相対的に)大きい値である状態への推移を意味するものである。また、上記下降推移は、要素間相違度が(相対的に)大きい値である状態から、要素間相違度が(相対的に)小さい値である状態への推移を意味するものである。
すなわち、本発明の実施形態に係る、二つの文字列の間の推移感受文字列間距離(transition−sensitive string distance:TD)は、一つの文字列を他の文字列に変換するに必要な、要素の削除、挿入及び置換に相当する要素間相違度と、要素間相違度の推移の代価(コスト)を加算した総和の最小値として定義される。
続いて、図1及び図2を参照しながら、本発明の実施形態に係る推移感受文字列間距離尺度について、簡単に説明する。図1及び図2は、本発明の実施形態に係る情報処理方法を説明するための説明図である。
図1は、離散(discrete)LD、連続(fuzzy)LD、離散(discrete)TD、連続(fuzzy)TDという4種類の距離尺度を用いて、二つの文字列formとForumsの距離を計算する原理を図解したものである。
先に説明したように、LD尺度(リーベンシュタイン距離尺度)は、図中の矩形で表される要素間相違度を加算したものである。他方、本発明の実施形態に係るTD尺度(推移感受文字列間距離尺度)は、矩形で表される要素間相違度に加え、要素間相違度を表わす矩形の端部に位置した三角形で示される上昇推移及び下降推移を加算したものである。換言すれば、従来のLDは矩形の総面積に相当するものであり、本発明の実施形態に係るTDは、台形の総面積に相当するものである。ここで、図1では、上昇推移に要する代価(上昇推移コスト)をAと表わし、下降推移に要する代価(下降推移コスト)をBと表わしている。
また、離散か連続かは、要素間相違度が二値化されているか否かの違いのみであり、矩形の高さで示される。例えば、formの先頭文字fとForumsの先頭文字Fの相違度を、離散尺度では1とし、連続尺度では、例えば、0.4とみなす。
図1に示したように、文字列formと文字列Forumsについて、離散LD尺度は3であるが、離散TD尺度は4.8となり、両者は大きく異なる値となる。同様に、文字列formと文字列Forumsについて、連続LD尺度は2.4となるが、連続TD尺度は3.9となり、両者は大きく異なる値となる。
また、二つの文字列formsとforumの場合に着目すると、文字列formに対して、文字列formsはD=1+A=1.4となり、文字列forumはD=1+A+B=1.9となって、それぞれ異なる距離を与えることが可能となる。
このように、本発明の実施形態に係る推移感受文字列間距離(TD)尺度を用いると、不一致文字数が同じ1であっても、その文字が先頭や末尾にあるか中間にあるかにより距離は異なる。また、不一致文字数が複数ある場合、それらが局所的に固まっているか全域に分散しているかで、距離は大きく異なる。
図2に、長さM=10の文字列に対する、同じ長さでも不一致の割合、箇所、そして分散具合の異なる6つの文字列(1)〜(6)の推移感受文字列間距離(TD)を示す。ここで、上昇推移コストA及び下降推移コストBが共に0である場合が、従来のリーベンシュタイン距離に相当する。
図2から明らかなように、上昇推移コストA及び下降推移コストBの値に応じて、各々の推移感受文字列間距離(TD)は大きく変化することがわかる。また、上昇推移コストA及び下降推移コストBの和A+Bが1に近づくにつれ、5割の不一致が全域に分散する文字列(4)及び(5)の距離は、全ての文字が異なる文字列(6)の距離、すなわち最大距離10、に近づき、等しくさえなりうる。
このように、本発明の実施形態に係る推移感受文字列間距離尺度は、全域に渡って相違点が分散しているような文字列は、全てが異なっている文字列と同じように、全く関連性がない文字列とみなすことが可能である。
<推移感受文字列間距離の定式化>
以上のような性質を有する推移感受文字列間距離(TD)を、以下で定式化する。
長さMの文字列Xと、長さNの文字列Yとが与えられると、二つの文字列の間の推移感受文字列間距離(TD)は、以下の式101のように定義される。
TD(X,Y,A,B)=D[M,N] ・・・(式101)
ここで、上記式101において、Aは、上昇推移コストを表わす環境変数であり、Bは、下降推移コストを表わす環境変数である。また、上記式101において、D[i,j](0≦i≦M,0≦j≦N)は、文字列間距離行列(string distance matrix)であり、以下の式102〜式104のように定義される。
Figure 2011243148
・・・(式102)
Figure 2011243148
・・・(式103)
Figure 2011243148
・・・(式104)
また、上記式104において、d[i,j](0≦i≦M,0≦j≦N)は、要素間相違度行列(element dissimilarity matrix)であり、以下の式105〜式108のように定義される。
Figure 2011243148
・・・(式105)
Figure 2011243148
・・・(式106)
Figure 2011243148
・・・(式107)
Figure 2011243148
・・・(式108)
ここで、上記式108において、Xiは、文字列Xのi番目の要素であり、Yjは、文字列Yのj番目の要素である。
また、上記式108において、d(x,y)は、二つの要素xとyとの間の要素間相違度(dissimilarity)又は正規化距離(normalized distance)を出力する関数である。この要素間相違度は、以下の式109のように、0から1の範囲の実数で表わされる。
0≦d(x,y)=|x−y|≦1 ・・・(式109)
ここで、要素間相違度d(x,y)=0である場合、要素xと要素yとは完全一致していることを表わし、要素間相違度d(x,y)=1である場合、要素xと要素yとは完全不一致であることを表わす。また、同一要素間の要素間相違度d(x,x)=0である。
また、要素間相違度d(x,y)は、以下の式110のように、相違度閾値(dissimilariy threshold)と呼ばれる閾値Cを用いて二値化してもよい。
Figure 2011243148
・・・(式110)
また、上記式104における関数t(d1,d2,A,B)は、ある要素間相違度d1から、異なる要素間相違度d2への推移に要するコスト(推移コスト)を出力する関数であり、以下の式111のように表わされる。
Figure 2011243148
・・・(式111)
ここで、上記式111において、係数Aは、上昇推移にかかるコストを表わす係数であり、係数Bは、下降推移にかかるコストを表わす係数である。また、係数A及びBは、条件0≦A+B≦1を満たす。この推移コストは、エントロピーの概念を反映した量となっている。
二つの環境変数である、上昇推移コスト係数(ascent cost coefficient)A、下降推移コスト係数(descent cost coefficient)Bが与えられると、長さMの文字列Xと長さNの文字列Yとの間の推移感受文字列間距離TD(X,Y,A,B)は、以下の性質を有する。ただし、ここでは、要素間相違度を正の閾値(C>0)で二値化することは考慮しない。
性質1):TD(X,Y,A,B)≧0
性質2):X=Yである場合に限り、TD(X,Y,A,B)=0
性質3):TD(X,Y,A,B)=TD(Y,X,A,B)
性質4):TD(X,Z,A,B)≦TD(X,Y,A,B)+TD(Y,Z,A,B)
性質5):|M−N|+min(A,B)・sign(|M−N|)
≦TD(X,Y,A,B)≦max(M,N)
性質6−1):A1≦A2ならばTD(X,Y,A1,B)≦TD(X,Y,A2,B)
性質6−2):B1≦B2ならばTD(X,Y,A,B1)≦TD(X,Y,A,B2)
性質7):LD(X,Y)=TD(X,Y,0,0)≦TD(X,Y,A,B)
以上のような定式化及び性質を踏まえて、以下では、上述のような推移感受文字列間距離を算出することが可能な情報処理装置及び情報処理方法について、詳細に説明する。
(第1の実施形態)
以上のように、文字列検索では、文字列照合の尺度としてリーベンシュタイン距離が一般的に使われている。リーベンシュタイン距離は、先に説明したように、長さが異なってもよい二つの文字列がある場合に、一つの文字列を他の文字列に変換するに必要な文字の置換(あるいは相違度)、挿入、削除の総和として定義される。リーベンシュタイン距離は、相違、挿入、削除を含めた不一致の箇所と分散具合を反映しないため、関連の無い文字列が同じ距離と評価され、誤陽判定に繋がる事が多い。
そこで、本発明者は、不一致の箇所と分散具合を反映した文字列間距離を実現するために、リーベンシュタイン距離に、隣接する要素間相違度の推移の総代価を加算した値を文字列間距離とする「推移感受文字列間距離尺度」に想到した。要素間相違度推移総代価を加算することにより、不一致文字が全体にばらばら分散している文字列には、より大きな距離を与え、ランクを下げさせ、適合グループからはずす、という優れた分離性能を得ることが可能となる。
<情報処理装置の構成について>
まず、図3を参照しながら、本発明の第1の実施形態に係る情報処理装置の構成について説明する。図3は、本実施形態に係る情報処理装置の構成を示したブロック図である。
本実施形態に係る情報処理装置10は、図3に示したように、データ取得部101と、要素間距離算出部103と、記憶部113と、を主に備える。
データ取得部101は、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、入力装置、通信装置等により実現される。データ取得部101は、前述のような推移感受文字列間距離を算出する少なくとも2つの要素データを取得する。データ取得部101の取得する要素データは、量的比較が可能な記号要素の列であればよく、データ形式は問わない。また、要素データを構成する記号要素は、単体要素であっても、複合要素であってもよい。
データ取得部101は、このような要素データを、インターネットやホームネットワークなどのネットワークを介して接続されている各種の装置から取得してもよく、情報処理装置10に有線または無線を介して直接接続されている各種の装置から取得してもよい。また、データ取得部101は、ユーザがキーボードやタッチパネル等の各種の入力装置を介して情報処理装置10に直接入力したデータを、要素データとしてもよい。
データ取得部101は、取得した要素データを、後述する要素間距離算出部103に出力する。また、データ取得部101は、取得した要素データを、要素データを取得した日時等に関する時刻情報と関連付けて、後述する記憶部113等に格納してもよい。
要素間距離算出部103は、例えば、CPU、ROM、RAM、通信装置等により実現される。要素間距離算出部103は、データ取得部101から出力された要素データを利用して、要素データ間の相違の度合いを表す要素間距離を算出する。
この要素間距離算出部103は、図3に示したように、データ前処理部105と、距離算出部107と、相違度算出部109と、推移コスト算出部111と、を更に備える。
データ前処理部105は、例えば、CPU、ROM、RAM、通信装置等により実現される。データ前処理部105は、データ取得部101から出力された要素データに対して、必要に応じて、各種の前処理を実施する。
データ前処理部105が実施する前処理は特に限定されるものではないが、かかる前処理として、例えば、要素データが構造性を有するデータである場合に、要素データを単語や物理ブロックのような複数の構造要素(ブロック)へと分離する処理等を挙げることができる。
かかる構造性を有するデータの一例として、例えば、言語的構造を挙げることができる。複数の文章から構成される文書データは、複数の文章から構成されるという構造性を有するものであり、文章は複数の節から構成され、各節は複数の単語から構成され、各単語は複数の文字から構成される。データ前処理部105は、言語的構造を有するデータを、このようなブロック(文章、節、単語・・・)ごとに分割することが可能である。また、データ前処理部105は、上述のような分割ではなく、文書データを、ページやブロックごとのように、ある長さの物理単位ごとに分割してもよい。
また、構造性を有するデータは、上述のような例に限定されるわけではなく、例えば、構造化されたプログラム言語のコードであってもよい。
データ前処理部105は、かかる前処理を実施する際に、例えば形態素解析等の様々な手法を利用したり、後述する記憶部113に格納されている各種の辞書ファイルやデータベースやプログラム等を利用したりすることが可能である。また、データ前処理部105は、かかる前処理の実施を、ネットワーク上に存在する各種サーバなど、情報処理装置10が通信可能な各種の装置に要請し、前処理後のデータを各種の装置から取得してもよい。
かかる前処理は、上記のように、要素データをいくつかのまとまりに区分可能な際に実施されればよい。また、要素データが上述のような前処理を実施可能なデータであっても、かかる前処理を実施しなくともよい。
データ前処理部105による前処理を実施することで、要素データをいくつかのまとまりへと分割することが可能となり、後述する要素間距離を算出する際に、計算コスト等を更に抑制することが可能となる。
データ前処理部105は、前処理を実施した要素データを、後述する距離算出部107に出力する。また、データ前処理部105は、前処理を実施しなかった場合には、データ取得部101から出力された要素データを、そのまま距離算出部107に出力する。また、要素データに対する前処理を実施しない場合には、データ取得部101から出力された要素データは、直接距離算出部103に入力されてもよい。
距離算出部107は、例えば、CPU、ROM、RAM等により実現される。距離算出部107は、後述する相違度算出部109及び推移コスト算出部111と連携しながら、要素データ間の相違の度合いを表す要素間距離(推移感受文字列間距離:TD)を算出する。
距離算出部107は、データ前処理部105から出力された各要素データについて、要素データを構成する要素(例えば、文字や数字など)の個数をカウントし、先に説明したような要素間相違度行列や、文字列間距離行列を設定する。また、距離算出部107は、設定した要素間相違度行列及び文字列間距離行列の初期設定を行う。
ここで、距離算出部107は、初期設定した要素間相違度行列及び文字列間距離行列を記憶部113や要素間距離算出部103内などの所定の箇所に格納し、相違度算出部109及び推移コスト算出部111等が適宜利用可能なようにしてもよい。
その後、距離算出部107は、要素データを構成する要素ごとに、要素間相違度の算出を相違度算出部109に要請したり、推移コストの算出を推移コスト算出部111に要請したりする。
距離算出部107は、相違度算出部109から出力された相違度を示す情報を取得すると、取得した情報に基づいて、要素間相違度行列の該当箇所に、算出された相違度を格納していく。また、距離算出部107は、推移コスト算出部111から出力された推移コストを示す情報を取得すると、取得した情報と要素間相違度行列とを利用して、上記式104に基づいて、要素間距離(推移感受文字列間距離)を算出する。距離算出部107は、算出した要素間距離を、文字列間距離行列の該当箇所に格納していく。かかる処理を着目している要素データの末端まで実施することで、着目している要素データ間の推移感受文字列間距離を算出することができる。
また、距離算出部107は、算出した推移感受文字列間距離を利用して、更に、2つの要素データ間の全体の相違度を算出してもよい。要素データ間の全体の相違度を算出する方法は、公知の方法を利用することが可能である。
ここで、距離算出部107が着目する要素(要素データを構成する要素)は、アルファベットの1文字や「0」〜「9」までの数字のように、1つの文字や数字に限定されるわけではなく、複数の文字や数字からなる集合を、要素として利用することが可能である。例えば、要素データが、「100、0.05、40、・・・」のように、ある数が羅列されたデータの集合である場合を考える。この際、距離算出部107は、「1、0、0、0、.、0、5、4、0・・・」のように、「100」、「0.05」、「40」のような意味のあるデータの集合を更に分解して要素とせずに、「100」、「0.05」、「40」のようなデータの集合そのものを要素として利用する。
距離算出部107は、データ前処理部105から出力された要素データについて要素間距離を算出すると、算出した要素間距離を、表示制御部(図示せず。)等を介してディスプレイ等の表示部に出力する。また、距離算出部107は、算出した要素間距離を、データのまま、他の装置へと出力してもよい。また、距離算出部107は、算出した要素間距離を、記憶部113等に格納してもよい。
なお、距離算出部107は、データ前処理部105により要素データが複数の構造要素へと分割されている場合には、各構造要素ごとに処理を実施した上で、最終的に、要素データそのものの推移感受文字列間距離を算出する。
相違度算出部109は、例えば、CPU、ROM、RAM等により実現される。相違度算出部109は、距離算出部107から要請のあった要素(より詳細には、各要素データから抽出されたそれぞれの要素)について、要素間相違度を算出する。具体的には、相違度算出部109は、距離算出部107から、2つの要素x及びyが出力されると、要素x及びyを互いに比較して、式109に示した要素間相違度d(x,y)を算出する。その後、相違度算出部109は、算出した相違度を、距離算出部107及び推移コスト算出部111に出力する。
なお、相違度算出部109により算出される要素間相違度d(x,y)は、0から1の範囲の実数で表わされるものであってもよく、0又は1に二値化されたものであってもよい。また、相違度算出部109は、アルファベットの大文字と小文字を同一のものとして扱ってもよく、異なるものとして扱ってもよい。アルファベットの大文字と小文字とを異なるものとして扱う場合に算出される相違度は、0から1の間で適宜設定することが可能である。
推移コスト算出部111は、例えば、CPU、ROM、RAM等により実現される。推移コスト算出部111は、データ取得部101から出力された要素データのうち、一方の要素データから他方の要素データへと推移するために要するコストを算出する。より詳細には、推移コスト算出部111は、一方の要素データから他方の要素データへと推移するために要する推移コストを、着目している要素ごとに式111に基づいて算出する。推移コスト算出部111は、推移コストを算出すると、算出した推移コストを、距離算出部107に出力する。
なお、推移コストの算出に利用される上昇推移コスト係数A及び下降推移コスト係数Bは、適宜設定することが可能である。例えば、かかる係数は、ユーザ設定情報として予め要素間距離算出部103や記憶部113等に格納されていてもよく、要素間距離算出部103が推移感受文字列間距離を算出するごとに、ユーザにより指定されてもよい。
このように、本実施形態に係る距離算出部107、相違度算出部109及び推移コスト算出部111は、互いに連携しながら推移感受文字列間距離を算出する。以下では、図4を参照しながら、距離算出部107、相違度算出部109及び推移コスト算出部111で実施される処理の具体例について説明する。図4は、要素間距離算出部103で実施される処理の具体例を示した説明図である。
図4に示した表は、先に説明した要素間相違度行列と文字列間距離行列とをあわせて図示したものである。図4では、「form」という文字列を表す要素データと、「Forums」という文字列を表す要素データとが要素間距離算出部103に入力された場合について、図示している。なお、図4に示した例では、データ前処理部105による前処理は実施されていないものとする。
かかる2種類の文字列を表す要素データが距離算出部107に入力されると、距離算出部107は、各要素データを構成する要素の要素数をカウントする。従って、図4に示した例では、文字列「form」の要素数は4と特定され、文字列「Forums」の要素数は6であると特定される。
次に、距離算出部107は、各行列の初期化を行う。図4に示した例では、i=0に該当する行(i=0かつj=0〜6に該当するカラムの集合)と、j=0に該当する列(j=0かつi=0〜4に該当するカラムの集合)の内容が、所定の値に設定される。
その後、距離算出部107は、(i,j)の組ごとに、相違度算出部109に対して要素間相違度の算出を要請するとともに、推移コスト算出部111に対して推移コストの算出を要請し、算出された各値を、図4に示した各カラムの該当位置に格納していく。
ここで、図4において、各カラムには2つの数値が格納されているが、左上に位置する斜体で示した数値が、相違度算出部109により算出される要素間相違度行列d[i,j]の値である。また、各カラムにおいて右下に位置する数値が、要素間相違度と推移コストとに基づいて式104により算出される文字列間距離行列D[i,j]の値である。また、図4に示した例では、上昇推移コスト係数A=0.4、下降推移コスト係数B=0.5であり、大文字の「F」と小文字の「f」が0.4と算出される場合の各数値が記載されている。
ここで、図4の下方に示した拡大図を参照しながら、(i,j)=(4,6)に対応するカラムに格納される文字列間距離行列D[4,6]がどのように算出されるかについて、具体的に説明する。
式104から明らかなように、D[4,6]を算出する場合には、D[3,5]、D[3,6]、D[4,5]の3種類の文字列間距離行列の値と、d[3,5]、d[3,6]、d[4,5]、d[4,6]の4種類の要素間相違度行列の値とが用いられる。
まず、(i,j)=(3,5)のカラムから推移する場合について考える。この際、着目している2つのカラムに格納されている要素間相違度の値は、双方とも「1」である。従って、かかる場合の推移コストは、式111におけるt(1,1,0.4,0.5)に対応する値となるため、推移コストt=0となる。よって、かかる場合に算出されるD[3,5]+1+t(1,1,0.4,0.5)の値は、3+1+0=4となる。
同様に、(i,j)=(3,6)のカラムから推移する場合について考える。この際、着目している2つのカラムに格納されている要素間相違度の値は、双方とも「1」である。従って、かかる場合の推移コストは、式111におけるt(1,1,0.4,0.5)に対応する値となるため、推移コストt=0となる。よって、かかる場合に算出されるD[3,6]+1+t(1,1,0.4,0.5)の値は、4+1+0=5となる。
また、(i,j)=(4,5)のカラムから推移する場合について考える。この際、着目している2つのカラムに格納されている要素間相違度行列の値は、d[4,5]=0であり、d[4,6]=1である。従って、かかる場合の推移コストは、式111におけるt(0,1,0.4,0.5)に対応する値となるため、推移コストt=0.4×(1−0)=0.4となる。よって、かかる場合に算出されるD[4,5]+1+t(0,1,0.4,0.5)の値は、2.5+1+0.4=3.9となる。
式104より、D[i,j]の値は、算出した3種類の値の中の最小値であるから、かかる場合においては、(4,5,3.9)の中の最小値である3.9が、D[4,6]の値となる。
以上、図4を参照しながら、距離算出部107、相違度算出部109及び推移コスト算出部111で実施される処理の具体例について説明した。以下では、再び図3に戻って、情報処理装置10が備える記憶部113について説明する。
記憶部113は、本実施形態に係る情報処理装置10が備えるストレージ装置の一例である。記憶部113には、推移感受文字列間距離を算出する際に用いられる要素データが格納されていてもよい。また、記憶部113には、推移感受文字列間距離の算出に関する履歴情報や要素データの取得に関する履歴情報など、各種の履歴情報が記録されていてもよい。また、記憶部113には、本実施形態に係る情報処理装置10が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベースやプログラム等が、適宜記録される。
この記憶部113は、本実施形態に係る情報処理装置10が備える各処理部が、自由に読み書きを行うことが可能である。
以上、本実施形態に係る情報処理装置10の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
なお、上述のような本実施形態に係る情報処理装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
<情報処理方法について>
次に、図5〜図7を参照しながら、本実施形態に係る情報処理方法(推移感受文字列間距離の算出方法)について、その流れを説明する。図5〜図7は、本実施形態に係る情報処理方法の流れを示した流れ図である。
[TD(X,Y,A,B)の算出処理]
まず、図5を参照しながら、本実施形態に係る推移感受文字列間距離の算出方法の全体的な流れについて説明する。
距離算出部107は、データ前処理部105(又は、データ取得部101)から推移感受文字列間距離を算出する要素データX及び要素データYを取得すると、まず、各要素データを構成する要素の個数をカウントする(ステップS101)。ここで、距離算出部107は、要素データXの要素数をMと設定し、要素データYの要素数をNと設定する。
次に、距離算出部107は、要素間相違度行列及び文字列間距離行列の値を初期設定する。具体的には、距離算出部107は、要素間相違度行列d[0,0]の値を−1に設定するとともに、文字列間距離行列D[0,0]の値を0に設定する(ステップS103)。
続いて、距離算出部107は、パラメータi(0≦i≦M)の値を1に設定する(ステップS105)。このパラメータiは、要素データXにおいて着目している要素のデータ先頭からの位置を表すパラメータである。その後、距離算出部107は、設定されているパラメータiの値が、M以下であるか否かを判断する(ステップS107)。
パラメータiの値がM以下である場合、距離算出部107は、要素間相違度行列d[i,0]の値を1に設定するとともに、文字列間距離行列D[i,0]の値をi(パラメータiの値)に設定する(ステップS109)。その後、距離算出部107は、パラメータiに入力されている値を1加算し(ステップS111)、ステップS107の処理を再度実行する。
他方、パラメータiの値がM以下ではなかった場合(パラメータiの値がM超過である場合)、距離算出部107は、パラメータj(0≦j≦N)の値を1に設定する(ステップS113)。このパラメータjは、要素データYにおいて着目している要素のデータ先頭からの位置を表すパラメータである。その後、距離算出部107は、パラメータjの値が、N以下であるか否かを判断する(ステップS115)。
パラメータjの値がN以下である場合、距離算出部107は、要素データYのj番目の要素を、パラメータyの値に設定する(ステップS117)。その後、距離算出部107は、要素間相違度行列d[0,j]の値を1に設定するとともに、文字列間距離行列D[0,j]の値をj(パラメータjの値)に設定する(ステップS119)。
続いて、距離算出部107は、パラメータiの値を1に設定する(ステップS121)。その後、距離算出部107は、パラメータiの値がM以下であるか否かを判断する(ステップS123)。パラメータiの値がM以下である場合には、距離算出部107は、要素データXのi番目の要素を、パラメータxの値に設定する(ステップS125)。また、パラメータiの値がM以下ではない場合(パラメータiの値がM超過である場合)には、距離算出部107は、パラメータjの値を1加算して(ステップS131)、ステップS115を再び実行する。
その後、距離算出部107は、パラメータx及びパラメータyを相違度算出部109に出力し、要素間相違度の算出を相違度算出部109に要請する。また、距離算出部107は、パラメータi及びパラメータjを推移コスト算出部111に出力し、推移コストの算出を推移コスト算出部111に要請する。相違度算出部109及び推移コスト算出部111は、出力された各パラメータや、格納されている要素間相違度行列を参照しながら、相違度と推移コストとを算出し、距離算出部107に出力する。
距離算出部107は、相違度算出部109から出力された要素間相違度d(x,y)を、要素間相違度行列d[i,j]の値として設定する(ステップS127)。また、距離算出部107は、要素間相違度行列及び文字列間距離行列と、推移コスト算出部111から出力された推移コストとを利用して、min(α,β,γ)の値を、文字列間距離行列D[i,j]の値として設定する(ステップS127)。ここで、α,β,γは、以下の式121〜式123の通りである。
Figure 2011243148
・・・(式121)
Figure 2011243148
・・・(式122)
Figure 2011243148
・・・(式123)
その後、距離算出部107は、パラメータiに入力されている値を1加算し(ステップS129)、ステップS123の処理を再度実行する。
他方、ステップS115において、パラメータjの値がN以下ではない場合(パラメータjの値がN超過である場合)、距離算出部107は、D[M,N]に格納されている値を出力する(ステップS133)。これにより、要素データXと要素データYとの間の推移感受文字列間距離TD(X,Y,A,B)が算出されたことになる。
[d(x,y)の算出処理]
続いて、図6を参照しながら、相違度算出部109における要素間相違度の算出方法の流れについて、簡単に説明する。
まず、相違度算出部109は、距離算出部107からパラメータx及びパラメータyの値が出力されると、パラメータxの値とパラメータyの値とを比較して、x=yが成立するか否かを判断する(ステップS141)。
x=yが成立する場合には、相違度算出部109は、xとyとは一致していると判断し、パラメータRの値を0に設定する(ステップS143)。他方、x=yが成立しない場合には、相違度算出部109は、xとyとは異なっていると判断し、パラメータRの値を0超過1以下の所定値に設定する(ステップS145)。ここで、x≠yの場合に設定されるパラメータRの値は、特に限定されるわけではなく、0<R≦1の範囲で適宜設定されればよい。
続いて、相違度算出部109は、パラメータRに設定された値を二値化するか否かを判断する(ステップS147)。値を二値化しない場合には、相違度算出部109は、後述するステップS155を実施する。また、値を二値化する場合には、相違度算出部109は、パラメータRの値が、所定の閾値C以下であるか否かを判断する(ステップS149)。
ここで、パラメータRの値が閾値C以下である場合、相違度算出部109は、パラメータRの値を0に設定する(ステップS151)。また、パラメータRの値が閾値C超過である場合、相違度算出部109は、パラメータRの値を1に設定する(ステップS153)。
その後、相違度算出部109は、パラメータRに設定されている値を、距離算出部107に出力する(ステップS155)。これにより、相違度算出部109は、パラメータxとパラメータyとの間の要素間相違度d(x,y)を算出したこととなる。この要素間相違度d(x,y)の値が、距離算出部107により要素間相違度行列d[x,y]に格納される。
なお、ステップS143またはステップS145において算出された値を、常に二値化せずに利用する場合には、相違度算出部109は、ステップS147〜ステップS153までの処理を実行しなくともよい。また、二値化を常に実行する場合には、相違度算出部109は、ステップS147の処理を省略してもよい。
[t(d1,d2,A,B)の算出処理]
続いて、図7を参照しながら、推移コスト算出部111における推移コストの算出方法の流れについて、簡単に説明する。
まず、距離算出部107からパラメータi及びパラメータjが出力されると、推移コスト算出部111は、相違度算出部109から出力される要素間相違度d[i,j]の値を取得する。また、推移コスト算出部111は、所定の箇所に格納されている要素間距離行列を参照し、パラメータi及びパラメータjに基づいて、d[i−1,j−1]の値及びd[i,j−1]の値を取得する。その後、推移コスト算出部111は、取得したこれらの値を利用して、以下の流れにより、t(d[i,j],d[i−1,j−1],A,B)、t(d[i,j],d[i−1,j],A,B)及びt(d[i,j],d[i,j−1],A,B)の値を算出する。
以下、推移コストt(d1,d2,A,B)の算出の流れを説明する。推移コストの算出では、4種類の引数が用いられるが、引数d1及びd2に相当するものが、要素間相違度dとなる。
推移コスト算出部111は、引数d1及びd2を特定すると、引数d1及びd2の大小関係を比較する。すなわち、推移コスト算出部111は、0≦d1<d2が成立するか否かを、まず判断する(ステップS161)。0≦d1<d2が成立する場合、推移コスト算出部111は、上昇推移コスト係数Aを用いて、A・(d2−d1)を算出し、算出した値をパラメータRの値として設定する(ステップS163)。
他方、0≦d1<d2が成立しない場合、推移コスト算出部111は、更に、0≦d2<d1が成立するか否かを判断する(ステップS165)。0≦d2<d1が成立する場合、推移コスト算出部111は、下降推移コスト係数Bを用いて、B・(d1−d2)を算出し、算出した値をパラメータRの値として設定する(ステップS167)。
また、0≦d2<d1が成立しない場合は、d1=d2が成立していることを意味するため、推移コスト算出部111は、パラメータRの値として0を設定する(ステップS169)。
その後、推移コスト算出部111は、パラメータRに設定されている値を、推移コストt(d1,d2,A,B)の算出結果として、距離算出部107に出力する(ステップS171)。かかる処理を実施することで、推移コスト算出部111は、t(d[i,j],d[i−1,j−1],A,B)、t(d[i,j],d[i−1,j],A,B)及びt(d[i,j],d[i,j−1],A,B)の値を、距離算出部107に提供する。
以上、図5〜図7を参照しながら、本実施形態に係る情報処理方法について、その流れを説明した。続いて、図8を参照しながら、本実施形態に係る情報処理方法の具体例について、簡単に説明する。
図8では、本実施形態に係る推移感受文字列間距離の算出方法を、「patent application form」と「Parent Education Forums」という二つの文字列の間の文字列間距離を算出する場合に適用した例を示している。ここで、第1の文字列「patent application form」は、空白も含め23個の要素から構成されており、第2の文字列「Parent Education Forums」についても、空白を含め23個の要素から構成されている。
また、図8では、(i,j)の組み合わせで規定されるカラムに2種類の数値が記載されているが、上側に斜体で記載されている数値が、要素間相違度行列d[i,j]の値であり、下側に記載されている数値が、文字列間距離行列D[i,j]の値である。ここで、図8に示した文字列間距離行列D[i,j]の値は、上昇推移コスト係数A=0.4、下降推移コスト係数B=0.5、d(F,f)=0.4とした場合の値である。
第1の文字列及び第2の文字列ともに構成要素数が23であるため、これらの文字列間の推移感受文字列間距離は、文字列間距離行列D[23,23]の値となる。従って、図8に記載されているように、これらの文字列間の推移感受文字列間距離は、12.5となる。
また、図8に示した例では、距離算出部107が、要素データ間の全体の相違度(d2)を算出している。この要素データ間の全体の相違度は、いわば、正規化された文字列間距離である。図8に示した例では、この要素データ間の全体の相違度d2を、以下のようにして算出した。
まず、パラメータLとして、第1の文字列の構成要素数と第2の文字列の構成要素数のうち、大きい方の値を設定した。すなわち、パラメータLの値は、図8に示した例では23となる。また、パラメータSとして、第1の文字列の構成要素数と第2の文字列の構成要素数のうち、小さい方の値を設定した。すなわち、パラメータSの値は、図8に示した例では23となる。更に、全体の相違度d2を、算出された推移感受文字列間距離Ldを利用して、以下の式124により算出した。
Figure 2011243148
・・・(式124)
従って、図8に示した例では、全体の相違度d2は、1−{(23−12.5)/(23×23)}=0.79となる。
このように、以上説明した推移感受文字列間距離の算出方法は、着目している要素データをそのまま利用して文字列照合を行う、いわば文字列全体照合法(whole−string matching method)であるといえる。
<第1変形例>
さて、以上説明した推移感受文字列間距離の算出方法は、着目している要素データをそのまま利用した方法であった。従って、長さMの文字列Xと長さNの文字列Yとに対して処理を行う場合には、要素相違度行列d[i,j]及び文字列間距離行列D[i,j]は、それぞれ(M+1)×(N+1)の大きさの行列となる。また、かかる場合においては、パラメータi及びパラメータjは、それぞれ0≦i≦M、0≦j≦Nの範囲内の値となる。従って、文字列の長さが長くなればなるほど、上記2種類の行列を格納するための記憶領域は、大きなものとなる。
ここで、図4の下方に示した図や、式104からも明らかなように、行列d[i,j]及びD[i,j]は、j番目の列の値を算出するにあたって、(j−1)番目の列の値だけが用いられる。また、続く(j+1)番目の列の値を算出する際には、(j−1)番目の列の値は用いられず、j番目の列の値だけが用いられる。従って、図9に示したように、要素間相違度行列d及び文字列間距離行列Dの大きさを、長さMの文字列Xと長さNの文字列Yに対して、2(M+1)の大きさまで削減することが可能となる。以下では、この方法を、二列処理法と呼ぶこととする。
この場合、要素間距離算出部103(より詳細には、距離算出部107)は、2(M+1)の大きさの要素間相違度行列d[i,k]及び文字列間距離行列D[i,k]を準備する。また、かかる場合においては、パラメータi及びパラメータkは、それぞれ0≦i≦M、0≦k=jmod2≦1の範囲内の値となる。
[情報処理装置の構成について]
本変形例に係る情報処理装置の構成は、図3に示した本発明の第1の実施形態に係る情報処理装置10の構成と同様であり、要素間距離算出部103により実施される推移感受文字列間距離の算出方法が異なっている。従って、以下では、本変形例に係る情報処理装置の構成に関する詳細な説明は、省略する。
[情報処理方法について]
続いて、図10を参照しながら、本変形例に係る要素間距離算出部103で実施される情報処理方法(推移感受文字列間距離の算出方法)について、その流れを説明する。図10は、本変形例に係る推移感受文字列間距離の算出方法の流れを示した流れ図である。
距離算出部107は、データ前処理部105(又は、データ取得部101)から推移感受文字列間距離を算出する要素データX及び要素データYを取得すると、まず、各要素データを構成する要素の個数をカウントする(ステップS201)。ここで、距離算出部107は、要素データXの要素数をMと設定し、要素データYの要素数をNと設定する。
続いて、距離算出部107は、パラメータkの値を0に設定し(ステップS203)、その後、要素間相違度行列及び文字列間距離行列の値を初期設定する。具体的には、距離算出部107は、要素間相違度行列d[0,0]の値を−1に設定するとともに、文字列間距離行列D[0,0]の値を0に設定する(ステップS205)。
続いて、距離算出部107は、パラメータi(0≦i≦M)の値を1に設定する(ステップS207)。その後、距離算出部107は、設定されているパラメータiの値が、M以下であるか否かを判断する(ステップS209)。
パラメータiの値がM以下である場合、距離算出部107は、要素間相違度行列d[i,0]の値を1に設定するとともに、文字列間距離行列D[i,0]の値をi(パラメータiの値)に設定する(ステップS211)。その後、距離算出部107は、パラメータiに入力されている値を1加算し(ステップS213)、ステップS209の処理を再度実行する。
他方、パラメータiの値がM以下ではなかった場合(パラメータiの値がM超過である場合)、距離算出部107は、パラメータj(0≦j≦N)の値を1に設定する(ステップS215)。その後、距離算出部107は、パラメータjの値、N以下であるか否かを判断する(ステップS217)。
パラメータjの値がN以下である場合、距離算出部107は、要素データYのj番目の要素を、パラメータyの値に設定する(ステップS219)。
続いて、距離算出部107は、パラメータk0の値を、パラメータkに設定されている値とするとともに、パラメータkの値を、(1−k0)により算出される値に設定する(ステップS221)。
その後、距離算出部107は、要素間相違度行列d[0,k]の値を1に設定するとともに、文字列間距離行列D[0,k]の値をj(パラメータjの値)に設定する(ステップS223)。
続いて、距離算出部107は、パラメータiの値を1に設定する(ステップS225)。その後、距離算出部107は、パラメータiの値がM以下であるか否かを判断する(ステップS227)。パラメータiの値がM以下である場合には、距離算出部107は、要素データXのi番目の要素を、パラメータxの値に設定する(ステップS229)。また、パラメータiの値がM以下ではない場合(パラメータiの値がM超過である場合)には、距離算出部107は、パラメータjの値を1加算して(ステップS235)、ステップS217を再び実行する。
その後、距離算出部107は、パラメータx及びパラメータyを相違度算出部109に出力し、要素間相違度の算出を相違度算出部109に要請する。また、距離算出部107は、パラメータi及びパラメータjを推移コスト算出部111に出力し、推移コストの算出を推移コスト算出部111に要請する。相違度算出部109及び推移コスト算出部111は、出力された各パラメータや、格納されている要素間相違度行列を参照しながら、相違度と推移コストとを算出し、距離算出部107に出力する。
距離算出部107は、相違度算出部109から出力された要素間相違度d(x,y)を、要素間相違度行列d[i,k]の値として設定する(ステップS231)。また、距離算出部107は、要素間相違度行列及び文字列間距離行列と、推移コスト算出部111から出力された推移コストとを利用して、min(α’,β’,γ’)の値を、文字列間距離行列D[i,k]の値として設定する(ステップS231)。ここで、α’,β’,γ’は、以下の式131〜式133の通りである。
Figure 2011243148
・・・(式131)
Figure 2011243148
・・・(式132)
Figure 2011243148
・・・(式133)
その後、距離算出部107は、パラメータiに入力されている値を1加算し(ステップS233)、ステップS227の処理を再度実行する。
他方、ステップS217において、パラメータjの値がN以下ではない場合(パラメータjの値がN超過である場合)、距離算出部107は、D[M,k]に格納されている値を出力する(ステップS237)。これにより、要素データXと要素データYとの間の推移感受文字列間距離TD(X,Y,A,B)が算出されたことになる。
<第2変形例>
着目している要素データが何らかの構造性を有する文字列である場合、その構造性を文字列照合に利用することが、計算の効率化の観点からは望ましい。そこで、以下に説明する階層的文字列照合法(hierarchical string matching method)では、まず、着目しているそれぞれの文字列を、例えば、単語や物理ブロックのような、粗粒度の要素に分ける。その上で、本変形例に係る方法は、粗粒度を構成する更に細かい粒度(細粒度)の要素について、まず比較を行う。続いて、本変形例に係る方法は、このような下位レベルにおける算出結果を利用して、更に上位のレベル(例えば、粗粒度の要素)に関する文字列間距離を算出していく。すなわち、以下で説明する階層的文字列照合法は、本発明の第1の実施形態に係る推移感受文字列間距離の算出方法を、再帰的に適用する方法である。
以下の例では、要素データである文字列を2つの階層へと分割する場合について説明するが、階層の数はかかる場合に限定されるわけではなく、二段以上であってもよい。また、単語を粗粒度の要素として用いる場合、これを順序固定単語別文字列照合法(ordered word−wise matching method)と呼ぶこととする。
複数の異なる階層における算出結果を繋げていくために、以下に示す方法では、下位レベルの文字列照合手順から求められた距離を相違度に変換し、上位レベルの文字列照合手順に渡していく。算出した文字列間距離を相違度へと変換する方法は、適宜選択されればよく、特に限定されるわけではない。
図11は、上記順序固定単語別文字列照合法を、「patent application form」と「Parent Education Forums」という二つの文字列の間の文字列間距離を算出する場合に適用した例を示している。図11に示した例では、データ前処理部105による形態素解析により、入力された文字列を単語ごとに区分された上で、距離算出部107、相違度算出部109及び推移コスト算出部111による処理が実施される。
図11に示したように、本例では、各文字列とも、3つの単語に区分されるため、これら3つの単語が粗粒度の要素となり、上位レベルであるLevel2に区分される。また、各粗粒度は、アルファベットからなる要素(細粒度の要素)により構成されており、これら細粒度の要素に関する処理が、下位レベルであるLevel1における処理となる。
Level1の処理では、先に説明したような方法を用いて実施され、Level1という階層における推移感受文字列間距離Dと、推移感受文字列間距離Dを正規化した相違度d2とが、それぞれ算出される。
Level2の処理では、Level1の処理により算出された、正規化された相違度d2を用いて、粗粒度間での推移感受文字列間距離が算出される。また、得られた粗粒度間での推移感受文字列間距離を利用することで、文字列全体における正規化された相違度d3を算出することも可能である。
図11に示した表について説明する。図11に示したLevel1での処理結果を示す表は、先に説明したように、要素間相違度行列及び文字列間距離行列が併せて表示されたものであり、各カラムの左上に斜体で記載された数値が要素間相違度であり、右下に記載された数値が文字列間距離である。
Level2での処理結果を示す表は、各カラムに3つの数値が記載されているが、左側に記載されている2種類の数値が、下位階層における正規化された相違度(左上に位置するもの)と、文字列間距離(右下に位置するもの)である。また、右側に示した数値が、Level2での処理により算出された粗粒度間での推移感受文字列間距離である。
ここで、図11に示した処理では、2つの階層を利用して処理を行っており、各階層における処理において、上昇推移コスト係数及び下降推移コスト係数や、同一文字における大文字と小文字との間の相違度を用いることとなる。ここで、Level1における処理における上昇推移コスト係数及び下降推移コスト係数をそれぞれA、Bと記載し、Level2における上昇推移コスト係数及び下降推移コスト係数をそれぞれA2、B2と記載することとする。図11に示した文字列間距離行列D[i,j]の値は、上昇推移コスト係数A=A2=0.4、下降推移コスト係数B=B2=0.5、d(F,f)=0.4とした場合の値である。
[情報処理装置の構成について]
本変形例に係る情報処理装置の構成は、図3に示した本発明の第1の実施形態に係る情報処理装置10の構成と同様であり、要素間距離算出部103により実施される推移感受文字列間距離の算出方法が異なっている。従って、以下では、本変形例に係る情報処理装置の構成に関する詳細な説明は、省略する。
[情報処理方法について]
続いて、図12〜図15を参照しながら、本変形例に係る要素間距離算出部103で実施される情報処理方法(推移感受文字列間距離の算出方法)について、その流れを説明する。図12〜図15は、本変形例に係る推移感受文字列間距離の算出方法の流れを示した流れ図である。
第1階層(Level1)における推移感受文字列間距離の算出方法は、先に説明した本発明の第1の実施形態に係る方法や、第1変形例に係る方法を適宜利用すればよいため、以下では詳細な説明は省略する。なお、第1階層における算出処理により、推移感受文字列間距離Dと、正規化された相違度d2とが算出されているものとする。
[TD2(X,Y,A,B,A2,B2)の算出処理]
まず、図12を参照しながら、本変形例に係る第2階層での推移感受文字列間距離の算出方法の全体的な流れについて説明する。
距離算出部107は、まず、要素データX及び要素データYについて、第2階層要素の個数をカウントする(ステップS301)。ここで、距離算出部107は、要素データXの第2階層要素数をMと設定し、要素データYの第2階層要素数をNと設定する。
続いて、距離算出部107は、パラメータkの値を0に設定し(ステップS303)、その後、第2階層の要素間相違度行列及び文字列間距離行列の値を初期設定する。具体的には、距離算出部107は、要素間相違度行列d[0,0]の値を−1に設定するとともに、文字列間距離行列D[0,0]の値を0に設定する(ステップS305)。
続いて、距離算出部107は、パラメータi(0≦i≦M)の値を1に設定する(ステップS307)。その後、距離算出部107は、設定されているパラメータiの値が、M以下であるか否かを判断する(ステップS309)。
パラメータiの値がM以下である場合、距離算出部107は、要素間相違度行列d[i,0]の値を1に設定するとともに、文字列間距離行列D[i,0]の値をi(パラメータiの値)に設定する(ステップS311)。その後、距離算出部107は、パラメータiに入力されている値を1加算し(ステップS313)、ステップS309の処理を再度実行する。
他方、パラメータiの値がM以下ではなかった場合(パラメータiの値がM超過である場合)、距離算出部107は、パラメータj(0≦j≦N)の値を1に設定する(ステップS315)。その後、距離算出部107は、パラメータjの値、N以下であるか否かを判断する(ステップS317)。
パラメータjの値がN以下である場合、距離算出部107は、要素データYの第2階層でのj番目の要素を、パラメータyの値に設定する(ステップS319)。
続いて、距離算出部107は、パラメータk0の値を、パラメータkに設定されている値とするとともに、パラメータkの値を、(1−k0)により算出される値に設定する(ステップS321)。
その後、距離算出部107は、要素間相違度行列d[0,k]の値を1に設定するとともに、文字列間距離行列D[0,k]の値をj(パラメータjの値)に設定する(ステップS223)。
続いて、距離算出部107は、パラメータiの値を1に設定する(ステップS325)。その後、距離算出部107は、パラメータiの値がM以下であるか否かを判断する(ステップS327)。パラメータiの値がM以下である場合には、距離算出部107は、要素データXの第2階層でのi番目の要素を、パラメータxの値に設定する(ステップS329)。また、パラメータiの値がM以下ではない場合(パラメータiの値がM超過である場合)には、距離算出部107は、パラメータjの値を1加算して(ステップS335)、ステップS317を再び実行する。
その後、距離算出部107は、パラメータi及びパラメータjを推移コスト算出部111に出力し、推移コストの算出を推移コスト算出部111に要請する。推移コスト算出部111は、出力された各パラメータや、格納されている要素間相違度行列を参照しながら推移コストを算出し、距離算出部107に出力する。
距離算出部107は、第1階層における処理により得られた、正規化された相違度d2(x,y,A,B)を、要素間相違度行列d[i,k]の値として設定する(ステップS331)。また、距離算出部107は、要素間相違度行列及び文字列間距離行列と、推移コスト算出部111から出力された推移コストとを利用して、min(α”,β”,γ”)の値を、文字列間距離行列D[i,k]の値として設定する(ステップS331)。ここで、α”,β”,γ”は、以下の式141〜式143の通りである。
Figure 2011243148
・・・(式141)
Figure 2011243148
・・・(式142)
Figure 2011243148
・・・(式143)
その後、距離算出部107は、パラメータiに入力されている値を1加算し(ステップS333)、ステップS327の処理を再度実行する。
他方、ステップS317において、パラメータjの値がN以下ではない場合(パラメータjの値がN超過である場合)、距離算出部107は、D[M,k]に格納されている値を出力する(ステップS337)。これにより、要素データXと要素データYとの間の推移感受文字列間距離TD2(X,Y,A,B,A2,B2)が算出されたことになる。
[d2(X,Y,A,B)の算出処理]
続いて、図13を参照しながら、第1階層での処理により算出された推移感受文字列間距離TD(X,Y,A,B)を用いた、正規化された相違度d2(X,Y,A,B)の算出方法の流れについて、簡単に説明する。
まず、距離算出部107は、算出した推移感受文字列間距離TD(X,Y,A,B)の値を、パラメータLdの値に設定する(ステップS341)。また、距離算出部107は、各要素データを構成する要素の個数をカウントする(ステップS341)。ここで、距離算出部107は、要素データXの要素数をMと設定し、要素データYの要素数をNと設定する。更に、距離算出部107は、これらのパラメータと、以下で改めて説明する、正規化された相違度を算出する関数n(Lx,Ly,Ld)とを用いて、n(M,N,Ld)の値を算出し、パラメータRの値に設定する(ステップS341)。
続いて、距離算出部107は、パラメータRに設定された値を二値化するか否かを判断する(ステップS343)。値を二値化しない場合には、距離算出部107は、後述するステップS351を実施する。また、値を二値化する場合には、距離算出部107は、パラメータRの値が、所定の閾値C2以下であるか否かを判断する(ステップS345)。
ここで、パラメータRの値が閾値C2以下である場合、距離算出部107は、パラメータRの値を0に設定する(ステップS347)。また、パラメータRの値が閾値C2超過である場合、距離算出部107は、パラメータRの値を1に設定する(ステップS349)。
その後、距離算出部107は、パラメータRに設定されている値を、正規化された相違度d2(X,Y,A,B)として出力する(ステップS351)。
なお、ステップS341において算出された値を、常に二値化せずに利用する場合には、距離算出部107は、ステップS343〜ステップS349までの処理を実行しなくともよい。また、二値化を常に実行する場合には、距離算出部107は、ステップS343の処理を省略してもよい。
[d3(X,Y,A,B,A2,B2)の算出処理]
続いて、図14を参照しながら、第2階層での処理により算出された推移感受文字列間距離TD2(X,Y,A,B,A2,B2)を用いた、正規化された相違度d3(X,Y,A,B,A2,B2)の算出方法の流れについて、簡単に説明する。
まず、距離算出部107は、算出した推移感受文字列間距離TD2(X,Y,A,B,A2,B2)の値を、パラメータLdの値に設定する(ステップS361)。また、距離算出部107は、各要素データの第2階層を構成する要素の個数をカウントする(ステップS361)。ここで、距離算出部107は、要素データXの第2階層要素数をMと設定し、要素データYの第2階層要素数をNと設定する。更に、距離算出部107は、これらのパラメータと、以下で改めて説明する、正規化された相違度を算出する関数n(Lx,Ly,Ld)とを用いて、n(M,N,Ld)の値を算出し、パラメータRの値に設定する(ステップS361)。
続いて、距離算出部107は、パラメータRに設定された値を二値化するか否かを判断する(ステップS363)。値を二値化しない場合には、距離算出部107は、後述するステップS371を実施する。また、値を二値化する場合には、距離算出部107は、パラメータRの値が、所定の閾値C3以下であるか否かを判断する(ステップS365)。
ここで、パラメータRの値が閾値C3以下である場合、距離算出部107は、パラメータRの値を0に設定する(ステップS367)。また、パラメータRの値が閾値C3超過である場合、距離算出部107は、パラメータRの値を1に設定する(ステップS369)。
その後、距離算出部107は、パラメータRに設定されている値を、正規化された相違度d3(X,Y,A,B,A2,B2)として出力する(ステップS371)。
なお、ステップS361において算出された値を、常に二値化せずに利用する場合には、距離算出部107は、ステップS363〜ステップS369までの処理を実行しなくともよい。また、二値化を常に実行する場合には、距離算出部107は、ステップS363の処理を省略してもよい。
[n(Lx,Ly,Ld)の算出処理]
続いて、図15を参照しながら、数値の正規化方法の流れについて、簡単に説明する。以下で説明する数値の正規化方法は、要素間距離算出部103の有する各処理部が、適宜実行することが可能であるが、以下では、距離算出部107が実施する場合を例にとって説明を行うものとする。また、図15にて説明する数値の正規化方法はあくまでも一例であって、かかる正規化方法以外にも公知の方法を利用することが可能である。
距離算出部107は、まず、関数n(Lx,Ly,Ld)の引数として入力されたLx及びLyを参照し、Lx及びLyについて値がより大きなものを、パラメータLとして設定する(ステップS381)。また、距離算出部107は、Lx及びLyについて値がより小さいものを、パラメータSとして設定する(ステップS381)。その後、距離算出部107は、引数Ldと、パラメータL及びSとを利用して、1−{(L−Ld)/L・S}で表わされる値を算出し、パラメータRの値として設定する(ステップS381)。
続いて、距離算出部107は、パラメータRの値を、n(Lx,Ly,Ld)によって算出された値として出力する(ステップS383)。これにより、引数Ldとして入力された値が正規化されたこととなる。
<第3変形例>
第2変形例において説明した順序固定単語別文字列照合法は、二つの文字列を単語別に順序を固定して照合していく方法であったが、順序を固定せずに比較を行う方法も実現可能である。本変形例では、二つの文字列を単語別に順序不同で比較し、推移感受文字列間距離尺度を単語同士の比較に用いる場合について、簡単に説明する。この方式を、以下では、順列不同単語別照合法(order−free word−wise matching method)と呼ぶこととする。
かかる方法においても、まず、着目しているそれぞれの文字列を、例えば、単語や物理ブロックのような、粗粒度の要素に分ける。その上で、本変形例に係る方法は、粗粒度を構成する更に細かい粒度(細粒度)の要素について、まず比較を行う。続いて、本変形例に係る方法は、このような下位レベルにおける算出結果を利用して、正規化された相違度を算出していく。
以下の例では、要素データである文字列を2つの階層へと分割する場合について説明するが、階層の数はかかる場合に限定されるわけではなく、二段以上であってもよい。
複数の異なる階層における算出結果を繋げていくために、以下に示す方法では、下位レベルの文字列照合手順から求められた距離を相違度に変換する。算出した文字列間距離を相違度へと変換する方法は、適宜選択されればよく、特に限定されるわけではない。
図16は、上記順列不同単語別文字列照合法を、「patent application form」と「Parent Education Forums」という二つの文字列の間の文字列間距離を算出する場合に適用した例を示している。図16に示した例では、データ前処理部105による形態素解析により、入力された文字列を単語ごとに区分された上で、距離算出部107、相違度算出部109及び推移コスト算出部111による処理が実施される。
本例では、各文字列とも、3つの単語に区分されるため、これら3つの単語が粗粒度の要素となり、上位レベルであるLevel2に区分される。また、各粗粒度は、アルファベットからなる要素(細粒度の要素)により構成されており、これら細粒度の要素に関する処理が、下位レベルであるLevel1における処理となる。
Level1の処理では、先に説明したような方法を用いて実施され、Level1という階層における推移感受文字列間距離Dと、推移感受文字列間距離Dを正規化した相違度d2とが、それぞれ算出される。また、Level2の処理では、Level1の処理により算出された、正規化された相違度d2をそのまま利用して、正規化された相違度d4が算出される。
図16に示した表について説明する。図16に示したLevel1での処理結果を示す表は、先に説明したように、要素間相違度行列及び文字列間距離行列が併せて表示されたものであり、各カラムの左上に斜体で記載された数値が要素間相違度であり、右下に記載された数値が文字列間距離である。
Level2での処理結果を示す表は、各カラムに2つの数値が記載されているが、上側に斜体で記載された数値が、Level1での処理により算出された正規化された相違度d2に対応する値である。また、下側に記載された数値が、Level1での処理により算出された推移感受文字列間距離Dである。
本変形例に係る方法では、Level2における処理として、パラメータjが同一である列の中で、最も小さい値を与える相違度d2を選択し、同一パラメータ内における最小の相違度d2の合計を、全てのパラメータjの範囲で算出する。その後、算出した相違度d2の合計を、パラメータjに対応する文字列の第2階層要素数で除することにより、正規化された相違度d4が算出される。
なお、図16に示した文字列間距離行列D[i,j]の値は、上昇推移コスト係数A=0.4、下降推移コスト係数B=0.5、d(F,f)=0.4とした場合の値である。
[情報処理装置の構成について]
本変形例に係る情報処理装置の構成は、図3に示した本発明の第1の実施形態に係る情報処理装置10の構成と同様であり、要素間距離算出部103により実施される推移感受文字列間距離の算出方法が異なっている。従って、以下では、本変形例に係る情報処理装置の構成に関する詳細な説明は、省略する。
[情報処理方法について]
続いて、図17を参照しながら、本変形例に係る要素間距離算出部103で実施される情報処理方法(正規化された相違度の算出方法)について、その流れを説明する。図17は、本変形例に係る正規化された相違度の算出方法の流れを示した流れ図である。
第1階層(Level1)における推移感受文字列間距離の算出方法は、先に説明した本発明の第1の実施形態に係る方法や、第1変形例に係る方法を適宜利用すればよいため、以下では詳細な説明は省略する。なお、第1階層における算出処理により、推移感受文字列間距離Dと、正規化された相違度d2とが算出されているものとする。
[d4(X,Y,A,B)の算出処理]
距離算出部107は、まず、要素データX及び要素データYについて、第2階層要素の個数をカウントする(ステップS401)。ここで、距離算出部107は、要素データXの第2階層要素数をMと設定し、要素データYの第2階層要素数をNと設定する。
続いて、距離算出部107は、パラメータjの値を1に設定するとともに、パラメータDsumの値を0に設定する(ステップS303)。
その後、距離算出部107は、パラメータj(0≦j≦N)の値が、N以下であるか否かを判断する(ステップS405)。
パラメータjの値がN以下である場合、距離算出部107は、要素データYの第2階層でのj番目の要素を、パラメータYjの値に設定する(ステップS407)。
続いて、距離算出部107は、パラメータi(0≦i≦M)の値を、1に設定するとともに、パラメータdminの値を、1に設定する(ステップS409)。
その後、距離算出部107は、パラメータiの値がM以下であるか否かを判断する(ステップS411)。パラメータiの値がM以下である場合には、距離算出部107は、要素データXの第2階層でのi番目の要素を、パラメータXiの値に設定する(ステップS413)。その後、距離算出部107は、d2(Xi,Yj,A,B)の値を、パラメータdの値として設定するとともに、パラメータdminとパラメータdのうち、小さい方の値を、パラメータdminの値として設定する(ステップS415)。次に、距離算出部107は、パラメータiの値を1加算して(ステップS417)、ステップS411を再び実行する。
ステップS411において、パラメータiの値がM以下ではない場合(パラメータiの値がM超過である場合)には、距離算出部107は、パラメータDsumの値にパラメータdminの値を加算して、得られた値を、新たにパラメータDsumの値に設定する(ステップS419)。その後、パラメータjの値を1加算して(ステップS421)、ステップS405を再び実行する。
ステップS405において、パラメータjの値がN以下ではない場合(パラメータjの値がN超過である場合)、距離算出部107は、パラメータDsumの値をNで割り、得られた結果をパラメータRの値として設定する(ステップS423)。
続いて、距離算出部107は、パラメータRに設定された値を二値化するか否かを判断する(ステップS425)。値を二値化しない場合には、距離算出部107は、後述するステップS433を実施する。また、値を二値化する場合には、距離算出部107は、パラメータRの値が、所定の閾値C4以下であるか否かを判断する(ステップS427)。
ここで、パラメータRの値が閾値C4以下である場合、距離算出部107は、パラメータRの値を0に設定する(ステップS429)。また、パラメータRの値が閾値C4超過である場合、距離算出部107は、パラメータRの値を1に設定する(ステップS431)。
その後、距離算出部107は、パラメータRに設定されている値を、正規化された相違度d4(X,Y,A,B)として出力する(ステップS433)。
なお、ステップS423において算出された値を、常に二値化せずに利用する場合には、距離算出部107は、ステップS425〜ステップS431までの処理を実行しなくともよい。また、二値化を常に実行する場合には、距離算出部107は、ステップS425の処理を省略してもよい。
以上、本実施形態に係る推移感受文字列間距離について、詳細に説明した。なお、本実施形態に係る推移感受文字列間距離(TD)尺度は、いわゆるtf−idf重み因子やN−gram法などの他の尺度や方法と組み合わせて、リーベンシュタイン距離(LD)尺度の代わりとして使用することが可能である。
<推移感受文字列間距離尺度の適用例について>
続いて、図18〜図23を参照しながら、本実施形態に係る推移感受文字列間距離尺度の適用例について、具体的に説明する。
[適用例1]
以下に示す図18〜図20では、本実施形態に係る推移感受文字列間距離(TD)尺度を、名前検索作業に適用し、その性能を検証した。図18は、様々な環境変数及び各種照合法を利用して名前検索作業を実施した際の処理の流れを示した流れ図である。
本適用例では、遺伝子名や蛋白質名などの生物学的名称を4688個含むデータベースを準備した上で、問合せ文字列(検索クエリ)Qとして、「ribosomal RNA processing」を使用した。そのうえで、データベース内の各レコードを、この問合せ文字列に対して、様々な文字列間距離尺度と文字照合法とを用いて照合した。
まず、距離算出部107は、クエリQを示すデータを取得すると(ステップS501)、パラメータS及びパラメータNRの値を、それぞれ0に設定する(ステップS503)。その後、距離算出部107は、準備したデータベースの中からデータE[i]の取得を試み(ステップS505)、データE[i]が取得できたか否かを判断する(ステップS507)。
データE[i]が取得できた場合、距離算出部107は、先に説明した各種の方法を利用して、相違度算出部109及び推移コスト算出部111と連携しながら、データのマッチングを行う(ステップS509)。マッチングにより得られた文字列相違度dは、以下の式151により、文字列相似度(Similarity)S[i]に変換される(ステップS509)。
S[i]=1−dx(Q,E(i)) ・・・(式151)
また、距離算出部107は、算出した文字列相似度S[i]とパラメータSmaxの大小比較を行い、より大きな値をパラメータSmaxの値として設定する(ステップS509)とともに、パラメータNRの値を1加算する(ステップS509)。その後、距離算出部107は、再びステップS505に戻って、データベースから新たなデータE[i]を取得する。
また、ステップS507において新たなデータE[i]が取得できなかった場合、距離算出部107は、算出した相似度S[i]を、相似度の最大値Smaxに対する比である相対相似度(relative similarity)s[i]に変換する(ステップS511)。この相対相似度s[i]は、以下の式152のように算出される。
s[i]=S[i]/Smax ・・・(式152)
その後、距離算出部107は、算出した相対相似度s[i]に応じてデータの並び変えを行い(ステップS511)、得られた結果の順位付けを行う。各データの順位(rank)をR[i]と表すこととすると、距離算出部107は、決定した順位を、レコード総数NRに対する比である正規化順位(normalized rank)r[i]に変換する(ステップS511)。この正規化順位は、以下の式153のように算出される。
r[i]=R[i]/NR ・・・(式153)
図19は、様々な推移コスト係数A,Bの組み合わせを用いて算出された相対相似度s[i]の正規化順位r[i]に対する関係を示したグラフ図である。各レコードE[i]に対して、総文字列照合法が用いられ、相似度S[i]は、以下の関数の値として求められた。なお、図19に示したグラフ図の横軸は、対数表示となっている。
S[i]=1−d2(Q,E[i],A,B)
□(白ぬきの正方形)がプロットされることで表された曲線は、環境変数がA=B=0である場合であり、リーベンシュタイン距離LDを用いた場合に相当する。他の曲線は、A+B=1の状態を満たす幾つかのAとBの組み合わせを用いて算出されたものである。これらの曲線は、互いに多少の差異はあるものの、群をなしており、リーベンシュタイン距離に相当する曲線からは隔たっていることがわかる。
また、図20は、以下の文字列間距離尺度と文字列照合法の異なる6種類の組合せで算出された相対相似度s[i]と正規化順位r[i]の関係を示したグラフ図である。
(1)LD+文字列全体照合法:S[i]=1−d2(Q,E[i],0,0)
(2)LD+順序固定単語別照合法:S[i]=1−d3(Q,E[i],0,0,0,0)
(3)LD+順序不同単語別照合法:S[i]=1−d4(Q,E[i],0,0)
(4)TD+文字列全体照合法:S[i]=1−d2(Q,E[i],0.4,0.5)
(5)TD+順序固定単語別照合法:S[i]=1−d3(Q,E[i],0.4,0.5,0.4,0.5)
(6)TD+順序不同単語別照合法:S[i]=1−d4(Q,E[i],0.4,0.5)
単語別照合法を用いた場合では、問合せ文字列とデータベースから読まれた各レコードはそれぞれ単語に分解される。例えば、問合せ文字列「ribosomal RNA processing」は、「ribosomal」、「RNA」、「processing」の3つの単語に分けられる。三種類の照合法を比べると、順序不同単語別照合法の曲線は一番外側に、文字列全体照合法の曲線はその内側に、順序固定単語別照合法の曲線は一番内側に現れた。どの照合法であっても、TD尺度の曲線はLD尺度の曲線の内側にある。これらの結果から、TD尺度はLD尺度に比べ、先頭順位のレコードをより差別化することがわかった。
[適用例2]
文字列の要素は、比較可能で相違度が定量化できれば、いかなる種類の記号でも良いため、実数値を要素とする時系列データの解析に、本実施形態に係る推移感受文字列間距離尺度を応用できる。時系列データは、経済、音楽、ビデオ、生物など、いかなる分野のデータであってもよい。
現在、医療、製薬、化粧品、食品の様々なライフサイエンス分野で、遺伝子発現の時系列データが蓄積されており、その効率良い解析法が求められている。そこで、以下では、時系列データ解析への応用の一例として、遺伝子発現時系列データ解析を行った結果について説明する。以下では、20種類の遺伝子発現の時系列データを、推移感受文字列間距離尺度を用いて解析し、得られた相違度配列から、時系列が近似する遺伝子を分別した手順とその結果について説明する。
○解析データ
Pengらは、分裂酵母の一種であるSchizosaccaromyces pombeの4929種類の遺伝子に対して、33時点で観測された時系列発現データを報告している(Peng et al.2005)。それらの中から、図21に示す、未定(NA)のデータを含まない20種類の時系列発現データ(S01−S20)について解析を行った。ここで、図21において、縦軸が、正規化された遺伝子の発現量を表し、横軸が、発現時点を表している。
○解析手順
(1)図21に示すように、各時系列発現データをその最大値で割り、[0,1]の範囲に入るよう、正規化した。
(2)20種類の系列から2種類取る組合せ、(20×19)/2=190種類の各組み合せに対して、推移感受文字列距離TDを測定し、得られた距離を文字列33で割り正規化し、文字列間相違度とした。ここで、推移コスト係数は、A=B=0.5と設定した。
(3)系列間相違度配列から、最大値を有する行を縦横の軸に、昇順に並べ替えを実行し、互いに相違度が小さい系列のグループ(あるいはクラスター)をまとめるよう、配列を並べ替えた。得られた結果を、図22に示した。
(4)得られた近似系列グループ(クラスター)を、図23に示す。ただし、ここでは、正規化しない元の時系列を表示している。
図21及び図23を比較するとわかるように、図21の状態では、同じような挙動を示す遺伝子の時系列発現データを特定することは困難であるが、本実施形態に係る推移感受文字列間距離尺度を用いることで、複雑なデータを同じような挙動を示すデータごとに分類することが可能となる。
[適用例3]
2桁あるいは3桁の二進符号に関して、各二進符号間の推移感受文字列間距離について二つの環境変数A及びBを用いた定式化を行うと、ある一意的表現が得られる。それゆえ、推移感受文字列間距離尺度を二進符号の変換法として用いることができる。
○2桁二進符号
2桁の二進符号に関して、二つの符号間の推移感受文字列間距離は、以下の表1のように定式化される。
Figure 2011243148
上記表1から明らかなように、4種類の式表現、f(0)、f(1)+A、f(1)+B、f(2)が、各行各列に一度しか現れないことがわかる。ここで、f(X)=X、A=10、B=00とすると、各式表現が二進符号に変換される。
Figure 2011243148
従って、鍵として「01」が与えられると、「00」→「11」、「01」→「00」、「10」→「10」、「11」→「01」のように、元の二進符号を、別の符号に変換することが可能となる。
○3桁二進符号
2桁の場合と同様にして、3桁の二進符号に関して、二つの符号間の推移感受文字列間距離は、以下の表3のように定式化される。
Figure 2011243148
上記表3から明らかなように、四種類の式表現、f(0)、f(1)+A、f(1)+B、f(1)+A+B、f(2)+A+B、f(2)+A、f(2)+B、f(3)は、各行各列に一度しか現れないことがわかる。ここで、f(X)=(X mod 2)×2、A=010、B=001とすると、各式表現が二進符号に変換される。
Figure 2011243148
従って、鍵として「001」が与えられると、「000」→「110」、「001」→「000」、「100」→「011」、「010」→「010」、「101」→「101」、「011」→「111」、「110」→「100」、「111」→「001」のように、元の二進符号を別の符号に変換することが可能となる。
以上説明したように、本発明の第1の実施形態では、二つの文字列の間の距離を決定する新たな尺度である、推移感受文字列間尺度について説明した。従来のリーベンシュタイン距離(LD)に比べ、推移感受文字列間距離(TD)は、同等の計算量、そして僅かな計算資源の追加で、より精度の高い距離を安価に決定することができ、これまでLDでは同じ距離とされた文字列を分離することが可能となる。
また、推移感受文字列間距離尺度は、基本的な原理に基づいているため、簡単な文字列照合から、複雑な記号や階層からなる構造的文字列の照合にも適用することが可能であり、また他の尺度や方法と組み合わせて利用することも可能である。
更に、推移感受文字列間距離尺度は、文字列照合のみならず、符号法など他の応用も可能である。今日の様々な情報の記号化に伴い、必要な情報を効率良く抽出する方法が求められている中、安価で高い分離機能を有する推移感受文字列間距離尺度は広い応用分野で活用できる価値あるものである。
(第2の実施形態)
現在、二次元画像や三次元物体など、多次元配列で表現される情報の検索には、ハミング距離が利用されている。同じ長さの文字列(多次元の場合は、同じ大きさの配列)を比較対象とし、相違要素数(あるいは相違度総和)として定義されるハミング距離は、リーベンシュタイン距離と同様、相違要素の分散具合を反映しないため、全く関連の無い情報でも同じ距離に分別され、誤陽判定に繋がる可能性が高い。
以下で説明する本発明の第2の実施形態では、同じ大きさの多次元配列を比較対象とし、推移感受性を有する配列間距離について説明を行う。
ここで、配列要素は、量的比較が可能な記号要素であればよく、記号の種類および構造は問わない。二つの多次元配列間のハミング距離に、多次元空間で観測される要素間相違度の推移の総代価を加算した値を、推移感受配列間距離と定義する。要素間相違度推移総代価は、相違要素の分散具合を反映するため、二次元画像や三次元物体などの情報検索に推移感受配列間距離を用いた場合、ハミング距離を用いた場合に比べ、より適切な検索結果を得ることが可能となる。
(推移感受配列間距離尺度について)
本発明の第2の実施形態に係る情報処理装置及び情報処理方法の詳細について説明するに先立ち、本発明の実施形態に係る推移感受配列間距離尺度(Transition−sensitive Matrix Metric)について、簡単に説明する。
<基盤技術及びその問題点について>
まず、本発明の基盤となる技術(基盤技術)として、多次元のデータの検索等を行う際に利用される多次元の距離尺度について、簡単に説明する。
情報のデジタル化とともに、文字列検索のみならず、一般社会における個人認証を要する各種セキュリティシステムや、画像の自動判定を行う医療分野など、様々な分野で多次元画像あるいは多次元音声の同定・相違(近似)検定・検索が行われており、高精度、高速かつ安価に照合するための多次元の距離尺度が求められている。
例えば、二次元画像を表現する場合、画像を点描画として表現するビットマップ形式と、線や文字を用いるベクトル形式とがある。ビットマップ形式での画像の加工あるいは解析のために、各点(画素)とその周辺画素を用いた局所積和演算を行うための、様々な乗数フィルタが提供されている。例えば、エッジを検出するために一次微分を用いる差分フィルタ、エッジを先鋭化するために二次微分を用いるラプラシアン・フィルタ(Laplacian filter)、画像を滑らかにするための平均化フィルタ、太字化するためのガウシアン・フィルタ(Gaussian Filter)などがある。
また、画像を高速・安価に照合検索するために、画像の局所領域あるいは全域から特徴が抽出され、この特徴情報が画像情報に付加されている。例えば、画像をフィルタ処理で線画に変換した後、各部分線に近似する関数を割り当てる方法や、周波数解析であるウェーブレット変換法など、関数主体の特徴抽出法があるが、適用できる画像の種類が限られており、コンテンツベース画像検索(Content−based image retrieval)では、ビットマップ形式の画像に対して、ビットマップ上をある特定の大きさの領域を固定あるいは移動させ、領域内のハミング距離を測る直接的な画像照合が行われている。
ハミング距離は、先に説明したように、同じ長さの二つの文字列の距離尺度としてよく知られており、これは一つの文字列から他の文字列へ変換するために必要な最小文字置換数として定義される。長さnの二つの文字列X及びYの間のハミング距離は、以下の式21のように定式化される。ここで、下記式21において、X[i],Y[i]は、それぞれ文字列X,Yのi番目の要素(文字)を意味する。
Figure 2011243148
・・・(式21)
比較対象が一次元の文字列ではなく多次元配列である場合、例えば、大きさm×nの二次元配列XとYを例にとると、その間のハミング距離は、同様して以下の式22のように定義される。ここで、下記式22において、X[i,j],Y[i,j]は、二次元配列X,Y上のi列j行目の要素を意味する。
Figure 2011243148
・・・(式22)
なお、式21及び式22におけるd(x,y)は、式11に示した通りである。
また、連続(Fuzzy)ハミング距離は、要素間相違度関数が、0と1の二値ではなく、相違度を表す[0,1]の範囲の実数を返すよう拡張されたものである。
ハミング距離は、リーベンシュタイン距離と同様に、相違要素の箇所と分散具合を反映しないため、全く関連の無い情報でも同じ距離に評価され、誤陽判定に繋がる可能性が高い。従って、画像など多次元配列の照合においても、第1の実施形態にて説明したような、相違要素の箇所と分散具合を反映する推移感受性を距離に導入することで、誤陽判定率を下げ、より適した情報を高速・安価に検索することが実現できる。
<推移感受配列間距離尺度の概略について>
以下では、まず、本発明の実施形態に係る推移感受配列間距離尺度の概略について説明する。
本実施形態に係る推移感受配列間距離尺度は、二つの多次元配列の間の距離を決定する配列間距離尺度である。比較対象の多次元配列は、同次元で、大きさ(各次元上の上限)が等しく、量的比較が可能な記号要素からなる配列である。二つの要素の比較から、二つの要素の違いの度合い(要素間相違度:element dissimilarity)を決定する。これは、一般に、0から1の範囲内の実数で表す。ここで、比較法としては、厳密比較法あるいは近似比較法のいずれを用いてもよい。厳密比較法(exact matching)は、一致に対して0を、不一致に対して1を出力するものである。近似比較法(fuzzy matching)は、要素間相違度として0から1の範囲内の実数を出力するものであり、0は完全一致を、1は完全不一致を表す。
推移感受配列間距離(Transition−sensitive Matrix Distance:TMD)は、多次元配列の要素間相違度の総和として定義される多次元ハミング距離に、多次元空間で観測される要素相違度の推移(transition)、すなわち上昇推移(ascending transition、短くはascent)および下降推移(descending transition、短くはdescent)、の総代価(総コスト)を加算した値と定義する。
<推移感受配列間距離の定式化>
以上のような性質を有する推移感受配列間距離(TMD)を、以下で定式化する。
なお、以下では、二次元配列及び三次元配列を例にとって定式化を行うが、同様にして4次元以上の多次元配列へも拡張可能であることは言うまでもない。
大きさM×Nの二次元配列X及びYが与えられると、推移感受配列間距離(TMD)は、以下の式201のように定義される。
Figure 2011243148
・・・(式201)
ここで、上記式201において、HD(X,Y)は、配列Xと配列Yとの間のハミング距離であり、以下の式202のように定義される。
Figure 2011243148
・・・(式202)
また、上記式202におけるd[i,j](0≦i≦M,0≦j≦N)は、要素間相違度行列であり、以下の式203〜式206のように定義される。ここで、下記式206において、X[i,j],Y[i,j]は、それぞれ配列X,Yのi列j行目の要素である。
Figure 2011243148
・・・(式203)
Figure 2011243148
・・・(式204)
Figure 2011243148
・・・(式205)
Figure 2011243148
・・・(式206)
また、上記式206におけるd(x,y)は、二つの要素xとyとの間の相違度(dissimilarity)あるいは正規化距離(normalized distance)を出力する関数であり、以下の式207のように、要素間相違度は0から1の範囲の実数で表される。
0≦d(x,y)=|x−y|≦1 ・・・(式207)
ここで、要素間相違度d(x,y)=0である場合、要素xと要素yとは完全一致していることを表わし、要素間相違度d(x,y)=1である場合、要素xと要素yとは完全不一致であることを表わす。また、同一要素間の要素間相違度d(x,x)=0である。
また、要素間相違度d(x,y)は、以下の式208のように、相違度閾値(dissimilariy threshold)と呼ばれる閾値Cを用いて二値化してもよい。
Figure 2011243148
・・・(式208)
また、式201におけるT(X,Y)は、要素相違度推移総コストであり、以下の式209のように、パラメータiで表わされる列方向の要素相違度推移総コストと、パラメータjで表わされる行方向の要素相違度推移総コストの和として定義される。
Figure 2011243148
・・・(式209)
また、上記式209における関数t(d1,d2,A,B)は、ある要素間相違度d1から、異なる要素間相違度d2への推移に要するコスト(推移コスト)を出力する関数であり、以下の式210のように表わされる。
Figure 2011243148
・・・(式210)
ここで、上記式210において、係数Aは、上昇推移にかかるコストを表わす係数であり、係数Bは、下降推移にかかるコストを表わす係数である。この推移コストは、エントロピーの概念を反映した量となっている。
また、上昇推移コスト係数A,A及び下降推移コスト係数B,Bは、以下の式211で表わされる条件を満たす。ここで、以下の式211において、[x]という表記は、xを超えない最大整数を表す。
Figure 2011243148
・・・(式211)
また、上記4つのコスト係数が全て等しい場合、要素間相違度推移総コストT(X,Y)は、以下の式212及び式213のように簡略化される。
Figure 2011243148
・・・(式212)
Figure 2011243148
・・・(式213)
また、大きさM×N×Lの三次元配列X及びYが与えられると、推移感受配列間距離(TMD)は、以下の式251のように定義される。
Figure 2011243148
・・・(式251)
ここで、上記式251において、HD(X,Y)は、三次元配列Xと三次元配列Yとの間のハミング距離であり、以下の式252のように定義される。
Figure 2011243148
・・・(式252)
また、上記式252におけるd[i,j,k](0≦i≦M,0≦j≦N,0≦k≦L)は、要素間相違度行列であり、以下の式253〜式257のように定義される。
Figure 2011243148
・・・(式253)
Figure 2011243148
・・・(式254)
Figure 2011243148
・・・(式255)
Figure 2011243148
・・・(式256)
Figure 2011243148
・・・(式257)
また、式251におけるT(X,Y)は、要素相違度推移総コストであり、以下の式258のように、パラメータiで表わされる方向の要素相違度推移総コストと、パラメータjで表わされる方向の要素相違度推移総コストと、パラメータkで表わされる方向の要素相違度推移総コストの和として定義される。
Figure 2011243148
・・・(式258)
また、上記式258における関数t(d1,d2,A,B)は、ある要素間相違度d1から、異なる要素間相違度d2への推移に要するコスト(推移コスト)を出力する関数であり、上記式210と同様のものである。
これら二次元配列及び三次元配列における推移感受配列間距離の定義式を比較すれば明らかなように、本実施形態に係る推移感受配列間距離の算出方法は、四次元配列以上の高次元の配列に対しても、容易に拡張を行うことが可能である。
<情報処理装置の構成について>
本実施形態に係る情報処理装置の構成は、図3に示した本発明の第1の実施形態に係る情報処理装置10の構成と同様であり、要素間距離算出部103により実施される演算が、推移感受文字列間距離の算出演算ではなく、推移感受配列間距離の算出演算となっている。従って、以下では、本実施形態に係る情報処理装置の構成に関する詳細な説明は、省略する。
<情報処理方法の流れについて>
また、本実施形態に係る情報処理方法は、本発明の第1の実施形態において示した情報処理方法の流れと同様にして実施されるものであるため、以下では、詳細な説明は省略する。
<具体例について>
続いて、図24及び図25を参照しながら、本実施形態に係る推移感受配列間距離について、具体的に説明する。図24及び図25は、本実施形態に係る推移感受配列間距離の算出方法の一例を示した説明図である。
まず、図24を参照しながら、本実施形態に係る推移感受配列間距離を、3×3の大きさの二次元配列に適用した場合について説明する。図24に示した例では、要素すべてが0である配列(a)に対する、他の5つの配列(b)〜(f)のハミング距離HDと推移感受配列間距離TMDとを示している。
配列(b)及び配列(c)はどちらも相違要素が1個であるので、ハミング距離HDは1である。しかし、配列(b)では相違要素が左上隅に存在するのに対し、配列(c)では相違要素が中央に存在するため、TMDでは異なる値が算出されている。また、配列(d)及び配列(e)は、相違要素が5個の場合であり、配列(d)では4個の相違要素が固まって位置しているが、配列(c)は5個の配列が分散しており、TMDは互いに異なっている。また、配列(c)のTMDは8.6となり、要素すべてが異なっている配列(f)の距離9に大変近い値であることがわかる。
図25は、本実施形態に係る推移感受配列間距離を、3×3×3の大きさの三次元配列に適用した場合について示している。図24に示した例では、要素すべてが0である配列(a)に対する、他の5つの配列(b)〜(f)のハミング距離HDと推移感受配列間距離TMDとを示している。
三次元配列の場合であっても二次元配列の場合と同様に、相違要素個数が同じ配列であっても、相違要素が位置している空間的な位置が異なることで、算出されるTMDの値は異なっていることが分かる。
<推移感受配列間距離尺度の適用例について>
続いて、図26〜図28を参照しながら、本実施形態に係る推移感受配列間距離尺度の適用例について、具体的に説明する。図26〜図28は、本実施形態に係る推移感受配列間距離尺度を、二次元画像の照合及び分類処理に適用した例を示した説明図である。
図26に、20種類の画像データS01〜S20を示した。各画像データは、150×150ピクセルのビットマップで表現されている。
まず、それぞれの画像データの間の推移感受配列間距離TMDを算出した後、算出した配列間距離TMDを、配列の大きさ150×150=22500で割って正規化し、相違度を算出した。ここで、推移コスト係数は、A=B=A=B=floor(150×150/2)/(2×(2×150×150−150−150))=2.222×10−5と設定された。すべての画像データの組み合わせに対して相違度を算出した。
次に、図27に示したように、最大相違度を有する列を軸に縦横に昇順に並べ替えを行い、相似する(すなわち、距離の最も近い)グループを抽出した。ここで、図27に示した相違度配列は、自己相同を表す左上から右下の斜め線(0.00)に対して対称となっている。
抽出されたグループを、図28に示した。図28から明らかなように、算出された距離が互いに近い値となっている画像データは、類似した外形を有していることがわかる。
なお、以上説明した例では、着目している多次元配列をそのまま利用して推移感受配列間距離尺度を算出する場合について説明したが、第1の実施形態に示した推移感受文字列間距離尺度で示した場合と同様に、着目している多次元配列を複数の処理ブロックに分解して、再帰的に推移感受配列間距離尺度を算出していくことも可能である。
このように、本実施形態に係る推移感受配列間距離は、従来のハミング距離(HD)に比べ、同等の計算量、そして僅かな計算資源の追加で、より精度の高い距離を安価に決定することができ、これまでHDでは同じ距離とされた多次元配列を分離することが可能となる。
(ハードウェア構成について)
次に、図29を参照しながら、本発明の実施形態に係る情報処理装置10のハードウェア構成について、詳細に説明する。図29は、本発明の実施形態に係る情報処理装置10のハードウェア構成を説明するためのブロック図である。
情報処理装置10は、主に、CPU901と、ROM903と、RAM905と、を備える。また、情報処理装置10は、更に、ホストバス907と、ブリッジ909と、外部バス911と、インターフェース913と、入力装置915と、出力装置917と、ストレージ装置919と、ドライブ921と、接続ポート923と、通信装置925とを備える。
CPU901は、演算処理装置および制御装置として機能し、ROM903、RAM905、ストレージ装置919、またはリムーバブル記録媒体927に記録された各種プログラムに従って、情報処理装置10内の動作全般またはその一部を制御する。ROM903は、CPU901が使用するプログラムや演算パラメータ等を記憶する。RAM905は、CPU901が使用するプログラムや、プログラムの実行において適宜変化するパラメータ等を一次記憶する。これらはCPUバス等の内部バスにより構成されるホストバス907により相互に接続されている。
ホストバス907は、ブリッジ909を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス911に接続されている。
入力装置915は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなどユーザが操作する操作手段である。また、入力装置915は、例えば、赤外線やその他の電波を利用したリモートコントロール手段(いわゆる、リモコン)であってもよいし、情報処理装置10の操作に対応した携帯電話やPDA等の外部接続機器929であってもよい。さらに、入力装置915は、例えば、上記の操作手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、CPU901に出力する入力制御回路などから構成されている。情報処理装置10のユーザは、この入力装置915を操作することにより、情報処理装置10に対して各種のデータを入力したり処理動作を指示したりすることができる。
出力装置917は、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。このような装置として、CRTディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ELディスプレイ装置およびランプなどの表示装置や、スピーカおよびヘッドホンなどの音声出力装置や、プリンタ装置、携帯電話、ファクシミリなどがある。出力装置917は、例えば、情報処理装置10が行った各種処理により得られた結果を出力する。具体的には、表示装置は、情報処理装置10が行った各種処理により得られた結果を、テキストまたはイメージで表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して出力する。
ストレージ装置919は、情報処理装置10の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置919は、例えば、HDD(Hard Disk Drive)等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイス等により構成される。このストレージ装置919は、CPU901が実行するプログラムや各種データ、および外部から取得した音響信号データや画像信号データなどを格納する。
ドライブ921は、記録媒体用リーダライタであり、情報処理装置10に内蔵、あるいは外付けされる。ドライブ921は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体927に記録されている情報を読み出して、RAM905に出力する。また、ドライブ921は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体927に記録を書き込むことも可能である。リムーバブル記録媒体927は、例えば、DVDメディア、HD−DVDメディア、Blu−rayメディア等である。また、リムーバブル記録媒体927は、コンパクトフラッシュ(登録商標)(CompactFlash:CF)、フラッシュメモリ、または、SDメモリカード(Secure Digital memory card)等であってもよい。また、リムーバブル記録媒体927は、例えば、非接触型ICチップを搭載したICカード(Integrated Circuit card)または電子機器等であってもよい。
接続ポート923は、機器を情報処理装置10に直接接続するためのポートである。接続ポート923の一例として、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)ポート等がある。接続ポート923の別の例として、RS−232Cポート、光オーディオ端子、HDMI(High−Definition Multimedia Interface)ポート等がある。この接続ポート923に外部接続機器929を接続することで、情報処理装置10は、外部接続機器929から直接音響信号データや画像信号データを取得したり、外部接続機器929に音響信号データや画像信号データを提供したりする。
通信装置925は、例えば、通信網931に接続するための通信デバイス等で構成された通信インターフェースである。通信装置925は、例えば、有線または無線LAN(Local Area Network)、Bluetooth(登録商標)、またはWUSB(Wireless USB)用の通信カード等である。また、通信装置925は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、または、各種通信用のモデム等であってもよい。この通信装置925は、例えば、インターネットや他の通信機器との間で、例えばTCP/IP等の所定のプロトコルに則して信号等を送受信することができる。また、通信装置925に接続される通信網931は、有線または無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信または衛星通信等であってもよい。
以上、本発明の実施形態に係る情報処理装置10の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
10 情報処理装置
101 データ取得部
103 要素間距離算出部
105 データ前処理部
107 距離算出部
109 相違度算出部
111 推移コスト算出部
113 記憶部

Claims (7)

  1. 少なくとも2つの要素データを取得するデータ取得部と、
    前記データ取得部により取得された要素データ間の相違度を算出する相違度算出部と、
    前記データ取得部により取得された前記要素データのうち、一つの前記要素データから相異なる他の一つの前記要素データへと推移するために要するコストを算出する推移コスト算出部と、
    前記相違度算出部により算出された相違度と、前記推移コスト算出部により算出されたコストとを利用して、要素データ間の相違の度合いを表す要素間距離を算出する距離算出部と、
    を備える、情報処理装置。
  2. 前記推移コスト算出部は、
    前記要素データを構成する単位要素の相違度に基づいて、
    相対的に小さい値を有する相違度から相対的に大きい値を有する相違度へと推移するための第1の推移コスト、又は、相対的に大きな値を有する相違度から相対的に小さい値を有する相違度へと推移するための第2の推移コストを算出する、請求項1に記載の情報処理装置。
  3. 前記距離算出部は、前記相違度算出部により算出された前記相違度と、前記推移コスト算出部により算出された前記第1の推移コスト及び前記第2の推移コストと、の総和を算出し、前記要素間距離とする、請求項2に記載の情報処理装置。
  4. 前記情報処理装置は、前記データ取得部により取得された前記要素データに対して、所定の前処理を実施するデータ前処理部を更に備える、請求項1に記載の情報処理装置。
  5. 前記データ前処理部は、前記要素データが構造化されたデータである場合に、当該構造化されたデータを複数の構造要素へと分割し、
    前記相違度算出部、前記推移コスト算出部及び前記距離算出部は、前記構造要素毎に処理を実施する、請求項4に記載の情報処理装置。
  6. 少なくとも2つの要素データを取得するステップと、
    前記データ取得部により取得された要素データ間の相違度を算出するステップと、
    取得された前記要素データのうち、一つの前記要素データから相異なる他の一つの前記要素データへと推移するために要するコストを算出するステップと、
    算出された相違度及びコストを利用して、要素データ間の相違の度合いを表す要素間距離を算出するステップと、
    を含む、情報処理方法。
  7. コンピュータに、
    少なくとも2つの要素データを取得するデータ取得機能と、
    前記データ取得機能により取得された要素データ間の相違度を算出する相違度算出機能と、
    前記データ取得機能により取得された前記要素データのうち、一つの前記要素データから相異なる他の一つの前記要素データへと推移するために要するコストを算出する推移コスト算出機能と、
    前記相違度算出機能により算出された相違度と、前記推移コスト算出機能により算出されたコストとを利用して、要素データ間の相違の度合いを表す要素間距離を算出する距離算出機能と、
    を実現させるためのプログラム。
JP2010117259A 2010-05-21 2010-05-21 情報処理装置、情報処理方法及びプログラム Withdrawn JP2011243148A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010117259A JP2011243148A (ja) 2010-05-21 2010-05-21 情報処理装置、情報処理方法及びプログラム
US13/085,059 US8874573B2 (en) 2010-05-21 2011-04-12 Information processing apparatus, information processing method, and program
CN2011101269331A CN102253960A (zh) 2010-05-21 2011-05-13 信息处理设备、信息处理方法和程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010117259A JP2011243148A (ja) 2010-05-21 2010-05-21 情報処理装置、情報処理方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2011243148A true JP2011243148A (ja) 2011-12-01

Family

ID=44973350

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010117259A Withdrawn JP2011243148A (ja) 2010-05-21 2010-05-21 情報処理装置、情報処理方法及びプログラム

Country Status (3)

Country Link
US (1) US8874573B2 (ja)
JP (1) JP2011243148A (ja)
CN (1) CN102253960A (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014047214A1 (en) * 2012-09-18 2014-03-27 Hendrey Geoffrey R Hierarchical ordering of strings
US9449056B1 (en) * 2012-11-01 2016-09-20 Intuit Inc. Method and system for creating and updating an entity name alias table
US20140195470A1 (en) * 2013-01-08 2014-07-10 Telefonaktiebolaget L M Ericsson (Pub) Large-scale human mobility pattern recognition
US9286332B1 (en) 2013-08-29 2016-03-15 Intuit Inc. Method and system for identifying entities and obtaining financial profile data for the entities using de-duplicated data from two or more types of financial management systems
KR101621780B1 (ko) * 2014-03-28 2016-05-17 숭실대학교산학협력단 차신호 주파수 프레임 비교법에 의한 음주 판별 방법, 이를 수행하기 위한 기록 매체 및 장치
US10997671B2 (en) * 2014-10-30 2021-05-04 Intuit Inc. Methods, systems and computer program products for collaborative tax return preparation
US10482544B2 (en) 2016-01-28 2019-11-19 Intuit Inc. Methods, systems and computer program products for masking tax data during collaborative tax return preparation
CN107203567A (zh) * 2016-03-18 2017-09-26 伊姆西公司 用于搜索字串的方法和设备
CN109117703B (zh) * 2018-06-13 2022-03-22 中山大学中山眼科中心 一种基于细粒度识别的混杂细胞种类鉴定方法
US11093462B1 (en) 2018-08-29 2021-08-17 Intuit Inc. Method and system for identifying account duplication in data management systems

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6018735A (en) * 1997-08-22 2000-01-25 Canon Kabushiki Kaisha Non-literal textual search using fuzzy finite-state linear non-deterministic automata
JP4652741B2 (ja) * 2004-08-02 2011-03-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 異常検出装置、異常検出方法、異常検出プログラム、及び記録媒体
WO2006030751A1 (ja) * 2004-09-14 2006-03-23 Intellectual Property Bank Corp. 文書を時系列に配置した文書相関図の作成装置
US7551234B2 (en) * 2005-07-28 2009-06-23 Seiko Epson Corporation Method and apparatus for estimating shot boundaries in a digital video sequence
JP4229100B2 (ja) * 2005-08-15 2009-02-25 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置
JP4196302B2 (ja) * 2006-06-19 2008-12-17 ソニー株式会社 情報処理装置および方法、並びにプログラム
JP4359601B2 (ja) * 2006-06-20 2009-11-04 アドバンスド・マスク・インスペクション・テクノロジー株式会社 パターン検査装置、及びパターン検査方法
JP4165580B2 (ja) * 2006-06-29 2008-10-15 トヨタ自動車株式会社 画像処理装置及び画像処理プログラム
JP5229744B2 (ja) * 2007-12-03 2013-07-03 国立大学法人北海道大学 画像分類装置および画像分類プログラム
US20090167958A1 (en) * 2007-12-28 2009-07-02 Ati Technologies Ulc System and method of motion vector estimation using content associativity
US7925652B2 (en) 2007-12-31 2011-04-12 Mastercard International Incorporated Methods and systems for implementing approximate string matching within a database
CN101520783B (zh) * 2008-02-29 2011-12-21 富士通株式会社 基于图像内容的关键词搜索方法和装置
US8150181B2 (en) * 2008-11-17 2012-04-03 Stmicroelectronics S.R.L. Method of filtering a video sequence image from spurious motion effects
FR2939170B1 (fr) * 2008-11-28 2010-12-31 Snecma Detection d'anomalie dans un moteur d'aeronef.
WO2010084712A1 (ja) * 2009-01-23 2010-07-29 日本電気株式会社 データ検索装置
AU2010208227B2 (en) * 2009-01-29 2014-06-12 The Nielsen Company (Us), Llc Methods and apparatus to measure market statistics
CN101561813B (zh) * 2009-05-27 2010-09-29 东北大学 一种Web环境下的字符串相似度的分析方法
BR112012006702A2 (pt) * 2009-09-25 2019-09-24 Landmark Graphics Corp dispositivos e métodos para a estimativa de incerteza de previsão de produção
US8676818B2 (en) * 2010-05-03 2014-03-18 International Business Machines Corporation Dynamic storage and retrieval of process graphs representative of business processes and extraction of formal process models therefrom

Also Published As

Publication number Publication date
CN102253960A (zh) 2011-11-23
US20110289109A1 (en) 2011-11-24
US8874573B2 (en) 2014-10-28

Similar Documents

Publication Publication Date Title
JP2011243148A (ja) 情報処理装置、情報処理方法及びプログラム
CN111753060B (zh) 信息检索方法、装置、设备及计算机可读存储介质
Large et al. On time series classification with dictionary-based classifiers
DE60315506T2 (de) Identifizierung von kritischen merkmalen in einem geordneten skala-raum
US11157550B2 (en) Image search based on feature values
US7567954B2 (en) Sentence classification device and method
CN112256939B (zh) 一种针对化工领域的文本实体关系抽取方法
US20180341686A1 (en) System and method for data search based on top-to-bottom similarity analysis
WO2019050624A1 (en) PROCESSING COMPUTER JOURNAL MESSAGES FOR VISUALIZATION AND RECOVERY
JPH0451363A (ja) 画像情報検索装置
CN113254601B (zh) 面向知识产权的科技资源画像构建方法、装置和存储介质
KR102334236B1 (ko) 음성 변환 Text Data에서 의미있는 키워드 추출 방법과 활용
CN110046264A (zh) 一种面向手机文档的自动分类方法
CN112784009B (zh) 一种主题词挖掘方法、装置、电子设备及存储介质
Liu et al. Integrating object ontology and region semantic template for crime scene investigation image retrieval
JP2011248596A (ja) 画像入り文書の検索システム及び検索方法
CN114461890A (zh) 分层多模态的知识产权搜索引擎方法与系统
Mi et al. Knowledge-aware cross-modal text-image retrieval for remote sensing images
AU2015204339B2 (en) Information processing apparatus and information processing program
CN111341404B (zh) 一种基于ernie模型的电子病历数据组解析方法及系统
Fuller et al. Structuring, recording, and analyzing historical networks in the china biographical database
CN113157913A (zh) 一种基于社会新闻数据集的伦理行为判别方法
Dhumal et al. Retrieval and extraction of unique patterns from compressed text data using the SVD technique on Hadoop Apache MAHOUT framework
Varshneya et al. Learning interpretable concept groups in CNNs
Froese et al. Fast exact dynamic time warping on run-length encoded time series

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130806