JP4740060B2 - 重複データ検出プログラム、重複データ検出方法および重複データ検出装置 - Google Patents

重複データ検出プログラム、重複データ検出方法および重複データ検出装置 Download PDF

Info

Publication number
JP4740060B2
JP4740060B2 JP2006207904A JP2006207904A JP4740060B2 JP 4740060 B2 JP4740060 B2 JP 4740060B2 JP 2006207904 A JP2006207904 A JP 2006207904A JP 2006207904 A JP2006207904 A JP 2006207904A JP 4740060 B2 JP4740060 B2 JP 4740060B2
Authority
JP
Japan
Prior art keywords
data
duplicate data
syntax tree
duplicate
leaf node
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.)
Expired - Fee Related
Application number
JP2006207904A
Other languages
English (en)
Other versions
JP2008033728A (ja
Inventor
達哉 浅井
青史 岡本
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006207904A priority Critical patent/JP4740060B2/ja
Priority to US11/599,534 priority patent/US20080027916A1/en
Publication of JP2008033728A publication Critical patent/JP2008033728A/ja
Application granted granted Critical
Publication of JP4740060B2 publication Critical patent/JP4740060B2/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/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees

Description

本発明は重複データ検出プログラム、重複データ検出方法および重複データ検出装置に関し、特に、文字列を備える複数のデータから重複するデータを検出する重複データ検出プログラム、重複データ検出方法および重複データ検出装置に関する。
企業の業務において、データベースシステムが多く利用される。データベースシステムには様々なデータが管理されている。このデータベースシステムには、複数のユーザが、アクセスを行い、データの追加、更新、削除等を行うため、例えば同じような内容のデータが違う名前で保存される等によりデータが重複されて登録されてしまうことも少なくない。
このような重複登録はデータベースの容量の肥大化を招き、データベースシステムの運用サーバの台数の増大による維持コストの増大や、検索時間の増大等の問題が生じる。
このため、特にテキストデータに関して入力データの部分文字列を抽出し(例えば、特許文献1参照)、抽出した文字列の重複を検出する方法が知られている(例えば、特許文献2参照)。
また、人間が日常的に使っている自然言語をコンピュータに処理させる自然言語処理や、コンピュータが過去のデータに基づいて未知のデータに対する予測を行う機械学習等を用いて文字列の重複を検出する方法が知られている。
特開2004−164120号公報 特開2004−164133号公報
しかしながら、自然言語処理や機械学習等ではテキストデータの容量がギガバイト(Gigabyte)やテラバイト(Terabyte)単位のような比較的大容量のデータから文字列の重複を検出するには計算時間が増大し、非常に手間がかかるという問題がある。
本発明はこのような点に鑑みてなされたものであり、短時間で重複データを検出するためのデータ絞り込みを容易に行うことができる重複データ検出プログラム、重複データ検出方法および重複データ検出装置を提供することを目的とする。
本発明では上記問題を解決するために、図1に示すような処理をコンピュータに実行させるための重複データ検出プログラムが提供される。
本発明に係る重複データ検出プログラムは、文字列を備える複数のデータから重複するデータを検出するプログラムである。
重複データ検出プログラムを実行するコンピュータ1は以下の機能を有する。
構文木構築手段2が、データ毎に、隣接しない所定の文字位置の文字を複数個取り出した構文木を構築する。
重複データ検出手段3が、構文木の葉ノード毎に、葉ノードに到達したデータが複数存在するか否かを判断し、同一の葉ノードに到達したデータを重複データ候補として検出する。
このような重複データ検出プログラムによれば、構文木構築手段2により、データ毎に文字列の隣接しない所定の文字位置の文字を複数個取り出した構文木が構築される。そして、重複データ検出手段3により、構文木の葉ノード毎に、葉ノードに到達したデータが複数存在するか否かが判断され、同一の葉ノードに到達したデータが重複データ候補として検出される。
また、上記課題を解決するために、文字列を備える複数のデータから重複する前記データを検出する重複データ検出方法において、前記データ毎に、前記文字列の隣接しない所定の文字位置の文字を複数個取り出した構文木を構築し、前記構文木の葉ノード毎に、前記葉ノードに到達したデータが複数存在するか否かを判断し、同一の前記葉ノードに到達した前記データを重複データ候補として検出する、ことを特徴とする重複データ検出方法が提供される。
このような重複データ検出方法によれば、データ毎に、文字列の隣接しない所定の文字位置の文字を複数個取り出した構文木が構築され、構文木の葉ノード毎に、葉ノードに到達したデータが複数存在するか否かが判断され、同一の葉ノードに到達したデータが重複データ候補として検出される。
また、上記課題を解決するために、文字列を備える複数のデータから重複する前記データを検出する重複データ検出装置において、前記データ毎に、前記文字列の隣接しない所定の文字位置の文字を複数個取り出した構文木を構築する構文木構築手段と、前記構文木の葉ノード毎に、前記葉ノードに到達したデータが複数存在するか否かを判断し、同一の前記葉ノードに到達した前記データを重複データ候補として検出する重複データ検出手段と、を有することを特徴とする重複データ検出装置が提供される。
このような重複データ検出装置によれば、上記重複データ検出プログラムを実行するコンピュータと同様の処理が実行される。
本発明によれば、重複データ候補を容易に検出することができる。これにより、容易に重複するデータを絞り込むことができる。
特に、その後により細かい構文木を作成して重複データを検出する場合、構文木の作成対象となるデータが絞り込まれているため、検出時間を短縮することができる。
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
まず、本発明の概要について説明し、その後、実施の形態を説明する。
図1は、本発明の概要を示す図である。
図1に示すコンピュータ1は、構文木構築手段2と重複データ検出手段3とを有している。
構文木構築手段2は、データ毎に、隣接しない所定の文字位置の文字を複数個取り出した構文木を構築する。
図1では、データD1、D2において、各データの文字列の語頭から4文字毎に4つの文字を取り出した構文木Taを構築している。
重複データ検出手段3が、構文木Taの葉ノード毎に、葉ノードに到達したデータが複数存在するか否かを判断し、同一の葉ノードに到達したデータを重複データ候補として検出する。図1では、データD1、D2が構文木Taの同一の葉ノードに到達しているので、これらを重複データ候補として検出している。
このような重複データ検出プログラムによれば、構文木構築手段2により、データ毎に文字列の隣接しない所定の文字位置の文字を複数個取り出した構文木が構築される。そして、重複データ検出手段3により、構文木の葉ノード毎に、葉ノードに到達したデータが複数存在するか否かが判断され、同一の葉ノードに到達したデータが重複データ候補として検出される。
以下、本発明の実施の形態を説明する。
図2は、コンピュータのハードウェア構成例を示す図である。
コンピュータ300は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。また、HDD103内には、プログラムファイルが格納される。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。
通信インタフェース106は、ネットワーク10に接続されている。通信インタフェース106は、ネットワーク10を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。このようなハードウェア構成のシステムにおいて重複データの検出を行うために、コンピュータ300内には、以下のような機能が設けられる。
図3は、コンピュータの機能を示すブロック図である。
コンピュータ300は、データ検出部(重複データ検出装置)100と、データ削除部200とを有している。
データ検出部100は、文書データ格納部110と、文書データ出力部120と、判定部130とを有している。
文書データ格納部110には、検出対象となる複数の文書データが格納されている。
文書データ出力部120は、文書データ格納部110に格納されている文書データのうち所定の文書データを取り出す文書データ取り出し指示があると、文書データ格納部110から取り出すべき文書データ(以下、「文書データ群」という)を取り出し判定部130に渡す。
なお、取り出し指示は、例えばユーザがキーボード12やマウス13等を操作することにより実行される。
また、文書データ出力部120は、文書データ群の各文書データに、これらを識別する識別子(ID番号)を付する。
判定部130は、重複データ検出部131と木構築部132とを有している。
重複データ検出部131は、文書データ群を受け取ると、木構築部132に構築条件(パラメータ)を与えて文書データ群の構文木(トライ)を構築させる。なお、構築条件については後述する。
木構築部132は、構築条件に従って構文木を構築する。
図4は、構文木の一例を示す図である。
構文木Tbは、ノード41〜45と、各ノード間を接続するエッジ41a、42a、43a、44aとを有している。ノード41が根(root)ノードであり、他のノード42〜45はノード41の下位構造となっている。各エッジには取り出した文字が関連づけられている。例えばエッジ41aには文字「B」が関連づけられている。
また、構築した構文木Tbの各部分木の最後部の節点(以下、葉ノードとも言う)であるノード45には文書データの識別子が関連づけられている。同一の文字列を有する文書データがあると、これらの識別子がそれぞれ同一の葉ノードに関連づけられる。
なお、図4では一例として文書データ「データ1」、「データ2」が同一の文字列を有している場合を示しており、これらの識別子「データ#1」、「データ#2」がノード45に関連づけられている。
再び図3に戻って説明する。
また、重複データ検出部131は、構築した構文木に基づいて、文書データ群から同一の文字列を有する文書データ(重複データ)を検出する。重複データを検出すると、検出された重複データから1つの重複データを除いた残りの重複データのID番号をデータ削除部200に出力する。
データ削除部200は、重複データのID番号を受け取ると、そのID番号を持つ文書データを文書データ格納部110から削除する。すなわち、データ削除部200は、文書データ格納部110に格納されている同一の文字列を有する文書データの名寄せを行う。
次に、判定部130の動作(判定動作)について詳しく説明する。
図5は、判定動作を示すフローチャートである。
まず、重複データ検出部131が文書データ群を受け取る(ステップS1)。そして、重複データ検出部131が、文書データ内における文字列の先頭から数えて予め指定された文字位置の文字を予め指定された文字個数分取り出すという構築条件(第1の構築条件)を与えて構文木Tを構築させる。この構築条件は、例えばHDD103に格納されている。
なお、第1の構築条件において取り出す文字位置は、隣接(連続)した位置(1文字目、2文字目、・・・)でなければ、特に限定されないが、例えば(An+1)文字目:(A=1、2、・・・)、(n=0、1、2、・・・)や、A(n+1)文字目等が挙げられる。後者の場合、文字列の大部分が同じで最後の方だけ文字列が異なっている2つの文書データを迅速に区別することができる。また、例えば1文字目、4文字目等、取り出す位置の数字を具体的に決めておいてもよい。
また、第1の構築条件における取り出す文字数は、1文字以上であれば特に限定されないが、例えば10文字等、整数で指定する。
次に、木構築部132が、第1の構築条件に従って構文木Tを構築する(ステップS2)。なお、第1の構築条件に従って構文木Tを構築する際、指定された文字数だけ文字を取り出している途中で文字列が終了した場合(文字数分の文字が取り出せない場合)は、それまで取り出した文字の構文木Tを構築する。
次に、重複データ検出部131が、構文木Tの葉ノード毎に、葉ノードに到達した文字列が複数存在するか否かを判断し、同一の葉ノードに到達した文書データを重複データ候補として検出する(ステップS3)。
次に、重複データ検出部131が、重複データ候補における文字列の先頭から順番に全ての文字を取り出すという構築条件(第2の構築条件)を与えて構文木T1を構築させる。
次に、木構築部132が、第2の構築条件に従って構文木T1を構築する(ステップS4)。
次に、重複データ検出部131が、構文木T1の葉ノード毎に、葉ノードに到達した文字列が複数存在するか否かを判断し、同一の葉ノードに到達した文書データを重複データとして検出する(ステップS5)。
次に、重複データ検出部131が、重複データのID番号をデータ削除部200に出力する(ステップS6)。
以上で判定動作を終了する。
次に、木構築部132が、第1の構築条件に従って構文木Tを構築する動作(第1の木構築動作)について詳しく説明する。
図6は、第1の木構築動作を示すフローチャートである。
なお、以下では、説明を分かり易くするために以下の記号を用いる。
識別子:d(d=0、1、2、・・・)
現在の文字位置:i
識別子dの文書データの文字数:N(d)
取り出す文字位置:P1、・・・、Pm
まず、識別子dを初期化(d=0)する(ステップS11)。
次に、識別子dをインクリメントする(ステップS12)。
次に、識別子dに対応する文書データが存在するか否かを判断する(ステップS13)。
識別子dに対応する文書データが存在しない場合(ステップS13のNo)、第1の木構築動作を終了する。
識別子dに対応する文書データが存在する場合(ステップS13のYes)、文字位置iを初期化(i=0)する(ステップS14)。
次に、文字位置iをインクリメントする(ステップS15)。
次に、文字位置iが文字数N(d)以下か否かを判断する(ステップS16)。
文字位置iが文字数N(d)以下ではない場合(ステップS16のNo)、ステップS12に移行し、継続して動作を行う。
文字位置iが文字数N(d)以下の場合(ステップS16のYes)、文字位置iが取り出すべき文字位置P1、・・・、Pmのいずれかに該当するか否かを判断する(ステップS17)。
文字位置P1、・・・、Pmのいずれにも該当しない場合(ステップS17のNo)、ステップS15に移行し、継続して動作を行う。
文字位置P1、・・・、Pmのいずれかに該当する場合(ステップS17のYes)、文字位置iの文字を構文木Tに格納する(ステップS18)。
その後、文字位置iが、文字位置Pm(取り出すべき最後の文字位置)に等しいか否かを判断する(ステップS19)。
文字位置iが、文字位置Pmに等しくない場合(ステップS19のNo)、文字列が続くと見なしてステップS15に移行し、継続して動作を行う。
文字位置iが、文字位置Pmに等しい場合(ステップS19のYes)、ステップS12に移行し、継続して動作を行う。
次に、木構築部132が、第2の構築条件に従って構文木T1を構築する動作(第2の木構築動作)について詳しく説明する。
図7は、第2の木構築動作を示すフローチャートである。
ステップS21〜ステップS26:それぞれ第1の木構築動作のステップS11〜S16と同様の動作を行う。
そして、文字位置iが文字数N(d)以下の場合(ステップS26のYes)、文字位置iの文字を構文木T1に格納する(ステップS27)。
ステップS28:第1の木構築動作のステップS19と同様の動作を行う。
次に、第1の木構築動作および第2の木構築動作を、具体例を用いて説明する。
本具体例では、第1の構築条件として、(4n+1)文字目の文字位置の文字を4文字取り出す条件が与えられている場合の例である。また、文書データ群は、文献1、文献2、文献3で構成されているものとする。
図8〜図10は、第1の木構築動作の具体例を示す図である。
まず、木構築部132は、第1の構築条件に従って文献1の(4n+1)文字目の文字位置の文字を4文字分取り出し、ノード51を根ノードとする構文木Tを構築する(図8参照)。具体的には文献1の1文字目の文字「B」、5文字目の「p」、9文字目の「r」、13文字目の「e」の4文字を取り出す。そして、葉ノード52に文献1の識別子「文献#1」を関連づける。
次に、第1の構築条件に従って文献2の(4n+1)文字目の文字位置の文字を4文字分取り出し、構文木Tに格納する(図9参照)。具体的には1文字目の文字「I」、5文字目の「d」、9文字目の「o」、13文字目の「n」の4文字を格納する。そして、葉ノード53に文献2の識別子「文献#2」を関連づける。
次に、第1の構築条件に従って文献3の(4n+1)文字目の文字位置の文字を4文字分取り出し、構文木Tに格納する(図10参照)。(4n+1)文字目の文字位置の文字を4文字分取り出した場合、既に同じ構造の節点が存在するため新たな節点は作成されない。そして、葉ノード52に文献3の識別子「文献#3」を関連づける。
全ての文献の構文木Tへの文字の格納が終了したとき、識別子「文献#1」および識別子「文献#3」が同じ葉ノード52に関連づけられているので、文献1および文献3を重複データ候補として検出する。
次に、第2の木構築動作の具体例について説明する。
図11は、第2の木構築動作の具体例を示す図である。
木構築部132は、第2の構築条件に従って文献1および文献3をそれぞれ先頭文字から一文字ずつ取り出し、全ての文字を構文木T1に格納する。
図11では、1文字目の文字「B」、2文字目の「y」、3文字目の「r」・・・のように全ての文字を構文木T1に格納する。そして、文献1および文献3のそれぞれの全ての文字を格納し終わったときに、識別子「文献#1」および識別子「文献#3」が同じ葉ノード54に関連づけられている場合、文献1および文献3を重複データとして検出する。
以上述べたように、本実施の形態のコンピュータ300によれば、データ検出部100が、まず、構文木Tを構築して重複データ候補を検出し、その後重複データ候補に対し構文木T1を構築して重複データを検出するようにした。構文木Tを構築することにより、容易に重複データ候補(検出対象)を絞り込むことができる。検出対象を絞り込むことにより、例えば最初から文書データの全ての文字を構文木に格納する場合に比べて、構文木T1を小規模なものとすることができる。これにより、検索効率が向上し、短時間で重複データを検出することができる。
例えば論文に掲載する概要(Abstract)等は、予め文字数が決まっていることが多く、文字数等により同一の文書データか否かを判別する方法では、異なる文字列を有する複数のデータが文書データ候補として検出されてしまう場合がある。本実施の形態のデータ検出部100によれば、このような方法に比べて精度の高い検出を行うことができる。
なお、本実施の形態では、重複データ検出部131が、検出された重複データから1つの重複データを除いた残りの重複データのID番号をデータ削除部200に出力し、データ削除部200が、そのID番号を持つ文書データを文書データ格納部110から削除するようにしたが、本発明はこれに限らず例えば、重複データ検出部131が、検出された全ての重複データのID番号をデータ削除部200に出力し、データ削除部200が、その中から1つの重複データを除いた残りの重複データのID番号を持つ文書データを文書データ格納部110から削除するようにしてもよい。なお、除く重複データの判断基準は特に限定されないが、例えば最もID番号の小さいものを除く等が挙げられる。
また、本実施の形態では、木構築部132が語頭側から文字を取り出して構文木Tおよび構文木T1を構築したが、本発明はこれに限らず、例えば語尾側から文字を取り出して構文木Tおよび構文木T1を構築してもよい。
また、本実施の形態では、複数の文書データの中から重複する文書データを検出したが、本発明ではこれに限らず1つの文書データの中にタグ等で区切られた複数の文字列が存在している場合に、これらの文字列から重複する文字列を検出する場合にも適用することができる。このような文書構造を有する文書データとしては例えばXML(Extensible Markup Language)データ、HTML(Hyper Text Markup Language)データ、CSV(Comma Separated Values)データ等が挙げられる。
また、本実施の形態では、重複データ検出部131が検出した重複データのID番号を持つ文書データを、データ削除部200が文書データ格納部110から削除する例について説明したが、重複データ検出部131が検出した重複データの処理方法は、これに限定されない。
また、本発明に用いる文書データの容量は特に限定されないが、例えばXMLであれば1レコード100〜10000文字以上の比較的大規模なデータであるのが好ましい。このような文書データにおいては、重複データ候補として検出されたデータは、前述した第2の木構築動作により重複データとして検出される可能性が高く、実質的に高速な重複データの検出を行うことができる。本発明は、このような重複データを検出する場合に、より顕著な効果を発揮する。
以上、本発明の重複データ検出プログラム、重複データ検出方法および重複データ検出装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
また、本発明は、前述した実施の形態のうちの、任意の2以上の構成(特徴)を組み合わせたものであってもよい。
本発明の用途は、特に限定されないが、例えばデータベースの名寄せ、スパム(spam)メールの除去、データ圧縮等に適用することができる。例えば本発明をメールサーバに適用した場合は、重複した電子メールのタイトルや本文を重複データとして検出することでスパムメールを除去することができる。また、例えば本発明をデータベースに適用した場合は、重複データのうちのいずれか1つを残し、他の重複データを削除し、重複データを使用している使用先には残した重複データにアクセスさせることでデータ圧縮を図ることができる。また、1つの文書データの中に複数の文字列が存在している場合には、重複する文字列のうちのいずれか1つを残し、他の文字列を圧縮し、圧縮した文字列を使用している使用先には残した文字列にアクセスさせることでデータ削減を図ることができる。
なお、上記の処理機能は、コンピュータによって(コンピュータに所定の重複データ検出プログラムを実行させることにより)実現することができる。その場合、データ検出部100が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープ等が挙げられる。光ディスクとしては、例えば、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等が挙げられる。光磁気記録媒体としては、例えば、MO(Magneto-Optical disk)等が挙げられる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
重複データ検出プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
本発明の概要を示す図である。 コンピュータのハードウェア構成例を示す図である。 コンピュータの機能を示すブロック図である。 構文木の一例を示す図である。 判定動作を示すフローチャートである。 第1の木構築動作を示すフローチャートである。 第2の木構築動作を示すフローチャートである。 第1の木構築動作の具体例を示す図である。 第1の木構築動作の具体例を示す図である。 第1の木構築動作の具体例を示す図である。 第2の木構築動作の具体例を示す図である。
符号の説明
1、300 コンピュータ
2 構文木構築手段
3 重複データ検出手段
41〜45、51 ノード
52 、53、54 葉ノード
100 データ検出部
110 文書データ格納部
120 文書データ出力部
130 判定部
131 重複データ検出部
132 木構築部
200 データ削除部
T、T1、Ta、Tb 構文木

Claims (5)

  1. 文字列を備える複数のデータから重複する前記データを検出する重複データ検出プログラムにおいて、
    コンピュータを、
    前記データ毎に、前記文字列の隣接しない所定の文字位置の文字を複数個取り出した構文木を構築する構文木構築手段、
    前記構文木の葉ノード毎に、前記葉ノードに到達したデータが複数存在するか否かを判断し、同一の前記葉ノードに到達した前記データを重複データ候補として検出する重複データ検出手段、
    として機能させることを特徴とする重複データ検出プログラム。
  2. 前記構文木構築手段は、前記重複データ候補毎に、前記文字列の語頭側または語尾側から一文字ずつ前記文字を取り出した詳細構文木を構築し、
    前記重複データ検出手段は、前記詳細構文木の前記葉ノード毎に、前記葉ノードに到達したデータが複数存在するか否かを判断し、同一の前記葉ノードに到達した前記データを重複データとして検出することを特徴とする請求項1記載の重複データ検出プログラム。
  3. 前記構文木構築手段は、前記所定の文字位置の文字を予め定められた個数分取り出した前記構文木を構築することを特徴とする請求項1記載の重複データ検出プログラム。
  4. 文字列を備える複数のデータから重複する前記データを検出する重複データ検出方法において、
    前記データ毎に、前記文字列の隣接しない所定の文字位置の文字を複数個取り出した構文木を構築し、
    前記構文木の葉ノード毎に、前記葉ノードに到達したデータが複数存在するか否かを判断し、
    同一の前記葉ノードに到達した前記データを重複データ候補として検出する、
    ことを特徴とする重複データ検出方法。
  5. 文字列を備える複数のデータから重複する前記データを検出する重複データ検出装置において、
    前記データ毎に、前記文字列の隣接しない所定の文字位置の文字を複数個取り出した構文木を構築する構文木構築手段と、
    前記構文木の葉ノード毎に、前記葉ノードに到達したデータが複数存在するか否かを判断し、同一の前記葉ノードに到達した前記データを重複データ候補として検出する重複データ検出手段と、
    を有することを特徴とする重複データ検出装置。
JP2006207904A 2006-07-31 2006-07-31 重複データ検出プログラム、重複データ検出方法および重複データ検出装置 Expired - Fee Related JP4740060B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006207904A JP4740060B2 (ja) 2006-07-31 2006-07-31 重複データ検出プログラム、重複データ検出方法および重複データ検出装置
US11/599,534 US20080027916A1 (en) 2006-07-31 2006-11-14 Computer program, method, and apparatus for detecting duplicate data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006207904A JP4740060B2 (ja) 2006-07-31 2006-07-31 重複データ検出プログラム、重複データ検出方法および重複データ検出装置

Publications (2)

Publication Number Publication Date
JP2008033728A JP2008033728A (ja) 2008-02-14
JP4740060B2 true JP4740060B2 (ja) 2011-08-03

Family

ID=38987592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006207904A Expired - Fee Related JP4740060B2 (ja) 2006-07-31 2006-07-31 重複データ検出プログラム、重複データ検出方法および重複データ検出装置

Country Status (2)

Country Link
US (1) US20080027916A1 (ja)
JP (1) JP4740060B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9319360B2 (en) 2007-11-01 2016-04-19 Google Inc. Systems and methods for prefetching relevant information for responsive mobile email applications
US9241063B2 (en) 2007-11-01 2016-01-19 Google Inc. Methods for responding to an email message by call from a mobile device
US8676901B1 (en) 2007-11-01 2014-03-18 Google Inc. Methods for transcoding attachments for mobile devices
US8726165B1 (en) 2007-11-01 2014-05-13 Google Inc. Methods for auto-completing contact entry on mobile devices
US20090119678A1 (en) 2007-11-02 2009-05-07 Jimmy Shih Systems and methods for supporting downloadable applications on a portable client device
JP5366709B2 (ja) * 2008-09-04 2013-12-11 新日鉄住金ソリューションズ株式会社 情報処理装置、共通文字列出力方法及びプログラム
JP5487985B2 (ja) * 2010-01-14 2014-05-14 富士通株式会社 圧縮装置、方法及びプログラム、並びに展開装置、方法及びプログラム
JP5464082B2 (ja) * 2010-07-07 2014-04-09 三菱電機株式会社 文書処理装置、文書処理方法、文書処理プログラム、及び文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体
JP5630863B2 (ja) * 2010-11-26 2014-11-26 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 構造化文書に含まれるノードの全順序関係を、ログ情報に基づいて決定して可視化する方法、装置及びコンピュータプログラム
US9846688B1 (en) 2010-12-28 2017-12-19 Amazon Technologies, Inc. Book version mapping
US8798366B1 (en) 2010-12-28 2014-08-05 Amazon Technologies, Inc. Electronic book pagination
US9881009B1 (en) * 2011-03-15 2018-01-30 Amazon Technologies, Inc. Identifying book title sets
JP5942495B2 (ja) * 2012-03-12 2016-06-29 富士通株式会社 情報処理装置、プログラム、及び対応候補対絞込方法
KR20150136509A (ko) * 2013-04-01 2015-12-07 마벨 월드 트레이드 리미티드 다른 무선통신들의 수신을 용이하게 하기 위한 무선통신 상향링크 기간들의 종결
CN105095276B (zh) * 2014-05-13 2020-04-21 华为技术有限公司 一种挖掘最大重复序列的方法及装置
US10963810B2 (en) * 2014-06-30 2021-03-30 Amazon Technologies, Inc. Efficient duplicate detection for machine learning data sets
CN110430103B (zh) * 2019-09-18 2020-06-05 光大兴陇信托有限责任公司 一种报文监测方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4860203A (en) * 1986-09-17 1989-08-22 International Business Machines Corporation Apparatus and method for extracting documentation text from a source code program
JP2737173B2 (ja) * 1988-10-25 1998-04-08 日本電気株式会社 記号列照合装置とその制御方法
US5289535A (en) * 1991-10-31 1994-02-22 At&T Bell Laboratories Context-dependent call-feature selection
US5715468A (en) * 1994-09-30 1998-02-03 Budzinski; Robert Lucius Memory system for storing and retrieving experience and knowledge with natural language
US6029132A (en) * 1998-04-30 2000-02-22 Matsushita Electric Industrial Co. Method for letter-to-sound in text-to-speech synthesis
US6594783B1 (en) * 1999-08-27 2003-07-15 Hewlett-Packard Development Company, L.P. Code verification by tree reconstruction
JP2001134575A (ja) * 1999-10-29 2001-05-18 Internatl Business Mach Corp <Ibm> 頻出パターン検出方法およびシステム
JP2001291060A (ja) * 2000-04-04 2001-10-19 Toshiba Corp 単語列照合装置および単語列照合方法
JP4005343B2 (ja) * 2001-12-04 2007-11-07 東京ソフト株式会社 情報検索システム
US7263512B2 (en) * 2002-04-02 2007-08-28 Mcgoveran David O Accessing and updating views and relations in a relational database
JP2006018693A (ja) * 2004-07-02 2006-01-19 Fujitsu Ltd 類似ソースコード抽出プログラム、類似ソースコード抽出装置および類似ソースコード抽出方法
TWI315044B (en) * 2005-01-21 2009-09-21 Hon Hai Prec Ind Co Ltd File server and method for displaying and editing information searching conditions
US7401080B2 (en) * 2005-08-17 2008-07-15 Microsoft Corporation Storage reports duplicate file detection
JP2007179165A (ja) * 2005-12-27 2007-07-12 Internatl Business Mach Corp <Ibm> Uml設計モデルから、確率的な性能評価モデルを導出するコンピュータ・プログラムおよび確率的な性能評価モデルを導出する方法

Also Published As

Publication number Publication date
JP2008033728A (ja) 2008-02-14
US20080027916A1 (en) 2008-01-31

Similar Documents

Publication Publication Date Title
JP4740060B2 (ja) 重複データ検出プログラム、重複データ検出方法および重複データ検出装置
US7962524B2 (en) Computer program, device, and method for sorting dataset records into groups according to frequent tree
JP4097263B2 (ja) ウェブアプリケーションモデル生成装置、ウェブアプリケーション生成支援方法及びプログラム
JP3832830B2 (ja) XPath評価方法、これを用いたXPath評価装置及び情報処理装置
JP4796185B2 (ja) 業務フロー図生成プログラム、業務フロー図生成装置および業務フロー図生成方法
JP5423904B2 (ja) 情報処理装置、メッセージ抽出方法およびメッセージ抽出プログラム
US7516422B2 (en) Graphical display of hierarchical hardlinks to files in a file system
CN1584884B (zh) 检索结构化文档的数据的设备
US20110107198A1 (en) Information processing apparatus, storage medium, and information processing method
KR101783298B1 (ko) 그래프 데이터베이스 기반으로 입력 데이터로부터 노드 정보를 생성 및 관리하는 방법 및 이를 이용하는 서버
US20060129515A1 (en) Data totaling device, method thereof and storage medium
JP4879193B2 (ja) システムログ管理支援装置およびシステムログ管理支援方法
US10339104B2 (en) Information processing apparatus, file management method, and computer-readable recording medium having stored therein file management program
JPWO2009150737A1 (ja) 保守業務支援プログラム、保守業務支援方法および保守業務支援装置
JP6549786B2 (ja) データクレンジングシステム、方法、及び、プログラム
JP2018109898A (ja) データマイグレーションシステム
US20130246479A1 (en) Computer-readable recording medium, data model conversion method, and data model conversion apparatus
JP4615010B2 (ja) 文書管理プログラムおよび文書管理方法
JP5718256B2 (ja) システム性能解析装置、システム性能解析方法、およびシステム性能解析プログラム
JP5906810B2 (ja) 全文検索装置、プログラム及び記録媒体
JP4134824B2 (ja) 情報処理装置及びプログラム
JP6194980B2 (ja) 検索プログラム、検索方法、及び情報処理装置
JP2002140218A (ja) データ処理方法、コンピュータ読み取り可能な記録媒体及びデータ処理装置
JP5076621B2 (ja) 特許分析プログラム、特許分析方法および特許分析装置
JP6627809B2 (ja) データベース処理装置、システム、方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090409

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110419

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: 20110426

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: 20110428

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4740060

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees