(57)【要約】【目的】特化された目的で使用するための重要語辞書を自動構築することにより、情報検索に活用することができるデータベース知識の抽出／検索システム等を提供すること。【解決手段】知識抽出対象ＤＢに含まれるサフィックスを取り出して当該サフィックスを規則的に配列させることによりサフィックス群を生成する（Ｓ１００）。当該サフィックス群を構成する各サフィックスどうしを比較して、一致部分を文字列クラスとして切り出し、その出現頻度に基づいて当該文字列クラスを除外して最終的な文字列クラスとする（Ｓ２００）。各文字列クラスが当該各文字列クラス以外の他の文字列クラスと包含関係にない場合に、当該各文字列クラスを重要語辞書ＤＢへ登録されるべき重要語として抽出する（Ｓ３００）。【選択図】図５Ａ
2005032179.tif 000002
【特許請求の範囲】
【請求項１】
知識抽出対象データベース（以下単に「ＤＢ」とする）に含まれるサフィックスを取り出してサフィックス群を生成し、当該サフィックス群を構成する各サフィックスどうしを比較して、その比較結果に基づいて文字列クラスを切り出し文字列クラス群を生成する文字列クラス群生成手段と、
前記文字列クラス群を構成する各文字列クラスの出現頻度に基づいて文字列クラスを選択する文字列クラス選択手段と、
前記各文字列クラスが当該各文字列クラス以外の他の文字列クラスと包含関係にあるかどうかに基づいて重要語を抽出する第一知識抽出手段とを備えたことを特徴とするＤＢ知識抽出システム。
【請求項２】
包含関係にある下位文字列クラスの出現頻度と上位文字列クラスの出現頻度とに基づいて当該下位文字列クラスを重要語として抽出する第二知識抽出手段を備えたことを特徴とする請求項１に記載のＤＢ知識抽出システム。
【請求項３】
前記下位文字列クラスは前記上位文字列クラスと見なして重要語として抽出する第三知識抽出手段を備えたことを特徴とする請求項１又は２に記載のＤＢ知識抽出システム。
【請求項４】
前記第一知識抽出手段、前記第二知識抽出手段及び前記第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語と、当該重要語が前記知識抽出対象ＤＢのどこに格納されているかを示す位置情報とを含むインデックスを前記重要語をキーとして生成する第一インデックス生成手段を備えたことを特徴とする請求項１から３のいずれかに記載のＤＢ知識抽出システム。
【請求項５】
前記第一知識抽出手段、前記第二知識抽出手段及び前記第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語と、当該重要語が前記知識抽出対象ＤＢのどこに格納されているかを示す位置情報とを含むインデックスを前記位置情報をキーとして生成する第二インデックス生成手段を備えたことを特徴とする請求項１から４のいずれかに記載のＤＢ知識抽出システム。
【請求項６】
前記第一知識抽出手段、前記第二知識抽出手段及び前記第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語の出現頻度に基づいて当該重要語の重要度を求める重要度演算手段を備えたことを特徴とする請求項１から５のいずれかに記載のＤＢ知識抽出システム。
【請求項７】
請求項１に記載の第一知識抽出手段、請求項２に記載の第二知識抽出手段及び請求項３に記載の第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語から構成される重要語辞書と、
検索質問文に含まれるサフィックスを取り出してサフィックス群を生成し、当該サフィックス群を構成する各サフィックスと前記重要語とを比較して、その比較結果に基づいて検索キーを切りだし検索キー群を生成する検索キー群生成手段とを備えたことを特徴とするＤＢ知識検索システム。
【請求項８】
（１）前記検索キー群を要素とし、請求項６に記載の重要度演算手段により求められた重要度をその値とする検索キー群ベクトルと、（２）請求項１に記載の第一知識抽出手段、請求項２に記載の第二知識抽出手段及び請求項３に記載の第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語を要素とし、前記重要度演算手段により求められた重要度をその値とする索引ベクトルとに基づいて類似度を求める類似度演算手段を備えたことを特徴とする請求項７に記載のＤＢ知識検索システム。
【請求項９】
前記類似度に基づいて検索順序に優先順位を付与するランキング手段を備えたことを特徴とする請求項８に記載のＤＢ知識検索システム。
【請求項１０】
前記ランキング手段は出現頻度に基づいて優先順位を決定することを特徴とする請求項９に記載のＤＢ知識検索システム。
【請求項１１】
コンピュータを、
知識抽出対象ＤＢに含まれるサフィックスを取り出してサフィックス群を生成し、当該サフィックス群を構成する各サフィックスどうしを比較して、その比較結果に基づいて文字列クラスを切り出し文字列クラス群を生成する文字列クラス群生成手段、
前記文字列クラス群を構成する各文字列クラスの出現頻度に基づいて文字列クラスを選択する文字列クラス選択手段、
前記各文字列クラスが当該各文字列クラス以外の他の文字列クラスと包含関係にあるかどうかに基づいて重要語を抽出する第一知識抽出手段、
として機能させるためのＤＢ知識抽出プログラム。
【請求項１２】
コンピュータを、
包含関係にある下位文字列クラスの出現頻度と上位文字列クラスの出現頻度とに基づいて当該下位文字列クラスを重要語として抽出する第二知識抽出手段、
として機能させるための請求項１１に記載のＤＢ知識抽出プログラム。
【請求項１３】
コンピュータを、
前記下位文字列クラスは前記上位文字列クラスと見なして重要語として抽出する第三知識抽出手段、
として機能させるための請求項１１又は１２に記載のＤＢ知識抽出プログラム。
【請求項１４】
コンピュータを、
請求項１１に記載の第一知識抽出手段、請求項１２に記載の第二知識抽出手段及び請求項１３に記載の第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語と、当該重要語が前記知識抽出対象ＤＢのどこに格納されているかを示す位置情報とを含むインデックスを前記重要語をキーとして生成する第一インデックス生成手段、
として機能させるための請求項１１から１３のいずれかに記載のＤＢ知識抽出プログラム。
【請求項１５】
コンピュータを、
請求項１１に記載の第一知識抽出手段、請求項１２に記載の第二知識抽出手段及び請求項１３に記載の第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語と、当該重要語が前記知識抽出対象ＤＢのどこに格納されているかを示す位置情報とを含むインデックスを前記位置情報をキーとして生成する第二インデックス生成手段、
として機能させるための請求項１１から１４のいずれかに記載のＤＢ知識抽出プログラム。
【請求項１６】
コンピュータを、
請求項１１に記載の第一知識抽出手段、請求項１２に記載の第二知識抽出手段及び請求項１３に記載の第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語の出現頻度に基づいて当該重要語の重要度を求める重要度演算手段、
として機能させるための請求項１１から１５のいずれかに記載のＤＢ知識抽出プログラム。
【請求項１７】
コンピュータを、
請求項１１に記載の第一知識抽出手段、請求項１２に記載の第二知識抽出手段及び請求項１３に記載の第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語から構成される重要語辞書、
検索質問文に含まれるサフィックスを取り出してサフィックス群を生成し、当該サフィックス群を構成する各サフィックスと前記重要語とを比較して、その比較結果に基づいて検索キーを切りだし検索キー群を生成する検索キー群生成手段、
として機能させるためのＤＢ知識検索プログラム。
【請求項１８】
コンピュータを、
（１）前記検索キー群を要素とし、請求項１６に記載の重要度演算手段により求められた重要度をその値とする検索キー群ベクトルと、（２）請求項１１に記載の第一知識抽出手段、請求項１２に記載の第二知識抽出手段及び請求項１３に記載の第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語を要素とし、前記重要度演算手段により求められた重要度をその値とする索引ベクトルとに基づいて類似度を求める類似度演算手段として機能させるための請求項１７に記載のＤＢ知識検索プログラム。
【請求項１９】
コンピュータを、
前記類似度に基づいて検索順序に優先順位を付与するランキング手段、
として機能させるための請求項１８に記載のＤＢ知識検索プログラム。
【請求項２０】
前記ランキング手段は出現頻度に基づいて優先順位を決定することを特徴とする請求項１９に記載のＤＢ知識検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース知識の抽出システム、検索システム並びにデータベース知識の抽出プログラム、検索プログラムに関し、更に詳しくは、工場やオフィスにおける各種の業務支援や情報検索・情報収集に用いられる情報資源を活用する技術に関する。
【背景技術】
【０００２】
オフィスや工場において、現場業務に関連した様々な情報を蓄積・管理するための高機能なリレーショナルデータベースシステム（以下単に「ＲＤＢシステム」という）が運用されている。ＲＤＢシステムは情報が蓄積され続けるため時間が経つに従って大規模化・複雑化する。ＲＤＢシステムからの情報検索・情報収集及び情報管理は、業務効率の向上を図り、業務運営方針の策定を行うために重要視されている。
【０００３】
一方ＲＤＢシステムを効果的に運用するためには、ＲＤＢに格納されているデータを取りだして再構築し再利用する必要があるため専門的な知識や熟練した操作経験が必要とされる。従って誰もが気軽に利用できる状況ではない。そのため大量な業務関連情報が蓄積されているにも関わらず、それらが効率的に利用されていないという問題が生じている。
【０００４】
そこでＲＤＢシステムを現場業務に再利用する試みが種々開示されている。
例えば非特許文献１には日報として記述された文章から知識辞書を用いて重要概念を抜き出し、個々の重要概念の因果関係を示す構造を抽出する技術が開示されている。
【０００５】
また特許文献１に開示された情報サービスシステムは、形態素解析を利用してユーザからの自然言語文による問い合わせを構造化し、その問い合わせに対する情報を事例情報データベース及び製品情報データベースから検索して取り出し表示するものである。
【０００６】
特許文献２に開示された情報共有システムの情報保守管理装置は、効率的に情報の点検作業を行える情報共有システムであり、蓄積された情報の信頼性を形態素解析を利用して行い管理者に通知するというものである。
【０００７】
特許文献３に開示されたヘルプデスク支援装置は、ある製品に関する問題を解決するために形態素解析を利用して事例情報に関連づけられた付帯情報と、事例情報を元に分類された分類項目とを呈示するというものである。
【０００８】
上記の非特許文献１及び特許文献１〜３に開示された技術はいずれも自然言語処理技術として形態素解析を使用することを前提としているため、いわゆる国語辞典のようなあらゆる単語や品詞をカバーした形態素解析用知識辞書が必要となる。そのため不要なデータまでサポートすることになる一方、専門用語に弱いという欠点があった。形態素解析用知識辞書では専門用語がサポートされていないためである。非特許文献１のようにユーザが辞書作成支援ツールを用いて作成することも考えられるが効率的ではない。また形態素解析用知識辞書では参照される頻度が極めて低い知識を記憶しておくため必要度が低い知識における記憶容量が膨大になるという問題点もある。
【０００９】
そこで形態素解析用知識辞書を使用しないでドキュメントや文章からキーワードや文字列を切り出す試みとしてサフィックスアレイを用いる手法が注目を集めている。その基本的な手法が非特許文献２〜３に開示されている。「サフィックスアレイ」とは、テキストをそのテキスト中に存在する全ての文字からテキストの終端までの部分文字列(サフィックス；接尾辞)の集合(ｎ−ｇｒａｍ集合)であると考え、その集合を辞書順に並べたデータ構造をいう。二分探索法を用いてテキストを検索したり、各部分文字列の重複関係等に基づいて文字列クラス（キーワードとして）を切り出すのに用いられるデータ構造である。
【００１０】
その基本的な手法は例えば非特許文献２〜３に開示されている。非特許文献２〜３にはサフィックスアレイを用いて、共通部分を含む文字列から文字列クラス（キーワードとして）を切り出すべく、区間内部での共通部分の文字列長さが当該区間境界での共通部分の文字列長さよりも大きいときに文字列クラスを形成するとし、その当該文字列クラスを代表する文字列として、当該クラスのなかで最長の文字列を取り出す手法が開示されている。このときに区間の中にまた区間が存在するという階層関係をも考慮している。
【００１１】
また実際のシステムに組み込んだ例として特許文献４〜５にサフィックスアレイを用いたキーワード抽出技術や情報検索技術が開示されている。特許文献４に開示された技術は、キーワードであると決定するために何らかの閾値を用いて行っている。また特許文献５に開示された技術は、大量の文書から特徴を取り出してそれを検索できるようにしたものであるが、重要語を取り出すときに、入力文書に出現する出現頻度と、検索対象となる文書に出現する出現頻度との対比から文字列の特徴量を計算し、これを評価することにより特徴文字列の抽出を行うものである。
【００１２】
【非特許文献１】電子情報通信学会論文誌 Vol. J86-D-11, No.2, pp.310-323., 2003.
【非特許文献２】自然言語処理 2002年10月 Volume 9, Number 5, pp.43-70.「文字列をｋ回以上含む文書数の計数アルゴリズム」
【非特許文献３】Computational Linguistics Volume 27, Number 1., pp.1-30., March 2001. 「Using Suffix Array to Compute Term Frequency and Document Frequency for All Substrings in a Corpus」
【特許文献１】特開平１０−２０７９０２号公報
【特許文献２】特開２０００−２８５１３５号公報
【特許文献３】特開２００３−８５１８６号公報
【特許文献４】特開２００２−１９７１９５号公報
【特許文献５】特開平９−２９３０７７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、上記非特許文献２〜３や、特許文献４〜５に開示されたサフィックスアレイを用いた技術では「分野が限定されていない大規模なデータ」、例えば新聞記事等が対象となっている。従って新聞記事等を対象としたサフィックスアレイでは、一文、一文書の単位が長いため生成されるサフィックス数が膨大な量になり計算量が膨大になるという問題があった。
【００１４】
一方、現場業務のように「限定された分野」の場合、例えばＲＤＢに格納されるデータに含まれる文字列（テキスト）の種類が一般の形態素解析用知識辞書に較べれば格段に少なく更にその量も少ないような場合に、形態素解析用知識辞書やｎ−ｇｒａｍモデルを適用すると、無関係な文字列クラスについての計算を大量に行うこととなり計算量が膨大になるうえ時間もかかり実用的ではないという問題があった。そのため「分野が限定された現場業務」では情報収集やトラブル支援のために専門分野に適用でき且つ利便性の高い知識辞書の自動構築及びその活用手段の構築が所望されていた。
【００１５】
本発明はこのような事情に鑑みてなされたものであり、その第一の目的は、形態素解析用知識辞書ではなく、特化された目的で使用するための重要語辞書を知識抽出対象となる既存ＤＢから作成することができるＤＢ知識抽出システム及びプログラムを提供することにある。これにより、分野が限定される程、高い精度が期待でき不完全な文を多数含むＤＢからも知識抽出が可能となる。
【００１６】
本発明の第二の目的は、形態素解析用知識辞書を用いたときのような負荷をシステムにかけることなく、知識抽出対象ＤＢに蓄積された知識を有効活用できる利便性の高いＤＢ知識検索システム及びプログラムを提供することにある。
【課題を解決するための手段】
【００１７】
上記課題を解決するために請求項１に記載のＤＢ知識抽出システムは、知識抽出対象ＤＢに含まれるサフィックスを取り出してサフィックス群を生成し、当該サフィックス群を構成する各サフィックスどうしを比較して、その比較結果に基づいて文字列クラスを切り出し文字列クラス群を生成する文字列クラス群生成手段と、前記文字列クラス群を構成する各文字列クラスの出現頻度に基づいて文字列クラスを選択する文字列クラス選択手段と、前記各文字列クラスが当該各文字列クラス以外の他の文字列クラスと包含関係にあるかどうかに基づいて重要語を抽出する第一知識抽出手段とを備えたことを要旨とするものである。
【００１８】
ここで「知識抽出対象ＤＢ」とは工場やオフィスにおけるトラブル事象や日常作業事象等のテキストで表現可能なデータが「何らかの意味をなす完成文又は未完成文」という形で格納されたＤＢや、ユーザが取り出したいと考えるデータ（知識）が格納されたＤＢであればよい。「サフィックス」とはテキスト中に存在する全ての文字からテキストの終端までの部分文字列をいう。換言すれば「サフィックス」とは「何らかの区切り（セル番号毎、列毎など）単位」における「何らかの意味をなす完成文又は未完成文」に存在する全ての文字からの終端までの部分文字列ということができる。「その比較結果」とはテキストが同一かどうかとか、テキストの長さは同一かどうかといった観点による比較結果をいう。「文字列クラス」とはサフィックスから切り出された文字列をいい、特に限定されないが、例えば、比較するサフィックスどうしの共通部分や、比較するサフィックスどうしに全く共通部分がないときはそのサフィックスそのものなどをいう。「文字列クラス群」とは少なくとも一つの文字列クラスからなる群をいう。「出現頻度」とは知識抽出対象ＤＢの全部又は一部において切り出された文字列クラスが出現する頻度をいう。「包含関係」とは、「ボー」と、「ボード」を比較したときに「ボー」は「ボード」に包含されるという関係をいう。「重要語」とは結果的には工場やオフィスで使用される重要な言葉、単語を意味することになるが、文字列クラスからある条件を満たすことにより抽出されたテキストに過ぎない。
【００１９】
この場合に請求項２に記載のように、包含関係にある下位文字列クラスの出現頻度と上位文字列クラスの出現頻度とに基づいて当該下位文字列クラスを重要語として抽出する第二知識抽出手段を備えるようにしてもよい。また請求項３に記載のように、前記下位文字列クラスは前記上位文字列クラスと見なして重要語として抽出する第三知識抽出手段を備えるようにしてもよい。
【００２０】
ここで「下位文字列クラス」とは包含されるほうの文字列クラスといい、「上位文字列クラス」とは包含するほうの文字列クラスをいい、例えば「ボー」と「ボード」とでは、「ボー」が下位文字列クラス、「ボード」が上位文字列クラスとなる。また「前記下位文字列クラスは前記上位文字列クラスと見なして」とは、例えば、下位文字列クラスたる「ボー」を上位文字列クラスたる「ボード」として抽出するということを意味するものである。
【００２１】
また請求項４に記載のように前記第一知識抽出手段、前記第二知識抽出手段及び前記第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語と、当該重要語が前記知識抽出対象ＤＢのどこに格納されているかを示す位置情報とを含むインデックスを前記重要語をキーとして生成する第一インデックス生成手段を備えるようにしてもよい。この場合に請求項５に記載のように、前記位置情報をキーとして生成する第二インデックス生成手段を備えるようにしてもよい。
【００２２】
ここで「位置情報」とは直接的なものでも間接的なものでもよく、最終的に知識抽出対象ＤＢのどこに格納されているかを示すものであれば何でもよい。「重要語をキー」とは、重要語を引けばそれに対応づけられた情報（ここでは当該重要語の位置情報）が全て得られることを意味し、「位置情報をキー」とは、位置情報を引けばそれに対応づけられた情報（ここでは当該位置（例えば、セル番号で示される位置）に格納されている重要語）が全て得られることを意味する。
【００２３】
また請求項６に記載されるように前記第一知識抽出手段、前記第二知識抽出手段及び前記第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語の出現頻度に基づいて当該重要語の重要度を求める重要度演算手段を備えるようにしてもよい。
【００２４】
ここで「重要度」とは出現頻度に基づくものであればよく、通常は出現頻度が多いものほど重要度が高く、出現頻度が少ないものほど重要度が低いものととらえて差し支えないが、これに限定されるものではない。すなわち、ここでいう「重要度」は出現頻度が高くても不要なものは除去し、出現頻度が少なくても重要なものは当然包含する意味である。本発明の場合、第一知識抽出手段、第二知識抽出手段及び第三知識抽出手段から選ばれる少なくとも一つの手段により不要なものが除去されていることで具体的な構成が示されているものといえる。また「重要度」とは換言すれば、ＤＢにおいて重要語がどれだけ特徴的であるかを示す尺度ともいえる。
【００２５】
上記構成を備えたＤＢ知識抽出システムによれば、文字列クラス群生成手段は、知識抽出対象ＤＢに含まれるサフィックスを取り出してサフィックス群を生成し、当該サフィックス群を構成する各サフィックスどうしを比較し、その比較結果に基づいて文字列クラスを切り出し文字列クラス群を生成する。文字列クラス選択手段は前記文字列クラス群を構成する各文字列クラスの出現頻度に基づいて文字列クラスを選択する。第一知識抽出手段は前記各文字列クラスが当該各文字列クラス以外の他の文字列クラスと包含関係にあるかどうかに基づいて重要語を抽出し、第二知識抽出手段は包含関係にある下位文字列クラスの出現頻度と上位文字列クラスの出現頻度とに基づいて当該下位文字列クラスを重要語として抽出し、第三知識抽出手段は前記下位文字列クラスを前記上位文字列クラスと見なして重要語として抽出する。第一又は第二インデックス生成手段は、第一知識抽出手段、第二知識抽出手段及び第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語と、当該重要語が前記知識抽出対象ＤＢのどこに格納されているかを示す位置情報とを含むインデックスを前記重要語又は前記位置情報をキーとして生成する。更に抽出された重要語は重要度演算手段によりその重要度が付与される。そのため形態素解析用知識辞書ではなく、特化された目的で使用するための重要語辞書を知識抽出対象となる既存ＤＢから作成することが可能となる。特化された分野で利用価値の高い重要語辞書の作成が可能となる。
また、既存ＤＢに格納された自然言語で記述されたデータは、その性質上、対象とする一文、一文書の単位が比較的短いため生成されるサフィックス数は膨大にならない。本発明に係るＤＢ知識抽出システムでは文数そのものは線形で増加するため全体としての計算量は新聞記事を対象として知識を抽出する場合に比較して遙かに低く抑えることが可能となる。
【００２６】
上記課題を解決するために請求項７に記載のＤＢ知識検索システムは、請求項１に記載の第一知識抽出手段、請求項２に記載の第二知識抽出手段及び請求項３に記載の第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語から構成される重要語辞書と、検索質問文に含まれるサフィックスを取り出してサフィックス群を生成し、当該サフィックス群を構成する各サフィックスと前記重要語とを比較して、その比較結果に基づいて検索キーを切りだし検索キー群を生成する検索キー群生成手段とを備えたことを要旨とするものである。
【００２７】
ここで「検索質問文」とはユーザにより入力されたテキストのことをいい、単語、完全文、不完全文でも何でもよい。
【００２８】
この場合に請求項８に記載されるように、（１）前記検索キー群を要素とし、請求項６に記載の重要度演算手段により求められた重要度をその値とする検索キー群ベクトルと、（２）請求項１に記載の第一知識抽出手段、請求項２に記載の第二知識抽出手段及び請求項３に記載の第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語を要素とし、前記重要度演算手段により求められた重要度をその値とする索引ベクトルとに基づいて類似度を求める類似度演算手段を備えるようにしてもよい。
【００２９】
また請求項９に記載されるように、前記類似度に基づいて検索順序に優先順位を付与するランキング手段を備えるようにしてもよく、請求項１０に記載されるように前記ランキング手段は出現頻度に基づいて優先順位を決定するものであってもよい。
【００３０】
上記構成を備えた知識検索システムによれば、第一知識抽出手段、第二知識抽出手段及び第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語から構成される。検索キー群生成手段は検索質問文に含まれるサフィックスを取り出してサフィックス群を生成し、当該サフィックス群を構成する各サフィックスと前記重要語とを比較して、その比較結果に基づいて検索キーを切りだし検索キー群を生成する。また類似度演算手段は検索キー群ベクトルと、索引ベクトルとに基づいて類似度を求め、ランキング手段は当該類似度に基づいて検索順序に優先順位を付与する。従って形態素解析用知識辞書を用いたときのような負荷をシステムにかけることなく、知識抽出対象ＤＢに蓄積された知識を有効活用できる利便性の高いＤＢ知識検索システムとなる。
【発明の効果】
【００３１】
以上説明したように、本発明に係るＤＢ知識抽出システム及びそのプログラムは、文字列クラス群生成手段により生成された各文字列クラスの出現頻度に基づいて文字列クラス選択手段により文字列クラスが選択され、第一知識抽出手段により前記各文字列クラスが当該各文字列クラス以外の他の文字列クラスと包含関係にあるかどうかに基づいて重要語が抽出されるものであるから、形態素解析用知識辞書ではなく、特化された目的で使用するための重要語辞書を知識抽出対象となる既存ＤＢから作成することができ、分野が限定される程、高い精度が期待できるという効果がある。
【００３２】
以上説明したように、本発明に係るＤＢ知識検索システム及びそのプログラムは、検索キー群生成手段により検索質問文に含まれるサフィックスを取り出すことによりサフィックス群が生成され、当該サフィックス群を構成する各サフィックスと第一知識抽出手段により抽出された重要語とを比較して、その比較結果に基づいて検索キーを切りだして検索キー群が生成されるものであるから、形態素解析用知識辞書を用いたときのような負荷をシステムにかけることなく、知識抽出対象ＤＢに蓄積された知識を有効活用でき利便性を高めることができるという効果がある。
【発明を実施するための最良の形態】
【００３３】
以下に本発明の第一の実施の形態について図面を参照して説明する。
［一実施形態の概要］
本発明の一実施形態に係るＤＢ知識利用システムＡは、ＤＢ再利用モジュールＢを構成するＤＢ知識抽出モジュールＣ及びＤＢ知識検索モジュールＤにおける情報処理がサフィックスアレイを用いた新規な手法によって実現されている点に特徴がある。
【００３４】
ＤＢ再利用モジュールＢはコンピュータに実装すればよいが、ＤＢ再利用モジュールＢを構成する全ての要素を一台のコンピュータに実装してもよいし、各要素に分けて別個のコンピュータに実装してもよいし、更には各要素を更に細分化して別個のコンピュータに実装してもよい。別個に実装する場合には各コンピュータが双方向通信可能に接続されていればよい。ＤＢ再利用モジュールＢとして機能させるために必要なプログラムは、各種の記録媒体（例えば、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−Ｒ）からインストールされたものやネットワークを通じて配信されたものを利用することができる。
【００３５】
［ＤＢ知識利用システムＡ］
図１Ａは本発明の一実施形態に係るＤＢ知識利用システムＡの構成を示したもの、図１ＢはＤＢ再利用モジュールＢの構成を示したものである。また図２ＡはリレーショナルＤＢ１（以下「ＲＤＢ１」とする）に格納されている知識の一例としてデータテーブルＴ１０を示したもの、図２Ｂ〜図２Ｄはそれぞれ、重要語辞書ＤＢ８、インデックスＤＢ１０、重要度ＤＢ１１に格納されるデータテーブルＴ２０〜Ｔ４０の一例又はその構造の一例を示したものである。
【００３６】
これらの図においてＤＢ知識利用システムＡは、工場やオフィスにおけるトラブル解決支援、情報収集、情報分析、意思決定など種々の場面で利用できる適用範囲の広いシステムであり、ＤＢ再利用モジュールＢ、ＲＤＢ１、入出力装置２、ＨＤＤ装置３、媒体記録装置４等からなる。ＤＢ再利用モジュールＢはＲＤＢ１に格納された特定データＤＴを読み出し、処理し、重要語抽出や知識再構成を行うものである。
【００３７】
ＨＤＤ装置３はデータを記憶するものであり、ＤＢ再利用モジュールＢが実装されているコンピュータと同一コンピュータに搭載されたものでもよいし、別途設けられたディスク装置でもよい。媒体記録装置４は、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＷなどの記録媒体５を装着して使用され、これらの記録媒体５からプログラムを読み込んでインストールしたり、その逆に種々のデータを記憶させるために用いられるものである。
【００３８】
ＲＤＢ１は既存のリレーショナルデータベースであり、工場やオフィスでの業務に関する自然言語記述データが格納されたものであれば何でもよい。すなわち、ＲＤＢ１には例えば図２Ａに示したように、各行がセル番号（換言すればデータ番号）、日付、トラブル事象、故障原因、処置、対策という列からなるデータテーブルＴ１０が格納されている。各列のデータサイズは特に限定されないが、数文字から数百文字程度が望ましい。入出力装置２はデータ入力に用いるキーボード・マウス等の入力手段２ａや、検索結果や入力情報を表示するモニタ２ｂからなる。また入出力装置２には図示を省略するが各種データを印刷するための印刷装置が接続されている。ＤＢ知識利用システムＡがＤＢ知識検索モジュールＤとして機能するときのユーザ入力促進画面が対話型で表示されるようになっている。図３はその表示例である。
【００３９】
［ＤＢ再利用モジュールＢ］
ＤＢ再利用モジュールＢは、ＤＢ知識抽出モジュールＣと、ＤＢ知識検索モジュールＤとを含む。ＤＢ知識抽出モジュールＣにおいては、データテーブルＴ１０の特定データＤＴ（例えばトラブル事象の列）のデータ一群が読み出され、これに対して処理がなされ、ＤＢの再構築、すなわち、重要語辞書ＤＢ８と、インデックスＤＢ１０と、重要度ＤＢ１１の構築がなされる。ＤＢ再利用モジュールＢの起動はＤＢ再利用モジュールＢが実装されている図示しないコンピュータから、工場やオフィスの非稼働時になされるようになっている。メモリの競合によるデータ不一致の問題を排除するためである。ＤＢ再利用モジュールＢの起動は入出力装置２を介して特権ユーザの操作により起動されるようにしてもよい。
【００４０】
［ＤＢ知識抽出モジュールＣ及び構築されるＤＢ］
ＤＢ知識抽出モジュールＣについて更に説明する。ＤＢ知識抽出モジュールＣは、重要語抽出部７と、ＤＢ再構築部９とを含み、これらにより、重要語辞書ＤＢ８と、インデックスＤＢ１０と、重要度ＤＢ１１とが構築される。
【００４１】
重要語抽出部７はデータテーブルＴ１０から特定データＤＴ（例えばトラブル事象の列）を取りだし、サフィックスアレイデータ構造、最長一致法（Longest Match Method）、ＬＣＰｓ法（Longest Common Prefixes）及びアダプテイション法に基づいて、文字列クラスＣを切り出して重要語Ｗを抽出し重要語辞書ＤＢ８を構築するものである。
【００４２】
具体的には、重要語抽出部７はＲＤＢ１から特定データＤＴを読み出し、読み出した特定データＤＴを用いてサフィックスアレイＳＡを生成し、全ての文字列クラスＣを切りだした後、重要語Ｗを抽出するように構成される。特定データＤＴは位置情報Ｌを単位として読み出される。従って例えばセル番号毎（すなわち一行毎）に読み出すように構成される。
読み出し方については、位置情報Ｌを単位として処理対象となる特定データＤＴを一度に全て読み込んでおきその後のサフィックスアレイＳＡの生成以降の処理に供するように構成しても良いし、位置情報Ｌを単位として読み込む度にサフィックスアレイＳＡの生成を行って文字列クラスＣの切りだし以降の処理に供するように構成してもよい。特定データＤＴに数字が含まれる場合には、全ての数字を合わせた状態が一つの文字として読み出されるように構成してもよい。位置情報Ｌは直接アドレスでも間接アドレスでもよくあらゆる手法により表すことが可能である。
【００４３】
読み出された特定データＤＴに基づいて位置情報Ｌに対応する一行の文字列（自然言語記述部）から構成し得る全ての部分文字列（サフィックス）が生成される。すなわち、一文字を一つのメンバとして（数字の場合には全ての数字を合わせた状態を一つのメンバとすることが望ましい）、文字を一文字づつずらしながら終端記号に達するまで続けることによって全ての部分文字列（サフィックス）を表現する配列構造が構築される。重要語抽出部７は最終的には全ての部分文字列（サフィックス）を統合し先頭文字をキーとして辞書順にソートしたサフィックスアレイＳＡを作成するように構成される。
【００４４】
文字列クラスＣの切り出しのため重要語抽出部７は、サフィックスアレイＳＡを生成すると、先頭から順番にｉ番目のサフィックスｓｆと（ｉ＋１）番目のサフィックスｓｆとの比較を各サフィックスを構成する文字同士一文字ずつ順番に行い、一致部分があれば一致している部分のうち最大重複文字列を文字列クラスＣとして切り出すように構成される。そして重要語抽出部７は、全てのサフィックスｓｆについてこの処理が終わると切り出した文字列クラスＣをソートし、文字列クラスＣの出現頻度Ｔｉを数えて同一文字列クラスＣを統合するように構成される。予め設定した出現頻度Ｔ１より少ない文字列クラスＣは除外するように構成される。換言すれば、重要語抽出部７は、出現頻度Ｔ１以上の文字列クラスＣを選択するように構成される。
【００４５】
重要語辞書ＤＢ８構築のため重要語抽出部７は、サフィックスアレイＳＡを利用してＬＣＰｓ法によって切り出された文字列クラスＣ（図６Ｇ、図６Ｈに示したもの）から出現頻度差を利用したアダプティション手法と最長一致法とを用いて、さらに絞込みを行い重要語Ｗを抽出し、更に抽出された重要語Ｗを重要語辞書ＤＢ８に登録するように構成されている。出現頻度差を利用したアダプティション手法と最長一致法とを用いたのは文字列クラスＣは包含関係が生じているが最大文字列クラス（最も長い文字列クラス）で代表してしまうと冗長になるためこれを避けるためである。
【００４６】
具体的には重要語抽出部７は、ＲＡＭ領域から「処理対象となる文字列クラスＣ（ｉ番目の文字列クラスＣ）」と「一つ前に処理対象とされた前回読み込んだ文字列クラスＣ（（ｉ−１）番目の文字列クラスＣ）」とを読み込み、これらの文字列クラスＣを参照し比較するように構成され、更に二つの文字列クラスＣが文字列上の包含関係にあれば、頻度比Ｇａｐの計算を行いこの結果に基づいて重要度Ｗを抽出するように構成される（図７参照）。ここでは包含関係にある文字列クラスＣを上位文字列クラスＣ、下位文字列クラスＣといい、例えば「ボー」と「ボード」では「ボード」が上位文字列クラスＣ、「ボー」が下位文字列クラスＣということになる。尚、包含関係にない場合には両者を独立クラスの重要語Ｗとして抽出するように構成される。
【００４７】
頻度比Ｇａｐの計算は次の数１に示す。
【数１】
2005032179.tif 000003
【００４８】
重要語抽出部７は、例えば、この頻度比Ｇａｐに基づいて比較された文字列クラスＣの一方を他方の文字列クラスＣの部分文字列であると判定するように構成される。一例を挙げれば、重要語抽出部７は最長一致法によって文字列長の長い文字列クラスＣを残し、他方の文字列クラスＣを消去するように又はこの逆を行うように構成される。重要語抽出部７は頻度比Ｇａｐが閾値Ｔ２以上の場合は下位文字列クラスＣが上位文字列クラスＣとは独立した文字列であると認識するように構成され、例えば「ボー」と「ボード」とでは「ボー」をそのまま重要語辞書ＤＢ８へ登録するように構成される。重要語抽出部７は頻度比Ｇａｐが閾値Ｔ２より小さい場合は、下位文字列クラスＣは上位文字列クラスＣと見なして重要語Ｗとして抽出するように構成され、例えば「ボー」は「ボード」として抽出するように構成される。
【００４９】
重要語辞書ＤＢ８への登録のために重要語抽出部７は、重要語Ｗ及びその属性データ（通し番号、位置情報Ｌ、重要語Ｗ、頻度Ｔｉ、その他のデータ等）を処理、加工するように構成され、例えば図２Ｂに示した構造のデータテーブルＴ２０を作成して重要語辞書ＤＢ８に格納するように構成される。位置情報Ｌとしては、ＲＤＢ１上の位置を直接的又は間接的に表すものであれば何でも良く、セル番号とセル内の位置から決定される「固有の番号」や「通し番号」などを用いることができる。
【００５０】
次にＤＢ再構築部９は、（１）重要語Ｗの位置情報Ｌを取り出して重要語ＷとともにインデックスＤＢ１０に格納し、（２）重要語Ｗの相互の重要度Ｗｉを計算して重要語Ｗとともに重要度ＤＢ１１に格納するように構成される。
【００５１】
インデックスＤＢ１０は、少なくとも重要語辞書ＤＢ８に格納された重要語ＷがＲＤＢ１内のどこに格納されているかを示す位置情報Ｌ（例えばＲＤＢ１上での「セル番号」、「セル番号」と「セル内の位置」、セル番号とセル内の位置から決定される「固有の番号」などのいずれか又は組合せ）と、重要語Ｗとが格納される。インデックスＤＢ１０には例えば図２Ｃに示した構造のデータテーブルＴ３０ａ、Ｔ３０ｂが格納され、データテーブルＴ３０ａを参照することにより重要語Ｗから位置情報Ｌ（「セル番号」、「セル内の位置」、「固有の番号」、「通番」など）を引くこともできるし、データテーブルＴ３０ｂを参照することにより位置情報Ｌから重要語Ｗを引くこともできるように構成されている。
【００５２】
尚、インデックスＤＢ１０の構築は、重要語抽出部７により行うようにしてもよい。この場合も、重要語Ｗをキーにして重要語Ｗが格納されているＲＤＢ１上の全ての位置情報Ｌを得ることができるようにデータテーブルＴ３０ａを作成するように構成してもよいし、位置情報Ｌをキーにして当該位置に格納されている重要語Ｗを得ることができるようにデータテーブルＴ３０ｂを作成するように構成してもよい。
【００５３】
重要度ＤＢ１１は、重要語辞書ＤＢ８に格納された重要語Ｗが相互にどの程度関連が強いかを示す重要度Ｗｉと重要語Ｗとが格納されるところである。重要度ＤＢ１１には、例えば図２Ｄに示したデータテーブルＴ４０ａ、Ｔ４０ｂが格納され、データテーブルＴ４０ａを参照することにより位置情報Ｌで示される位置に含まれる全ての重要語Ｗの重要度Ｗｉを全て引くこともできるし、データテーブルＴ４０ｂを参照することにより重要語Ｗから重要度Ｗｉを引くこともできるように構成されている。
【００５４】
再構築部９において重要度Ｗｉは次の数２の計算式により求められる。
【数２】
2005032179.tif 000004
【００５５】
ここで共起頻度Ｃｉは異なり語数を意味するものである。再構築部９は、例えばデータテーブルＴ３０ａを参照して、ある重要語Ｗが出現する位置情報Ｌを得た後、データテーブルＴ３０ｂを参照することにより、これらの位置情報Ｌで示される位置に存在する異なり語数、すなわち「他の重要語Ｗの種類の総数」を数えることにより共起頻度Ｃｉを求めるように構成される。この場合、再構築部９は、共起するパターンが何度出てきてもそれは１通りとしてカウントするように構成してもよいし、共起するパターンに関係なく累算するように構成することもできる。
補正項α、βとしては定数が設定される。重要度Ｗｉの計算は、相互情報量、dice co-efficient, tf*idf値などの計算法により行うこともできる。出現頻度Ｔｉは、データテーブルＴ３０ａの位置情報Ｌの個数を計算することにより求めることができる。又は再構成部９を介して重要語辞書ＤＢ８を引くことにより求めることもできる。
【００５６】
［ＤＢ知識検索モジュールＤ］
ＤＢ知識検索モジュールＤは、入力部１２と、参照部１３と、出力部１４とからなる。これらは、インデックスＤＢ１０と、重要度ＤＢ１１を直接参照することにより、入出力装置２を介して入力される一般ユーザからの情報要求に応じ、ＲＤＢ１から必要なデータを取り出して当該一般ユーザに情報を提供すべく他のデータと共にモニタ２ｂに表示するものである。インデックスＤＢ１０と、重要度ＤＢ１１は重要語辞書ＤＢ８に格納された重要語Ｗに基づいて構築されたＤＢであり、インデックスＤＢ１０と、重要度ＤＢ１１とを直接参照するということは、結局、重要度辞書ＤＢ８を間接的に参照していることになる。
【００５７】
入力部１２は一般ユーザからの情報要求としての検索質問文ｑを受け付け解析するものであり、検索質問文ｑに含まれるサフィックスｓｆを取り出してサフィックス群ｓｆｇを生成し、サフィックス群ｓｆｇを構成する各サフィックスと重要語Ｗとを比較して、その比較結果に基づいて検索キーＳを切りだし検索キー群ＳＧを生成する。
【００５８】
参照部１３はインデックスＤＢ１０と重要語ＤＢ１１とを参照して一般ユーザの検索質問文ｑに対応した回答をＲＤＢ１のどこからどのような順序で取り出したらよいかを決定するものである。まずＲＤＢ１のどこから取り出すかについてであるが、参照部１３はデータテーブルＴ３０ａを参照して切り出された検索キーＳと一致する重要語Ｗがあるか否かを判断して、一致する重要語Ｗが見つかったときは位置情報Ｌを参照して取り出すべき回答がＲＤＢ１のどこに格納されているかを認識するように構成される。そして参照部１３は、データテーブルＴ４０ａを参照して位置情報Ｌで示される位置に含まれる全ての重要語Ｗの重要度Ｗｉを参照して、重要語Ｗを要素としてその重要度Ｗｉをその値とする索引ベクトルＶｉを作成するように構成される（図２Ｃ、図２Ｄ、図９Ｄ参照）。また参照部１３はデータテーブルＴ４０ｂを参照して検索質問文ｑから切り出された重要語Ｗと一致する検索キーＳの重要度Ｗｉを参照して、重要語Ｗを要素としてその重要度Ｗｉをその値とする検索キー群ベクトルＶｓを作成するように構成される（図２Ｃ、図２Ｄ、図９Ｄ参照）。
【００５９】
次に重要語Ｗを取り出す順序についてであるが、その順序は類似度ｓｉｍを計算することにより決定される。類似度ｓｉｍは、参照部１３により数３の計算式により求められる。
【００６０】
【数３】
2005032179.tif 000005
【００６１】
出力部１４は、参照部１３において求めた位置情報Ｌ及びその優先順位に基づいてＲＤＢ１内の回答が格納された位置から必要なデータを取り出すとともに取り出した知識データを入出力装置２のモニタ２ｂに表示するように構成される。
【００６２】
［その他］
尚、図１Ｂに示した重要語抽出部７、再構築部９、入力部１２、参照部１３及び出力部１４は、これらを同一のコンピュータに実装することもできるし、ネットワークを介して相互にデータのやりとりができる限り別々のコンピュータに実装することもできる。図４はそのコンピュータのブロック構成の一例を示したものである。
【００６３】
図４に示したように、そのようなコンピュータは、プログラムを読み出して当該プログラムの命令を装置各部に送出して制御する中央制御装置（ＣＰＵ）１５、当該コンピュータ及び各種デバイスを制御するためのプログラムであってメインメモリに読み込まれるプログラムを記憶させたリードオンリメモリ（ＲＯＭ）１６、当該コンピュータを「ＤＢ知識抽出モジュールＣ及び／又はＤＢ知識検索モジュールＤとして機能させるためのプログラム（以下単に「ＤＢ知識抽出／検索プログラムという」）や図２Ａ〜図２Ｄ、後述する図６Ａ〜図６Ｈに示した各種データ、その他演算データを記憶させるのに用いられるランダムアクセスメモリ（ＲＡＭ）１７、データ入力に用いるキーボード・マウス等の入力装置１８、実行結果や入力情報を表示するモニタ１９からなるものであればよい。またコンピュータには各種データや手続書類を印刷するための印刷装置その他の周辺機器２０が接続される。
【００６４】
尚、ＲＤＢ再利用システムＡにおいてＣＰＵ１５は、ＲＡＭ１７から「ＤＢ知識抽出／検索プログラム」を読み出して当該コンピュータ及び各種デバイスに制御指令を送出し、特権ユーザの入力指示に従って、ＤＢ知識利用システムＡを構成する重要語辞書ＤＢ８、インデックスＤＢ１０及び重要度ＤＢ１１の構築を行ったり、一般ユーザの入力指示に従って、検索を行う。構築された重要語辞書ＤＢ８、インデックスＤＢ１０及び重要度ＤＢ１１は、同一コンピュータ内のＲＡＭ１７に格納することもできるし、媒体記録装置４やＨＤＤ装置３、他のコンピュータに格納することもできる。
【００６５】
また重要語辞書ＤＢ８、インデックスＤＢ１０及び重要度ＤＢ１１は、ＨＤＤ装置３や媒体記憶装置４を介して記録媒体５に保存され利用することができる。利用形態に応じて、フレキシブルディスク、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−Ｒなどに保存することができる。
【００６６】
以下に図面を参照して上記構成を備えたＤＢ知識利用システムＡにおける情報処理について説明する。
【００６７】
［重要語辞書ＤＢ８の構築処理］
図５ＡはＤＢ知識抽出の全体概略フローチャートであり、重要語辞書ＤＢ８の構築は（１）サフィックスアレイＳＡの結合及びソート（Ｓ１００）、（２）文字列クラスの切出し（Ｓ２００）、（３）重要語Ｗの抽出と重要語辞書ＤＢ８への登録（Ｓ３００）という手順からなる。既に述べたが「サフィックスアレイ」とは、テキストをそのテキスト中に存在する全ての文字からテキストの終端までの部分文字列(サフィックス；接尾辞)の集合(ｎ−ｇｒａｍ集合)であると考え、その集合を辞書順に並べたデータ構造をいう。また「サフィックス」とはテキスト中に存在する全ての文字からテキストの終端までのテキストをいう。
【００６８】
［Ｓ１００における詳細処理］
次に図５Ｂを参照してＳ１００のサフィックスアレイＳＡの統合及びソートの処理について説明する。同図に示したように、Ｓ１０１においてはＲＤＢ１からデータテーブルＴ１０の位置情報Ｌとしての「セル番号」と特定データＤＴとしての「トラブル事象」とが配列順に一度に読み出され、図６Ａに示したデータテーブルＴ２１としてＲＡＭ領域に格納される（Ｓ１０１）。
【００６９】
次にＳ１０２においては図６Ｂに示したように、読み出された特定データＤＴ（「トラブル事象」）を構成するテキストをそのテキスト中に存在する全ての文字からテキストの終端までの部分文字列（サフィックス：接頭辞）の集合（ｎ−ｇｒａｍ集合）であると考え、その集合を辞書順に並べたサフィックスｓｆが、位置情報Ｌ（例えば「セル番号」）毎にデータテーブルＴ２２としてＲＡＭ領域に生成される。Ｓ１０２においては更に図６Ｃに示したように、生成されたサフィックスｓｆ（部分文字列）全てに対して当該サフィックスｓｆ（部分文字列）における先頭文字列を基準とした「セル内の位置」(ここではidx[]で表現されている）を表す情報と、「通し番号」（又は「通番」という）とが付与されデータテーブルＴ２３としてＲＡＭ領域に格納される。
【００７０】
Ｓ１０３においては図６Ｄに示したように、位置情報Ｌのうち「セル番号」が同じ特定データＤＴ毎に、各サフィックスｓｆが辞書順にソートされるとともに、各サフィックスｓｆに固有の番号（sfx[]）が付与され初期化され、データテーブルＴ２４としてＲＡＭ領域に格納される。ここで「固有の番号」とはＲＤＢ１内での位置を示すデータであり、データテーブルＴ２３で「セル番号」と「セル内の位置」とにより決定される情報と同じ意味を有するデータである。直接アドレスでも間接アドレスでもあらゆる手法によるアドレス指定が可能である。
【００７１】
Ｓ１０４においては図６Ｅに示したように、位置情報Ｌごとではなく全てのサフィックスｓｆが統合され全体がソートされたサフィックスアレイＳＡが得られ、データテーブルＴ２５としてＲＡＭ領域に格納される。
【００７２】
［Ｓ２００における詳細処理］
次に図５Ｃを参照してＳ２００の文字列クラス切出処理について説明する。Ｓ２０１においてはカウンタｉと、サフィックス総数ｊとに所定の値が設定される。カウンタｉには初期値として０が設定され、サフィックス総数ｊにはＳ１０４で「ソート及び統合」された全サフィックス数が設定される（図６Ｅから図６Ｆの例では６２が設定される）。次にＳ２０２においては「ｉ番目のサフィックス」と「（ｉ−１）番目のサフィックス」とが比較され一致部分があるかどうか判断される。
【００７３】
一致部分があると判断されると（Ｓ２０２：ＹＥＳ）、Ｓ２０３へ進み一致部分が文字列クラスＣとして切り出され、切り出された文字列クラスＣは図６Ｆに示したデータテーブルＴ２６としてＲＡＭ領域に格納される。図６Ｆに示したように「固有の番号」と「通し番号」は位置情報Ｌとしてそのまま引き継がれている。ここでは一文字でも同じ文字列があれば文字列クラスＣとして切り出される。結果的に少なくとも２回出現する文字列クラスＣは切り出されることになる。
【００７４】
そしてＳ２０３の処理がなされた後又はＳ２０２において一致部分がないと判断されたときは、Ｓ２０４及びＳ２０５を介してＳ２０２に戻り、次の「（ｉ＋１）番目のサフィックス」についての処理がなされる。
図６Ｅから図６Ｆの例ではＳ２０４において「カウンタｉ←６２」となるまでＳ２０２からＳ２０５の処理が繰り返し行われる。図６Ｅに示したデータテーブルＴ２５のサフィックスについて左上から順番に通番１３→通番２６→通番５３→、…、→通番５４→通番０３、…、→通番４２というように最後まで処理に供されたサフィックスは処理結果に応じて文字列クラスＣとして切り出され図６Ｆに示したデータテーブルＴ２６として格納される（Ｓ２０３）。図６Ｆには図６Ｅに示したサフィックスを切り出した結果を例示している。
【００７５】
Ｓ２０６においては図６Ｇに示したように切り出された文字列クラスＣの出現頻度Ｔｉが計算され、データテーブルＴ２７が作成されＲＡＭ領域に格納される。図においては出現頻度Ｔｉの例は、必要限度にとどめている。そしてＳ２０７においては図６Ｈに示したように辞書順にソートされるが、先頭文字が同一のものについては上位文字列クラスが先に下位文字列クラスが後の配列となるようにソートされてＲＡＭ領域に格納される。また同一文字列クラスＣ（図６Ｇ参照）は統合されてＲＡＭ領域に格納される。このとき図６Ｈに示したように文字列クラスＣが格納されている位置情報Ｌ（例えば「固有の番号」）も付加される。なお包含関係については既に説明したがここでもう一度言及しておくと、「ボー」と「ボード」との関係をいうものであり、この場合「ボー」が下位文字列クラス、「ボード」が上位文字列クラスとなる関係をいう。
【００７６】
Ｓ２０８においては文字列クラスＣの出現頻度Ｔｉが所定の閾値Ｔ１より小さいか否かが判断され、所定の閾値Ｔ１より出現頻度Ｔｉが小さいときにはその文字列クラスＣは除外され、残りの文字列クラスＣが選択される。この除外は例えば図６Ｈに示したデータテーブルＴ２７に除外するかしないかを示すフラグを立てることによりなされる。例えば、「Ｔ１＝５」としたときは、Ｃ３４の文字列クラス「熱暴走」が除外対象となり、「除外」の列にフラグ「１」が立てられる。
【００７７】
これに代えて、フラグを立てずに、除外する文字列クラスＣを除いてデータテーブルＴ２７と同様のテーブルを作成しなおしてもよい。このように出現頻度Ｔｉが少ない文字列クラスを除外するのは、このような文字列クラスは無意味な場合が多いことが統計的に判明していることに基づく。ここで閾値Ｔ１の決め方であるが、例えば定数とすることもできるし、出現頻度Ｔｉの全文字列クラス数Ｃの出現頻度の総数に対する割合とすることもできる。
【００７８】
［Ｓ３００における詳細処理］
次に図５Ｄを参照して重要語抽出処理について説明する。
Ｓ３０１においては、カウンタｉが０に設定され、文字列クラスＣ総数ｊが設定される。図６Ｈの例では除外された文字列クラスＣが除外されて総数ｊとして設定されるため、例えば「３６−Ｘ（Ｘ：除外された文字列クラス総数）」が設定される。
【００７９】
Ｓ３０２においては、「処理対象となる文字列クラスＣ（ｉ番目の文字列クラスＣ）」が「一つ前に処理対象とされた前回読み込んだ文字列クラスＣ（（ｉ−１）番目の文字列クラスＣ）」と包含関係にあるか否かが判断される。さて包含関係にないと判断されると（Ｓ３０２：ＮＯ）、Ｓ３０５においてｉ番目の文字列クラスＣは独立クラスとして重要語辞書ＤＢ８に登録される。重要語辞書ＤＢ８に登録されるときのデータ構造は例えばデータテーブルＴ２０に示したものが用いられる。
【００８０】
一方、包含関係にあると判断されると（Ｓ３０２：ＹＥＳ）、Ｓ３０３において包含関係にある文字列クラスどうしで頻度比Ｇａｐが所定の閾値Ｔ２より小さいか否かが判断される。数１に基づいて演算を行った結果、閾値Ｔ２より小さいと判断されると（Ｓ３０３：ＹＥＳ）、最長一致法に基づき上位文字列クラスＣに下位文字列クラスＣが圧縮され（Ｓ３０４）、下位文字列クラスＣは上位文字列クラスＣと見なして重要語辞書ＤＢ８へ登録される（Ｓ３０５）。
【００８１】
そしてＳ３０５の処理がなされた後は、Ｓ３０６及びＳ３０７を介してＳ３０２に戻り、次の「（ｉ＋１）番目の文字列クラス」についての処理がなされる。
図６Ｈの例ではＳ２０６において「カウンタｉ←（３６−Ｘ）（Ｘ：除外された文字列クラス総数）」となるまでＳ３０２からＳ３０７の処理が繰り返し行われる。
【００８２】
図５Ｄの処理について図７を参照して更に説明する。図７はデータテーブルＴ２８からどのように重要語Ｗが抽出されるのかを概念的に示したものである。まず閾値Ｔ１を「Ｔ１＝５」とし、閾値Ｔ２を「Ｔ２＝２．０」とする。
例えば文字列クラスＣ１とＣ２とを比較すると、これらは包含関係にあるため数１により計算するとＧａｐ（Ｃ１，Ｃ２）＝｜ｌｏｇ８／８｜＝０＜閾値Ｔ２となるため、文字列クラスＣ２は文字列クラスＣ１に圧縮されて、文字列クラスＣ１と見なして重要語辞書ＤＢ８へ登録される。「１３ランバス」は「１３ランバス加熱」として登録される。
また例えば文字列クラスＣ２とＣ３とを比較すると、これらは包含関係にないため文字列クラスＣ３はそのまま独立クラスと見なして重要語辞書ＤＢ８へ登録される。
また例えば文字列クラスＣ２０とＣ２１とを比較すると、これらは包含関係にあるため数１により計算するとＧａｐ（Ｃ２０，Ｃ２１）＝｜ｌｏｇ８／１０００｜＝２．０９６＞閾値Ｔ２となるため、文字列クラスＣ２１は文字列クラスＣ１に圧縮されることなくそのまま独立クラスとして重要語辞書ＤＢ８へ登録される。
【００８３】
［重要語辞書ＤＢの再構成］
再構築部９においては知識関連付けとして、図８Ａに示したようにインデックスＤＢ１０の構築（Ｓ４００）と、重要度ＤＢ１１の構築（Ｓ５００）とが行われる。
【００８４】
［Ｓ４００における詳細処理］
再構築部９におけるインデックスＤＢ１０の構築について図８Ｂを参照して説明する。
Ｓ４０１においては図５Ａから図５Ｄのフローチャートの処理によって抽出された重要語Ｗと位置情報Ｌとが図７に示したデータテーブルＴ２９から取り出される。そしてデータテーブルＴ３０ａ、Ｔ３０ｂが例えばハッシュ構造で作成され、インデックスＤＢ１０として格納される（図２Ｄ参照）。
【００８５】
［Ｓ５００における詳細処理］
次に再構築部９における重要度ＤＢ１１の構築について図８Ｃを参照して説明する。
まずＳ５０１においてカウンタｉに初期値０が設定されるとともに、全データ数ｊに重要語Ｗの総数が設定される。次にＳ５０２とＳ５０３においてそれぞれ共起頻度Ｃｉと出現頻度Ｔｉとが求められる。共起頻度ＣｉはデータテーブルＴ３０ａを参照して、ある重要語Ｗが出現する位置情報Ｌ（例えば「固有の番号」や「セル番号」）を得た後、データテーブルＴ３０ｂを参照することにより、これらの位置情報Ｌ（例えば「固有の番号」や「セル番号」）で示される位置に含まれる他の重要語Ｗの種類の総数を数えることにより求められる。従って、共起するパターンが何度出てきてもそれは１通りとしてカウントされる。出現頻度ＴｉはデータテーブルＴ３０ａの重要語Ｗごとの位置情報Ｌがいくつあるかに基づいてカウントすることにより求めることができる。
【００８６】
Ｓ５０４においては重要度Ｗｉが数２に基づいて計算され、Ｓ５０５においては重要語Ｗと重要度Ｗｉとが図２Ｄに示したデータテーブルＴ４０ａ、Ｔ４０ｂに格納される。Ｓ５０２からＳ５０６までの処理が重要語Ｗの総数分行われる。
以上のようにして構築されたインデックスＤＢ１０と重要度ＤＢ１１は、例えば一般ユーザによる検索に用いられる。
【００８７】
［検索モジュールＣを用いた検索］
一般ユーザがコンピュータ２から知識検索プログラムを起動させると、図９Ａに示したように検索質問文ｑの入力処理（Ｓ６００）、参照及び演算処理（Ｓ７００）、検索結果の出力処理（Ｓ８００）がなされる。
【００８８】
［Ｓ６００における詳細処理］
Ｓ６００の処理では例えば図３に示した画面が表示され、図９Ｂに示したように一般ユーザによりこの画面表示に従って例えば「ＣＬ１３フリーズ」という「トラブル事象」のデータが入力される（Ｓ６０１）。次いでＳ６０２においては、この検索質問文ｑがテキストとみなされデータ中の文字から構成される部分文字列（サフィックス）が生成される。そしてＳ６０３においてはテキストの先頭文字の文字コード順に各サフィックスがソートされる。
【００８９】
［Ｓ７００における詳細処理］
Ｓ７００の処理では、Ｓ６０３でソートされたサフィックスとインデックスＤＢ１０中の重要語Ｗとが照合される（Ｓ７０１）。そしてＳ７０２においては照合した結果、一致した重要語Ｗの位置情報Ｌ（例えば「固有の番号」や「セル番号」）が参照されるが、このとき重要語Ｗが複数含まれている場合には、そのうちの重要語Ｗが一つでも一致したときには位置情報Ｌが参照される。例えば検索質問文ｑ＝｛ＣＬ１３フリーズ｝である場合には、重要語Ｗとして「ＣＬ１３」と「フリーズ」が取り出され、「ＣＬ１３」と「フリーズ」のうち一つでも含まれている位置情報Ｌが参照される。位置情報Ｌは、類似度ｓｉｍを求めるのに用いられる。
【００９０】
次にＳ７０３においては「参照した位置情報Ｌで示される位置に含まれる全ての重要語Ｗ」について重要度ＤＢ１１が参照され、その「参照した位置情報Ｌで示される位置に含まれる全ての重要語Ｗ」を要素とし、数２により求められた重要度Ｗｉをその値とする索引ベクトルＶｉが作成される。その例を図９Ｄ（２）に示す。この例の場合にはデータテーブルＴ４０ａから要素となる重要語Ｗの重要度Ｗｉが参照され、Ｓ７０４においては索引ベクトルＶｉ１＝｛１０，１０，５０｝、索引ベクトルＶｉ２＝｛１０，１００，５０｝が作成される。
【００９１】
また検索質問文ｑについては、Ｓ７０１の処理で一致した重要語Ｗを要素としその重要度Ｗｉをその値とする検索キー群ベクトルＶｓが作成される。その例を図９Ｄ（１）に示す。この例の場合にはＳ７０３においてデータテーブルＴ４０ｂから要素となる重要語Ｗの重要度Ｗｉが参照され、Ｓ７０５においては検索キー群ベクトルＶｓ＝｛１０，５０｝が作成される。
【００９２】
Ｓ７０６においては余弦尺度を用いて検索質問文ｑと重要語Ｗとの類似度ｓｉｍが数３に基づいて判断される。この類似度ｓｉｍの値が大きい方が優先順位が高く低い方が優先順位が低く設定される。上記の例の場合には次の数４のような式となる。
【００９３】
【数４】
2005032179.tif 000006
【００９４】
Ｓ７０７においては、類似度ｓｉｍが同じ値になったものがあるかないかが判断され、同じ値になったものがあると判断された場合には（Ｓ７０７：ＹＥＳ）、出現頻度Ｔｉ又は文字列クラスの一致度（％）によって優先順位が決定される。上記の例では索引ベクトルＶｉ２に係る特定データＤＴの方が優先順位が高いと判断され、Ｓ７０８を飛ばしてＳ７０９に進み、類似度ｓｉｍを必要な位置情報Ｌとしてのセル番号全てについて求め終わると、類似度ｓｉｍの順に位置情報ＬがＲＡＭ領域に記憶される。
【００９５】
［Ｓ８００における詳細処理］
Ｓ７０９において記憶された優先順位に従ってＲＤＢ１から表示対象となる位置情報Ｌに係る行のデータが順次読み出される（Ｓ８０１）。優先順位に基づいてＲＤＢ１から読み出されたデータが図３のように表示される（Ｓ８０２）。
【００９６】
以下に本発明の第二の実施の形態を図面を参照して説明する。
［逆引き検索機能］
図１０は本発明の第二の実施の形態に係るＤＢ再利用モジュールＢのブロック構成を示したものである。ＤＢ再利用モジュールＢは、重要語辞書ＤＢ８ａ〜８ｃ、インデックスＤＢ１０ａ〜１０ｃ、重要語ＤＢ１１ａ〜１１ｃと各ＤＢを複数備えたものである。各ＤＢは、各々、データテーブルＴ１０の特定データＤＴである「トラブル事象」、「故障原因」、「処置」、「対策」のいずれかに対応させることができる。「故障原因」、「処置」及び「対策」についての各ＤＢの構築は、第一の実施の形態と同様に行うことができる。その詳細な説明は省略する。
【００９７】
ＤＢをＲＤＢ１の特定データＤＴの種類に併せて構築する場合に特徴的な利点として、逆引き検索機能が挙げられるのでそれについて説明する。
この場合、データ検索に際して検索キーＳが含まれる列としてどの列を選択するのか、すなわち、「トラブル事象」、「故障原因」、「処置」、「対策」のいずれを選択するのかを画面上で指定できるように構成される（デフォルトは任意に設定することができ、例えば「トラブル事象」とすることができる）。
【００９８】
例えば「トラブル事象」が選択され、検索質問文ｑが入力されると、「トラブル事象」について構築されたＤＢの検索がなされ、該当する「トラブル事象」が存在するデータがＲＤＢ１から読み出されて表示される。このときに、「故障原因」、「処置」、「対策」も併せて表示するようにすれば逆引き検索が簡単に実現されることになる。
【００９９】
また例えば「故障原因」が選択され、検索質問文ｑが入力されると、「故障原因」について構築されたＤＢの検索がなされ、該当する「故障原因」が存在するデータがＲＤＢ１から読み出されて表示される。このときに、「トラブル事象」、「処置」、「対策」も併せて表示するようにすれば逆引き検索が簡単に実現されることになる。
【０１００】
以上説明した本発明の一実施形態に係るＤＢ知識利用システムＡによれば、ＲＤＢ中の自然言語記述部である特定データＤＴを解析し再構成するため、既存のＲＤＢでは把握できなかった関連性や知識を導き出すことができ、これを参照することができるようになる。例えば類似度ｓｉｍの計算により特定データＤＴ相互の関係を数値で見出したり、サフィックスアレイを利用した重要語Ｗの抽出により、システム特有の専門用語が必ずサポートされるという効果がある。
【０１０１】
また形態素解析や既存の辞書情報を一切使用することなく、サフィックスアレイを用いて、重要語Ｗを抽出してＤＢを再構築して利用するため、分野や言語、専門性の差異や事前知識の有無を意識することなくＤＢ知識の利用が可能となるという効果がある。
【０１０２】
また、連携させるＲＤＢはどのような種類のものでもよいため、ＲＤＢそのものの性能向上にも寄与するという効果がある。また、一般ユーザは任意の質問を自然言語たるテキストで入力することができ、知識利用システムＡはこれに対して回答することができる。そのため、音声認識機能を活用すれば、これを自然言語に変換することで音声質問による検索も可能になる。
【産業上の利用可能性】
【０１０３】
本発明は既存ＤＢを有効活用するものであるため業種に限られることなくあらゆる分野に適用することができる。
【図面の簡単な説明】
【０１０４】
【図１Ａ】本発明の一実施形態に係るＤＢ知識利用システムＡの構成を示したブロック図である。
【図１Ｂ】本発明の一実施形態に係るＤＢ知識利用システムＡのＤＢ再利用モジュールＢの構成を示したブロック図である。
【図２Ａ】ＲＤＢ１に格納されているデータテーブルＴ１０の一例を示した図である。
【図２Ｂ】重要語辞書ＤＢ８に格納されているデータテーブルＴ２０の一例を示した図である。
【図２Ｃ】インデックスＤＢ１０に格納されているデータテーブルＴ３０ａ、Ｔ３０ｂの一例を示した図である。
【図２Ｄ】重要度ＤＢ１１に格納されているデータテーブルＴ４０ａ、Ｔ４０ｂの一例を示した図である。
【図３】本発明の一実施形態に係るＤＢ知識利用システムＡの一般ユーザによる検索画面の一例を示した図である。
【図４】本発明の一実施形態に係るＤＢ知識利用システムＡを構成する各モジュールとして用いられるコンピュータの構成の一例を示したブロック図である。
【図５Ａ】本発明の一実施形態に係るＤＢ知識利用システムＡのＤＢ知識抽出処理の全体概略フローチャートである。
【図５Ｂ】図５Ａに示したステップＳ１００のフローチャートである。
【図５Ｃ】図５Ａに示したステップＳ２００のフローチャートである。
【図５Ｄ】図５Ａに示したステップＳ３００のフローチャートである。
【図６Ａ】文字列クラスＣ切出しの説明図である。
【図６Ｂ】文字列クラスＣ切出しの説明図である。
【図６Ｃ】文字列クラスＣ切出しの説明図である。
【図６Ｄ】文字列クラスＣ切出しの説明図である。
【図６Ｅ】文字列クラスＣ切出しの説明図である。
【図６Ｆ】文字列クラスＣ切出しの説明図である。
【図６Ｇ】文字列クラスＣ切出しの説明図である。
【図６Ｈ】文字列クラスＣ切出しの説明図である。
【図７】重要語Ｗの抽出の説明図である。
【図８Ａ】本発明の一実施形態に係るＤＢ知識利用システムＡのＤＢ知識抽出又は知識検索の前準備ともいえる処理の全体概略フローチャートである。
【図８Ｂ】図８Ａに示したステップＳ４００のフローチャートである。
【図８Ｃ】図８Ａに示したステップＳ５００のフローチャートである。
【図９Ａ】本発明の一実施形態に係るＤＢ知識利用システムＡのＤＢ知識検索処理の全体概略フローチャートである。
【図９Ｂ】図１０Ａに示したステップＳ６００のフローチャートである。
【図９Ｃ】図１０Ａに示したステップＳ７００のフローチャートである。
【図９Ｄ】類似度ｓｉｍの計算を説明するための図である。
【図９Ｅ】図１０Ａに示したステップＳ８００のフローチャートである。
【図１０】本発明の他の実施形態に係るＤＢ知識再利用モジュールＢの全体構成を示したブロック図である。
【符号の説明】
【０１０５】
Ａ  ＤＢ知識利用システム
Ｂ  ＤＢ再利用モジュール
Ｃ  ＤＢ知識抽出モジュール
Ｄ  ＤＢ知識検索モジュール
【図１Ａ】
2005032179.tif 000007
【図１Ｂ】
2005032179.tif 000008
【図２Ａ】
2005032179.tif 000009
【図２Ｂ】
2005032179.tif 000010
【図２Ｃ】
2005032179.tif 000011
【図２Ｄ】
2005032179.tif 000012
【図３】
2005032179.tif 000013
【図４】
2005032179.tif 000014
【図５Ａ】
2005032179.tif 000015
【図５Ｂ】
2005032179.tif 000016
【図５Ｃ】
2005032179.tif 000017
【図５Ｄ】
2005032179.tif 000018
【図６Ａ】
2005032179.tif 000019
【図６Ｂ】
2005032179.tif 000020
【図６Ｃ】
2005032179.tif 000021
【図６Ｄ】
2005032179.tif 000022
【図６Ｅ】
2005032179.tif 000023
【図６Ｆ】
2005032179.tif 000024
【図６Ｇ】
2005032179.tif 000025
【図６Ｈ】
2005032179.tif 000026
【図７】
2005032179.tif 000027
【図８Ａ】
2005032179.tif 000028
【図８Ｂ】
2005032179.tif 000029
【図８Ｃ】
2005032179.tif 000030
【図９Ａ】
2005032179.tif 000031
【図９Ｂ】
2005032179.tif 000032
【図９Ｃ】
2005032179.tif 000033
【図９Ｄ】
2005032179.tif 000034
【図９Ｅ】
2005032179.tif 000035
【図１０】
2005032179.tif 000036