JP2005032179A - データベース知識抽出システム、データベース知識検索システム並びにデータベース知識抽出プログラム、データベース知識検索プログラム - Google Patents
データベース知識抽出システム、データベース知識検索システム並びにデータベース知識抽出プログラム、データベース知識検索プログラム Download PDFInfo
- Publication number
- JP2005032179A JP2005032179A JP2003273557A JP2003273557A JP2005032179A JP 2005032179 A JP2005032179 A JP 2005032179A JP 2003273557 A JP2003273557 A JP 2003273557A JP 2003273557 A JP2003273557 A JP 2003273557A JP 2005032179 A JP2005032179 A JP 2005032179A
- Authority
- JP
- Japan
- Prior art keywords
- knowledge
- character string
- string class
- suffix
- important word
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【目的】特化された目的で使用するための重要語辞書を自動構築することにより、情報検索に活用することができるデータベース知識の抽出/検索システム等を提供すること。
【解決手段】知識抽出対象DBに含まれるサフィックスを取り出して当該サフィックスを規則的に配列させることによりサフィックス群を生成する(S100)。当該サフィックス群を構成する各サフィックスどうしを比較して、一致部分を文字列クラスとして切り出し、その出現頻度に基づいて当該文字列クラスを除外して最終的な文字列クラスとする(S200)。各文字列クラスが当該各文字列クラス以外の他の文字列クラスと包含関係にない場合に、当該各文字列クラスを重要語辞書DBへ登録されるべき重要語として抽出する(S300)。
【選択図】図5A
【解決手段】知識抽出対象DBに含まれるサフィックスを取り出して当該サフィックスを規則的に配列させることによりサフィックス群を生成する(S100)。当該サフィックス群を構成する各サフィックスどうしを比較して、一致部分を文字列クラスとして切り出し、その出現頻度に基づいて当該文字列クラスを除外して最終的な文字列クラスとする(S200)。各文字列クラスが当該各文字列クラス以外の他の文字列クラスと包含関係にない場合に、当該各文字列クラスを重要語辞書DBへ登録されるべき重要語として抽出する(S300)。
【選択図】図5A
Description
本発明は、データベース知識の抽出システム、検索システム並びにデータベース知識の抽出プログラム、検索プログラムに関し、更に詳しくは、工場やオフィスにおける各種の業務支援や情報検索・情報収集に用いられる情報資源を活用する技術に関する。
オフィスや工場において、現場業務に関連した様々な情報を蓄積・管理するための高機能なリレーショナルデータベースシステム(以下単に「RDBシステム」という)が運用されている。RDBシステムは情報が蓄積され続けるため時間が経つに従って大規模化・複雑化する。RDBシステムからの情報検索・情報収集及び情報管理は、業務効率の向上を図り、業務運営方針の策定を行うために重要視されている。
一方RDBシステムを効果的に運用するためには、RDBに格納されているデータを取りだして再構築し再利用する必要があるため専門的な知識や熟練した操作経験が必要とされる。従って誰もが気軽に利用できる状況ではない。そのため大量な業務関連情報が蓄積されているにも関わらず、それらが効率的に利用されていないという問題が生じている。
そこでRDBシステムを現場業務に再利用する試みが種々開示されている。
例えば非特許文献1には日報として記述された文章から知識辞書を用いて重要概念を抜き出し、個々の重要概念の因果関係を示す構造を抽出する技術が開示されている。
例えば非特許文献1には日報として記述された文章から知識辞書を用いて重要概念を抜き出し、個々の重要概念の因果関係を示す構造を抽出する技術が開示されている。
また特許文献1に開示された情報サービスシステムは、形態素解析を利用してユーザからの自然言語文による問い合わせを構造化し、その問い合わせに対する情報を事例情報データベース及び製品情報データベースから検索して取り出し表示するものである。
特許文献2に開示された情報共有システムの情報保守管理装置は、効率的に情報の点検作業を行える情報共有システムであり、蓄積された情報の信頼性を形態素解析を利用して行い管理者に通知するというものである。
特許文献3に開示されたヘルプデスク支援装置は、ある製品に関する問題を解決するために形態素解析を利用して事例情報に関連づけられた付帯情報と、事例情報を元に分類された分類項目とを呈示するというものである。
上記の非特許文献1及び特許文献1〜3に開示された技術はいずれも自然言語処理技術として形態素解析を使用することを前提としているため、いわゆる国語辞典のようなあらゆる単語や品詞をカバーした形態素解析用知識辞書が必要となる。そのため不要なデータまでサポートすることになる一方、専門用語に弱いという欠点があった。形態素解析用知識辞書では専門用語がサポートされていないためである。非特許文献1のようにユーザが辞書作成支援ツールを用いて作成することも考えられるが効率的ではない。また形態素解析用知識辞書では参照される頻度が極めて低い知識を記憶しておくため必要度が低い知識における記憶容量が膨大になるという問題点もある。
そこで形態素解析用知識辞書を使用しないでドキュメントや文章からキーワードや文字列を切り出す試みとしてサフィックスアレイを用いる手法が注目を集めている。その基本的な手法が非特許文献2〜3に開示されている。「サフィックスアレイ」とは、テキストをそのテキスト中に存在する全ての文字からテキストの終端までの部分文字列(サフィックス;接尾辞)の集合(n−gram集合)であると考え、その集合を辞書順に並べたデータ構造をいう。二分探索法を用いてテキストを検索したり、各部分文字列の重複関係等に基づいて文字列クラス(キーワードとして)を切り出すのに用いられるデータ構造である。
その基本的な手法は例えば非特許文献2〜3に開示されている。非特許文献2〜3にはサフィックスアレイを用いて、共通部分を含む文字列から文字列クラス(キーワードとして)を切り出すべく、区間内部での共通部分の文字列長さが当該区間境界での共通部分の文字列長さよりも大きいときに文字列クラスを形成するとし、その当該文字列クラスを代表する文字列として、当該クラスのなかで最長の文字列を取り出す手法が開示されている。このときに区間の中にまた区間が存在するという階層関係をも考慮している。
また実際のシステムに組み込んだ例として特許文献4〜5にサフィックスアレイを用いたキーワード抽出技術や情報検索技術が開示されている。特許文献4に開示された技術は、キーワードであると決定するために何らかの閾値を用いて行っている。また特許文献5に開示された技術は、大量の文書から特徴を取り出してそれを検索できるようにしたものであるが、重要語を取り出すときに、入力文書に出現する出現頻度と、検索対象となる文書に出現する出現頻度との対比から文字列の特徴量を計算し、これを評価することにより特徴文字列の抽出を行うものである。
電子情報通信学会論文誌 Vol. J86-D-11, No.2, pp.310-323., 2003.
自然言語処理 2002年10月 Volume 9, Number 5, pp.43-70.「文字列をk回以上含む文書数の計数アルゴリズム」
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」
特開平10−207902号公報
特開2000−285135号公報
特開2003−85186号公報
特開2002−197195号公報
特開平9−293077号公報
しかしながら、上記非特許文献2〜3や、特許文献4〜5に開示されたサフィックスアレイを用いた技術では「分野が限定されていない大規模なデータ」、例えば新聞記事等が対象となっている。従って新聞記事等を対象としたサフィックスアレイでは、一文、一文書の単位が長いため生成されるサフィックス数が膨大な量になり計算量が膨大になるという問題があった。
一方、現場業務のように「限定された分野」の場合、例えばRDBに格納されるデータに含まれる文字列(テキスト)の種類が一般の形態素解析用知識辞書に較べれば格段に少なく更にその量も少ないような場合に、形態素解析用知識辞書やn−gramモデルを適用すると、無関係な文字列クラスについての計算を大量に行うこととなり計算量が膨大になるうえ時間もかかり実用的ではないという問題があった。そのため「分野が限定された現場業務」では情報収集やトラブル支援のために専門分野に適用でき且つ利便性の高い知識辞書の自動構築及びその活用手段の構築が所望されていた。
本発明はこのような事情に鑑みてなされたものであり、その第一の目的は、形態素解析用知識辞書ではなく、特化された目的で使用するための重要語辞書を知識抽出対象となる既存DBから作成することができるDB知識抽出システム及びプログラムを提供することにある。これにより、分野が限定される程、高い精度が期待でき不完全な文を多数含むDBからも知識抽出が可能となる。
本発明の第二の目的は、形態素解析用知識辞書を用いたときのような負荷をシステムにかけることなく、知識抽出対象DBに蓄積された知識を有効活用できる利便性の高いDB知識検索システム及びプログラムを提供することにある。
上記課題を解決するために請求項1に記載のDB知識抽出システムは、知識抽出対象DBに含まれるサフィックスを取り出してサフィックス群を生成し、当該サフィックス群を構成する各サフィックスどうしを比較して、その比較結果に基づいて文字列クラスを切り出し文字列クラス群を生成する文字列クラス群生成手段と、前記文字列クラス群を構成する各文字列クラスの出現頻度に基づいて文字列クラスを選択する文字列クラス選択手段と、前記各文字列クラスが当該各文字列クラス以外の他の文字列クラスと包含関係にあるかどうかに基づいて重要語を抽出する第一知識抽出手段とを備えたことを要旨とするものである。
ここで「知識抽出対象DB」とは工場やオフィスにおけるトラブル事象や日常作業事象等のテキストで表現可能なデータが「何らかの意味をなす完成文又は未完成文」という形で格納されたDBや、ユーザが取り出したいと考えるデータ(知識)が格納されたDBであればよい。「サフィックス」とはテキスト中に存在する全ての文字からテキストの終端までの部分文字列をいう。換言すれば「サフィックス」とは「何らかの区切り(セル番号毎、列毎など)単位」における「何らかの意味をなす完成文又は未完成文」に存在する全ての文字からの終端までの部分文字列ということができる。「その比較結果」とはテキストが同一かどうかとか、テキストの長さは同一かどうかといった観点による比較結果をいう。「文字列クラス」とはサフィックスから切り出された文字列をいい、特に限定されないが、例えば、比較するサフィックスどうしの共通部分や、比較するサフィックスどうしに全く共通部分がないときはそのサフィックスそのものなどをいう。「文字列クラス群」とは少なくとも一つの文字列クラスからなる群をいう。「出現頻度」とは知識抽出対象DBの全部又は一部において切り出された文字列クラスが出現する頻度をいう。「包含関係」とは、「ボー」と、「ボード」を比較したときに「ボー」は「ボード」に包含されるという関係をいう。「重要語」とは結果的には工場やオフィスで使用される重要な言葉、単語を意味することになるが、文字列クラスからある条件を満たすことにより抽出されたテキストに過ぎない。
この場合に請求項2に記載のように、包含関係にある下位文字列クラスの出現頻度と上位文字列クラスの出現頻度とに基づいて当該下位文字列クラスを重要語として抽出する第二知識抽出手段を備えるようにしてもよい。また請求項3に記載のように、前記下位文字列クラスは前記上位文字列クラスと見なして重要語として抽出する第三知識抽出手段を備えるようにしてもよい。
ここで「下位文字列クラス」とは包含されるほうの文字列クラスといい、「上位文字列クラス」とは包含するほうの文字列クラスをいい、例えば「ボー」と「ボード」とでは、「ボー」が下位文字列クラス、「ボード」が上位文字列クラスとなる。また「前記下位文字列クラスは前記上位文字列クラスと見なして」とは、例えば、下位文字列クラスたる「ボー」を上位文字列クラスたる「ボード」として抽出するということを意味するものである。
また請求項4に記載のように前記第一知識抽出手段、前記第二知識抽出手段及び前記第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語と、当該重要語が前記知識抽出対象DBのどこに格納されているかを示す位置情報とを含むインデックスを前記重要語をキーとして生成する第一インデックス生成手段を備えるようにしてもよい。この場合に請求項5に記載のように、前記位置情報をキーとして生成する第二インデックス生成手段を備えるようにしてもよい。
ここで「位置情報」とは直接的なものでも間接的なものでもよく、最終的に知識抽出対象DBのどこに格納されているかを示すものであれば何でもよい。「重要語をキー」とは、重要語を引けばそれに対応づけられた情報(ここでは当該重要語の位置情報)が全て得られることを意味し、「位置情報をキー」とは、位置情報を引けばそれに対応づけられた情報(ここでは当該位置(例えば、セル番号で示される位置)に格納されている重要語)が全て得られることを意味する。
また請求項6に記載されるように前記第一知識抽出手段、前記第二知識抽出手段及び前記第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語の出現頻度に基づいて当該重要語の重要度を求める重要度演算手段を備えるようにしてもよい。
ここで「重要度」とは出現頻度に基づくものであればよく、通常は出現頻度が多いものほど重要度が高く、出現頻度が少ないものほど重要度が低いものととらえて差し支えないが、これに限定されるものではない。すなわち、ここでいう「重要度」は出現頻度が高くても不要なものは除去し、出現頻度が少なくても重要なものは当然包含する意味である。本発明の場合、第一知識抽出手段、第二知識抽出手段及び第三知識抽出手段から選ばれる少なくとも一つの手段により不要なものが除去されていることで具体的な構成が示されているものといえる。また「重要度」とは換言すれば、DBにおいて重要語がどれだけ特徴的であるかを示す尺度ともいえる。
上記構成を備えたDB知識抽出システムによれば、文字列クラス群生成手段は、知識抽出対象DBに含まれるサフィックスを取り出してサフィックス群を生成し、当該サフィックス群を構成する各サフィックスどうしを比較し、その比較結果に基づいて文字列クラスを切り出し文字列クラス群を生成する。文字列クラス選択手段は前記文字列クラス群を構成する各文字列クラスの出現頻度に基づいて文字列クラスを選択する。第一知識抽出手段は前記各文字列クラスが当該各文字列クラス以外の他の文字列クラスと包含関係にあるかどうかに基づいて重要語を抽出し、第二知識抽出手段は包含関係にある下位文字列クラスの出現頻度と上位文字列クラスの出現頻度とに基づいて当該下位文字列クラスを重要語として抽出し、第三知識抽出手段は前記下位文字列クラスを前記上位文字列クラスと見なして重要語として抽出する。第一又は第二インデックス生成手段は、第一知識抽出手段、第二知識抽出手段及び第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語と、当該重要語が前記知識抽出対象DBのどこに格納されているかを示す位置情報とを含むインデックスを前記重要語又は前記位置情報をキーとして生成する。更に抽出された重要語は重要度演算手段によりその重要度が付与される。そのため形態素解析用知識辞書ではなく、特化された目的で使用するための重要語辞書を知識抽出対象となる既存DBから作成することが可能となる。特化された分野で利用価値の高い重要語辞書の作成が可能となる。
また、既存DBに格納された自然言語で記述されたデータは、その性質上、対象とする一文、一文書の単位が比較的短いため生成されるサフィックス数は膨大にならない。本発明に係るDB知識抽出システムでは文数そのものは線形で増加するため全体としての計算量は新聞記事を対象として知識を抽出する場合に比較して遙かに低く抑えることが可能となる。
また、既存DBに格納された自然言語で記述されたデータは、その性質上、対象とする一文、一文書の単位が比較的短いため生成されるサフィックス数は膨大にならない。本発明に係るDB知識抽出システムでは文数そのものは線形で増加するため全体としての計算量は新聞記事を対象として知識を抽出する場合に比較して遙かに低く抑えることが可能となる。
上記課題を解決するために請求項7に記載のDB知識検索システムは、請求項1に記載の第一知識抽出手段、請求項2に記載の第二知識抽出手段及び請求項3に記載の第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語から構成される重要語辞書と、検索質問文に含まれるサフィックスを取り出してサフィックス群を生成し、当該サフィックス群を構成する各サフィックスと前記重要語とを比較して、その比較結果に基づいて検索キーを切りだし検索キー群を生成する検索キー群生成手段とを備えたことを要旨とするものである。
ここで「検索質問文」とはユーザにより入力されたテキストのことをいい、単語、完全文、不完全文でも何でもよい。
この場合に請求項8に記載されるように、(1)前記検索キー群を要素とし、請求項6に記載の重要度演算手段により求められた重要度をその値とする検索キー群ベクトルと、(2)請求項1に記載の第一知識抽出手段、請求項2に記載の第二知識抽出手段及び請求項3に記載の第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語を要素とし、前記重要度演算手段により求められた重要度をその値とする索引ベクトルとに基づいて類似度を求める類似度演算手段を備えるようにしてもよい。
また請求項9に記載されるように、前記類似度に基づいて検索順序に優先順位を付与するランキング手段を備えるようにしてもよく、請求項10に記載されるように前記ランキング手段は出現頻度に基づいて優先順位を決定するものであってもよい。
上記構成を備えた知識検索システムによれば、第一知識抽出手段、第二知識抽出手段及び第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語から構成される。検索キー群生成手段は検索質問文に含まれるサフィックスを取り出してサフィックス群を生成し、当該サフィックス群を構成する各サフィックスと前記重要語とを比較して、その比較結果に基づいて検索キーを切りだし検索キー群を生成する。また類似度演算手段は検索キー群ベクトルと、索引ベクトルとに基づいて類似度を求め、ランキング手段は当該類似度に基づいて検索順序に優先順位を付与する。従って形態素解析用知識辞書を用いたときのような負荷をシステムにかけることなく、知識抽出対象DBに蓄積された知識を有効活用できる利便性の高いDB知識検索システムとなる。
以上説明したように、本発明に係るDB知識抽出システム及びそのプログラムは、文字列クラス群生成手段により生成された各文字列クラスの出現頻度に基づいて文字列クラス選択手段により文字列クラスが選択され、第一知識抽出手段により前記各文字列クラスが当該各文字列クラス以外の他の文字列クラスと包含関係にあるかどうかに基づいて重要語が抽出されるものであるから、形態素解析用知識辞書ではなく、特化された目的で使用するための重要語辞書を知識抽出対象となる既存DBから作成することができ、分野が限定される程、高い精度が期待できるという効果がある。
以上説明したように、本発明に係るDB知識検索システム及びそのプログラムは、検索キー群生成手段により検索質問文に含まれるサフィックスを取り出すことによりサフィックス群が生成され、当該サフィックス群を構成する各サフィックスと第一知識抽出手段により抽出された重要語とを比較して、その比較結果に基づいて検索キーを切りだして検索キー群が生成されるものであるから、形態素解析用知識辞書を用いたときのような負荷をシステムにかけることなく、知識抽出対象DBに蓄積された知識を有効活用でき利便性を高めることができるという効果がある。
以下に本発明の第一の実施の形態について図面を参照して説明する。
[一実施形態の概要]
本発明の一実施形態に係るDB知識利用システムAは、DB再利用モジュールBを構成するDB知識抽出モジュールC及びDB知識検索モジュールDにおける情報処理がサフィックスアレイを用いた新規な手法によって実現されている点に特徴がある。
[一実施形態の概要]
本発明の一実施形態に係るDB知識利用システムAは、DB再利用モジュールBを構成するDB知識抽出モジュールC及びDB知識検索モジュールDにおける情報処理がサフィックスアレイを用いた新規な手法によって実現されている点に特徴がある。
DB再利用モジュールBはコンピュータに実装すればよいが、DB再利用モジュールBを構成する全ての要素を一台のコンピュータに実装してもよいし、各要素に分けて別個のコンピュータに実装してもよいし、更には各要素を更に細分化して別個のコンピュータに実装してもよい。別個に実装する場合には各コンピュータが双方向通信可能に接続されていればよい。DB再利用モジュールBとして機能させるために必要なプログラムは、各種の記録媒体(例えば、CD−ROM、CD−R、CD−RW、DVD−R)からインストールされたものやネットワークを通じて配信されたものを利用することができる。
[DB知識利用システムA]
図1Aは本発明の一実施形態に係るDB知識利用システムAの構成を示したもの、図1BはDB再利用モジュールBの構成を示したものである。また図2AはリレーショナルDB1(以下「RDB1」とする)に格納されている知識の一例としてデータテーブルT10を示したもの、図2B〜図2Dはそれぞれ、重要語辞書DB8、インデックスDB10、重要度DB11に格納されるデータテーブルT20〜T40の一例又はその構造の一例を示したものである。
図1Aは本発明の一実施形態に係るDB知識利用システムAの構成を示したもの、図1BはDB再利用モジュールBの構成を示したものである。また図2AはリレーショナルDB1(以下「RDB1」とする)に格納されている知識の一例としてデータテーブルT10を示したもの、図2B〜図2Dはそれぞれ、重要語辞書DB8、インデックスDB10、重要度DB11に格納されるデータテーブルT20〜T40の一例又はその構造の一例を示したものである。
これらの図においてDB知識利用システムAは、工場やオフィスにおけるトラブル解決支援、情報収集、情報分析、意思決定など種々の場面で利用できる適用範囲の広いシステムであり、DB再利用モジュールB、RDB1、入出力装置2、HDD装置3、媒体記録装置4等からなる。DB再利用モジュールBはRDB1に格納された特定データDTを読み出し、処理し、重要語抽出や知識再構成を行うものである。
HDD装置3はデータを記憶するものであり、DB再利用モジュールBが実装されているコンピュータと同一コンピュータに搭載されたものでもよいし、別途設けられたディスク装置でもよい。媒体記録装置4は、CD−ROM、CD−R、CD−RW、DVD−RWなどの記録媒体5を装着して使用され、これらの記録媒体5からプログラムを読み込んでインストールしたり、その逆に種々のデータを記憶させるために用いられるものである。
RDB1は既存のリレーショナルデータベースであり、工場やオフィスでの業務に関する自然言語記述データが格納されたものであれば何でもよい。すなわち、RDB1には例えば図2Aに示したように、各行がセル番号(換言すればデータ番号)、日付、トラブル事象、故障原因、処置、対策という列からなるデータテーブルT10が格納されている。各列のデータサイズは特に限定されないが、数文字から数百文字程度が望ましい。入出力装置2はデータ入力に用いるキーボード・マウス等の入力手段2aや、検索結果や入力情報を表示するモニタ2bからなる。また入出力装置2には図示を省略するが各種データを印刷するための印刷装置が接続されている。DB知識利用システムAがDB知識検索モジュールDとして機能するときのユーザ入力促進画面が対話型で表示されるようになっている。図3はその表示例である。
[DB再利用モジュールB]
DB再利用モジュールBは、DB知識抽出モジュールCと、DB知識検索モジュールDとを含む。DB知識抽出モジュールCにおいては、データテーブルT10の特定データDT(例えばトラブル事象の列)のデータ一群が読み出され、これに対して処理がなされ、DBの再構築、すなわち、重要語辞書DB8と、インデックスDB10と、重要度DB11の構築がなされる。DB再利用モジュールBの起動はDB再利用モジュールBが実装されている図示しないコンピュータから、工場やオフィスの非稼働時になされるようになっている。メモリの競合によるデータ不一致の問題を排除するためである。DB再利用モジュールBの起動は入出力装置2を介して特権ユーザの操作により起動されるようにしてもよい。
DB再利用モジュールBは、DB知識抽出モジュールCと、DB知識検索モジュールDとを含む。DB知識抽出モジュールCにおいては、データテーブルT10の特定データDT(例えばトラブル事象の列)のデータ一群が読み出され、これに対して処理がなされ、DBの再構築、すなわち、重要語辞書DB8と、インデックスDB10と、重要度DB11の構築がなされる。DB再利用モジュールBの起動はDB再利用モジュールBが実装されている図示しないコンピュータから、工場やオフィスの非稼働時になされるようになっている。メモリの競合によるデータ不一致の問題を排除するためである。DB再利用モジュールBの起動は入出力装置2を介して特権ユーザの操作により起動されるようにしてもよい。
[DB知識抽出モジュールC及び構築されるDB]
DB知識抽出モジュールCについて更に説明する。DB知識抽出モジュールCは、重要語抽出部7と、DB再構築部9とを含み、これらにより、重要語辞書DB8と、インデックスDB10と、重要度DB11とが構築される。
DB知識抽出モジュールCについて更に説明する。DB知識抽出モジュールCは、重要語抽出部7と、DB再構築部9とを含み、これらにより、重要語辞書DB8と、インデックスDB10と、重要度DB11とが構築される。
重要語抽出部7はデータテーブルT10から特定データDT(例えばトラブル事象の列)を取りだし、サフィックスアレイデータ構造、最長一致法(Longest Match Method)、LCPs法(Longest Common Prefixes)及びアダプテイション法に基づいて、文字列クラスCを切り出して重要語Wを抽出し重要語辞書DB8を構築するものである。
具体的には、重要語抽出部7はRDB1から特定データDTを読み出し、読み出した特定データDTを用いてサフィックスアレイSAを生成し、全ての文字列クラスCを切りだした後、重要語Wを抽出するように構成される。特定データDTは位置情報Lを単位として読み出される。従って例えばセル番号毎(すなわち一行毎)に読み出すように構成される。
読み出し方については、位置情報Lを単位として処理対象となる特定データDTを一度に全て読み込んでおきその後のサフィックスアレイSAの生成以降の処理に供するように構成しても良いし、位置情報Lを単位として読み込む度にサフィックスアレイSAの生成を行って文字列クラスCの切りだし以降の処理に供するように構成してもよい。特定データDTに数字が含まれる場合には、全ての数字を合わせた状態が一つの文字として読み出されるように構成してもよい。位置情報Lは直接アドレスでも間接アドレスでもよくあらゆる手法により表すことが可能である。
読み出し方については、位置情報Lを単位として処理対象となる特定データDTを一度に全て読み込んでおきその後のサフィックスアレイSAの生成以降の処理に供するように構成しても良いし、位置情報Lを単位として読み込む度にサフィックスアレイSAの生成を行って文字列クラスCの切りだし以降の処理に供するように構成してもよい。特定データDTに数字が含まれる場合には、全ての数字を合わせた状態が一つの文字として読み出されるように構成してもよい。位置情報Lは直接アドレスでも間接アドレスでもよくあらゆる手法により表すことが可能である。
読み出された特定データDTに基づいて位置情報Lに対応する一行の文字列(自然言語記述部)から構成し得る全ての部分文字列(サフィックス)が生成される。すなわち、一文字を一つのメンバとして(数字の場合には全ての数字を合わせた状態を一つのメンバとすることが望ましい)、文字を一文字づつずらしながら終端記号に達するまで続けることによって全ての部分文字列(サフィックス)を表現する配列構造が構築される。重要語抽出部7は最終的には全ての部分文字列(サフィックス)を統合し先頭文字をキーとして辞書順にソートしたサフィックスアレイSAを作成するように構成される。
文字列クラスCの切り出しのため重要語抽出部7は、サフィックスアレイSAを生成すると、先頭から順番にi番目のサフィックスsfと(i+1)番目のサフィックスsfとの比較を各サフィックスを構成する文字同士一文字ずつ順番に行い、一致部分があれば一致している部分のうち最大重複文字列を文字列クラスCとして切り出すように構成される。そして重要語抽出部7は、全てのサフィックスsfについてこの処理が終わると切り出した文字列クラスCをソートし、文字列クラスCの出現頻度Tiを数えて同一文字列クラスCを統合するように構成される。予め設定した出現頻度T1より少ない文字列クラスCは除外するように構成される。換言すれば、重要語抽出部7は、出現頻度T1以上の文字列クラスCを選択するように構成される。
重要語辞書DB8構築のため重要語抽出部7は、サフィックスアレイSAを利用してLCPs法によって切り出された文字列クラスC(図6G、図6Hに示したもの)から出現頻度差を利用したアダプティション手法と最長一致法とを用いて、さらに絞込みを行い重要語Wを抽出し、更に抽出された重要語Wを重要語辞書DB8に登録するように構成されている。出現頻度差を利用したアダプティション手法と最長一致法とを用いたのは文字列クラスCは包含関係が生じているが最大文字列クラス(最も長い文字列クラス)で代表してしまうと冗長になるためこれを避けるためである。
具体的には重要語抽出部7は、RAM領域から「処理対象となる文字列クラスC(i番目の文字列クラスC)」と「一つ前に処理対象とされた前回読み込んだ文字列クラスC((i−1)番目の文字列クラスC)」とを読み込み、これらの文字列クラスCを参照し比較するように構成され、更に二つの文字列クラスCが文字列上の包含関係にあれば、頻度比Gapの計算を行いこの結果に基づいて重要度Wを抽出するように構成される(図7参照)。ここでは包含関係にある文字列クラスCを上位文字列クラスC、下位文字列クラスCといい、例えば「ボー」と「ボード」では「ボード」が上位文字列クラスC、「ボー」が下位文字列クラスCということになる。尚、包含関係にない場合には両者を独立クラスの重要語Wとして抽出するように構成される。
重要語抽出部7は、例えば、この頻度比Gapに基づいて比較された文字列クラスCの一方を他方の文字列クラスCの部分文字列であると判定するように構成される。一例を挙げれば、重要語抽出部7は最長一致法によって文字列長の長い文字列クラスCを残し、他方の文字列クラスCを消去するように又はこの逆を行うように構成される。重要語抽出部7は頻度比Gapが閾値T2以上の場合は下位文字列クラスCが上位文字列クラスCとは独立した文字列であると認識するように構成され、例えば「ボー」と「ボード」とでは「ボー」をそのまま重要語辞書DB8へ登録するように構成される。重要語抽出部7は頻度比Gapが閾値T2より小さい場合は、下位文字列クラスCは上位文字列クラスCと見なして重要語Wとして抽出するように構成され、例えば「ボー」は「ボード」として抽出するように構成される。
重要語辞書DB8への登録のために重要語抽出部7は、重要語W及びその属性データ(通し番号、位置情報L、重要語W、頻度Ti、その他のデータ等)を処理、加工するように構成され、例えば図2Bに示した構造のデータテーブルT20を作成して重要語辞書DB8に格納するように構成される。位置情報Lとしては、RDB1上の位置を直接的又は間接的に表すものであれば何でも良く、セル番号とセル内の位置から決定される「固有の番号」や「通し番号」などを用いることができる。
次にDB再構築部9は、(1)重要語Wの位置情報Lを取り出して重要語WとともにインデックスDB10に格納し、(2)重要語Wの相互の重要度Wiを計算して重要語Wとともに重要度DB11に格納するように構成される。
インデックスDB10は、少なくとも重要語辞書DB8に格納された重要語WがRDB1内のどこに格納されているかを示す位置情報L(例えばRDB1上での「セル番号」、「セル番号」と「セル内の位置」、セル番号とセル内の位置から決定される「固有の番号」などのいずれか又は組合せ)と、重要語Wとが格納される。インデックスDB10には例えば図2Cに示した構造のデータテーブルT30a、T30bが格納され、データテーブルT30aを参照することにより重要語Wから位置情報L(「セル番号」、「セル内の位置」、「固有の番号」、「通番」など)を引くこともできるし、データテーブルT30bを参照することにより位置情報Lから重要語Wを引くこともできるように構成されている。
尚、インデックスDB10の構築は、重要語抽出部7により行うようにしてもよい。この場合も、重要語Wをキーにして重要語Wが格納されているRDB1上の全ての位置情報Lを得ることができるようにデータテーブルT30aを作成するように構成してもよいし、位置情報Lをキーにして当該位置に格納されている重要語Wを得ることができるようにデータテーブルT30bを作成するように構成してもよい。
重要度DB11は、重要語辞書DB8に格納された重要語Wが相互にどの程度関連が強いかを示す重要度Wiと重要語Wとが格納されるところである。重要度DB11には、例えば図2Dに示したデータテーブルT40a、T40bが格納され、データテーブルT40aを参照することにより位置情報Lで示される位置に含まれる全ての重要語Wの重要度Wiを全て引くこともできるし、データテーブルT40bを参照することにより重要語Wから重要度Wiを引くこともできるように構成されている。
ここで共起頻度Ciは異なり語数を意味するものである。再構築部9は、例えばデータテーブルT30aを参照して、ある重要語Wが出現する位置情報Lを得た後、データテーブルT30bを参照することにより、これらの位置情報Lで示される位置に存在する異なり語数、すなわち「他の重要語Wの種類の総数」を数えることにより共起頻度Ciを求めるように構成される。この場合、再構築部9は、共起するパターンが何度出てきてもそれは1通りとしてカウントするように構成してもよいし、共起するパターンに関係なく累算するように構成することもできる。
補正項α、βとしては定数が設定される。重要度Wiの計算は、相互情報量、dice co-efficient, tf*idf値などの計算法により行うこともできる。出現頻度Tiは、データテーブルT30aの位置情報Lの個数を計算することにより求めることができる。又は再構成部9を介して重要語辞書DB8を引くことにより求めることもできる。
補正項α、βとしては定数が設定される。重要度Wiの計算は、相互情報量、dice co-efficient, tf*idf値などの計算法により行うこともできる。出現頻度Tiは、データテーブルT30aの位置情報Lの個数を計算することにより求めることができる。又は再構成部9を介して重要語辞書DB8を引くことにより求めることもできる。
[DB知識検索モジュールD]
DB知識検索モジュールDは、入力部12と、参照部13と、出力部14とからなる。これらは、インデックスDB10と、重要度DB11を直接参照することにより、入出力装置2を介して入力される一般ユーザからの情報要求に応じ、RDB1から必要なデータを取り出して当該一般ユーザに情報を提供すべく他のデータと共にモニタ2bに表示するものである。インデックスDB10と、重要度DB11は重要語辞書DB8に格納された重要語Wに基づいて構築されたDBであり、インデックスDB10と、重要度DB11とを直接参照するということは、結局、重要度辞書DB8を間接的に参照していることになる。
DB知識検索モジュールDは、入力部12と、参照部13と、出力部14とからなる。これらは、インデックスDB10と、重要度DB11を直接参照することにより、入出力装置2を介して入力される一般ユーザからの情報要求に応じ、RDB1から必要なデータを取り出して当該一般ユーザに情報を提供すべく他のデータと共にモニタ2bに表示するものである。インデックスDB10と、重要度DB11は重要語辞書DB8に格納された重要語Wに基づいて構築されたDBであり、インデックスDB10と、重要度DB11とを直接参照するということは、結局、重要度辞書DB8を間接的に参照していることになる。
入力部12は一般ユーザからの情報要求としての検索質問文qを受け付け解析するものであり、検索質問文qに含まれるサフィックスsfを取り出してサフィックス群sfgを生成し、サフィックス群sfgを構成する各サフィックスと重要語Wとを比較して、その比較結果に基づいて検索キーSを切りだし検索キー群SGを生成する。
参照部13はインデックスDB10と重要語DB11とを参照して一般ユーザの検索質問文qに対応した回答をRDB1のどこからどのような順序で取り出したらよいかを決定するものである。まずRDB1のどこから取り出すかについてであるが、参照部13はデータテーブルT30aを参照して切り出された検索キーSと一致する重要語Wがあるか否かを判断して、一致する重要語Wが見つかったときは位置情報Lを参照して取り出すべき回答がRDB1のどこに格納されているかを認識するように構成される。そして参照部13は、データテーブルT40aを参照して位置情報Lで示される位置に含まれる全ての重要語Wの重要度Wiを参照して、重要語Wを要素としてその重要度Wiをその値とする索引ベクトルViを作成するように構成される(図2C、図2D、図9D参照)。また参照部13はデータテーブルT40bを参照して検索質問文qから切り出された重要語Wと一致する検索キーSの重要度Wiを参照して、重要語Wを要素としてその重要度Wiをその値とする検索キー群ベクトルVsを作成するように構成される(図2C、図2D、図9D参照)。
次に重要語Wを取り出す順序についてであるが、その順序は類似度simを計算することにより決定される。類似度simは、参照部13により数3の計算式により求められる。
出力部14は、参照部13において求めた位置情報L及びその優先順位に基づいてRDB1内の回答が格納された位置から必要なデータを取り出すとともに取り出した知識データを入出力装置2のモニタ2bに表示するように構成される。
[その他]
尚、図1Bに示した重要語抽出部7、再構築部9、入力部12、参照部13及び出力部14は、これらを同一のコンピュータに実装することもできるし、ネットワークを介して相互にデータのやりとりができる限り別々のコンピュータに実装することもできる。図4はそのコンピュータのブロック構成の一例を示したものである。
尚、図1Bに示した重要語抽出部7、再構築部9、入力部12、参照部13及び出力部14は、これらを同一のコンピュータに実装することもできるし、ネットワークを介して相互にデータのやりとりができる限り別々のコンピュータに実装することもできる。図4はそのコンピュータのブロック構成の一例を示したものである。
図4に示したように、そのようなコンピュータは、プログラムを読み出して当該プログラムの命令を装置各部に送出して制御する中央制御装置(CPU)15、当該コンピュータ及び各種デバイスを制御するためのプログラムであってメインメモリに読み込まれるプログラムを記憶させたリードオンリメモリ(ROM)16、当該コンピュータを「DB知識抽出モジュールC及び/又はDB知識検索モジュールDとして機能させるためのプログラム(以下単に「DB知識抽出/検索プログラムという」)や図2A〜図2D、後述する図6A〜図6Hに示した各種データ、その他演算データを記憶させるのに用いられるランダムアクセスメモリ(RAM)17、データ入力に用いるキーボード・マウス等の入力装置18、実行結果や入力情報を表示するモニタ19からなるものであればよい。またコンピュータには各種データや手続書類を印刷するための印刷装置その他の周辺機器20が接続される。
尚、RDB再利用システムAにおいてCPU15は、RAM17から「DB知識抽出/検索プログラム」を読み出して当該コンピュータ及び各種デバイスに制御指令を送出し、特権ユーザの入力指示に従って、DB知識利用システムAを構成する重要語辞書DB8、インデックスDB10及び重要度DB11の構築を行ったり、一般ユーザの入力指示に従って、検索を行う。構築された重要語辞書DB8、インデックスDB10及び重要度DB11は、同一コンピュータ内のRAM17に格納することもできるし、媒体記録装置4やHDD装置3、他のコンピュータに格納することもできる。
また重要語辞書DB8、インデックスDB10及び重要度DB11は、HDD装置3や媒体記憶装置4を介して記録媒体5に保存され利用することができる。利用形態に応じて、フレキシブルディスク、CD−R、CD−RW、DVD−Rなどに保存することができる。
以下に図面を参照して上記構成を備えたDB知識利用システムAにおける情報処理について説明する。
[重要語辞書DB8の構築処理]
図5AはDB知識抽出の全体概略フローチャートであり、重要語辞書DB8の構築は(1)サフィックスアレイSAの結合及びソート(S100)、(2)文字列クラスの切出し(S200)、(3)重要語Wの抽出と重要語辞書DB8への登録(S300)という手順からなる。既に述べたが「サフィックスアレイ」とは、テキストをそのテキスト中に存在する全ての文字からテキストの終端までの部分文字列(サフィックス;接尾辞)の集合(n−gram集合)であると考え、その集合を辞書順に並べたデータ構造をいう。また「サフィックス」とはテキスト中に存在する全ての文字からテキストの終端までのテキストをいう。
図5AはDB知識抽出の全体概略フローチャートであり、重要語辞書DB8の構築は(1)サフィックスアレイSAの結合及びソート(S100)、(2)文字列クラスの切出し(S200)、(3)重要語Wの抽出と重要語辞書DB8への登録(S300)という手順からなる。既に述べたが「サフィックスアレイ」とは、テキストをそのテキスト中に存在する全ての文字からテキストの終端までの部分文字列(サフィックス;接尾辞)の集合(n−gram集合)であると考え、その集合を辞書順に並べたデータ構造をいう。また「サフィックス」とはテキスト中に存在する全ての文字からテキストの終端までのテキストをいう。
[S100における詳細処理]
次に図5Bを参照してS100のサフィックスアレイSAの統合及びソートの処理について説明する。同図に示したように、S101においてはRDB1からデータテーブルT10の位置情報Lとしての「セル番号」と特定データDTとしての「トラブル事象」とが配列順に一度に読み出され、図6Aに示したデータテーブルT21としてRAM領域に格納される(S101)。
次に図5Bを参照してS100のサフィックスアレイSAの統合及びソートの処理について説明する。同図に示したように、S101においてはRDB1からデータテーブルT10の位置情報Lとしての「セル番号」と特定データDTとしての「トラブル事象」とが配列順に一度に読み出され、図6Aに示したデータテーブルT21としてRAM領域に格納される(S101)。
次にS102においては図6Bに示したように、読み出された特定データDT(「トラブル事象」)を構成するテキストをそのテキスト中に存在する全ての文字からテキストの終端までの部分文字列(サフィックス:接頭辞)の集合(n−gram集合)であると考え、その集合を辞書順に並べたサフィックスsfが、位置情報L(例えば「セル番号」)毎にデータテーブルT22としてRAM領域に生成される。S102においては更に図6Cに示したように、生成されたサフィックスsf(部分文字列)全てに対して当該サフィックスsf(部分文字列)における先頭文字列を基準とした「セル内の位置」(ここではidx[]で表現されている)を表す情報と、「通し番号」(又は「通番」という)とが付与されデータテーブルT23としてRAM領域に格納される。
S103においては図6Dに示したように、位置情報Lのうち「セル番号」が同じ特定データDT毎に、各サフィックスsfが辞書順にソートされるとともに、各サフィックスsfに固有の番号(sfx[])が付与され初期化され、データテーブルT24としてRAM領域に格納される。ここで「固有の番号」とはRDB1内での位置を示すデータであり、データテーブルT23で「セル番号」と「セル内の位置」とにより決定される情報と同じ意味を有するデータである。直接アドレスでも間接アドレスでもあらゆる手法によるアドレス指定が可能である。
S104においては図6Eに示したように、位置情報Lごとではなく全てのサフィックスsfが統合され全体がソートされたサフィックスアレイSAが得られ、データテーブルT25としてRAM領域に格納される。
[S200における詳細処理]
次に図5Cを参照してS200の文字列クラス切出処理について説明する。S201においてはカウンタiと、サフィックス総数jとに所定の値が設定される。カウンタiには初期値として0が設定され、サフィックス総数jにはS104で「ソート及び統合」された全サフィックス数が設定される(図6Eから図6Fの例では62が設定される)。次にS202においては「i番目のサフィックス」と「(i−1)番目のサフィックス」とが比較され一致部分があるかどうか判断される。
次に図5Cを参照してS200の文字列クラス切出処理について説明する。S201においてはカウンタiと、サフィックス総数jとに所定の値が設定される。カウンタiには初期値として0が設定され、サフィックス総数jにはS104で「ソート及び統合」された全サフィックス数が設定される(図6Eから図6Fの例では62が設定される)。次にS202においては「i番目のサフィックス」と「(i−1)番目のサフィックス」とが比較され一致部分があるかどうか判断される。
一致部分があると判断されると(S202:YES)、S203へ進み一致部分が文字列クラスCとして切り出され、切り出された文字列クラスCは図6Fに示したデータテーブルT26としてRAM領域に格納される。図6Fに示したように「固有の番号」と「通し番号」は位置情報Lとしてそのまま引き継がれている。ここでは一文字でも同じ文字列があれば文字列クラスCとして切り出される。結果的に少なくとも2回出現する文字列クラスCは切り出されることになる。
そしてS203の処理がなされた後又はS202において一致部分がないと判断されたときは、S204及びS205を介してS202に戻り、次の「(i+1)番目のサフィックス」についての処理がなされる。
図6Eから図6Fの例ではS204において「カウンタi←62」となるまでS202からS205の処理が繰り返し行われる。図6Eに示したデータテーブルT25のサフィックスについて左上から順番に通番13→通番26→通番53→、…、→通番54→通番03、…、→通番42というように最後まで処理に供されたサフィックスは処理結果に応じて文字列クラスCとして切り出され図6Fに示したデータテーブルT26として格納される(S203)。図6Fには図6Eに示したサフィックスを切り出した結果を例示している。
図6Eから図6Fの例ではS204において「カウンタi←62」となるまでS202からS205の処理が繰り返し行われる。図6Eに示したデータテーブルT25のサフィックスについて左上から順番に通番13→通番26→通番53→、…、→通番54→通番03、…、→通番42というように最後まで処理に供されたサフィックスは処理結果に応じて文字列クラスCとして切り出され図6Fに示したデータテーブルT26として格納される(S203)。図6Fには図6Eに示したサフィックスを切り出した結果を例示している。
S206においては図6Gに示したように切り出された文字列クラスCの出現頻度Tiが計算され、データテーブルT27が作成されRAM領域に格納される。図においては出現頻度Tiの例は、必要限度にとどめている。そしてS207においては図6Hに示したように辞書順にソートされるが、先頭文字が同一のものについては上位文字列クラスが先に下位文字列クラスが後の配列となるようにソートされてRAM領域に格納される。また同一文字列クラスC(図6G参照)は統合されてRAM領域に格納される。このとき図6Hに示したように文字列クラスCが格納されている位置情報L(例えば「固有の番号」)も付加される。なお包含関係については既に説明したがここでもう一度言及しておくと、「ボー」と「ボード」との関係をいうものであり、この場合「ボー」が下位文字列クラス、「ボード」が上位文字列クラスとなる関係をいう。
S208においては文字列クラスCの出現頻度Tiが所定の閾値T1より小さいか否かが判断され、所定の閾値T1より出現頻度Tiが小さいときにはその文字列クラスCは除外され、残りの文字列クラスCが選択される。この除外は例えば図6Hに示したデータテーブルT27に除外するかしないかを示すフラグを立てることによりなされる。例えば、「T1=5」としたときは、C34の文字列クラス「熱暴走」が除外対象となり、「除外」の列にフラグ「1」が立てられる。
これに代えて、フラグを立てずに、除外する文字列クラスCを除いてデータテーブルT27と同様のテーブルを作成しなおしてもよい。このように出現頻度Tiが少ない文字列クラスを除外するのは、このような文字列クラスは無意味な場合が多いことが統計的に判明していることに基づく。ここで閾値T1の決め方であるが、例えば定数とすることもできるし、出現頻度Tiの全文字列クラス数Cの出現頻度の総数に対する割合とすることもできる。
[S300における詳細処理]
次に図5Dを参照して重要語抽出処理について説明する。
S301においては、カウンタiが0に設定され、文字列クラスC総数jが設定される。図6Hの例では除外された文字列クラスCが除外されて総数jとして設定されるため、例えば「36−X(X:除外された文字列クラス総数)」が設定される。
次に図5Dを参照して重要語抽出処理について説明する。
S301においては、カウンタiが0に設定され、文字列クラスC総数jが設定される。図6Hの例では除外された文字列クラスCが除外されて総数jとして設定されるため、例えば「36−X(X:除外された文字列クラス総数)」が設定される。
S302においては、「処理対象となる文字列クラスC(i番目の文字列クラスC)」が「一つ前に処理対象とされた前回読み込んだ文字列クラスC((i−1)番目の文字列クラスC)」と包含関係にあるか否かが判断される。さて包含関係にないと判断されると(S302:NO)、S305においてi番目の文字列クラスCは独立クラスとして重要語辞書DB8に登録される。重要語辞書DB8に登録されるときのデータ構造は例えばデータテーブルT20に示したものが用いられる。
一方、包含関係にあると判断されると(S302:YES)、S303において包含関係にある文字列クラスどうしで頻度比Gapが所定の閾値T2より小さいか否かが判断される。数1に基づいて演算を行った結果、閾値T2より小さいと判断されると(S303:YES)、最長一致法に基づき上位文字列クラスCに下位文字列クラスCが圧縮され(S304)、下位文字列クラスCは上位文字列クラスCと見なして重要語辞書DB8へ登録される(S305)。
そしてS305の処理がなされた後は、S306及びS307を介してS302に戻り、次の「(i+1)番目の文字列クラス」についての処理がなされる。
図6Hの例ではS206において「カウンタi←(36−X)(X:除外された文字列クラス総数)」となるまでS302からS307の処理が繰り返し行われる。
図6Hの例ではS206において「カウンタi←(36−X)(X:除外された文字列クラス総数)」となるまでS302からS307の処理が繰り返し行われる。
図5Dの処理について図7を参照して更に説明する。図7はデータテーブルT28からどのように重要語Wが抽出されるのかを概念的に示したものである。まず閾値T1を「T1=5」とし、閾値T2を「T2=2.0」とする。
例えば文字列クラスC1とC2とを比較すると、これらは包含関係にあるため数1により計算するとGap(C1,C2)=|log8/8|=0<閾値T2となるため、文字列クラスC2は文字列クラスC1に圧縮されて、文字列クラスC1と見なして重要語辞書DB8へ登録される。「13ランバス」は「13ランバス加熱」として登録される。
また例えば文字列クラスC2とC3とを比較すると、これらは包含関係にないため文字列クラスC3はそのまま独立クラスと見なして重要語辞書DB8へ登録される。
また例えば文字列クラスC20とC21とを比較すると、これらは包含関係にあるため数1により計算するとGap(C20,C21)=|log8/1000|=2.096>閾値T2となるため、文字列クラスC21は文字列クラスC1に圧縮されることなくそのまま独立クラスとして重要語辞書DB8へ登録される。
例えば文字列クラスC1とC2とを比較すると、これらは包含関係にあるため数1により計算するとGap(C1,C2)=|log8/8|=0<閾値T2となるため、文字列クラスC2は文字列クラスC1に圧縮されて、文字列クラスC1と見なして重要語辞書DB8へ登録される。「13ランバス」は「13ランバス加熱」として登録される。
また例えば文字列クラスC2とC3とを比較すると、これらは包含関係にないため文字列クラスC3はそのまま独立クラスと見なして重要語辞書DB8へ登録される。
また例えば文字列クラスC20とC21とを比較すると、これらは包含関係にあるため数1により計算するとGap(C20,C21)=|log8/1000|=2.096>閾値T2となるため、文字列クラスC21は文字列クラスC1に圧縮されることなくそのまま独立クラスとして重要語辞書DB8へ登録される。
[重要語辞書DBの再構成]
再構築部9においては知識関連付けとして、図8Aに示したようにインデックスDB10の構築(S400)と、重要度DB11の構築(S500)とが行われる。
再構築部9においては知識関連付けとして、図8Aに示したようにインデックスDB10の構築(S400)と、重要度DB11の構築(S500)とが行われる。
[S400における詳細処理]
再構築部9におけるインデックスDB10の構築について図8Bを参照して説明する。
S401においては図5Aから図5Dのフローチャートの処理によって抽出された重要語Wと位置情報Lとが図7に示したデータテーブルT29から取り出される。そしてデータテーブルT30a、T30bが例えばハッシュ構造で作成され、インデックスDB10として格納される(図2D参照)。
再構築部9におけるインデックスDB10の構築について図8Bを参照して説明する。
S401においては図5Aから図5Dのフローチャートの処理によって抽出された重要語Wと位置情報Lとが図7に示したデータテーブルT29から取り出される。そしてデータテーブルT30a、T30bが例えばハッシュ構造で作成され、インデックスDB10として格納される(図2D参照)。
[S500における詳細処理]
次に再構築部9における重要度DB11の構築について図8Cを参照して説明する。
まずS501においてカウンタiに初期値0が設定されるとともに、全データ数jに重要語Wの総数が設定される。次にS502とS503においてそれぞれ共起頻度Ciと出現頻度Tiとが求められる。共起頻度CiはデータテーブルT30aを参照して、ある重要語Wが出現する位置情報L(例えば「固有の番号」や「セル番号」)を得た後、データテーブルT30bを参照することにより、これらの位置情報L(例えば「固有の番号」や「セル番号」)で示される位置に含まれる他の重要語Wの種類の総数を数えることにより求められる。従って、共起するパターンが何度出てきてもそれは1通りとしてカウントされる。出現頻度TiはデータテーブルT30aの重要語Wごとの位置情報Lがいくつあるかに基づいてカウントすることにより求めることができる。
次に再構築部9における重要度DB11の構築について図8Cを参照して説明する。
まずS501においてカウンタiに初期値0が設定されるとともに、全データ数jに重要語Wの総数が設定される。次にS502とS503においてそれぞれ共起頻度Ciと出現頻度Tiとが求められる。共起頻度CiはデータテーブルT30aを参照して、ある重要語Wが出現する位置情報L(例えば「固有の番号」や「セル番号」)を得た後、データテーブルT30bを参照することにより、これらの位置情報L(例えば「固有の番号」や「セル番号」)で示される位置に含まれる他の重要語Wの種類の総数を数えることにより求められる。従って、共起するパターンが何度出てきてもそれは1通りとしてカウントされる。出現頻度TiはデータテーブルT30aの重要語Wごとの位置情報Lがいくつあるかに基づいてカウントすることにより求めることができる。
S504においては重要度Wiが数2に基づいて計算され、S505においては重要語Wと重要度Wiとが図2Dに示したデータテーブルT40a、T40bに格納される。S502からS506までの処理が重要語Wの総数分行われる。
以上のようにして構築されたインデックスDB10と重要度DB11は、例えば一般ユーザによる検索に用いられる。
以上のようにして構築されたインデックスDB10と重要度DB11は、例えば一般ユーザによる検索に用いられる。
[検索モジュールCを用いた検索]
一般ユーザがコンピュータ2から知識検索プログラムを起動させると、図9Aに示したように検索質問文qの入力処理(S600)、参照及び演算処理(S700)、検索結果の出力処理(S800)がなされる。
一般ユーザがコンピュータ2から知識検索プログラムを起動させると、図9Aに示したように検索質問文qの入力処理(S600)、参照及び演算処理(S700)、検索結果の出力処理(S800)がなされる。
[S600における詳細処理]
S600の処理では例えば図3に示した画面が表示され、図9Bに示したように一般ユーザによりこの画面表示に従って例えば「CL13フリーズ」という「トラブル事象」のデータが入力される(S601)。次いでS602においては、この検索質問文qがテキストとみなされデータ中の文字から構成される部分文字列(サフィックス)が生成される。そしてS603においてはテキストの先頭文字の文字コード順に各サフィックスがソートされる。
S600の処理では例えば図3に示した画面が表示され、図9Bに示したように一般ユーザによりこの画面表示に従って例えば「CL13フリーズ」という「トラブル事象」のデータが入力される(S601)。次いでS602においては、この検索質問文qがテキストとみなされデータ中の文字から構成される部分文字列(サフィックス)が生成される。そしてS603においてはテキストの先頭文字の文字コード順に各サフィックスがソートされる。
[S700における詳細処理]
S700の処理では、S603でソートされたサフィックスとインデックスDB10中の重要語Wとが照合される(S701)。そしてS702においては照合した結果、一致した重要語Wの位置情報L(例えば「固有の番号」や「セル番号」)が参照されるが、このとき重要語Wが複数含まれている場合には、そのうちの重要語Wが一つでも一致したときには位置情報Lが参照される。例えば検索質問文q={CL13フリーズ}である場合には、重要語Wとして「CL13」と「フリーズ」が取り出され、「CL13」と「フリーズ」のうち一つでも含まれている位置情報Lが参照される。位置情報Lは、類似度simを求めるのに用いられる。
S700の処理では、S603でソートされたサフィックスとインデックスDB10中の重要語Wとが照合される(S701)。そしてS702においては照合した結果、一致した重要語Wの位置情報L(例えば「固有の番号」や「セル番号」)が参照されるが、このとき重要語Wが複数含まれている場合には、そのうちの重要語Wが一つでも一致したときには位置情報Lが参照される。例えば検索質問文q={CL13フリーズ}である場合には、重要語Wとして「CL13」と「フリーズ」が取り出され、「CL13」と「フリーズ」のうち一つでも含まれている位置情報Lが参照される。位置情報Lは、類似度simを求めるのに用いられる。
次にS703においては「参照した位置情報Lで示される位置に含まれる全ての重要語W」について重要度DB11が参照され、その「参照した位置情報Lで示される位置に含まれる全ての重要語W」を要素とし、数2により求められた重要度Wiをその値とする索引ベクトルViが作成される。その例を図9D(2)に示す。この例の場合にはデータテーブルT40aから要素となる重要語Wの重要度Wiが参照され、S704においては索引ベクトルVi1={10,10,50}、索引ベクトルVi2={10,100,50}が作成される。
また検索質問文qについては、S701の処理で一致した重要語Wを要素としその重要度Wiをその値とする検索キー群ベクトルVsが作成される。その例を図9D(1)に示す。この例の場合にはS703においてデータテーブルT40bから要素となる重要語Wの重要度Wiが参照され、S705においては検索キー群ベクトルVs={10,50}が作成される。
S706においては余弦尺度を用いて検索質問文qと重要語Wとの類似度simが数3に基づいて判断される。この類似度simの値が大きい方が優先順位が高く低い方が優先順位が低く設定される。上記の例の場合には次の数4のような式となる。
S707においては、類似度simが同じ値になったものがあるかないかが判断され、同じ値になったものがあると判断された場合には(S707:YES)、出現頻度Ti又は文字列クラスの一致度(%)によって優先順位が決定される。上記の例では索引ベクトルVi2に係る特定データDTの方が優先順位が高いと判断され、S708を飛ばしてS709に進み、類似度simを必要な位置情報Lとしてのセル番号全てについて求め終わると、類似度simの順に位置情報LがRAM領域に記憶される。
[S800における詳細処理]
S709において記憶された優先順位に従ってRDB1から表示対象となる位置情報Lに係る行のデータが順次読み出される(S801)。優先順位に基づいてRDB1から読み出されたデータが図3のように表示される(S802)。
S709において記憶された優先順位に従ってRDB1から表示対象となる位置情報Lに係る行のデータが順次読み出される(S801)。優先順位に基づいてRDB1から読み出されたデータが図3のように表示される(S802)。
以下に本発明の第二の実施の形態を図面を参照して説明する。
[逆引き検索機能]
図10は本発明の第二の実施の形態に係るDB再利用モジュールBのブロック構成を示したものである。DB再利用モジュールBは、重要語辞書DB8a〜8c、インデックスDB10a〜10c、重要語DB11a〜11cと各DBを複数備えたものである。各DBは、各々、データテーブルT10の特定データDTである「トラブル事象」、「故障原因」、「処置」、「対策」のいずれかに対応させることができる。「故障原因」、「処置」及び「対策」についての各DBの構築は、第一の実施の形態と同様に行うことができる。その詳細な説明は省略する。
[逆引き検索機能]
図10は本発明の第二の実施の形態に係るDB再利用モジュールBのブロック構成を示したものである。DB再利用モジュールBは、重要語辞書DB8a〜8c、インデックスDB10a〜10c、重要語DB11a〜11cと各DBを複数備えたものである。各DBは、各々、データテーブルT10の特定データDTである「トラブル事象」、「故障原因」、「処置」、「対策」のいずれかに対応させることができる。「故障原因」、「処置」及び「対策」についての各DBの構築は、第一の実施の形態と同様に行うことができる。その詳細な説明は省略する。
DBをRDB1の特定データDTの種類に併せて構築する場合に特徴的な利点として、逆引き検索機能が挙げられるのでそれについて説明する。
この場合、データ検索に際して検索キーSが含まれる列としてどの列を選択するのか、すなわち、「トラブル事象」、「故障原因」、「処置」、「対策」のいずれを選択するのかを画面上で指定できるように構成される(デフォルトは任意に設定することができ、例えば「トラブル事象」とすることができる)。
この場合、データ検索に際して検索キーSが含まれる列としてどの列を選択するのか、すなわち、「トラブル事象」、「故障原因」、「処置」、「対策」のいずれを選択するのかを画面上で指定できるように構成される(デフォルトは任意に設定することができ、例えば「トラブル事象」とすることができる)。
例えば「トラブル事象」が選択され、検索質問文qが入力されると、「トラブル事象」について構築されたDBの検索がなされ、該当する「トラブル事象」が存在するデータがRDB1から読み出されて表示される。このときに、「故障原因」、「処置」、「対策」も併せて表示するようにすれば逆引き検索が簡単に実現されることになる。
また例えば「故障原因」が選択され、検索質問文qが入力されると、「故障原因」について構築されたDBの検索がなされ、該当する「故障原因」が存在するデータがRDB1から読み出されて表示される。このときに、「トラブル事象」、「処置」、「対策」も併せて表示するようにすれば逆引き検索が簡単に実現されることになる。
以上説明した本発明の一実施形態に係るDB知識利用システムAによれば、RDB中の自然言語記述部である特定データDTを解析し再構成するため、既存のRDBでは把握できなかった関連性や知識を導き出すことができ、これを参照することができるようになる。例えば類似度simの計算により特定データDT相互の関係を数値で見出したり、サフィックスアレイを利用した重要語Wの抽出により、システム特有の専門用語が必ずサポートされるという効果がある。
また形態素解析や既存の辞書情報を一切使用することなく、サフィックスアレイを用いて、重要語Wを抽出してDBを再構築して利用するため、分野や言語、専門性の差異や事前知識の有無を意識することなくDB知識の利用が可能となるという効果がある。
また、連携させるRDBはどのような種類のものでもよいため、RDBそのものの性能向上にも寄与するという効果がある。また、一般ユーザは任意の質問を自然言語たるテキストで入力することができ、知識利用システムAはこれに対して回答することができる。そのため、音声認識機能を活用すれば、これを自然言語に変換することで音声質問による検索も可能になる。
本発明は既存DBを有効活用するものであるため業種に限られることなくあらゆる分野に適用することができる。
A DB知識利用システム
B DB再利用モジュール
C DB知識抽出モジュール
D DB知識検索モジュール
B DB再利用モジュール
C DB知識抽出モジュール
D DB知識検索モジュール
Claims (20)
- 知識抽出対象データベース(以下単に「DB」とする)に含まれるサフィックスを取り出してサフィックス群を生成し、当該サフィックス群を構成する各サフィックスどうしを比較して、その比較結果に基づいて文字列クラスを切り出し文字列クラス群を生成する文字列クラス群生成手段と、
前記文字列クラス群を構成する各文字列クラスの出現頻度に基づいて文字列クラスを選択する文字列クラス選択手段と、
前記各文字列クラスが当該各文字列クラス以外の他の文字列クラスと包含関係にあるかどうかに基づいて重要語を抽出する第一知識抽出手段とを備えたことを特徴とするDB知識抽出システム。 - 包含関係にある下位文字列クラスの出現頻度と上位文字列クラスの出現頻度とに基づいて当該下位文字列クラスを重要語として抽出する第二知識抽出手段を備えたことを特徴とする請求項1に記載のDB知識抽出システム。
- 前記下位文字列クラスは前記上位文字列クラスと見なして重要語として抽出する第三知識抽出手段を備えたことを特徴とする請求項1又は2に記載のDB知識抽出システム。
- 前記第一知識抽出手段、前記第二知識抽出手段及び前記第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語と、当該重要語が前記知識抽出対象DBのどこに格納されているかを示す位置情報とを含むインデックスを前記重要語をキーとして生成する第一インデックス生成手段を備えたことを特徴とする請求項1から3のいずれかに記載のDB知識抽出システム。
- 前記第一知識抽出手段、前記第二知識抽出手段及び前記第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語と、当該重要語が前記知識抽出対象DBのどこに格納されているかを示す位置情報とを含むインデックスを前記位置情報をキーとして生成する第二インデックス生成手段を備えたことを特徴とする請求項1から4のいずれかに記載のDB知識抽出システム。
- 前記第一知識抽出手段、前記第二知識抽出手段及び前記第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語の出現頻度に基づいて当該重要語の重要度を求める重要度演算手段を備えたことを特徴とする請求項1から5のいずれかに記載のDB知識抽出システム。
- 請求項1に記載の第一知識抽出手段、請求項2に記載の第二知識抽出手段及び請求項3に記載の第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語から構成される重要語辞書と、
検索質問文に含まれるサフィックスを取り出してサフィックス群を生成し、当該サフィックス群を構成する各サフィックスと前記重要語とを比較して、その比較結果に基づいて検索キーを切りだし検索キー群を生成する検索キー群生成手段とを備えたことを特徴とするDB知識検索システム。 - (1)前記検索キー群を要素とし、請求項6に記載の重要度演算手段により求められた重要度をその値とする検索キー群ベクトルと、(2)請求項1に記載の第一知識抽出手段、請求項2に記載の第二知識抽出手段及び請求項3に記載の第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語を要素とし、前記重要度演算手段により求められた重要度をその値とする索引ベクトルとに基づいて類似度を求める類似度演算手段を備えたことを特徴とする請求項7に記載のDB知識検索システム。
- 前記類似度に基づいて検索順序に優先順位を付与するランキング手段を備えたことを特徴とする請求項8に記載のDB知識検索システム。
- 前記ランキング手段は出現頻度に基づいて優先順位を決定することを特徴とする請求項9に記載のDB知識検索システム。
- コンピュータを、
知識抽出対象DBに含まれるサフィックスを取り出してサフィックス群を生成し、当該サフィックス群を構成する各サフィックスどうしを比較して、その比較結果に基づいて文字列クラスを切り出し文字列クラス群を生成する文字列クラス群生成手段、
前記文字列クラス群を構成する各文字列クラスの出現頻度に基づいて文字列クラスを選択する文字列クラス選択手段、
前記各文字列クラスが当該各文字列クラス以外の他の文字列クラスと包含関係にあるかどうかに基づいて重要語を抽出する第一知識抽出手段、
として機能させるためのDB知識抽出プログラム。 - コンピュータを、
包含関係にある下位文字列クラスの出現頻度と上位文字列クラスの出現頻度とに基づいて当該下位文字列クラスを重要語として抽出する第二知識抽出手段、
として機能させるための請求項11に記載のDB知識抽出プログラム。 - コンピュータを、
前記下位文字列クラスは前記上位文字列クラスと見なして重要語として抽出する第三知識抽出手段、
として機能させるための請求項11又は12に記載のDB知識抽出プログラム。 - コンピュータを、
請求項11に記載の第一知識抽出手段、請求項12に記載の第二知識抽出手段及び請求項13に記載の第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語と、当該重要語が前記知識抽出対象DBのどこに格納されているかを示す位置情報とを含むインデックスを前記重要語をキーとして生成する第一インデックス生成手段、
として機能させるための請求項11から13のいずれかに記載のDB知識抽出プログラム。 - コンピュータを、
請求項11に記載の第一知識抽出手段、請求項12に記載の第二知識抽出手段及び請求項13に記載の第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語と、当該重要語が前記知識抽出対象DBのどこに格納されているかを示す位置情報とを含むインデックスを前記位置情報をキーとして生成する第二インデックス生成手段、
として機能させるための請求項11から14のいずれかに記載のDB知識抽出プログラム。 - コンピュータを、
請求項11に記載の第一知識抽出手段、請求項12に記載の第二知識抽出手段及び請求項13に記載の第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語の出現頻度に基づいて当該重要語の重要度を求める重要度演算手段、
として機能させるための請求項11から15のいずれかに記載のDB知識抽出プログラム。 - コンピュータを、
請求項11に記載の第一知識抽出手段、請求項12に記載の第二知識抽出手段及び請求項13に記載の第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語から構成される重要語辞書、
検索質問文に含まれるサフィックスを取り出してサフィックス群を生成し、当該サフィックス群を構成する各サフィックスと前記重要語とを比較して、その比較結果に基づいて検索キーを切りだし検索キー群を生成する検索キー群生成手段、
として機能させるためのDB知識検索プログラム。 - コンピュータを、
(1)前記検索キー群を要素とし、請求項16に記載の重要度演算手段により求められた重要度をその値とする検索キー群ベクトルと、(2)請求項11に記載の第一知識抽出手段、請求項12に記載の第二知識抽出手段及び請求項13に記載の第三知識抽出手段から選ばれる少なくとも一つの手段により抽出された重要語を要素とし、前記重要度演算手段により求められた重要度をその値とする索引ベクトルとに基づいて類似度を求める類似度演算手段として機能させるための請求項17に記載のDB知識検索プログラム。 - コンピュータを、
前記類似度に基づいて検索順序に優先順位を付与するランキング手段、
として機能させるための請求項18に記載のDB知識検索プログラム。 - 前記ランキング手段は出現頻度に基づいて優先順位を決定することを特徴とする請求項19に記載のDB知識検索プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003273557A JP2005032179A (ja) | 2003-07-11 | 2003-07-11 | データベース知識抽出システム、データベース知識検索システム並びにデータベース知識抽出プログラム、データベース知識検索プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003273557A JP2005032179A (ja) | 2003-07-11 | 2003-07-11 | データベース知識抽出システム、データベース知識検索システム並びにデータベース知識抽出プログラム、データベース知識検索プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005032179A true JP2005032179A (ja) | 2005-02-03 |
Family
ID=34210758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003273557A Pending JP2005032179A (ja) | 2003-07-11 | 2003-07-11 | データベース知識抽出システム、データベース知識検索システム並びにデータベース知識抽出プログラム、データベース知識検索プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005032179A (ja) |
-
2003
- 2003-07-11 JP JP2003273557A patent/JP2005032179A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hong et al. | Improving the estimation of word importance for news multi-document summarization | |
US7644047B2 (en) | Semantic similarity based document retrieval | |
Horng et al. | Applying genetic algorithms to query optimization in document retrieval | |
CN100535898C (zh) | 问答式文献检索系统和方法 | |
CN106383836B (zh) | 将可操作属性归于描述个人身份的数据 | |
EP2410445A1 (en) | A method for creating a dynamic relationship | |
JP4942727B2 (ja) | テキスト要約装置、その方法およびプログラム | |
WO2015004006A1 (en) | Method and computer server system for receiving and presenting information to a user in a computer network | |
JP2016018286A (ja) | 行動タイプ判定装置、行動タイプ判定方法及び行動タイプ判定プログラム | |
JP2009086903A (ja) | 検索サービス装置 | |
JP5366179B2 (ja) | 情報の重要度推定システム及び方法及びプログラム | |
KR100659370B1 (ko) | 시소러스 매칭에 의한 문서 db 형성 방법 및 정보검색방법 | |
JP4572265B2 (ja) | 実績管理支援システム及び実績管理支援プログラム | |
JP4362492B2 (ja) | 文書インデキシング装置、文書検索装置、文書分類装置、並びにその方法及びプログラム | |
JP2007128224A (ja) | 文書インデキシング装置、文書インデキシング方法及び文書インデキシングプログラム | |
JP2003085181A (ja) | 事典システム | |
Agosti | Information access through search engines and digital libraries | |
JP2005032179A (ja) | データベース知識抽出システム、データベース知識検索システム並びにデータベース知識抽出プログラム、データベース知識検索プログラム | |
JP5199968B2 (ja) | キーワードタイプ判定装置、キーワードタイプ判定方法およびキーワードタイプ判定プログラム | |
Le et al. | Detecting citation types using finite-state machines | |
JP2009217406A (ja) | 文書検索装置及び方法、並びに、プログラム | |
JP2007011892A (ja) | 語彙獲得方法及び装置及びプログラム及びプログラムを格納した記憶媒体 | |
Jiang et al. | Intelligent query agent for structural document databases | |
JP7261262B2 (ja) | 単語間スコア算出装置、質問応答抽出システム、及び単語間スコア算出方法 | |
CN112949287B (zh) | 热词挖掘方法、系统、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060510 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090519 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090717 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100202 |