(57)【特許請求の範囲】
【請求項１】
単語間の関連性を定義する関連語グラフを作成する装置であって、
単語の概念階層を定義するシソーラスを記憶するシソーラス記憶部と、
コーパスに含まれる単語間の関係を定義するトピックグラフを記憶するトピックグラフ記憶部と、
ディレクトリ検索に用いられるカテゴリの階層を定義するカテゴリグラフを記憶するカテゴリグラフ記憶部と、
前記カテゴリグラフにおける第１の前記カテゴリ及び前記シソーラスに含まれる単語がリンクされ、前記カテゴリグラフにおける第２の前記カテゴリ及び前記トピックグラフに含まれる単語がリンクされるように、前記シソーラス、前記カテゴリグラフ及び前記トピックグラフを組み合わせて、グラフ構造の前記関連語グラフを作成するグラフ作成部と、
を備えることを特徴とする関連語グラフ作成装置。
【請求項２】
請求項１に記載の関連語グラフ作成装置であって、
前記グラフ作成部は、前記カテゴリグラフにおける第１の前記カテゴリの名称と一致する、前記シソーラスに含まれる単語と、前記第１のカテゴリの下位階層に所属する第２の前記カテゴリの名称と一致する、前記トピックグラフに含まれる単語とがリンクされるように、前記シソーラスに前記トピックグラフを組み合わせること、
を特徴とする関連語グラフ作成装置。
【請求項３】
請求項１に記載の関連語グラフ作成装置であって、
前記シソーラス、前記トピックグラフ、前記カテゴリグラフは有向グラフであり、
前記グラフ作成部は、前記カテゴリグラフにおける２つのカテゴリ間のエッジごとに、前記エッジが接続する前記２つのカテゴリのうち第１の前記カテゴリの名称に一致する第１の単語が前記シソーラスに含まれており、前記２つのカテゴリのうち第２の前記カテゴリの名称に一致する第２の単語が前記トピックグラフに含まれている場合に、前記第１及び第２の単語を接続するエッジが作成されるように、前記シソーラスに前記トピックグラフを組み合わせること、
を特徴とする関連語グラフ作成装置。
【請求項４】
請求項３に記載の関連語グラフ作成装置であって、
前記シソーラス記憶部は、前記シソーラスを構成するノードごとに前記ノードに対応する単語を含むノード情報を記憶し、前記シソーラスを構成する前記ノード間のエッジごとに、２つの前記ノードを示す２つの識別情報を含むエッジ情報を記憶し、
前記トピックグラフ記憶部は、前記トピックグラフを構成する前記ノードごとに前記ノードに対応する単語を含む前記ノード情報を記憶し、前記トピックグラフを構成する前記ノード間の前記エッジごとに２つの前記識別情報を含む前記エッジ情報を記憶し、
前記カテゴリグラフ記憶部は、前記カテゴリグラフを構成する前記ノードごとに前記ノードに対応する前記カテゴリを示す単語を含む前記ノード情報を記憶し、前記カテゴリグラフを構成する前記ノード間の前記エッジごとに２つの前記識別情報を含む前記エッジ情報を記憶し、
前記グラフ作成部は、
前記シソーラス記憶部に記憶されている前記ノード情報及び前記エッジ情報を前記関連語グラフ記憶部に登録し、
前記トピックグラフ記憶部に記憶されている前記ノード情報及び前記エッジ情報を前記関連語グラフ記憶部に登録し、
前記カテゴリグラフ記憶部に記憶されている前記エッジ情報のそれぞれについて、前記エッジ情報に含まれる第１の前記識別情報に対応する第１の前記ノード情報に設定される単語が、前記シソーラス記憶部に記憶されている第２の前記ノード情報に設定される単語に一致し、かつ、前記エッジ情報に含まれる第２の前記識別情報に対応する第２の前記ノード情報に設定される単語が、前記トピックグラフ記憶部に記憶されている第３の前記ノード情報に設定される単語に一致する場合に、前記第２のノード情報を示す前記識別情報と前記第３のノード情報を示す前記識別情報とを設定した前記エッジ情報を前記関連語グラフに登録すること、
を特徴とする関連語グラフ作成装置。
【請求項５】
入力された単語に関連する関連語を提供する関連語提供装置であって、
ディレクトリ検索に用いられるカテゴリの階層を定義するカテゴリグラフにおける第１の前記カテゴリと単語の概念階層を定義するシソーラスに含まれる単語とがリンクされ、前記カテゴリグラフにおける第２の前記カテゴリとコーパスに含まれる単語間の関係を定義するトピックグラフに含まれる単語とがリンクされるように、前記シソーラス、前記カテゴリグラフ及び前記トピックグラフを組み合わせて作成された、グラフ構造の関連語グラフを記憶する関連語グラフ記憶部と、
第１の単語の入力を受け付ける単語入力部と、
前記関連語グラフ記憶部に記憶されている前記関連語グラフにおいて、前記第１の単語から１つ以上のエッジを介して接続される第２の単語を、前記関連語として取得する関連語取得部と、
前記関連語を出力する関連語出力部と、
を備えることを特徴とする関連語提供装置。
【請求項６】
入力された単語に関連する関連語を提供する関連語提供装置であって、
単語の概念階層を定義するシソーラスを記憶するシソーラス記憶部と、
コーパスに含まれる単語間の関係を定義するトピックグラフを記憶するトピックグラフ記憶部と、
ディレクトリ検索に用いられるカテゴリの階層を定義するカテゴリグラフを記憶するカテゴリグラフ記憶部と、
前記カテゴリグラフにおける第１の前記カテゴリ及び前記シソーラスに含まれる単語がリンクされ、前記カテゴリグラフにおける第２の前記カテゴリ及び前記トピックグラフに含まれる単語がリンクされるように、前記シソーラス、前記カテゴリグラフ及び前記トピックグラフを組み合わせて、グラフ構造の前記関連語グラフを作成するグラフ作成部と、
前記関連語グラフを記憶する関連語グラフ記憶部と、
第１の単語の入力を受け付ける単語入力部と、
前記関連語グラフ記憶部に記憶されている前記関連語グラフにおいて、前記第１の単語から１つ以上のエッジを介して接続される第２の単語を、前記関連語として取得する関連語取得部と、
前記関連語を出力する関連語出力部と、
を備えることを特徴とする関連語提供装置。
【請求項７】
単語間の関連性を定義する関連語グラフを作成する方法であって、
コンピュータが、
単語の概念階層を定義するシソーラスをメモリに記憶し、
コーパスに含まれる単語間の関係を定義するトピックグラフを前記メモリに記憶し、
ディレクトリ検索に用いられるカテゴリの階層を定義するカテゴリグラフを前記メモリに記憶し、
前記カテゴリグラフにおける第１の前記カテゴリ及び前記シソーラスに含まれる単語がリンクされ、前記カテゴリグラフにおける第２の前記カテゴリ及び前記トピックグラフに含まれる単語がリンクされるように、前記シソーラス、前記カテゴリグラフ及び前記トピックグラフを組み合わせて、グラフ構造の前記関連語グラフを作成すること、
を特徴とする関連語グラフ作成方法。
【請求項８】
入力された単語に関連する関連語を提供する方法であって、
ディレクトリ検索に用いられるカテゴリの階層を定義するカテゴリグラフにおける第１の前記カテゴリと単語の概念階層を定義するシソーラスに含まれる単語とがリンクされ、前記カテゴリグラフにおける第２の前記カテゴリとコーパスに含まれる単語間の関係を定義するトピックグラフに含まれる単語とがリンクされるように、前記シソーラス、前記カテゴリグラフ及び前記トピックグラフを組み合わせて作成された、グラフ構造の関連語グラフを記憶するコンピュータが、
第１の単語の入力を受け付け、
前記関連語グラフ記憶部に記憶されている前記関連語グラフにおいて、前記第１の単語から１つ以上のエッジを介して接続される第２の単語を、前記関連語として取得し、
前記関連語を出力すること、
を特徴とする関連語提供方法。
【請求項９】
入力された単語に関連する関連語を提供する方法であって、
コンピュータが、
単語の概念階層を定義するシソーラスをメモリに記憶し、
コーパスに含まれる単語間の関係を定義するトピックグラフを前記メモリに記憶し、
ディレクトリ検索に用いられるカテゴリの階層を定義するカテゴリグラフを前記メモリに記憶し、
前記カテゴリグラフにおける第１の前記カテゴリ及び前記シソーラスに含まれる単語がリンクされ、前記カテゴリグラフにおける第２の前記カテゴリ及び前記トピックグラフに含まれる単語がリンクされるように、前記シソーラス、前記カテゴリグラフ及び前記トピックグラフを組み合わせて、グラフ構造の前記関連語グラフを作成し、
前記関連語グラフを前記メモリに記憶し、
第１の単語の入力を受け付け、
前記メモリに記憶されている前記関連語グラフにおいて、前記第１の単語から１つ以上のエッジを介して接続される第２の単語を、前記関連語として取得し、
前記取得した関連語を出力すること、
を特徴とする関連語提供方法。
【請求項１０】
単語間の関連性を定義する関連語グラフを作成するためのプログラムであって、
コンピュータに、
単語の概念階層を定義するシソーラスをメモリに記憶するステップと、
コーパスに含まれる単語間の関係を定義するトピックグラフを前記メモリに記憶するステップと、
ディレクトリ検索に用いられるカテゴリの階層を定義するカテゴリグラフを前記メモリに記憶するステップと、
前記カテゴリグラフにおける第１の前記カテゴリ及び前記シソーラスに含まれる単語がリンクされ、前記カテゴリグラフにおける第２の前記カテゴリ及び前記トピックグラフに含まれる単語がリンクされるように、前記シソーラス、前記カテゴリグラフ及び前記トピックグラフを組み合わせて、グラフ構造の前記関連語グラフを作成するステップと、
を実行させるためのプログラム。
【請求項１１】
入力された単語に関連する関連語を提供するためのプログラムであって、
コンピュータに、
ディレクトリ検索に用いられるカテゴリの階層を定義するカテゴリグラフにおける第１の前記カテゴリと単語の概念階層を定義するシソーラスに含まれる単語とがリンクされ、前記カテゴリグラフにおける第２の前記カテゴリとコーパスに含まれる単語間の関係を定義するトピックグラフに含まれる単語とがリンクされるように、前記シソーラス、前記カテゴリグラフ及び前記トピックグラフを組み合わせて作成された、グラフ構造の関連語グラフをメモリに記憶するステップと、
第１の単語の入力を受け付けるステップと、
前記メモリに記憶されている前記関連語グラフにおいて、前記第１の単語から１つ以上のエッジを介して接続される第２の単語を、前記関連語として取得するステップと、
前記関連語を出力するステップと、
を実行させるためのプログラム。
【請求項１２】
入力された単語に関連する関連語を提供するためのプログラムであって、
コンピュータに、
単語の概念階層を定義するシソーラスをメモリに記憶するステップと、
コーパスに含まれる単語間の関係を定義するトピックグラフを前記メモリに記憶するステップと、
ディレクトリ検索に用いられるカテゴリの階層を定義するカテゴリグラフを前記メモリに記憶するステップと、
前記カテゴリグラフにおける第１の前記カテゴリ及び前記シソーラスに含まれる単語がリンクされ、前記カテゴリグラフにおける第２の前記カテゴリ及び前記トピックグラフに含まれる単語がリンクされるように、前記シソーラス、前記カテゴリグラフ及び前記トピックグラフを組み合わせて、グラフ構造の前記関連語グラフを作成するステップと、
前記関連語グラフを前記メモリに記憶するステップと、
第１の単語の入力を受け付けるステップと、
前記メモリに記憶されている前記関連語グラフにおいて、前記第１の単語から１つ以上のエッジを介して接続される第２の単語を、前記関連語として取得するステップと、
前記取得した関連語を出力するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、関連語グラフ作成装置、関連語グラフ作成方法、関連語提供装置、関連語提供方法及びプログラムに関する。
【背景技術】
【０００２】
検索に用いるキーワードに関連する関連語を提供するクエリサジェッションが行われている。例えば、特許文献１には、ユーザが使用した語句やその語句の使用回数、検索キーワードのカテゴリなどに応じて推薦キーワードを提示するサーバが記載されている。キーワードに関連する関連語を検索する辞書としてシソーラスが考えられる。非特許文献１には、シソーラスの探索処理が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−３１３４号公報
【非特許文献】
【０００４】
【非特許文献１】清田陽司、阿辺川武、吉田稔、田村悟之、坂井哲、増田英孝、２００８年、「汎用シソーラス探索ライブラリの開発」、[online]、言語処理学会第14回年次大会、インターネット＜URL:http://www.r.dl.itc.u-tokyo.ac.jp/%7Ekiyota/paper/2008/NLP_2008_PD1-3-kiyota.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
シソーラスは、概念の階層が定義されるものの、固有名詞や専門用語などはほとんど含まれない。そこで、大量のテキストを含むコーパスを分析したトピックグラフを活用することが考えられるが、トピックグラフには、固有名詞や専門用語が多く含まれるものの、概念の階層は定義されない。したがって、シソーラスにトピックグラフを組み合わせたいというニーズがある。しかしながら、シソーラスに含まれる単語とトピックグラフに含まれる単語とはほとんど一致せず、シソーラスにトピックグラフを組み合わせることは難しかった。
【０００６】
本発明は、このような背景を鑑みてなされたものであり、概念階層を定義するシソーラスにコーパスに含まれる単語間の関係を定義するトピックグラフを組み合わせることのできる、関連語グラフ作成装置、関連語グラフ作成方法、関連語提供装置、関連語提供方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するための本発明の主たる発明は、単語間の関連性を定義する関連語グラフを作成する装置であって、単語の概念階層を定義するシソーラスを記憶するシソーラス記憶部と、コーパスに含まれる単語間の関係を定義するトピックグラフを記憶するトピックグラフ記憶部と、ディレクトリ検索に用いられるカテゴリの階層を定義するカテゴリグラフを記憶するカテゴリグラフ記憶部と、前記カテゴリグラフにおける第１の前記カテゴリ及び前記シソーラスに含まれる単語がリンクされ、前記カテゴリグラフにおける第２の前記カテゴリ及び前記トピックグラフに含まれる単語がリンクされるように、前記シソーラス、前記カテゴリグラフ及び前記トピックグラフを組み合わせて、グラフ構造の前記関連語グラフを作成するグラフ作成部と、を備えることとする。
【０００８】
本発明の関連語グラフ作成装置によれば、シソーラスとカテゴリグラフとをリンクし、カテゴリグラフとトピックグラフとをリンクすることにより、シソーラス、カテゴリグラフ及びトピックグラフを全て組み合わせた１つの関連語グラフを作成することができる。したがって、関連語グラフには、一般語から構成されることの多いシソーラスと、固定名詞や具体語、専門用語などが多く含まれるトピックグラフとの両方が含まれることになるので、関連語グラフが幅広い単語から構成されるようにすることができる。
【０００９】
また、本発明の関連語グラフ作成装置では、前記グラフ作成部は、前記カテゴリグラフにおける第１の前記カテゴリの名称と一致する、前記シソーラスに含まれる単語と、前記第１のカテゴリの下位階層に所属する第２の前記カテゴリの名称と一致する、前記トピックグラフに含まれる単語とがリンクされるように、前記シソーラスに前記トピックグラフを組み合わせるようにしてもよい。
【００１０】
この場合、カテゴリグラフを利用することにより、シソーラスとトピックグラフとが直接リンクされるように組み合わせることができる。したがって、シソーラスに含まれる一般語と、トピックグラフに含まれる固定名詞や具体語、専門用語などとをリンクすることができるので、関連語グラフには様々な単語間にリンクを設けるようにすることができる。
【００１１】
また、本発明の関連語グラフ作成装置では、前記シソーラス、前記トピックグラフ、前記カテゴリグラフは有向グラフであり、前記グラフ作成部は、前記カテゴリグラフにおける２つのカテゴリ間のエッジごとに、前記エッジが接続する前記２つのカテゴリのうち第１の前記カテゴリの名称に一致する第１の単語が前記シソーラスに含まれており、前記２つのカテゴリのうち第２の前記カテゴリの名称に一致する第２の単語が前記トピックグラフに含まれている場合に、前記第１及び第２の単語を接続するエッジが作成されるように、前記シソーラスに前記トピックグラフを組み合わせるようにしてもよい。
【００１２】
また、本発明の関連語グラフ作成装置では、前記シソーラス記憶部は、前記シソーラスを構成するノードごとに前記ノードに対応する単語を含むノード情報を記憶し、前記シソーラスを構成する前記ノード間のエッジごとに、２つの前記ノードを示す２つの識別情報を含むエッジ情報を記憶し、前記トピックグラフ記憶部は、前記トピックグラフを構成する前記ノードごとに前記ノードに対応する単語を含む前記ノード情報を記憶し、前記トピックグラフを構成する前記ノード間の前記エッジごとに２つの前記識別情報を含む前記エッジ情報を記憶し、前記カテゴリグラフ記憶部は、前記カテゴリグラフを構成する前記ノードごとに前記ノードに対応する前記カテゴリを示す単語を含む前記ノード情報を記憶し、前記カテゴリグラフを構成する前記ノード間の前記エッジごとに２つの前記識別情報を含む前記エッジ情報を記憶し、前記グラフ作成部は、前記シソーラス記憶部に記憶されている前記ノード情報及び前記エッジ情報を前記関連語グラフ記憶部に登録し、前記トピックグラフ記憶部に記憶されている前記ノード情報及び前記エッジ情報を前記関連語グラフ記憶部に登録し、前記カテゴリグラフ記憶部に記憶されている前記エッジ情報のそれぞれについて、前記エッジ情報に含まれる第１の前記識別情報に対応する第１の前記ノード情報に設定される単語が、前記シソーラス記憶部に記憶されている第２の前記ノード情報に設定される単語に一致し、かつ、前記エッジ情報に含まれる第２の前記識別情報に対応する第３の前記ノード情報に設定される単語が、前記トピックグラフ記憶部に記憶されている第４の前記ノード情報に設定される単語に一致する場合に、前記第２のノード情報を示す前記識別情報と前記第４のノード情報を示す前記識別情報とを設定した前記エッジ情報を前記関連語グラフに登録するようにしてもよい。
【００１３】
また、本発明の他の態様は、入力された単語に関連する関連語を提供する関連語提供装置であって、ディレクトリ検索に用いられるカテゴリの階層を定義するカテゴリグラフにおける第１の前記カテゴリと単語の概念階層を定義するシソーラスに含まれる単語とがリンクされ、前記カテゴリグラフにおける第２の前記カテゴリとコーパスに含まれる単語間の関係を定義するトピックグラフに含まれる単語とがリンクされるように、前記シソーラス、前記カテゴリグラフ及び前記トピックグラフを組み合わせて作成された、グラフ構造の関連語グラフを記憶する関連語グラフ記憶部と、第１の単語の入力を受け付ける単語入力部と、前記関連語グラフ記憶部に記憶されている前記関連語グラフにおいて、前記第１の単語から１つ以上のエッジを介して接続される第２の単語を、前記関連語として取得する関連語取得部と、前記関連語を出力する関連語出力部とを備えることとする。
【００１４】
本発明の関連語提供装置によれば、シソーラスとカテゴリグラフとをリンクし、カテゴリグラフとトピックグラフとをリンクすることにより、シソーラス、カテゴリグラフ及びトピックグラフを全て組み合わせた１つの関連語グラフを作成し、この関連語グラフから、キーワード（第１の単語）にリンクされている関連語（第２の単語）を提示することができる。したがって、関連語グラフには、一般語から構成されることの多いシソーラスと、固定名詞や具体語、専門用語などが多く含まれるトピックグラフとの両方が含まれることになるので、幅広い選択肢の中から関連語を検索することができ、キーワードが関連語グラフに含まれる可能性を高めることも可能となり、確実に関連語を提示することができる。
【００１５】
また、本発明の他の態様は、入力された単語に関連する関連語を提供する関連語提供装置であって、単語の概念階層を定義するシソーラスを記憶するシソーラス記憶部と、コーパスに含まれる単語間の関係を定義するトピックグラフを記憶するトピックグラフ記憶部と、ディレクトリ検索に用いられるカテゴリの階層を定義するカテゴリグラフを記憶するカテゴリグラフ記憶部と、前記カテゴリグラフにおける第１の前記カテゴリ及び前記シソーラスに含まれる単語がリンクされ、前記カテゴリグラフにおける第２の前記カテゴリ及び前記トピックグラフに含まれる単語がリンクされるように、前記シソーラス、前記カテゴリグラフ及び前記トピックグラフを組み合わせて、グラフ構造の前記関連語グラフを作成するグラフ作成部と、前記関連語グラフを記憶する関連語グラフ記憶部と、第１の単語の入力を受け付ける単語入力部と、前記関連語グラフ記憶部に記憶されている前記関連語グラフにおいて、前記第１の単語から１つ以上のエッジを介して接続される第２の単語を、前記関連語として取得する関連語取得部と、前記関連語を出力する関連語出力部と、を備えることとする。
【００１６】
本発明の関連語提供装置によれば、シソーラスとカテゴリグラフとをリンクし、カテゴリグラフとトピックグラフとをリンクすることにより、シソーラス、カテゴリグラフ及びトピックグラフを全て組み合わせた１つの関連語グラフを作成し、この関連語グラフから、キーワード（第１の単語）にリンクされている関連語（第２の単語）を提示することができる。したがって、関連語グラフには、一般語から構成されることの多いシソーラスと、固定名詞や具体語、専門用語などが多く含まれるトピックグラフとの両方が含まれることになり、この関連語グラフから、キーワード（第１の単語）にリンクされている関連語（第２の単語）を容易に提示することができる。関連語グラフには、一般語から構成されることの多いシソーラスと、固定名詞や具体語、専門用語などが多く含まれるトピックグラフとの両方が含まれることになるので、幅広い選択肢の中から関連語を検索することができ、キーワードが関連語グラフに含まれる可能性を高めることも可能となり、確実に関連語を提示することができる。
【００１７】
また、本発明の他の態様は、単語間の関連性を定義する関連語グラフを作成する方法であって、コンピュータが、単語の概念階層を定義するシソーラスをメモリに記憶し、コーパスに含まれる単語間の関係を定義するトピックグラフを前記メモリに記憶し、ディレクトリ検索に用いられるカテゴリの階層を定義するカテゴリグラフを前記メモリに記憶し、前記カテゴリグラフにおける第１の前記カテゴリ及び前記シソーラスに含まれる単語がリンクされ、前記カテゴリグラフにおける第２の前記カテゴリ及び前記トピックグラフに含まれる単語がリンクされるように、前記シソーラス、前記カテゴリグラフ及び前記トピックグラフを組み合わせて、グラフ構造の前記関連語グラフを作成することとする。
【００１８】
また、本発明の他の態様は、入力された単語に関連する関連語を提供する方法であって、ディレクトリ検索に用いられるカテゴリの階層を定義するカテゴリグラフにおける第１の前記カテゴリと単語の概念階層を定義するシソーラスに含まれる単語とがリンクされ、前記カテゴリグラフにおける第２の前記カテゴリとコーパスに含まれる単語間の関係を定義するトピックグラフに含まれる単語とがリンクされるように、前記シソーラス、前記カテゴリグラフ及び前記トピックグラフを組み合わせて作成された、グラフ構造の関連語グラフを記憶するコンピュータが、第１の単語の入力を受け付け、前記関連語グラフ記憶部に記憶されている前記関連語グラフにおいて、前記第１の単語から１つ以上のエッジを介して接続される第２の単語を、前記関連語として取得し、前記関連語を出力することとする。
【００１９】
また、本発明の他の態様は、入力された単語に関連する関連語を提供する方法であって、コンピュータが、単語の概念階層を定義するシソーラスをメモリに記憶し、コーパスに含まれる単語間の関係を定義するトピックグラフを前記メモリに記憶し、ディレクトリ検索に用いられるカテゴリの階層を定義するカテゴリグラフを前記メモリに記憶し、前記カテゴリグラフにおける第１の前記カテゴリ及び前記シソーラスに含まれる単語がリンクされ、前記カテゴリグラフにおける第２の前記カテゴリ及び前記トピックグラフに含まれる単語がリンクされるように、前記シソーラス、前記カテゴリグラフ及び前記トピックグラフを組み合わせて、グラフ構造の前記関連語グラフを作成し、前記関連語グラフを前記メモリに記憶し、第１の単語の入力を受け付け、前記メモリに記憶されている前記関連語グラフにおいて、前記第１の単語から１つ以上のエッジを介して接続される第２の単語を、前記関連語として取得し、前記取得した関連語を出力することとする。
【００２０】
また、本発明の他の態様は、単語間の関連性を定義する関連語グラフを作成するためのプログラムであって、単語間の関連性を定義する関連語グラフを作成するためのプログラムであって、コンピュータに、単語の概念階層を定義するシソーラスをメモリに記憶するステップと、コーパスに含まれる単語間の関係を定義するトピックグラフを前記メモリに記憶するステップと、ディレクトリ検索に用いられるカテゴリの階層を定義するカテゴリグラフを前記メモリに記憶するステップと、前記カテゴリグラフにおける第１の前記カテゴリ及び前記シソーラスに含まれる単語がリンクされ、前記カテゴリグラフにおける第２の前記カテゴリ及び前記トピックグラフに含まれる単語がリンクされるように、前記シソーラス、前記カテゴリグラフ及び前記トピックグラフを組み合わせて、グラフ構造の前記関連語グラフを作成するステップと、を実行させるとする。
【００２１】
また、本発明の他の態様は、入力された単語に関連する関連語を提供するためのプログラムであって、コンピュータに、ディレクトリ検索に用いられるカテゴリの階層を定義するカテゴリグラフにおける第１の前記カテゴリと単語の概念階層を定義するシソーラスに含まれる単語とがリンクされ、前記カテゴリグラフにおける第２の前記カテゴリとコーパスに含まれる単語間の関係を定義するトピックグラフに含まれる単語とがリンクされるように、前記シソーラス、前記カテゴリグラフ及び前記トピックグラフを組み合わせて作成された、グラフ構造の関連語グラフをメモリに記憶するステップと、第１の単語の入力を受け付けるステップと、前記メモリに記憶されている前記関連語グラフにおいて、前記第１の単語から１つ以上のエッジを介して接続される第２の単語を、前記関連語として取得するステップと、前記関連語を出力するステップと、を実行させることとする。
【００２２】
また、本発明の他の態様は、入力された単語に関連する関連語を提供するためのプログラムであって、コンピュータに、単語の概念階層を定義するシソーラスをメモリに記憶するステップと、コーパスに含まれる単語間の関係を定義するトピックグラフを前記メモリに記憶するステップと、ディレクトリ検索に用いられるカテゴリの階層を定義するカテゴリグラフを前記メモリに記憶するステップと、前記カテゴリグラフにおける第１の前記カテゴリ及び前記シソーラスに含まれる単語がリンクされ、前記カテゴリグラフにおける第２の前記カテゴリ及び前記トピックグラフに含まれる単語がリンクされるように、前記シソーラス、前記カテゴリグラフ及び前記トピックグラフを組み合わせて、グラフ構造の前記関連語グラフを作成するステップと、前記関連語グラフを前記メモリに記憶するステップと、第１の単語の入力を受け付けるステップと、前記メモリに記憶されている前記関連語グラフにおいて、前記第１の単語から１つ以上のエッジを介して接続される第２の単語を、前記関連語として取得するステップと、前記取得した関連語を出力するステップと、を実行させることとする。
【００２３】
その他本願が開示する課題やその解決方法については、発明の実施形態の欄及び図面により明らかにされる。
【発明の効果】
【００２４】
本発明によれば、概念階層を定義するシソーラスにコーパスに含まれる単語間の関係を定義するトピックグラフを組み合わせることができる。
【図面の簡単な説明】
【００２５】
【図１】関連語グラフ１０を説明するための図である。
【図２】コンピュータシステムの構成例を示す図である。
【図３】検索装置２０のハードウェア構成を示す図である。
【図４】検索装置２０のソフトウェア構成を示す図である。
【図５】シソーラス１１の構成例を示す図である。
【図６】トピックグラフ１２の構成例を示す図である。
【図７】カテゴリグラフ１３の構成例を示す図である。
【図８】関連語グラフ１０の構成例を示す図である。
【図９】マージ処理の流れを示す図である。
【図１０】シソーラス１１に基づくノード情報及びエッジ情報を登録する処理の流れを示す図である。
【図１１】トピックグラフ１２に基づくノード情報及びエッジ情報を登録する処理の流れを示す図である。
【図１２】カテゴリグラフ１３に基づくノード情報及びエッジ情報を登録する処理の流れを示す図である。
【図１３】カテゴリグラフ１３に基づくエッジの追加処理の流れを示す図である。
【図１４】シソーラス１１とトピックグラフ１２とがリンクされた状態を示す図である。
【図１５】キーワードを入力する画面４０の一例を示す図である。
【図１６】キーワードが１つのトークンのみから構成されている場合の関連語の取得処理の流れを示す図である。
【図１７】同義語を説明するための図である。
【図１８】同義語の取得処理の流れを示す図である。
【図１９】下位語を説明するための図である。
【図２０】下位語を取得する処理の流れを示す図である。
【図２１】下位連想語を説明するための図である。
【図２２】下位連想語を取得する処理の流れを示す図である。
【図２３】上位連想語を説明するための図である。
【図２４】上位連想語を取得する処理の流れを示す図である。
【図２５】同位連想語を説明するための図である。
【図２６】同位連想語を取得する処理の流れを示す図である。
【図２７】キーワードが複数のトークンから構成されている場合の関連語の取得処理の流れを示す図である。
【図２８】共通同義語を説明するための図である。
【図２９】共通同義語を取得する処理の流れを示す図である。
【図３０】共通下位語を説明するための図である。
【図３１】共通下位語を取得する処理の流れを示す図である。
【図３２】仲介語を説明するための図である。
【図３３】仲介語を取得する処理の流れを示す図である。
【図３４】最適仲介語を説明するための図である。
【図３５】最適仲介語を取得する処理の流れを示す図である。
【図３６】検索結果及び関連語を出力する画面４１の一例を示す図である。
【図３７】検索処理に用いられる関連語グラフ１０の一部を示す図である。
【発明を実施するための形態】
【００２６】
以下、本実施形態に係る検索装置２０について説明する。本実施形態の検索装置２０は、検索要求（「クエリ」と呼ばれる。）に応じて、クエリに設定されている検索キーワードに対応する情報を検索するとともに、検索キーワードに関連する単語（以下、「関連語」という。）を提供する、いわゆるクエリサジェッションを行う。また、本実施形態の検索装置２０は、クエリサジェッションに用いられる、単語間の関連性を管理する辞書（以下、「関連語グラフ１０」という。）を作成する。
【００２７】
＝＝関連語グラフ１０＝＝
関連語グラフ１０の作成は、単語の概念階層（単語間における上位概念及び下位概念の関係）を定義するシソーラス１１に、Ｗｅｂページや新聞記事などのコーパスから作成された単語間の関係を定義するグラフ（以下、「トピックグラフ１２」という。）を接続する（マージする）ことによって行われる。通常、シソーラス１１は主に一般語から構成され、コーパスから作成されるトピックグラフ１２は、一般語よりも具体語や固有名詞など（「トピック」と呼ばれる。）を多く含む。したがって、シソーラス１１とトピックグラフ１２とでは重複する単語が少ないため、単純にシソーラス１１にトピックグラフ１２をマージすることは難しい。そこで、本実施形態の検索装置２０では、Ｗｅｂページのディレクトリ検索に用いられるカテゴリの階層を定義した有向グラフ（以下、「カテゴリグラフ１３」という。）を利用して、シソーラス１１にトピックグラフ１２をマージし、関連語グラフ１０を作成する。図１は関連語グラフ１０を説明するための図である。また、
シソーラス１１は、有向グラフにより概念の上下関係を管理するとともに、各概念を表現するための単語を管理する。シソーラス１１では、概念（「クラス」とも呼ばれる。）は数値として管理される。概念は例えば「＃３」などの値とすることができる。概念を表現する単語（「インスタンス」と呼ばれる。）は文字列として管理される。インスタンスは例えば「音楽」などの文字列とすることができる。図１では、シソーラス１１により管理される概念を黒三角で表し、単語を白三角で表す。ノード間のエッジ（「リンク」とも呼ばれる。）のうち、上下関係は実線の矢印で表し、概念とインスタンスとの関係は一点鎖線の矢印で表す。シソーラス１１を構成するグラフ構造において、インスタンスは、ノードのうち、末端の出て行くエッジのないノード（「リーフノード」または単に「リーフ」と呼ばれる。）である。概念はリーフノード以外のノードとなる。以下、リーフノード以外のノードを「概念ノード」ともいう。図１の例では、「＃１」のノード１１１及び「＃３」のノード１１２はともに概念であり、ノード１１２の上位概念がノード１１１である。「音」のリーフノード１１４は、ノード１１１のインスタンスである。
【００２８】
カテゴリグラフ１３では、有向グラフによりカテゴリ名の階層が定義され、カテゴリ名が各ノードとなる。図１では、カテゴリグラフ１３におけるカテゴリの名称（以下、「カテゴリ名」という。）を正方形で表す。図１の例では、「ロック」のカテゴリ名に対応するノード１３１から「ロックアーティスト」のカテゴリ名に対応するノード１３２にエッジが向けられていることから、「ロック」は「ロックアーティスト」の上位カテゴリになることが分かる。カテゴリグラフ１３を構成するノードは、シソーラス１１を構成するノードと区別するべく「リダイレクト」とも呼ばれる。
【００２９】
トピックグラフ１２は、有向グラフによりトピック間の関係性を定義する。トピックグラフ１２においては単語がノードになる。図１では、トピックグラフ１２におけるトピックを菱形で表す。トピックグラフ１２における単語間の関係性は、例えば主語と述語の関係、単語間の距離、同一の文書に共存する頻度など、コーパスを分析して得られる単語間の関係であればよい。このように上下関係のない関連性は、図１では破線の矢印で表す。図１の例では、トピック１２１からトピック１２２に破線の矢印のリンク１２３が描画されており、「ロックアーティスト」から「○山×夫」に向けて関係性があることが分かる。トピックグラフ１２を構成するノードも、シソーラス１１のノードと区別するために「リダイレクト」とも呼ばれる。
【００３０】
後述するように、シソーラス１１に含まれるノードの単語と、カテゴリグラフ１３に含まれるノードのカテゴリ名とが一致した場合、シソーラス１１のノードから、カテゴリグラフのノードの下位のノードに対してエッジが作成される。例えば図１において、図１において、シソーラス１１の「ロック」のリーフノード１１６とカテゴリグラフ１３の「ロック」のリダイレクト１３１とが一致しており、この場合リーフノード１１６から、リダイレクト１３１の下位に接続されているリダイレクト１３２にエッジ１４１が作成され、同様に、リーフノード１１６から、リダイレクト１３１の下位に接続されている他のリダイレクトにもエッジが作成される。
【００３１】
また、カテゴリグラフに含まれるノードのカテゴリ名と、トピックグラフに含まれるノードの単語とが一致した場合、当該トピックグラフ１２のノードからエッジで接続されている先のノードに対し、カテゴリグラフ１３のノードから新たなエッジが作成される。例えば図１において、カテゴリグラフ１３の「ロックアーティスト」のリダイレクト１３２と、トピックグラフ１２の「ロックアーティスト」のリダイレクト１２１とが一致し、リダイレクト１２１からエッジで接続されている先のリダイレクト１２２に対して、リダイレクト１３２から新たなエッジ１４２が作成される。
【００３２】
このようにして、シソーラス１１に含まれていた「ロック」のノード１１６から、トピックグラフ１２の「ロックアーティスト」のノード１２１や「○山×夫」のノード１２２までがエッジで接続されるので、シソーラス１１とトピックグラフ１２とがカテゴリグラフ１３を介してマージされることになる。
【００３３】
さらに、本実施形態では、後述するようにシソーラス１１に含まれている「ロック」のノード１１６と、リダイレクト１２１との間にエッジ１４３を作成することにより、シソーラス１１にトピックグラフ１２を直接マージさせるようにもしている。
【００３４】
作成された関連語グラフ１０は、キーワードに関連する単語を関連語として提供するクエリサジェッションに用いられる。キーワードは複数の単語から構成される句であってもよい。キーワードを構成する各単語は「トークン」と呼ばれる。後述するように、検索装置２０は、トークンと一致するノードを関連語グラフ１０から検索し、検索したノードの親、子、兄弟、祖先、子孫などのノードを関連語として出力する。
【００３５】
＝＝システム構成＝＝
以下、上記のような関連語グラフ１０を作成する検索装置２０を含むコンピュータシステムについて説明する。図２は、本実施形態に係る検索装置２０を含むコンピュータシステムの構成例を示す図である。本実施形態では、検索装置２０は通信ネットワーク２１に接続され、端末２２からキーワードを含むクエリを受信し、受信したクエリに含まれるキーワードに対応する文書を検索する。端末２２は、例えば、パーソナルコンピュータや携帯電話端末などのコンピュータであり、通信ネットワーク２１は例えばインターネットやローカルエリアネットワークなどである。また、検索装置２０は、検索結果を応答する際に、キーワードに関連する関連語を提示する、いわゆるキーワードのサジェスト機能を実現する。
【００３６】
図３は、検索装置２０のハードウェア構成を示す図である。検索装置２０は、ＣＰＵ２０１、メモリ２０２、記憶装置２０３、通信インタフェース２０４、入力装置２０５、出力装置２０６を備える。記憶装置２０３は、各種のデータやプログラムを記憶する、例えばハードディスクドライブやフラッシュメモリなどである。ＣＰＵ２０１は、記憶装置２０３に記憶されるプログラムをメモリ２０２に読み出して実行することにより各種の機能を実現する。通信インタフェース２０４は、通信ネットワーク２１に接続するための、例えば、イーサネット（登録商標）に接続するためのアダプタや、公衆電話回線網に接続するためのモデム、携帯電話回線網に接続するための無線通信機などのインタフェースである。入力装置２０５は、データの入力を受け付ける、例えばキーボードやマウス、マイクロフォンなどである。出力装置２０６は、データを出力する、例えばディスプレイやプリンタ、スピーカなどである。
【００３７】
図４は、検索装置２０のソフトウェア構成を示す図である。検索装置２０は、データ取得部２１１、グラフマージ部２１２、検索クエリ受信部２１３、検索処理部２１４、関連語取得部２１５、関連語出力部２１６、シソーラスデータベース２３１、トピックグラフデータベース２３２、カテゴリグラフデータベース２３３、関連語グラフデータベース２３４を備えている。なお、データ取得部２１１、グラフマージ部２１２、検索クエリ受信部２１３、検索処理部２１４、関連語取得部２１５、関連語出力部２１６は、ＣＰＵ２０１が記憶装置２０３に記憶されているプログラムをメモリに読み出すことにより実現され、シソーラスデータベース２３１、トピックグラフデータベース２３２、カテゴリグラフデータベース２３３、関連語グラフデータベース２３４は、メモリ２０２や記憶装置２０３が提供する記憶領域の一部として実現される。
【００３８】
シソーラスデータベース２３１は、シソーラス１１を記憶する。図５は、シソーラスデータベース２３１に記憶されるシソーラス１１の構成例を示す図である。シソーラスデータベース２３１において、シソーラス１１は、グラフを構成するノードに関する情報（以下、「ノード情報」という。）と、ノード間を接続するエッジに関する情報（以下、「エッジ情報」という。）とを含む。シソーラス１１に含まれるノード情報には、ノードを識別する情報（以下、「ノードＩＤ」という。）と、ノードに対応する単語（名称）と、ノードの種類とが含まれる。ノードの種類は「ノード」又は「リーフ」であり、概念ノードに対応するノード情報には種類に「ノード」が設定され、リーフノードに対応するノード情報には種類に「リーフ」が設定される。概念ノードに対応するノード情報には、概念に割り当てられた一意な値が名称に設定される。本実施形態では、「＃」にノードＩＤを追加した文字列が名称に設定されるものとする。シソーラス１１に含まれるエッジ情報には、エッジが接続する２つのノードのうち、上位のノードを示すノードＩＤ（ＩＤ）及び下位のノードを示すノードＩＤ（子ＩＤ）、エッジに割り当てられた重み、ならびにエッジが接続する２つのノード間の関係が含まれる。エッジの方向は、エッジ情報のＩＤが示すノードから、エッジ情報の子ＩＤが示すノードに向く。エッジ情報の関係は「インスタンス」又は「下位」である。例えば図１の例において「＃１」の概念ノード１１１から「音」のリーフノード１１４へのインスタンス関係となるエッジ１１５については「インスタンス」が設定される。また、例えば図１の例において「＃１」の概念ノード１１１から「＃３」の概念ノード１１２のように、２つの概念ノード間の階層を示すエッジ１１３については「下位」が設定される。
【００３９】
トピックグラフデータベース２３２はトピックグラフ１２を記憶する。図６は、トピックグラフデータベース２３２に記憶されるトピックグラフ１２の構成例を示す図である。トピックグラフデータベース２３２において、トピックグラフ１２は、シソーラス１１と同様に、グラフを構成する各ノードについてのノード情報と、２つのノード間を接続する各エッジについてのエッジ情報とを含む。トピックグラフ１２に含まれるノード情報には、ノードを示すノードＩＤと、ノードに対応する単語（名称）のみが含まれる。例えば図１の例において、「ロックアーティスト」のリダイレクト１２１について、リダイレクト１２１を示すノードＩＤがＩＤ欄に設定され、「ロックアーティスト」が名称欄に設定されたノード情報がトピックグラフデータベース２３２に登録される。トピックグラフ１２に含まれるエッジ情報には、第１のノードから第２のノードに向けてのエッジについて、第１のノードを示すＩＤと、第２のノードを示す子ＩＤと、エッジに割り当ててられている重みとが含まれる。例えば図１の例において、「ロックアーティスト」のリダイレクト１２１から「○山×夫」のリダイレクト１２２へのエッジ１２３について、リダイレクト１２１を示すノードＩＤがＩＤ欄に設定され、リダイレクト１２２を示すノードＩＤが子ＩＤ欄に設定され、コーパスを解析した際に割り当てられたエッジ１２３の重みが重み欄に設定されたエッジ情報が作成され、このエッジ情報がトピックグラフデータベース２３２に登録される。
【００４０】
カテゴリグラフデータベース２３３はカテゴリグラフ１３を記憶する。図７は、カテゴリグラフデータベース２３３に記憶されるカテゴリグラフ１３の構成例を示す図である。カテゴリグラフ１３は、シソーラス１１及びトピックグラフ１２と同様に、グラフを構成する各ノードについてのノード情報と、２つのノード間を接続する各エッジについてのエッジ情報とを含む。カテゴリグラフ１３に含まれるノード情報には、ノードを示すノードＩＤと、カテゴリ名（名称）とが含まれる。例えば図１の例において、「ロック」のノード１３１について、ノード１３１を示すノードＩＤがＩＤ欄に設定され、「ロック」が名称欄に設定されたノード情報がカテゴリデータベース２３３に登録される。カテゴリグラフ１３に含まれるエッジ情報には、エッジが接続する２つのカテゴリのうち、上位のカテゴリを示すＩＤと、下位のカテゴリを示す子ＩＤとが含まれる。例えば図１の例において、「ロック」のノード１３１から「ロックアーティスト」のノード１３２へのエッジ１３３について、ノード１３１を示すノードＩＤがＩＤ欄に設定され、ノード１３２を示すノードＩＤが子ＩＤ欄に設定されたエッジ情報がカテゴリグラフデータベース２３３に登録される。
【００４１】
データ取得部２１１は、シソーラスデータベース２３１、トピックグラフデータベース２３２及びカテゴリグラフデータベース２３３から、ノード情報及びエッジ情報を取得する。なお、本実施形態では、シソーラスデータベース２３１、トピックグラフデータベース２３２及びカテゴリグラフデータベース２３３は全て検索装置２０が備えているものとしたが、別体のデータベースサーバに管理させるようにしてもよい。また、例えば、データ取得部２１１が、シソーラス１１の編集者のコンピュータ、コーパスの分析者のコンピュータ、ディレクトリ検索を行う検索サーバなどにアクセスして、グラフ構造のデータを取得し、取得したグラフ構造のデータに基づいてノード情報及びエッジ情報を作成するようにしてもよい。
【００４２】
関連語グラフデータベース２３４は、関連語グラフ１０を記憶する。図８は、関連語グラフデータベース２３４に記憶される関連語グラフ１０の構成例を示す図である。関連語グラフ１０は、上述したシソーラス１１、トピックグラフ１２及びカテゴリグラフ１３と同様に、グラフを構成する各ノードについてのノード情報と、２つのノード間を接続するエッジについてのエッジ情報とを含む。関連語グラフ１０に含まれるノード情報には、ノードを示すノードＩＤと、名称、及びノードの種類が含まれる。ノード情報の種類欄には、シソーラス１１に含まれるノードについては「ノード」又は「リーフ」が設定され、トピックグラフ１２及びカテゴリグラフ１３に含まれるノードについては「リダイレクト」が設定される。関連語グラフ１０に含まれるエッジ情報には、有向のエッジの接続元となるノードを示すＩＤ、接続先のノードを示す子ＩＤ、エッジに割り当てられた重み、及びエッジが接続する２つのノードの関係が含まれる。エッジ情報の関係には、「インスタンス」「下位」又は「関連」のいずれかが設定される。
【００４３】
グラフマージ部２１２は、カテゴリグラフ１３を利用してシソーラス１１にトピックグラフ１２をマージする。本実施形態では、グラフマージ部２１２は、シソーラス１１のリーフノードとカテゴリグラフ１３のノードとを結ぶエッジを作成し、カテゴリグラフ１３のノードとトピックグラフ１２のノードとを結ぶエッジを作成し、さらにシソーラス１１のリーフノードとトピックグラフ１２のノードとを結ぶエッジを作成することにより、シソーラス１１にトピックグラフ１２をマージして関連語グラフ１０を作成する。なお、グラフマージ部２１２によるマージ処理の詳細については後述する。グラフマージ部２１２は、作成した関連語グラフ１０を関連語グラフデータベース２３４に登録する。
【００４４】
検索クエリ受信部２１３は、端末２２から送信されるクエリを受信する。上述したように、クエリにはキーワードが含まれる。
【００４５】
検索処理部２１４は、クエリに含まれているキーワードに対応する文書の検索を行う。なお、検索処理部２１４による文書の検索処理は、一般的なサーチエンジンによる検索処理であるものとする。
【００４６】
関連語取得部２１５は、クエリに含まれるキーワードに対応する関連語を関連語グラフデータベース２３４に記憶されている関連語グラフ１０から取得する。なお、関連語取得部２１５による関連語の取得処理の詳細については後述する。
【００４７】
関連語出力部２１６は、関連語取得部２１５が取得した関連語を出力する。本実施形態では、関連語出力部２１６は、検索処理部２１４による検索の処理結果とともに、関連語を端末１に送信するものとする。
【００４８】
＝＝マージ処理＝＝
以下、カテゴリグラフ１３を用いてシソーラス１１にトピックグラフ１２をマージする処理について説明する。  
図９は、マージ処理の流れを示す図である。グラフマージ部２１２は、シソーラス１１に基づいてノード情報及びエッジ情報を関連語グラフデータベース２３４に登録し（Ｓ３０１）、トピックグラフ１２に基づいてノード情報及びエッジ情報を関連語グラフデータベース２３４に登録し（Ｓ３０２）、カテゴリグラフ１３に基づいてノード情報及びエッジ情報を関連語グラフデータベース２３４に登録することにより（Ｓ３０３）、関連語グラフ１０が関連語グラフデータベース２３４に登録される。
【００４９】
図１０は、シソーラス１１に基づくノード情報及びエッジ情報を登録する処理の流れを示す図である。グラフマージ部２１２は、シソーラスデータベース２３１からノード情報を読み出し（Ｓ３２１）、シソーラスデータベース２３１からエッジ情報を読み出し（Ｓ３２２）、読み出したノード情報及びエッジ情報をそのまま関連語グラフデータベース２３４に登録する（Ｓ３２３）。すなわち、シソーラスデータベース２３１に登録されていたノード情報及びエッジ情報が関連語グラフデータベース２３４に登録される。
【００５０】
図１１は、トピックグラフ１２に基づくノード情報及びエッジ情報を登録する処理の流れを示す図である。  
グラフマージ部２１２は、関連語グラフデータベース２３４に登録されているノード情報のＩＤの最大値をｘとする（Ｓ３４１）。グラフマージ部２１２は、トピックグラフデータベース２３２からエッジ情報を読み出してエッジリストとし（Ｓ３４２）、エッジリストに含まれる各エッジ情報について、エッジ情報のＩＤ及び子ＩＤにそれぞれｘを加算するとともに（Ｓ３４３）、エッジ情報に「関連」の関係を追加する（Ｓ３４４）。グラフマージ部２１２は、トピックグラフデータベース２３２からノード情報を読み出してノードリストとし（Ｓ３４５）、ノードリストに含まれる各ノード情報について、ノード情報のＩＤにｘを加算するとともに（Ｓ３４６）、ノード情報に「リダイレクト」の種類を追加する（Ｓ３４７）。
【００５１】
グラフマージ部２１２は、ノードリストに含まれている各ノード情報について以下の処理を行う。グラフマージ部２１２は、ノード情報をＮとし（Ｓ３４８）、Ｎの名称と一致するノード情報を一致情報として関連語グラフデータベース２３４から検索する（Ｓ３４９）。一致情報があれば（Ｓ３５０：ＹＥＳ）、グラフマージ部２１２は、ＩＤがＮのＩＤと一致するエッジ情報Ｅをエッジリストから検索し（Ｓ３５１）、検索したエッジ情報Ｅのそれぞれについて、一致情報に含まれるＩＤと、Ｅに含まれる子ＩＤ、Ｅに含まれる重み、及び「下位」の関係を含むエッジ情報を作成して関連語グラフデータベース２３４に書き込む（Ｓ３５２）。
【００５２】
グラフマージ部２１２は、以上の処理を各ノード情報について行った後、ノードリストに含まれるノード情報を関連語グラフデータベース２３４に書き込み（Ｓ３５３）、エッジリストに含まれるエッジ情報を関連語グラフデータベース２３４に書き込む（Ｓ３５４）。
【００５３】
以上のようにして、トピックグラフデータベース２３２に記憶されているノード情報及びエッジ情報が関連語グラフデータベース２３４に登録される。また、トピックがシソーラス１１のリーフノードとしても存在している場合は、シソーラス１１のリーフノードから、そのトピックに関連する他のトピックに向けて「下位」の関係を示すエッジ情報が関連語グラフデータベース２３４に登録される。
【００５４】
図１２は、カテゴリグラフ１３に基づくノード情報及びエッジ情報を登録する処理の流れを示す図である。  
グラフマージ部２１２は、関連語グラフデータベース２３４に登録されているノード情報のＩＤの最大値をｘとし（Ｓ３６１）、カテゴリグラフデータベース２３３からエッジ情報を読み出してエッジリストとし（Ｓ３６２）、エッジリストに含まれる各エッジ情報について、エッジ情報のＩＤ及び子ＩＤのそれぞれにｘを加算するとともに（Ｓ３６３）、エッジ情報に「下位」の関係を追加する（Ｓ３６４）。グラフマージ部２１２は、カテゴリグラフデータベース２３３からノード情報を読み出してノードリストとし（Ｓ３６５）、ノードリストに含まれる各ノード情報について、ノード情報のＩＤにｘを加算するとともに（Ｓ３６６）、ノード情報に「リダイレクト」の種類を追加する（Ｓ３６７）。グラフマージ部２１２は、ノードリストに含まれるノード情報を関連語グラフデータベース２３４に書き込み（Ｓ３６８）、エッジリストに含まれるエッジ情報を関連語グラフデータベース２３４に書き込む（Ｓ３６９）。
【００５５】
グラフマージ部２１２は、ノードリストに含まれている各ノード情報についてノード情報をＮとし（Ｓ３７０）、図１３に示すエッジの追加処理を行う（Ｓ３７１）。
【００５６】
グラフマージ部２１２は、名称がＮの名称と一致し、かつ、種類が「リーフ」であるノード情報（すなわち、Ｎの名称に対応するシソーラス１１のリーフノードに対応するノード情報になる。）を一致情報として関連語グラフデータベース２３４から検索する（Ｓ３８１）。一致情報があれば（Ｓ３８２：ＹＥＳ）、グラフマージ部２１２は、ＩＤがＮのＩＤと一致するエッジ情報Ｅを関連語グラフデータベース２３４から検索し（Ｓ３８３）、検索したエッジ情報Ｅのそれぞれについて、一致情報に含まれるＩＤ、Ｅに含まれる子ＩＤ、Ｅに含まれる重み、及び「下位」の関係を含むエッジ情報を作成して関連語グラフデータベース２３４に書き込む（Ｓ３８４）。これにより、カテゴリグラフ１３におけるカテゴリ名と一致するシソーラス１１の単語がある場合には、当該単語から、当該カテゴリの下位のカテゴリへのエッジが作成される。例えば、図１４に示すように、シソーラス１１のリーフノード１１６に対応する単語「ロック」と、カテゴリグラフ１３のリダイレクト１３１に対応するカテゴリ名「ロック」とが一致した場合には、エッジ１４１が追加されることになる。
【００５７】
グラフマージ部２１２は、名称がＮの名称と一致し、かつ、種類が「リダイレクト」であるノード情報（すなわち、Ｎの名称に対応するトピックグラフ１２のリダイレクトに対応するノード情報になる。）を一致情報として関連語グラフデータベース２３４から検索し（Ｓ３８５）、一致情報があれば（Ｓ３８６：ＹＥＳ）、子ＩＤがＮのＩＤと一致するエッジ情報Ｅを関連語グラフデータベース２３４から検索し（Ｓ３８７）、検索したエッジ情報Ｅのそれぞれについて、Ｅに含まれるＩＤ、一致情報に含まれるＩＤ、Ｅに含まれる重み、及び「下位」の関係を含むエッジ情報を作成して、関連語グラフデータベース３３４に書き込む（Ｓ３８８）。これにより、カテゴリグラフ１３におけるカテゴリ名と一致するトピックグラフ１２におけるトピックがある場合には、当該カテゴリ名の上位のカテゴリから当該トピックへのエッジが作成される。例えば、図１４に示すように、カテゴリグラフ１３のリダイレクト１３２に対応するカテゴリ名「ロックアーティスト」と、トピックグラフ１２のリダイレクト１２１に対応する単語「ロックアーティスト」とが一致した場合には、エッジ１４４が追加されることになる。さらに、上記ステップＳ３８４でリダイレクト１３２の上位に追加されたリーフノード１１６からリダイレクト１２１へのエッジ１４３が追加されることになる。
【００５８】
また、グラフマージ部２１２は、ＩＤが一致情報のＩＤと一致するエッジ情報Ｅを関連語グラフデータベース２３４から検索し（Ｓ３８９）、検索したエッジ情報Ｅのそれぞれについて、Ｎに含まれるＩＤ、Ｅに含まれるＩＤ、Ｅに含まれる重み、及び「下位」の関係を含むエッジ情報を作成して、関連語グラフデータベース３３４に書き込む（Ｓ３９０）。これにより、カテゴリグラフ１３におけるカテゴリ名と一致するトピックグラフ１２におけるトピックがある場合には、当該カテゴリ名から、当該トピックからエッジにより接続されている先のトピックに対してエッジが作成される。例えば図１４に示すように、カテゴリグラフ１３のリダイレクト１３２に対応するカテゴリ名「ロックアーティスト」と、トピックグラフ１２のリダイレクト１２１に対応する単語「ロックアーティスト」とが一致した場合、エッジ１４２が追加されることになる。
【００５９】
以上のようにして、シソーラス１１のリーフノード１１６からトピックグラフ１２のリダイレクト１２２へのエッジ１３７により、シソーラス１１にトピックグラフ１２が接続される。
【００６０】
グラフマージ部２１２は、以上の処理を各ノード情報について繰り返すことにより、カテゴリグラフデータベース２３３に記憶されているノード情報及びエッジ情報を関連語グラフデータベース２３４に登録するとともに、カテゴリ名に一致するシソーラス１１の単語や、カテゴリ名に一致するトピックグラフ１２のトピックをリンクしていくことができる。
【００６１】
以上のようにして、カテゴリグラフ１３に含まれているカテゴリ名のうち、シソーラス１１のリーフノードの単語に一致するものがある場合には、その単語からカテゴリ名へのエッジが作成され、トピックグラフ１２のトピックに一致するものがある場合には、カテゴリ名からそのトピックへのエッジが作成され、さらにシソーラス１１のリーフノードからトピックへのエッジも作成される。
【００６２】
＝＝クエリサジェッション処理＝＝
次に、クエリに含まれるキーワードに関連する関連語を提示するクエリサジェッション処理について説明する。図１５は、端末２２において表示される、ユーザがキーワードを入力する画面４０の一例を示す図である。端末２２が検索装置２０にアクセスすると、検索処理部２１４は、画面４０を表示するための画面データを端末２２に送信し、端末２２では画面データに基づいて画面４０が表示される。ユーザがキーワードの入力欄４０１にキーワードを入力して検索ボタン４０２を押下すると、入力欄４０１に入力されたキーワードを含むクエリが端末２２から検索装置２０に送信される。検索装置２０の検索処理部２１４は、クエリに含まれているキーワードに対応する文書の検索を行う。なお、検索処理部２１４による文書の検索処理については、一般的な検索エンジンと同様の処理を行うものとして説明を省略する。
【００６３】
また、関連語取得部２１５が、クエリの受信に応じて、クエリに含まれているキーワードに関連する関連語を関連語グラフ１０から取得する。本実施形態では、キーワードを構成するトークンが１つである場合と、２つ以上である場合とで異なる処理を行う。図１６は、キーワードが１つのトークンのみから構成されている場合の関連語の取得処理の流れを示す図である。図１５の例では、キーワードとして「ロックアーティスト」が設定されており、キーワードを構成するトークンは「ロックアーティスト」の１つのみであるので、図１６の処理が行われる。
【００６４】
関連語取得部２１５は、空の関連語リストを作成し（Ｓ４０１）、関連語グラフデータベース２３４から名称がクエリに含まれるトークンと一致するノード情報を検索する（Ｓ４０２）。関連語取得部２１５は、ノード情報が検索された場合（Ｓ４０３：ＹＥＳ）、各ノード情報について、同義語の取得処理を行い（Ｓ４０４）、下位語の取得処理を行い（Ｓ４０５）、下位連想語の取得処理を行い（Ｓ４０６）、上位連想語の取得処理を行い（Ｓ４０７）、同位連想語の取得処理を行う（Ｓ４０８）。
【００６５】
＝＝同義語＝＝
トークンの同義語とは、トークンがシソーラス１１のリーフノードである場合に、トークンの上位の概念ノードからインスタンス関係にある、他のリーフノードである。図１７に示すように、トークン６０１とエッジ６０２により接続されている上位のノード６０３から、トークン６０１以外に２つのリーフノード６０４がインスタンス関係となって接続されている場合、トークン６０１の同義語はリーフノード６０４である。
【００６６】
図１８は、同義語の取得処理の流れを示す図である。関連語取得部２１５は、ノード情報の種類が「リーフ」である場合（Ｓ４２１：ＹＥＳ）、関連語グラフデータベース２３４から、子ＩＤがノード情報のＩＤに一致するエッジ情報を親エッジ情報として検索する（Ｓ４２２）。関連語取得部２１５は、検索された親エッジ情報のそれぞれについて以下の処理を行う。すなわち、関連語取得部２１５は、関連語グラフデータベース２３４から、ＩＤが親エッジ情報のＩＤに一致するノード情報を親ノード情報として取得し（Ｓ４２３）、取得した親ノード情報の種類が「ノード」であれば（Ｓ４２４：ＹＥＳ）、さらに関連語グラフデータベース２３４から、ＩＤが親ノード情報のＩＤと一致するエッジ情報を検索する（Ｓ４２５）。ここで、エッジ情報の子ＩＤがノード情報のＩＤと一致するものは除くようにする。関連語取得部２１５は、検索したエッジ情報のそれぞれについて、関連語グラフデータベース２３４から、ＩＤがエッジ情報の子ＩＤと一致するノード情報を子ノード情報として取得し（Ｓ４２６）、取得した子ノード情報の種類が「リーフ」であれば（Ｓ４２７：ＹＥＳ）、子ノード情報の名称を同義語として関連語リストに追加する（Ｓ４２８）。  
以上のようにして、シソーラス１１のリーフノードの上位ノードの下位となる、当該リーフノードと同位の他のリーフノードが同義語として取得される。
【００６７】
＝＝下位語＝＝
トークンの下位語とは、トークンがシソーラス１１のリーフノードである場合に、関連語グラフ１０においてリーフノードに接続されるリダイレクトである。図１９に示すように、トークンがシソーラス１１のリーフノード６１１であった場合、エッジ６１２により他のリーフノード６１３がリーフノード６１１に接続されていても、リーフノード６１３は下位語にはならず、リーフノード６１１に接続されているリダイレクト６１４が下位語となる。  
図２０は、下位語を取得する処理の流れを示す図である。関連語取得部２１５は、ノード情報の種類が「リーフ」である場合（Ｓ４４１：ＹＥＳ）、関連語グラフデータベース２３４から、ＩＤがノード情報のＩＤと一致するエッジ情報を子エッジ情報として検索する（Ｓ４４２）。関連語取得部２１５は、検索した子エッジ情報のそれぞれについて、関連語グラフデータベース２３４から、ＩＤが子エッジ情報の子ＩＤと一致するノード情報を子ノード情報として取得し（Ｓ４４３）、取得した子ノード情報の種類が「リダイレクト」であれば（Ｓ４４４：ＹＥＳ）、子ノード情報の名称を下位語として関連語リストに追加する（Ｓ４４５）。  
以上のようにして、シソーラス１１のリーフノードの下位に接続されたリダイレクトのノード、すなわち、シソーラス１１のリーフノードの下位に接続された、トピックグラフ１２のトピック又はカテゴリグラフ１３のカテゴリ名が下位語として取得される。  
なお、リーフノードの下位に接続されるリーフノードも下位語として取得するようにしてもよい。また、リーフノードの下位に接続されるリーフノードは、後述の下位連想語として取得するようにしてもよい。
【００６８】
＝＝下位連想語＝＝
トークンの下位連想語とは、トークンがリダイレクトである場合に、関連語グラフ１０において、当該リダイレクトにエッジで接続される下位のリダイレクトである。図２１に示すように、トークン６２１がリダイレクトである場合、エッジ６２２によりリーフノード６２３が下位に接続されていても、リーフノード６２３はトークン６２１の下位連想語にはならず、トークン６２１の上位に接続されているリダイレクト６２４が下位連想語となる。  
図２２は、下位連想語を取得する処理の流れを示す図である。関連語取得部２１５は、ノード情報の種類が「リダイレクト」である場合（Ｓ４６１：ＹＥＳ）、関連語グラフデータベース２３４から、ＩＤがノード情報のＩＤと一致するエッジ情報を子エッジ情報として検索する（Ｓ４６２）。関連語取得部２１５は、検索した子エッジ情報のそれぞれについて、関連語グラフデータベース２３４から、ＩＤが子エッジ情報の子ＩＤと一致するノード情報を子ノード情報として取得し（Ｓ４６３）、子ノード情報の種類が「リダイレクト」であれば（Ｓ４６４：ＹＥＳ）、子ノード情報の名称を下位連想語として関連語リストに追加する（Ｓ４６５）。  
以上のようにして、トピックグラフ１２又はカテゴリグラフ１３のリダイレクトの下位に接続されたリダイレクトが下位連想語として取得される。
【００６９】
＝＝上位連想語＝＝
トークンの上位連想語とは、トークンがリダイレクトである場合に、関連語グラフ１０において、当該リダイレクトにエッジで接続される上位のリダイレクトである。図２３に示すように、トークン６３１がリダイレクトである場合、エッジ６３２によりリーフノード６２３が上位に接続されていても、リーフノード６３３はトークン６３１の上位連想語にはならず、トークン６３１の上位に接続されているリダイレクト６３４が上位連想語となる。  
図２４は、上位連想語を取得する処理の流れを示す図である。関連語取得部２１５は、ノード情報の種類が「リダイレクト」である場合（Ｓ４８１：ＹＥＳ）、関連語グラフデータベース２３４から、子ＩＤがノード情報のＩＤと一致するエッジ情報を親エッジ情報として検索する（Ｓ４８２）。関連語取得部２１５は、検索した親エッジ情報のそれぞれについて、関連語グラフデータベース２３４から、ＩＤが親エッジ情報のＩＤと一致するノード情報を親ノード情報として取得し（Ｓ４８３）、親ノード情報の種類が「リダイレクト」であれば（Ｓ４８４：ＹＥＳ）、親ノード情報の名称を上位連想語として関連語リストに追加する（Ｓ４８５）。  
以上のようにして、トピックグラフ１２又はカテゴリグラフ１３のリダイレクトの上位に接続されたリダイレクトが上位連想語として取得される。
【００７０】
＝＝同位連想語＝＝
トークンの同位連想語とは、トークンがリダイレクトである場合に、関連語グラフ１０において、当該リダイレクトに接続される上位ノード（概念ノードでも、リーフノードでも、リダイレクトでもよい。）の下位に接続されるリダイレクトである。図２５に示すように、トークン６４１の上位に接続されるノード６４３の下位に接続されるリダイレクト６４４が同位連想語となる。  
図２６は、同位連想語を取得する処理の流れを示す図である。関連語取得部２１５は、ノード情報の種類が「リダイレクト」である場合（Ｓ５０１：ＹＥＳ）、関連語グラフデータベース２３４から、子ＩＤがノード情報のＩＤと一致するエッジ情報を親エッジ情報として検索し（Ｓ５０２）、検索した親エッジ情報のそれぞれについて以下の処理を行う。すなわち、関連語取得部２１５は、関連語グラフデータベース２３４から、ＩＤが親エッジ情報のＩＤと一致するエッジ情報を子エッジ情報として検索する（Ｓ５０３）。ここで、子エッジ情報の子ＩＤがノード情報のＩＤと一致するものは除くようにする。関連語取得部２１５は、検索した子エッジ情報のそれぞれについて、関連語グラフデータベース２３４から、ＩＤが子エッジ情報の子ＩＤと一致するノード情報を子ノード情報として取得し（Ｓ５０４）、子ノード情報の種類が「リダイレクト」であれば（Ｓ５０５：ＹＥＳ）、子ノード情報の名称を同位連想語として関連語リストに追加する（Ｓ５０６）。  
以上のようにして、リダイレクトの上位ノードの下位となる他のリダイレクトが同位連想語として取得される。
【００７１】
＝＝複数トークンの関連語取得処理＝＝
キーワードが複数のトークンから構成されている場合、本実施形態では、上述した図１６〜図２６の処理とは異なる処理が行われる。図２７は、キーワードが複数のトークンから構成されている場合の関連語の取得処理の流れを示す図である。関連語取得部２１５は、キーワードを構成している各トークンについて、関連語グラフデータベース２３４から名称がトークンと一致するノード情報を検索し（Ｓ７０１）、１つ以上のノード情報が検索されれば（Ｓ７０２：ＹＥＳ）、共通同義語の取得処理を行い（Ｓ７０３）、共通下位語の取得処理を行い（Ｓ７０４）、仲介語の取得処理を行い（Ｓ７０５）、最適仲介語の取得処理を行う（Ｓ７０６）。以下、共通同義語、共通下位語、仲介語及び最適仲介語について説明し、また各取得処理について説明する。
【００７２】
＝＝共通同義語＝＝
複数トークンの共通同義語とは、関連語グラフ１０において、全てのトークンに接続される上位ノードの下位に接続されるノード（リーフノード又はリダイレクト）である。図２８に示すように、トークン８０１及び８０２の両方にエッジ８０３及び８０４で接続されている上位のノード８０５がある場合に、ノード８０５の下位に接続されているノード８０６が、トークン８０１及び８０２の共通同義語になる。  
図２９は、共通同義語を取得する処理の流れを示す図である。関連語取得部２１５は、ノード情報のそれぞれを第１ノード情報として、以下の処理を行う。  
関連語取得部２１５は、関連語グラフデータベース２３４から、子ＩＤが第１ノード情報のＩＤと一致するエッジ情報を親エッジ情報として検索し（Ｓ７２１）、検索した親エッジ情報のそれぞれについて以下の処理を行う。  
関連語取得部２１５は、他のノード情報のそれぞれを第２ノード情報として、関連語グラフデータベース２３４から、子ＩＤが第２ノード情報のＩＤと一致し、かつ、ＩＤが親エッジ情報のＩＤと一致するエッジ情報を子エッジ情報として検索し（Ｓ７２２）、子エッジ情報が検索できなければ（Ｓ７２３：ＮＯ）、ステップＳ７２４〜Ｓ７２７の処理をスキップする。  
関連語取得部２１５は、全ての第２ノード情報について子エッジ情報を検索できた場合（Ｓ７２３：ＹＥＳ）、関連語グラフデータベース２３４から、ＩＤが親エッジ情報のＩＤと一致するエッジ情報を子エッジ情報として検索し（Ｓ７２４）、検索した各子エッジ情報について、関連語グラフデータベース２３４から、ＩＤがエッジ情報の子ＩＤと一致するノード情報を子ノード情報として取得し（Ｓ７２５）、子ノード情報の種類が「リーフ」又は「リダイレクト」であれば（Ｓ７２６：ＹＥＳ）、子ノード情報の名称を関連語リストに追加する（Ｓ７２７）。  
以上の処理を、各親エッジ情報及び各第１ノード情報について繰り返すことにより、全てのトークンの上位に接続されるノードの下位に接続されるリーフノード及びリダイレクトが共通同義語として取得される。
【００７３】
＝＝共通下位語＝＝
複数トークンの共通下位語とは、関連語グラフ１０において、全てのトークンの下位に接続されるノード（リーフノード又はリダイレクト）である。図３０に示すように、トークン８２１は下位にノード８２３及び８２４が接続され、トークン８２２は下位にノード８２４のみが接続されている場合、トークン８２１及び８２２の全ての下位に接続されるノード８２４が共通下位語になる。  
図３１は、共通下位語を取得する処理の流れを示す図である。関連語取得部２１５は、ノード情報のそれぞれを第１ノード情報として、以下の処理を行う。  
関連語取得部２１５は、関連語グラフデータベース２３４から、ＩＤが第１ノード情報のＩＤと一致するエッジ情報を第１子エッジ情報として検索し（Ｓ７４１）、検索した第１子エッジ情報のそれぞれについて以下の処理を行う。  
関連語取得部２１５は、他のノード情報のそれぞれを第２ノード情報として、関連語グラフデータベース２３４から、ＩＤが第２ノード情報のＩＤと一致し、かつ、子ＩＤが第１子エッジ情報の子ＩＤと一致するエッジ情報を第２子エッジ情報として検索し（Ｓ７４２）、第２子エッジ情報が検索できなければ（Ｓ７４３：ＮＯ）、ステップＳ７４４〜Ｓ７４６の処理をスキップする。  
関連語取得部２１５は、全ての第２ノード情報について第２子エッジ情報が検索できた場合（Ｓ７４３：ＹＥＳ）、関連語グラフデータベース２３４から、ＩＤが第１子エッジ情報のＩＤと一致するノード情報を子ノード情報として取得し（Ｓ７４４）、子ノード情報の種類が「リーフ」又は「リダイレクト」であれば（Ｓ７４５：ＹＥＳ）、子ノード情報の名称を関連語リストに追加する（Ｓ７４６）。  
以上の処理を、各子エッジ情報及び各第１ノード情報について繰り返すことにより、全てのトークンの下位に接続されるリーフノード及びリダイレクトが共通下位語として取得される。
【００７４】
＝＝仲介語＝＝
複数トークンの仲介語とは、関連語グラフ１０において、２つのトークンを接続する経路上に存在するノード（リーフノード又はリダイレクト）である。図３２に示すように、トークン８３１からトークン８３２までを接続する経路上に存在するノード８３３が仲介語となる。図３２では、トークン８３１及び８３２について、ノード８３４は仲介語とならない。  
図３３は、仲介語を取得する処理の流れを示す図である。関連語取得部２１５は、２つのノード情報の各組合せについて以下の処理を行う。  
関連語取得部２１５は、関連語グラフデータベース２３４から、２つのノード情報のうち、一方に対応する第１ノードから、他方に対応する第２ノードまでの経路を検索し（Ｓ７６１）、第２ノードから第１ノードへの経路も検索する（Ｓ７６２）。２つのノード間の経路は、一般的なグラフにおける経路の探索処理によって検索する。関連語取得部２１５は、検索した経路のそれぞれについて、経路において経由するノード（以下、「経由ノード」という。）を特定し（Ｓ７６３）、特定した経由ノードに対応するノード情報を関連語グラフデータベース２３４から取得する（Ｓ７６４）。関連語取得部２１５は、取得した経由ノード情報のそれぞれについて、経由ノード情報の種類が「リーフ」又は「リダイレクト」であれば（Ｓ７６５：ＹＥＳ）、経由ノード情報の名称を仲介語として関連語リストに追加する（Ｓ７６６）。
【００７５】
以上の処理を２つのノード情報の各組合せについて行うことにより、キーワードに含まれている２つのトークンを結ぶ経路上に存在するリーフノード又はリダイレクトが仲介語として取得される。
【００７６】
＝＝最適仲介語＝＝
複数トークンの最適仲介語とは、関連語グラフ１０において、２つのトークンを接続する経路うちの最適経路上に存在するノード（リーフノード又はリダイレクト）である。本実施形態では、最適経路は、エッジの重みの平均値が最も大きい経路を最適経路として決定する。なお、最適経路は、例えば、エッジに割り当てられたコストに応じて決定するようにしてもよいし、経路上のノードの数が少ない経路を最適経路として決定するようにしてもよい。また、ノード及びエッジに割り当てられた重みやコストに応じて決定するようにしてもよい。図３４に示すように、トークン８４１とトークン８４２とを接続する経路は、経路ａｂｃと経路ｄｅｆｇとがあり、経路ａｂｃの重みの平均値は、（５０＋１００＋６０）÷３＝７０であり、経路ｄｅｆｇの重みの平均値は（５０＋５０＋５０＋５０）÷４＝５０であるので、最適経路は経路ａｂｃとなり、経路ａｂｃに含まれるノード８４３及び８４４が最適仲介語になる。  
図３５は、最適仲介語を取得する処理の流れを説明する図である。関連語取得部２１５は、関連語取得部２１５は、２つのノード情報の各組合せについて以下の処理を行う。  
関連語取得部２１５は、関連語グラフデータベース２３４から、２つのノード情報のうち、一方に対応する第１ノードから、他方に対応する第２ノードまでの経路を検索し（Ｓ７８１）、第２ノードから第１ノードへの経路も検索する（Ｓ７８２）。２つのノード間の経路は、一般的なグラフにおける経路の探索処理によって検索する。関連語取得部２１５は、検索した経路のそれぞれについて、経路に含まれるエッジ（以下、「経由エッジ」という。）を特定し（Ｓ７８３）、特定した経由エッジに対応するエッジ情報を関連語グラフデータベース２３４から検索し、検索したエッジ情報の重みの平均値を求める（Ｓ７８４）。関連語取得部２１５は、重みの平均値が最も大きい経路を最適経路として決定し（Ｓ７８５）、最適経路において経由する経由ノードを特定し（Ｓ７８６）、特定した経由ノードに対応するノード情報を関連語グラフデータベース２３４から取得する（Ｓ７８７）。関連語取得部２１５は、取得した経由ノード情報のそれぞれについて、経由ノード情報の種類が「リーフ」又は「リダイレクト」であれば（Ｓ７８８：ＹＥＳ）、経由ノード情報の名称を最適仲介語として関連語リストに追加する（Ｓ７８９）。
【００７７】
以上の処理を２つのノード情報の各組合せについて行うことにより、キーワードに含まれている２つのトークンを結ぶ経路のうち、重みの合計値が最も小さい最適経路上に存在するリーフノード又はリダイレクトが仲介語として取得される。
【００７８】
検索装置２０の関連語取得部２１５は、以上のようにしてキーワードに関連する関連語を関連グラフ１０から取得する。関連語出力部２１６は、検索処理部２１４による検索結果に関連語を追加して端末２２に送信する。図３６は、検索結果を表示するための画面４１の一例を示す図である。図３７は、検索処理に用いられる関連語グラフ１０の一部を示す図である。画面４１には、検索結果４１１とともに、関連語４１２−４１５が表示されている。関連語４１２は、図３７の例における関連語グラフ１０において、上述した画面４０の入力欄４０１に入力されたキーワード「ロックアーティスト」のノード１３２からエッジ４２１で接続されるノード１２２の「○山×夫」が下位連想語として取得されたものである。関連語４１３は、「ロックアーティスト」のノード１３２からエッジ４２２で接続される「○崎△△」が下位連想語として取得されたものである。関連語４１４は、「ロックアーティスト」のノード１３２に対してエッジ４２３により接続されているノード１１６の「ロック」が上位連想語として取得されたものである。関連語４１５は、「ロックアーティスト」のノード１３２に対してエッジ４２４により接続されているノード１３１からエッジ４２５によって接続されているノード１３４の「ヒットチャート」が同位連想語として取得されたものである。このように図３７の例では、画面４１には下位連想語、上位連想語及び同位連想語が表示されている。同様にして、同義語や下位語などが検索された場合には、それらを関連語として表示することもできる。また、キーワードに複数のトークンが設定されている場合には、関連語グラフ１０から、共通同義語や共通下位語、仲介語を関連語として取得し、画面４１に表示することができる。画面４１において関連語４１２−４１５のいずれかがクリックされると、クリックされた関連語をキーワードとして含むクエリが端末２２から検索装置２０に送信されて、上述した検索処理と関連語の取得処理とが行われる。
【００７９】
以上説明したように、本実施形態の検索装置２０では、カテゴリグラフ１３を利用することにより、シソーラス１１にトピックグラフ１２をマージすることができる。シソーラス１１とトピックグラフ１２を組み合わせることにより、一般語や固有名詞、専門用語など、幅広い単語から構成される関連語グラフ１０を作成することができる。したがって、トークンが関連語グラフ１０に含まれる単語にマッチする可能性を高めることができる。これにより、トークンに関連する関連語を確実に提供することができる。
【００８０】
また、関連語グラフ１０はグラフ構造をしているため、クエリに含まれるキーワードにマッチするノードを起点としてエッジを介してつながる関連語を容易に取得することができる。したがって、本実施形態の検索装置２０は、クエリサジェッションを迅速に提供することができる。
【００８１】
また、本実施形態の検索装置２０は、同義語、下位語、下位連想語、上位連想語、同位連想語、共通同義語、共通下位語、仲介語及び最適仲介語（以下、「同義語等」という。）など、トークンとの関連性を様々な視点から評価した関連語を提示している。したがって、ユーザは、関連語を参考にして、新たな絞り込みを行う検索のキーワードを選択することが容易にできる。
【００８２】
以上、本実施形態について説明したが、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
【００８３】
例えば、本実施形態では、通信ネットワーク２１を介して端末２２から検索装置２０にクエリが送信されることを前提としたが、検索装置２０が直接ユーザからキーワードの入力を受け付けるようにしてもよい。また、文書の検索時点に限らず、各種の契機にキーワードに関連する関連語を提示することができる。
【００８４】
また、本実施形態では、シソーラス１１、トピックグラフ１２及びカテゴリグラフ１３はいずれも有向グラフであるものとしたが、環状構造を有さないツリー構造であってもよいし、無向グラフであってもよい。無向グラフを採用する場合には、ＩＤ又は子ＩＤをキーとしてエッジ情報を検索する処理において、ＩＤをキーとしたエッジ情報の検索と、子ＩＤをキーとしたエッジ情報の検索の両方を行うようにする。
【００８５】
また、本実施形態では、クエリに含まれるキーワードを構成するトークンについて、同義語等を関連語として提示するものとしたが、これに限らず、関連語グラフ１０において、トークンに対応するノードを起点としてエッジで接続されている各種のノードを関連語として提示することができる。例えば、トークンにエッジで接続される上位のノード（上位語）を関連語として提示するようにしてもよい。また、トークンを起点として２つ以上のエッジで接続される上位又は下位のノードを上位語又は下位語として提示するようにしてもよい。
【００８６】
また、本実施形態では、同義語等に該当するノードは全て関連語として取得するものとしたが、同義語等に該当するノードとトークンとの間を接続するエッジの重みに応じて、所定数のみを提示するようにしてもよい。
【符号の説明】
【００８７】
１０    関連語グラフ
１１    シソーラス
１２    トピックグラフ
１３    カテゴリグラフ
２０    検索装置
２１    通信ネットワーク
２２    端末
２０１  ＣＰＵ
２０２  メモリ
２０３  記憶装置
２０４  通信インタフェース
２０５  入力装置
２０６  出力装置
２１１  データ取得部
２１２  グラフマージ部
２１３  検索クエリ受信部
２１４  検索処理部
２１５  関連語取得部
２１６  関連語出力部
２３１  シソーラスデータベース
２３２  トピックグラフデータベース
２３３  カテゴリグラフデータベース
２３４  関連語グラフデータベース
【図１】
0005208193.tif 000002
【図２】
0005208193.tif 000003
【図３】
0005208193.tif 000004
【図４】
0005208193.tif 000005
【図５】
0005208193.tif 000006
【図６】
0005208193.tif 000007
【図７】
0005208193.tif 000008
【図８】
0005208193.tif 000009
【図９】
0005208193.tif 000010
【図１０】
0005208193.tif 000011
【図１１】
0005208193.tif 000012
【図１２】
0005208193.tif 000013
【図１３】
0005208193.tif 000014
【図１４】
0005208193.tif 000015
【図１５】
0005208193.tif 000016
【図１６】
0005208193.tif 000017
【図１７】
0005208193.tif 000018
【図１８】
0005208193.tif 000019
【図１９】
0005208193.tif 000020
【図２０】
0005208193.tif 000021
【図２１】
0005208193.tif 000022
【図２２】
0005208193.tif 000023
【図２３】
0005208193.tif 000024
【図２４】
0005208193.tif 000025
【図２５】
0005208193.tif 000026
【図２６】
0005208193.tif 000027
【図２７】
0005208193.tif 000028
【図２８】
0005208193.tif 000029
【図２９】
0005208193.tif 000030
【図３０】
0005208193.tif 000031
【図３１】
0005208193.tif 000032
【図３２】
0005208193.tif 000033
【図３３】
0005208193.tif 000034
【図３４】
0005208193.tif 000035
【図３５】
0005208193.tif 000036
【図３６】
0005208193.tif 000037
【図３７】
0005208193.tif 000038