(57)【特許請求の範囲】
【請求項１】
一つ以上の情報源から入手した文書情報のテキストデータを対象として検索した文書を配送する文書検索配送装置において、
１個以上の検索タームを含む１人以上のユーザが指定した検索条件式を登録する検索条件式登録手段と、
テキストを入手した際に、該テキストに対する前記検索条件式の成否を判断し、該検索条件式が成立したユーザに対して、該テキストを配布するテキスト検索配布手段と、
前記検索条件式の削除が指示された場合には該検索条件式を削除する検索条件式削除手段を有し、
前記検索条件式登録手段は、
前記検索条件式から全ての検索タームを抽出する検索条件式解析手段と、
ユーザ毎にユーザと該ユーザの検索条件式から抽出された全ての検索タームの数を含む管理情報を格納する検索ターム数カウントテーブルを作成する検索ターム数カウントテーブル作成手段と、
前記検索条件式から抽出した全ての検索タームを、テキストのただ一度の走査により照合する際に参照する多重文字列照合テーブルを生成する多重文字列照合テーブル生成手段と、
検索条件式から抽出された各検索ターム対応に該検索条件式を指定したユーザのユーザ識別子をリストとしてつないだユーザリストを生成するユーザリスト生成手段と、
前記検索条件式解析手段により抽出された検索タームを格納した検索ターム管理テーブルを作成する検索ターム管理テーブル作成手段を有し、
前記検索条件式削除手段は、
削除が指示された前記検索条件式に関連する情報を前記検索ターム数カウントテーブルおよび前記ユーザリストから削除する検索条件式管理テーブル削除手段を有し、
該検索条件式管理テーブル削除手段は、
前記検索ターム管理テーブルを参照して、削除が指示された前記検索条件式に含まれる前記検索タームに対応する該検索条件式を指定したユーザのユーザ識別子を前記ユーザリストから削除するユーザリスト削除手段と、
削除が指示された前記検索条件式に関連するユーザの管理情報を、前記検索ターム数カウントテーブルから削除する検索ターム数カウントテーブル削除手段を有することを特徴とする文書検索配送装置。
【請求項２】
請求項１記載の文書検索配送装置において、
検索条件式の削除指示と登録指示を含む検索条件式の更新指示を受けた場合、前記検索条件式削除手段による検索条件式の削除処理と前記検索条件式登録手段による検索条件式の登録処理を連続して行うことを特徴とする文書検索配送装置。
【請求項３】
請求項１または請求項２記載の文書検索配送装置において、
ユーザから入力された、検索されたテキストを一定時間おいてから配布する配布条件、あるいは検索されたテキストが所定の件数蓄積された時点でテキストを配布する配布条件、あるいは所定の時刻にそれまでに検索されたテキストを一括配布する配布条件を登録する配布条件登録手段を有し、
前記テキスト検索配布手段は、
前記テキストをただ一度走査することによって前記検索条件式の該テキストに対する成否を判断するテキスト走査手段と、
前記テキスト走査手段によって前記検索条件式が成立したユーザに対して、前記配布条件登録手段によって登録された前記配布条件が成立した時点で前記テキストを配布するテキスト配布制御手段を有することを特徴とする文書検索配送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子メールや情報収集ロボット等を用いて通信社や新聞社等の複数の情報源から入手した電子化文書を、ユーザが予め登録しておいた検索条件式で検索し、条件が成立したユーザに対してその電子化文書を配布する文書検索配送システムに係わり、特にユーザ数が増えても電子化文書を一度走査するだけで全てのユーザの検索を終了できる即時性の高いテキスト検索配布機能を有する文書検索配送システムに関する。
【０００２】
【従来の技術】
近年、電子メールや電子ニュース等により、大量の電子化文書（以下、テキストと呼ぶ）が時々刻々とユーザのもとへ送られてくるようになった。また、インターネットを介して情報を提供する情報源が急激に増えており、これらの情報源から情報収集ロボット等を用いて収集するテキストも膨大な量となっている。このため、これらのテキストを検索し、そのテキストを求めているユーザに即座に配布する文書検索配送システムへのニーズが高まってきている。
この文書検索配送システムを実現するための核として、文書検索が用いられる（例えば、非特許文献１参照）。
これは、複数の照合すべき検索文字列（以下、検索タームと呼ぶ）からパターンマッチングマシンと呼ばれる一種の有限オートマトンを作成し、これにより、テキストをただ一度走査するだけで、同時に複数の検索タームを照合することができる方式である。
【０００３】
本方式について図２を用いて説明する。
同図は、“ｈｅ”、“ｓｈｅ”、“ｈｉｓ”および“ｈｅｒｓ”という４つの検索タームを照合する有限オートマトンの状態遷移図である。
ここで、円形は有限オートマトンの状態を、実線の矢印は状態遷移を表している。
各実線の矢印に付記されたアルファベットはこれに対応した状態遷移が起きる入力文字を、各円形の内部に記された数値は同状態の状態番号を示す。
また、破線の矢印はこの有限オートマトンに示されていない文字が入力された場合（以下、フェイルと呼ぶ）の遷移先を示している。
ここで、状態１、２、３、６、８から状態０への破線矢印は省略してある。
このフェイルによる遷移先は、実際には、図３に示すようなフェイル先状態番号テーブルによって管理される。
また、フェイルによって遷移した場合には、該入力文字に対し遷移先の状態で再照合を行う。
テキスト走査時に状態２、５、７、９に到達した場合、検索タームと一致する部分文字列がテキスト中に現われたことになるが、これは図４に示すような出力テーブルを参照することによって検出される。
この出力テーブルには、状態番号とその状態に到達したときに出力される文字列、すなわちテキスト中の部分文字列と一致した検索タームが格納されている。以下、本方式の動作について、図２を用いて説明する。
初期状態は状態０である。
この例の場合、入力文字が“ｈ”ならば状態１へ遷移し、“ｓ”ならば状態３へ遷移する。
もし、ここで、これら以外の文字（¬｛ｈ、ｓ｝で表し、“¬”は次の要素に否定条件が掛かることを示す）が入ってきた場合は初期状態である状態０に戻る。
また、状態３で入力文字が“ｈ”ならば状態４へ遷移する。
もし、ここで“ｈ”以外の文字が入ってきた場合は状態０へ戻り、ここで再度照合処理を行う。
一方、状態４で入力文字が“ｅ”ならば状態５へ遷移し、図４の出力テーブルを参照することによって検索ターム“ｓｈｅ”および“ｈｅ”と一致する部分文字列がテキスト中に現われたことが検出される。
ここで、もし“ｅ”以外の例えば“ｉ”が入力されたときは、フェイルの破線矢印を参照して状態１へ遷移する。
そして、遷移先の状態１で該入力文字“ｉ”について再照合することにより状態６へ遷移する。
【０００４】
次に、テキスト「ｕｓｈｅｒｓ」を対象に検索タームの照合を行った場合について説明する。
まず、第一文字目“ｕ”が入力される。
しかし、“ｕ”は“ｈ”および“ｓ”以外の文字なので初期状態である状態０に戻る。
次に、第二文字目“ｓ”が入力されることにより、状態０から状態３へ遷移する。
以下、第三文字目“ｈ”、第四文字目“ｅ”が入力されることにより、状態４、状態５へ遷移し、図４の出力テーブルを参照することにより、検索ターム“ｓｈｅ”および“ｈｅ”と一致する部分文字列がテキスト中に現われたことが検出される。
次に、第五文字目“ｒ”が入力される。
しかし、状態５には、入力文字“ｒ”に対する遷移先が存在しないためフェイルとなり、状態２へ遷移する。
ここで、“ｒ”に対して再照合を行うことにより、状態８へ遷移する。
最後に、第六文字目“ｓ”が入力されることにより、状態９へ遷移し、図４の出力テーブルを参照することにより、検索ターム“ｈｅｒｓ”と一致する部分文字列がテキスト中に現われたことが検出される。
このように、上記非特許文献１には、テキストに対するただ一度の走査で、同時に複数の検索タームを照合することができる文書検索方法が開示されている。
【０００５】
上記非特許文献１に記載された方式を日本語に拡張したものが知られている（例えば、非特許文献２参照）。
日本語は英語と異なり文字種が多い。
そのため計算機内部では通常１文字を２バイト、すなわち英語２文字分で日本語の１文字を表現している。
この２バイト文字を１バイトに分割して、上記非特許文献１のような有限オートマトンを単純に作成したのでは、２バイト文字の一部である１バイトと英語の１バイト文字との区別がつかないため、ノイズが発生する可能性がある。
そこで上記非特許文献２では、日本工業規格で情報交換用の符号系について１バイト文字と２バイト文字の切り換えを示す３バイトの文字コード（ＫＩおよびＫＯで表す）を規定していることに着目し、図５のように１バイト文字と２バイト文字を区別する有限オートマトンを作成することによってこの問題を解決している。
【０００６】
なお、
１バイトは８ビットとし、１バイト文字はＯＯ（１６）からＦＦ（１６）までの２５６文字である。
２バイト文字は２バイトから構成され、前半１バイト、後半１バイトはともに２１（１６）から７Ｅ（１６）までである。全部で９４×９４ある。
３バイトの文字コードＫＩは１Ｂ２４４２（１６）である。
３バイトの文字コードＫＯは１Ｂ２８４Ａ（１６）である。
１バイト文字のうち英数字は２１（１６）から７Ｅ（１６）までに属しており、カナ文字はＡＯ（１６）からＤＦ（１６）に属している。
【０００７】
ここで、状態０から状態０への遷移は、１バイト文字照合用有限オートマトンへ遷移する１バイト文字以外かＫＩ以外の１バイト文字が入力されたときに実行される。
また、状態３から状態３あるいは状態６への遷移は、２バイト文字照合用有限オートマトンへ遷移する２バイト文字の上位バイト以外かＫＯ以外の１バイトコードが入力されたときに実行され、その１バイトコードが１バイト文字であったときに状態３へ遷移し、２バイト文字の上位バイトであったときに状態６へ遷移する。
ここで、状態６は２バイト文字照合用有限オートマトンへ遷移しない２バイト文字の上位バイトが入力された場合にバイトずれを防ぐために設けられている。
【０００８】
バイトずれとは、２バイト文字の下位バイトが２バイト文字の上位バイトであるとみなされてしまうことである。
本方式では、状態６を設け、２バイト文字の下位バイトが入力されないと状態３へ戻れないようにすることによってこのバイトずれを防いでいる。この有限オートマトンの動作は上記非特許文献１とまったく同様である。
このように、上記非特許文献２に記載された方法を用いることにより、日本語のような１バイト文字と２バイト文字が混在する言語を対象とした場合でも、テキストに対するただ一度の走査で、同時に複数の検索タームを照合することが可能となる。
【０００９】
なお、上記では、テキストから検索タームを探す手法として有限オートマトンの例を説明したが、他の手法として拡張ＢＭ法が知られている（例えば、非特許文献３）。拡張ＢＭ法は、高速なパターン・マッチング手法であるＢＭ（Ｂｏｙｅｒ−ｍｏｏｒｅ）法を複数個のパターン（検索文字列）が扱えるように拡張したものであり、上記非特許文献３ではＥＢＭ（Ｅｘｐａｎｄｅｄ−Ｂｏｙｅｒ−ｍｏｏｒｅ）法と呼んでいる。
また、拡張ＢＭ法ではないが、多重文字列照合を行う手法も知られている（非特許文献４）。この手法は、高速なパターン・マッチング手法であるＢＭ法と、有限オートマトンを用いて複数パターンを同時に照合するＡＣ（Ａｈｏ−Ｃｏｒａｓｉｃｋ）法の基本的なアイディアを組み合わせたものである。
【非特許文献１】
“Ｅｆｆｉｃｉｅｎｔ  Ｓｔｒｉｎｇ  Ｍａｔｃｈｉｎｇ：Ａｎ  Ａｉｄ  ｔｏ  Ｂｉｂｌｉｏｇｒａｐｈｉｃ  Ｓｅａｒｃｈ”（Ａｌｆｒｅｄ  Ｖ．Ａｈｏ  ａｎｄ  Ｍａｒｇａｒｅｔ  Ｊ．Ｃｏｒａｓｉｃｋ、Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｏｆ  ｔｈｅ  ＡＣＭ、Ｊｕｎｅ  １９７５、Ｖｏｌ．１８、Ｎｏ．６、ｐｐ．３３３−３４０）
【非特許文献２】
“日本語テキスト用のＡｈｏ−Ｃｏｒａｓｉｃｋ型パターン照合アルゴリズム”（篠原武、有川  節夫、情報処理学会研究会資料、自然言語処理、１９８５．１１．１５、Ｖｏｌ．８６、Ｎｏ．４８、ｐｐ．５２．４．１−５２．４．８）
【非特許文献３】
「５種類のパターン・マッチング手法をＣ言語の関数で実現する」    ＮＩＫＫＥＩ    ＢＹＴＥ，Ａｕｇｕｓｔ    １９８７，ｐ．ｐ．１７５−１８９
【非特許文献４】
「高速な複数文字列照合アルゴリズム：ＦＡＳＴ」    情報処理学会論文誌，Ｖｏｌ．３０，ＮＯ．９，Ｓｅｐｔｅｍｂｅｒ    １９８９
【００１０】
【発明が解決しようとする課題】
以上説明した上記非特許文献１、２に示された文書検索方法によると、テキストをただ一度走査するだけで、同時に複数の検索タームを照合することが可能となる。しかし、多数のユーザの検索条件式に対してテキスト検索を行う場合には以下に示す問題が生じる。
（１）ユーザ識別の問題
多数のユーザの検索条件式中に含まれる全ての検索タームで１つの有限オートマトンを作成することにより、テキストの一度の走査で全ての検索タームを照合することが可能となる。しかし、テキスト中の部分文字列と一致した検索タームがどのユーザの検索条件式中に含まれるものであるかを判別できないため、どのユーザの検索条件式が成立したのかが分からない。
（２）処理時間の問題
各ユーザの検索条件式毎に、その検索条件式中に含まれる検索タームで有限オートマトンを作成すれば、どのユーザの検索条件式が成立しているのかを判別することが可能となる。しかし、有限オートマトンの数分（すなわち、ユーザ数分）だけテキストを走査しなければならなくなるため、ユーザ数が増えるとその分検索に時間が掛かることになる。なお、有限オートマトンに代えて上記非特許文献３，４に示された手法を用いた場合についても同様である。
こうした問題に対し、本発明では以下の課題を解決することを目的とする。すなわち、本発明の目的は、複数の情報源から入手したテキストを、ユーザが予め登録しておいた検索条件式に基づき、テキストのただ一度の走査で複数のユーザの検索条件式が成立しているかどうかを判別し、条件が成立しているユーザに対してそのテキストを配布する文書検索配送システムを提供することにある。
【００１１】
【課題を解決するための手段】
上記目的を達成するため、本発明は、
一つ以上の情報源から入手した文書情報のテキストデータを対象として、
１個以上の検索タームを含む１人以上のユーザが指定した検索条件式を登録する検索条件式登録ステップと、テキストを入手した際に、該テキストに対する前記検索条件式の成否を判断し、該検索条件式が成立したユーザに対して、該テキストを配布するテキスト検索配布ステップを有する文書検索配送方法において、前記テキスト検索配布ステップは、前記テキストをただ一度走査することによって前記複数の検索条件式の該テキストに対する成否を判断するテキスト検索ステップを有するようにしている。
さらに、前記検索条件式登録ステップは、前記検索条件式から全ての検索タームを抽出する検索条件式解析ステップと、
ユーザ毎にユーザと該ユーザの検索条件式から抽出された全ての検索タームの数を含む管理情報を格納する検索ターム数カウントテーブルを作成する検索ターム数カウントテーブル作成ステップと、
前記検索条件式から抽出した全ての検索タームを、テキストのただ一度の走査により照合する際に参照する多重文字列照合テーブルを生成する多重文字列照合テーブル生成ステップと、
検索条件式から抽出された各検索ターム対応に該検索条件式を指定したユーザのユーザ識別子をリストとしてつないだユーザリストを生成するユーザリスト生成ステップを有し、
前記テキスト検索配布ステップは、該テキストに対する前記検索条件式の成否の判断時に、前記多重文字列照合テーブルを参照して該テキストを走査することによって、前記検索条件式解析ステップにより抽出された全ての検索タームを照合するテキスト走査ステップと、
前記テキスト走査ステップによって照合された検索タームと前記ユーザリストと前記検索ターム数カウントテーブルを照合することにより、該テキストに対する前記検索条件式の成否を判断する検索条件式成否判断ステップを有するようにしている。
さらに、前記多重文字列照合テーブルとして有限オートマトンを用いるようにしている。
さらに、前記検索条件式成否判断ステップは、前記ユーザリストを参照し、前記テキスト走査ステップによって照合された検索タームの個数をユーザ毎に算出する検索ターム照合数算出ステップと、
前記検索ターム照合数算出ステップで算出された検索タームの個数と前記検索ターム数カウントテーブルに格納されている検索タームの個数とを比較し、一致している場合には該検索タームが含まれる検索条件式が成立しているものとみなす検索ターム数比較ステップを有するようにしている。
【００１２】
また、一つ以上の情報源から入手した文書情報のテキストデータを対象として、
１個以上の検索タームを含む１人以上のユーザが指定した検索条件式を登録する検索条件式登録ステップと、テキストを入手した際に、該テキストに対する前記検索条件式の成否を判断し、該検索条件式が成立したユーザに対して、該テキストを配布するテキスト検索配布ステップを有する文書検索配送方法において、１人以上のユーザあるいはシステム管理者が指定したテキスト配布の条件を記した配布条件を含む配布条件設定式を登録する配布条件設定式登録ステップを有し、
前記テキスト検索配布ステップは、前記テキストをただ一度走査することによって前記複数の検索条件式の該テキストに対する成否を判断するテキスト検索ステップと、
前記テキスト検索ステップによって前記検索条件式が成立したユーザに対して、前記配布条件設定式登録ステップによって登録された前記配布条件が成立した時点で前記テキストを配布するテキスト配布制御ステップを有するようにしている。
さらに、前記配布条件設定式登録ステップは、前記配布条件設定式から配布条件を設定すべきユーザの識別子と配布条件を抽出する配布条件設定式解析ステップと、
前記配布条件設定式解析ステップにおいて前記配布条件設定式から抽出されたユーザの識別子と配布条件を格納した配布条件管理テーブルを作成する配布条件管理テーブル作成ステップを有し、
前記テキスト配布制御ステップは、前記配布条件管理テーブルを参照して前記配布条件の成否を判断する配布条件成否判断ステップと、
前記配布条件成否判断ステップによって前記配布条件が成立していると判断された時点でユーザに対して前記テキストを配布するテキスト配布ステップを有するようにしている。
さらに、前記配布条件として、配布する時間、配布する件数またはテキスト検索から配布までの遅延時間を用いるようにしている。
また、一つ以上の情報源から入手した文書情報のテキストデータを対象として、
１個以上の検索タームを含む１人以上のユーザが指定した検索条件式を登録する検索条件式登録ステップと、テキストを入手した際に、該テキストに対する前記検索条件式の成否を判断し、該検索条件式が成立したユーザに対して、該テキストを配布するテキスト検索配布ステップを有する文書検索配送方法において、前記検索条件式の削除が指示された場合には該検索条件式を削除する検索条件式削除ステップを有するようにしている。
さらに、前記検索条件式登録ステップは、前記検索条件式から全ての検索タームを抽出する検索条件式解析ステップと、
ユーザ毎にユーザと該ユーザの検索条件式から抽出された全ての検索タームの数を含む管理情報を格納する検索ターム数カウントテーブルを作成する検索ターム数カウントテーブル作成ステップと、
前記検索条件式から抽出した全ての検索タームを、テキストのただ一度の走査により照合する際に参照する多重文字列照合テーブルを生成する多重文字列照合テーブル生成ステップと、
検索条件式から抽出された各検索ターム対応に該検索条件式を指定したユーザのユーザ識別子をリストとしてつないだユーザリストを生成するユーザリスト生成ステップを有し、
前記検索条件式削除ステップは、削除が指示された前記検索条件式に関連する情報を前記検索ターム数カウントテーブルおよび前記ユーザリストから削除する検索条件式管理テーブル削除ステップを有するようにしている。
さらに、前記検索条件式登録ステップは、さらに、前記検索条件式解析ステップにより抽出された検索タームを格納した検索ターム管理テーブルを作成する検索ターム管理テーブル作成ステップを有し、
前記検索条件式管理テーブル削除ステップは、前記検索ターム管理テーブルを参照して、削除が指示された前記検索条件式に含まれる前記検索タームに対応する該検索条件式を指定したユーザのユーザ識別子を前記ユーザリストから削除するユーザリスト削除ステップと、
削除が指示された前記検索条件式に関連するユーザの管理情報を、前記検索ターム数カウントテーブルから削除する検索ターム数カウントテーブル削除ステップを有するようにしている。
また、一つ以上の情報源から入手した文書情報のテキストデータを対象として、
１個以上の検索タームを含む１人以上のユーザが指定した検索条件式を登録する検索条件式登録手段と、テキストを入手した際に、該テキストに対する前記検索条件式の成否を判断し、該検索条件式が成立したユーザに対して、該テキストを配布するテキスト検索配布手段を有する文書検索配送装置において、
前記テキスト検索配布手段は、前記テキストをただ一度走査することによって前記複数の検索条件式の該テキストに対する成否を判断するテキスト検索手段を有するようにしている。
さらに、前記検索条件式登録手段は、前記検索条件式から全ての検索タームを抽出する検索条件式解析手段と、
ユーザ毎にユーザと該ユーザの検索条件式から抽出された全ての検索タームの数を含む管理情報を格納する検索ターム数カウントテーブルを作成する検索ターム数カウントテーブル作成手段と、
前記検索条件式から抽出した全ての検索タームを、テキストのただ一度の走査により照合する際に参照する多重文字列照合テーブルを生成する多重文字列照合テーブル生成手段と、
検索条件式から抽出された各検索ターム対応に該検索条件式を指定したユーザのユーザ識別子をリストとしてつないだユーザリストを生成するユーザリスト生成手段を有し、
前記テキスト検索配布手段は、該テキストに対する前記検索条件式の成否の判断時に、前記多重文字列照合テーブルを参照して該テキストを走査することによって、前記検索条件式解析手段により抽出された全ての検索タームを照合するテキスト走査手段と、
前記テキスト走査手段によって照合された検索タームと前記ユーザリストと前記検索ターム数カウントテーブルを照合することにより、該テキストに対する前記検索条件式の成否を判断する検索条件式成否判断手段を有するようにしている。
さらに、前記多重文字列照合テーブルとして有限オートマトンを用いるようにしている。
さらに、前記検索条件式成否判断手段は、前記ユーザリストを参照し、前記テキスト走査手段によって照合された検索タームの個数をユーザ毎に算出する検索ターム照合数算出手段と、
前記検索ターム照合数算出手段で算出された検索タームの個数と前記検索ターム数カウントテーブルに格納されている検索タームの個数とを比較し、一致している場合には該検索タームが含まれる検索条件式が成立しているものとみなす検索ターム数比較手段を有するようにしている。
【００１３】
また、一つ以上の情報源から入手した文書情報のテキストデータを対象として、
１個以上の検索タームを含む１人以上のユーザが指定した検索条件式を登録する検索条件式登録手段と、テキストを入手した際に、該テキストに対する前記検索条件式の成否を判断し、該検索条件式が成立したユーザに対して、該テキストを配布するテキスト検索配布手段を有する文書検索配送装置において、
１人以上のユーザあるいはシステム管理者が指定したテキスト配布の条件を記した配布条件を含む配布条件設定式を登録する配布条件設定式登録手段を有し、前記テキスト検索配布手段は、前記テキストをただ一度走査することによって前記複数の検索条件式の該テキストに対する成否を判断するテキスト検索手段と、
前記テキスト検索手段によって前記検索条件式が成立したユーザに対して、前記配布条件設定式登録手段によって登録された前記配布条件が成立した時点で前記テキストを配布するテキスト配布制御手段を有するようにしている。
さらに、前記配布条件設定式登録手段は、前記配布条件設定式から配布条件を設定すべきユーザの識別子と配布条件を抽出する配布条件設定式解析手段と、
前記配布条件設定式解析手段において前記配布条件設定式から抽出されたユーザの識別子と配布条件を格納した配布条件管理テーブルを作成する配布条件管理テーブル作成手段を有し、
前記テキスト配布制御手段は、前記配布条件管理テーブルを参照して前記配布条件の成否を判断する配布条件成否判断手段と、
前記配布条件成否判断手段によって前記配布条件が成立していると判断された時点でユーザに対して前記テキストを配布するテキスト配布手段を有するようにしている。
さらに、前記配布条件として、配布する時間、配布する件数またはテキスト検索から配布までの遅延時間を用いるようにしている。
また、一つ以上の情報源から入手した文書情報のテキストデータを対象として、
１個以上の検索タームを含む１人以上のユーザが指定した検索条件式を登録する検索条件式登録手段と、テキストを入手した際に、該テキストに対する前記検索条件式の成否を判断し、該検索条件式が成立したユーザに対して、該テキストを配布するテキスト検索配布手段を有する文書検索配送装置において、
前記検索条件式の削除が指示された場合には該検索条件式を削除する検索条件式削除手段を有するようにしている。
さらに、前記検索条件式登録手段は、前記検索条件式から全ての検索タームを抽出する検索条件式解析手段と、
ユーザ毎にユーザと該ユーザの検索条件式から抽出された全ての検索タームの数を含む管理情報を格納する検索ターム数カウントテーブルを作成する検索ターム数カウントテーブル作成手段と、
前記検索条件式から抽出した全ての検索タームを、テキストのただ一度の走査により照合する際に参照する多重文字列照合テーブルを生成する多重文字列照合テーブル生成手段と、
検索条件式から抽出された各検索ターム対応に該検索条件式を指定したユーザのユーザ識別子をリストとしてつないだユーザリストを生成するユーザリスト生成手段を有し、
前記検索条件式削除手段は、削除が指示された前記検索条件式に関連する情報を前記検索ターム数カウントテーブルおよび前記ユーザリストから削除する検索条件式管理テーブル削除手段を有するようにしている。
さらに、前記検索条件式登録手段は、さらに、前記検索条件式解析手段により抽出された検索タームを格納した検索ターム管理テーブルを作成する検索ターム管理テーブル作成手段を有し、
前記検索条件式管理テーブル削除手段は、前記検索ターム管理テーブルを参照して、削除が指示された前記検索条件式に含まれる前記検索タームに対応する該検索条件式を指定したユーザのユーザ識別子を前記ユーザリストから削除するユーザリスト削除手段と、
削除が指示された前記検索条件式に関連するユーザの管理情報を、前記検索ターム数カウントテーブルから削除する検索ターム数カウントテーブル削除手段を有するようにしている。
【００１４】
【発明の実施の形態】
以下に、本発明の実施例を図を参照して説明する。
《第一実施例》
最初に、第一実施例の概略説明を図６を参照して行う。
まず、検索条件式登録処理について説明する。
まず、検索条件式を解析し、検索条件式中に含まれる検索タームを抽出する。そして、抽出された検索タームの数を、検索ターム数カウントテーブル作成処理により検索ターム数カウントテーブルに格納する。
例えば、図６において、ユーザ１：「“文書”と“検索”が含まれる文書」という検索条件式には“文書”と“検索”という２つの検索タームが含まれているので、検索ターム数カウントテーブルのユーザ１に対応する箇所に２を格納する。同様に、ユーザ２、ユーザ３に対応する箇所に１、２をそれぞれ格納する。
次に、有限オートマトン作成処理で、上記検索条件式解析で抽出された全ての検索タームを照合する有限オートマトンを作成する。この有限オートマトンは、上記非特許文献１および上記非特許文献２に示されたものと同様である。
ユーザ１：「“文書”と“検索”が含まれる文書」、ユーザ２：「“登山”が含まれる文書」およびユーザ３：「“検索”と“登録”が含まれる文書」という検索条件式から抽出した検索ターム“文書”、“検索”、“登山”および“登録”を照合する有限オートマトンの状態遷移図は図に示されたものとなる。本図では、簡単のため、状態遷移を２バイト（１文字）単位で示す。
次に、ユーザリスト作成処理で、それぞれの検索タームを指定したユーザの識別子をユーザリストとして、有限オートマトンに接続する。図６では、例えば“検索”を照合するとその末尾の状態４からユーザリストが参照され、“検索”を指定したユーザが“ユーザ１”および“ユーザ３”であることが検出される。
【００１５】
次に、テキストの検索および配布処理であるテキスト検索配布処理について説明する。
この処理では、まずテキスト走査処理でテキストの走査を行い、検索タームを照合する。
例えば、テキスト：「文書を検索する」を図６に示した有限オートマトンを用いて走査した場合には、“文書”および“検索”と一致する部分文字列がテキスト中に現われたことが検出される。本図に示した有限オートマトンで、末尾の状態に“○”が記されている検索タームはテキスト中に一致する部分文字列が出現したことを示し、“×”が記されている検索タームはテキスト中に一致する部分文字列が出現しなかったことを示す。
本例では、“文書”および“検索”と一致する部分文字列がテキスト中に現われたので、その末尾の状態である状態２および状態４に“○”が記されている。
【００１６】
次に、検索ターム数カウント処理でこれらテキスト中の部分文字列と一致した検索タームの出現数をユーザ毎にカウントする。
例えば、ユーザ１に対しては“文書”および“検索”が一致しているので２と、ユーザ３に対しては“検索”だけが一致しているので１とカウントする。しかし、ユーザ２はテキスト中に検索タームと一致する部分文字列が現われなかったので０である。
最後に、検索条件式チェック処理で、上記検索ターム数カウントテーブルに格納された検索ターム数と上記検索ターム数カウント処理で算出した検索ターム出現カウント数とを比較し、一致している場合には、テキスト配布処理でそのユーザに対しテキストを配布する。
例えば、図６でユーザ１は検索ターム数が２で一致しているため、テキストを配布するが、ユーザ２およびユーザ３は一致していないので配布しない。
【００１７】
以上のように、本実施例では、有限オートマトンを用いてテキストを走査し、テキスト中に一致する部分文字列として現われた検索タームの出現数を、ユーザリストを参照しながら各ユーザ毎にカウントする。
そして、カウントした結果と検索ターム数カウントテーブルに予め格納しておいた検索ターム数とを比較することによって検索条件式が成立しているかどうかをチェックする。
この結果、テキストのただ一度の走査で複数のユーザの検索条件式が成立しているかどうかを判別することが可能となり、即時性の高いテキスト検索配布が実現できることになる。
【００１８】
以下、本発明の第一の実施例について図１を用いて詳細に説明する。
本発明を適用した文書検索配送システムは、ディスプレイ１００、キーボード１０１、中央演算処理装置（ＣＰＵ）１０２、主メモリ１０４およびこれらを結ぶバス１０３から構成される。
また、バス１０３には、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の通信回線１２４を介して、ニュースを配信するニュース配信元１２５や文書検索配送システムを利用するユーザ１２６が接続されている。
ニュース配信元１２５は電子メールや電子ニュース等を用いてニュースデータを電子化したテキストを本システムへ配信したり、インターネットを介してテキストを提示し、ユーザ１２６は電子メールを用いて検索条件式を本システムへ登録する。
本システムからは上記検索条件式に基づいて検索された上記テキストが電子メールを用いて該当ユーザへ配布される。
以下、本実施例では、ニュース配信元１２５は電子メール等を用いて本システムにテキストを配信するものとして述べるが、ニュース配信元１２５はテキストをインターネット上に提示するだけで、テキストの収集は情報収集ロボットを用いて行うようにしてもかまわない。
【００１９】
主メモリ１０４には、システム制御プログラム１０５、検索条件式登録制御プログラム１０６、検索条件式解析プログラム１０７、検索ターム数カウントテーブル作成プログラム１０８、検索用オートマトン作成プログラム１０９、テキスト検索制御プログラム１１２、テキスト取得プログラム１１３、テキスト検索プログラム１１４、テキスト成形プログラム１１８、電子メールプログラム１１９、検索ターム数カウントテーブル１２０、有限オートマトン１２１およびユーザリスト１２２が格納されるとともにワークエリア１２３が確保される。
検索用オートマトン作成プログラム１０９は有限オートマトン作成プログラム１１０およびユーザリスト作成プログラム１１１で構成される。
なお、本実施例では、テキストから検索タームを探し出す手法として有限オートマトンを用いているが、テキストから検索タームを探し出す手法としては有限オートマトンに限られるものではなく、有限オートマトンを用いてもよいし、上記非特許文献３，４に示された手法を用いてもよく、この場合、検索用オートマトン作成プログラム、有限オートマトン作成プログラムの表現は適当ではなく、より一般化した表現を用いると、検索用文字列照合テーブル作成プログラム、多重文字列照合テーブル作成プログラムの様になる。
また、テキスト検索プログラム１１４はテキスト走査プログラム１１５、検索ターム数カウントプログラム１１６および検索条件式チェックプログラム１１７で構成される。
以上のプログラムはハードディスク装置（本図には示していない）、フレキシブルディスク（本図には示していない）などのコンピュータで読み書きできる記憶媒体に格納することもできる。
【００２０】
システム制御プログラム１０５は文書検索配送システムの管理者によるキーボード１０１からの指示を受け起動する。
検索条件式登録制御プログラム１０６およびテキスト検索制御プログラム１１２はユーザ１２６からの検索条件式の登録指示やニュース配信元１２５からのテキストの配信により、システム制御プログラム１０５によって起動され、それぞれ検索条件式解析プログラム１０７、検索ターム数カウントテーブル作成プログラム１０８および検索用オートマトン作成プログラム１０９の制御と、テキスト取得プログラム１１３、テキスト検索プログラム１１４およびテキスト成形プログラム１１８の制御を行う。
電子メールプログラム１１９にはワークステーションなどで一般的に用いられている既存のメールプログラムを用いる。
本電子メールプログラム１１９はテキスト検索制御プログラム１１２の処理結果に応じて、システム制御プログラム１０５によって起動される。
【００２１】
以下、本実施例における文書検索配送システムの処理内容について説明する。まず、システム制御プログラム１０５の処理内容について図７のＰＡＤ（Ｐｒｏｂｌｅｍ  Ａｎａｌｙｓｉｓ  Ｄｉａｇｒａｍ）図を用いて説明する。
システム制御プログラム１０５では、まずステップ７００で、キーボード１０１から終了コマンドが入力されるまで、以下のステップを繰り返す。
この繰り返し処理では、まずステップ７０１でユーザ１２６から電子メールによって検索条件式が送られてきているかどうかを調べる。
ここで、検索条件式が送られてきている場合には、ステップ７０２で検索条件式登録制御プログラム１０６を起動して、検索条件式の登録を行う。
次に、ステップ７０３でニュース配信元１２５から電子メールによってテキストが送られてきているかどうかを調べる。
ここで、テキストが送られてきている場合には、ステップ７０４でテキスト検索制御プログラム１１２を起動して、テキストの検索を行う。
次に、ステップ７０５でテキスト検索制御プログラム１１２におけるテキスト検索の結果を調べ、成立している検索条件式が一つでも存在すると判断された場合には、ステップ７０６で電子メールプログラム１１９を起動し、成立した検索条件式を指定したユーザに対し、該当テキストを電子メールを用いて配布する。以上がシステム制御プログラム１０５の処理内容である。
【００２２】
次に、検索条件式登録制御プログラム１０６による検索条件式登録の処理内容について図８のＰＡＤ図を用いて説明する。
検索条件式登録制御プログラム１０６はシステム制御プログラム１０５によって起動される。
本プログラムは、まずステップ８００で検索条件式解析プログラム１０７を起動し、ユーザ１２６から電子メールによって送られてきた検索条件式を解析する。
この検索条件式の解析処理では、検索条件式を以下のいずれかの形式に展開する。すなわち、
（ａ）単一検索タームのみ、
（ｂ）複数の（ａ）の論理積条件、
（ｃ）複数の（ａ）と複数の（ｂ）の論理和条件
である。つまり、論理和条件の外側に論理積条件が掛からないように検索条件式を展開する。
ただし、否定条件は検索条件式全体または検索タームに掛かるようにする。
ここで、論理積条件とは、例えば、
検索式「“文書”  ａｎｄ  “検索”」
のように、「“文書”と“検索”の両方の文字列が現れる文書を探せ」という意味を持ち、論理和条件とは、例えば、
検索式「“文書”  ｏｒ  “検索”」
のように、「“文書”か“検索”のどちらかの文字列が現れる文書を探せ」という意味を持つ。
また、否定条件とは、例えば、
検索式「¬“検索”」
のように、「“検索”が現れない文書を探せ」という意味を持つ。
例えば、“Ａ”、“Ｂ”、“Ｃ”、“Ｄ”、“Ｅ”を検索タームとすると、それぞれ次のような形式に展開される。
（ａ）    Ａ
（ｂ）    ＡａｎｄＢａｎｄＣａｎｄ・・・
（ｃ）（ＡａｎｄＢ）ｏｒＣｏｒ（ＤａｎｄＥ）ｏｒ・・・
例えば、検索条件式が論理和条件に対する論理積条件である場合、すなわち論理和条件の外側に論理積条件が掛かっている場合には、図９に示すように展開して上記の条件を満たすように変形する。
ここで、展開結果における論理積条件あるいは単一の検索タームの部分を項と呼ぶ。
【００２３】
次に、ステップ８０１で検索条件式登録制御プログラム１０６は、検索ターム数カウントテーブル作成プログラム１０８を起動して、検索条件式解析プログラム１０７の解析結果として得られた検索条件式中に含まれる検索タームの数や検索条件式に否定条件が掛かっているかどうかを示す情報を検索ターム数カウントテーブル１２０に格納する。
この検索ターム数カウントテーブル１２０は、検索条件式毎（すなわちユーザ毎）に、検索条件式中の項に対応してその中に含まれる検索タームの数を格納したテーブルである。
図１０にその構造を示す。
本図に示す検索ターム数カウントテーブル１２０は、ユーザ番号１：「（“文書”ａｎｄ“検索”）ｏｒ（“文書”ａｎｄ“サーチ”）」、ユーザ番号２：「“文字”ａｎｄ  ¬“認識”ａｎｄ  ¬“学習”」およびユーザ番号３：「¬（“検索”ａｎｄ“学習”）  」という３つの検索条件式に対して作成されたものである。
まず、この検索ターム数カウントテーブル１２０の先頭の要素として検索条件式否定フラグを設ける。
この検索条件式否定フラグには、検索条件式全体に否定条件が掛かっている場合には１を、そうでなければ０を設定する。
例えば、本図に示す例の場合、ユーザ番号３の検索条件式全体に否定条件が掛かっているので１を設定するが、その他の検索条件式には否定条件が掛かっていないので０を設定する。
この検索条件式否定フラグに対し第１項から順にその項に含まれる検索タームの数をリストとしてつないでいく。
例えば、ユーザ番号１に対応するリストの２番目の要素には、検索条件式の第１項に含まれる検索タームの数が格納されることになるが、本項には“文書”と“検索”という２つの検索タームが含まれているので２を格納する。
さらにその次の要素には、第２項に含まれる検索タームの数である２を格納する。
また、２番目以降の要素にはそれぞれ、検索タームの数を格納するのと同時に、テキスト検索時にテキスト中の部分文字列と一致した検索タームの出現数をカウントするための領域が確保されている。
【００２４】
最後に、ステップ８０２で検索条件式登録制御プログラム１０６は、検索用オートマトン作成プログラム１０９を起動し、上記検索条件式解析プログラム１０７の解析結果として得られた検索条件式中に含まれる全ての検索タームを照合する有限オートマトン１２１を作成する。
そして、それらの検索タームが含まれる検索条件式を指定したユーザ１２６の識別子をリストとしてつないだユーザリスト１２２を作成し、これを有限オートマトン１２１に接続する。
この検索用オートマトン作成プログラム１０９の処理内容については、後で詳細に説明する。
以上が検索条件式登録制御プログラム１０６による検索条件式登録の処理内容である。
【００２５】
次に、テキスト検索制御プログラム１１２によるテキスト検索の処理内容について図１１のＰＡＤ図を用いて説明する。
テキスト検索制御プログラム１１２はシステム制御プログラム１０５によって起動される。
本プログラムは、まずステップ１１００でテキスト取得プログラム１１３を起動し、ニュース配信元１２５から電子メール等によって送られてきたテキストをワークエリア１２３に格納する。
次に、ステップ１１０１でテキスト検索プログラム１１４を起動し、前記検索ターム数カウントテーブル作成プログラム１０８によって作成された検索ターム数カウントテーブル１２０および前記検索用オートマトン作成プログラム１０９によって作成された有限オートマトン１２１とユーザリスト１２２を用いて、ワークエリア１２３に格納されているテキストを検索する。
このテキスト検索プログラム１１４の処理内容については、後で詳細に説明する。
次に、ステップ１１０２で、テキスト検索プログラム１１４におけるテキスト検索処理の結果を調べ、成立している検索条件式が一つでも存在した場合には、ステップ１１０３でテキスト成形プログラム１１８を起動し、ワークエリア１２３に格納されているテキストを電子メールプログラム１１９が配布できるような形式に成形する。
以上がテキスト検索制御プログラム１１２によるテキスト検索の処理内容である。
【００２６】
次に、図８に示した検索条件式登録制御プログラム１０６による検索条件式登録処理における検索用オートマトン作成プログラム１０９の処理内容について、図１２のＰＡＤ図を用いて説明する。
検索用オートマトン作成プログラム１０９は、図１２に示すように、まずステップ１２００で有限オートマトン作成プログラム１１０を起動し、前記検索条件式解析プログラム１０７によって抽出された全ての検索タームを照合する有限オートマトン１２１を作成する。
この有限オートマトン１２１の作成方法には、上記非特許文献１および上記非特許文献２に開示されている方法を用いる。
次に、ステップ１２０１でユーザリスト作成プログラム１１１を起動し、前記検索条件式解析プログラム１０７によって抽出された検索タームが含まれる検索条件式を指定したユーザ１２６の識別番号（ユーザ番号）とその検索タームが含まれる項の番号（項番号）からユーザリスト１２２を作成し、ステップ１２０２でポインタを介して有限オートマトン１２１の出力テーブルに接続する。
【００２７】
前記検索ターム数カウントテーブル１２０の説明に用いた３つの検索条件式から作成される有限オートマトン１２１とユーザリスト１２２の例を図１３に示す。
本図に示した有限オートマトン１２１は、検索条件式中に含まれる“文書”、“文字”、“検索”、“サーチ”、“認識”および“学習”という６つの検索タームを照合するものである。
本図では簡単のため、状態遷移を２バイト（１文字）単位で示している。
この有限オートマトン１２１は上記非特許文献１および上記非特許文献２で示したものと同様なものであるが、出力テーブルの部分が異なる。
出力テーブルに格納されている各状態番号に対応して出現フラグが設けてある。この出現フラグはテキストの走査開始時に０にリセットしておき、検索タームと一致する部分文字列がテキスト中に現われた場合に１をセットする。
また、出力テーブルの末尾にはポインタが設けてあり、その検索タームを含む検索条件式のユーザ番号および項番号をリストとしてつないだユーザリスト１２２を指し示すようにしている。
ユーザリスト１２２の一つ一つの要素には、検索ターム否定フラグが設けてあり、検索条件式においてその検索タームに否定条件が掛かっている場合には１を、そうでなければ０を設定する。
例えば、本図において“文書”という検索タームはユーザ番号１の検索条件式の項番号１および２の項に否定条件無しで存在し、“認識”という検索タームはユーザ番号２の検索条件式の項番号１の項に否定条件付きで存在している。
【００２８】
次に、図１１に示したテキスト検索制御プログラム１１２におけるテキスト検索処理を実行するテキスト検索プログラム１１４の処理内容について、図１４のＰＡＤ図を用いて説明する。
テキスト検索プログラム１１４は、本図に示すように、まずステップ１４００でテキスト検索の初期設定として、検索ターム数カウントテーブル１２０に設けてある検索タームの出現数カウント用領域および有限オートマトン１２１の出力テーブルに設けてある出現フラグを０にリセットする。
次に、ステップ１４０１で、テキスト走査プログラム１１５を起動し、ワークエリア１２３に格納されているテキストを、有限オートマトン作成プログラム１１０によって作成された有限オートマトン１２１で走査し、検索タームを照合する。
この有限オートマトン１２１による検索タームの照合処理には上記非特許文献および上記非特許文献２に開示されている方法を用いる。
このとき、テキスト中に一致する部分文字列が出現した検索タームについては、その検索タームに対応する出力テーブルの出現フラグを１に設定する。
次に、ステップ１４０２で検索ターム数カウントプログラム１１６を起動し、テキスト中に一致する部分文字列が出現した検索タームのカウントを行う。
これは、出力テーブルに設けてある出現フラグが１であるユーザリスト１２２を辿り、検索ターム否定フラグが０であるユーザ番号と項番号に対応する検索ターム数カウントテーブル１２０における検索タームの出現数カウント用領域の値を１ずつ増やしていくことにより実現する。
次に、ステップ１４０３でテキスト中に一致する部分文字列が出現しなかった検索タームのカウントを行う。
これは、出力テーブルに設けてある出現フラグが０であるユーザリスト１２２を辿り、検索ターム否定フラグが１であるユーザ番号と項番号に対応する検索ターム数カウントテーブル１２０における検索タームの出現数カウント用領域の値を１ずつ増やしていくことにより実現する。
【００２９】
次に、ステップ１４０４で検索条件式チェックプログラム１１７を起動し、検索ターム数カウントテーブル１２０を参照し、検索条件式が成立しているかどうかを調べる。
ここで、以下の２つの条件のうち、どちらかを満たしている検索条件式は成立しているものとみなせる。
条件（１）：検索条件式否定フラグが０（すなわち、検索条件式に否定条件が掛かっていない）で、検索ターム数が一致している項番号が少なくとも一つある。
条件（２）：検索条件式否定フラグが１（すなわち、検索条件式に否定条件が掛かっている）で、検索ターム数が一致している項番号が一つもない。
【００３０】
この検索条件式の成否の判定について、図１０を用いて説明する。
本発明では本図に示すように、ユーザ１２６が指定した検索条件式を項が論理和条件でつながれた形式に変形し、その項毎に含まれる検索ターム数を検索ターム数カウントテーブル１２０に格納している。
項が論理和条件でつながれているということは、それらの項のどれか一つが成立すればその検索条件式全体が成立することになる。
ここで、項は単一の検索タームあるいは検索タームの論理積条件である。
そのため、その項の中に含まれる検索タームと一致する部分文字列全てがテキスト中に出現した場合、すなわち予め検索ターム数カウントテーブル１２０に格納しておいた検索ターム数と検索ターム数カウントプログラム１１６によって算出された検索ターム出現カウント数が一致した場合、その項が成立することになる。
その結果、項の論理和条件で構成される検索条件式も成立することになる。
このように、上記条件（１）を満たせば、検索条件式は成立しているものとみなせる。
【００３１】
上記条件（２）では、条件（１）と逆になる。
検索条件式に否定条件が掛かっている場合、検索条件式から否定条件を取った検索条件式が成立していれば、否定条件が掛かった元の検索条件式は成立せず、検索条件式から否定条件を取った検索条件式が成立していなければ、否定条件が掛かった元の検索条件式は成立していることになる。
予め検索ターム数カウントテーブル１２０に格納しておいた検索ターム数と検索ターム数カウントプログラム１１６によって算出された検索ターム出現カウント数が一致している項が一つもなければ、否定条件を取った検索条件式は成立せず、否定条件が掛かった元の検索条件式が成立することになる。
このように、上記条件（２）を満たせば、検索条件式は成立しているものとみなせる。
上記条件のどちらかを満たしている検索条件式は成立しているとみなせるため、ステップ１４０５でそのユーザ番号をテキスト検索制御プログラム１１２へ出力し、本プログラムを終了する。
以上が本発明の文書検索方法の実施例である。
【００３２】
以下、図８に示した本実施例における検索条件式登録制御プログラム１０６の処理手順について具体的に説明する。
まず、図８の検索条件式登録制御プログラム１０６のステップ８００における検索条件式解析プログラム１０７の処理について説明する。
検索条件式解析プログラム１０７は検索条件式登録制御プログラム１０６によって起動される。
例えば、「“文書”ａｎｄ（“検索”ｏｒ“サーチ”）」、すなわち「“文書”を含み、かつ“検索”または“サーチ”を含む文書」というユーザ１の検索条件式の展開結果を数（１）に、「“文字”ａｎｄ  ¬（“認識”ｏｒ“学習”）」、すなわち「“文字”を含むが、“認識”も“学習”も含まない文書」というユーザ２の検索条件数の展開結果を数（２）に、「¬（“検索”ａｎｄ  “学習”）」、すなわち「“検索”も“学習”も含まない文書」というユーザ３の検索条件式の展開結果を数（３）に示す。
【００３３】
【数１】
0003619825.tif 000002
【数２】
0003619825.tif 000003
【数３】
0003619825.tif 000004
この結果、論理和条件の外側に論理積条件が掛かっていない検索条件式が、すなわち、「（“文書”ａｎｄ“検索”）ｏｒ（“文書”ａｎｄ“サーチ”）」、「“文字”ａｎｄ  ¬“認識”ａｎｄ  ¬“学習”」、「¬（“検索”ａｎｄ  “学習”）」が得られる。
これらの検索条件式中に含まれる検索タームをユーザ番号と項番号という観点から表にまとめると表１のようになる。
【００３４】
【表１】
0003619825.tif 000005
ここで、ユーザ番号の前に“¬”が付与されているのは検索条件式全体に否定条件が掛かることを、検索タームの前に“¬”が付与されているのは検索タームに否定条件が掛かることを示す。
例えば、ユーザ番号１の検索条件式の項番号１には“文書”と“検索”という２つの検索タームが、項番号２には“文書”と“サーチ”という２つの検索タームが含まれ、ユーザ番号２の検索条件式の項番号１には“文字”、“認識”および“学習”という３つの検索タームが含まれ、このうち“認識”と“学習”には否定条件が掛かることを表している。
【００３５】
次に、図８の検索条件式登録制御プログラム１０６のステップ８０１における検索ターム数カウントテーブル作成プログラム１０８の処理について説明する。検索ターム数カウントテーブル作成プログラム１０８は検索条件式登録制御プログラム１０６によって、検索条件式解析プログラム１０７の次に起動される。
本プログラムは、検索条件式解析プログラム１０７による解析結果に基づき検索ターム数カウントテーブル１２０を作成する。
表１の解析結果から作成される検索ターム数カウントテーブル１２０は図１０のようになる。
本テーブルには、各ユーザ番号毎に項番号に対応して検索タームの数が格納される。
また前述したように、検索条件式否定フラグには検索条件式全体に否定条件が掛かっているなら１を、そうでなければ０を設定する。
【００３６】
最後に、図８の検索条件式登録制御プログラム１０６のステップ８０２における検索用オートマトン作成プログラム１０９の処理について説明する。
本プログラムの処理内容は図１２に示した。本プログラムは図１に示したように、有限オートマトン作成プログラム１１０およびユーザリスト作成プログラム１１１から構成される。
以下、順に説明する。
【００３７】
有限オートマトン作成プログラム１１０では、検索条件式解析プログラム１０７によって抽出された全ての検索タームを照合する有限オートマトン１２１を作成する。
例えば、数（１）、数（２）、数（３）および表１に示した例の場合、検索条件式解析プログラム１０７の解析結果から“文書”、“検索”、“サーチ”、“文字”、“認識”および“学習”の６つの検索タームが得られる。
上記非特許文献１および上記非特許文献２に開示されている方法を用いて、これらの検索タームを照合する有限オートマトン１２１を作成すると、図１３に示したような有限オートマトン１２１が得られる。
ただし、ここでは簡単のため、状態遷移を１文字すなわち２バイト単位で示している。
【００３８】
ユーザリスト作成プログラム１１１では、検索条件式解析プログラム１０７によって得られた検索タームが含まれる検索条件式のユーザ番号、項番号およびその検索タームに否定条件が掛かっているかどうかという情報をリストでつなぐことによってユーザリスト１２２を作成し、ポインタを介して有限オートマトン１２１の出力テーブルに接続する。
このユーザリスト１２２の作成方法は前述した通りである。
表１の解析結果から作成されるユーザリスト１２２を図１５に示す。
例えば、“学習”という検索タームはユーザ番号２の検索条件式の項番号１の項に否定条件付きで含まれ、ユーザ番号３の検索条件式の項番号１の項に否定条件無しで含まれるので、これらに対応する番号をリストでつないだ形でユーザリスト１２２が作成される。
そして、このようにして作成されたユーザリスト１２２は、有限オートマトン１２１の出力テーブルにポインタを介して接続される。
以上が本実施例における検索条件式登録制御プログラム１０６における検索条件式登録の詳細な手順である。
【００３９】
以下、図１１に示した本実施例におけるテキスト検索制御プログラム１１２の処理手順について具体的に説明する。
まず、図１１のテキスト検索制御プログラム１１２のステップ１１００におけるテキスト取得プログラム１１３の処理について説明する。
テキスト取得プログラム１１３はテキスト検索制御プログラム１１２によって起動される。
本プログラムでは、電子メールによって配信されたテキストをワークエリア１２３に格納する。
本プログラムによって、「検索した文書の書式を解析し、文字列部分を認識する」というテキストがワークエリア１２３に格納されたものとして、以下の説明を行う。
【００４０】
図１１のテキスト検索制御プログラム１１２のステップ１１０１におけるテキスト検索プログラム１１４の処理について説明する。
本プログラムの処理内容は図１４に示した。
本プログラムは図１に示したように、テキスト走査プログラム１１５、検索ターム数カウントプログラム１１６および検索条件式チェックプログラム１１７から構成される。
以下、順に説明する。
まず、上記テキスト走査プログラム１１５、検索ターム数カウントプログラム１１６および検索条件式チェックプログラム１１７が実行される前に初期設定が行われる。
ここでは、図１０および図１５に示すように、検索ターム数カウントテーブル１２０の検索タームの出現数カウント用領域および出力テーブルの出現フラグが０にリセットされる。
【００４１】
テキスト走査プログラム１１５では、ワークエリア１２３に格納されているテキストを、有限オートマトン１２１で走査して、検索タームを照合する。
ここで、テキスト中に一致する部分文字列が出現した検索タームに対応する出現フラグを１に設定する。
例えば、図１６に示したようにテキスト「検索した文書の書式を解析し、文字列部分を認識する」を走査すると、まず、“検索”がテキスト中に現われる。
【００４２】
そこで、“検索”に対応する出現フラグを１に設定する。
以下、“文書”、“文字”および“認識”の順に出現するので、それらの検索タームに対応する出現フラグを１に設定する。
“サーチ”および“学習”という検索タームについては、テキスト中に一致する部分文字列が現われないので、それらの検索タームに対応する出現フラグは０のままである。
【００４３】
検索ターム数カウントプログラム１１６では、まず、テキスト中に一致する部分文字列が出現した検索タームのカウントを行う。
ここでは、テキスト中に一致する部分文字列が出現し、すなわち出現フラグが１で、検索タームに否定条件が掛かっていない、すなわち検索ターム否定フラグが０であるユーザ番号と項番号に対応する検索ターム数カウントテーブル１２０の検索タームの出現数カウント用領域を１増やす。
例えば、図１７の例では、検索ターム“検索”に関してはユーザ番号３の項番号１の検索ターム否定フラグは０なのでカウントするが、検索ターム“認識”についてはユーザ番号２の項番号１の検索ターム否定フラグが１なのでカウントしない。
次に、テキスト中に一致する部分文字列が出現しなかった検索タームのカウントを行う。
ここでは、テキスト中に一致する部分文字列が出現せず、すなわち出現フラグが０で、検索タームに否定条件が掛かっている、すなわち検索ターム否定フラグが１であるユーザ番号と項番号に対応する検索ターム数カウントテーブル１２０の検索タームの出現数カウント用領域を１増やす。
例えば、図１８の例では、検索ターム“学習”に関してはユーザ番号２の項番号１の検索ターム否定フラグは１なのでカウントするが、ユーザ番号３の項番号１の検索ターム否定フラグは０なのでカウントしない。
【００４４】
次に、検索条件式チェックプログラム１１７では、検索ターム数カウントテーブル１２０を参照し、検索条件式が成立しているかどうかを調べる。
ここで、以下の２つの条件のうち、どちらかを満たしている検索条件式は成立しているとみなせるため、その検索条件式を指定したユーザの番号を出力する。条件（１）：検索条件式否定フラグが０、すなわち検索条件式に否定条件が掛かっておらず、検索ターム数が一致している項番号が少なくとも一つある。
条件（２）：検索条件式否定フラグが１、すなわち検索条件式に否定条件が掛かっていて、検索ターム数が一致している項番号が一つもない。
例えば、図１９の例の場合、ユーザ番号１に対応する検索条件式否定フラグが０で、項番号１の検索ターム数と検索ターム出現カウント数が一致しているため、上記条件（１）を満たしている。
また、ユーザ番号３に対応する検索条件式否定フラグが１で、検索ターム数と検索ターム出現カウント数が一致している項番号が存在しないため、上記条件（２）を満たしている。
しかし、ユーザ番号２では、検索条件式否定フラグが０であるにもかかわらず、検索ターム数と検索ターム出現カウント数が一致している項が存在しないため、上記条件をいずれも満たしてはいない。
したがって、ユーザ番号１およびユーザ番号３の検索条件式が成立しているとみなせるため、これらのユーザ番号を出力する。
【００４５】
最後に、図１１のテキスト検索制御プログラム１１２のステップ１１０３におけるテキスト成形プログラム１１８の処理について説明する。
テキスト成形プログラム１１８は、上記テキスト検索プログラム１１４の結果、ユーザ番号が出力された場合のみ、テキスト検索制御プログラム１１２によって起動される。
本プログラムでは、ワークエリア１２３に格納されているテキストを電子メールプログラム１１９が配布できるような形式に成形する。
例えば、テキストの先頭にヘッダと呼ばれる制御情報を付加する。
図２０に本プログラムの処理結果の例を示す。
本図では、ヘッダとして“Ｔｏ：”、“Ｓｕｂｊｅｃｔ：”および
“Ｆｒｏｍ：”の各行が付加されている。
“Ｔｏ：”行にはテキストを配布する宛て先、例えば電子メールの送り先のアドレスを付加する。
図２０では、ユーザ１およびユーザ３にテキストを配布するため、“ユーザ１”および“ユーザ３”と記述されている。
“Ｓｕｂｊｅｃｔ：”行にはユーザが識別しやすい情報を付加する。
本図では、配布するテキストの最初の数文字を抜き出して記述しているが、ここには何を付加してもよい。
“Ｆｒｏｍ：”行にはテキストの送り元、例えば電子メールの送り元のアドレスを付加する。
本図では、テキストを配布するシステムの名称である“文書検索配送システム”と記述されている。
以上が本実施例におけるテキスト検索制御プログラム１１２におけるテキスト検索の詳細な手順である。
【００４６】
テキスト検索制御プログラム１１２の処理の結果、成立している検索条件式が一つでも存在した場合には、図７に示したように、テキスト検索制御プログラム１１２の終了後、電子メールプログラム１１９がシステム制御プログラム１０５によって起動される。
本プログラムでは、テキスト成形プログラム１１８によって付加されたヘッダを参照して、テキストを電子メールによって配布する。
例えば、図２０の例の場合、ヘッダの“Ｔｏ：”行に相当する部分を参照し、そこに記述されている宛て先にヘッダが付加されたテキストを送付する。
本図では、“Ｔｏ：”行に“ユーザ１”および“ユーザ３”と記述されているため、ユーザ１とユーザ３にテキストを配布し、処理を終了する。
【００４７】
以上説明したように、本発明によれば、複数ユーザの検索条件式の登録時に、それらの検索条件式中に含まれる検索タームを指定したユーザの識別情報とそのユーザが指定した検索条件式中に含まれる検索タームの数を記憶しておき、テキストの検索時に、テキスト中に一致する部分文字列が出現した検索タームのユーザ毎の数と記憶しておいたユーザ毎の検索ターム数とを比較することによって全ての検索条件式が成立しているかどうかを判別することができるため、ただ一度のテキスト走査で全てのユーザの検索条件式の成否を判定でき、全ユーザの検索条件式に関する検索処理を一度に行うことが可能となる。
その結果、複数の情報源から入手したテキストを、ユーザが予め登録しておいた検索条件式に基づき、テキストのただ一度の走査で複数ユーザの検索条件式が成立しているかどうかを判別し、条件が成立しているユーザに対して即座にそのテキストを配布することができる即時性の高い文書検索配送システムを実現することが可能となる。
また、この文書検索配送システムは即時性が高いので、ユーザがシステムに検索条件式を通知してから検索されたテキストが配送されるまでの時間が短く、この時間を監視することにより本発明が適用されているか否かを判定することが可能である。
【００４８】
《第二実施例》
次に、本発明の第二の実施例について説明する。
本実施例で示す文書検索配送システムでは、ユーザ毎に配布条件を管理することにより、ある程度まとめてテキストを配布したり、決まった時間に配布するなど、ユーザの希望に応じてテキストを配布することが可能となる。
また、商業的なシステムとして用いる場合には、ユーザの契約条件に応じて時間遅延を設けてテキストを配布することも可能となる。
【００４９】
本実施例は第一の実施例（図１）と基本的に同様の構成をとるが、その中の主メモリ１０４内の構成が異なる。
この主メモリ１０４内の構成は図２１に示すようなものとなる。
図２１に示すように、主メモリ１０４ａに配布管理テーブル２１０８を確保し、システム制御プログラム１０５ａの制御下に配布条件登録制御プログラム２１００およびテキスト配布制御プログラム２１０４を新たに設ける。
また、配布条件登録制御プログラム２１００の制御下に配布条件解析プログラム２１０１および配布条件登録プログラム２１０２を、テキスト検索制御プログラム１１２ａの制御下に配布情報格納プログラム２１０３を、テキスト配布制御プログラム２１０４の制御下にテキスト配布プログラム２１０５を設ける。
このテキスト配布プログラム２１０５は配布条件チェックプログラム２１０６、電子メールプログラム１１９および配布情報修正プログラム２１０７で構成される。
電子メールプログラム１１９にはワークステーションなどで一般的に用いられている既存のメールプログラムを用いる。
以上のプログラムはハードディスク装置、フレキシブルディスクなどのコンピュータで読み書きできる記憶媒体に格納することもできる。
【００５０】
システム制御プログラム１０５ａは文書検索配送システムの管理者によるキーボード１０１からの指示を受けて起動される。
配布条件登録制御プログラム２１００、検索条件式登録制御プログラム１０６、テキスト検索制御プログラム１１２ａおよびテキスト配布制御プログラム２１０４はユーザ１２６からの配布条件や検索条件式の登録指示、キーボード１０１からの配布条件の登録指示およびニュース配信元１２５からのテキストの配信により、システム制御プログラム１０５ａによって起動され、それぞれ配布条件解析プログラム２１０１および配布条件登録プログラム２１０２の制御、検索条件式解析プログラム１０７、検索ターム数カウントテーブル作成プログラム１０８および検索用オートマトン作成プログラム１０９の制御、テキスト取得プログラム１１３、テキスト検索プログラム１１４、テキスト成形プログラム１１８および配布情報格納プログラム２１０３の制御、テキスト配布プログラム２１０５の制御を行う。
以下、本実施例における文書検索配送システムの処理内容について説明する。
【００５１】
まず、システム制御プログラム１０５ａの処理内容について図２２のＰＡＤ図を用いて説明する。
システム制御プログラム１０５ａでは、まずステップ２２００で、キーボード１０１から終了コマンドが入力されるまで、以下のステップを繰り返す。
この繰り返し処理では、まずステップ２２０１でユーザ１２６からの電子メールあるいはキーボード１０１の入力によって配布条件が送られてきているかどうかを調べる。
ここで、配布条件が送られてきている場合には、ステップ２２０２で配布条件登録制御プログラム２１００を起動して、配布条件の登録を行う。
次に、ステップ２２０３でユーザ１２６から電子メールによって検索条件式が送られてきているかどうかを調べる。
ここで、検索条件式が送られてきている場合には、ステップ２２０４で検索条件式登録制御プログラム１０６を起動して、検索条件式の登録を行う。
次に、ステップ２２０５でニュース配信元１２５から電子メールによってテキストが送られてきているかどうかを調べる。
ここで、テキストが送られてきている場合には、ステップ２２０６でテキスト検索制御プログラム１１２ａを起動して、テキストの検索を行う。
最後に、ステップ２２０７でテキスト配布制御プログラム２１０４を起動し、配布条件を判定してその条件を満たしているユーザに対してのみテキストを配布する。
以上がシステム制御プログラム１０５ａの処理内容である。
【００５２】
以下、第一の実施例にはない配布条件登録制御プログラム２１００とテキスト配布制御プログラム２１０４および第一の実施例と処理が異なるテキスト検索制御プログラム１１２ａの処理内容について説明する。
まず、配布条件登録制御プログラム２１００による配布条件登録の処理内容について図２３のＰＡＤ図を用いて説明する。
配布条件登録制御プログラム２１００はシステム制御プログラム１０５ａによって起動される。
本プログラムは、まずステップ２３００で配布条件解析プログラム２１０１を起動し、ユーザ１２６からの電子メールあるいはキーボード１０１の入力によって送られてきた配布条件を解析する。
この配布条件の解析処理では、配布条件から以下の情報を抽出する。
（Ａ）配布条件を設定するユーザの識別子
（Ｂ）配布条件の形式
（Ｃ）配布条件の設定値
上記（Ｂ）の配布条件の形式としては、「配布時間」、「配布件数」、「遅延時間」などの配布条件の種別を抽出する。
（Ｃ）の配布条件の設定値として抽出する値は、例えば（Ｂ）が「配布時間」ならその時間、「配布件数」なら配布する件数、「遅延時間」なら検索してから実際に配布するまでの経過時間である。
例えば、
ユーザ番号１：配布時間（１８：００）
という“ユーザ番号１に対して１８：００に配布する”ことを意味する配布条件が送られてきた場合には「ユーザ番号１」、「配布時間」および「１８：００」を抽出する。
ユーザ番号２：配布件数（５）
という“ユーザ番号２に対して５件たまったら配布する”ことを意味する配布条件が送られてきた場合には「ユーザ番号２」、「配布件数」および「５」を抽出する。
ユーザ番号３：遅延時間（０１：３０）
という“ユーザ番号３に対して１時間３０分遅れて配布する”ことを意味する配布条件が送られてきた場合には「ユーザ番号３」、「遅延時間」および「０１：３０」を抽出する。
最後に、ステップ２３０１で配布条件登録プログラム２１０２を起動し、配布条件解析プログラム２１０１によって解析された結果を配布管理テーブル２１０８に格納する。
図２４に配布管理テーブル２１０８の例を示す。
配布管理テーブル２１０８には配布条件解析プログラム２１０１によって抽出された配布条件の形式と設定値がユーザ番号に対応する形で格納され、配布条件チェック用領域および配布テキスト番号格納用領域が確保されている。
【００５３】
次に、テキスト検索制御プログラム１１２ａによるテキスト検索の処理内容について図２５のＰＡＤ図を用いて説明する。
テキスト検索制御プログラム１１２ａはシステム制御プログラム１０５ａによって起動される。
図２５に示す本プログラムの処理内容のうち、ステップ２５００〜２５０３におけるテキスト取得プログラム１１３、テキスト検索プログラム１１４およびテキスト成形プログラム１１８の処理内容は第一の実施例で述べた通りである。
テキスト検索制御プログラム１１２ａはステップ２５０４で、配布情報格納プログラム２１０３を起動し、配布管理テーブル２１０８の配布テキスト番号格納用領域に検索条件が成立した配布すべきテキストの番号を追加格納する。
次に、ステップ２５０５で配布管理テーブル２１０８の配布テキスト番号格納用領域に格納してあるテキスト番号の数、あるいは現在の時間を本テーブルの配布条件チェック用領域に格納する。
このとき、配布条件の形式が「配布件数」の場合には格納してあるテキスト番号の数を、「遅延時間」の場合には現在の時間を格納する。「配布時間」の場合には何も格納する必要はない。
その後、ステップ２５０６でテキスト成形プログラム１１８によって成形されたテキストをワークエリア１２３に格納する。
【００５４】
最後に、テキスト配布制御プログラム２１０４によるテキスト配布の処理内容について図２６のＰＡＤ図を用いて説明する。
テキスト配布制御プログラム２１０４はシステム制御プログラム１０５ａによって起動される。
本プログラムは、ステップ２６００でテキスト配布プログラム２１０５を起動し、ユーザ毎に配布条件を判定し、その条件を満たしているユーザに対してテキストを配布する。
【００５５】
テキスト配布プログラム２１０５の詳細な処理内容を図２７に示す。
テキスト配布プログラム２１０５は、まずステップ２７００で、配布管理テーブル２１０８に配布条件が格納されている全てのユーザ番号に対して以下のステップを繰り返す。
この繰り返し処理では、まずステップ２７０１で配布条件チェックプログラム２１０６を起動し、配布管理テーブル２１０８を用いて配布条件を満たしているか否かを判定する。
ここで、以下の条件を満たしていれば配布条件を満たしているとみなす。
条件（１）：配布条件の形式が「配布時間」で、配布条件の設定値と現在の時間が一致するか、あるいは配布条件の設定値より現在の時間の方が超過している。
条件（２）：配布条件の形式が「配布件数」で、配布条件の設定値と配布条件チェック用領域に格納されている件数が一致する。
条件（３）：配布条件の形式が「遅延時間」で、配布条件の設定値と配布条件チェック用領域に格納されている時間から現在の時間までの経過時間が一致するか、あるいは配布条件の設定値より経過時間の方が超過している。
上記の条件を満たしている場合には、ステップ２７０２で配布条件を満たしていると判断し、ステップ２７０３で電子メールプログラム１１９を起動して配布管理テーブル２１０８の配布テキスト番号格納用領域に格納されている番号のテキストをそのユーザ番号に配布する。
最後に、ステップ２７０４で配布情報修正プログラム２１０７を起動し、テキストを配布したユーザ番号に対応する配布管理テーブル２１０８の配布条件チェック用領域と配布テキスト番号格納用領域をリセットする。
これは、配布条件チェック用領域をＮＵＬＬクリアし、配布テキスト番号格納用領域からテキスト番号を削除することで実現する。
以上が本発明の文書検索システムの実施例である。
【００５６】
以下、図２３に示した本実施例における配布条件登録制御プログラム２１００の処理手順について図２８を用いて具体的に説明する。
まず、図２３の配布条件登録制御プログラム２１００のステップ２３００における配布条件解析プログラム２１０１の処理について説明する。
配布条件解析プログラム２１０１は配布条件登録制御プログラム２１００によって起動される。
本プログラムは、ユーザ１２６から電子メールで送られてきた配布条件あるいはキーボード１０１から入力された配布条件を解析する。
例として「ユーザ番号１：配布時間（１８：００）」、「ユーザ番号２：配布件数（５）」および「ユーザ番号３：遅延時間（０１：３０）」という配布条件を解析した結果を図２８に示す。
例えば「ユーザ番号１：配布時間（１８：００）」という配布条件の場合、解析結果として、配布条件を設定するユーザ番号「１」、配布条件の形式「配布時間」、配布条件の設定値「１８：００」が得られる。
【００５７】
次に、図２３の配布条件登録制御プログラム２１００のステップ２３０１における配布条件登録プログラム２１０２の処理について説明する。
配布条件登録プログラム２１０２は配布条件登録制御プログラム２１００によって、配布条件解析プログラム２１０１の次に起動される。
本プログラムは、配布条件解析プログラム２１０１による解析結果に基づき配布管理テーブル２１０８を作成する。
作成された配布管理テーブル２１０８の例を図２８に示す。
本テーブルには、配布条件解析プログラム２１０１による解析結果に基づき、各ユーザ番号に対応して配布条件の形式および設定値を格納する。また、配布条件チェック用領域および配布テキスト番号格納用領域を確保する。
以上が本実施例における配布条件登録制御プログラム２１００における検索条件式登録処理の詳細な手順である。
【００５８】
以下、図２５に示した本実施例におけるテキスト検索制御プログラム１１２ａの処理手順について具体的に説明する。
図２５に示す本プログラムの処理内容のうち、ステップ２５００〜２５０３におけるテキスト取得プログラム１１３、テキスト検索プログラム１１４およびテキスト成形プログラム１１８の処理内容は第一の実施例で詳しく述べた通りである。
以下は、ステップ２５０４〜２５０６における配布情報格納プログラム２１０３の詳細な処理内容である。
配布情報格納プログラム２１０３は、テキスト検索制御プログラム１１２ａによってテキスト成形プログラム１１８の次に起動される。
本プログラムは、まず、ステップ２５０４でテキストの番号を、検索条件式が成立したユーザ番号に対応する配布管理テーブル２１０８の配布テキスト番号格納用領域に格納する。
図２９に本プログラムの処理内容の例を示す。
本図は、５９番のテキストに対してユーザ番号１およびユーザ番号２の検索条件式が成立した場合の例である。
そのため、配布管理テーブル２１０８の配布テキスト番号格納用領域のユーザ番号１およびユーザ番号２に対応する場所にテキスト番号“５９”が格納される。
次に、配布情報格納プログラム２１０３は、ステップ２５０４で配布管理テーブル２１０８の配布テキスト番号格納用領域に格納してあるテキスト番号の数、あるいは現在の時間を配布管理テーブル２１０８の配布条件チェック用領域に格納する。
このとき、配布条件の形式が「配布件数」の場合には格納してあるテキスト番号の数を、「遅延時間」の場合には現在の時間を格納する。「配布時間」の場合には何も格納する必要はない。
図２９の例の場合、ユーザ番号２の配布条件の形式は「配布件数」であるので、配布条件チェック用領域の値を１増やして“５”にするが、ユーザ番号１の配布条件の形式は「配布時間」であるため何もしない。
最後に、配布情報格納プログラム２１０３はステップ２５０６で、テキスト成形プログラム１１８によって成形されたテキストをワークエリア１２３に格納して終了する。
【００５９】
最後に、図２６のテキスト配布制御プログラム２１０４のステップ２６００におけるテキスト配布プログラム２１０５の処理について説明する。
テキスト配布プログラム２１０５の詳細な処理内容は図２７に示した通りである。
まず、ステップ２７００で、配布管理テーブル２１０８に配布条件が格納されている全てのユーザに対して以下の処理を繰り返す。
この繰り返し処理では、まずステップ２７０１で配布条件チェックプログラム２１０５を起動し、配布条件を判定する。
ここで、以下の条件を満たしていれば配布条件を満たしているとみなす。
条件（１）：配布条件の形式が「配布時間」で、配布条件の設定値と現在の時間が一致するか、あるいは配布条件の設定値より現在の時間の方が超過している。
条件（２）：配布条件の形式が「配布件数」で、配布条件の設定値と配布条件チェック用領域に格納されている件数が一致する。
条件（３）：配布条件の形式が「遅延時間」で、配布条件の設定値と配布条件チェック用領域に格納されている時間から現在の時間までの経過時間が一致するか、あるいは配布条件の設定値より経過時間の方が超過している。
【００６０】
ユーザ番号１の配布条件の形式は「配布時間」である。
しかし、現在の時間“１４：００”は配布条件の設定値“１８：００”を超過していないため、配布条件が満たされていない。そのため、次の繰り返しに移る。
【００６１】
ユーザ番号２の配布条件の形式は「配布件数」であり、配布条件チェック用領域に格納されている件数と配布条件の設定値が“５”と一致しているので、ステップ２７０３で電子メールプログラム１１９を起動し、配布管理テーブル２１０８の配布テキスト番号格納用領域に格納されている番号のテキストを配布する。本図においてユーザ番号２に対応する配布テキスト番号格納用領域には、テキスト番号１９、２４、３３、４２、５９が格納されているので、ワークエリア１２３に格納されているテキストで同じ番号のものをユーザ番号２に配布する。
次に、ステップ２７０４で配布情報修正プログラム２１０７を起動し、テキストを配布したユーザ番号、すなわちユーザ番号２に対応する配布管理テーブル２１０８の配布チェック用領域および配布テキスト番号格納用領域をリセットし、次の繰り返し処理を行う。
【００６２】
ユーザ番号３の配布条件の形式は「遅延時間」であり、配布条件チェック用領域に格納されている時間から現在の時間までの経過時間と配布条件の設定値に格納されている時間が“０１：３０”と一致しているので、ステップ２７０３で電子メールプログラム１１９を起動し、配布管理テーブル２１０８の配布テキスト番号格納用領域に格納されている番号のテキストを配布する。
本図においてユーザ番号３に対応する配布テキスト番号格納用領域には、テキスト番号５３が格納されているので、ワークエリア１２３に格納されているテキストで同じ番号のものをユーザ番号３に配布する。
次に、ステップ２７０４で配布情報修正プログラム２１０７を起動し、テキストを配布したユーザ番号、すなわちユーザ番号２に対応する配布管理テーブル２１０８の配布チェック用領域および配布テキスト番号格納用領域をリセットする。
全ての繰り返し処理が終了したときの配布管理テーブル２１０８を図３０に示す。
ユーザ番号２およびユーザ番号３にテキスト配布処理を行ったので、それらに対応する配布条件チェック用領域および配布テキスト番号格納用領域がリセットされている。
【００６３】
以上説明したように、本発明によれば、ユーザ毎に配布条件を設定し、その配布条件にしたがって検索条件式が成立したテキストを配布することにより、ある程度まとめてテキストを配布したり、決まった時間に配布するなど、ユーザの希望に応じてテキストを配布することが可能となる。
また、商業的なシステムとして用いる場合には、ユーザの契約条件に応じて時間遅延を設けてテキストを配布することも可能となる。
その結果、複数の情報源から入手したテキストを、ユーザが予め登録しておいた検索条件式に基づき、テキストのただ一度の走査で複数ユーザの検索条件式が成立しているかどうかを判別し、ユーザの個々の希望配布条件に応じてそのテキストを配布することができる柔軟性の高い文書検索配送システムを実現することが可能となる。
【００６４】
《第三実施例》
次に、本発明の第三の実施例について説明する。
本実施例で示す文書検索配送システムでは、各ユーザが指定した検索条件式に含まれる検索タームをユーザ毎に管理し、ユーザから検索条件式の削除が指示された際に、管理してある検索タームで有限オートマトンを探索し、ユーザリストのポインタを張り替えることによって、容易にユーザリストから以前の情報を削除することができる。
この実施例によれば、ユーザによる検索条件式の変更指示がある場合にも容易に変更を行うことが可能となる。
本実施例は第一の実施例（図１）と基本的に同様の構成をとるが、その中の主メモリ１０４内の構成が異なる。
この主メモリ１０４内の構成は図３１に示すようなものとなる。
図３１に示すように、主メモリ１０４ｂに検索ターム管理テーブル３１０６を確保し、システム制御プログラム１０５ｂの制御下に検索条件式削除制御プログラム３１００を新たに設ける。
また、検索条件式削除制御プログラム３１００の制御下にユーザリスト修正プログラム３１０１および検索ターム数カウントテーブル修正プログラム３１０４を、検索条件式登録制御プログラム１０６ｂの制御下に検索ターム管理テーブル作成プログラム３１０５を設ける。
ユーザリスト修正プログラム３１０１は有限オートマトン探索プログラム３１０２およびユーザリスト部分削除プログラム３１０３で構成される。
以上のプログラムはハードディスク装置、フレキシブルディスクなどのコンピュータで読み書きできる記憶媒体に格納することもできる。
【００６５】
システム制御プログラム１０５ｂは文書検索配送システムの管理者によるキーボード１０１からの指示で起動される。
検索条件式削除制御プログラム３１００、検索条件式登録制御プログラム１０６ｂおよびテキスト検索制御プログラム１１２はユーザ１２６からの検索条件式の登録や削除指示およびニュース配信元１２５からのテキストの配信により、システム制御プログラム１０５ｂによって起動され、それぞれユーザリスト修正プログラム３１０１および検索ターム数カウントテーブル修正プログラム３１０４の制御、検索条件式解析プログラム１０７、検索ターム数カウントテーブル作成プログラム１０８、検索用オートマトン作成プログラム１０９および検索ターム管理テーブル作成プログラム３１０５の制御、テキスト取得プログラム１１３、テキスト検索プログラム１１４およびテキスト成形プログラム１１８の制御を行う。
【００６６】
以下、本実施例における文書検索配送システムの処理内容について説明する。まず、システム制御プログラム１０５ｂの処理内容について図３２のＰＡＤ図を用いて説明する。
システム制御プログラム１０５ｂでは、まずステップ３２００で、キーボード１０１から終了コマンドが入力されるまで、以下のステップを繰り返す。
この繰り返し処理では、まずステップ３２０１でユーザ１２６から電子メールによって検索条件式の削除指示が送られてきているかどうかを調べる。
ここで、検索条件式の削除指示が送られてきている場合には、ステップ３２０２で検索条件式削除制御プログラム３１００を起動して、検索条件式の削除を行う。
次に、ステップ３２０３でユーザ１２６から電子メールによって検索条件式が送られてきているかどうかを調べる。
ここで、検索条件式が送られてきている場合には、ステップ３２０４で検索条件式登録制御プログラム１０６ｂを起動して、検索条件式の登録を行う。
次に、ステップ３２０５でニュース配信元１２５から電子メールによってテキストが送られてきているかどうかを調べる。
ここで、テキストが送られてきている場合には、ステップ３２０６でテキスト検索制御プログラム１１２を起動して、テキストの検索を行う。
次に、ステップ３２０７でテキスト検索制御プログラム１１２におけるテキスト検索の結果を調べ、成立している検索条件式が一つでも存在すると判断された場合には、ステップ３２０８で電子メールプログラム１１９を起動し、成立した検索条件式を指定したユーザに対し、該当テキストを電子メールを用いて配布する。
以上がシステム制御プログラム１０５ｂの処理内容である。
【００６７】
以下、第一の実施例にはない検索条件式削除制御プログラム３１００および第一の実施例と処理が異なる検索条件式登録制御プログラム１０６ｂの処理内容について説明する。
まず、検索条件式削除制御プログラム３１００による検索条件式の削除処理の内容について図３３のＰＡＤ図を用いて説明する。
検索条件式削除制御プログラム３１００はシステム制御プログラム１０５ｂによって起動される。
本プログラムは、まずステップ３３００でユーザリスト修正プログラム３１０１を起動し、検索条件式の削除が指定されたユーザ番号に対応するユーザリスト１２２を削除する。
そして、ステップ３３０１で検索ターム数カウントテーブル修正プログラム３１０４を起動し、検索条件式の削除が指定されたユーザ番号に対応する検索ターム数カウントテーブル１２０を削除する。
【００６８】
ユーザリスト修正プログラム３１０１の詳細な処理内容を図３４に示す。
本プログラムは、まずステップ３４００で検索ターム管理テーブル３１０６に格納されている検索タームの数分、以下のステップを繰り返す。検索ターム管理テーブル３１０６については後で説明する。
繰り返し処理では、まずステップ３４０１で有限オートマトン探索プログラム３１０２を起動し、検索タームで有限オートマトン１２１を探索することによってユーザリスト１２２へのポインタを得る。
最後に、ステップ３４０２でユーザリスト部分削除プログラム３１０３を起動し、ユーザリスト１２２のポインタを張り替えることによって、検索条件式の削除を行うユーザ番号に対応するリストを削除する。
以上が、検索条件式削除制御プログラム３１００による検索条件式削除の処理内容である。
【００６９】
次に、検索条件式登録制御プログラム１０６ｂによる検索条件式の登録処理の内容について図３５のＰＡＤ図を用いて説明する。
検索条件式登録制御プログラム１０６ｂはシステム制御プログラム１０５ｂによって起動される。
図３５に示す本プログラムの処理内容のうち、ステップ３５００〜３５０２における検索条件式解析プログラム１０７、検索ターム数カウントテーブル作成プログラム１０８および検索用オートマトン作成プログラム１０９の処理内容については第一の実施例で述べた通りである。
検索条件式登録制御プログラム１０６ｂはステップ３５０３で、検索ターム管理テーブル作成プログラム３１０５を起動し、検索条件式中に含まれる検索タームを検索ターム管理テーブル３１０６に格納する。
ここで、作成される検索ターム管理テーブル３１０６の例を図３６に示す。
本図に示した検索ターム管理テーブル３１０６は、「“文書”ａｎｄ（“検索”ｏｒ“サーチ”）」というユーザ１の検索条件式、「“文字”ａｎｄ  ¬（“認識”ｏｒ“学習”）」というユーザ２の検索条件式および「¬（“検索”ａｎｄ  “学習”）」というユーザ３の検索条件式から抽出した検索タームから作成されたものである。
以上が本発明の文書検索方法の実施例である。
【００７０】
以下、図３３に示した本実施例における検索条件式削除制御プログラム３１００の処理手順について図３７を用いて具体的に説明する。
まず、図３３の検索条件式削除制御プログラム３１００のステップ３３００におけるユーザリスト修正プログラム３１０１の処理について説明する。
ユーザリスト修正プログラム３１０１は検索条件式削除制御プログラム３１００によって起動される。本プログラムの詳細な処理内容は図３４に示した通りである。
本プログラムはステップ３４００で、検索ターム管理テーブル３１０６に格納されている検索タームの数分、ステップ３４０１およびステップ３４０２を繰り返す。
ステップ３４０１では、有限オートマトン探索プログラム３１０２を起動し、検索タームで有限オートマトン１２１を探索してユーザリスト１２２へのポインタを得る。
ステップ３４０２では、ユーザリスト部分削除プログラム３１０３を起動し、検索条件式の削除が指定されたユーザ番号に対応するユーザリスト１２２を削除する。
【００７１】
ユーザリスト修正プログラム３１０１の処理例を図３７に示す。
本図は「文字」、「認識」および「学習」を検索条件式中に含むユーザ番号２の検索条件式を削除する場合の例である。
検索ターム管理テーブル３１０６には「文字」、「認識」および「学習」が格納されており、これらの検索タームに対して繰り返し処理が行われる。
繰り返し処理の中でステップ３４０１では「文字」、「認識」および「学習」で有限オートマトン１２１を探索し、それぞれユーザリスト１２２へのポインタを得る。
ステップ３４０２では、それらのユーザリスト１２２を辿り、ユーザ番号２に関するユーザリスト１２２を削除する。
本図では、ユーザリスト１２２のうちユーザ番号“２”の部分が削除される。
【００７２】
次に、図３３の検索条件式削除制御プログラム３１００のステップ３３０１における検索ターム数カウントテーブル修正プログラム３１０４の処理について説明する。
検索ターム数カウントテーブル修正プログラム３１０４は、検索条件式削除制御プログラム３１００によってユーザリスト修正プログラム３１０１の次に起動される。
本プログラムでは、検索条件式の削除が指定されたユーザ番号に対応する検索ターム数カウントテーブル１２０を削除する。
図３８に本プログラムの処理例を示す。
本図に示す通り、ユーザ番号２に対応する検索ターム数カウントテーブルが削除される。
以上が本実施例における検索条件式削除制御プログラム３１００における検索条件式削除の詳細な手順である。
【００７３】
以下、図３５に示した本実施例における検索条件式登録制御プログラム１０６ｂの処理手順について具体的に説明する。
図３５に示す本プログラムの処理内容のうち、ステップ３５００〜３５０２における検索条件式解析プログラム１０７、検索ターム数カウントテーブル作成プログラム１０８および検索用オートマトン作成プログラム１０９の処理内容については第一の実施例で述べた通りである。
以下、ステップ３５０３における検索ターム管理テーブル作成プログラム３１０５の詳細な処理内容を説明する。
検索ターム管理テーブル作成プログラム３１０５は、検索条件式登録制御プログラム１０６ｂによって検索用オートマトン作成プログラム１０９の次に起動される。
本プログラムでは、検索条件式解析プログラム１０７による解析結果として得られた検索条件式中に含まれる検索タームを検索ターム管理テーブル３１０６に格納する。
【００７４】
本プログラムの処理例を図３９に示す。
本図は、ユーザ番号２のユーザが「“構造”ａｎｄ“認識”」、すなわち「“構造”と“認識”を同時に含む文書」という検索条件式を指定した場合の例である。
この検索条件式を検索条件式解析プログラム１０７によって解析すると“構造”および“認識”という２つの検索タームが得られる。
これらの検索タームを検索ターム管理テーブル３１０６にユーザ番号に対応した形で格納する。本図では、ユーザ番号２に対応する場所に“構造”および“認識”が格納されている。
以上が本実施例における検索条件式登録制御プログラム１０６ｂにおける検索条件式登録の詳細な手順である。
【００７５】
以上説明したように、本発明によれば、各ユーザが指定した検索条件式に含まれる検索タームをユーザ毎に管理し、ユーザから検索条件式の削除が指示された際に、管理してある検索タームで有限オートマトンを探索し、ユーザリストのポインタを張り替えることによって、容易にユーザリストから以前の情報を削除することが可能となる。
その結果、複数の情報源から入手したテキストを、ユーザが予め登録しておいた検索条件式に基づき、テキストのただ一度の走査で複数ユーザの検索条件式が成立しているかどうかを判別し、条件が成立しているユーザに対して即座にそのテキストを配布する文書検索配送システムにおいて、ユーザの要求に応じて検索条件式を随時変更できる文書検索配送システムを実現することが可能となる。
本実施例では、検索条件式の削除指示と登録指示が別々に送られてくる場合について説明したが、検索条件式の削除指示と登録指示が同時に送られてくる、すなわち更新指示が送られてくる場合にも削除処理と登録処理を連続して行うことにより対応できることは明らかであろう。
また、本実施例は第一の実施例に対して検索条件式の削除処理を追加したものであるが、第二の実施例に対して適用することも可能なことは明らかであろう。
【００７６】
【発明の効果】
本発明によれば、ユーザ数が、すなわち検索条件式の数が大量となる場合でも、ただ一度のテキスト走査で全ての検索条件式が成立しているかどうかを判別することができるため、高速なテキスト検索を実現することが可能となる。
また、この結果、ユーザ数が増えた場合でも、ユーザ数に依らない高速なリアルタイムのテキスト検索配布が行える文書検索配送システムを提供することが可能となる。
【図面の簡単な説明】
【図１】本発明の第一の実施例の構成を示す図である。
【図２】従来技術１における有限オートマトンの構成を示す図である。
【図３】従来技術１におけるフェイル先状態番号テーブルの構成を示す図である。
【図４】従来技術１における出力テーブルの構成を示す図である。
【図５】従来技術２における日本語テキスト用有限オートマトンの例を示す図である。
【図６】本発明の概略の処理内容を示す図である。
【図７】システム制御プログラム１０５の処理内容を示すＰＡＤ図である。
【図８】検索条件式登録制御プログラム１０６の処理内容を示すＰＡＤ図である。
【図９】検索条件式の解析方法を説明するための図である。
【図１０】検索ターム数カウントテーブル１２０の作成方法を説明するための図である。
【図１１】テキスト検索制御プログラム１１２の処理内容を示すＰＡＤ図である。
【図１２】検索用オートマトン作成プログラム１０９の処理内容を示すＰＡＤ図である。
【図１３】有限オートマトン１２１およびユーザリスト１２２の作成方法を説明するための図である。
【図１４】テキスト検索プログラム１１４の処理内容を示すＰＡＤ図である。
【図１５】ユーザリスト１２２の作成処理を説明するための図である。
【図１６】テキスト走査処理を説明するための図である。
【図１７】テキスト中に一致する部分文字列が出現した検索タームのカウント処理を説明するための図である。
【図１８】テキスト中に一致する部分文字列が出現しなかった検索タームのカウント処理を説明するための図である。
【図１９】検索条件式の成立チェック処理を説明するための図である。
【図２０】テキスト成形処理を説明するための図である。
【図２１】本発明の第二の実施例の構成を示す図である。
【図２２】システム制御プログラム１０５ａの処理内容を示すＰＡＤ図である。
【図２３】配布条件登録制御プログラム２１００の処理内容を示すＰＡＤ図である。
【図２４】配布管理テーブル２１０８の構成を示す図である。
【図２５】テキスト検索制御プログラム１１２ａの処理内容を示すＰＡＤ図である。
【図２６】テキスト配布制御プログラム２１０４の処理内容を示すＰＡＤ図である。
【図２７】テキスト配布プログラム２１０５の処理内容を示すＰＡＤ図である。
【図２８】配布条件登録処理を説明するための図である。
【図２９】配布情報格納処理を説明するための図である。
【図３０】配布条件チェック処理および配布情報修正処理を説明するための図である。
【図３１】本発明の第三の実施例の構成を示す図である。
【図３２】システム制御プログラム１０５ｂの処理内容を示すＰＡＤ図である。
【図３３】検索条件式削除制御プログラム３１００の処理内容を示すＰＡＤ図である。
【図３４】ユーザリスト修正プログラム３１０１の処理内容を示すＰＡＤ図である。
【図３５】検索条件式登録制御プログラム１０６ｂの処理内容を示すＰＡＤ図である。
【図３６】検索ターム管理テーブル３１０６の構成を示す図である。
【図３７】ユーザリスト修正処理を説明するための図である。
【図３８】検索ターム数カウントテーブル修正処理を説明するための図である。
【図３９】検索ターム管理テーブル作成処理を説明するための図である。
【符号の説明】
１００    ディスプレイ
１０１    キーボード
１０２    ＣＰＵ
１０３    バス
１０４、１０４ａ、１０４ｂ    主メモリ
１０５、１０５ａ、１０５ｂ    システム制御プログラム
１０６、１０６ｂ    検索条件式登録制御プログラム
１０７    検索条件式解析プログラム
１０８    検索ターム数カウントテーブル作成プログラム
１０９    検索用オートマトン作成プログラム
１１０    有限オートマトン作成プログラム
１１１    ユーザリスト作成プログラム
１１２、１１２ａ    テキスト検索制御プログラム
１１３    テキスト取得プログラム
１１４    テキスト検索プログラム
１１５    テキスト走査プログラム
１１６    検索ターム数カウントプログラム
１１７    検索条件式チェックプログラム
１１８    テキスト成形プログラム
１１９    電子メールプログラム
１２０    検索ターム数カウントテーブル
１２１    有限オートマトン
１２２    ユーザリスト
１２３    ワークエリア
１２４    ＬＡＮ
１２５    ニュース配信元
１２６    文書検索配送システムのユーザ
２１００    配布条件登録制御プログラム
２１０１    配布条件解析プログラム
２１０２    配布条件登録プログラム
２１０３    配布情報格納プログラム
２１０４    テキスト配布制御プログラム
２１０５    テキスト配布プログラム
２１０６    配布条件チェックプログラム
２１０７    配布情報修正プログラム
２１０８    配布管理テーブル
３１００    検索条件式削除制御プログラム
３１０１    ユーザリスト修正プログラム
３１０２    有限オートマトン探索プログラム
３１０３    ユーザリスト部分削除プログラム
３１０４    検索ターム数カウントテーブル修正プログラム
３１０５    検索ターム管理テーブル作成プログラム
３１０６    検索ターム管理テーブル
【図１】
0003619825.tif 000006
【図２】
0003619825.tif 000007
【図３】
0003619825.tif 000008
【図４】
0003619825.tif 000009
【図５】
0003619825.tif 000010
【図６】
0003619825.tif 000011
【図７】
0003619825.tif 000012
【図８】
0003619825.tif 000013
【図９】
0003619825.tif 000014
【図１０】
0003619825.tif 000015
【図１１】
0003619825.tif 000016
【図１２】
0003619825.tif 000017
【図１３】
0003619825.tif 000018
【図１４】
0003619825.tif 000019
【図１５】
0003619825.tif 000020
【図１６】
0003619825.tif 000021
【図１７】
0003619825.tif 000022
【図１８】
0003619825.tif 000023
【図１９】
0003619825.tif 000024
【図２０】
0003619825.tif 000025
【図２１】
0003619825.tif 000026
【図２２】
0003619825.tif 000027
【図２３】
0003619825.tif 000028
【図２４】
0003619825.tif 000029
【図２５】
0003619825.tif 000030
【図２６】
0003619825.tif 000031
【図２７】
0003619825.tif 000032
【図２８】
0003619825.tif 000033
【図２９】
0003619825.tif 000034
【図３０】
0003619825.tif 000035
【図３１】
0003619825.tif 000036
【図３２】
0003619825.tif 000037
【図３３】
0003619825.tif 000038
【図３４】
0003619825.tif 000039
【図３５】
0003619825.tif 000040
【図３６】
0003619825.tif 000041
【図３７】
0003619825.tif 000042
【図３８】
0003619825.tif 000043
【図３９】
0003619825.tif 000044