(57)【要約】【課題】文字列に関連するコンテンツを幅広く検索することを可能とするコンテンツ検索装置を提供する。【解決手段】１つ以上の文字列に関連する複数のコンテンツが記憶されたコンテンツ記憶手段と、文字列の意味に基づいて定まる文字列同士の上下関係を示す上下関係情報を含むシソーラスが記憶されたシソーラス記憶手段と、文字列が入力される入力手段と、シソーラス記憶手段により記憶されたシソーラスを用いて、該シソーラスに含まれる文字列同士の関連度を、当該文字列同士の上下関係を示す上下関係情報に応じて定まる数値で示した関連度情報に基づき、入力手段により入力された入力文字列と関連する関連文字列を抽出する抽出手段と、抽出手段により抽出された関連文字列、及び入力文字列に関連するコンテンツをコンテンツ記憶手段により記憶されたコンテンツから検索する検索手段と、を有する。【選択図】図５
2009026083.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上の文字列に関連する複数のコンテンツが記憶されたコンテンツ記憶手段と、
文字列の意味に基づいて定まる文字列同士の上下関係を示す上下関係情報を含むシソーラスが記憶されたシソーラス記憶手段と、
文字列が入力される入力手段と、
前記シソーラス記憶手段により記憶された前記シソーラスを用いて、該シソーラスに含まれる文字列同士の関連度を、当該文字列同士の上下関係を示す前記上下関係情報に応じて定まる数値で示した関連度情報に基づき、前記入力手段により入力された入力文字列と関連する関連文字列を抽出する抽出手段と、
前記抽出手段により抽出された関連文字列、及び前記入力文字列に関連する前記コンテンツを前記コンテンツ記憶手段により記憶されたコンテンツから検索する検索手段と、
を有するコンテンツ検索装置。
【請求項２】
前記関連度情報を前記シソーラス上での文字列間の距離に基づいて算出する第１の算出手段を更に有し、
前記抽出手段は、前記関連文字列を抽出する場合には、前記第１の算出手段により予め算出された関連度情報が所定の値以上となっている関連文字列を抽出する請求項１に記載のコンテンツ検索装置。
【請求項３】
複数の文字列、及び該複数の文字列における文字列同士の関係を示す関係情報を含む文字列情報を取得する取得手段と、
前記取得手段により取得された文字列情報に基づき、前記文字列情報を前記シソーラスに反映することで前記シソーラスを自動で再構築するシソーラス構築手段と
を更に有する請求項１又は請求項２に記載のコンテンツ検索装置。
【請求項４】
前記文字列情報は、前記複数の文字列の各々の文字列と該文字列が属するカテゴリとが対応づけられた情報、及び前記カテゴリと該カテゴリが属するカテゴリとが対応づけられた情報を含む所属カテゴリ情報を含む請求項３に記載のコンテンツ検索装置。
【請求項５】
前記シソーラス構築手段は、前記所属カテゴリ情報により、前記複数の文字列のうちの文字列である第１の文字列が属するカテゴリが更に属するカテゴリである上位カテゴリに属する第２の文字列を求め、該第２の文字列を前記第１の文字列の上位語とすることにより、前記シソーラスを自動で再構築する請求項４に記載のコンテンツ検索装置。
【請求項６】
前記シソーラス構築手段は、前記所属カテゴリ情報により、前記第１の文字列が属するカテゴリに属するカテゴリである下位カテゴリに属する第３の文字列を求め、該第３の文字列を前記第１の文字列の下位語とすることにより、前記シソーラスを自動で再構築する請求項５に記載のコンテンツ検索装置。
【請求項７】
前記文字列情報は、前記複数の文字列の各々の文字列に関連する情報である記事情報と、前記複数の文字列のうちの第４の文字列に関する記事情報に基づき、前記第４の文字列と前記複数の文字列にのうちの第５の文字列を関連づける関連情報とを更に含み、
前記シソーラス構築手段は、前記第４の文字列が前記関連情報に関連づけられた前記第５の文字列を、前記第４の文字列の上位語及び下位語のいずれとも異なる並列語とすることにより、前記シソーラスを自動で再構築する請求項６に記載のコンテンツ検索装置。
【請求項８】
前記関連度情報を前記シソーラスに基づいて算出する第２の算出手段を更に有し、
前記第２の算出手段は、前記所属カテゴリ情報により、前記第２の文字列が属するカテゴリに属するカテゴリを求め、該カテゴリの数が多いほど、前記第１の文字列と前記第２の文字列との関連度情報が減少するように算出する請求項７に記載のコンテンツ検索装置。
【請求項９】
前記第２の算出手段は、前記所属カテゴリ情報により、前記第３の文字列が属するカテゴリに属するカテゴリを求め、該カテゴリの数が多いほど、前記第１の文字列と前記第３の文字列との関連度情報が減少するように算出する請求項７に記載のコンテンツ検索装置。
【請求項１０】
前記第２の算出手段は、前記関連情報により、前記第４の文字列と関連づけられた前記第５の文字列以外の文字列の数が多いほど、前記第４の文字列と前記第５の文字列との関連度情報が減少するように算出する請求項７〜請求項９のいずれか１項に記載のコンテンツ検索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツ検索装置に関し、特に入力された文字列に関連するコンテンツを検索するコンテンツ検索装置に関する。
【背景技術】
【０００２】
近年、デジタル技術の進化により大量のデジタルコンテンツを効率よく検索するための技術が広く開発されている。
【０００３】
上記技術に関連して、特許文献１には、テレビ放送番組などを再生する装置が開示されており、その装置は、入力されたキーワード及びそのキーワードに関連した関連キーワードを含むコンテンツを検索し、優先度をとともに出力するものである。
【０００４】
また、特許文献２には、大量の文章を元に形態素解析した単語について共起データや出現頻度を元にした単語間の意味的距離を計算し、距離を元にしてできたグループを階層化することによってシソーラスを構築する方法が開示されている。
【０００５】
非特許文献１には、Wikipediaなどの大規模Web事典をマイニングし、シソーラス辞書を構築する手法が開示されており、語同士の関連度を算出する手法として探索距離を限定し、近似解を算出するアルゴリズムを提案している。
【特許文献１】特開２００５−３４８０７１号公報
【特許文献２】特開平９−１２９４９１号公報
【非特許文献１】中山浩太郎、原隆浩、西尾章治郎「大規模Web事典からのシソーラス辞書構築」日本データベース学会Letters Vol.5, No.4, pp.41-44、２００７
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記特許文献１に開示された技術では、入力されたキーワードのみではなく関連キーワードを用いてコンテンツを検索しているが、如何に関連キーワードを取得するための辞書やシソーラスを構築するかが肝心であるが、特許文献１には、如何に関連キーワードを取得するための辞書やシソーラスを構築するかという点が記載されていない。
【０００７】
また、上記特許文献２に開示された技術では、シソーラスを構築する際に充分な量の文章のデータを用意しなければならない点に課題がある。また、この技術は、形式的な共起確立だけで機械的に階層構造を生成しているものである。
【０００８】
このように、従来の技術では、文字列であるキーワードが十分に用意されていないため、幅広くコンテンツを検索できないという問題点があった。
【０００９】
また、上記非特許文献１に開示された技術では、記事間の関連の強さを算出する際に、行要素数と列要素数が全記事数となる複雑な行列計算を行わなければ、シソーラスを構築するにあたって膨大な計算を行わなければならないという問題点があった。
【００１０】
本発明の目的は上記問題点に鑑み、シソーラスを用いて文字列に関連するコンテンツを幅広く検索することを可能とするコンテンツ検索装置を提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、請求項１の発明は、１つ以上の文字列に関連する複数のコンテンツが記憶されたコンテンツ記憶手段と、文字列の意味に基づいて定まる文字列同士の上下関係を示す上下関係情報を含むシソーラスが記憶されたシソーラス記憶手段と、文字列が入力される入力手段と、前記シソーラス記憶手段により記憶された前記シソーラスを用いて、該シソーラスに含まれる文字列同士の関連度を、当該文字列同士の上下関係を示す前記上下関係情報に応じて定まる数値で示した関連度情報に基づき、前記入力手段により入力された入力文字列と関連する関連文字列を抽出する抽出手段と、前記抽出手段により抽出された関連文字列、及び前記入力文字列に関連する前記コンテンツを前記コンテンツ記憶手段により記憶されたコンテンツから検索する検索手段と、を有する。
【００１２】
請求項１の発明によれば、コンテンツ記憶手段には１つ以上の文字列に関連する複数のコンテンツが記憶され、シソーラス記憶手段には文字列の意味に基づいて定まる文字列同士の上下関係を示す上下関係情報を含むシソーラスが記憶され、入力手段が文字列が入力され、抽出手段が前記シソーラス記憶手段により記憶された前記シソーラスを用いて、該シソーラスに含まれる文字列同士の関連度を、当該文字列同士の上下関係を示す前記上下関係情報に応じて定まる数値で示した関連度情報に基づき、前記入力手段により入力された入力文字列と関連する関連文字列を抽出し、検索手段が前記抽出手段により抽出された関連文字列、及び前記入力文字列に関連する前記コンテンツを前記コンテンツ記憶手段により記憶されたコンテンツから検索する。このように、上下関係情報に応じて定まる数値で示した関連度情報に基づき関連文字列を抽出することにより、文字列に関連するコンテンツを幅広く検索することを可能とするコンテンツ検索装置を提供することができる。
【００１３】
また、本発明は、請求項２の発明のように、前記関連度情報を前記シソーラス上での文字列間の距離に基づいて算出する算出手段を更に有し、前記抽出手段は、前記関連文字列を抽出する場合には、前記算出手段により予め算出された関連度情報が所定の値以上となっている関連文字列を抽出するようにしても良い。
【００１４】
請求項２の発明によれば、検索の度にシソーラスを検索して関連度を計算する処理が無くなることから、検索に要する処理時間を大幅に短縮することができる。
【００１５】
また、本発明は、請求項３の発明のように、複数の文字列、及び該複数の文字列における文字列同士の関係を示す関係情報を含む文字列情報を取得する取得手段と、前記取得手段により取得された文字列情報に基づき、前記文字列情報を前記シソーラスに反映することで前記シソーラスを自動で再構築するシソーラス構築手段と、を更に有するようにしても良い。
【００１６】
請求項３の発明によれば、文字列情報をシソーラスに反映することでシソーラスを自動で再構築できるので、シソーラスに含まれる文字列を充実させることができる。
【００１７】
また、本発明は、請求項４の発明のように、前記文字列情報は、前記複数の文字列の各々の文字列と該文字列が属するカテゴリとが対応づけられた情報、及び前記カテゴリと該カテゴリが属するカテゴリとが対応づけられた情報を含む所属カテゴリ情報を含むようにしても良い。
【００１８】
請求項４の発明によれば、文字列情報を、複数の文字列の各々の文字列と該文字列が属するカテゴリとが対応づけられた情報、及び前記カテゴリと該カテゴリが属するカテゴリとが対応づけられた情報を含むようにすることができる。
【００１９】
また、本発明は、請求項５の発明のように、前記シソーラス構築手段は、前記所属カテゴリ情報により、前記複数の文字列のうちの文字列である第１の文字列が属するカテゴリが更に属するカテゴリである上位カテゴリに属する第２の文字列を求め、該第２の文字列を前記第１の文字列の上位語とすることにより、前記シソーラスを自動で再構築するようにしても良い。
【００２０】
請求項５の発明によれば、カテゴリ同士の従属関係からシソーラスにおける上下関係を構築することが出来る。
【００２１】
また、本発明は、請求項６の発明のように、前記シソーラス構築手段は、前記所属カテゴリ情報により、前記第１の文字列が属するカテゴリに属するカテゴリである下位カテゴリに属する第３の文字列を求め、該第３の文字列を前記第１の文字列の下位語とすることにより、前記シソーラスを自動で再構築するようにしても良い。
【００２２】
請求項６の発明によれば、カテゴリ同士の従属関係からシソーラスにおける上下関係を構築することが出来る。
【００２３】
また、本発明は、請求項７の発明のように、前記文字列情報は、前記複数の文字列の各々の文字列に関連する情報である記事情報と、前記複数の文字列のうちの第４の文字列に関する記事情報に基づき、前記第４の文字列と前記複数の文字列にのうちの第５の文字列を関連づける関連情報とを更に含み、前記シソーラス構築手段は、前記第４の文字列が前記関連情報に関連づけられた前記第５の文字列を、前記第４の文字列の上位語及び下位語のいずれとも異なる並列語とすることにより、前記シソーラスを自動で再構築するようにしても良い。
【００２４】
請求項７の発明によれば、ある第４の文字列に関する記事情報に含まれる文字列を並列語としてシソーラスを構築することが出来る。
【００２５】
また、本発明は、請求項８の発明のように、前記関連度情報を前記シソーラスに基づいて算出する第２の算出手段を更に有し、前記第２の算出手段は、前記所属カテゴリ情報により、前記第２の文字列が属するカテゴリに属するカテゴリを求め、該カテゴリの数が多いほど、前記第１の文字列と前記第２の文字列との関連度情報が減少するように算出するようにしても良い。
【００２６】
請求項８の発明によれば、多くの下位語を持つ第２の文字列と第１の文字列との関連度を低くすることが出来る。
【００２７】
また、本発明は、請求項９の発明のように、前記第２の算出手段は、前記所属カテゴリ情報により、前記第３の文字列が属するカテゴリに属するカテゴリを求め、該カテゴリの数が多いほど、前記第１の文字列と前記第３の文字列との関連度情報が減少するように算出するようにしても良い。
【００２８】
請求項９の発明によれば、多くの上位語を持つ第３の文字列と第１の文字列との関連度を低くすることが出来る。
【００２９】
また、本発明は、請求項１０の発明のように、前記第２の算出手段は、前記関連情報により、前記第４の文字列と関連づけられた前記第５の文字列以外の文字列の数が多いほど、前記第４の文字列と前記第５の文字列との関連度情報が減少するように算出するようにしても良い。
【００３０】
請求項１０の発明によれば、関連する並列語の数が多ければ多いほど関連度を小さくすることができる。
【発明の効果】
【００３１】
本発明によれば、文字列に関連するコンテンツを幅広く検索することを可能とするコンテンツ検索装置を提供することができるという効果が得られる。
【発明を実施するための最良の形態】
【００３２】
以下、図面を参照して、本発明の実施の形態について詳細に説明する。なお、本実施の形態では、コンテンツ検索装置をパソコンで実現した場合の例について説明する。また、以下の説明では、文字列をキーワードと表現する。
【００３３】
まず、図１を用いて、パソコン１２の構成について説明する。パソコン１２は、各々バスＢにより接続されたＣＰＵ（Central Processing Unit）６０と、ＲＯＭ（Read Only Memory）６１と、ＲＡＭ（Random Access Memory）６２と、ＨＤＤ（Hard Disk Drive）６３と、表示部６４と、操作入力部６５と、通信インタフェース６６とを含む。
【００３４】
ＣＰＵ６０は、パソコン１２の全体的な動作を司るものであり、後述するプログラムは、ＣＰＵ６０により実行される。ＲＯＭ６１は、パソコン１２の起動時に動作するブートプログラムなどが記憶されている不揮発性の記憶装置である。ＲＡＭ６２は、ＯＳ（Operating System）、プログラム、及びデータが展開される揮発性の記憶装置である。ＨＤＤ６３は、後述するコンテンツテーブル、キーワードテーブル、シソーラス、関連度テーブル、ＯＳ、及びプログラム等が記憶された不揮発性の記憶装置であり、コンテンツ記憶手段、及びシソーラス記憶手段に対応する。
【００３５】
表示部６４は、検索されたコンテンツ等の各種所定の情報を表示するものである。操作入力部６５は、ユーザがパソコン１２の操作をする場合や、パソコン１２にキーワードなどの情報を入力する際に用いられるものである。通信インタフェース６６は、他のパソコンなど、外部機器と通信するためのインタフェースであり、通信を行うためのＮＩＣ（Network Interface Card）や、ＵＳＢデバイス等である。
【００３６】
次に、図２を用いて、上述したコンテンツテーブル、及びキーワードテーブルについて説明する。図２（Ａ）は、コンテンツテーブルを示し、図２（Ｂ）は、キーワードテーブルを示している。
【００３７】
コンテンツテーブルは、検索対象となるコンテンツに関する情報を記憶したテーブルである。同図に示されるように、コンテンツテーブルは、ＩＤとファイル名とを含んで構成される。このうち、ＩＤは、コンテンツを一意的に特定するための文字列、数値などである。また、ファイル名は、コンテンツが実際には位置しているファイル名やパスなどである。なお、コンテンツをファイルとして扱わずデータベース上に直接格納しても良い。
【００３８】
また、図２（Ｂ）に示されるキーワードテーブルは、コンテンツテーブルに記憶されたコンテンツが関連するキーワードを記憶するテーブルである。同図に示されるように、キーワードテーブルは、ＩＤとタグとを含んで構成される。このうち、ＩＤは、上述したコンテンツを一意に特定するための文字列、数値などであり、コンテンツテーブルのＩＤに対応する。また、タグにはＩＤに対応するコンテンツに関連するキーワードが記憶されている。例えば、同図（Ａ）のコンテンツテーブルに示されるＩＤが１でファイル名が「こってり.mpg」に関連するキーワードは、同図（Ｂ）に示されるＩＤが１でタグに示されるとんこつラーメンである。
【００３９】
このように、ＨＤＤ６３には、１つ以上のキーワードに関連する複数のコンテンツが記憶されている。
【００４０】
次に、図３を用いてシソーラスの一例について説明する。シソーラスは、ことばの関連性を紐づけたいわゆる「類語辞書」であり、同図に示されるように、各キーワードと、各キーワード同士の上位/下位/並列という関係を示す情報を含んでいる。同図では、例えばラーメンの上位は麺類であり、ラーメンの下位はとんこつラーメンであり、更にラーメンと並列なものは、そばなどとなっている。
【００４１】
このように本実施の形態におけるシソーラスは、キーワードの意味に基づいて定まるキーワード同士の上下関係を示す情報を含んでいる。
【００４２】
次に、上述した関連度テーブルを、図４を用いて説明する。この関連度テーブルは、キーワード同士の関連度を予め算出した際の関連度等を記憶したテーブルである。
【００４３】
同図に示されるように、関連度テーブルは、ＩＤ、キーワード、関連キーワード、及び関連度（関連度情報）を含んで構成される。
【００４４】
このうち、ＩＤは、キーワード、及び関連キーワードに示されるキーワード同士の組み合わせを一意的に特定するための文字列、数値などである。キーワード及び関連キーワードは、関連度を示すための２つのキーワードの対を表している。なお、キーワード及び関連キーワードは同図に示されるようにキーワードそのものでも良いし、図２（Ａ）に示したキーワードテーブルのＩＤを用いても良い。
【００４５】
また、関連度は、対をなす２つのキーワード間にどのくらいの関連があるかを示す数値であり、その値が大きいほど関連が高いとみなすことができるものである。この関連度の算出方法については後述する。
【００４６】
次に、上述した各テーブル及びシソーラスを用いてＣＰＵ６０により実行される処理を、フローチャートを用いて説明する。
【００４７】
最初に、図５を用いてコンテンツ検索処理について説明する。まず、ステップ１０１で、キーワードがユーザによって操作入力部６５により入力される。なお、ここで入力されたキーワードを、以下の説明では入力キーワードと表現する。また、この入力は、キーワードに関連するコンテンツを検索するためのキーワードの入力である。この場合、キーワードは１つまたは複数でも良い。また直接キーワードを入力せずユーザの選択した１つまたは複数のコンテンツ、又はコンテンツに付随するメタデータに含まれるキーワードをもって、ここで入力するキーワードに代えるようにしても良い。
【００４８】
次のステップ１０２で、シソーラスから関連キーワード抽出する。入力されたキーワードでシソーラスを検索し、関連するキーワードを上記関連度と共に列挙する。ここで抽出する関連キーワードは関連度が所定の値以上となっているものや、列挙された関連キーワードのうち、関連度が高い順に例えば上位１０以内のキーワードとするなどして、関連キーワードを絞り込んでも良い。なお、関連度は、予め算出して記憶された上記関連度テーブルを参照しても良いし、ステップ１０２において算出するようにしても良い。
【００４９】
このようにステップ１０２では、シソーラスを用いて、そのシソーラスに含まれる文字列同士の関連度を数値で示した関連度に基づき、操作入力部６５により入力された入力キーワードと関連する関連キーワードを抽出する。
【００５０】
次のステップ１０３で、上記処理により抽出された１つ以上の関連キーワード、及び入力キーワードに関連するコンテンツを、キーワードテーブルを用いてコンテンツテーブルから検索する。
【００５１】
次のステップ１０４で、検索されたコンテンツから出力するコンテンツを選択する。これは、検索された複数のコンテンツの中から検索結果として出力すべきコンテンツを選択するものである。この場合の選択方法については以下に説明する２つの方法が考えられるが、これらに限定されるものではない。
【００５２】
まず、１つ目の選択方法は、キーワードの関連度を用いる方法である。具体的には、そのコンテンツが検索されることとなった入力キーワード又は関連キーワードの関連度でそのコンテンツを評価し、関連度の高いコンテンツの上位Ｎ個又は一定以上の関連度を持つコンテンツという観点で出力するコンテンツを選択するものである。
【００５３】
更にこの場合、複数の入力キーワード又は関連キーワードにより検索されたコンテンツについては、それらキーワードの関連度を足し合わせたものを新たな関連度として高くするようにしても良い。
【００５４】
もう一つの方法は、各キーワードから一定個ずつコンテンツを選択する方法である。具体的には、入力キーワード又は関連キーワードにより検索されたコンテンツを、入力キーワード又は関連キーワード毎に１つ以上ずつ選択する方法である。
【００５５】
又は、関連度の高い入力キーワード又は関連キーワードにより検索されたコンテンツを、入力キーワード又は関連キーワード毎に複数個以上ずつ選択する方法でも良い。更に、関連度が一定値以上の入力キーワード又は関連キーワードにより検索されたコンテンツを、入力キーワード又は関連キーワードの全てについてそれぞれ１つ以上ずつコンテンツを選んでくる方法でも良い。
【００５６】
このようにして出力するコンテンツが選択されると、ステップ１０５で、選択されたコンテンツを例えば表示部６４に出力する。表示部６４に出力する他に、検索されたコンテンツをファイルやデータベースとして保存するようにしても良い。
【００５７】
次に、上述した関連度の算出について説明する。上述したように、算出され関連度は上記関連度テーブルに記憶される。この関連度算出処理を、図６を用いて説明する。
【００５８】
まず、ステップ２０１で、シソーラス内の全てのキーワードを読み込む。この処理は、ＨＤＤ６３に記憶されているシソーラス内のキーワードをＲＡＭ６２に読み込む処理である。
【００５９】
次のステップ２０２で、１つのキーワードに関連する関連キーワードを列挙する。この処理は、ＲＡＭ６２に読み込まれたキーワードのうちの１つについて、シソーラスを検索し関連するキーワードを全て列挙する処理である。
【００６０】
ここでの関連キーワードとは、その関連キーワードの直接的な上位、下位、並列キーワードのみでも良いし、シソーラスの階層構造の中で任意のステップ数で到達できるキーワードとしても良い。例えば、図３に示したシソーラスを例に取ると「豚骨醤油ラーメン」と直接関連する関連キーワードは以下の通りである。
上位：「ラーメン」
下位：「ラーメン野郎」「屋系ラーメン」
更に、２ステップで到達可能な語に拡張すると上記に加えて以下のキーワードが追加される。
上位：「麺類」
下位：「吉原屋」「八角屋」「直系野郎」「マルヤ」
並列：「とんこつラーメン」「しょうゆラーメン」「味噌ラーメン」
このように関連キーワードを列挙した後、ステップ２０３で関連度を算出する。この処理は、列挙された関連キーワードについてそれぞれ、ステップ２０２で説明した１つのキーワードとの関連度を計算する処理である。
【００６１】
関連度を計算する方法にはいろいろあるが、本実施の形態で用いる方法はシソーラス上でのキーワード同士の上下関係を示す上下関係情報に応じて定まる数値である距離（ステップ数）に基づくものである。このように、距離はステップ数により定まるものであるため、この距離はシソーラス上でのキーワード間の距離である。例えば、キーワード間の距離をＳとして関連度Ｒを以下のような式で定義する。
【００６２】
Ｒ＝int（１００／（Ｓ＋１））
ここで、int（）は、括弧内の値が正の場合に、その値の小数点以下を切り捨て、整数にすることを意味する。例えばint（４.５）は４である。
【００６３】
また、上記式に示されるように、距離が大きくなれば関連度は小さくなるようになっている。すなわち、距離が近いほど関連度は高くなる。
【００６４】
例えば図３において、「屋系ラーメン」と「しょうゆラーメン」の距離Ｓは３であるため、上記の式に当てはめると関連度Ｒは２５となる。
【００６５】
関連度の計算方法はこれに限定されず、距離が遠いほど関連度が低くなればいかなるものでも良いし、例えばキーワード同士の共起関係などに基づいて計算されても良い。このように、本実施の形態では関連された文字列同士の関係を示す上下関係情報を用いて文字列に関連する文字列を抽出できる。従って、上下関係情報に応じて定まる数値で示した関連度情報に基づき関連文字列を抽出することにより、文字列に関連するコンテンツを幅広く検索することを可能とすることができる。
【００６６】
このようにして算出された関連度を、ステップ２０４で、ＩＤ、キーワード、及び関連キーワードとともに上述した関連度テーブルに記録する。
【００６７】
次のステップ２０５で、全キーワードについて関連度を算出する処理が終了したか否か判断する。全てのキーワードについて関連度を算出する処理が終了していない場合には、処理されていない１つのキーワードに対してステップ２０２の処理を実行する。一方、全てのキーワードについて処理が終了した場合には処理を終了する。
【００６８】
この処理により、シソーラスに含まれる文字列同士の関連度が予め算出されることとなる。このように関連度が予め算出されている場合には、図４に示した関連度事前計算テーブルを参照し、キーワードが一致するキーワードを含むレコードのみを抽出すれば、関連キーワード及びその関連度を得ることが出来るようになる。このように、検索の度にシソーラスを検索して関連度を計算する処理が無くなることから、検索に要する処理時間を大幅に短縮することができる。
【００６９】
次に、シソーラスの再構築について説明する。上述したように、シソーラスはキーワードの意味に基づいて定まるキーワード同士の上下関係を示す上下関係情報を含んでいる。この場合、複数のキーワード、及びその複数のキーワードにおけるキーワード同士の上下関係が示された上下関係情報を含む文字列情報を用いてシソーラスを再構築することができる。
【００７０】
まず、上記文字列情報（デジタル辞書データ：以下、単に辞書データと記す）について説明する。
【００７１】
図７は、シソーラス構築の際に用いられる辞書データの例である。このように少なくとも辞書データのキーワード同士に上下関係があるものが必要である。例えば、図７の例では「そば」の中により具体的な「戸隠そば」、「出雲そば」、「わんこそば」が含まれており、このような上下関係をシソーラス構築に活用する。
【００７２】
上記辞書データの例の他に、図８に示されるＸＭＬデータも辞書データとすることができる。同図に示されるルートタグであるcategoriesの下にはcategoryタグが3つ含まれており、それぞれname属性が「そば」「うどん」「ラーメン」となっている。更にname属性が「そば」となっているcategoryタグに着目するとarticleタグが3つ含まれており、それぞれname属性が「戸隠そば」「出雲そば」「わんこそば」となっており、これがキーワードに相当する。
【００７３】
このように上下関係が明確であり、階層構造が容易に得られる辞書データが望ましいが、この形式はＸＭＬに限定されず、階層構造が明確に分かる記述形式であればテキストデータでもバイナリデータでも構わない。また、ここでは１つのＸＭＬデータから全ての階層構造が得られたが、辞書データの各項目に上下関係が記述されているものでも構わない。
【００７４】
上述した図８に示した辞書データよりシソーラスを再構築するシソーラス再構築処理を、図９のフローチャートを用いて説明する。
【００７５】
まず、ステップ３０１で、辞書データを取得する。この辞書データは、例えば上述した通信インタフェース６６を介して外部機器から取得したり、あるいは予めＨＤＤ６３に記憶されているものを取得したりするようにしても良い。
【００７６】
次のステップ３０２で、辞書データの構造を解析する。具体的には、辞書データ内の各項目間の上下関係を抽出し、各項目間の上位/下位/並列関係を求める。上位/下位については、図８のような既に階層構造を持った辞書データのインデックスがあればその情報をそのまま用いても良い。具体的に例えば、「ラーメン」は「豚骨醤油ラーメン」の上位概念であるなどの情報である。
【００７７】
また、辞書データの本文情報より係り受けを用いて包括関係を導き出しても良い。例えば、図８の辞書データの「八角屋」という項目内において、「八角屋は屋系ラーメンの一種である。」という記述があった場合には、係り受けより「屋系ラーメン」が「八角屋」の上位概念であることを導出することが出来る。
【００７８】
なお、並列については同様の上位キーワードを持ちキーワード同士を並列とする方法が考えられる。例えば、図８の辞書データによれば「直系野郎」と「マルヤ」は共通する「ラーメン野郎」という上位キーワードを持っているため相互に並列であるとみなすことができる。
【００７９】
辞書データの構造解析方法はこれに限定されず、例えば辞書データの項目間のリンク情報などを利用しても良い。
【００８０】
このように、辞書データの構造を解析した後、ステップ３０３で辞書データをシソーラスに反映することで、シソーラスを自動で再構築する。具体的には、ステップ３０２で得られた各キーワード同士の上位/下位/並列という関係を元にシソーラスを構築する。そして、ステップ３０４で、構築されたシソーラスを例えばＨＤＤ６３に出力することで記憶する。
【００８１】
このようにして、図８の辞書データを用いて構築されたシソーラスは、上述した図３に示したシソーラスである。
【００８２】
上述した処理によれば、辞書データをシソーラスに反映することでシソーラスを再構築できるので、シソーラスに含まれるキーワードを充実させることができる。また、上記処理により、シソーラスを自動で再構築することができる。
【００８３】
上述したシソーラス構築方法（第１の方法）とは異なる第２の方法について説明する。まず、複数の文字列の各々の文字列と該文字列が属するカテゴリとが対応づけられた情報、及び前記カテゴリと該カテゴリが属するカテゴリとが対応づけられた情報を含む所属カテゴリ情報を含む文字列情報について、図１０を用いて説明する。なお、以下の説明では、複数の文字列の各々の文字列を見出し名と表現する。
【００８４】
図１０（Ａ）は、見出し名及びその見出し名に関する情報である記事が対応づけられた見出しテーブルを示す。同図に示されるように、例えば見出し名「麺類」は、記事「麺類とは・・・」に対応づけられている。また、同図に示されるＩＤは、対応づけられた見出し名と記事とを一意的に識別するためのものである。
【００８５】
図１０（Ｂ）は、カテゴリ名とそのカテゴリ名を一意的に識別するＩＤとが対応づけられたカテゴリテーブルである。同図に示されるように、「麺類」には、ＩＤ「Ａ」が対応づけられている。
【００８６】
次の図１０（Ｃ）は、見出し名と見出し名が属するカテゴリ（所属カテゴリＩＤ）とが対応づけられた情報、及び前記カテゴリと該カテゴリが属するカテゴリ（所属カテゴリＩＤ）とが対応づけられた情報を含む所属カテゴリ情報を示す所属カテゴリテーブルを示している。同図では、それらがＩＤを用いて表現されている。
【００８７】
具体的に同図において、例えばＩＤ「４」はチャーシュー麺を示し、ＩＤ「Ｂ」はラーメンを示しているので、チャーシュー麺はラーメンというカテゴリに属することを示している。また、ＩＤ「Ｃ」はそばを示し、ＩＤ「Ａ」は麺類を示しているので、そばというカテゴリはラーメンというカテゴリに属することを示している。
【００８８】
次に、図１１を用いて、複数の文字列にのうちの第４の文字列から、前記複数の文字列にのうちの第５の文字列を関連づける関連情報について説明する。この関連情報は、上記見出しテーブル（図１０（Ａ）参照）により、第４の文字列が見出し名であり、その見出し名に対応する記事に含まれる文字列が第５の文字列である。
【００８９】
同図には、２つのＩＤが関連づけられた関連情報である関連テーブルが示されている。具体的は、ＩＤ「５」（そば）とＩＤ「６」（うどん）、及びＩＤ「４」（チャーシュー麺）とＩＤ「２」（チャーシュー）が関連づけられていることが示されている。これは、例えばＨＴＭＬ上でのリンクを示しており、見出し名「そば」の記事内に記載された「うどん」をクリックすれば「うどん」が表示されるようなものである。
【００９０】
次に、図１２を用いて、２つの見出し名の関連度及び関連の種類を示す関連度テーブルについて説明する。
【００９１】
同図には、見出し名１、見出し名２、関連度、及び関連の種類が示されている。このうち、関連度は、見出し名１及び見出し名２の関連度を示している。関連の種類は、見出し名２が見出し名１の上位語、下位語、又は並列語のいずれかの関係にあるかを示すものである。ここでＡがＢの上位語とは、ＡがＢを包含する場合に用いられる。このＡ、Ｂとして、例えば、ＡがラーメンでＢがチャーシュー麺の場合が挙げられる。ＡがＢの下位語とは、ＢがＡを包含する場合に用いられる。このＡ、Ｂとして、例えば、ＢがラーメンでＡがチャーシュー麺の場合が挙げられる。更に、ＡがＢの並列語であるとは、上位語及び下位語のいずれとも異なるものの場合に用いられる。このＡ、Ｂとして、例えば、Ａがうどん、Ｂがそばの場合が挙げられる。
【００９２】
更に、ここでの関連度を算出する方法には、３つの算出方法がある。まず１つの算出方法は、所属カテゴリテーブルにより、複数の文字列のうちの文字列である見出し名１が属するカテゴリが更に属するカテゴリである上位カテゴリに属する見出し名２を求め、更に見出し名２が属するカテゴリに属するカテゴリを求め、該カテゴリの数が多いほど、見出し名１と見出し名２との関連度情報が減少するように算出されるものである。
【００９３】
また、２つ目の算出方法は、所属カテゴリテーブルにより、複数の文字列のうちの文字列である見出し名１が属するカテゴリに属するカテゴリである下位カテゴリに属する見出し名２を求め、更に見出し名２が属するカテゴリに属するカテゴリを求め、該カテゴリの数が多いほど、見出し名１と見出し名２との関連度情報が減少するように算出されるものである。
【００９４】
また、３つ目の算出方法は、見出し名１と関連づけられた見出し名２以外の見出し名の数が多いほど、見出し名１と見出し名２との関連度情報が減少するように算出されるものである。
【００９５】
以上説明したテーブルに示される情報は、辞書データであるインターネット上におけるデジタル百科事典のデータベースとして公開されている情報である。
【００９６】
以下、上記テーブルを用いて行われる第２の方法における処理について説明する。まず、図１３のフローチャートを用いて、第２の方法の全体処理について説明する。
【００９７】
ステップ４０１で、上述した上位語を抽出する上位語抽出処理を行う。ステップ４０２で、上述した下位語を抽出する下位語抽出処理を行う。ステップ４０３で、上述した並列語を抽出する並列語抽出処理を行う。そして、ステップ４０４で、上述した関連度を算出する関連度算出処理を行う。
【００９８】
以下、上記ステップの説明をする。まず、最初にステップ４０１の上位語抽出処理を、図１４のフローチャートを用いて説明する。まず、ステップ５０１で、見出し名を１つ取得し、ステップ５０２で、見出し名が属するカテゴリＡを探す。更にステップ５０３で、カテゴリＡが属するカテゴリＢを探し、ステップ５０４で、カテゴリＢに属する見出し名を上位語として抽出する。次のステップ５０５で、全ての見出し名に対する処理が終了したか否か判断し、終了していない場合には、再びステップ５０１の処理に戻り、終了した場合には、処理を終了する。
【００９９】
次にステップ４０２の下位語抽出処理を、図１５のフローチャートを用いて説明する。まず、ステップ６０１で、見出し名を１つ取得し、ステップ６０２で、見出し名が属するカテゴリＡを探す。更にステップ６０３で、カテゴリＡに属するカテゴリＢを探し、ステップ６０４で、カテゴリＢに属する見出し名を下位語として抽出する。次のステップ６０５で、全ての見出し名に対する処理が終了したか否か判断し、終了していない場合には、再びステップ６０１の処理に戻り、終了した場合には、処理を終了する。
【０１００】
次に、ステップ４０３の並列語抽出処理について、図１６のフローチャートを用いて説明する。まず、ステップ７０１で、見出し名を１つ取得し、ステップ７０２で、上記関連テーブルを用いて関連する見出し名を並列語として抽出する。そして、次のステップ７０３で、全ての見出し名に対する処理が終了したか否か判断し、終了していない場合には、再びステップ７０１の処理に戻り、終了した場合には、処理を終了する。
【０１０１】
次に、ステップ４０４の関連度算出処理について、図１７のフローチャートを用いて説明する。まず、ステップ８０１で、関連テーブルを用いて、見出し名１からのリンク数ｐＡを集計する。次のステップ８０２で、見出し名２に属するカテゴリＡを探し、更にステップ８０３で、カテゴリＡに属するカテゴリＢを探す。この場合は、上位のカテゴリとしている。そして、ステップ８０４で、ステップカテゴリＢに属するカテゴリ数ｐＢを集計する。次のステップ８０５で、関連度を１００−（logｐA）×（logｐＢ）として算出する。
【０１０２】
以上説明したように、本実施の形態においては、関連するコンテンツを検索する際に参照するシソーラスを自ら生成することができる。また、本実施の形態では上位語・下位語・並列語という関係が明確に得られる例えばインターネット上のデジタル百科事典（辞書データ）を用いているためより精度の高い階層構造を獲得することができる。
【０１０３】
このように、本実施の形態においては、文字列に関連するコンテンツを検索する際に使用するシソーラスを辞書データから効率的に構築することを可能とするコンテンツ検索装置を提供することができる。
【０１０４】
更に、同様に入力されたキーワードに関連するコンテンツの距離を計算する方法としてGoogle（登録商標）のPageRankという概念がある。この方法を単純に表すと、被リンク数が多いほど、また被リンク数が多いページからのリンクが多いほど関連度が高くするという特徴がある。この方式では全てのページ同士のリンク関係から膨大な固有値ベクトルを計算する必要があるが、本実施の形態におけるキーワードについてその直近のキーワードのリンク数のみの計算で関連度を算出できるため格段に少ないコストで関連度が計算可能である。
【０１０５】
なお、以上説明した各フローチャートの処理の流れは一例であり、本発明の主旨を逸脱しない範囲内で処理順序を入れ替えたり、新たなステップを追加したり、不要なステップを削除したりすることができることは言うまでもない。
【図面の簡単な説明】
【０１０６】
【図１】パソコン（コンテンツ検索装置）の構成を示す図である。
【図２】コンテンツテーブル、及びキーワードテーブルの一例を示す図である。
【図３】シソーラスの一例を示す図である。
【図４】関連度テーブルを示す図である。
【図５】コンテンツ検索処理を示すフローチャートである。
【図６】関連度算出処理を示すフローチャートである。
【図７】辞書データの一例を示す図である（その１）。
【図８】辞書データの一例を示す図である（その２）。
【図９】シソーラス再構築処理（第１の方法）を示すフローチャートである。
【図１０】各種テーブルを示す図である。
【図１１】関連テーブルを示す図である。
【図１２】関連度テーブルを示す図である。
【図１３】シソーラス再構築処理（第２の方法）を示すフローチャートである。
【図１４】上位語抽出処理を示すフローチャートである。
【図１５】下位語抽出処理を示すフローチャートである。
【図１６】並列語抽出処理を示すフローチャートである。
【図１７】関連度算出処理を示すフローチャートである。
【符号の説明】
【０１０７】
１２  パソコン
６０  ＣＰＵ
６２  ＲＡＭ
６３  ＨＤＤ
６４  表示部
６５  操作入力部
６６  通信インタフェース
【図１】
2009026083.tif 000003
【図２】
2009026083.tif 000004
【図３】
2009026083.tif 000005
【図４】
2009026083.tif 000006
【図５】
2009026083.tif 000007
【図６】
2009026083.tif 000008
【図７】
2009026083.tif 000009
【図８】
2009026083.tif 000010
【図９】
2009026083.tif 000011
【図１０】
2009026083.tif 000012
【図１１】
2009026083.tif 000013
【図１２】
2009026083.tif 000014
【図１３】
2009026083.tif 000015
【図１４】
2009026083.tif 000016
【図１５】
2009026083.tif 000017
【図１６】
2009026083.tif 000018
【図１７】
2009026083.tif 000019