(57)【特許請求の範囲】
【請求項１】
所定の文書中の単語をキーワードとして登録する文書登録方法において、
前記所定の文書を構成する複数種の文字列から１つ以上の文字からなる文字列を切り出す文字切り出しステップと、
所定の規則に従った、いずれも文字数がＮ（Ｎ＝１，２・・・Ｎ）である複数個の単語の集合体を一単語グループとし当該文字数毎にグループ分けされた複数の単語グループのうち、所定の文字数Ｎに対応する単語グループを指定する単語グループ指定ステップと、
前記単語グループ指定ステップにより指定された所定の単語グループにおける複数個の単語を順次指定する単語指定ステップと、
前記文字切り出しステップにより切り出された切出文字列を、前記単語指定ステップにより指定された指定単語と比較する比較ステップと、
前記比較ステップの比較により、前記指定単語と前記切出文字列とが一致した場合に、当該文書と対応づけて前記文字列を前記キーワードとして抽出するキーワード抽出ステップと、
を有し、
前記比較ステップにおいては、当該切出文字列が前記指定単語と一致するまで、当該切出文字列と前記単語グループ指定ステップにより指定された所定の単語グループにおける複数個の単語とを順次比較し、当該所定の単語グループ内において当該一致が見られない際は、前記単語グループ指定ステップにおいて新たに指定された所定の単語グループにおける複数個の単語とを、当該一致が見られるまで順次比較を試行する、
ことを特徴とする文書登録方法。
【請求項２】
所定の文書中の単語をキーワードとして検索する文書検索方法において、
前記所定の文書を構成する複数種の文字列から１つ以上の文字からなる文字列を切り出す文字切り出しステップと、
所定の規則に従った、いずれも文字数がＮ（Ｎ＝１，２・・・Ｎ）である複数個の単語の集合体を一単語グループとし当該文字数毎にグループ分けされた複数の単語グループのうち、所定の文字数Ｎに対応する単語グループを指定する単語グループ指定ステップと、
前記単語グループ指定ステップにより指定された所定の単語グループにおける複数個の単語を順次指定する単語指定ステップと、
前記文字切り出しステップにより切り出された切出文字列を、前記単語指定ステップにより指定された指定単語と比較する比較ステップと、
前記比較ステップの比較により、前記指定単語と前記切出文字列とが一致した場合に、当該文書と対応づけて前記文字列を前記キーワードとして抽出するキーワード抽出ステップと、
を有し、
前記比較ステップにおいては、当該切出文字列が前記指定単語と一致するまで、当該切出文字列と前記単語グループ指定ステップにより指定された所定の単語グループにおける複数個の単語とを順次比較し、当該所定の単語グループ内において当該一致が見られない際は、前記単語グループ指定ステップにおいて新たに指定された所定の単語グループにおける複数個の単語とを、当該一致が見られるまで順次比較を試行することを特徴とし、
さらに、
前記キーワード抽出ステップにより抽出されたキーワードを格納するキーワード格納ステップと、
検索キーワードを入力する検索キーワード入力ステップと、
前記キーワード格納ステップにて格納されたキーワードを所定の順序で読み出すキーワード読み出しステップと、
前記キーワード読み出しステップにて読み出されたキーワードを、前記検索キーワード入力ステップにて入力された検索キーワードと比較する検索キーワード比較ステップと、
前記検索キーワード比較ステップの比較結果に基づき、前記キーワード格納ステップにより格納された前記キーワードを読みだし、前記キーワードにより前記所定の文書を指定する文書指定ステップと、
を有することを特徴とする文書検索方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、文書中の単語をキーワードとして検索する文書登録方法および文書検索方法に関する。
【０００２】
【従来の技術】
従来、文書検索方式としては、文書をある約束毎に基づいて分類して登録し、その分類基準をコード化したもの（分類コード）等を検索条件として文書検索を行う方式や、検索時にキーワード等の文書の属性を検索条件として検索を行う方式や、あるいはこれらを組み合わせた方式が知れている。
【０００３】
キーワードを用いた従来の文書検索方式では、探したい文書を特定するための検索用キーワードを、文章データの登録時にキーボード等を用いて入力する必要があるが、この入力作業はかなりの時間を要するばかりでなく、文書を的確に検索するためのキーワードを設定することが困難であるといった問題があった。
【０００４】
そこで、上記問題を解決する方法として、例えば特開平４−１３５２７８号公報では、文書登録時にキーワードを入力せず、検索時に入力された検索語と検索時の文書の文章データとをすべて比較する「全文検索フリーキーワード方式」を提案している。
【０００５】
また、文書登録時に文書の文章データを単語展開し、あらかじめ文書に使用されている単語を抽出し、文書と検索用語を対応づけて登録しておく「全文展開登録フリーキーワード方式」も上記問題を解決する方法として提案されている。
【０００６】
ここで、上記の「全文展開登録フリーキーワード方式」における、文章データの単語展開の方法として、例えば特開平３−２７１９９２号公報に示されるような文法情報を基に文章を解析する手段があるが、この特開平３−２７１９９２号公報では、不用な接辞及び接辞相当語を除き、複合語を抽出するために文法情報または品詞情報を用いて解析している。
【０００７】
【発明が解決しようとする課題】
しかしながら、上述した例えば特開平４−１３５２７８号公報の「全文検索フリーキーワード方式」においては、検索時にすべての文書の文章データと検索語とを比較する必要があるため、検索時間が長くなるといった問題がある。
【０００８】
また、上記の例えば特開平３−２７１９９２号公報に示される「全文展開登録フリーキーワード方式」における文章データの単語展開の方法では、文法情報を用いて単語展開を行うために、複雑な処理を必要とし単語展開処理に時間がかかり、検索単語の登録処理時間が長くなるといった問題がある。
【０００９】
本発明は、上記事情に鑑みてなされたものであり、簡単なアルゴリズムで文書の単語を展開することで、高速に文書を登録及び検索することのできる文書登録方法および文書検索方法を提供することを目的としている。
【００１０】
【課題を解決するための手段】
本発明の文書登録方法は、所定の文書中の単語をキーワードとして登録する文書登録方法において、前記所定の文書を構成する複数種の文字列から１つ以上の文字からなる文字列を切り出す文字切り出しステップと、所定の規則に従った、いずれも文字数がＮ（Ｎ＝１，２・・・Ｎ）である複数個の単語の集合体を一単語グループとし当該文字数毎にグループ分けされた複数の単語グループのうち、所定の文字数Ｎに対応する単語グループを指定する単語グループ指定ステップと、前記単語グループ指定ステップにより指定された所定の単語グループにおける複数個の単語を順次指定する単語指定ステップと、前記文字切り出しステップにより切り出された切出文字列を、前記単語指定ステップにより指定された指定単語と比較する比較ステップと、前記比較ステップの比較により、前記指定単語と前記切出文字列とが一致した場合に、当該文書と対応づけて前記文字列を前記キーワードとして抽出するキーワード抽出ステップと、を有し、前記比較ステップにおいては、当該切出文字列が前記指定単語と一致するまで、当該切出文字列と前記単語グループ指定ステップにより指定された所定の単語グループにおける複数個の単語とを順次比較し、当該所定の単語グループ内において当該一致が見られない際は、前記単語グループ指定ステップにおいて新たに指定された所定の単語グループにおける複数個の単語とを、当該一致が見られるまで順次比較を試行する、ことを特徴とする。
本発明の文書検索方法は、所定の文書中の単語をキーワードとして検索する文書検索方法において、前記所定の文書を構成する複数種の文字列から１つ以上の文字からなる文字列を切り出す文字切り出しステップと、所定の規則に従った、いずれも文字数がＮ（Ｎ＝１，２・・・Ｎ）である複数個の単語の集合体を一単語グループとし当該文字数毎にグループ分けされた複数の単語グループのうち、所定の文字数Ｎに対応する単語グループを指定する単語グループ指定ステップと、前記単語グループ指定ステップにより指定された所定の単語グループにおける複数個の単語を順次指定する単語指定ステップと、前記文字切り出しステップにより切り出された切出文字列を、前記単語指定ステップにより指定された指定単語と比較する比較ステップと、前記比較ステップの比較により、前記指定単語と前記切出文字列とが一致した場合に、当該文書と対応づけて前記文字列を前記キーワードとして抽出するキーワード抽出ステップと、を有し、前記比較ステップにおいては、当該切出文字列が前記指定単語と一致するまで、当該切出文字列と前記単語グループ指定ステップにより指定された所定の単語グループにおける複数個の単語とを順次比較し、当該所定の単語グループ内において当該一致が見られない際は、前記単語グループ指定ステップにおいて新たに指定された所定の単語グループにおける複数個の単語とを、当該一致が見られるまで順次比較を試行することを特徴とし、さらに、前記キーワード抽出ステップにより抽出されたキーワードを格納するキーワード格納ステップと、検索キーワードを入力する検索キーワード入力ステップと、前記キーワード格納ステップにて格納されたキーワードを所定の順序で読み出すキーワード読み出しステップと、前記キーワード読み出しステップにて読み出されたキーワードを、前記検索キーワード入力ステップにて入力された検索キーワードと比較する検索キーワード比較ステップと、前記検索キーワード比較ステップの比較結果に基づき、前記キーワード格納ステップにより格納された前記キーワードを読みだし、前記キーワードにより前記所定の文書を指定する文書指定ステップと、を有することを特徴とする。
【００１１】
【実施例】
以下、図面を参照しながら本発明の実施例について述べる。
【００１２】
図１ないし図１２は本発明の第１実施例に係わり、図１は文書登録／検索システムの構成を示す構成図、図２は図１の登録／検索制御部の構成を示す構成図、図３は図１の文字数別単語辞書ファイル記録部に記録される文字数別単語辞書ファイルの構成を示す構成図、図４は図１の文書登録／検索システムによる検索単語の登録処理の流れを示す第１のフローチャート、図５は図１の文書登録／検索システムによる検索単語の登録処理の流れを示す第２のフローチャート、図６は図４の第１のフローチャートで読み込まれる文書の一例を示す図、図７は図６の文書をメモリ上に展開した文字列を示す図、図８は図４及び図５に示したフローチャートで生成される検索単語ファイル記録部に記録される検索単語ファイルの構成を示す構成図、図９は図８の検索単語ファイルによる文書の検索処理の流れを示すフローチャート、図１０は図９の検索処理の具体例を説明する説明図、図１１は図９の検索処理により得られた該当文書ファイルの構成を示す構成図、図１２は図１１の該当文書ファイルに基づく検索結果表示部の表示例を示す図である。
【００１３】
本実施例の文書登録／検索システムは、図１に示すように、文書（例えば特許出願文書）１を光学的に読みとるＯＣＲやフロッピディスク２に記録された文書データを読み込むフロッピディスクドライブ等からなる文書読取部３と、読み取った文書データを文書毎に文書ファイルとして記録する文書ファイル記録部４と、検索のための単語を文字数別の辞書として記録している文字数別単語辞書ファイル記録部５と、文書ファイル記録部４に記録されている文書データと文字数別単語辞書ファイル記録部５に記録されている文字数別の単語を比較することで検索単語の登録／検索の処理を行う登録／検索制御部６と、登録／検索制御部６により登録された検索単語をコード化して文書毎に記録する検索単語ファイル記録部７と、検索時に検索すべき検索単語を入力する例えばキーボードからなる検索単語入力部８と、検索単語入力部８から入力された検索単語に基づいた検索結果を記録する検索結果記録部９と、検索結果を表示する検索結果表示部１０とから構成される。
【００１４】
なお、検索単語入力部８から入力された検索単語による検索は、登録／検索制御部６の制御により検索単語入力部８から入力された検索単語を文字数別単語辞書ファイル記録部５の文字数別の文字列と比較し、検索単語のコードを取得し、このコードに基づいて検索単語ファイル記録部７を検索することで行われる。
【００１５】
前記登録／検索制御部６は、文書データを文字数別に文字列展開することで検索単語の登録／検索を行うものであり、図２に示すように、文書読取部３を介して文書ファイル記録部に記録された複数、例えば１０万件の文書毎の文書ファイルのうち１文書ファイルの文書データを展開するメモリ２１と、文書データの文字位置をカウントする文字位置カウンタ２２と、文字位置カウンタ２２が指す文字位置から後述する切り出し方法により所定の文字数の文字列をレジスタ２３を介して切り出し登録あるいは検索処理を行う制御部２４と、切り出した文字列の文字数に対応するカウント値を出力することで文字数別単語辞書ファイル記録部５に記録されている文字数別単語辞書ファイルを指定する文字数カウンタ２５と、文字数別単語辞書ファイルを順次指定しスキャンする為のカウント値を出力する単語番号カウンタ２６と、単語番号カウンタ２６により指定された文字数別単語辞書ファイル内の単語とレジスタ２３により切り出された文字列とを比較する比較部２７とを備えて構成される。
【００１６】
そして、比較部２７により文字数別単語辞書ファイル内の単語とレジスタ２３により切り出された文字列とが一致したと判断された場合に文字数別単語辞書ファイル内の単語に対応したコードを文書毎に検索単語ファイル記録部７に記録するようになっている。
【００１７】
ここで、比較部２７において、文書データの最後まで繰り返しても、切り出した文字列が文字数別単語辞書のいずれにも存在しない場合には、その文字列を残文字ファイル２８に記録し、後述する残文字処理の中で辞書登録部２９を用いて文字数別単語辞書へ追加登録するようになっている。
【００１８】
つまり、残文字処理は、登録／検索制御部６の文字列展開処理において、作成された残文字ファイルに、検索単語への展開が出来なかった文字列を保存する。この中には、辞書に登録されていない為に展開できなった単語と、不要文字いわゆるゴミ文字（例えば、＠  や  ＊  ）が含まれている。従って、この残文字ファイルを検索結果表示部１０の例えばモニタに表示し、操作者がそれを見て、文字数別単語辞書に登録しておいた方が良いと判断した文字列に関しては、辞書登録部２９を用いてその文字数の文字数別単語辞書ファイルに登録する。
【００１９】
なお、この残文字処理に関しては、上記の様に操作者が必要／不必要の判断をするのではなく、必要の無い、不要文字も含めて、自動的に文字数に合った文字数別単語辞書ファイルに登録するようにしても良い。
【００２０】
文字数別単語辞書ファイル記録部５には、図３に示すように、文字数別単語辞書ファイルが記録されている。この文字数別単語辞書には、文字数に応じて例えば１文字から２０文字までの２０個の単語辞書がファイルの形式で記録されている。そして、文字数別単語辞書は、今後新たな単語登録の必要性が生じた場合には、辞書登録部２９を用いて順次単語を追加登録していくようになっている。
【００２１】
次に、このように構成された本実施例の文書登録／検索システムの作用について説明する。まず、文書の検索単語の登録処理について説明する。
【００２２】
図４に示すように、文書検索システムでは、ステップＳ１で登録したい文書１を文書読取部３により、例えばＯＣＲで光学的に読み込む、または、例えばフロッピーディスクに電子的に保存されていた文書であれば、その内容をテキストデータとして読み込む。そして、ステップＳ２で読み込んだ文書の文書データを文書ファイル記録部４に記録する。
【００２３】
次にステップＳ３で、登録／検索制御部６の制御部２４が展開処理を実行させたい文書データを文書ファイル記録部４から読み出しメモリ２１に記憶する。なお、ここでは、読みだした文書番号を例えば”Ｔ０００００”とし、文書を図６に示すような特許公開公報とすると、メモリ２１には図７に示すように、文書データが展開される。
【００２４】
そしてステップＳ４及びＳ５で、文字数カウンタ２５を１、文字位置カウンタ２２を０にセットし、ステップＳ６で文字位置カウンタ２２が示す数に対応する文書データの位置（この時点は文書の最初から１文字目）から文字数カウンタ２５の文字数分（この時点では１字）を切り出し、レジスタ２３に記憶する。この場合、制御部２４でレジスタ２３に記憶された、例えば”〔書類名〕……”のうちの最初の「〔  」という文字のシフトＪＩＳコードが調べられる。
【００２５】
そして、制御部２４は、ステップＳ７で単語番号カウンタを１にセットし、ステップＳ８で文字数別単語辞書内のＮ文字単語辞書ファイル（この時点ではＮ＝１であり、１文字単語辞書）の先頭から１単語を読みだし、読みだした１単語とレジスタ２３に記憶されている文字列とを比較部２７にて比較する。
【００２６】
そして図５に示すステップＳ１１に処理を移し、図４のステップＳ８での比較により、ステップＳ１１では読みだした１単語とレジスタ２３に記憶されている文字列とが一致したかどうか判断し、一致していない場合にはステップＳ１２で単語番号カウンタ２６を１増加し、ステップＳ１３でＮ文字単語辞書ファイルの最後の単語かどうか判断し最後の単語でない場合は図４のステップＳ８に戻り、次の１単語を読みだし、同様な処理をＮ文字単語辞書の最後まで繰り返す。
【００２７】
説明を簡単に行うために、図６に示した文書の「〔  」という文字が、比較の結果、１文字辞書に登録されていなかったとする。
【００２８】
その結果、処理は図５のステップＳ１５に移り、ステップＳ１５では、文字位置カウンタ２２を１増加し、ステップＳ１６で文書の最後でないと判断され、図４のステップＳ６に戻り、図７に示す文書データの最初から２文字目の１字である「書」を切り出しレジスタ２３に記憶し、上記「〔  」という文字と同様に１文字単語辞書ファイルを検索する。
【００２９】
「書」において、ステップＳ１１での１文字単語辞書の検索の判断結果、１文字辞書に存在している場合には、ステップＳ１４でその文書に対応した検索単語ファイルにその文字の辞書番号と単語番号を書き込む。例えば、図７における「書」という単語は、図３に示した１文字辞書ファイルの８番目に存在しているので、図８に示すように、検索単語ファイルには辞書番号が１、単語番号が８と書き込む。ここで、辞書番号と単語番号を合わせて単語ＩＤとする。
【００３０】
なお、本実施例では、１文字辞書の辞書番号は１、２文字辞書の辞書番号は２、Ｎ文字辞書の辞書番号はＮとしている。
【００３１】
そして、図４のステップＳ６から図５のステップＳ１６までの処理を文書の最後まで繰り返す。
【００３２】
この中で、例えば「書」という１文字が複数回出現する場合も有り得る。その場合には、出現回数（例えば出現回数４回）を検索単語ファイル内に図８のごとく追記する。
【００３３】
このようにして１文字展開が文書の最後になると、ステップＳ１６で文書の最後が認識され、ステップＳ１７で文字数カウンタを１増加し、２文字の展開に移るが、ステップＳ１８では文字数カウンタ２５のカウント値が２０以内かどうか判断しているため、この時点では図４のステップＳ５に戻る。そして、図４のステップＳ５で文字位置カウンタを０にセットし、文書の最初から始まる２文字を切り出し、１文字の場合と同様に図４のステップＳ５から図５のステップＳ１４を繰り返し、今度は２文字単語辞書ファイルにその切り出した２文字が存在するか検索する。
【００３４】
検索の結果、２文字辞書に存在していた場合には、その文書に対応した検索単語ファイルに、その文字の単語ＩＤすなわち辞書番号と単語番号を書き込む。
【００３５】
例えば、図７の例では「〔書」という単語は、２文字辞書に存在しないので、結局、図５のステップＳ１５で文字位置カウンタ２２を１増加して、ステップＳ１６を介して、図４のステップＳ６に戻り、図７に示すハッチングされた文書データの最初から２文字目の文字からの２文字である「書類」が展開処理される。その結果、「書類」という２文字の単語は、図３に示したように、２文字単語辞書に存在するので、図７に示すように、検索単語ファイルに辞書番号２、単語番号４と書き込む。
【００３６】
その後、ステップＳ１５で文字位置カウンタを１増加し、ステップＳ１６を介して文書の最初の３文字目から始まる２文字「類の」を切り出し、上記と同様に２文字辞書を検索する
同様の処理を文書の最後まで繰り返し、すべての文書データに対して２文字展開処理を行う。そして２文字展開処理が終了すると、ステップＳ１７で文字数カウンタ２５を１増加させ、３文字の展開に移るが、ステップＳ１８では文字数カウンタ２５のカウント値が２０以内かどうか判断しているため、この時点では図４のステップ５に戻る。
【００３７】
そして、同様の処理を、３文字、４文字と続け、２０文字まで実行する。２０文字展開処理が終了すると、ステップＳ１７で文字数カウンタ２５を１増加させるので、ステップＳ１８では文字数カウンタ２５のカウント値が２１となったと判断し処理を終了する。
【００３８】
文書の最後まで繰り返しても、文字数別単語辞書のいずれにもその単語が存在しない場合には、その文字を残文字ファイルに記録し、残文字処理の中で辞書登録部２９を用いて文字数別単語辞書ファイルへ追加登録する。
【００３９】
以上の処理を、例えば１０万件の文書（文書番号”Ｔ０００００”から”Ｔ９９９９９”）に対して実行し、図８に示すような検索単語ファイルを得る。
【００４０】
次に、このように文書毎に得られた検索単語ファイルに基づく文書検索処理について説明する。
【００４１】
文書検索処理では、図９に示すように、制御部２４は、ステップＳ２１で検索単語入力部８から検索単語が入力されると、ステップＳ２２で入力された検索単語の文字数Ｍを算出する。そして、ステップＳ２３で文字数カウンタ２５を制御しＭ文字単語辞書と検索単語とを比較し検索単語ＩＤを得る。次にステップＳ２４で検索単語ファイル記録部７にアクセスして検索単語ファイルを検索する。そして、ステップＳ２５で検索結果を当該文書ファイルとして検索結果記録部に記録し、ステップＳ２６で検索結果として文書見出し情報を検索結果表示部１０に表示して処理を終了する。
【００４２】
次に、上記の処理を図１０ないし図１２を用いて具体的に説明する。
【００４３】
図１０に示すように、例えば「内視鏡」という単語で文書を探し出したいとすれば、操作者が検索単語「内視鏡」を、検索単語入力部３の例えばキーボード等を用いてレジスタ２３に入力する（図９のステップＳ２１）。
【００４４】
そして、検索単語の文字数Ｍを計算する（図９のステップＳ２２）。次に、計算した文字数を文字数カウンタ２５にセットし、文字数別単語辞書ファイル記憶部５より同じ文字数の単語辞書ファイルを読み込む。この場合は、３文字単語辞書ファイルの内容を読み込み、読み込んだ辞書の中の単語と検索単語「内視鏡」を比較部２７で順次比較する（図９のステップＳ２３）。
【００４５】
Ｍ文字単語辞書から順次読みだす方法としては、単語番号カウンタ２６を１ずつ増加し、その単語番号カウンタ２６の示す順番の単語を辞書から読みだす事で実現する。つまり、検索単語と一致した時の文字数カウンタ２５の値（この例では３）が辞書番号、単語番号カウンタ２６の値が単語番号（この例では１１）となる（図３参照）。この操作により検索単語の辞書番号と単語番号すなわち検索単語ＩＤを知る事が出来る（この場合では、辞書番号＝３、単語番号＝１１、従って検索単語ＩＤ＝０００３００１１）。
【００４６】
次に、検索単語ファイル記憶部７より文書毎にファイル形式で記録されている検索単語ファイルの中で、検索単語「内視鏡」に対応した単語ＩＤを有する文書を検索する（図９のステップＳ２４）。
【００４７】
この検索は、最初に、文書番号”Ｔ０００００”の検索単語ファイルを読み込む。読み込んだ検索単語ファイル内に、検索単語ＩＤ（辞書番号、単語番号）が存在するか検索する。
【００４８】
もし存在すれば、その文書番号”Ｔ０００００”を該当文書ファイルに記録する。もし、存在しなければ、次の文書番号”Ｔ００００１”の検索単語ファイルを読み込む。そして、上記文書番号”Ｔ０００００”の時と同様に、文書番号”Ｔ００００１”の検索単語ファイル中に検索単語ＩＤが存在するか検索する。
【００４９】
以上の処理を文書番号”Ｔ０００００”から”Ｔ９９９９９”まで繰り返し、該当する文書に関しては、その文書番号を該当文書ファイルとして検索結果記録部９に記録する（図９のステップＳ２５）。例えば、今回は、図１１に示すように、”Ｔ０００００”、”Ｔ００００１”、”Ｔ００００２”、”Ｔ００００３”、”Ｔ０００１０”、…、”Ｔ９９９９９”が該当したとする該当文書ファイルが記録される。
【００５０】
次に、該当文書ファイルに記録された文書番号に対応する文書ファイルから、題名、作者、作成日等その文書の見出し情報を読み込み、検索結果表示部１０に図１２に示すような一覧表を表示する（図９のステップＳ２６）。
【００５１】
操作者は、その一覧表を見て探したい文書が存在した場合には、その文書を図示しないマウス等で指定する。指定された文書の全文書を文書ファイルから読み込み、検索結果表示部１０のモニタ上に表示するか、または図示しないプリンタに印刷出力する。
【００５２】
ここで、検索単語が実際の文書中のどの位置に存在するか表示したい事がある。この場合は、登録時の単語展開同様に、文字数カウンタ２５を検索単語と同じ文字数（この場合は３）にセットし、文字位置カウンタ２２を０から順次増加する事で該当文書の最初から最後まで切り出し、検索単語（この場合は「内視鏡」）との比較を比較部２７で行う。そして、一致した時の文字位置カウンタ２２の示す文字位置から文字数カウンタ２５の文字数分を、他の単語の表示と異なって表示すればよい。
【００５３】
ここで更に、操作者が別な検索単語（例えば「光源」）を指定し、該当文書を絞り込みたい場合は、前記該当文書に対応する検索単語ファイルのみ（今回は”Ｔ０００００”、”Ｔ００００１”、”Ｔ００００２”、”Ｔ００００３”、”Ｔ０００１０”、…、”Ｔ９９９９９”）を、前記と同様にして検索する。
【００５４】
この絞り込みの場合、該当文書の検索単語ファイルのみを検索するので、全文書の検索単語ファイルを検索するのに比べて、絞り込み後の検索は高速である。
【００５５】
今回は、”Ｔ０００１０”のみが該当したとすれば、”Ｔ０００１０”の文書の見出し情報を表示する。操作者は、それが探したい文書であった場合には、その文書をマウス等で指定する。指定された文書の全文書を文書ファイルから読み込み、モニタ上に表示するか、またはプリンタに印刷出力する。
【００５６】
また、操作者が出現回数で文書を絞り込みたい場合、例えば、「内視鏡」という検索単語で検索し、上述したように、”Ｔ０００００”、”Ｔ００００１”、”Ｔ００００２”、”Ｔ００００３”、”Ｔ０００１０”、…、”Ｔ９９９９９”が該当したとする。
【００５７】
その後、「内視鏡」の出現回数が５回以上の文書を探したい場合は、操作者は絞り込み条件として出現回数５回を入力する。
【００５８】
文書”Ｔ０００００”、”Ｔ００００１”、”Ｔ００００２”、”Ｔ００００３”、”Ｔ０００１０”、…、”Ｔ９９９９９”の検索単語ファイルから、「内視鏡」（単語ＩＤ＝０００３００１１）という単語の出現回数を読みだす。
【００５９】
そして、出現回数が５回以上の文書を探し、該当するファイルが有れば、対応する文書の見出し情報のみを表示する。後の処理は、前記と同じである。つまり、文書に含まれる単語の出現回数を検索条件にして、文書の検索が可能となる。
【００６０】
以上説明したように、本実施例の文書検索装置によれば、検索対象となる文書の検索単語の登録は、文書を構成する文字列を所定の方法の１つである文字数に応じて切り出し、切り出した文字列をあらかじめ記録されている文字数別単語辞書と単に比較することで、検索単語を登録するといった簡単なアルゴリズム処理によって文書を展開しているので、高速に文書内から検索単語を抽出し登録することができる。
【００６１】
また、抽出された検索単語は、文書毎の検索単語ファイルにコードとして記録されており、検索時は、文書を検索するためのキーワードとしての検索単語を検索単語入力部より入力することで、上記と同様に文字数別単語辞書から入力した検索単語のコードを得、得られたコードと文書毎の検索単語ファイル内のコードとを単に比較するだけなので、検索対象の文書の検索を高速に行うことができる。
【００６２】
次に、第２実施例について説明する。図１３ないし図２１は本発明の第２実施例に係わり、図１３は検索単語ファイル記録部に記憶される検索単語ファイルとビットマップファイルの構成を示す構成図、図１４は図１３の検索単語ファイルとビットマップファイルを生成し検索単語を登録する処理の流れを示すフローチャート、図１５は図１３の検索単語ファイルとビットマップファイルを用いた文書の検索処理の流れを示すフローチャート、図１６は図１３のビットマップファイルの第１の変形例を示す図、図１７は図１３のビットマップファイルの第２の変形例を示す図、図１８は図１４の登録処理に用いられる文字数別単語辞書ファイルの変形例の構成を示す構成図、図１９は図１８の変形例の文字数別単語辞書ファイルにより生成される検索単語ファイルの構成を示す構成図、図２０は図１８の変形例の文字数別単語辞書ファイルにより生成されるビットマップファイルの構成を示す構成図、図２１は図１３の検索単語ファイルの変形例の構成を示す構成図である。第２実施例は第１実施例とほとんど同じであるので、異なる点のみ説明する。
【００６３】
第２実施例の制御部２４では、検索単語ファイル記録部７に第１実施例とは異なるフォーマットで検索単語情報を記録するようになっており、図１３に示すように、検索単語ファイル記録部７の検索単語情報は、全文書に対して１つの検索単語ファイル３１と、”Ｔ０００００”から”Ｔ９９９９９”の全文書の中に有った単語の数だけ存在するビットマップファイル３２とから構成される。検索単語ファイル３１とビットマップファイル３２の詳細な構成は後述する。その他の構成は第１実施例と同じである。
【００６４】
次に、本実施例の登録処理について説明する。第２実施例の登録処理は第１実施例とほとんど同じであり、異なる点は、図５におけるステップＳ１１での一致後の検索単語ファイル記録部７への検索情報の処理である。すなわち、図１４に示すように、ステップＳ１１で図４のステップＳ８での比較により、ステップＳ１１では読みだした１単語とレジスタ２３に記憶されている文字列とが一致したと判断されると、ステップＳ３０で検索単語ファイルに既に同じ単語ＩＤが記録されているかどうか判断し、記録されていない場合はステップＳ３１に、記録されている場合にはステップＳ３３に進む。ステップＳ３１では、図１３に示した検索単語ファイル３１に単語ＩＤが記録され、次にステップＳ３２で図１３に示したビットマップファイル３２が作成される。そして、ステップＳ３３で作成したビットマップファイル３２の文書番号に対応するビットに”１”がセットされて、第１実施例と同様に、ステップＳ１５に処理を移行する。その他の処理の流れは第１実施例と同じである。
【００６５】
ここで、上記の処理を具体的な例を用いて説明するとともに、検索単語ファイル３１とビットマップファイル３２の詳細な構成を説明する。
【００６６】
すなわち、文献検索システムに登録したい文書を、文書読取部３でＯＣＲで読み込み、または、電子的に保存されていた文書であれば、その内容をテキストデータとしてリードし、文書ファイル記録部４に記録する。
【００６７】
第１実施例と同様に、文書の最初から１文字目の１字を切り出し、１文字単語辞書ファイルにその文字が登録されているか検索する。
【００６８】
検索の結果、１文字辞書に存在していた場合には、検索単語ファイル３１にその文字の辞書番号と単語番号を書き込む。なお、本実施例では、上述したように、検索単語ファイルは全文書に対して、１個しか存在しない。
【００６９】
例えば、第１実施例で示した図７の文書例では、「書」という文字は１文字辞書ファイルの８番目に存在していた（図３参照）ので、検索単語ファイルには辞書番号が０００１、単語番号が０００８と書き込むことになる。
【００７０】
次に、この単語ＩＤをファイル名とするビットマップファイルを作成し（ビットマップファイルの各ビットの初期値は０にセット）、例えば文書番号”Ｔ０００００”には「書」という文字がない場合は、そのビットマップファイル中の文書番号”Ｔ０００００”に対応した位置（ここではビット番号＝０）のビットは０のままであり、例えば文書番号”Ｔ００００１”に「書」という文字がある場合は、そのビットマップファイル中の文書番号”Ｔ００００１”に対応した位置（ここではビット番号＝１）のビットを、１にセットする。従って、ビットマップファイルは、”Ｔ０００００”から”Ｔ９９９９９”の全文書の中に有った単語の数だけ存在する事のなる。
【００７１】
これで単語ＩＤが０００１０００８の単語「書」は、文書番号”Ｔ００００１”内に存在する事が識別できる。なお、ビットマップファイルのファイル名を単語ＩＤの０００１０００８としておく事で、単語ＩＤから、それに対応したビットマップファイルが読み出せる。
【００７２】
検索の結果、１文字辞書に登録されていなかった場合には、第１実施例と同様に、文書の最初から２文字目の１文字を切り出し、上記と同様に１文字辞書を検索する。
【００７３】
同様の処理を文書の最後まで繰り返す。この中で、例えば「書」という１文字が複数回出現した場合でも、既にビットマップ上のビットはセットして有るので、ビットセット処理は行わない。
【００７４】
文書の最後まで繰り返しても、１文字辞書ファイルにその単語が存在しない場合には、その文字を残文字ファイルに記録し、第１実施例に示した残文字処理を実行する。
【００７５】
次に、文書の最初から始まる２文字を切り出し、１文字の場合と同様に今度は２文字単語辞書ファイルにその切り出した２文字が存在するか検索する。
【００７６】
検索の結果、２文字辞書内の単語が存在していた場合には、その単語ＩＤすなわち辞書番号と単語番号を前記検索単語ファイルに書き込む。例えば、文書番号”Ｔ００００１”に図７の例では「書類」という文字が存在する場合には、図３に示したように該当する単語が２文字辞書に存在するので、検索単語ファイルに辞書番号０００２、単語番号０００４と書き込む。また、ビットマップファイル名が０００２０００４のビットマップファイルを作成し、文書番号が”Ｔ００００１”に対応するビット（ビット番号＝１）を１にセットする。
【００７７】
検索の結果が、２文字辞書に登録されていなかった場合には、文書の最初の２文字目から始まる２文字を切り出し、上記と同様に２文字辞書を検索する。同様の処理を文書の最後まで繰り返す。
【００７８】
この様な処理を、３文字、４文字〜２０文字まで実行する。
【００７９】
次に、文書番号”Ｔ００００２”の文書を同様に読み込む。
【００８０】
この文書に対して、同様に先頭から１文字を切り出し、１文字辞書の中に存在するか検索する。その結果「書」と言う単語が存在した場合には、ビットマップファイル名が０００１０００８の文書番号”Ｔ００００２”に対応した位置のビット（ビット番号＝２）を１にセットする。
【００８１】
その後は、上述した文書番号”Ｔ００００１”と同様の処理を切り出し、単語が２０文字になるまで繰り返す。
【００８２】
以上の処理を、１０万件の文書に対して実行することで、図１３に示した検索単語ファイル３１およびそれに対応したビットマップファイル３２が作成される。
【００８３】
なお、検索単語ファイルはＲＡＭ上に、ビットマップファイルはハードディスク上に置く事により、以後の検索が高速に実行できる。
【００８４】
次に、このようにして得られた検索単語ファイル３１及びビットマップファイル３２に基づく文書検索処理について説明する。
【００８５】
文書検索処理は、第１実施例とほとんど同じであり、図１５に示すように、制御部２４は、ステップＳ２１で検索単語入力部８から検索単語が入力されると、ステップＳ２２で入力された検索単語の文字数Ｍを算出する。そして、ステップＳ２３で文字数カウンタ２５を制御しＭ文字単語辞書と検索単語とを比較し検索単語ＩＤを得る。次にステップＳ２４で検索単語ファイル記録部７にアクセスして検索単語ファイル３１を検索する。次に、ステップＳ３５で単語ＩＤと同じ名前のビットマップファイルを、ハードディスク上からロードし、ステップＳ３６で読み込んだビットマップ内のどの位置に１ビットがセットして有るか検索して”１”にセットしてあるビット番号を取得する。そして、第１実施例と同様に、ステップＳ２５で検索結果を当該文書ファイルとして検索結果記録部に記録し、ステップＳ２６で検索結果として文書見出し情報を検索結果表示部１０に表示して処理を終了する。
【００８６】
次に、上記の処理を具体的に説明する。
【００８７】
例えば「内視鏡」という単語で文書を探し出したいとすれば、操作者が検索単語「内視鏡」を、検索単語入力部８のキーボード等を用いて入力する。
【００８８】
検索単語の文字数Ｍを計算する。計算した文字数Ｍを文字数カウンタ２５にセットし、対応した文字数の単語辞書ファイルを読み込む。この場合は、Ｍ＝３の文字単語辞書ファイルを読み込む。
【００８９】
単語番号カウンタ２６を１から順にインクリメントし、辞書内の単語と検索単語「内視鏡」を比較検索する。
【００９０】
比較の結果一致した時の単語番号カウンタ２６から、単語番号（この例では００１１：図３参照）を認識する。この操作により「内視鏡」という検索単語の辞書番号と単語番号すなわち単語ＩＤ＝０００３００１１を知る事が出来る。
【００９１】
次に、検索単語ファイル３１を読み込む。検索単語ファイル３１の中から、検索単語「内視鏡」に対応した単語ＩＤが存在するか検索する。検索単語ファイルはＲＡＭ上に設けられているので、この検索は瞬時に終了する。
【００９２】
もし存在すれば、その単語ＩＤと同じ名前のビットマップファイル３２を、ハードディスク上から読み込む。読み込んだビットマップ３２内のどの位置に１ビットがセットして有るか検索する。
【００９３】
ここでは、文書番号”Ｔ０００２０”と”Ｔ００１８５”に対応した位置のビットが１にセットされていたとする。この処理で、文書番号”Ｔ０００２０”と文書番号”Ｔ００１８５”には、「内視鏡」という単語が存在している事が判明した。
【００９４】
そして、第１実施例と同様に、”Ｔ０００２０”と”Ｔ００１８５”を該当文書ファイルに記録する。
【００９５】
次に本実施例での絞り込み検索を説明する。
【００９６】
例えば、前記までの処理で「内視鏡」という単語が存在する”Ｔ０００２０”と”Ｔ００１８５”が検索されていたとする。さらに、「光源」という検索単語で検索する場合は、最初に前記の「内視鏡」での検索同様に、「光源」という検索単語の単語ＩＤを単語辞書ファイルから検索する。
【００９７】
次に、「光源」の単語ＩＤが検索単語ファイル３１に存在するか調べ、存在すればその単語ＩＤに対応したビットマップ３２を読み込む。読み込んだ後はそのビットを全て検索するのではなく、”Ｔ０００２０”と”Ｔ００１８５”に対応するビットが１か否かのみを調べる。
【００９８】
その結果、”Ｔ０００２０”に対応するビットのみが１で、”Ｔ００１８５”に対応するビットが０であったとすれば、”Ｔ０００２０”のみを該当文書ファイルに記録する。
【００９９】
そして、第１実施例と同様に、上記検索で検索した文書番号に対応する文書ファイルから題名、作者、作成日等その文書の見出し情報を読み込み、一覧表表示する。
【０１００】
以上説明したように、本実施例によれば、第１実施例の場合には、文書毎に存在する検索単語ファイルを全て検索する必要が有ったが、本実施例では、検索単語に対応した１つのビットマップファイルのみを検索すれば良い為、さらに高速に検索する事が可能となる。
【０１０１】
なお、第２実施例で作成したビットマップファイルを圧縮して記録するようにしてもよい。
【０１０２】
すなわち、ビットマップファイルの中身は、その単語が存在する文書を識別する為のビットが書かれている。従って、多くの文書に存在する単語に関しては、そのビットマップは殆ど１である。また、逆に１つの文書にのみ存在する単語に関しては、１にセットしてあるビットが１つのみでその他はすべて０である。
【０１０３】
従って、例えば、０または１が連続して並んでいる時には、図１６に示すように、高い圧縮率を実現できるランレングス法を用いてビットマップファイルサイズを圧縮する事が可能である。
【０１０４】
このランレングス法に関しては、例えば［コンピュータ画像処理のＰ．１２８〜Ｐ．１３２］に記載されているので、その詳細は省略する。
【０１０５】
また、存在する文書が少ない単語に関しては、そのビットマップファイルはビットマップ形式では無く、文書番号そのもので記録しておく方法もある。
【０１０６】
この場合、例えば１０万件の文書をビットマップ形式で記録した場合には１０万ビットが必要であるのに対して、図１７に示すように、文書番号で記録した場合には１文書につき１７ビットで可能になる。
【０１０７】
ここで、ビットマップファイルの内容がビットマップファイル形式なのか文書番号形式なのかは、ビットマップファイルのファイル名に識別情報を入れておく事で識別可能とする。例えば、ファイルの内容がビットマップ形式の場合はファイル名の拡張子をＢＩＴとし、ファイルの内容が文書番号の場合は、拡張子をＢＵＮとする。なお、ビットマップファイルを読み出すときは、拡張子がどちらか不明なので、まず、拡張子無しのファイル名で読み出してみて、その読み出したファイルの拡張子を調べることで、ファイル形式を判別する。
【０１０８】
また、上記第２実施例では文書中に出現する単語による検索単語の登録及びその検索単語による文書検索について説明したが、文書中に出現する単語以外に、文書中には表れないがその文書を特定する情報、例えば作者名、文献発行日、雑誌名等の特定項目を用いて検索するようにしてもよい。
【０１０９】
この場合、検索単語と同様に作者、発行日、雑誌名等を、辞書登録部２９により、その文字数の単語辞書ファイルに、新たに発生させた単語番号と共に登録する。図１８に特定項目として作者名を登録した単語辞書ファイルの一例を示す。
【０１１０】
そして、上記第２実施例で作成した検索単語ファイルに特定項目の単語ＩＤを追加すると共に、特定項目毎のビットマップファイルを作成する。
【０１１１】
この様に検索単語ファイルおよびビットマップファイルを構成する事により、文書中に出現する検索単語と同様のアルゴリズム処理で、特定項目での検索が可能となる。
【０１１２】
なお、例えば、文書番号”Ｔ００００５”の文書の作者名が「山田  一」であった時の、検索単語ファイル、ビットマップファイルを、図１９及び図２０に示す。
【０１１３】
また、たとえば、文書中の単語では無く、発行日と言う特定項目で検索するとする（例えば、文献発行日「１９９４年０６月１０日」で検索する）。
【０１１４】
この場合、検索単語の時と同様に、文字列「１９９４年０６月１０日」の単語ＩＤを、単語同様の処理で、１文字単語辞書ファイルから２０文字単語辞書ファイルを検索して取得する。
【０１１５】
上記単語ＩＤが検索単語ファイルに存在するか検索する。存在した場合には、その単語ＩＤに対応するビットマップファイルを読みだし、文書番号を取得する。その後の処理は同じ。
【０１１６】
ただし、特定項目の場合、それに該当する文書数が少ないと考えられるので（例えば、「１９９４年０６月１０日」に発行された雑誌は多くても数冊であると予想される為）、ビットマップファイルは、図１７に示したように文書番号形式で記録した方が良い。
【０１１７】
このように特定項目を用いることで、文書中に出現する単語検索と同じアルゴリズムで、単語以外の特定項目での検索が可能となり、検索能力を向上させることができる。
【０１１８】
さらに、上記第２実施例において、出現回数が多い順に、検索単語ファイルを並び変えておいてもよく、または、良く検索される検索単語の順に、検索単語を並び変えて置いてもよい。
【０１１９】
すなわち、検索頻度に応じて検索単語ファイルを並び変えて置く。図２１に出現回数の多い順に並び変えた時の検索単語ファイルの一例を示す。
【０１２０】
このように検索単語ファイルの並び変えを行うことで、出現回数が多い単語、または検索頻度が多い単語に関しては、検索する順番が早いので、その分だけ高速に検索できる。
【０１２１】
特に、検索頻度が多い順に並び変えておく方法は、使用分野が特定している場合（例えば特許分野、医療分野、工業分野、薬品分野等）に大変有効である。
【０１２２】
次に、第３実施例について説明する。図２２ないし図３１は本発明の第３実施例に係わり、図２２は文書検索／登録システムの構成を示す構成図、図２３は図２２の頭文字別辞書ファイル記録部に記録される頭文字別辞書ファイルの構成を示す構成図、図２４は図２２の文書検索／登録システムによる検索単語の登録処理の流れを示す第１のフローチャート、図２５は図２２の文書検索／登録システムによる検索単語の登録処理の流れを示す第２のフローチャート、図２６は図２４及び図２５による処理の具体例を説明する説明図、図２７は図２６における処理により得られたビットマップファイルの構成を示す構成図、図２８は図２２の文書検索／登録システムによる文書の検索処理の流れを示す第１のフローチャート、図２９は図２２の文書検索／登録システムによる文書の検索処理の流れを示す第２のフローチャート、図３０は図２８及び図２９による処理の具体例を説明する説明図、図３１は図２２の文書検索／登録システムによる検索自由文による検索が可能な検索処理の変形例を説明する図である。第３実施例は第２実施例とほとんど同じであるので、異なる点のみ説明する。
【０１２３】
前記第１及び第２実施例では、単語辞書をその単語の文字数で分類していた。即ち、１文字で構成される単語のみが集まった１文字単語辞書から、２０文字で構成される単語が集まった２０文字単語辞書までの２０個の辞書で構成されていた。
【０１２４】
この場合、例えば３文字単語辞書内の単語数は約２万個近くあり、その中から例えば「内視鏡」を検索して捜し出すのには、かなりの時間が必要であり、文書の展開及び検索時間を高速にする事には限界がある。
【０１２５】
そこで、本実施例では、単語を頭文字毎に分類する事によって、１単語辞書内の単語数を少なくする事ができ、より高速な登録と検索を実現する。
【０１２６】
本実施例では、文字数別単語辞書の代わりに、図２２に示すように、頭文字毎に単語を分類した頭文字別辞書ファイル４０を記録している頭文字別辞書ファイル記録部４１を用いる。すなわち、図２３に示すように、頭文字別辞書ファイル４０では、例えば「内」が先頭文字の単語として、「内」「内科」「内容」「内視鏡」「内政干渉」等を１つのグループとし、「書」であれば、「書」「書類」「書物」「書棚」等を１つのグループとしている。また、頭文字別辞書ファイル記録部４１には、後述する頭文字別先頭アドレスを格納している頭文字別先頭アドレス格納部４２が設けられている。
【０１２７】
なお、文字数別単語辞書の場合は１つ１つの単語辞書をファイル形式としたが、頭文字別単語辞書では頭文字単語辞書毎にグループとし、グループをメモリ等へ順次並べて格納して有る。ちなみに、１つの頭文字別辞書の中に含まれる単語数は、１番多いもので約４００個程度である。また、本実施例では、検索単語ファイルは使用しないが、代わりにビットマップファイルは全ての単語に対してあらかじめ作成しておく（ただし、ビットは全て０に初期セット）。
【０１２８】
また、本実施例では、図２２に示すように、文字数カウンタの代わりに頭文字先頭アドレスカウンタ４４が設けられている。この頭文字先頭アドレスカウンタ４４の作用については後述する。その他の構成は第２実施例と同じである。
【０１２９】
次に、本実施例の検索単語登録処理を図２４ないし図２７を用いて説明する。
【０１３０】
図２４に示すように、文書検索システムでは、ステップＳ４１で登録したい文書１を文書読取部３により、例えばＯＣＲで光学的に読み込む、または、例えばフロッピーディスクに電子的に保存されていた文書であれば、その内容をテキストデータとして読み込む。そして、ステップＳ４２で読み込んだ文書の文書データを文書ファイル記録部４に記録する。
【０１３１】
次にステップＳ４３で、登録／検索制御部６の制御部２４が展開処理を実行させたい文書データを文書ファイル記録部４から読み出しメモリ２１に記憶する。なお、ここでは、読みだした文書番号を例えば”Ｔ０００００”とし、文書を図２６（ａ）に示すような特許公開公報とする。
【０１３２】
そしてステップＳ４４で、文字位置カウンタ２２を０にセットし、ステップＳ４５で文字位置カウンタ２２が示す数に対応する文書データの位置（この時点は文書の最初から１文字目）から１文字数分を切り出しレジスタ２３に記憶する。そして、ステップＳ４６で切り出した１文字のシフトＪＩＳコードを調べる。例えば、この場合の「内」のシフトＪＩＳコードは、９３Ｅ０である。
【０１３３】
次に、ステップＳ４７で、頭文字先頭アドレスカウンタ４４がシフトＪＩＳコードを出力することで、図２６（ｂ）に示すように、頭文字別先頭アドレス格納部４２内の、９３Ｅ０番目に格納された「頭文字別先頭アドレス」を読み取る。この場合は、１０００１０００である。
【０１３４】
これで、「内」の頭文字辞書が格納されているグループの先頭アドレスが取得できた事になる。
【０１３５】
次に、図２６（ｃ）に示す頭文字単語辞書グループ内の単語と、文書との逐次マッチングを取る。なお、図２６（ｄ）に頭文字単語辞書の詳細なデータ構成を示す。
【０１３６】
具体的には、文字位置カウンタ２２が示す所から、単語辞書内の単語と同じ文字数の文字列を切り出し、レジスタ２３へとセットする。そして、比較部２７でレジスタ２３の内容と単語辞書の単語のマッチングをとる。
【０１３７】
つまり、ステップＳ４８で単語番号カウンタ２６の値を１にセットする。そして、ステップＳ４９ないしＳ５１で辞書内の「内」と、文書の「内」のマッチングを取る。そして、図２５に移り、ステップＳ５２でマッチング結果を判定する。この場合、辞書内の「内」と文書の「内」が一致するので、この文書には「内」が存在する事が判明した。
【０１３８】
そこで、第２実施例同様に、ステップＳ５３及びＳ５４で「内」に対応するビットマップファイル中の、この文書に対応するビットを１にセットする。
【０１３９】
ただし、このビットマップのファイル名は、「内」のシフトＪＩＳコードと、単語辞書中にある順番（単語番号カウンタ２６の値）を合わせたものとする。従って、この場合は、シフトＪＩＳが９３Ｅ０で、順番が０００１であるから、そのファイル名は、９３Ｅ００００１となる。
【０１４０】
そして、ステップＳ５５で単語番号カウンタ２６を１進め、ステップＳ５６単語グループの最後かどうか判断するが、この場合は最後ではないので、図２４のステップＳ４９にもどる。
【０１４１】
同様にして、辞書内の次の単語である「内科」と、この「内科」と同じ文字数の文書の「内視」を切り出しマッチングを取るが、一致しないのでビットマップファイルへの書き込みは行われない。そして、ステップＳ５５で単語番号カウンタ２６を１進め、ステップＳ５６単語辞書の最後かどうか判断するが、この場合は最後ではないので、図２４のステップＳ４９にもどる。
【０１４２】
再び同様にして、辞書内の次の単語である「内容」と、この「内容」と同じ文字数の文書の「内視」を切り出しマッチングを取るが、一致しないのでビットマップファイルへの書き込みは行われない。そして、ステップＳ５５で単語番号カウンタ２６を１進め、ステップＳ５６単語辞書の最後かどうか判断するが、この場合は最後ではないので、図２４のステップＳ４９にもどる。
【０１４３】
再び同様にして、辞書内の次の単語である辞書内の「内視鏡」と、この「内視鏡」と同じ文字数の文書の「内視鏡」を切り出してマッチングを取る。ここで、辞書内の「内視鏡」と文書の「内視鏡」が一致したので、この文書には「内視鏡」が存在する事が判明した。
【０１４４】
そこで、第２実施例同様に、ステップＳ５３及びＳ５４で「内視鏡」に対応するビットマップファイル中の、この文書に対応するビットを１にセットする。
【０１４５】
ただし、上述したようにこのビットマップのファイル名は、「内」のシフトＪＩＳコードと、単語辞書中にある順番（単語番号カウンタ２６の値）を合わせたものとする。従ってこの場合は、シフトＪＩＳが９３Ｅ０で、順番が０００４であるから、そのファイル名は、９３Ｅ００００４となる。
【０１４６】
全く同様にして、辞書内の「内政干渉」と文書の「内視鏡画」のマッチングを取り、単語番号カウンタ２６を１進める。
【０１４７】
このようにして、上記の処理を、頭文字が「内」で始まる単語辞書内の単語が無くなるまで行う。
【０１４８】
そして、ステップＳ５６で単語が無くなったと判断したら、ステップＳ５７で文字位置カウンタを１増加し、図２６（ｅ）に示すように、文書の切り出し位置を１つ右へとずらす。上記の処理を、ステップＳ５８で文書の終わりと判断するまで、繰り返すことで、図２７に示すようなビットマップファイルを得る。
【０１４９】
次に、このようにして得られたビットマップファイルに基づく文書検索処理について、図２８ないし図３０を用いて具体的に説明する。
【０１５０】
図３０（ａ）に示すように、「内視鏡」が検索単語として、キーボードから入力されたとする。
【０１５１】
そこで、図２８に示すように、ステップＳ６１で検索単語の１文字数分を切り出し、レジスタ２３に記憶する。そして、ステップＳ６２で切り出した１文字のシフトＪＩＳコードを調べる。例えば、この場合の「内」のシフトＪＩＳコードは、９３Ｅ０である。
【０１５２】
次に、ステップＳ６３で、図３０（ｂ）に示すように、頭文字別先頭アドレス格納部４２内の、９３Ｅ０番目に格納された「頭文字別先頭アドレス」を読み取る。この場合は、１０００１０００である。
【０１５３】
これで、「内」の頭文字辞書が格納されているグループの先頭アドレスが取得できた事になる。
【０１５４】
次に、図３０（ｃ）に示す頭文字単語辞書内の単語と、検索単語「内視鏡」との逐次マッチングを取る。なお、図３０（ｄ）に頭文字単語辞書の詳細なデータ構成を示す。
【０１５５】
具体的には、検索単語「内視鏡」をレジスタにセットし、単語辞書内の単語と比較部２７を用いて逐次比較していく。
【０１５６】
つまり、ステップＳ６４で単語番号カウンタ２６の値を１にセットする。そして、ステップＳ６５及びＳ６６で検索単語の「内視鏡」と、単語辞書内の「内」のマッチングを取る。そして、図２９に移り、ステップＳ６７でマッチング結果を判定する。この場合、辞書内の「内」と検索単語の「内視鏡」が一致しない事が判明した。そして、ステップＳ７１で単語番号カウンタ２６を１増加させる。次に、ステップＳ７２で単語辞書の最後かどうか判断するが、この場合は最後ではないので、図２８のステップＳ６５に戻り、辞書内の次の単語、この場合は「内科」という単語と、レジスタ内の検索単語「内視鏡」とのマッチングを、上記の処理と同様に行う。以下、同様にして単語番号カウンタ２６を１進め、検索単語「内視鏡」と、辞書内の「内容」とのマッチングを取り、再び単語番号カウンタ２６を１進め、検索単語「内視鏡」と、辞書内の「内視鏡」とのマッチングを取る。
【０１５７】
ここで、検索単語の「内視鏡」と辞書内の「内視鏡」が一致した。
【０１５８】
従って、この場合は、シフトＪＩＳが９３Ｅ０で、単語番号カウンタが０００４であるから、そのファイル名は、９３Ｅ００００４である事が判明した。
【０１５９】
そこで、図２９のステップＳ６８ないしＳ７０で、図３０（ｅ）に示すようなビットマップファイル名が９３Ｅ００００４のファイルを読み込み、その中で、１にセットしてあるビットを探し出す。次に、そのビットに対応する文書を該当文書ファイルに記録する。
【０１６０】
上記の処理を単語辞書の最後の単語まで繰り返し、ステップＳ７２で最後と判断されると、ステップＳ７３で該当文書ファイルに記録されている文書の見出し情報を検索結果表示部１０に表示する。
【０１６１】
このように、本実施例では、単語を頭文字毎に分類する事によって１単語辞書内の単語数を少なくする事によって、より高速な登録と検索を実現する。
【０１６２】
なお、検索時に、合成語（２つの単語を合わせた語）で検索したい場合が有る。例えば、「半導体操作」と言う単語を検索単語として検索する場合を考えると、「半導体操作」と言う語は、「半導体」と言う単語と「操作」と言う単語を合成したものである。
【０１６３】
そこで、この様な処理を可能とする本実施例の変形例について説明する。ここで、検索単語の登録に関しては、本実施例と同じであるので説明は省略する。
【０１６４】
この変形例では、最初に、検索単語に対して、本実施例の展開と同様の展開処理を施し、合成語がどのような単語で合成されているのかを調べる。
【０１６５】
（１）頭文字辞書の先頭アドレスの取得
検索単語の最初から１文字目を切り出し、その文字のシフトＪＩＳコードを調べる。例えば、この場合の「半」のシフトＪＩＳコードは、９４ＢＣである。
【０１６６】
次に、単語頭文字別先頭アドレス格納部内の、９４ＢＣ番目に格納された「頭文字別先頭アドレス」を読み取る。
【０１６７】
これで、「半」の頭文字辞書が格納されているエリアの先頭アドレスが判別できた事になる。
【０１６８】
（２）頭文字単語辞書と検索単語との逐次マッチング
頭文字単語辞書内の単語と、検索単語との逐次マッチングを取る。具体的には、先頭アドレスから始まる単語辞書内の単語の文字数と同じ文字数の文字列を検索単語から切り出し、逐次マッチングさせる。
【０１６９】
この場合では、辞書内の「半分」と、検索単語の「半導」のマッチングを取る。そして、単語番号カウンタ２６の値を１にセットする。次に辞書内の「半々」と、検索単語の「半導」のマッチングを取る。そして、単語番号カウンタ２６を１進める。さらに、辞書内の「半透明」と、検索単語の「半導体」のマッチングを取る。
【０１７０】
そして、単語番号カウンタ２６を１進める。続いて、辞書内の「半導体」と、検索単語の「半導体」のマッチングを取る。そして、単語番号カウンタ２６を１進める。
【０１７１】
ここで、辞書内の「半導体」と検索単語の「半導体」が一致したので、この検索単語には「半導体」が存在する事が判明した。
【０１７２】
また、「半導体」に対応するビットマップのファイル名は、９４ＢＣ０００４で有る事が求められた。
【０１７３】
上記の処理を、頭文字が「半」で始まる単語グループ内の単語が無くなるまで行う。単語が無くなったら、検索単語の切り出し位置を１つ右へとずらす。
【０１７４】
上記の処理を、検索単語の終わりまで、繰り返す。
【０１７５】
上記処理を行った結果、「半導体操作」と言う合成語を構成している単語としては、「半導体」「導体」「体操」「操作」がその候補として挙げられたとする。
【０１７６】
（３）検索単語の選択
上記処理で求められた候補単語を検索結果表示部１０のモニタ等に表示し、操作者に検索に使用したい単語を選択される。
【０１７７】
この場合は、「半導体」と「操作」を選択したとする。
【０１７８】
（４）ビットマップファイル内のビットの検索
第２実施例での「内視鏡」と「光源」の両方の単語を有する文書の絞り込み処理と同様に、「半導体」と「操作」の両方を有する文書を探し出す。すなわち、「半導体」に対応するビットファイルファイルを読み込み、その中で、１にセットしてあるビットを探し出す。また、「操作」に対応するビットマップファイルを読み込み、その中で、１にセットしてあるビットを抽出する。
【０１７９】
その中で、「半導体」と「操作」の両方のビットマップファイルに１がセットして有る文書を抽出する。
【０１８０】
（５）文書中における検索単語の連結性調査
「半導体」と「操作」の両方が存在する複数の文書に対して、最初に「半導体」と言う単語と文書の文字列とのマッチングを取り、「半導体」が存在する位置を調査する。
【０１８１】
同様に、「操作」と言う単語と文書の文字列とのマッチングを取り、「操作」が存在する位置を調査する。処理としては、第１実施例の表示処理での単語位置探索と同様である。そして、調査した中で、「半導体」と言う単語が存在し、その直後に「操作」と言う単語が存在する様な位置関係にあるものを抽出する。
【０１８２】
これで、「半導体」と「操作」の両方が存在し、しかも両方が続けて記述された「半導体操作」である合成語のある文書が抽出できたことになる。そして、抽出した文書の見出し情報を検索結果表示部に表示する。また、合成語からなる検索単語が、例えば「文書検索」（＝文書＋検索）の場合のように、文字の重複なしに一意的に展開できた場合は、合成語を構成する単語について選択の自由度がなくなるので、上記「（３）検索単語の選択」のステップをスキップすることができる。
【０１８３】
上記変形例での処理は、検索単語として合成語の場合を想定したが、検索単語として、自由文を使用する事も考えられる。
【０１８４】
その場合もこの変形例と同様に、図３１（ａ）に示すような入力された検索自由文を、図３１（ｂ）に示すように単語展開し、図３１（ｃ）に示すように検索に使用する検索単語の候補を選択し、その候補単語が全て存在する文書を探し出せば良い事になる。図３１の場合「ＣＣＤ」と、「面順次発光光源」と、「ビデオ内視鏡システムが候補単語となっている。
【０１８５】
この変形例では、合成語等での検索が可能となるので、検索入力時の自由度が増す。
【０１８６】
次に、第４実施例について説明する。図３２ないし図３６は本発明の第４実施例に係わり、図３２は頭１文字と最後尾１文字が同じ単語毎に細分化されたグループからなる頭文字別単語辞書の構成を示す構成図、図３３は図３２の頭文字別単語辞書を用いた検索単語の登録処理の流れを示す第１のフローチャート、図３４は図３３の第１のフローチャートに続く検索単語の登録処理の流れを示す第２のフローチャート、図３５は図３２及び図３３で登録された検索単語による文書の検索処理の流れを示す第１のフローチャート、図３６は図３５の第１のフローチャートに続く文書の検索処理の流れを示す第２のフローチャートである。第４実施例は第３実施例とほとんど同じであり、システム構成は同じで処理のみが異なるので、異なる点のみ説明する。
【０１８７】
第３実施例では、頭文字別単語辞書を用いたが、日本語の場合はこの方法で単語が細かく分類でき高速化が図られるが、英語の場合には、同じ頭文字で始まる単語の数が多く存在する為に、単語が細分化されず、この方法はさほど効果を持たない。
【０１８８】
そこで、本実施例では、英語の様に頭文字が同じ単語が多数存在する場合でも、辞書内の単語の細分化が実現でき、登録／検索の高速化を可能とする。
【０１８９】
辞書内の単語を、以下のいずれかの方法で細分化しておく。
【０１９０】
（１）頭１文字と最後尾１文字が同じ単語毎に細分化する。
【０１９１】
例えば、図３２に示すように、頭１文字が「ａ」で始り最後が「ｒ」で終わる単語、「ａｎｓｗｅｒ」「ａｎｃｅｓｔｏｒ」「ａｐｐｅａｒ」等を１つのグループとし、「ａ」で始り最後が「ｙ」で終わる単語「ａｎｇｒｙ」「ａｐｐｌｙ」「ａｒｍｙ」等を１つのグループとする。
【０１９２】
（２）頭２文字毎に、細分化する
例えば、頭２文字が「ａｂ」で始まる単語、「ａｂｌｅ」「ａｂｏｖｅ」「ａｂｒｏａｄ」等を１つのグループとし、「ａｃ」で始まる単語「ａｃｃｅｎｔ」「ａｃｃｏｍｐａｎｙ」「ａｃｃｏｕｎｔ」等を１つのグループとする。
【０１９３】
（３）頭１文字と文字数が同じ単語毎に細分化する。
【０１９４】
例えば、頭１文字が「ａ」で始り文字数が３文字の単語、「ａｒｔ」「ａｉｒ」「ａｒｍ」等を１つのグループとし、「ａ」で始り文字数が５文字の単語「ａｐａｒｔ」「ａｔｌａｓ」「ａｓｉｄｅ」等を１つのグループとする。
【０１９５】
（４）上記（１）〜（３）を掛け合わせた条件で、細分化する。
【０１９６】
そして、上記のようにして、細分化したグループには、シフトＪＩＳの未使用コードを割り振る。つまり、例えば、シフトＪＩＳコードでは７１００から７１ＦＦまでは未使用エリアとなっているので、上記（１）の頭１文字が「ａ」で始り最後が「ｒ」で終わる単語群には、シフトＪＩＳコードの７１Ｆ０を割り振る。
【０１９７】
次に本実施例の検索単語の登録処理について説明する。
【０１９８】
英語の場合は個々の単語がスペースで区切られている為、単語の区切りが明確でない日本語の場合とは、展開が異なる。
【０１９９】
例えば、上記の細分化グループとして（１）におけるグループである頭１文字と最後尾１文字が同じ単語毎に細分化してある場合を考える。
【０２００】
図３３に示すように、本実施例の文書検索システムでは、ステップＳ８１で登録したい文書１を文書読取部３により、例えばＯＣＲで光学的に読み込む、または、例えばフロッピーディスクに電子的に保存されていた文書であれば、その内容をテキストデータとして読み込む。そして、ステップＳ８２で読み込んだ文書の文書データを文書ファイル記録部４に記録する。
【０２０１】
次にステップＳ８３で、登録／検索制御部６の制御部２４が展開処理を実行させたい文書データを文書ファイル記録部４から読み出しメモリ２１に記憶する。
【０２０２】
そしてステップＳ８４で、文字位置カウンタ２２を０にセットし、ステップＳ８５で文字位置カウンタ２２が示す数に対応する文書データの位置（この時点は文書の最初から１文字目）から次のスペースまでの１単語を切り出し（この場合は例えばａｎｓｗｅｒ）、そして、ステップＳ８６で切り出した１単語をレジスタ２３に格納すると共に、ステップＳ８７で先頭１文字と最後尾１文字（この場合は、ａとｒ）を調べ、その結果からステップＳ８８で先頭１文字と最後尾１文字に対応する単語辞書のシフトＪＩＳコードを調べる。なお、例えば、この場合の「ａｎｓｗｅｒ」が属ずるグループのシフトＪＩＳコードは、７１Ｆ０である。
【０２０３】
次に、ステップＳ８９で、頭文字先頭アドレスカウンタ４４がシフトＪＩＳコードを出力することで、７１Ｆ０番目に格納された「頭文字別先頭アドレス」を読み取る。この場合は、１５７０４３００であったとする。これで、「ａｎｓｗｅｒ」の属する頭文字辞書が格納されているエリアの先頭アドレスが判別できた事になる。
【０２０４】
次に、頭文字単語辞書内の単語と、文書との逐次マッチングを取る。具体的には、比較部２７で、レジスタ２３に格納されている文字位置カウンタ２２が示す所からスペースまでの切りだした単語と単語辞書の単語とのマッチングをとる。
【０２０５】
つまり、ステップＳ９０で単語番号カウンタ２６の値を１にセットする。そして、ステップＳ９１及びＳ９２で、例えば辞書内の「ａｎｃｅｓｔｏｒ」と、文書の「ａｎｓｗｅｒ」のマッチングを取る（図３２参照）。そして、図３４に移り、ステップＳ９３でマッチング結果を判定する。この場合、辞書内の「ａｎｃｅｓｔｏｒ」と文書の「ａｎｓｗｅｒ」とが一致しないので、ステップＳ９６で単語番号カウンタ２６を１進め、ステップＳ９７で単語グループの最後かどうか判断するが、この場合は最後ではないので、図３３のステップＳ９１にもどる。
【０２０６】
同様にして、ステップ９１及びＳ９２で、辞書内の次の単語である「ａｐｐｅａｒ」と、文書の「ａｎｓｗｅｒ」のマッチングを取る。そして、図３４に移り、ステップＳ９３でマッチング結果を判定する。この場合、辞書内の「ａｎｃｅｓｔｏｒ」と文書の「ａｎｓｗｅｒ」とが一致しないので、ステップＳ９６で単語番号カウンタ２６を１進め、ステップＳ９７で単語グループの最後かどうか判断するが、この場合は最後ではないので、図３３のステップＳ９１にもどる。
【０２０７】
同様にして、ステップ９１及びＳ９２で、辞書内の次の単語である「ａｎｓｗｅｒ」と、文書の「ａｎｓｗｅｒ」のマッチングを取る。
【０２０８】
ここで、辞書内の「ａｎｓｗｅｒ」と文書の「ａｎｓｗｅｒ」が一致したので、この文書には「ａｎｓｗｅｒ」が存在する事が判明した。
【０２０９】
ステップＳ９３よりステップＳ９４に処理が移行し、第３実施例同様に、「ａｎｓｗｅｒ」に対応するビットマップ中の、この文書に対応するビットを１にセットする。
【０２１０】
ただし、このビットマップのファイル名は、「ａｎｓｗｅｒ」が属するグループのシフトＪＩＳコードと、単語辞書中にある順番（単語番号カウンタ２６の値）を合わせたものとする。従って、この場合は、シフトＪＩＳが７１Ｆ０で、順番が０００３であるから、そのファイル名は、７１Ｆ００００３となる。
【０２１１】
上記マッチングは、同じ単語が見つかるか、又は辞書内の単語グループの最後まで繰り返す。
【０２１２】
同じ単語が見つかるか、辞書内の単語グループの最後まで繰り返したら、ステップＳ９９で文書内の単語切り出し開始位置を、次のスペースへと右へずらす。また、その時に切り出す文字列の最後は、２番目のスペースまでとする。
【０２１３】
そして、ステップＳ１００で文書の最後かどうか判定することで、上記の処理を、文書の終わりまで、繰り返す。
【０２１４】
ここで、英語の場合、文書中の単語が名詞であれば複数形の時に最後尾に「ｓ，ｅｓ」を付け、動詞であれば過去形の時に最後尾に「ｅｄ」を付け、形容詞であれば比較級の時に「ｅｒ，ｅｓｔ」を付ける等の語尾変化を伴う事が多い。
【０２１５】
従って、この「頭文字辞書の先頭アドレスの取得」処理（図３３のステップＳ８５〜Ｓ８９）において、切り出した単語が語尾変化をしている事も考えられるので、もし文書中の単語の語尾が  「ｓ，ｅｓ，ｅｄ、ｅｒ，ｅｓｔ」であった場合には、その語尾を取り除いた文字列に対しても、語尾を取り除かない文字列に対する処理に合わせて、同様の処理を行っておく。
【０２１６】
なお、単語が複数形、過去形、比較形時に規則変化する場合にはこの処理で対応でき、不規則変化する場合にはその不規則変化した形での単語をあらかじめ辞書に登録しておく事で対応できる。
【０２１７】
次に、このようにして得られたビットマップファイルに基づく文書検索処理について、図３５及び図３６を用いて説明する。
【０２１８】
まず、「ａｎｓｗｅｒ」が検索単語として、キーボードから入力されたとする。
【０２１９】
そこで、図３５に示すように、ステップＳ１０１で検索単語の先頭１文字と最後尾１文字（この場合は、ａとｒ）を調べ、その結果からステップＳ１０２で先頭１文字と最後尾１文字に対応する単語辞書のシフトＪＩＳコードを調べる。なお、例えば、この場合の「ａｎｓｗｅｒ」が属ずるグループのシフトＪＩＳコードは、７１Ｆ０である。
【０２２０】
次に、ステップＳ１０３で、頭文字先頭アドレスカウンタ４４がシフトＪＩＳコードを出力することで、７１Ｆ０番目に格納された「頭文字別先頭アドレス」を読み取る。この場合は、１５７０４３００であったとする。これで、「ａｎｓｗｅｒ」の属する頭文字辞書が格納されている先頭アドレスが判別できた事になる。
【０２２１】
次に、頭文字単語辞書内の単語と、文書との逐次マッチングを取る。具体的には、比較部２７で、レジスタ２３に格納されている検索単語と単語辞書の単語とのマッチングをとる。
【０２２２】
つまり、ステップＳ１０４で単語番号カウンタ２６の値を１にセットする。そして、ステップＳ１０５及びＳ１０６で、例えば辞書内の「ａｎｃｅｓｔｏｒ」と、文書の「ａｎｓｗｅｒ」のマッチングを取る（図３２参照）。そして、図３６に移り、ステップＳ１０７でマッチング結果を判定する。この場合、辞書内の「ａｎｃｅｓｔｏｒ」と文書の「ａｎｓｗｅｒ」とが一致しないので、ステップＳ１１１で単語番号カウンタ２６を１進め、ステップＳ１１２で単語グループの最後かどうか判断するが、この場合は最後ではないので、図３５のステップＳ１０５にもどる。
【０２２３】
同様にして、ステップＳ１０５及びＳ１０６で、辞書内の次の単語である「ａｐｐｅａｒ」と、文書の「ａｎｓｗｅｒ」のマッチングを取る。そして、図３６に移り、ステップＳ１０７でマッチング結果を判定する。この場合、辞書内の「ａｎｃｅｓｔｏｒ」と文書の「ａｎｓｗｅｒ」とが一致しないので、ステップＳ１１１で単語番号カウンタ２６を１進め、ステップＳ１１２で単語グループの最後かどうか判断するが、この場合は最後ではないので、図３５のステップＳ１０５にもどる。
【０２２４】
同様にして、ステップＳ１０５及びＳ１０６で、辞書内の次の単語である「ａｎｓｗｅｒ」と、文書の「ａｎｓｗｅｒ」のマッチングを取る。
【０２２５】
ここで、辞書内の「ａｎｓｗｅｒ」と文書の「ａｎｓｗｅｒ」が一致したので、この文書には「ａｎｓｗｅｒ」が存在する事が判明した。
【０２２６】
従って、この場合は、シフトＪＩＳが７１Ｆ０で、順番が０００３であるから、そのファイル名は、７１Ｆ００００３である事が判明した。
【０２２７】
そこで、図２９のステップＳ１０８ないしＳ１１０で、ビットマップファイル名が９３Ｅ００００４のファイルを読み込み、その中で、１にセットしてあるビットを探し出す。次に、そのビットに対応する文書を該当文書ファイルに記録する。
【０２２８】
上記の処理を単語グループの最後の単語まで繰り返し、ステップＳ１１２で最後と判断されると、ステップＳ１１３で該当文書ファイルに記録されている文書の見出し情報を検索結果表示部１０に表示する。
【０２２９】
このように、本実施例によれば、英語の様に、同じ頭文字を有する単語が多く存在する場合でも、単語辞書を更に細分化する事で、登録／検索処理の高速化が維持できる。
【０２３０】
次に、第５実施例について説明する。図３７ないし図４１は本発明の第５実施例に係わり、図３７は文書登録／検索システムの構成を示す構成図、図３８は図３７の文書登録／検索システムにおける入力検索単語による検索項目及び候補項目を取得する処理の流れを示すフローチャート、図３９は図３８の検索項目と同じ文字数の辞書との比較処理の流れを示すフローチャート、図４０は図３８の検索項目より１文字多い文字数の辞書との比較処理の流れを示すフローチャート、図４１は図３８の検索項目より１文字少ない文字数の辞書との比較処理の流れを示すフローチャートである。第５実施例は第２実施例とほとんど同じであるので、異なる点のみ説明する。
【０２３１】
第２実施例の変形例（図１８参照）でも述べたように、文書を検索する場合には、文書に含まれる単語以外に、作者名、発行日、雑誌名等での検索する事も頻繁におきる。
【０２３２】
ここで、登録時にこれら特定項目を検索語としてキーボードから入力する時には、タイプミスによる誤入力をともなう事がある。特に、作者名をローマ字入力する場合には、以下の三種類のミスを犯しやすい。
【０２３３】
（１）スペル入力ミス
例えば、「ＩＣＨＩＲＯＵ」と入力すべきところを、「ＩＳＨＩＲＯＵ」と入力してしまう。
【０２３４】
（２）重複入力ミス
例えば、「ＩＣＨＩＲＯＵ」と入力すべきところを、「ＩＣＣＨＩＲＯＵ」と入力してしまう。
【０２３５】
（３）スペル抜けミス
例えば、「ＩＣＨＩＲＯＵ」と入力すべきところを、「ＩＨＩＲＯＵ」と入力してしまう。
【０２３６】
そこで、本実施例では、この様な登録時の入力ミスが有った場合でも、検索を可能とするいわゆる曖昧検索を実現する。
【０２３７】
本実施例の文書登録／検索システムでは、図３４に示すように、レジスタ２３の出力側にマッチングカウンタ５１が設けられている。このマッチングカウンタ５１の作用は後述する。
【０２３８】
その他の構成は第２実施例と同じである（なお、第２実施例は検索単語ファイルの構成が第１実施例と異なるので、その他の構成は実質的には図２に示した構成と同じことになる）。
【０２３９】
検索単語の登録処理は、第２実施例及びその変形例と同じであるので説明は省略する。
【０２４０】
次に、検索単語による文書検索処理について説明する。たとえば、「ＩＣＨＩＲＯＵ」と言う正式な作者名で検索するとする。
【０２４１】
この場合、検索単語の時と同様に、「ＩＣＨＩＲＯＵ」の単語ＩＤを、単語同様の処理で、単語辞書ファイルを検索して取得する。
【０２４２】
この時に、登録時の入力ミスを想定し、本実施例では曖昧検索を実施する。
【０２４３】
ここでは、前述の３つの入力ミスが登録時に生じていたとする。即ち、「ＩＣＨＩＲＯＵ」と入力すべきところを、１字誤り「ＩＳＨＩＲＯＵ」「ＩＣＣＨＩＲＯＵ」「ＩＹＣＨＩＲＯＵ」「ＩＨＩＲＯＵ」として登録されていたとする。
【０２４４】
図３８に示すように、文書検索処理では、ステップＳ１２１で検索項目の文字数Ｎをチェックし文字数カウンタ２５をＮにセットする（この場合は、「ＩＣＨＩＲＯＵ」なので、７）。そして、ステップＳ１２２〜Ｓ１２４で、後述する検索項目と同じ文字数の辞書との比較処理、検索項目より１文字多い文字数の辞書との比較処理、検索項目より１文字少ない文字数の辞書との比較処理を順次行うことで、候補項目を取得する。
【０２４５】
次に、上記のステップＳ１２２〜Ｓ１２４での処理を図３８ないし図４１を用いて説明する。
【０２４６】
（１）ステップＳ１２２：検索項目と同じ文字数の単語辞書とのマッチング
図３９に示すように、この処理では、ステップ１３１で単語番号カウンタ２６を０にセットし、ステップＳ１３２で文字数Ｎの単語辞書内の単語と、検索項目との相関を取る。このマッチングでは、辞書内の単語と検索項目とを、先頭から１字ずつ比較する。そして、合致する毎に、マッチングカウンタ５１を１増加させる。
【０２４７】
そして、ステップＳ１３３でマッチングカウンタ５１がＮかどうか判断し、Ｎの時には、ステップＳ１３４で完全一致したとして検索項目として抽出する。
【０２４８】
また、Ｎでない場合は、ステップＳ１３５でマッチングカウンタ５１がＮ−１かどうか判断し、Ｎ−１の時には、単語は１字違いで有り、１字の入力ミスで有る事が予想される。そこで、ステップＳ１３６で、例えば「ＩＳＨＩＲＯＵ」が候補項目として抽出される。
【０２４９】
そして、ステップＳ１３７で単語番号をインクリメントし、ステップＳ１３８で辞書内の最後の判定を繰り返すことで、項目及び候補項目を得る。
【０２５０】
（２）ステップＳ１２３：検索項目より１文字多い文字数の単語辞書とのマッチング
図４０に示すように、この処理では、ステップ１４１で単語番号カウンタ２６を０にセットし、ステップＳ１４２で文字数Ｎ＋１の単語辞書内の単語と、検索項目との相関を取る。このマッチングでは、辞書内の単語と検索項目とを、先頭から１字ずつ比較する。そして、合致する毎に、マッチングカウンタ５１を１増加させる。つまり、検索項目が「ＩＣＨＩＲＯＵ」で辞書内の単語が「ＩＣＣＨＩＲＯＵ」である場合にはカウンタの値は２、辞書内の単語が「ＩＹＣＨＩＲＯＵ」である場合にはカウンタの値は１となる。
【０２５１】
次に、ステップＳ１４３でレジスタ２３内のデータ「ＩＣＨＩＲＯＵ」を１文字分右へシフトし、ステップＳ１４４で「＿ＩＣＨＩＲＯＵ」とし、辞書内の単語と比較する。そして、合致する毎に、マッチングカウンタ５１を１増加させる。その結果、辞書内の単語が「ＩＣＣＨＩＲＯＵ」である場合にはカウンタの値は６、辞書内の単語が「ＩＹＣＨＩＲＯＵ」である場合もカウンタの値は６となる。そして、マッチングカウンタ５１において前の処理（ステップＳ１４２）でのカウンタの値と今回のカウンタの値を加算した値をカウント値とする。
【０２５２】
そして、ステップＳ１４５でマッチングカウンタ５１の値がＮ以上かどうか判断し、Ｎ以上の時には、単語は１字違いで有り、１字の入力ミスで有る事が予想される。そこで、ステップＳ１４６で、例えば「ＩＣＣＨＩＲＯＵ」や「ＩＹＣＨＩＲＯＵ」が候補項目として抽出される。
【０２５３】
そして、ステップＳ１４７で単語番号をインクリメントし、ステップＳ１４８で辞書内の最後の判定を繰り返すことで、候補項目を得る。
【０２５４】
４．検索項目より１文字少ない文字数の単語辞書とのマッチング
（３）ステップＳ１２４：検索項目より１文字少ない文字数の単語辞書とのマッチング
図４１に示すように、この処理では、ステップ１５１で単語番号カウンタ２６を０にセットし、ステップＳ１５２で文字数Ｎ−１の単語辞書内の単語と、検索項目との相関を取る。このマッチングでは、辞書内の単語と検索項目とを、先頭から１字ずつ比較する。そして、合致する毎に、マッチングカウンタ５１を１増加させる。つまり、検索項目が「ＩＣＨＩＲＯＵ」で辞書内の単語が「ＩＨＩＲＯＵ」である場合にはカウンタの値は１となる。
【０２５５】
次に、ステップＳ１５３で辞書内の単語「ＩＨＩＲＯＵ」を１文字分右へシフトし、ステップＳ１５４で「＿ＩＨＩＲＯＵ」とし、レジスタ２３内のデータと比較する。そして、合致する毎に、マッチングカウンタ５１を１増加させる。その結果、辞書内の単語が「ＩＨＩＲＯＵ」である場合にはカウンタの値は５となる。そして、マッチングカウンタ５１において前の処理（ステップＳ１５２）でのカウンタの値と今回のカウンタの値を加算した値をカウント値とする。
【０２５６】
そして、ステップＳ１５５でマッチングカウンタ５１の値がＮ−１以上かどうか判断し、Ｎ−１以上の時には、単語は１字違いで有り、１字の入力ミスで有る事が予想される。そこで、ステップＳ１５６で、例えば「ＩＨＩＲＯＵ」が候補項目として抽出される。
【０２５７】
そして、ステップＳ１５７で単語番号をインクリメントし、ステップＳ１５８で辞書内の最後の判定を繰り返すことで、候補項目を得る。
【０２５８】
そして、このようにして得られた、完全一致した特定項目及び検索候補項目に対して検索単語ファイルを検索し、存在する場合には、そのビットマップファイルを読みだす。完全一致した特定項目に加えて、一字違いの候補項目に関しても、その対応する文書の見出し情報を読み込み、一覧表表示する。
【０２５９】
なお、ここでは一字の入力ミスを候補として挙げたが、２字までの入力ミスも候補として挙げる場合も、前記同様の以下の処理を行う事により実現可能である。
【０２６０】
その場合には、
（１）検索項目と同じ文字数の単語辞書とのマッチング
文字数Ｎの単語辞書内の単語と、検索項目文字列との相関を取る。カウンタ値がＮ−１、Ｎ−２の単語を候補として抽出する。
【０２６１】
（２）検索項目より２文字多い文字数の単語辞書とのマッチング
文字数Ｎ＋１、Ｎ＋２の単語辞書内の単語と、検索項目との相関を取る。文字数がＮ＋２の単語辞書内の単語との相関を取る時には、検索項目文字列を右へシフトする処理を２回行う（「＿ＩＣＨＩＲＯＵ」「＿＿ＩＣＨＩＲＯＵ」）。３回の処理のカウンタ値の合計が、Ｎ以上の単語を候補として抽出する。
【０２６２】
（３）検索項目より２文字少ない文字数の単語辞書とのマッチング
文字数Ｎ−１、Ｎ−２の単語辞書内の単語と、検索項目との相関を取る。文字数がＮ−２の単語辞書内の単語との相関を取る時には、単語辞書内の単語を右へシフトする処理を２回行う（「＿ＩＨＩＲＯ」「＿＿ＩＨＩＲＯ」）。カウンタ値がＮ−２以上の単語を候補として抽出する。
【０２６３】
このように本実施例によれば、入力ミスの有った単語に関しても、曖昧検索が可能となり、検索能力が向上する。
【０２６４】
なお、上記第５実施例では、登録時に、特定項目をキーボードから入力する際に生じる誤入力を救う検索方法（曖昧検索）に関して記述したが、これに限らず、例えば、特定項目の入力を自動化する事により、誤入力を未然に防止するようにしても良い。
【０２６５】
すなわち、例として、特許文書のように、特定項目に見出しが付いている文書を想定する。
【０２６６】
特許の場合には、出願人の前には「（７１）出願人」、出願日の前には「（２２）出願日」、発明の名称の前には「（５４）〔発明の名称〕」等の見出しが付いている。
【０２６７】
したがって、この見出しを自動認識すれば、特定項目をキーボード等から手入力する必要が無くなり、誤入力が防げる。
【０２６８】
例えば、第３実施例と同様に、文書内の文字列を頭文字別辞書で展開していく。すなわち、あらかじめ、頭文字が「（」の単語辞書に、「（７１）出願人」、「（２２）出願日」、「（５４）〔発明の名称〕」等の見出し文字列を登録しておく。
【０２６９】
順次展開していく中で、文書内の文字が「（」となったら、「（」の頭文字辞書内の単語とのマッチングを取る。その処理の中で、「（７１）出願人」、「（２２）出願日」、「（５４）〔発明の名称〕」等の見出し文字列と合致した場合には、その後の文字列をその見出しに対応した特定項目とみなし、以前と同様の処理を行う。ここで、その特定項目の最後尾の確認は、次の見出しの始まりである「（」や「〔」を検知する事で可能である。
【０２７０】
このような変形例では、特定項目が、文書中の文字を用いて自動的に行われるので、作業効率が向上すると共に、誤入力を防止できる。
【０２７１】
［付記］
（付記項１）  文書中の単語をキーワードとして複数の文書を検索する文書検索方法において、
前記文書の先頭から１文字毎に順次移動し、移動した文字を先頭文字とする前記文書を構成する１つ以上の文字からなる文字列を順次切り出す文字切り出しステップと、
所定の規則に従った複数の単語からなる複数の単語グループのうち１つの前記単語グループを指定する単語グループ指定ステップと、
前記単語グループ指定ステップにより指定された前記単語グループの前記単語を指定する単語指定ステップと、
前記単語指定ステップにより指定された前記単語と、前記文字切り出しステップにより切り出された前記文字列とを比較する比較ステップと、
前記比較ステップの比較により前記単語と前記文字列とが一致した場合に、前記文書と対応づけて前記文字列を前記キーワードとして抽出するキーワード抽出ステップと
を備えて構成されることを特徴とする文書検索方法。
【０２７２】
（付記項２）  前記文字切り出しステップは、前記文字列を文字数単位毎に切り出し、
前記単語グループは、文字数等しい複数の単語からなり、
前記単語グループ指定ステップは、前記文字切り出しステップで切り出された文字列の文字数と等しい前記単語グループを指定する
ことを特徴とする付記項１に記載の文書検索方法。
【０２７３】
（付記項３）  前記単語グループは、少なくとも前記単語の前記先頭文字が等しい異なる文字数の複数の単語からなり、
前記単語グループ指定ステップは、前記文字切り出しステップで切り出された文字列の先頭文字と等しい前記単語グループを指定し、
前記文字切り出しステップは、前記単語指定ステップが指定した前記単語の文字数に等しく、前記文字列の前記先頭文字が同一の文字列を新たに切り出す
ことを特徴とする付記項１に記載の文書検索方法。
【０２７４】
（付記項４）  前記キーワード抽出ステップにより抽出されたキーワードを格納するキーワード格納ステップと、
検索キーワードを入力する検索キーワード入力ステップと、
前記キーワード格納ステップにて格納されたキーワードを所定の順序で読み出すキーワード読み出しステップと、
前記キーワード読み出しステップにて読み出されたキーワードを、前記検索キーワード入力ステップにて入力された検索キーワードと比較する検索キーワード比較ステップと、
前記検索キーワード比較ステップの比較結果に基づき、前記キーワード格納ステップにより格納された前記キーワードを読みだし、前記キーワードにより前記文書を指定する文書指定ステップと
を備えたことを特徴とする付記項１の文書検索方法。
【０２７５】
（付記項５）  前記キーワード抽出ステップは、前記比較ステップの比較による前記単語と前記文字列との一致回数を抽出する
ことを特徴とする付記項１に記載の文書検索方法。
【０２７６】
（付記項６）  文書中の単語をキーワードとして複数の文書を検索する文書検索装置において、
前記文書の先頭から１文字毎に順次移動し、移動した文字を先頭文字とする前記文書を構成する１つ以上の文字からなる文字列を順次切り出す文字切り出し手段と、
所定の規則に従った複数の単語からなる複数の単語グループを記録する単語グループ記録手段と、
前記単語グループ記録手段が記録している前記複数の単語グループのうち１つの前記単語グループを指定する単語グループ指定手段と、
前記単語グループ指定手段により指定された前記単語グループの前記単語を指定する単語指定手段と、
前記単語指定手段により指定された前記単語と、前記文字切り出し手段により切り出された前記文字列とを比較する比較手段と、
前記比較手段の比較により前記単語と前記文字列とが一致した場合に、前記文書と対応づけて前記文字列を前記キーワードとして抽出するキーワード抽出手段と
を備えて構成されることを特徴とする文書検索装置。
【０２７７】
（付記項７）  前記文字切り出し手段は、前記文字列を文字数単位毎に切り出し、
前記単語グループは、文字数等しい複数の単語からなり、
前記単語グループ指定手段は、前記文字切り出し手段で切り出された文字列の文字数と等しい前記単語グループを指定する
ことを特徴とする付記項６に記載の文書検索装置。
【０２７８】
（付記項８）  前記単語グループは、少なくとも前記単語の前記先頭文字が等しい異なる文字数の複数の単語からなり、
前記単語グループ指定手段は、前記文字切り出し手段で切り出された文字列の先頭文字と等しい前記単語グループを指定し、
前記文字切り出し手段は、前記単語指定手段が指定した前記単語の文字数に等しく、前記文字列の前記先頭文字が同一の文字列を新たに切り出す
ことを特徴とする付記項６に記載の文書検索装置。
【０２７９】
（付記項９）  前記キーワード抽出手段により抽出された前記キーワードを格納するキーワード格納手段と、
検索キーワードを入力する検索キーワード入力手段と
を備え、
前記比較手段は、前記単語指定手段により指定された前記単語と、前記検索キーワード入力手段により入力された前記検索キーワードを比較し、
前記キーワード抽出手段は、前記検索キーワード比較手段の比較結果に基づき、前記キーワード格納手段により格納された前記キーワードを読みだし、前記キーワードにより前記文書を指定する
を備えたことを特徴とする付記項６の文書検索装置。
【０２８０】
（付記項１０）  前記キーワード抽出手段は、前記比較手段の比較による前記単語と前記文字列との一致回数を抽出すると共に、前記一致回数に基づき前記文書を指定する
ことを特徴とする付記項９に記載の文書検索装置。
【０２８１】
（付記項１１）  前記キーワード格納手段は、前記一致回数に基づき前記キーワード抽出手段により抽出された前記キーワードを配列させ、格納する
ことを特徴とする付記項１０に記載の文書検索装置。
【０２８２】
（付記項１２）  前記比較手段で前記単語のすべてと一致しない前記文字列を前記単語グループ記録手段に追加記録する単語追加手段
を有することを特徴とする付記項６に記載の文書検索装置。
【０２８３】
（付記項１３）  前記比較手段で前記単語のすべてと一致しない前記文字列を前記単語グループ記録手段に追加記録する単語追加手段
を有することを特徴とする付記項９に記載の文書検索装置。
【０２８４】
（付記項１４）  前記キーワード抽出手段は、前記文書に関わる特定情報を検出し、
前記キーワード格納手段は、前記特定情報を前記単語情報として格納し、
前記単語追加手段は、前記単語グループ記録手段に前記特定情報を追加記録する
ことを特徴とする付記項１３に記載の文書検索装置。
【０２８５】
（付記項１５）  前記検索キーワード入力手段は、前記文書に関わる前記特定情報を入力する
ことを特徴とする付記項１４に記載の文書検索装置。
【０２８６】
（付記項１６）  前記キーワード抽出手段は、
前記検索キーワード入力手段から指定された前記検索キーワードが、前記キーワード格納手段に格納されている前記特定情報あるいは前記キーワードと、文字の配列および文字数において不完全な一致を許して、前記文書を前記キーワード格納手段から指定する
ことを特徴とする付記項１５に記載の文書検索装置。
【０２８７】
（付記項１７）  前記単語グループ記録手段は、
前記文書中の特定項目に付されている見出しを記録しており、
前記キーワード格納手段は、
前記見出しを検出して、前記見出しに続く文字列を特定情報として格納する
ことを特徴とする付記項９に記載の文書検索装置。
【０２８８】
（付記項１８）  前記キーワード格納手段は、
前記キーワードをビットマップ形式で記録する
ことを特徴とする付記項９に記載の文書検索装置。
【０２８９】
（付記項１９）  前記キーワード格納手段は、
前記キーワードを圧縮処理して記録する
ことを特徴とする付記項９に記載の文書検索装置。
【０２９０】
（付記項２０）  前記単語グループは、２つ以上の共通な属性を有する複数の単語からなる
ことを特徴とする付記項６に記載の文書検索装置。
【０２９１】
（付記項２１）  前記検索キーワード入力手段は、
入力する前記検索キーワードが複数の検索単語からなる検索合成語または検索文であるときに、前記検索キーワードを文字数順に切り出しながら、順次前記単語グループ記録手段の前記単語と対応付けるため前記検索単語を切り出す検索単語切り出し手段を有し、
前記キーワード抽出手段は、前記検索単語切り出し手段にて切り出された複数の検索単語を有する文書を指定する
ことを特徴とする付記項９に記載の文書検索装置。
【０２９２】
（付記項２２）  前記検索キーワード入力手段は、
入力する前記検索キーワードが複数の検索単語からなる検索合成語または検索文であるときに、前記検索キーワードを文字数順に切り出しながら、順次前記単語グループ記録手段の前記単語と対応付けるため前記検索単語を切り出す検索単語切り出し手段を有し、
前記切り出された前記検索単語単語情報を表示する表示手段と、
前記表示手段にて表示された前記検索単語を複数選択する選択手段と
を備え、
前記キーワード抽出手段は、前記選択手段にて選択された複数の検索単語を有する文書を指定する
ことを特徴とする付記項９に記載の文書検索装置。
【０２９３】
（付記項２３）  前記比較手段は、前記単語指定手段により指定された単語の前記文書中の位置をカウントする文字位置カウンタを有する
ことを特徴とする付記項９に記載の文書検索装置。
【０２９４】
（付記項２４）  前記比較手段は、前記単語指定手段により指定された単語の前記文書中の位置をカウントする文字位置カウンタを有し、
前記キーワード抽出手段は、前記複数の検索単語の前記カウントされた位置よりキーワードの連結性を判断する連結性判断部を有する
ことを特徴とする付記項２１または２２に記載の文書検索装置。
【０２９５】
【発明の効果】
以上説明したように本発明によれば、比較ステップで単語指定ステップにより指定された単語と、文字切り出しステップにより切り出された文字列とを比較し、キーワード抽出ステップで比較ステップの比較により単語と文字列とが一致した場合に、文書と対応づけて文字列をキーワードとして抽出するという簡単なアルゴリズムで文書の登録及び検索処理をしているので、高速に文書を登録及び検索することができるという効果がある。
【図面の簡単な説明】
【図１】本発明の第１実施例に係る文書登録／検索システムの構成を示す構成図
【図２】図１の登録／検索制御部の構成を示す構成図
【図３】図１の文字数別単語辞書ファイル記録部に記録される文字数別単語辞書ファイルの構成を示す構成図
【図４】図１の文書登録／検索システムによる検索単語の登録処理の流れを示す第１のフローチャート
【図５】図１の文書登録／検索システムによる検索単語の登録処理の流れを示す第２のフローチャート
【図６】図４の第１のフローチャートで読み込まれる文書の一例を示す図
【図７】図６の文書をメモリ上に展開した文字列を示す図
【図８】図４及び図５に示したフローチャートで生成される検索単語ファイル記録部に記録される検索単語ファイルの構成を示す構成図
【図９】図８の検索単語ファイルによる文書の検索処理の流れを示すフローチャート
【図１０】図９の検索処理の具体例を説明する説明図
【図１１】図９の検索処理により得られた該当文書ファイルの構成を示す構成図
【図１２】図１１の該当文書ファイルに基づく検索結果表示部の表示例を示す図
【図１３】本発明の第２実施例に係る検索単語ファイル記録部に記憶される検索単語ファイルとビットマップファイルの構成を示す構成図
【図１４】図１３の検索単語ファイルとビットマップファイルを生成し検索単語を登録する処理の流れを示すフローチャート
【図１５】図１３の検索単語ファイルとビットマップファイルを用いた文書の検索処理の流れを示すフローチャート
【図１６】図１３のビットマップファイルの第１の変形例を示す図
【図１７】図１３のビットマップファイルの第２の変形例を示す図
【図１８】図１４の登録処理に用いられる文字数別単語辞書ファイルの変形例の構成を示す構成図
【図１９】図１８の変形例の文字数別単語辞書ファイルにより生成される検索単語ファイルの構成を示す構成図
【図２０】図１８の変形例の文字数別単語辞書ファイルにより生成されるビットマップファイルの構成を示す構成図
【図２１】図１３の検索単語ファイルの変形例の構成を示す構成図
【図２２】本発明の第３実施例に係る文書検索／登録システムの構成を示す構成図
【図２３】図２２の頭文字別辞書ファイル記録部に記録される頭文字別辞書ファイルの構成を示す構成図
【図２４】図２２の文書検索／登録システムによる検索単語の登録処理の流れを示す第１のフローチャート
【図２５】図２２の文書検索／登録システムによる検索単語の登録処理の流れを示す第２のフローチャート
【図２６】図２４及び図２５による処理の具体例を説明する説明図
【図２７】図２６における処理により得られたビットマップファイルの構成を示す構成図
【図２８】図２２の文書検索／登録システムによる文書の検索処理の流れを示す第１のフローチャート
【図２９】図２２の文書検索／登録システムによる文書の検索処理の流れを示す第２のフローチャート
【図３０】図２８及び図２９による処理の具体例を説明する説明図
【図３１】図２２の文書検索／登録システムによる検索自由文による検索が可能な検索処理の変形例を説明する図
【図３２】本発明の第４実施例に係る頭１文字と最後尾１文字が同じ単語毎に細分化されたグループからなる頭文字別単語辞書の構成を示す構成図
【図３３】図３２の頭文字別単語辞書を用いた検索単語の登録処理の流れを示す第１のフローチャート
【図３４】図３３の第１のフローチャートに続く検索単語の登録処理の流れを示す第２のフローチャート
【図３５】図３３及び図３４で登録された検索単語による文書の検索処理の流れを示す第１のフローチャート
【図３６】図３５の第１のフローチャートに続く文書の検索処理の流れを示す第２のフローチャート
【図３７】本発明の第５実施例に係る文書登録／検索システムの構成を示す構成図
【図３８】図３７の文書登録／検索システムにおける入力検索単語による検索項目及び候補項目を取得する処理の流れを示すフローチャート
【図３９】図３８の検索項目と同じ文字数の辞書との比較処理の流れを示すフローチャート
【図４０】図３８の検索項目より１文字多い文字数の辞書との比較処理の流れを示すフローチャート
【図４１】図３８の検索項目より１文字少ない文字数の辞書との比較処理の流れを示すフローチャート
【符号の説明】
１…文書
２…フロッピディスク
３…文書読取部
４…文書ファイル記録部
５…文字数別単語辞書ファイル記録部
６…登録／検索制御部
７…検索単語ファイル記録部
８…検索単語入力部
９…検索結果記録部
１０…検索結果表示部
２１…メモリ
２２…文字位置カウンタ
２３…レジスタ
２４…制御部
２５…文字数カウンタ
２６…単語カウンタ
２７…比較部
２８…残文字ファイル
２９…辞書登録部
【図１】
0003548263.tif 000002
【図２】
0003548263.tif 000003
【図３】
0003548263.tif 000004
【図４】
0003548263.tif 000005
【図５】
0003548263.tif 000006
【図６】
0003548263.tif 000007
【図７】
0003548263.tif 000008
【図８】
0003548263.tif 000009
【図９】
0003548263.tif 000010
【図１０】
0003548263.tif 000011
【図１１】
0003548263.tif 000012
【図１２】
0003548263.tif 000013
【図１３】
0003548263.tif 000014
【図１４】
0003548263.tif 000015
【図１５】
0003548263.tif 000016
【図１６】
0003548263.tif 000017
【図１７】
0003548263.tif 000018
【図１８】
0003548263.tif 000019
【図１９】
0003548263.tif 000020
【図２０】
0003548263.tif 000021
【図２１】
0003548263.tif 000022
【図２２】
0003548263.tif 000023
【図２３】
0003548263.tif 000024
【図２４】
0003548263.tif 000025
【図２５】
0003548263.tif 000026
【図２６】
0003548263.tif 000027
【図２７】
0003548263.tif 000028
【図２８】
0003548263.tif 000029
【図２９】
0003548263.tif 000030
【図３０】
0003548263.tif 000031
【図３１】
0003548263.tif 000032
【図３２】
0003548263.tif 000033
【図３３】
0003548263.tif 000034
【図３４】
0003548263.tif 000035
【図３５】
0003548263.tif 000036
【図３６】
0003548263.tif 000037
【図３７】
0003548263.tif 000038
【図３８】
0003548263.tif 000039
【図３９】
0003548263.tif 000040
【図４０】
0003548263.tif 000041
【図４１】
0003548263.tif 000042