特許第6143606号(P6143606)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 株式会社日立ソリューションズ東日本の特許一覧

<>
  • 特許6143606-データ処理装置およびデータ処理方法 図000002
  • 特許6143606-データ処理装置およびデータ処理方法 図000003
  • 特許6143606-データ処理装置およびデータ処理方法 図000004
  • 特許6143606-データ処理装置およびデータ処理方法 図000005
  • 特許6143606-データ処理装置およびデータ処理方法 図000006
  • 特許6143606-データ処理装置およびデータ処理方法 図000007
  • 特許6143606-データ処理装置およびデータ処理方法 図000008
  • 特許6143606-データ処理装置およびデータ処理方法 図000009
  • 特許6143606-データ処理装置およびデータ処理方法 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6143606
(24)【登録日】2017年5月19日
(45)【発行日】2017年6月7日
(54)【発明の名称】データ処理装置およびデータ処理方法
(51)【国際特許分類】
   G06F 17/30 20060101AFI20170529BHJP
【FI】
   G06F17/30 350C
【請求項の数】5
【全頁数】12
(21)【出願番号】特願2013-170242(P2013-170242)
(22)【出願日】2013年8月20日
(65)【公開番号】特開2015-41124(P2015-41124A)
(43)【公開日】2015年3月2日
【審査請求日】2016年4月21日
(73)【特許権者】
【識別番号】000233538
【氏名又は名称】株式会社日立ソリューションズ東日本
(74)【代理人】
【識別番号】110001807
【氏名又は名称】特許業務法人磯野国際特許商標事務所
(74)【代理人】
【識別番号】100064414
【弁理士】
【氏名又は名称】磯野 道造
(74)【代理人】
【識別番号】100111545
【弁理士】
【氏名又は名称】多田 悦夫
(72)【発明者】
【氏名】森川 浩司
(72)【発明者】
【氏名】高梨 勝敏
(72)【発明者】
【氏名】宗形 聡
【審査官】 吉田 誠
(56)【参考文献】
【文献】 特開2011−044122(JP,A)
【文献】 特開2005−352888(JP,A)
【文献】 国際公開第2007/132564(WO,A1)
【文献】 及川 孝徳,非構造テキストデータの機微情報秘匿化支援技術,情報処理学会 研究報告 セキュリティ心理学とトラスト(SPT) 2013−SPT−006,日本,情報処理学会,2013年 7月11日,1−6ページ
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
入力された対象データがデータベースに格納されているか否かを検索する検索部と、
前記対象データが前記データベースに格納されていなかった場合に、前記対象データに類似する候補データを前記データベースから抽出する抽出部と、を備え、
前記データベースには、複数の数値の中からひとつの数値が選択されることを意味するメタ文字表現を含んだデータが格納されており、
前記抽出部は、
前記対象データに含まれる、ひとつの数値および該数値以外の文字を一単位文字とするとともに、前記メタ文字表現を一単位文字として単位文字ごとに分割し、前記分割された単位文字の数を単位文字数として算出する単位文字分割部と、
前記単位文字数が所定範囲に該当するデータを、前記候補データとして抽出する単位文字数別抽出部と、
前記対象データと前記データベースに格納されたデータとの間の距離を算出する距離算出部と、
前記単位文字数別抽出部で抽出された候補データのうち、前記算出された距離が所定値以下のデータを、前記候補データとして抽出する距離別抽出部と、を有する
ことを特徴とするデータ処理装置。
【請求項2】
前記データ処理装置は、さらに、
前記距離別抽出部で抽出された候補データを、前記対象データの候補としてクライアントに提示する候補提示部を有する
ことを特徴とする請求項1に記載のデータ処理装置。
【請求項3】
前記データ処理装置は、さらに、
前記クライアントによって前記提示した候補データが入力された場合、前記入力された候補データの入力回数を誤入力回数として、前記データベースに履歴を記録する履歴更新部を有する
ことを特徴とする請求項2に記載のデータ処理装置。
【請求項4】
前記所定値は、予め設定されており、
前記距離別抽出部が、前記候補データとして抽出できない場合、前記所定値を増やして、改めて前記候補データを抽出する
ことを特徴とする請求項1に記載のデータ処理装置。
【請求項5】
データ処理装置は、データベースと、処理部とを有し、
前記データベースには、複数の数値の中からひとつの数値が選択されることを意味するメタ文字表現を含んだデータが格納されており、
前記処理部は、
入力された対象データが前記データベースに格納されているか否かを検索し、
前記対象データが前記データベースに格納されていなかった場合に、
前記対象データに含まれる、ひとつの数値および該数値以外の文字を一単位文字とするとともに、前記メタ文字表現を一単位文字として単位文字ごとに分割し、前記分割された単位文字の数を単位文字数として算出し、
前記単位文字数が所定範囲に該当するデータを、候補データとして抽出し、
前記対象データと前記データベースに格納されたデータとの間の距離を算出し、
記抽出された候補データのうち、前記算出された距離が所定値以下のデータを、前記候補データとして抽出する
ことを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置に関し、特に複数の数値の中からひとつの数値が選択されることを意味するメタ文字表現を含んだデータを抽出する技術に関する。
【背景技術】
【0002】
一般に、顧客が商品カタログを参照して、商品を発注する際に商品の型番で発注することが多い。発注を受けた受注サーバは、注文で誤入力(例えば、カタログにない商品が指定されること)があった場合、文字列類似度を用いた検索でカタログのデータベースから正しい商品名の候補を抽出することができる(例えば、特許文献1参照)。
【0003】
産業部品の商品カタログにおいては、商品の型番の一部が加工仕様を表しているものがあり、加工可能な条件の幅に合わせて商品の型番の一部が「加工仕様の幅が表記されておりその範囲で加工条件をひとつの数値が選択される」という「メタ文字表現」で表されているものがある。
【0004】
「メタ文字表現」を持つ商品の型番の例として、A{1,1.5,2,2.5,3}Bとあれば、{1,1.5,2,2.5,3}は5つの数値1、1.5、2、2.5、3の中からひとつの数値が選択されることを意味する。顧客は発注の際に、例えばA1.5Bと入力する。
【0005】
また、他の「メタ文字表現」を持つ商品の型番の例として、A{1..3(0.5)}Bとあれば、{1..3(0.5)}は1から3まで0.5刻みの数値の中から一つを選ぶことを意味する。この場合は{1..3(0.5)}は、{1,1.5,2,2.5,3}と同じ意味となる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】国際公開WO2007/132564号
【発明の概要】
【発明が解決しようとする課題】
【0007】
一般に、文字列の類似度の算出は、単一商品を表す文字列に対して行なうものである。このため、データベースにメタ文字表現を含んでいるデータがある場合、メタ文字表現で表された文字列に対しては類似度を算出できない。
【0008】
したがって、メタ文字表現を持つ商品の型番に対して文字列類似度を計算する場合、メタ文字表現を持つ商品の型番を単一の商品を表す文字列に分解して計算しなければならなかった。すなわち、「メタ文字表現」を持つ商品の型番がA{1..3(0.5)}Bの場合、A1B、A1.5B、A2B、A2.5B、A3Bと分解する必要がでてくる。
【0009】
しかしながら、メタ文字表現を持つ商品の型番を単一の商品の型番の文字列に分解すると、商品点数が爆発的に増加するため、計算資源や計算時間の観点からこの分解は現実的ではなかった。
【0010】
本発明は、前記した課題を解決するためになされたものであり、複数の数値の中からひとつの数値が選択されることを意味するメタ文字表現を含んだデータを抽出することができるデータ処理装置およびデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
前記目的を達成するため、本発明のデータ処理装置は、入力された対象データがデータベースに格納されているか否かを検索する検索部と、対象データがデータベースに格納されていなかった場合に、対象データに類似する候補データをデータベースから抽出する抽出部と、を備え、データベースには、複数の数値の中からひとつの数値が選択されることを意味するメタ文字表現を含んだデータが格納されており、抽出部は、対象データに含まれる、ひとつの数値および該数値以外の文字を一単位文字とするとともに、メタ文字表現を一単位文字として単位文字ごとに分割し、分割された単位文字の数を単位文字数として算出する単位文字分割部と、単位文字数が所定範囲に該当するデータを、候補データとして抽出する単位文字数別抽出部と、対象データとデータベースに格納されたデータとの間の距離を算出する距離算出部と、単位文字数別抽出部で抽出された候補データのうち、算出された距離が所定値以下のデータを、候補データとして抽出する距離別抽出部と、を有することを特徴とする。
【発明の効果】
【0012】
本発明によれば、複数の数値の中からひとつの数値が選択されることを意味するメタ文字表現を含んだデータを抽出することができる。
【図面の簡単な説明】
【0013】
図1】本発明の実施形態に係るデータ処理装置を示す図である。
図2】カタログ型番DBの一例を示す図である。
図3】誤入力修正履歴DBの一例を示す図である。
図4】単位文字数順カタログ型番DBの一例を示す図である。
図5】入力判定処理を示すフローチャートである。
図6】入力判定処理の一例を示す図である。
図7】誤入力処理を示すフローチャートである。
図8】誤入力処理の一例を示す図である。
図9】クライアントの表示画面の一例を示す図である。
【発明を実施するための形態】
【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】
対象データに対する比較対象データとして数百万件を対象とすることがある。本実施形態のデータ処理装置を適用することにより、入力誤りを早期に発見できるとともに、類似する型番を提示することができるため、インターネットビジネスの向上に有効な手段となる。また、本実施形態では、カタログの型番を対象データとして示したがこれに限定されるのではなく、メタ文字表現の数値を含む文字列であれば、データ処理方法を適用することができる。
【符号の説明】
【0052】
10 処理部
20 検索部
21 単位文字分割部
22 単位文字比較部
30 抽出部
32 単位文字数別抽出部
33 距離算出部
34 距離別抽出部
40 候補提示部
50 履歴更新部
60 分類処理部
70 データベース
71 カタログDB
72 カタログ型番DB
73 誤入力修正履歴DB
74 単位文字数順カタログ型番DB
75 抽出条件情報
100 データ処理装置
200 クライアント
300 ネットワーク
S110 入力判定処理
S130 誤入力処理
図1
図2
図3
図4
図5
図6
図7
図8
図9