(57)【特許請求の範囲】
【請求項１】
順序木から所定のパターンを抽出する抽出装置であって、
「順序木に対する系列表現」とは、「当該順序木を深さ優先探索して、枝を進む際に通過する節はその名前を表すマークを、枝を戻る際はバックトラックマークを、それぞれ並べることによりできるマークの列」であり、
「マークの列の列文脈」とは、「当該マークの列の先頭以外のマークのうち、名前を表すマークの数からバックトラックマークの数を減じた値」であり、
「マークの列中のあるマークからこれよりも後に配置されるマークへの射影文脈」とは、「当該あるマークと、当該後に配置されるマークと、に囲まれるマークの列を先頭から順に走査したときに、走査を開始したマークから走査の現在のマークまでで、名前を表すマークの数からバックトラックマークの数を減じた値が負となることがあれば負の値、負となることがなければ、走査を開始したマークから走査の最後のマークまでで名前を表すマークの数からバックトラックマークの数を減じた値」であり、
マークの列中のあるマーク（以下「先頭マーク」という。）、当該マークの列において当該先頭マークに一致しもしくは当該先頭マークよりも後に配置される第１マーク、当該マークの列において当該第１マークよりも後に配置される第２マークに対して、
（ａ）当該第１マークが当該先頭マークに一致し、かつ、当該第１マークから当該第２マークへの射影文脈が０であり、かつ、当該第２マークが名前を表すマークである場合、当該第１マークから当該第２マークへの射影が可能であり、
（ｂ）当該第１マークが当該先頭マークよりも後に配置され、かつ、当該先頭マークから可能な射影を繰り返して第１マークに至ることができ、かつ、当該先頭マークから可能な射影を繰り返して第１マークに至るまでに通過するマークの列の列文脈が０であり、かつ、当該第２マークが名前を表すマークである場合、当該第１マークから当該第２マークへの射影が可能であり、
（ｃ）当該第１マークが当該先頭マークよりも後に配置され、かつ、当該先頭マークから可能な射影を繰り返して第１マークに至ることができ、かつ、当該先頭マークから可能な射影を繰り返して第１マークに至るまでに通過するマークの列の列文脈が０でなく、かつ、当該第１マークから当該第２マークへの射影文脈が０である場合、当該第１マークから当該第２マークへの射影が可能であり、
（ｄ）上記（ａ）（ｂ）（ｃ）のいずれでもない場合、当該第１マークから当該第２マークへの射影は不可能であり、
「マークの列が含むパターン」とは、「マークの列中のあるマーク（以下「最初のマーク」という。）から可能な射影を０回以上繰り返して他のマーク（以下「最後のマーク」という。）に至ることができるとき、当該最初のマークから可能な射影を０回以上繰り返して当該最後のマークに至るまでに通過するマークの列」であり、
「系列表現が含むパターン」とは、「当該系列表現であるマークの列が含むパターンのうち、最初のマークが名前を表すマークであるパターン」であり、
１つ以上の順序木の入力を受け付ける入力受付部、
前記入力を受け付けられた順序木のそれぞれについて、当該順序木を、当該順序木に対する系列表現へ変換する変換部、
前記変換された系列表現のそれぞれについて、当該系列表現が含むパターンのうち、所定の頻度以上で出現するパターンを抽出する抽出部
を備えることを特徴とする抽出装置。
【請求項２】
請求項１に記載の抽出装置であって、
前記抽出部は、当該所定の頻度以上で出現するパターンのうち、当該パターンが当該順序木に対する系列表現と一致するパターンのみを抽出する
ことを特徴とする抽出装置。
【請求項３】
入力受付部と、変換部と、抽出部と、を備える情報処理装置において実行される抽出方法であって、
「順序木に対する系列表現」とは、「当該順序木を深さ優先探索して、枝を進む際に通過する節はその名前を表すマークを、枝を戻る際はバックトラックマークを、それぞれ並べることによりできるマークの列」であり、
「マークの列の列文脈」とは、「当該マークの列の先頭以外のマークのうち、名前を表すマークの数からバックトラックマークの数を減じた値」であり、
「マークの列中のあるマークからこれよりも後に配置されるマークへの射影文脈」とは、「当該あるマークと、当該後に配置されるマークと、に囲まれるマークの列を先頭から順に走査したときに、走査を開始したマークから走査の現在のマークまでで、名前を表すマークの数からバックトラックマークの数を減じた値が負となることがあれば負の値、負となることがなければ、走査を開始したマークから走査の最後のマークまでで名前を表すマークの数からバックトラックマークの数を減じた値」であり、
マークの列中のあるマーク（以下「先頭マーク」という。）、当該マークの列において当該先頭マークに一致しもしくは当該先頭マークよりも後に配置される第１マーク、当該マークの列において当該第１マークよりも後に配置される第２マークに対して、
（ａ）当該第１マークが当該先頭マークに一致し、かつ、当該第１マークから当該第２マークへの射影文脈が０であり、かつ、当該第２マークが名前を表すマークである場合、当該第１マークから当該第２マークへの射影が可能であり、
（ｂ）当該第１マークが当該先頭マークよりも後に配置され、かつ、当該先頭マークから可能な射影を繰り返して第１マークに至ることができ、かつ、当該先頭マークから可能な射影を繰り返して第１マークに至るまでに通過するマークの列の列文脈が０であり、かつ、当該第２マークが名前を表すマークである場合、当該第１マークから当該第２マークへの射影が可能であり、
（ｃ）当該第１マークが当該先頭マークよりも後に配置され、かつ、当該先頭マークから可能な射影を繰り返して第１マークに至ることができ、かつ、当該先頭マークから可能な射影を繰り返して第１マークに至るまでに通過するマークの列の列文脈が０でなく、かつ、当該第１マークから当該第２マークへの射影文脈が０である場合、当該第１マークから当該第２マークへの射影が可能であり、
（ｄ）上記（ａ）（ｂ）（ｃ）のいずれでもない場合、当該第１マークから当該第２マークへの射影は不可能であり、
「マークの列が含むパターン」とは、「マークの列中のあるマーク（以下「最初のマーク」という。）から可能な射影を０回以上繰り返して他のマーク（以下「最後のマーク」という。）に至ることができるとき、当該最初のマークから可能な射影を０回以上繰り返して当該最後のマークに至るまでに通過するマークの列」であり、
「系列表現が含むパターン」とは、「当該系列表現であるマークの列が含むパターンのうち、最初のマークが名前を表すマークであるパターン」であり、
前記入力受付部が、１つ以上の順序木の入力を受け付ける入力受付工程、
前記変換部が、前記入力を受け付けられた順序木のそれぞれについて、当該順序木を、当該順序木に対する系列表現へ変換する変換工程、
前記抽出部が、前記変換された系列表現のそれぞれについて、当該系列表現が含むパターンのうち、所定の頻度以上で出現するパターンを抽出する抽出工程
を備えることを特徴とする抽出方法。
【請求項４】
コンピュータに順序木から所定のパターンを抽出させるプログラムであって、
「順序木に対する系列表現」とは、「当該順序木を深さ優先探索して、枝を進む際に通過する節はその名前を表すマークを、枝を戻る際はバックトラックマークを、それぞれ並べることによりできるマークの列」であり、
「マークの列の列文脈」とは、「当該マークの列の先頭以外のマークのうち、名前を表すマークの数からバックトラックマークの数を減じた値」であり、
「マークの列中のあるマークからこれよりも後に配置されるマークへの射影文脈」とは、「当該あるマークと、当該後に配置されるマークと、に囲まれるマークの列を先頭から順に走査したときに、走査を開始したマークから走査の現在のマークまでで、名前を表すマークの数からバックトラックマークの数を減じた値が負となることがあれば負の値、負となることがなければ、走査を開始したマークから走査の最後のマークまでで名前を表すマークの数からバックトラックマークの数を減じた値」であり、
マークの列中のあるマーク（以下「先頭マーク」という。）、当該マークの列において当該先頭マークに一致しもしくは当該先頭マークよりも後に配置される第１マーク、当該マークの列において当該第１マークよりも後に配置される第２マークに対して、
（ａ）当該第１マークが当該先頭マークに一致し、かつ、当該第１マークから当該第２マークへの射影文脈が０であり、かつ、当該第２マークが名前を表すマークである場合、当該第１マークから当該第２マークへの射影が可能であり、
（ｂ）当該第１マークが当該先頭マークよりも後に配置され、かつ、当該先頭マークから可能な射影を繰り返して第１マークに至ることができ、かつ、当該先頭マークから可能な射影を繰り返して第１マークに至るまでに通過するマークの列の列文脈が０であり、かつ、当該第２マークが名前を表すマークである場合、当該第１マークから当該第２マークへの射影が可能であり、
（ｃ）当該第１マークが当該先頭マークよりも後に配置され、かつ、当該先頭マークから可能な射影を繰り返して第１マークに至ることができ、かつ、当該先頭マークから可能な射影を繰り返して第１マークに至るまでに通過するマークの列の列文脈が０でなく、かつ、当該第１マークから当該第２マークへの射影文脈が０である場合、当該第１マークから当該第２マークへの射影が可能であり、
（ｄ）上記（ａ）（ｂ）（ｃ）のいずれでもない場合、当該第１マークから当該第２マークへの射影は不可能であり、
「マークの列が含むパターン」とは、「マークの列中のあるマーク（以下「最初のマーク」という。）から可能な射影を０回以上繰り返して他のマーク（以下「最後のマーク」という。）に至ることができるとき、当該最初のマークから可能な射影を０回以上繰り返して当該最後のマークに至るまでに通過するマークの列」であり、
「系列表現が含むパターン」とは、「当該系列表現であるマークの列が含むパターンのうち、最初のマークが名前を表すマークであるパターン」であり、
当該プログラムは、当該コンピュータを、
１つ以上の順序木の入力を受け付ける入力受付部、
前記入力を受け付けられた順序木のそれぞれについて、当該順序木を、当該順序木に対する系列表現へ変換する変換部、
前記変換された系列表現のそれぞれについて、当該系列表現が含むパターンのうち、所定の頻度以上で出現するパターンを抽出する抽出部
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、順序木において頻出するパターンを抽出するのに好適な抽出装置、抽出方法、ならびに、これらをコンピュータにて実現するためのプログラムに関する。
【０００２】
【従来の技術】
順序木を系列表現に変換して、当該順序木に含まれる部分構造を抽出する構造マイニングの分野では、従来から種々の手法が提案されており、たとえば、以下の文献においては、種々の技術が開示されている。
【０００３】
【非特許文献１】
J. Pei，J. Han，H. Pinto，Q. Chen，U. Dayal，and M.-C. Hsu, "PrefixSpan: Mining Sequential Patterns Efficiently by Prefix-Projected Pattern Growth", Proc. 2001 Int. Conf. on Data Engineering (ICDE'01), Heidelberg，Germany，２００１年４月
【非特許文献２】
J. Han，J. Pei，B. Mortazavi-Asl，Q. Chen，U. Dayal，M.-C. Hsu, "FreeSpan: Frequent Pattern-Projected Sequential Pattern Mining", Proc. 2000 Int. Conf. on Knowledge Discovery and Data Mining (KDD'00), Boston，MA，２０００年８月
【非特許文献３】
Mohammed J. Zaki, "Efficiently Mining Frequent Trees in a Forest", 8th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining，２００２年７月
【非特許文献４】
工藤拓、山本薫、坪井祐太、松本裕治、テキストデータベースからの構文構造のマイニング、情報処理学会  第１２８回  知能と複雑系研究会、２００２年
【０００４】
ここで、[非特許文献３]には、順序木を系列表現に変換して処理を行う手法が提案されている。
【０００５】
また、[非特許文献１]や[非特許文献２]には、系列表現をデータマイニングするための手法として、PrefixSpanやFreeSpanと呼ばれる技術が開示されている。
【０００６】
さらに、[非特許文献４]には、PrefixSpanを拡張したアルゴリズムを用いて半構造化されたテキストデータから頻出する部分構造を抽出する技術が開示されている。
【０００７】
【発明が解決しようとする課題】
しかしながら、用途と目的によっては、順序木から頻出するパターンを効率良く抽出する他の手法が必要となることがあり、このような技術が強く求められている。
【０００８】
本発明は、上記の課題を解決するもので、順序木において頻出するパターンを抽出するのに好適な抽出装置、抽出方法、ならびに、これらをコンピュータに実現させるためのプログラムを提供することを目的とする。
【０００９】
【課題を解決するための手段】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【００１０】
なお、以下の開示において、「順序木に対する系列表現」とは、「当該順序木を深さ優先探索して、枝を進む際に通過する節はその名前を表すマークを、枝を戻る際はバックトラックマークを、それぞれ並べることによりできるマークの列」をいう。
【００１１】
また、「マークの列の列文脈」とは、「当該マークの列の先頭以外のマークのうち、名前を表すマークの数からバックトラックマークの数を減じた値」をいう。
【００１２】
さらに、「マークの列中のあるマークからこれよりも後に配置されるマークへの射影文脈」とは、「当該あるマークと、当該後に配置されるマークと、に囲まれるマークの列を先頭から順に走査したときに、走査を開始したマークから走査の現在のマークまでで、名前を表すマークの数からバックトラックマークの数を減じた値が負となることがあれば負の値、負となることがなければ、走査を開始したマークから走査の最後のマークまでで名前を表すマークの数からバックトラックマークの数を減じた値」をいう。
【００１３】
そして、「マークの列に対する射影」とは、「当該マークの列に含まれるあるマークから、これよりも後に配置されるマークへの対応関係であって、所定の条件を満たすもの」をいう。
【００１４】
また、「系列表現が含むパターン」とは、「当該系列表現であるマークの列中の名前を表すマークのいずれかを最初のマークとして、これから射影を０回以上繰り返したときに、最初のマークから最後のマークに至るまでに出会うマークの列」をいう。
【００１５】
そして、「パターンが順序木に復元可能である」とは、「当該パターンが当該順序木に対する系列表現と一致する」ことをいう。これは、当該パターン中に含まれる名前を表すマークの数から、当該パターン中に含まれるバックトラックマークの数を減じた値が１である場合、すなわち、当該パターンをマークの列と見たときに、当該マークの列の列文脈が０である場合に成立する。
【００１６】
本発明の第１の観点に係る抽出装置は、入力受付部と、変換部と、抽出部と、を備え、以下のように構成する。
【００１７】
すなわち、入力受付部は、１つ以上の順序木の入力を受け付ける。
【００１８】
一方、変換部は、前記入力を受け付けられた順序木のそれぞれを系列表現へ変換する。
【００１９】
さらに、抽出部は、前記変換された系列表現のそれぞれが含むパターンのうち、所定の頻度以上で出現するパターンを抽出する。
【００２０】
また、本発明の抽出装置において、抽出部は、当該所定の頻度以上で出現するパターンのうち、順序木に復元可能であるもののみを抽出するように構成することができる。
【００２１】
本発明の他の観点に係る抽出方法は、入力受付部と、変換部と、抽出部と、を備える情報処理装置において実行され、入力受付工程と、変換工程と、抽出工程と、を備え、以下のように構成する。
【００２２】
すなわち、入力受付工程では、前記入力受付部が、１つ以上の順序木の入力を受け付ける。
【００２３】
一方、変換工程では、前記変換部が、前記入力を受け付けられた順序木のそれぞれを系列表現へ変換する。
【００２４】
さらに、抽出工程では、前記抽出部が、前記変換された系列表現のそれぞれが含むパターンのうち、所定の頻度以上で出現するパターンを抽出する。
【００２５】
本発明の他の観点に係るプログラムは、コンピュータを上記の抽出装置として機能させ、あるいは、コンピュータに上記の抽出方法を実行させるように構成する。
【００２６】
上記のプログラムは、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）やＦＤ（Flexible Disk）などの各種の記録媒体に記録することができるほか、インターネットなどのコンピュータ通信網を介して配布することができる。
【００２７】
【発明の実施の形態】
以下、添付図面を参照して、本発明の実施の形態について説明する。
【００２８】
（情報処理装置の概要構成）
図１は、本発明のデータ構造が記録された記録媒体を処理して、本発明の設計支援装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、図１を参照して説明する。
【００２９】
情報処理装置１０１は、ＣＰＵ（Central Processing Unit；中央処理ユニット）１０２によって制御される。情報処理装置１０１に電源を投入すると、ＣＰＵ１０２は、ＲＯＭ１０３に記憶されたＩＰＬ（Initial Program Loader；初期プログラムローダ）を実行する。
【００３０】
ＩＰＬは、ハードディスク１０４、ＦＤドライブ１１０に装着されたＦＤ、ＣＤ−ＲＯＭドライブ１１１に装着されたＣＤ−ＲＯＭなどの記録媒体に記憶されたＯＳ（Operating System；オペレーティング・システム）プログラムを読み出して実行するプログラムである。
【００３１】
ＯＳを起動した後、ＣＰＵ１０２は、キーボード１０５やマウス１０６などにより入力されたユーザの指示にしたがって、あるいは、ハードディスクなどにあらかじめ記述された設定ファイルの内容にしたがって、ハードディスクなどに記憶されたアプリケーションプログラムを実行する。
【００３２】
当該アプリケーションプログラムを実行することにより、情報処理装置１０１は、設計支援装置として機能することとなる。
【００３３】
ハードディスク１０４、ＦＤドライブ１１０に装着されたＦＤ、ＣＤ−ＲＯＭドライブ１１１に装着されたＣＤ−ＲＯＭなどの記憶媒体に、定義属性、制御属性、ストレングス情報、ストレス情報、不具合レコードが記録されることになる。
【００３４】
ＣＰＵ１０２は、このプログラムの実行の際に、ＲＡＭ１０７を一時的な作業用記憶領域として用いる。このほか、一時的な作業用記憶領域として、ＣＰＵ１０２内に設けられたレジスタやキャッシュ（図示せず）が使われる。
【００３５】
プログラムの実行に伴ない、ユーザに不具合レコードを報告したり、途中経過を見せるため、ＣＰＵ１０２は、液晶ディスプレイやＣＲＴ（Cathode Ray Tube）などの表示装置１０８に当該情報を表示することができる。マウス１０６による指示操作では、マウス１０６を移動することにより、画面に表示されたカーソルが移動し、マウス１０６をクリックすることにより、カーソルが指すメニュー項目を選択することができる。
【００３６】
情報処理装置１０１は、ＮＩＣ（Network Interface Card）やモデムなどのインターフェース１０９を介してインターネットなどのコンピュータ通信網と通信を行うことができる。インターフェース１０９を介して受信した順序木を処理の対象としたり、抽出したパターンをインターフェース１０９を介して送信したり、インターフェース１０９を介して受信したプログラムを実行したり、などができる。
【００３７】
（順序木とパターンの関係）
図２は、順序木の例を示す説明図である。以下、本図を参照して説明する。
【００３８】
まず、順序木とは、節と枝からなる木において、ある節（「親」という。）から他の０個以上の節（「子」という。）へ枝が張られていて、ある親に対する子に順序がつけられているものをいう。したがって、順序木を深さ優先探索する場合には、同じ親に対する子の探索の順序は、上記のようにつけられた順序による。
【００３９】
たとえば、図２に示すような順序木を考える。順序木２０１の根はfであり、その子は左から右へe，dである。そして、dの子はcである。また、eの子は左から右へc，a，dである。さらに、cの子はaであり、dの子は左から右へb，cである。
【００４０】
図３は、この順序木２０１を左から右へ深さ優先探索するときの、探索経路を示す説明図である。以下、本図を参照して説明する。
【００４１】
図３に示すように、順序木２０１を深さ優先探索すると、経路２０２に沿って探索が行われる。したがって、探索に際しては、一旦経由した節を省略することとして、f，e，c，a，a，d，b，c，d，cの順に節を経由することとなる。なお、[非特許文献４]においては、右から左へ深さ優先探索した際に一旦経由した節を省略することとして並べた節を逆順にしたものを「系列表現」として採用している。
【００４２】
さて、本発明において順序木２０１に対応する系列表現として利用するものは、探索経路２０２に沿って深さ優先探索をする際に、経由する節を並べるほか、枝を上がる際に、バックトラックマークを並べることとしたものである。バックトラックマークは、節の名前と区別できるものであれば何でも良い。ここでは、-1と表現することとする。
【００４３】
すなわち、本発明で考える「系列表現」とは、順序木を深さ優先探索して、枝を進む際に通過する節はその名前を表すマークを、枝を戻る際はバックトラックマークを、それぞれ並べることによりできるマークの列をいう。
【００４４】
すると、図３に示すように順序木２０１を経路２０２に沿って深さ優先探索した場合に得られるパターンは、以下のようになる。
f，e，c，a，-1，-1，a，-1，d，b，c，-1，-1，-1，d，c，-1，-1
【００４５】
すなわち、本発明において利用する「系列表現」は、木を上る情報が含まれている分だけ、[非特許文献４]に開示される部分構造抽出の技術において抽出される「系列表現」よりも上質な情報である、ということができる。
【００４６】
本発明では、順序木をバックトラックマークを利用する系列表現に変換した後に、当該系列表現に含まれるパターンを順序木の部分構造として抽出する。
【００４７】
さて、本発明で考える「パターン」とは、マークの列であって、初期値として０を採用して、当該マークを先頭から順に走査し、名前を表すマークが出現したときに１を値に加算し、バックトラックマークが出現したときに１を値から減算したときに、値が負となることがないものをいう。
【００４８】
また、本発明では、「系列表現がパターンを含む」とは、「当該系列表現のマークの列からいずれか０個以上のマークを除去してできるマークの列」のいずれかが「当該パターンのマークの列」と一致することをいう。
【００４９】
直観的には、「系列表現に含まれるパターン」とは、「当該系列表現において『子が１つしかない節を適宜省略して、その親とその子を直接枝で結ぶ』もしくは、『子がない節を省略する』もしくは、『親と子を切り離し、子以下の順序木を採用する』ことを適宜繰り返して得られる順序木の系列表現（の接頭辞（prefix））」である。
【００５０】
上記のように、「パターン」は系列表現そのものであることもあるし、系列表現の接頭辞であることもある。そこで、前者の場合を「パターンが順序木に復元可能である」といい、後者の場合は「パターンは順序木に復元可能でない」ということとする。
【００５１】
図４は、２つの順序木と、それらの系列表現と、これらに含まれるパターンのうち、出現頻度が２以上のパターンであって、順序木に復元可能であるものと、を示す説明図である。以下、本図を参照して説明する。なお、図中では、理解を容易にするため、「，」は省略している。
【００５２】
本図に示すように、順序木４０１に対する系列表現４０３は、c，b，a，-1，-1であり、これに含まれるパターンは、以下の通りである。
c
c，b
c，b，a
c，b，a，-1
c，b，a，-1，-1
c，b，-1
b
b，a
b，a，-1
a
【００５３】
これらのうち、順序木に復元可能であるものは、以下の通りである。
c
c，b，a，-1，-1
c，b，-1
b
b，a，-1
a
【００５４】
また、順序木４０２に対する系列表現４０４は、c，a，-1，b，-1であり、これに含まれるパターンは、以下の通りである。
c
c，a
c，a，-1
c，a，-1，b
c，a，-1，b，-1
c，b
c，b，-1
a
b
【００５５】
これらのうち、順序木に復元可能であるものは、以下の通りである。
c
c，a，-1
c，b，-1
c，a，-1，b，-1
a
b
【００５６】
さて、これらのように得られたパターンの出現頻度を調べると、以下のようになる。
a…２
b…２
b，a，-1…１
c…２
c，a，-1，b，-1…１
c，a，-1…１
c，b，-1…２
c，b，a，-1，-1…１
【００５７】
したがって、本図に示すように、順序木４０１、４０２から得られる順序木に復元可能なパターンのうち、出現頻度が２以上のものは、以下の通りである。
a
b
c，b，-1
c
【００５８】
上記のように、順序木から系列表現を得るのは、深さ優先探索において、枝を下る際に節に出会った際にはそのマークを、枝を上る際にはバックトラックマークを、それぞれ並べれば良い。
【００５９】
以下では、得られた系列表現からパターンを抽出する手法、ならびに、順序木に復元可能なパターンを抽出する手法について説明する。
【００６０】
図５は、系列表現とパターンとの関係を示す説明図である。本図に示すように、系列表現c，b，a，-1，-1は、順序木に復元可能なパターンc，b，-1を含むが、これは、系列表現の一部を省略することによって得られるものである。そこで、パターンに含まれるあるマークから次のマークへの移動を「射影」と呼ぶ。これは、上記の[非特許文献４]等でも用いられている用語である。図５には、それぞれに対応する射影が矢印で表現されている。
【００６１】
したがって、系列表現からパターンを得る際には、系列表現中のマークから他のマークへの射影が可能か否かを判定すれば良いこととなる。以下、射影が可能か否かを判定する手法について説明する。
【００６２】
まず、現在のマークの右隣がバックトラックマークでない場合は、現在のマークから右隣のマークへ射影が可能である。これは、順序木において、木を下って子の節に移動することに相当する。
【００６３】
また、現在のマークの右隣がバックトラックマークである場合は、
（ａ）現在のマークが「現在調べようとしているパターンの先頭である」場合は、射影できない。
（ｂ）現在のマークが「現在調べようとしているパターンの先頭でない」場合は、射影できる。
【００６４】
すなわち、現在のマークが「現在調べようとしているパターンの先頭である」ということは、当該マークが当該パターンによって復元されうる順序木の根であることを意味する。
【００６５】
さらに、現在のマークから離れたバックトラックマークでないマークへの射影が可能であるか否かは、その間に含まれるマークについて、以下のように走査を行う。すなわち、初期値を０とし、バックトラックマークでないマークを通過したときには１を加算し、バックトラックマークを通過したときには１を減算する。
【００６６】
たとえば、図６に示すような系列表現について、マークaを開始マークとする射影を考える。本図では、走査により得られる値を各マークの下に記載している。
【００６７】
本図に示すように、マークaからマークcへの走査の結果は、+1（マークcの左隣のマークbについての計算結果）であり、マークaからマークdへの走査の結果は、0（マークdの左隣のバックトラックマーク-1についての計算結果）である。なお、走査の結果とマークとの関係を、図中点線で示してある。
【００６８】
このような場合には、走査の結果が0である場合にのみ、射影が可能であるものとする。したがって、aからcへは射影できないが、aからdへは射影できることとなる。これは「順序木において、自分の子への射影は可能であるが、自分の孫以降の子孫についての射影はできない」ということを意味する。
【００６９】
そして、現在のマークから離れたバックトラックマークへの射影が可能であるか否かは、その間に含まれるマークについて、上記と同様の走査を行うほか、現在のマークが「現在調べようとしているパターンにおいてどのような射影を経た結果到達したものか」によって射影が可能か否かを決める。
【００７０】
すなわち、現在のマークが「現在調べようとしているパターンの先頭」である場合には、走査結果の如何にかかわらず、射影はできない。これは、部分木の根よりも上に移動しようとすることに相当するからである。
【００７１】
以下では、現在のマークが「現在調べようとしているパターンの途中」である場合を考える。たとえば、図７に示すような系列表現からaから始まるパターンを抽出する場合に、aからbへの射影がされた後に、bからさらなる射影を行う場合を考えるものとする。
【００７２】
この場合は、まず、aからbの直前まで（それまでにパターンとして抽出されているマークの列は「ａ」）の列文脈を考える。当該列文脈は０である。
【００７３】
一方、bの次から走査計算を始める（図中下段の数字列）。すると、c，-1，-1，d，-1に対して、+1，0，-1，0，-1となる。これについても、斜めに対応関係を考える。
【００７４】
さて、aからbへの射影に続いて、bからの射影が可能であるのは、この前者の結果が0であり、かつ、後者の結果について、走査の開始（c）から自分に至るまで、走査計算の結果が負とならないものについてである。
【００７５】
したがって、本図に示すように、中央の-1や末尾の-1へは射影ができず、先頭の-1へは射影ができるということになる。
【００７６】
このようにして得られたパターンが順序木に復元可能であるか否かは、以下のように計算することができる。すなわち、パターンに含まれる名前を表すマークの数と、バックトラックマークの数とを比較し、前者から後者を減算した値が１であれば、当該パターンは順序木に復元可能である。
【００７７】
（抽出装置の実施形態）
図８は、本発明の一つの実施形態において利用される抽出装置の基本構成を示す模式図であり、図９は、当該抽出装置において実行される抽出方法の処理の流れを示すフローチャートである。以下、これらの図を参照して説明する。
【００７８】
本実施形態の抽出装置７０１は、入力受付部７０２と、変換部７０３と、抽出部７０４と、を備える。
【００７９】
まず、入力受付部７０２は、１つ以上の順序木の入力を受け付ける（ステップＳ８０１）。
【００８０】
ついで、変換部７０３は、入力を受け付けられた順序木のそれぞれを系列表現へ変換する（ステップＳ８０２）。上記のように、１つの順序木からは１つの系列表現が得られるので、入力された順序木の数だけ、系列表現が得られることとなる。
【００８１】
さらに、抽出部７０４は、変換された系列表現のそれぞれが含むパターンを得て（ステップＳ８０３）、所定の頻度以上で出現するパターンを抽出して（ステップＳ８０４）、本処理を終了する。ここで、ステップＳ８０３においては、系列表現のそれぞれが含む「順序木に復元可能なパターン」を得ることとしても良い。系列表現から、これが含むパターンを得る技術の詳細については、上述した通りである。
【００８２】
ステップＳ８０３においては、具体的には次のような処理を行う。
（１）系列表現が含むマークの列（候補）を列挙する。
（２）列挙されたマークの列（候補）が、パターンとして成立するかを判定する。
【００８３】
したがって、まず候補をすべて列挙してから、そのそれぞれがパターンとして成立するか否かを判定する手法が考えられる。また、[非特許文献１][非特許文献２][非特許文献４]等に開示される系列パターンマイニング技術（PrefixSpan/FreeSpan）に対して、本発明の射影の技術（パターンとして成立するか否かを判定する技術）を適用して、より効率良く判定を行うことも可能である。
【００８４】
以下、パターンとして成立するか否かの判定の手法について、さらに詳細に説明する。
【００８５】
（列文脈の取得）
(N+1)個のマークの列m0，m1，…，mNに対する列文脈は、以下のようにして求めることができる。
【００８６】
すなわち、マークの列の先頭m0を除いたm1，…，mNについて、当該マークが名前を表すマークであるものの数と、バックトラックマークであるものの数とを比較し、前者から後者を減算した値が列文脈である。具体的には、以下のような処理によって、列文脈を取得することができる。図１０は、列文脈の取得手法の制御の流れを示すフローチャートである。
【００８７】
まず、マークの列m0，m1，…，mNを受け付ける（ステップＳ１００１）。そして、カウンタcの値と、変数iの値を０に初期化する（ステップＳ１００２）。
【００８８】
ついで、i≦Nである間（ステップＳ１００３）、ステップＳ１００４〜ステップＳ１００７を繰り返す。
【００８９】
すなわち、miがバックトラックマークであるか否か調べ（ステップＳ１００４）、バックトラックマークである場合（ステップＳ１００４；Ｙｅｓ）、cから１を減算し（ステップＳ１００５）、バックトラックマークでない場合（ステップＳ１００４；Ｎｏ）、cに１を加算する（ステップＳ１００６）。そして、iに１を加算して（ステップＳ１００７）、ステップＳ１００３に戻る。
【００９０】
最後に、カウンタcの値を、m0，m1，…，mNの列文脈として返して（ステップＳ１００８）、本処理を終了する。
【００９１】
なお、上記のような処理を行えば、長さ０の空マーク列（N<0の場合）の列文脈としては、０が得られる。
【００９２】
（射影文脈の取得）
(N+1)個のマークの列m0，m1，…，mN中のf番目のマークからt番目のマークまでの部分マーク列mf，…，mtの射影文脈は、mf+1，…，mt-1を先頭から順に走査したときに、名前を表すマークの数からバックトラックマークの数を減じた値が負となることがあれば負の値、負となることがなければ、走査を開始したマークから走査の最後のマークまでで名前を表すマークの数からバックトラックを表すマークの数を減じた値である。図１１は、射影文脈を取得する処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【００９３】
まず、マークの列m0，m1，…，mN中のf番目のマークからt番目のマークへの射影文脈を求めるため、これらの情報を受け付ける（ステップＳ１１０１）。
【００９４】
そして、カウンタcの値を０に初期化する（ステップＳ１１０２）。次に、変数iの値をf+1に初期化する（ステップＳ１１０３）。
【００９５】
ついで、i≦t-1である間（ステップＳ１１０４）、ステップＳ１１０５〜ステップＳ１１１０を繰り返す。
【００９６】
すなわち、miがバックトラックマークであるか否か調べる（ステップＳ１１０５）。
【００９７】
バックトラックマークである場合（ステップＳ１１０５；Ｙｅｓ）、cから１を減算し（ステップＳ１１０６）、さらにcが負であるか調べ（ステップＳ１１０７）、負である場合（ステップＳ１１０７；Ｙｅｓ）、当該cの値を射影文脈として返して（ステップＳ１１０８）、本処理を終了する。一方、そうでない場合（ステップＳ１１０７；Ｎｏ）、iに１を加算して（ステップＳ１１０９）、ステップＳ１１０４に戻る。
【００９８】
一方、バックトラックマークでない場合（ステップＳ１１０５；Ｎｏ）、cに１を加算して（ステップＳ１１１０）、ステップＳ１１０９に進む。
【００９９】
そして、ステップＳ１１０４〜ステップＳ１１１０の繰り返しが終了したら、ステップＳ１１１１に進み、カウンタcの値を、m0，m1，…，mNのf番目のマークからt番目のマークへの射影文脈として返して、本処理を終了する。
【０１００】
（パターンの判定）
ある系列表現m0，…，mNについて、その部分列mk[0]，…，mk[L]（Ｌ≦Ｎ，０≦ｋ[０]＜…＜ｋ[Ｌ]≦Ｎ）が、当該系列表現のパターンとなるか否かを判定する手法について、以下説明する。図１２は、本処理の制御の流れを示すフローチャートである。
【０１０１】
まず、系列表現m0，…，mNと、判定対象のマークの列に１対１に対応する添字の列k[0]，…，k[L]と、を受け付ける（ステップＳ１２０１）。
【０１０２】
そして、mk[0]がバックトラックマークであるか否かを調べ（ステップＳ１２０２）、そうである場合（ステップＳ１２０２；Ｙｅｓ）、パターンとして成立しない旨を報告して（ステップＳ１２０３）、本処理を終了する。
【０１０３】
一方、バックトラックマークでない場合（ステップＳ１２０２；Ｎｏ）、L=0であるか否かを調べ（ステップＳ１２０４）、そうである場合（ステップＳ１２０４；Ｙｅｓ）、パターンとして成立する旨を報告して（ステップＳ１２０５）、本処理を終了する。これは、名前を表す長さ１のマークの列は、パターンとして成立する、ということに相当する。
【０１０４】
ついで、変数pを0に初期化する（ステップＳ１２０６）。さらに、別途用意したマークの列を保存する領域qを長さ0のマークの列に初期化する（ステップＳ１２０７）。これを空マーク列と呼ぶ。したがって、マークの列qは、空マーク列に初期化されることになる。
【０１０５】
p≦L-1である間（ステップＳ１２０８）、ステップＳ１２０９〜ステップＳ１２２１の処理を繰り返す。
【０１０６】
まず、変数fにk[p]を設定し（ステップＳ１２０９）。変数tにk[p+1]を設定する（ステップＳ１２１０）。
【０１０７】
そして、「qが空マーク列でありかつmfがバックトラックマークでない（名前を表すマークである）」か否かを調べる（ステップＳ１２１１）。これが成立する場合（ステップＳ１２１１；Ｙｅｓ）、ステップＳ１２１７に進む。これが成立しない場合（ステップＳ１２１１；Ｎｏ）、「マークの列qの末尾にmfを追加したマークの列」の列文脈を求め（ステップＳ１２１２）、当該列文脈が０であるか否かを調べる（ステップＳ１２１３）。
【０１０８】
「qが空マーク列でありかつmfがバックトラックマークでない」（ステップＳ１２１１；Ｙｅｓ）もしくは、「当該列文脈が０である」（ステップＳ１２１３；Ｙｅｓ）場合、マークの列m0，…，mNのf番目からt番目への射影文脈を求め（ステップＳ１２１４）、「当該射影文脈が０であり、かつ、mtがバックトラックマークでない（名前を表すマークである）」か否かを調べる（ステップＳ１２１５）。そうでない場合（ステップＳ１２１５；Ｎｏ）、パターンとして成立しない旨を報告して（ステップＳ１２１６）、本処理を終了する。
【０１０９】
なお、ステップＳ１２１１の判定は、「第１マークが射影を繰り返すときの最初のマークである」か否かを判定することに相当する。また、ステップＳ１２１３の判定は、「最初のマークから射影をくりかえして第１のマークに至るまでのパターンの列文脈が０である」か否かを判定することに相当する。さらに、ステップＳ１２１５の判定は、『「第１マークから第２マークへの射影文脈が０である」かつ「第２マーク」が名前を表すマークである』か否かを判定することに相当する。
【０１１０】
ステップＳ１２１１でＹｅｓの場合、または、ステップＳ１２１３でＮｏの場合、は、f番目からt番目への射影文脈を求め（ステップＳ１２１７）、これが０に等しいか否かを調べる（ステップＳ１２１８）。０に等しくない場合（ステップＳ１２１８；Ｎｏ），パターンとして成立しない旨を報告して（ステップＳ１２１９）、本処理を終了する。
【０１１１】
なお、ステップＳ１２１８の判定は、「第１マークから第２マークへの射影文脈が０である」か否かを判定することに相当する。
【０１１２】
一方、ステップＳ１２１５でＹｅｓの場合、もしくは、ステップＳ１２１８でＹｅｓの場合は、マークの列qの末尾にmfを追加してこれを更新し（ステップＳ１２２０）、pを１増やして（ステップＳ１２２１）、ステップＳ１２０８に戻る。
【０１１３】
なお、ステップＳ１２２０の処理により、マークの列qの長さは１増えることになる。
【０１１４】
ステップＳ１２０８〜ステップＳ１２２１の繰り返しが終了したら、パターンとして成立する旨を報告して（ステップＳ１２２２）、本処理を終了する。
【０１１５】
（応用例）
以下では、上記の実施形態をテキストマイニングに応用する例について説明する。テキストマイニングの分野では、自然文を構文木に変換することがある。たとえば、図１３には、「充電に時間がかかる。」という文と、これを構文木に変換した結果とを示す。本図に示すように、この構文木は、根が「かかる」であり、その子が「充電に」「時間が」であるような順序木である。
【０１１６】
したがって、得られる系列表現は、以下の通りである。
かかる,充電に,-1,時間が,-1
【０１１７】
この系列表現からは、順序木に復元可能なパターンとして、以下のようなものが得られる。
かかる
かかる,充電に,-1
かかる,時間が,-1
かかる,充電に,-1,時間が,-1
【０１１８】
このようにすると、ある構文木に含まれる部分木のうち、頻出するものを抽出することができるようになる。
【０１１９】
たとえば、ある商品群に含まれる商品に対する世間の評価を調べたい場合には、各商品について論評した文章を集め、当該文章に含まれる文のそれぞれについて構文木（順序木）を作り、さらに系列表現を得て、各商品について系列表現に含まれる（順序木に復元可能な）パターンを、頻度の順に抽出する。
【０１２０】
当該パターンを順序木に復元し、さらに、自然文に復元すると、当該商品に対する評判が頻度の順に得られることになる。
【０１２１】
【発明の効果】
以上説明したように、本発明によれば、順序木において頻出するパターンを抽出するのに好適な抽出装置、抽出方法、ならびに、これらをコンピュータに実現させるためのプログラムを提供することができる。
【図面の簡単な説明】
【図１】  情報処理装置の概要構成を示す模式図である。
【図２】  順序木の様子を示す説明図である。
【図３】  順序木と深さ優先探索の経路との関係を示す説明図である。
【図４】  順序木、系列表現、頻出するパターンの関係を示す説明図である。
【図５】  系列表現と射影の関係を示す説明図である。
【図６】  系列表現と射影の関係を示す説明図である。
【図７】  系列表現と射影の関係を示す説明図である。
【図８】  本発明の一つの実施形態に係る抽出装置の基本構成を示す模式図である。
【図９】  当該抽出装置にて実行される抽出方法の処理の流れを示すフローチャートである。
【図１０】  列文脈の取得処理の制御の流れを示すフローチャートである。
【図１１】  射影文脈の取得処理の制御の流れを示すフローチャートである。
【図１２】  パターンとして成立するか否かの判定処理の制御の流れを示すフローチャートである。
【図１３】  自然文の構文解析と系列表現の関係を示す説明図である。
【符号の説明】
１０１  情報処理装置
１０２  ＣＰＵ
１０３  ＲＯＭ
１０４  ＨＤ
１０５  キーボード
１０６  マウス
１０７  ＲＡＭ
１０８  表示装置
１０９  インターフェース
１１０  ＦＤドライブ
１１１  ＣＤ−ＲＯＭドライブ
２０１  順序木
２０２  経路
４０１  順序木
４０２  順序木
４０３  系列表現
４０４  系列表現
７０１  抽出装置
７０２  入力受付部
７０３  変換部
７０４  抽出部
【図１】
0003853305.tif 000002
【図２】
0003853305.tif 000003
【図３】
0003853305.tif 000004
【図４】
0003853305.tif 000005
【図５】
0003853305.tif 000006
【図６】
0003853305.tif 000007
【図７】
0003853305.tif 000008
【図８】
0003853305.tif 000009
【図９】
0003853305.tif 000010
【図１０】
0003853305.tif 000011
【図１１】
0003853305.tif 000012
【図１２】
0003853305.tif 000013
【図１３】
0003853305.tif 000014