【文献】
及川 孝徳,非構造テキストデータの機微情報秘匿化支援技術,情報処理学会 研究報告 セキュリティ心理学とトラスト(SPT) 2013−SPT−006,日本,情報処理学会,2013年 7月11日,1−6ページ
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
以下、本発明の実施形態について図面を参照して詳細に説明する。
図1は、本発明の実施形態に係るデータ処理装置を示す図である。クライアント200から入力された商品の型番を認証するためのデータ処理装置100は、商品カタログのデータベース70と、入力された対象データがデータベース70に格納されているか否か検索し、対象データがデータベース70に格納されていなかった場合に、対象データに類似する候補データをデータベース70から抽出する処理部10と、抽出する際に使用される閾値などを入力する入力部81、処理結果を表示する表示部82、およびネットワーク300を介してクライアント200などと通信を行う通信部85から構成される。
【0015】
データベース70は、HDD(Hard disk drive)装置などにより構成される。処理部10は、CPU(Central Processing Unit)によって、RAM(Random Access Memory)やHDD上のプログラムを実行することで実現される。入力部81は、キーボードやマウスなどのコンピュータに指示を入力するための装置であり、プログラム起動などの指示を入力する。表示部82は、ディスプレイなどであり、データ処理装置100による処理の実行状況や実行結果などを表示する。通信部85は、ネットワーク300を介して、他のサーバなどと各種データやコマンドを交換する。
【0016】
データベース70には、商品カタログの詳細情報である商品名、商品の型番、メーカ名、価格、納期、製品の特徴などの情報であるカタログDB71、カタログDB71のうち所定の分類ごとに商品の型番を分類した情報であるカタログ型番DB72(
図2参照)、誤入力があった際に修正された入力回数の履歴を記録した情報である誤入力修正履歴DB73(
図3参照)、カタログ型番DB72を、単位文字数順に並べ替えた情報である単位文字順カタログ型番DB74(
図4参照)、対象データに類似する候補データをデータベース70から抽出する際に使用する情報(例えば、閾値)である抽出条件情報75などが格納されている。
【0017】
処理部10は、入力された対象データがデータベース70に格納されているか否かを検索する検索部20(入力判定処理部)と、対象データがデータベース70に格納されていなかった場合に、対象データに類似する候補データをデータベース70から抽出する抽出部30(誤入力処理部)と、抽出された候補データを提示する候補提示部40と、誤入力修正履歴DB73の履歴を更新する履歴更新部50と、カタログ型番DB72を単位文字数順に分類する分類処理部60の複数のプログラムを有する。
【0018】
検索部20は、データ(例えば、商品の型番)に含まれる、ひとつの数値および該数値以外の文字を一単位文字とするとともに、メタ文字表現を一単位文字として単位文字ごとに分割し、分割された単位文字の数を単位文字数として算出する単位文字分割部21と、対象データと、比較対象データとが単位文字単位で単位文字が合っているか否かを比較する単位文字比較部22を有している。
【0019】
抽出部30は、前記した単位文字分割部21、単位文字数が所定範囲に該当するデータを、データベース70から候補データとして抽出する単位文字数別抽出部32と、対象データと比較対象データとの間の距離を算出する距離算出部33と、単位文字数別抽出部33で抽出された候補データのうち、算出された距離が所定値以下のデータを、候補データとして抽出する距離別抽出部34を有している。
【0020】
図2は、カタログ型番DBの一例を示す図である。カタログ型番DB72には、多数の商品の型番であるデータが登録されている。例えば、123345、P10−5、・・・である。商品の型番には、既に説明したメタ文字表現で記載されているものが多数ある。
【0021】
具体的に説明すると、商品の型番がD51−M{0.1..100(0.01)}−LS{10,20,45,50,90}のデータの場合、文字「D」、数値「51」、文字「−」、文字「M」、メタ文字表現「{0.1..100(0.01)}」、文字「−」、文字「L」、文字「S」、メタ文字表現「{10,20,45,50,90}」から構成されており、単位文字数としては、「9」となる。なお、メタ文字表現の部分は、数値1個を表すため、ひとつの単位文字である。
【0022】
前記のメタ文字表現部分である{0.1..100(0.01)}は、0.1から100まで、0.01刻みの数値の中から1つが指定されることを意味する。また、メタ文字表現部分である{10,20,45,50,90}は、列挙された数値の中からひとつが指定されることを意味する。
【0023】
図3は、誤入力修正履歴DBの一例を示す図である。誤入力修正履歴DB73には、誤入力があった際に修正された入力回数の履歴を記録した修正履歴の情報であり、型番と誤入力回数を含んで構成されている。具体的に説明すると、型番がC{10,11}−3Dの場合、誤入力回数は50回あり、型番がC{1,10}−B{2,3}の場合、誤入力回数は100回あったことがわかる。
【0024】
図4は、単位文字数順カタログ型番DBの一例を示す図である。分類処理部60(
図1参照)は、予めカタログ型番DB72を単位文字数順に分類している。単位文字数順カタログ型番DB74には、単位文字数、単位文字分割後の型番(単位文字ごとにコンマ(,)で区切られている)、元の型番から構成されている。例えば、型番が123345の場合、ひとつの数値であるため、単位文字数は「1」である。また、型番がA,B,C,−,L,{1..10(0.1)},−,W,{2..5(0.5)},−,H,{1,2,3}の場合、単位文字数は「12」である。
【0025】
(入力判定処理)
図5は、入力判定処理を示すフローチャートである。
図6は、入力判定処理の一例を示す図である。適宜
図1を参照して説明する。入力判定処理S110は、検索部20がクライアント200から発注データを受理すると、発注データに含まれる型番を対象データとして、データベース70に格納されているか否かを検索する処理である。対象データは、例えば、
図6(a)に示す「A1−B2」である。
【0026】
単位文字分割部21は、対象データを単位文字に分割する(処理S111)。単位文字分割されると、
図6(b)に示す「A,1,−,B,2」となる。
【0027】
単位文字分割部21は、該当するカタログ型番DB72をメモリに読込み、作業用のリストに格納する(処理S112)。
【0028】
単位文字比較部22は、対象データの先頭から単位文字ごとに(処理S113)、処理S114〜処理S116を繰り返す。まず、対象データの単位文字に該当する単位文字がリストにあるか否かを判定し(処理S114)、該当する単位文字がある場合(処理S114,Yes)、リストを絞り込み(処理S115)、次の単位文字へ進む(処理S116)。該当する単位文字がない場合(処理S114,No)、誤入力処理に進む(処理S118)。
【0029】
図6を参照して具体的に説明すると、1単位文字目で絞り込むと、
図6(c)に示すようになる。対象データの「A」に該当するデータが絞り込まれ、例えば、A1−XY、A{1,3}−D{2,3}、ABC−L{1..10(0.1)}−W{2..5(0.5)}−H{1,2,3}となる。次に、2単位文字目で絞り込むと、
図6(d)に示すようになる。対象データの「1」に該当するデータが絞り込まれ、例えば、A1−XY、A{1,3}−D{2,3}となる。なお、メタ文字表現の{1,3}には、「1」が含まれている。
【0030】
さらに、3単位文字目で絞り込むと、
図6(e)に示すようになる。対象データの「−」に該当するデータが絞り込まれるが、
図6(d)にくらべて変更のないA1−XY、A{1,3}−D{2,3}となる。さらに、4単位文字目で絞り込むと、
図6(f)に示すよう、リストには、該当するデータがない状態になる。
図6に示す例の場合、4単位文字目の絞りこみで対象データである「A1−B2」が、誤入力と判定される。
【0031】
一方、対象データである「A1−B2」があった場合、型番は正しいので、受注処理に進む(処理S117)。なお、受注処理は、受注処理を担当する受注サーバ(不図示)が担当するが、説明は省略する。
【0032】
(誤入力処理)
図7は、誤入力処理を示すフローチャートである。
図8は、誤入力処理の一例を示す図である。適宜
図1を参照して説明する。誤入力処理S130は、対象データがデータベース70に格納されていなかった場合に、対象データに類似する候補データをデータベース70から抽出する処理である。
【0033】
単位文字分割部21は、
図8(a)に示す対象データを単位文字に分割する(処理S111)。単位文字分割されると、
図8(b)に示す「A,1,−,B,2」となる。なお、処理S111は、入力判定処理S110で既に実行している場合は、省略することができる。
【0034】
単位文字分割部21は、該当するカタログ型番DB72に対応する単位文字数順カタログ型番DB74をメモリに読込み、作業用のリストに格納する(処理S132)。
【0035】
単位文字数別抽出部32は、抽出条件情報75に格納されている閾値を読込み(処理S133)、単位文字数および閾値に基づき、式(1)による絞込み単位文字数でリストを絞り込む(処理S134)。
【0036】
(対象データの単位文字数−閾値)の絶対値
≦絞り込み単位文字数
≦(対象データの単位文字数+閾値) ・・・式(1)
【0037】
距離算出部33は、処理S134の該当データの距離(以下、編集距離という)を算出する(処理S135)。距離別抽出部34は、算出された編集距離に基づき所定値である閾値以下でリストを絞り込む(処理S136)。距離別抽出部34は、リストに対象データに対する修正候補があるか否かを判定し(処理S137)、修正候補がない場合(処理S137,No)、閾値が大きくなるように変更し(処理S138)、処理S136に進む。なお、処理S135のデータ間の距離を算出する際に、例えば、ハミング距離(信号距離)、レーベンシュタイン距離(編集距離)など、既存の技術を利用可能である。編集距離については、後記する。
【0038】
修正候補がある場合(処理S137,Yes)、候補提示部40は、誤入力修正履歴DB73を参照して、誤入力回数の多い順に並べ替え(処理S140)、並べ替えした修正候補データを、クライアント200に出力する(処理S141)。出力例は、
図9を参照して後記する。
【0039】
そして、候補提示部40は、修正候補データがクライアント200で選択されたか否かを判定し(処理S142)、選択された場合(処理S142,Yes)、選択された修正候補データの誤入力回数を1加算することによって誤入力修正履歴DB73を更新し(処理S143)、一連の処理を終了する。一方、修正候補データが選択されない場合(処理S142,No)、入力判定処理S110に戻り(処理S144、
図5参照)、処理を終了する。
【0040】
図8を参照して具体的に説明すると、対象データの単位文字数の「5」および閾値の「1」で絞り込むと、
図8(c)に示すようになる。絞り込まれた修正候補データは、
式(1)により、
4≦絞り込み単位文字数≦6
となる。
【0041】
さらに、編集距離が算出されると、
図8(d)に示すようになる。対象データの「A1−B2」との編集距離は、1〜5と算出されている。そして、算出された編集距離について、閾値の「1」以下で絞り込むと
図8(e)に示すようになる。対象データの「A1−B2」の修正候補データとして、C{1,10}−B{2,3}、A{1,3}−D{2,3}がある。
【0042】
図9は、クライアントの表示画面の一例を示す図である。
図9には、候補提示部40(
図1参照)が提示するクライアント200の表示画面を示す。表示画面には、例えば、「A1−B2という型番は存在しません。もしかしてこちらではないでしょうか?C{1,10}−B{2,3}、A{1,3}−D{2,3}」という表示がされる。顧客は、発注の入力間違いがあるとすばやく気づくことができ、例えば、C1−B2が入力される。
【0043】
(編集距離)
距離算出部33が算出する編集距離について説明する。編集距離には、ある文字列と別の文字列の類似度を測る手法の1つであるレーベンシュタイン(Levenshtein)距離、Damerau-Levenshtein距離などを利用する。但し、編集距離は、本実施形態のメタ文字表現の取扱いについてはこれまで取り扱う例がない。メタ文字表現の部分は、複数の数値の集合とみなすこともできるため、本実施形態でその取り合い方法について検討した。
【0044】
編集距離は、編集距離が大きいほど2つの文字列が異なることを表す。編集距離の計算においては、対象データである文字列を単位文字ごとに分割し、一方の文字列の単位文字を挿入・削除・置換(場合によっては転置も考慮)して他方の文字列を生成するときの最小操作回数で定義される。メタ文字表現の部分は、数値1個を表すため、メタ文字表現の部分列はどれも単位文字として編集距離を計算する。既に説明したように、カタログの商品の型番中の数値部分は、1単位文字として編集距離を計算する。
【0045】
メタ選択表現の部分に関する編集距離の計算ルールを以下のようにする。
(1)メタ選択表現の部分{m1,m2,m3}と文字nとの比較:nがm1,m2,m3のいずれかと一致すれば同じ単位文字,一致しなければ異なる単位文字とする。
(2)メタ選択表現の部分どうしである{m1,m2,m3}と{n1,n2,n3,n4}との比較:メタ選択表現同士がまったく同じ中身であれば同じ単位文字、異なる中身であれば異なる単位文字とする。
【0046】
例えば、
図8(d)に示す、A1−B2と、C{10,11}−D3との編集距離の算出の場合、文字「A」を文字「C」に置換し、数値「1」をメタ文字表現の部分「{10,11}」に置換し、文字「−」は同一であり、文字「B」を文字「D」に置換し、数値「2」を数値「3」に置換している、よって、編集距離が「4」となる。
【0047】
同様に、A1−B2と、C{1,10}−B{2,3}との編集距離の算出の場合、文字「A」を文字「C」に置換し、数値「1」は、メタ文字表現の部分「{1,10}」に含まれており、文字「−」および文字「B」は同一であり、数値「2」は、メタ文字表現の部分「{2,3}」に含まれている。よって、編集距離が「1」となる。
【0048】
言い換えると、単位文字の比較のルールとしては、下記となる。
(a)数値の単位文字同士の比較:
同じ数値であれば、編集距離を+0(何も加算しないこと)とする。
異なる数値であれば、編集距離を+1(1を加算すること)とする。
(b)数値の単位文字と、メタ文字表現の部分の比較:
数値がメタ文字表現の部分の範囲に入っていれば編集距離を+0とする。
数値がメタ文字表現の部分の範囲に入っていなければ編集距離を+1とする。
【0049】
本実施形態では、メタ文字表現の部分を持つ商品の型番に対しても類似度を計算できる。また、現実的な計算資源と計算時間の範囲内で、集合とみなされる選択表現を持つ商品の型番のあるデータベース70において、類似検索やあいまい検索ができる。
【0050】
本実施形態では、クライアント200からの入力について説明したが、管理者が入力部81を介して、対象データを入力してもよい。
【0051】
対象データに対する比較対象データとして数百万件を対象とすることがある。本実施形態のデータ処理装置を適用することにより、入力誤りを早期に発見できるとともに、類似する型番を提示することができるため、インターネットビジネスの向上に有効な手段となる。また、本実施形態では、カタログの型番を対象データとして示したがこれに限定されるのではなく、メタ文字表現の数値を含む文字列であれば、データ処理方法を適用することができる。