(57)【要約】【課題】Ｎグラムの手法を用いた検索に際して、効率よく文書の検索を行うことができる仕組みを提供すること【解決するための手段】検索条件となる入力文字列を、Ｎグラムの手法を用いてトークンを取得するに際し、得られたトークンで単語辞書を検索する。当該トークンに対応する表記が単語辞書に含まれていれば、当該トークンは、１つの単語であり、途中で分割しないよう、次にトークンを取得すべき入力文字列の位置を、単語と見なされたトークンの後続の位置から開始する。【選択図】図８
2018073047.tif 000002
【特許請求の範囲】
【請求項１】
文字列で表される単語の表記から構成される単語情報を記憶するための単語辞書記憶手段を備え、文書をＮグラムの手法により索引を付与して格納した文書記憶手段に対して、検索条件となる入力文字列に基づき検索を実行する情報処理装置において、
前記入力文字列をＮグラムの手法に基づき解析して、検索を実行するための候補となるトークンを取得するためのトークン取得手段と、
前記トークン取得手段において取得されたトークンに基づき、前記単語辞書記憶手段に記憶された単語情報の表記を検索して、単語情報を取得するための辞書検索手段と、
前記辞書検索手段によって取得された単語情報にもとづき、検索条件となる前記入力文字列の部分文字列と一致した表記を取得する一致手段と、
前記一致手段により一致するとして取得された表記を表す文字列を、検索に用いるトークンとしてトークン記憶部に登録するトークン登録手段と、
前記一致手段により検索条件となる前記入力文字列の部分文字列と一致した表記を取得した場合には、当該入力文字列のうち、前記表記と一致した部分文字列の解析をせず、一致した部分文字列の次の位置からトークン取得のための解析をさせるよう解析位置を変更するための解析位置変更手段と、
を備えることをすることを特徴とする情報処理装置。
【請求項２】
前記一致手段は、前記単語情報に含まれる表記のうち、検索条件となる前記入力文字列に含まれる表記が複数ある場合には、当該表記のうち最長のものを一致した表記とし、
前記トークン登録手段は、前記一致手段により、一致したとされる最長の表記を登録することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記単語情報は、前記単語の表記を表す文字列と、前記単語と関連する単語の表記を表す文字列を含むことを特徴とする請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記単語情報は、当該単語情報を代表となる１つの表記と、当該代表となる表記以外の表記を含むものであって、
前記一致手段は、前記単語情報を代表となる表記が検索条件となる前記入力文字列の部分文字列と一致した場合には、当該代表となる表記以外の表記も、当該入力文字列の一部と文字列として一致するかしないかにかかわらず、一致するものとみなすことを特徴とする請求項１乃至請求項３に記載の情報処理装置。
【請求項５】
文字列で表される単語の表記から構成される単語情報を記憶するための単語辞書記憶手段を備え、文書をＮグラムの手法により索引を付与して格納した文書記憶手段に対して、検索条件となる入力文字列に基づき検索を実行する情報処理装置の制御方法において、
トークン取得手段が、前記入力文字列をＮグラムの手法に基づき解析して、検索を実行するための候補となるトークンを取得するためのトークン取得ステップと、
辞書検索手段が、前記トークン取得ステップにおいて取得されたトークンに基づき、前記単語辞書記憶手段に記憶された単語情報の表記を検索して、単語情報を取得するための辞書検索ステップと、
一致手段が、前記辞書検索ステップによって取得された単語情報にもとづき、検索条件となる前記入力文字列の部分文字列と一致した表記を取得する一致ステップと、
トークン登録手段が、前記一致ステップにより一致するとして取得された表記を表す文字列を、検索に用いるトークンとしてトークン記憶部に登録するトークン登録ステップと、
解析位置変更手段が、前記一致ステップにより検索条件となる前記入力文字列の部分文字列と一致した表記を取得した場合には、当該入力文字列のうち、前記表記と一致した部分文字列の解析をせず、一致した部分文字列の次の位置からトークン取得のための解析をさせるよう解析位置を変更するための解析位置変更ステップと、
を備えることをすることを特徴とする情報処理装置の制御方法。
【請求項６】
文字列で表される単語の表記から構成される単語情報を記憶するための単語辞書記憶手段を備え、文書をＮグラムの手法により索引を付与して格納した文書記憶手段に対して、検索条件となる入力文字列に基づき検索を実行する情報処理装置において実行が可能なプログラムであって、
前記情報処理装置を、
前記入力文字列をＮグラムの手法に基づき解析して、検索を実行するための候補となるトークンを取得するためのトークン取得手段と、
前記トークン取得手段において取得されたトークンに基づき、前記単語辞書記憶手段に記憶された単語情報の表記を検索して、単語情報を取得するための辞書検索手段と、
前記辞書検索手段によって取得された単語情報にもとづき、検索条件となる前記入力文字列の部分文字列と一致した表記を取得する一致手段と、
前記一致手段により一致するとして取得された表記を表す文字列を、検索に用いるトークンとしてトークン記憶部に登録するトークン登録手段と、
前記一致手段により検索条件となる前記入力文字列の部分文字列と一致した表記を取得した場合には、当該入力文字列のうち、前記表記と一致した部分文字列の解析をせず、一致した部分文字列の次の位置からトークン取得のための解析をさせるよう解析位置を変更するための解析位置変更手段として機能させることを特徴とするプログラム。
【請求項７】
文字列で表される単語情報を記憶する単語辞書記憶手段を備える情報処理装置であって、
検索条件となる入力文字列に基づいてＮグラムの手法を用いた文書の検索を行うにあたり、前記入力文字列の中から、一定の字数の間隔ごとに、順々に、所定の字数の文字列をトークンとして取得するトークン取得手段と、
前記取得手段により取得されたトークンであって、文書の検索に用いるトークンを登録するトークン登録手段と、
前記トークン登録手段により登録されたトークンを用いて文書を検索すべく制御する検索手段と、
を備え、
前記トークン登録手段は、前記トークン取得手段により取得されたトークンの文字列の中に前記単語辞書記憶手段に記憶されている単語がある場合に、前記単語の途中からの前記所定の字数の文字列を次のトークンとして登録することなく、前記単語より後ろの位置からの前記所定の字数の文字列を次のトークンとして登録することを特徴とする情報処理装置。
【請求項８】
前記トークン取得手段は、取得した取得する処理を行うことなく、前記単語より後の位置から前記所定の字数の文字列を次のトークンとして取得する処理を行うことを特徴とすることを特徴とする請求項７に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
従来、インターネットや組織内において保存されるテキスト文書などのデジタル化に伴い、非定型文書が膨大な数となっている。そのためコンピュータの記憶装置に格納されたテキスト文書などの情報を高速に、また高精度で検索する必要性が高まっている。
【０００３】
大量のテキスト文書から、ユーザが意図したデータを検索する技術は様々存在する。特に、高速化のために形態素解析やＮグラムなどの技術により、インデックスを用いる方法が存在する。
【０００４】
形態素解析もＮグラムによる手法も、それぞれに長所と短所を持つため、様々な検索の実装においては、両者（あるいは他の手法）を複合的に用いる手法が用いられている。例えば、特許文献１においては、形態素解析とＮグラムによる手法を複合的に用いて、検索漏れをなくす技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２５０３８９号公報
【非特許文献】
【０００６】
【非特許文献１】長野、鈴木、牧野、”ＨＭＭを用いた複数ｎ−ｇｒａｍモデルによる言語モデルの構築”情報処理学会論文誌、Ｖｏｌ．４３、Ｎｏ．７、ｐｐ．２０７５−２０８１、２００２年７月
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１の技術においては、形態素解析とＮグラムの両方の解析から得たトークンを用いるため、検索漏れをなくすことはできるが、誤ったテキスト文書（以下、不適合文書とする）を検索しないよう抑制することはできない。また、二種類の解析を行うため、必ずしも高速化を実現しているとは言えない。
【０００８】
本発明は、Ｎグラムの手法を用いた検索に際して、効率よく文書の検索を行うことができる仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の情報処理装置は、文字列で表される単語の表記から構成される単語情報を記憶するための単語辞書記憶手段を備え、文書をＮグラムの手法により索引を付与して格納した文書記憶手段に対して、検索条件となる入力文字列に基づき検索を実行する情報処理装置において、前記入力文字列をＮグラムの手法に基づき解析して、検索を実行するための候補となるトークンを取得するためのトークン取得手段と、前記トークン取得手段において取得されたトークンに基づき、前記単語辞書記憶手段に記憶された単語情報の表記を検索して、単語情報を取得するための辞書検索手段と、前記辞書検索手段によって取得された単語情報にもとづき、検索条件となる前記入力文字列の部分文字列と一致した表記を取得する一致手段と、前記一致手段により一致するとして取得された表記を表す文字列を、検索に用いるトークンとしてトークン記憶部に登録するトークン登録手段と、前記一致手段により検索条件となる前記入力文字列の部分文字列と一致した表記を取得した場合には、当該入力文字列のうち、前記表記と一致した部分文字列の解析をせず、一致した部分文字列の次の位置からトークン取得のための解析をさせるよう解析位置を変更するための解析位置変更手段と、を備えることをすることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、Ｎグラムの手法を用いた検索に際して、効率よく文書の検索を行うことができる仕組みを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態における、情報処理装置１００の機能構成の一例を示す図である。
【図２】本発明の実施形態における、情報処理装置１００のハードウェア構成の一例を示す図である。
【図３】Ｎグラムを用いた検索において、その結果に不適合文書が含まれる状況が発生する一例を示す図である。
【図４】本発明の実施形態における、テキスト文書を検索する処理のフローチャートの一例を示す図である。
【図５】本発明の実施形態における、単語辞書の一例を示す図である。
【図６】本発明の実施形態における、辞書検索部により取得された単語情報に基づき、一致候補を格納する記憶部の構成の一例を示す図である。
【図７】本発明の実施形態における、一致部の結果として、検索に使用するトークンを登録する記憶部の構成の一例を示す図である。
【図８】本発明の実施形態における、Ｎグラムを用いた検索において、不適合文書が含まれない状況を説明するための一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して、本発明の実施の形態の一例について説明する。
【００１３】
まず図１を参照して、本発明の実施形態における、情報処理装置１００の機能構成の一例について説明する。
【００１４】
情報処理装置１００は、例えば表示画面を備えたＰＣであるものとする。
【００１５】
入力文字列受付部１０１は、テキスト文書を検索するための検索条件となる入力文字列を受け付ける。例えば、情報処理装置１００に表示する不図示の検索用文字列の入力画面において、ユーザ操作による文字列の入力を受け付ける。
【００１６】
トークン取得部１０２は、前記入力文字列からＮグラムの手法を用いてトークンを取得する。ここでＮグラムについては特許文献１に記載があり、また周知の技術であるため、詳細の説明を割愛する。通常、Ｎグラムによるトークンの切り出し（取得）は、入力文字列の先頭から１文字ずつずらしながら実行される。すなわち、トークン切り出しのために着目する文字を、入力文字列内で例えば一文字ずつ（一定の字数の間隔ずつ）ずらしていく。
【００１７】
なお、本発明においては、後述する解析位置変更部１０６によって、一部の文字列をスキップする場合がある。すなわち、着目する文字を必ずしも１文字ずつずらすわけではない。スキップの処理の詳細は図４のフローチャートの説明で後述する。
【００１８】
また、本発明におけるＮグラムの手法は、非特許文献１にいて詳述されているように、複数ｎ−ｇｒａｍモデルの方式、その他Ｎグラムを拡張した手法のいずれであっても適用可能であるものとする。
【００１９】
辞書検索部１０３は、トークン取得部１０２により取得されたトークンを検索条件として、単語辞書記憶部１１１に記憶されている単語辞書を検索し、単語情報を取得する。単語情報の一例を図５に示す。取得した単語情報に含まれる表記（文字列）は、一致候補記憶部１１２に格納される。
【００２０】
一致部１０４は、一致候補記憶部１１２に記憶されている表記を、入力文字列受付部１０１で入力を受け付けた入力文字列と比較し、当該入力文字列の部分文字列と一致する表記が存在するか確認する。
【００２１】
一致する表記が存在する場合には、後述する文書検索部１０７で文書検索の条件として用いるため、トークン記憶部１１３に格納する。
【００２２】
トークン記憶部１１３に表記（一致部１０４で、入力文字列の一部と一致するとされた表記）が格納された場合、解析位置変更部１０６は解析位置（解析のための「着目位置」）を変更する。例えば当該表記の直後の位置（当該表記の直後の文字の位置）を解析位置とする。つまり、トークン取得部１０２が次にトークンを切り出すための着目する文字を１文字よりも多くずらす（入力文字列をスキップする）処理を行う。
【００２３】
文書検索部１０７は、トークン記憶部１１３に格納された表記を検索条件として用いて、テキスト文書記憶部１１４に記憶されているテキスト文書を検索する。ここでは、検索処理は、テキスト文書から予め生成された索引に対して検索を実行するものとするが、例えばテキスト文書自体の文字列を対象に実行するようにしてもよい。テキスト文書の検索および索引を生成することに関する技術は、周知の技術であるため詳細は割愛する。以上が図１の説明である。
【００２４】
図２を参照して、本発明の実施形態における、情報処理装置１００のハードウェア構成について説明する。
【００２５】
図２に示すように、情報処理装置１００は、システムバス２０４を介してＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０３、入力コントローラ２０５、ビデオコントローラ２０６、メモリコントローラ２０７、通信Ｉ／Ｆコントローラ２０８等が接続された構成をとる。
【００２６】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２７】
また、ＲＯＭ２０３あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や、各サーバあるいは各ＰＣが実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。また、本発明を実施するために必要な情報が記憶されている。なお外部メモリはデータベースであってもよい。
【００２８】
ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＯＭ２０３あるいは外部メモリ２１１からＲＡＭ２０２にロードし、ロードしたプログラムを実行することで各種動作を実現する。
【００２９】
また、入力コントローラ２０５は、キーボード（ＫＢ）２０９や不図示のマウス等のポインティングデバイス等の入力装置からの入力を制御する。
【００３０】
ビデオコントローラ２０６は、ディスプレイ２１０等の表示装置への表示を制御する。表示装置は例えば液晶ディスプレイ等の装置である。
【００３１】
メモリコントローラ２０７は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶する外部記憶装置（ハードディスク（ＨＤ））や、フレキシブルディスク（ＦＤ）、あるいは、ＰＣＭＣＩＡ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ａｓｓｏｃｉａｔｉｏｎ）カードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等の外部メモリ２１１へのアクセスを制御する。
【００３２】
通信Ｉ／Ｆコントローラ２０８は、ネットワークを介して外部機器と接続・通信し、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を用いた通信等が可能である。
【００３３】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０２内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ２１０上に表示することが可能である。また、ＣＰＵ２０１は、ディスプレイ２１０上のマウスカーソル（図示しない）等によるユーザ指示を可能とする。
【００３４】
本発明を実現するための後述する各種プログラムは、外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０２にロードされることによりＣＰＵ２０１によって実行されるものである。以上が図２の説明である。
【００３５】
図３を参照して、Ｎグラムを用いた検索において、その結果に不適合文書が含まれる状況の一例について説明する。
【００３６】
図３においては、後述する本発明の特徴と比較するため、先行技術にも含まれるＮグラムを、ｂｉグラム（バイグラム＝２グラム）を例として説明する。以降、例としてｂｉグラムを用いる。
【００３７】
入力文字列３０１は、入力文字列受付部１０１で受け付けた文字列の各文字に、先頭から順に番号を付与したものである。例えば、先頭を１、最後を１３とする。またトークンに分割した図を３０２に示す。ここでは例としてｂｉグラムを用いているため、２文字ずつ区切られる。例えば、先頭は「日本」でその番号を、１から２（１−２）と表すこととする。
【００３８】
３０２に含まれるトークンで、検索対象となるテキスト文書３０３（ａ，ｂ）を検索する。テキスト文書３０３ａには、３０２のトークンと同じトークン「日本」、「東京」が含まれるため、検索結果に含まれる。一方、テキスト文書３０３ｂにも、「本の」、「京都」が含まれるため、検索結果に含まれる。しかし入力文字列３０１が意図した検索条件としては、明らかに不適合な文書である。以上が図３の説明である。
【００３９】
図４を参照して、本発明の実施形態における、テキスト文書を検索する処理について説明する。図４の各ステップに示す処理は、情報処理装置１００のＣＰＵ２０１が、自機の備える各機能部の機能を用いて実行する。必要に応じて図５〜図８を参照して詳細に説明する。
【００４０】
ステップＳ４０１においては、入力文字列受付部１０１が、後述する文書検索部１０７でテキスト文書を検索するための条件として、入力文字列を受け付ける。ここで受け付けた入力文字列は、例えば図８の３０１に示す文字列（「日本の首都は東京都ですか？」）であるものとする。
【００４１】
図８は、本発明の実施形態におけるＮグラムを用いた検索において、不適合文書が含まれない状況を説明するための一例を示す図である。図８では、例として、「日本の首都は東京都ですか？」（３０１）を受け付ける。図３と同じ部分文字列があり、図において同じ番号を付与して説明する。
【００４２】
ステップＳ４０２において、解析位置変更部１０６が、入力文字列３０１の先頭文字「日」（図８の３０１の１）を着目位置として決定する。
【００４３】
ステップＳ４０３からステップＳ４１０までは、入力文字列３０１の着目位置が、前項の先頭文字（図８の３０１の１）から、入力文字列３０１の最後尾の文字になるまで繰り返し処理を制御する。
【００４４】
本例では、ｂｉグラムを用いて説明しており、トークンを２文字ずつ切り出すため、最後の２文字は「か？」（図８の３０１の１２−１３文字）となるため、最後の着目位置は１２である。一般的にＮグラムの場合には、対応する「Ｎ」により最後尾の文字の番号が変わる。
【００４５】
ステップＳ４０４においては、トークン取得部１０２が、入力文字列の着目位置からｂｉグラムの手法を用い、２文字分をトークンとして切り出す。具体的には、本繰り返し処理の最初の実行では、「日本」（１−２）をトークンとして取得する。
【００４６】
ステップＳ４０５においては、辞書検索部１０３が、ステップＳ４０４で取得したトークンに基づき、単語辞書記憶部１１１を検索して単語情報を取得する。例えば、トークンとしては前述の「日本」を用いる。
【００４７】
ここで、図５を用いて、単語辞書記憶部１１１の説明をする。図５は、本発明の実施形態における単語辞書の一例を示す図である。
【００４８】
図５において、単語辞書５０１（５０１ａ〜５０１ｄ）は、単語情報の表記５０２（５０２ａ〜５０２ｃ）から構成される。辞書検索部１０３では、検索条件となるトークン（本例では２文字）で表記５０２を検索対象とする。
【００４９】
単語辞書５０１ａでは、表記５０２ａのみを有する構造であり、当該格納されている文字列も２文字なので、検索条件となるトークンに対して完全一致で検索される。例えば「日本」に対しては、１つめの項目がヒットする。すなわち、検索条件となるトークンが辞書に存在するか否かの存在確認のために使用するのであれば、単語辞書５０１ａの書式でよい。
【００５０】
単語辞書５０１ｂも、表記５０２ａのみを有する構造であるが、当該格納されている文字列は２文字より長いものも存在するので、検索条件となるトークンに対して前方一致で検索される。例えば「日本」に対しては、１つめの項目のみが検索される（検索にヒットする）が、「東京」に対しては、「東京都」が検索される。
【００５１】
単語辞書５０１ｃも、表記５０２ａのみを有する構造であるが、当該格納されている文字列は２文字より長いものも存在するので、検索条件となるトークンに対して前方一致で検索される。また、検索結果として複数の単語情報の表記５０２が存在してもよい。例えば「日本」に対しては、１つめの項目のみが検索されるが、「東京」に対しては、「東京」と「東京都」の２つが検索される。
【００５２】
単語辞書５０１ｃは、表記として２つの要素を格納する。まず、代表となる表記５０２ｂがあり、当該格納されている文字列は２文字より長いものも存在するので、検索条件となるトークンに対して前方一致で検索される。さらに代表となる表記５０２ｂに対して、関連する表記５０２ｃを１つ、または複数対応させることが可能である。従って、検索結果として直接ヒットするのは、代表となる表記５０２ｂであるが、例えば「東京」に対しては、関連する表記５０２ｃも合わせて、「東京」、「東京都」、「ＴＯＫＹＯ」が検索結果の表記として得られる。取得した単語情報の表記（１つまたは複数）は、一致候補記憶部１１２に格納される。以上が図５の説明である。
【００５３】
図６を参照して、本発明の実施形態における、辞書検索部により取得された単語情報に基づき、一致候補を格納する記憶部の構成の一例について説明する。
【００５４】
６０１には、トークン取得部１０２で取得されたトークン（図６の例では「東京」）が格納される。また６０２には、取得したトークンが、オリジナルの入力文字列３０１のいずれの位置にあるかを指し示すものである。例えば図８の入力文字列３０１では、先頭を１文字目と数えて「東京」は７文字目、８文字目にあるため、６０２には「７−８」と格納する。
【００５５】
６０１は、入力文字列をトークンに分割した図（図８の３０２）の「東京」の部分と同一視してもよい。６０２のトークンの位置も３０２の「東京」部分にリンクされていてもよい。この部分は、単なる設計事項であり本質的な差ではない。
【００５６】
６０３には、単語辞書記憶部１１１から取得した表記を格納する。「東京」に対しては、３つの表記「東京」（６０３ａ）、「東京都」（６０３ｂ）、「ＴＯＫＹＯ」（６０３ｃ）が取得され、それぞれ格納される。６０４は、６０３の各表記が、オリジナルの入力文字列３０１と一致した場合に、オリジナルの入力文字列において当該一致した表記が存在する位置を示す情報を記憶する。当該６０４の記憶処理については後述する。以上が図６の説明である。
【００５７】
ここで、説明をステップＳ４０５に戻す。入力文字列３０１から切り出したトークン「日本」で、単語辞書５０１を検索すると、「日本」を表記とする単語情報が取得される。
【００５８】
ステップＳ４０６においては、ステップＳ４０５で単語情報を取得されたか判定する。ステップＳ４０５で単語情報が取得された場合（ステップＳ４０６でＹＥＳの場合）には、処理をステップＳ４０７へ進める。ステップＳ４０５で単語情報が取得されなかった場合（ステップＳ４０６でＮＯの場合）には、処理をステップＳ４０８に進める。現在の例では、単語情報（表記）「日本」が取得されているので、ステップＳ４０７に処理を進める。
【００５９】
ステップＳ４０７においては、一致部１０４が、入力文字列３０１（の一部）と、ステップＳ４０５において取得した表記に対する一致処理を行う。トークン「日本」は、入力文字列３０１における１文字目から２文字目であり、また、単語情報に含まれる表記も「日本」であるため、一致する。このことを示すため、一致候補記憶部１１２の６０４には、「１−２」（１文字目と２文字目の２文字文が一致した）と書き込む。
【００６０】
また前述したトークン「東京」の例では、単語辞書が５０１ａであれば、入力文字列３０１の該当位置（７文字目、８文字目）が一致する。従って、６０４ａには「７−８」と書き込む。
【００６１】
一方、単語辞書が５０１ｂ〜５０１ｄのように、トークン「東京」に対応する表記に「東京都」なども含まれる場合には、入力文字列３０１内の更に長い文字列（７〜９文字目）と一致するため、一致する部分としてトークン取得部１０２で取得したトークン（この例では「東京」）ではなく、「東京都」を最長一致として３文字分一致する、とする。この場合は、６０４ｂに「７−９」と書き込む。
【００６２】
また、入力文字列３０１に「東京都」という文字列がなく、「東京」しかマッチしなかった場合でも「７−８」と書き込むことにより、完全一致ではないが２文字文一致したことを示すことができる。
【００６３】
なお、単語辞書５０１ｄの「ＴＯＫＹＯ」は入力文字列３０１の部分とは一致しない。そのため、６０４ｃには「０−０」（あるいは１文字もマッチしていない旨）を書き込む。
【００６４】
ステップＳ４０８においては、トークン登録部１０５が、入力文字列３０１から切り出されたトークンと、一致候補記憶部１１２に格納された表記を、トークン記憶部１１３に格納する。
【００６５】
図７を参照して、本発明の実施形態における、一致部の結果として、検索に使用するトークンを登録する記憶部の構成の一例について説明する。
【００６６】
トークン記憶部１１３に登録されているトークンと、一般的なＮグラムにより取得されるトークンを、図３の３０２を用いて説明する。なお、図７の１１３に示すトークンは、入力文字列３０１を最後まで処理した後に含まれるトークンを表している。
【００６７】
図７のトークン記憶部１１３には、従来の、図３の３０２に登録されているトークンのうち、「本の」（２−３）のトークンが含まれていない。これは、現在処理中のトークン「日本」が単語辞書５０１ａに含まれていたため、後述するステップＳ４０９にてその２文字をスキップし、入力文字列３０１の着目位置を３文字目の「の」まで進めてから、ステップＳ４０３に戻って次のトークンの取得処理を始めるためである。同様に、「東京」が単語辞書５０１ａに含まれていたため、「京都」がトークンとしてトークン記憶部１１３に含まれない。
【００６８】
つまり、一度単語と認識された文字列の途中から新たに次のトークンを取得し、トークン記憶部１１３に記憶することはせず、単語の後ろの位置から、次のトークンの取得及びトークン記憶部１１３への記憶を行う。
【００６９】
さらに、単語辞書５０１ｂ〜５０１ｃを用いた場合には、「東京都」も含まれており、入力文字列３０１の「都」の次まで３文字文スキップするため、トークン「都で」もトークン記憶部１１３には含まれない。
【００７０】
後述するステップＳ４１１で、文書検索を行う際に、「本の」、「京都」、「都で」を検索条件となるトークンに含まないことで、不適合な文書を検索結果に含まない、という効果を得ることができる。
【００７１】
また、７０１で示した「東京都」、「ＴＯＫＹＯ」が、図３の３０２に含まれていないにもかかわらず、本発明によると「東京都」、「ＴＯＫＹＯ」がトークンに含まれることになる。「東京都」については、複数ｎ−ｇｒａｍモデル（非特許文献１）によれば３文字文のトークンも切り出すことで含まれることになるが、「ＴＯＫＹＯ」については、単語辞書を使用することで新たに取得されるものであり、入力文字列３０１からは取得できないものである。これにより、従来、検索結果に含まれなかった文書を取得することができ、検索ユーザの意図する文書を取得するという再現性を向上させる効果を得ることができる。
【００７２】
なお、前述の説明は、ステップＳ４０５の単語辞書検索において、単語情報が存在し、図７で説明した一致候補記憶部１１２に何らかの表記が格納されている状態を説明してきたものである。
【００７３】
しかし、例えば入力文字列３０１における着目位置が前から３文字目、すなわち「の首」をトークンとして切り出している場合には、単語辞書検索の結果は存在せず、従って、ステップＳ４０７を通らずに、ステップＳ４０８の処理となる。この場合には、Ｓ４０４で切り出したトークン「の首」をそのままトークン記憶部１１３に登録する。
【００７４】
ステップＳ４０９においては、解析位置変更部１０６が、入力文字列３０１の解析を始める次の着目位置を決定する。すなわち、今まで説明してきたステップＳ４０３以降の処理において、本発明におけるＮグラムの方法で次のトークンを取得するために着目位置を入力文字列３０１の中で後方にすすめる。
【００７５】
まず、先の例で単語辞書検索の結果、単語情報が取得できない例について説明する。入力文字列３０１の前から３文字目に着目し、トークンとして「の首」を取得した場合がこれにあたる。すなわち、「の首」（３−４の位置）に対応する一致候補記憶部１１２が生成されないため、ステップＳ４０７における一致の処理もされておらず、結果として通常のＮグラムの処理として、次のトークン切り出しのために着目位置を１つだけすすめてステップＳ４０３に戻す。つまり、４文字目の「都」の位置を次の着目位置として決定する。これにより、「都」からステップＳ４０３の処理が開始されることになる
【００７６】
一方、前述した「日本」の場合には、ステップＳ４０７で一致処理が行われ、入力文字列３０１の先頭２文字が一致したとされているので、着目位置を２文字分進めて「日本」の後の「の」の位置を次の着目位置として決定する。よって、３文字目の「の」からステップＳ４０３の処理が開始されることになる。
【００７７】
この様子を図８で説明する。図８では入力文字列３０１の先頭で「日本」をトークンとして切り出し、単語情報も取得できたため、一致処理の結果、入力文字列３０１と着目位置にて２文字分一致していることになる。そのため、次の処理を３文字目から開始する（８１１で２文字スキップする）。そのため「本の」は、３０２の「２−３」の位置（８２１）で示されるように後で検索に使用されるためのトークンからは外される。
【００７８】
同様の例を、着目位置が７文字目の際の「東京」でも説明する。単語辞書として図５の５０１ａを使用した場合には、２文字分スキップすることになるため、解析位置変更部１０６において、次の解析位置は９文字目の「都」に進める（８１２）。そこで「８−９」の位置の「京都」は３０２のトークンからは外される（８２２）。さらに、単語辞書として図５の５０１ｂ〜ｄを使用した場合には、「東京都」が一致処理によって、入力文字列３０１の着目位置から３文字分一致すると判断されるため、３文字分スキップし（８１３）、着目位置は１０文字目の「で」まで移動する。これにより、「都で」（９−１０）も３０２のトークンからは外されることになる。
【００７９】
これらの結果が、図７で説明したトークン記憶部１１３の検索条件となるトークンの格納状況である。同じものを図８にも記載した（１１３）。図７、図８のトークン記憶部１１３は、入力文字列３０１を最後まで処理した後に含まれるトークンを表している。
【００８０】
ステップＳ４１１においては、文書検索部１０７が、トークン記憶部１１３に格納されているトークンを検索条件としてテキスト文書記憶部１１４に格納されている文書群から条件にヒットする文書を結果として返す。
【００８１】
図３では、文書３０３ａと３０３ｂが検索結果に含まれていたが、図８では、３０３ｂは結果に含まれない。これは文書３０３ａと３０３ｂが、３０１を条件とした検索において、不適合文書だからである。
【００８２】
逆に関連語（ＴＯＫＹＯ）によって、３０３ｃが検索された。「ＴＯＫＹＯ」の例は、複数ｎ−ｇｒａｍモデル（非特許文献１）などのモデルで可能となるものである。
【００８３】
これにより、例えば「本の」、「京都」を含み、「日本」、「東京」を含まないような不適合な文書を検索結果に含めない、という効果を得ることができる。
【００８４】
つまり、文書検索にＮグラムの手法を用いるに際して、検索結果における不適合文書の出現を削減するための仕組みを提供することができる。
【００８５】
すなわち、検索の精度を向上させることができる。
【００８６】
また、「ＴＯＫＹＯ」の例にように検索ユーザの意図する文書を取得するという再現性を向上させる効果を得ることができる。
【００８７】
また、そもそもノイズとなる「本の」、「京都」などのトークンを用いた検索処理を行わない（スキップすることができる）ため、検索速度を向上させることができる。
【００８８】
以上説明したように、本発明によれば、Ｎグラムの手法を用いた検索に際して、効率よく文書の検索を行うことができる仕組みを提供することができる。
【００８９】
なお、本発明における単語辞書に登録される表記の文字列としての長さには制限はない。例えば、ｂｉグラムの手法によるときは、表記の長さが２よりも長ければ、文書検索時のトークンとしては使用できないが、入力文字列３０１の一部をスキップし、不適合文書を検索結果とするようなノイズとなるトークンを取得しないようにすることが可能である、という効果を得ることができる。
【００９０】
さらに、本発明における単語辞書は、入力文字列３０１から検索条件となるトークンを取得するために用いるものである。すなわち、検索対象となる文書群から索引を生成するために用いるものではない。従って、索引を再度生成し直すことなく、いつでも自由に入れ替えることが可能である。これは、例えば組織内で検索システムを管理することを考えると、運用管理のコストを削減するという効果を得ることができる。
【００９１】
上述した実施形態の説明においてはｂｉグラムを用いて説明をしたが、本発明は、一般的なＮグラム、あるいは前述のとおり複数Ｎグラムモデル、その他、拡張された方法に適用可能であり、ｂｉグラムに限定されるものではないことは言うまでもない。
【００９２】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【００９３】
尚、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【００９４】
例えば、文字列３０１の入力を受け付けるＰＣと、当該入力を受け付けた文字列を用いて検索を行うサーバ装置を含むシステムが想定できる。この場合、例えば図１の１０１〜１１４の構成をサーバ装置が備えるものとし、サーバ装置がＰＣから受信した文字列を入力文字列受付部１０１が受け付けて、図４の処理を実行する。
【００９５】
また、入力文字列受付部１０１は、例えば当該サーバやＰＣ上で動作する他のアプリケーションプログラムなどから入力文字列を受け付ける機能部であってもよい。
【００９６】
また、例えば図１の１１１〜１１４に示す各記憶部を、情報処理装置１００と通信可能な別のサーバ装置が備え、情報処理装置１００が当該別のサーバ装置とネットワークを介して通信し、ステップＳ４０３〜Ｓ４１１の処理に必要な情報を都度取得し、１１１〜１１４に都度アクセスして情報を更新したり書き込んだりする構成をとってもよい。
【００９７】
また、テキスト文書記憶部１１４や文書検索部１０７を、不図示の文書管理サーバが備えるものとし、情報処理装置１００（例えばＰＣ）が図４のステップＳ４０３〜Ｓ４１０までの処理で特定したトークン（図７の１１３に例示）を、ネットワークを介して文書管理サーバに送信し、当該トークンを用いた文書検索を指示することで、文書管理サーバがステップＳ４１１の文書検索処理を行うようにしてもよい。
【００９８】
なお、入力文字列受付部１０１は、また、当該コンピュータで動作する他のアプリケーションプログラムなどから受け付ける機能部であってもよい。また、本発明における情報処理装置がネットワーク上におけるサーバである場合には、他の情報処理装置から当該ネットワークを介して通信情報を受け付ける機能部であってもよい。
【００９９】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【０１００】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１０１】
この場合、記録媒体から読み出されたコンピュータプログラム自体が本発明の新規な機能を実現することになり、そのコンピュータプログラムを記憶した記録媒体は本発明を構成することになる。
【０１０２】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１０３】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１０４】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１０５】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１０６】
また、コンピュータが読み出したコンピュータプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのコンピュータプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０７】
さらに、記録媒体から読み出されたコンピュータプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのコンピュータプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０８】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【０１０９】
前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。
即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１１０】
１００  情報処理装置
１０１  入力文字列受付部
１０２  トークン取得部
１０３  辞書検索部
１０４  一致部
１０５  トークン登録部
１０６  解析位置変更部
１０７  文書検索部
１１１  単語辞書記憶部
１１２  一致候補記憶部
１１３  トークン記憶部
１１４  テキスト文書記憶部
【図１】
2018073047.tif 000003
【図２】
2018073047.tif 000004
【図３】
2018073047.tif 000005
【図４】
2018073047.tif 000006
【図５】
2018073047.tif 000007
【図６】
2018073047.tif 000008
【図７】
2018073047.tif 000009
【図８】
2018073047.tif 000010