(57)【要約】【課題】オペレータによる管理負担を増大させることなく、高精度な文字列の正規化を実現すること。【解決手段】文書の情報から索引となる文字列を抽出して検索対象の情報として格納する登録処理部２０１と、検索条件を生成する検索条件作成部２０５と、検索条件に基づいて検索対象の情報を検索する検索処理部２０６と、入力された文字列を単位文字列に分割すると共に、分割された単位文字列を代表表記に変換する文字列処理部２０３とを含み、登録処理部２０１は、文書の情報を文字列処理部２０３に入力し、代表表記に変換された単位文字列を索引となる文字列として抽出し、検索条件作成部２０５は、文字列を文字列処理部２０３に入力し、代表表記に変換された単位文字列に基づいて検索条件を生成し、文字列処理部２０３は連続して配置されている単位文字列を連結した連結文字列をも代表表記に変換することを特徴とする。【選択図】図２
2012194647.tif 000002
【特許請求の範囲】
【請求項１】
検索対象として格納するべき文書の情報を取得し、取得した文書の情報に含まれる文字列から索引となる文字列を抽出して検索対象の情報として格納する文書登録部と、
検索条件となる文字列を取得し、取得した文字列に基づいて検索条件を生成する検索条件生成部と、
前記生成された検索条件に基づいて前記格納された検索対象の情報を検索する検索処理部と、
入力された文字列を辞書情報に基づいて分割可能な単位文字列に分割する文字列分割部と、
同一とみなすことができて且つ表記の異なる複数の単位文字列と前記複数の単位文字列の代表として定められた代表表記とが関連付けられた異表記情報に基づき、前記分割された単位文字列を前記代表表記に変換する異表記処理部とを含み、
前記文書登録部は、前記格納するべき文書の情報に含まれる文字列を前記文字列分割部に入力し、前記異表記処理部から前記代表表記に変換された単位文字列を取得し、前記代表表記に変換された単位文字列を前記索引となる文字列として抽出し、
前記検索条件生成部は、前記取得した検索条件となる文字列を前記文字列分割部に入力し、前記異表記処理部から前記代表表記に変換された単位文字列を取得し、前記代表表記に変換された単位文字列に基づいて前記検索条件を生成し、
前記異表記処理部は、分割される前の文字列において連続して配置されている単位文字列を連結して連結文字列を生成し、前記異表記情報に基づいて前記連結文字列を前記代表表記に変換することを特徴とする検索装置。
【請求項２】
前記異表記処理部は、一の前記単位文字列について前記異表記情報に基づく前記代表表記への変換を行った後、分割される前の文字列において前記単位文字列に続いて配置されている次の単位文字列を連結して連結文字列を生成することを特徴とする請求項１に記載の検索装置。
【請求項３】
前記異表記処理部は、分割される前の文字列における文字列の区切りを判断し、前記文字列の区切りに到達するまで、連続して配置されている単位文字列を連結して連結文字列を生成することを特徴とする請求項１または２に記載の検索装置。
【請求項４】
前記異表記処理部は、分割される前の文字列に含まれるスペースに基づいて文字列の区切りを判断することを特徴とする請求項３に記載の検索装置。
【請求項５】
前記異表記処理部は、分割される前の文字列に含まれる文字列のうち、辞書情報に基づいて分割された結果単体では意味をなさない文字列として認識される文字列に基づいて文字列の区切りを判断することを特徴とする請求項３に記載の検索装置。
【請求項６】
前記異表記処理部は、分割される前の文字列に含まれる句読点に基づいて文字列の区切りを判断することを特徴とする請求項３に記載の検索装置。
【請求項７】
前記異表記処理部は、全ての前記分割された単位文字列夫々を先頭として、その先頭の単位文字列に続く単位文字列を連結して連結文字列を生成することを特徴とする請求項１乃至６いずれか１項に記載の検索装置。
【請求項８】
前記異表記処理部は、前記単位文字列または前記連結文字列に関連付けられた代表表記が前記異表記情報に存在しない場合、前記単位文字列または前記連結文字列そのものを代表表記として出力し、出力した前記代表表記において元となる前記単位文字列または前記連結文字列の一部が同一である複数の代表表記がある場合、前記異表記情報に基づいて変換された代表表記を優先的に採用することを特徴とする請求項７に記載の検索装置。
【請求項９】
前記異表記処理部は、前記異表記情報に基づいて変換された複数の代表表記であって元となる前記連結文字列の一部が同一である複数の代表表記がある場合、前記元となる連結文字列における前記単位文字列の連結数が最も多い代表表記を採用することを特徴とする請求項８に記載の検索装置。
【請求項１０】
前記異表記処理部は、前記異表記情報に基づいて変換された複数の代表表記であって元となる前記連結文字列を構成する分割文字列の一部が同一であり、且つ前記同一である分割文字列に夫々異なる分割文字列が連結された複数の代表表記がある場合、前記複数の代表表記の全てを採用することを特徴とする請求項８に記載の検索装置。
【請求項１１】
前記異表記処理部は、前記異表記情報に基づいて変換された複数の代表表記であって元となる前記連結文字列を構成する分割文字列の一部が同一であり、且つ前記同一である分割文字列に夫々異なる分割文字列が連結された複数の代表表記がある場合、前記複数の代表表記夫々の出現頻度を示す情報に基づいていずれか１つの代表表記を採用することを特徴とする請求項８に記載の検索装置。
【請求項１２】
前記異表記処理部は、複数の前記異表記情報に基づき、前記分割された単位文字列または前記連結文字列を前記代表表記に変換することを特徴とする請求項１乃至１１いずれか１項に記載の検索装置。
【請求項１３】
前記異表記処理部は、複数の前記異表記情報の一つに基づいて前記分割された単位文字列または前記連結文字列を前記代表表記に変換し、一の前記異表記情報において前記分割された単位文字列または前記連結文字列に関連付けられた代表表記が存在しない、他の異表記情報に基ついて前記分割された単位文字列または前記連結文字列を前記代表表記に変換することを特徴とする請求項１２に記載の検索装置。
【請求項１４】
検索対象として格納するべき文書の情報を取得し、取得した文書の情報に含まれる文字列から索引となる文字列を抽出して検索対象の情報として記憶媒体に格納し、
検索条件となる文字列を取得し、取得した文字列に基づいて検索条件を生成して記憶媒体に格納し、
前記生成された検索条件に基づいて前記格納された検索対象の情報を検索した結果を記憶媒体に格納する検索装置の制御方法であって、
前記格納するべき文書の情報に含まれる文字列を辞書情報に基づいて分割可能な単位文字列に分割して記憶媒体に格納し、
同一とみなすことができて且つ表記の異なる複数の単位文字列と前記複数の単位文字列の代表として定められた代表表記とが関連付けられた異表記情報に基づき、前記分割された単位文字列及び分割される前の文字列において連続して配置されている単位文字列を連結した連結文字列を前記代表表記に変換することにより、前記索引となる文字列として抽出して前記検索対象の情報として記憶媒体に格納し、
前記取得した検索条件となる文字列を辞書情報に基づいて分割可能な単位文字列に分割して記憶媒体に格納し、
前記異表記情報に基づいて前記分割された単位文字列及び分割される前の文字列において連続して配置されている単位文字列を連結した連結文字列を前記代表表記に変換し、前記代表表記に変換された単位文字列に基づいて前記検索条件を生成することを特徴とする検索装置の制御方法
【請求項１５】
検索対象として格納するべき文書の情報を取得し、取得した文書の情報に含まれる文字列から索引となる文字列を抽出して検索対象の情報として記憶媒体に格納し、
検索条件となる文字列を取得し、取得した文字列に基づいて検索条件を生成して記憶媒体に格納し、
前記生成された検索条件に基づいて前記格納された検索対象の情報を検索した結果を記憶媒体に格納する検索装置の制御プログラムであって、
前記格納するべき文書の情報に含まれる文字列を辞書情報に基づいて分割可能な単位文字列に分割して記憶媒体に格納するステップと、
同一とみなすことができて且つ表記の異なる複数の単位文字列と前記複数の単位文字列の代表として定められた代表表記とが関連付けられた異表記情報に基づき、前記分割された単位文字列及び分割される前の文字列において連続して配置されている単位文字列を連結した連結文字列を前記代表表記に変換することにより、前記索引となる文字列として抽出して前記検索対象の情報として記憶媒体に格納するステップと、
前記取得した検索条件となる文字列を辞書情報に基づいて分割可能な単位文字列に分割して記憶媒体に格納するステップと、
前記異表記情報に基づいて前記分割された単位文字列及び分割される前の文字列において連続して配置されている単位文字列を連結した連結文字列を前記代表表記に変換し、前記代表表記に変換された単位文字列に基づいて前記検索条件を生成するステップとを情報処理装置に実行させることを特徴とする検索装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索装置、検索装置の制御方法及び検索装置の制御プログラムに関し、特に、同一とみなすことができて且つ表記の異なる文字列の変換に関する。
【背景技術】
【０００２】
従来から、入力された文書やキーワードから検索文字列を設定し、その検索文字列を含む文書を検索する検索方法がある。日本語のように単語の区切りが明確でない言語で記述された文書を全文検索する場合、検索対象となる文書を索引に登録する。登録方法としては、任意の文字数により文字列単位に分割する方法や、形態素解析により単語単位に分割する方法などが用いられる。
【０００３】
一方、検索文字列として設定された文書やキーワードは索引登録と同様の方法で分割され検索語として抽出される。しかし、文書検索やキーワード検索では、同一単語に対する異表記による検索洩れの問題がある。例えば、「とり扱」を検索語として入力しても、異表記である「取扱」を含む文書は検索できない。また、「トレーニングセンター」を検索語として入力しても、「トレセン」のような略語が用いられている場合は検索できない。
【０００４】
このような課題に対して、入力された検索文字列と類語辞書の見出し語との異表記による不一致を回避するために、異表記辞書を用いて入力された文字列と見出し語をそれぞれ代表語に正規化することが行われている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、このような手法を全文検索に用いた場合、次のような問題がある。例えば、「取扱」「取りあつかい」「とり扱」を異表記群とし、「取扱」を代表表記とする異表記パターンを想定する。この場合、「とり扱」という文字列を形態素解析で分割する場合、「とり」「扱」という２単語に分割してしまうため、「とり扱」を対象とする異表記パターンと一致せず、代表表記である「取扱」に正規化することはできない。また、「取りあつかい」についても「取り」「あつかい」に分割されるため「取扱」に正規化できない。
【０００６】
このように、形態素解析により単語単位に分割する場合、異表記群に「とり扱」が含まれていても、形態素解析で「とり扱」と分割されない限り代表表記の「取扱」には正規化されない。この結果、検索対象の文書データ中の表記「とり扱」は「とり扱」として索引に登録され、「取扱」では検索できないことになる。
【０００７】
この問題を回避するために形態素解析辞書に「とり扱」を追加し、「とり扱」一語で解析するようにすることも可能であるが、常に形態素辞書と異表記パターンの表記との整合をとってメンテナンスする必要がありオペレータによる管理負担が大きい。
【０００８】
本発明は上記実情に鑑みてなされたものであり、オペレータによる管理負担を増大させることなく、高精度な文字列の正規化を実現することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明の一態様は、検索対象として格納するべき文書の情報を取得し、取得した文書の情報に含まれる文字列から索引となる文字列を抽出して検索対象の情報として格納する文書登録部と、検索条件となる文字列を取得し、取得した文字列に基づいて検索条件を生成する検索条件生成部と、前記生成された検索条件に基づいて前記格納された検索対象の情報を検索する検索処理部と、入力された文字列を辞書情報に基づいて分割可能な単位文字列に分割する文字列分割部と、同一とみなすことができて且つ表記の異なる複数の単位文字列と前記複数の単位文字列の代表として定められた代表表記とが関連付けられた異表記情報に基づき、前記分割された単位文字列を前記代表表記に変換する異表記処理部とを含み、前記文書登録部は、前記格納するべき文書の情報に含まれる文字列を前記文字列分割部に入力し、前記異表記処理部から前記代表表記に変換された単位文字列を取得し、前記代表表記に変換された単位文字列を前記索引となる文字列として抽出し、前記検索条件生成部は、前記取得した検索条件となる文字列を前記文字列分割部に入力し、前記異表記処理部から前記代表表記に変換された単位文字列を取得し、前記代表表記に変換された単位文字列に基づいて前記検索条件を生成し、前記異表記処理部は、分割される前の文字列において連続して配置されている単位文字列を連結して連結文字列を生成し、前記異表記情報に基づいて前記連結文字列を前記代表表記に変換することを特徴とする。
【００１０】
また、本発明の他の態様は、検索対象として格納するべき文書の情報を取得し、取得した文書の情報に含まれる文字列から索引となる文字列を抽出して検索対象の情報として記憶媒体に格納し、検索条件となる文字列を取得し、取得した文字列に基づいて検索条件を生成して記憶媒体に格納し、前記生成された検索条件に基づいて前記格納された検索対象の情報を検索した結果を記憶媒体に格納する検索装置の制御方法であって、前記格納するべき文書の情報に含まれる文字列を辞書情報に基づいて分割可能な単位文字列に分割して記憶媒体に格納し、同一とみなすことができて且つ表記の異なる複数の単位文字列と前記複数の単位文字列の代表として定められた代表表記とが関連付けられた異表記情報に基づき、前記分割された単位文字列及び分割される前の文字列において連続して配置されている単位文字列を連結した連結文字列を前記代表表記に変換することにより、前記索引となる文字列として抽出して前記検索対象の情報として記憶媒体に格納し、前記取得した検索条件となる文字列を辞書情報に基づいて分割可能な単位文字列に分割して記憶媒体に格納し、前記異表記情報に基づいて前記分割された単位文字列及び分割される前の文字列において連続して配置されている単位文字列を連結した連結文字列を前記代表表記に変換し、前記代表表記に変換された単位文字列に基づいて前記検索条件を生成することを特徴とする。
【００１１】
また、本発明の更に他の態様は、検索対象として格納するべき文書の情報を取得し、取得した文書の情報に含まれる文字列から索引となる文字列を抽出して検索対象の情報として記憶媒体に格納し、検索条件となる文字列を取得し、取得した文字列に基づいて検索条件を生成して記憶媒体に格納し、前記生成された検索条件に基づいて前記格納された検索対象の情報を検索した結果を記憶媒体に格納する検索装置の制御プログラムであって、前記格納するべき文書の情報に含まれる文字列を辞書情報に基づいて分割可能な単位文字列に分割して記憶媒体に格納するステップと、同一とみなすことができて且つ表記の異なる複数の単位文字列と前記複数の単位文字列の代表として定められた代表表記とが関連付けられた異表記情報に基づき、前記分割された単位文字列及び分割される前の文字列において連続して配置されている単位文字列を連結した連結文字列を前記代表表記に変換することにより、前記索引となる文字列として抽出して前記検索対象の情報として記憶媒体に格納するステップと、前記取得した検索条件となる文字列を辞書情報に基づいて分割可能な単位文字列に分割して記憶媒体に格納するステップと、前記異表記情報に基づいて前記分割された単位文字列及び分割される前の文字列において連続して配置されている単位文字列を連結した連結文字列を前記代表表記に変換し、前記代表表記に変換された単位文字列に基づいて前記検索条件を生成するステップとを情報処理装置に実行させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、オペレータによる管理負担を増大させることなく、高精度な文字列の正規化を実現することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係る検索装置のハードウェア構成を示すブロック図である。
【図２】本発明の実施形態に係る検索装置の機能構成を示すブロック図である。
【図３】本発明の実施形態に係る検索画面の例を示す図である。
【図４】本発明の実施形態に係る形態素分割の例を示す図である。
【図５】本発明の実施形態に係る異表記パターンデータベースの例を示す図である。
【図６】本発明の実施形態に係る文書登録の動作を示すフローチャートである。
【図７】本発明の実施形態に係る文書登録の際の文字列処理の動作を示すフローチャートである。
【図８】本発明の実施形態に係る検索処理の動作を示すフローチャートである。
【図９】本発明の実施形態に係る検索処理の際の文字列処理の動作を示すフローチャートである。
【図１０】本発明の実施形態に係る異表記処理の動作を示すフローチャートである。
【図１１】本発明の他の実施形態に係る表記パターンデータベースの例を示す図である。
【図１２】本発明の他の実施形態に係る異表記処理の動作を示すフローチャートである。
【図１３】本発明の他の実施形態に係る異表記処理の動作を示すフローチャートである。
【図１４】本発明の他の実施形態にシステムの形態を示す図である。
【発明を実施するための形態】
【００１４】
実施の形態１．
以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、検索システムの例として、データベース等に格納される文書データや文書を検索するために入力された検索文字列を形態素解析等で分割し、最初の分割文字列から順に分割文字列をつなげた文字列により異表記パターンを検索し、最長の文字列の表記に対応する表記を代表表記とする検索装置について説明する。
【００１５】
図１は、本実施形態に係る検索装置のハードウェア構成を示す図である。図１に示すように、本実施形態に係る検索装置１００は、一般的なＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）やサーバ等と同様の構成を有する。即ち、本実施形態に係る検索装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、メモリユニット１０２、出力ユニット１０３、入力ユニット１０４、通信ユニット１０５、記憶装置１０６及びドライブ装置１０７を含み、夫々がシステムバスＢに接続されている。
【００１６】
ＣＰＵ１０１は、メモリユニット１０２に格納されたプログラムに従って演算を行うことにより、検索装置１００全体の動作を制御する。メモリユニット１０２は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）及びＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）等にて構成され、ＣＰＵ１０１にて実行されるプログラム、ＣＰＵ１０１での処理に必要なデータ、ＣＰＵ１０１での処理にて得られたデータ等を格納する。また、メモリユニット１０２の一部の領域が、ＣＰＵ１０１での処理に利用されるワークエリアとして割り付けられている。
【００１７】
出力ユニット１０３は、利用者の操作や検索装置１００の動作状態に応じて各種情報を出力するために用いられる。出力ユニット１０３は、例えばＣＰＵ１０１の制御に基づき、各種情報を表示する表示部として機能する。入力ユニット１０４は、マウス、キーボード等を有し、検索装置１００が処理を行なうための必要な各種情報を利用者が入力するための操作部として機能する。通信ユニット１０５は、検索装置１００が例えばインターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワークを介する通信の制御をするための装置である。記憶装置１０６は、例えば、ハードディスクユニットにて構成され、各種処理を実行するプログラム等のデータを格納する。
【００１８】
検索装置１００によって行われる処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）や磁気ディスク等の記憶媒体１０８によって検索装置１００に提供される。即ち、プログラムが保存された記憶媒体１０８がドライブ装置１０７にセットされると、ドライブ装置１０７が記憶媒体１０８からプログラムを読み出し、その読み出されたプログラムがシステムバスＢを介して記憶装置１０６にインストールされる。
【００１９】
そして、ユーザの操作によってプログラムが起動されると、記憶装置１０６にインストールされたプログラムがメモリユニット１０２にロードされ、ＣＰＵ１０１がそのプログラムに従って演算を行うことにより、そのプログラムに従った機能が検索装置１００の機能として実現される。
【００２０】
なお、プログラムを格納する媒体としてＣＤ−ＲＯＭに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。本発明に係る処理を実現するプログラムは、通信ユニット１０５によってネットワークを介してダウンロードし、記憶装置１０６にインストールするようにしても良い。また、検索装置１００が外部との接続を行うＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等のインタフェースを有する場合には、ＵＳＢ接続によって外部記憶媒体からプログラムを読み込んでもよい。
【００２１】
図２は、本実施形態に係る検索装置１００の機能構成を説明する図である。本実施形態の検索装置１００は、上述したように、ＣＰＵ１０１がプログラムに従って演算を行うことにより、以下の各部の機能を実現する。図２に示すように、本実施形態に係る検索装置１００は、登録処理部２０１、入力部２０２、文字列処理部２０３、出力処理部２０４、検索条件作成部２０５、検索処理部２０６、文書格納部２０７、索引格納部２０８、異表記パターン格納部２０９、形態素解析辞書格納部２１０を有する。
【００２２】
まず、本実施形態の検索装置１００における索引登録処理の概略を説明する。登録処理部２０１は文書格納部２０７から１文書ずつ文書データを読み出し、その読み出された文書データを文字列処理部２０３に送る。文字列処理部２０３は、形態素解析辞書格納部２１０に格納されている辞書の情報を参照して形態素解析処理を行う。そして、文字列処理部２０３は、形態素解析処理の結果に基づき、異表記パターン格納部２０９に格納された異表記パターンデータベースに基づいて異表記処理を行い、その処理結果を索引語として取得する。
【００２３】
文字列処理部２０３は、上述したような処理によって索引語（文字列）を抽出し、夫々の索引語が夫々の文書中において出現する位置を示す出現位置情報と共に登録処理部２０１に返す。登録処理部２０１は、文字列処理部２０３から取得した情報を索引格納部２０８に登録する。即ち、登録処理部２０１が、文書登録部として機能する。
【００２４】
次に、本実施形態の検索装置１００における検索処理の概略を説明する。検索条件作成部２０５は入力部２０２から入力された検索文字列を文字列処理部２０３に送る。文字列処理部２０３は、形態素解析辞書格納部２１０に格納される辞書の情報を参照して形態素解析処理を行う。そして、文字列処理部２０３は、形態素解析処理の結果に基づき、異表記パターン格納部２０９に格納された異表記パターンデータベースに基づいて異表記処理を行い、その処理結果を検索語として取得する。
【００２５】
文字列処理部２０３は、上述したような処理によって検索語を生成し、検索処理部２０６に渡す。そして、検索処理部２０６は、文字列処理部２０３から取得した検索語を検索キーとして、索引格納部２０８に格納された索引語を検索し、検索語に適合する索引が含まれる文書を抽出する。出力処理部２０４は検索処理部２０６で抽出された結果を表示する。
【００２６】
なお、検索処理部２０６による検索対象となる索引格納部２０８及び検索結果の抽出対象となる文書格納部２０７は、本実施形態においては検索装置１００内部の構成として、例えば、記憶装置１０６に索引情報及び文書情報が格納されることによって設けられる。この他、文書格納部２０７及び索引格納部２０８は、検索装置１００とは別の情報処理装置によって実現されるデータベースとして設けられても良い。このデータベースは、例えばネットワーク等を介して検索装置１００と接続されることにより、図２に示すように検索装置１００内部の構成として設けられる場合と同様に処理することが可能である。
【００２７】
本実施形態の入力部２０２は、入力ユニット１０４に対するユーザの操作に応じて、検索対象となる文書データおよび入力された検索文字列を受け付ける。本実施形態の文字列処理部２０３は、入力部２０２から入力された文字列を処理し、処理結果を記憶装置１０６へ記憶させる。以下に図３、図４を参照して検索処理における文字列処理部２０３の処理について説明する。
【００２８】
図３は、検索文字列の入力画面の一例を示す図である。本実施形態の検索装置１００においては、検索を実行するためにそのためのアプリケーションが起動されると、入力部２０２が、図３に示すような検索文字列の入力欄を有する入力画面を出力ユニット１０３に表示させる。ユーザによる入力ユニット１０４への操作により、図３に示す入力欄に検索文字列が入力され、検索ボタンが選択されると、入力部２０２は、入力欄に入力された検索文字列を取得し、検索条件作成部２０５に入力する。
【００２９】
検索条件作成部２０５は、入力部２０２から入力された検索文字列を文字列処理部２０３に渡す。これにより、文字列処理部２０３は、形態素解析辞書格納部２１０に格納されている辞書の情報を参照して形態素分割する。即ち、文字列処理部２０３が、形態素解析事務所格納部２１０に格納されている辞書情報を参照することにより、文字列分割部として機能する。なお、以下の本実施形態の説明では、検索文字列の例を「とり扱説明書」として説明する。また、本実施形態においては、文字列処理部２０３が検索文字列の「とり扱説明書」を分割した結果、「とり」、「扱」、「説明書」と分割される場合を例とする。
【００３０】
図４は、文字列処理部２０３による形態素解析結果の一例を示す図である。本実施形態においては、文字列処理部２０３により処理された結果は記憶装置１０６またはメモリユニット１０２等の記憶媒体に記憶される。処理結果は、分割された文字列である分割文字列が、検索文字列に登場する順番と対応付けられて記憶されている。図４に示すように、本実施形態に係る形態素解析による処理結果には、一番目の分割文字列を示す値と「とり」、二番目の分割文字列を示す値と「扱」、三番目の分割文字列を示す値と「説明書」、がそれぞれ対応付けられて記憶されている。
【００３１】
図２に戻って、次に本実施形態の文字列処理部２０３について説明する。本実施形態の文字列処理部２０３は、入力された文字列を形態素解析により分割すると共に、分割された分割文字列や、連続する分割文字列を連結した文字列（以降、連結文字列とする）を、異表記パターンデータベースを参照して代表表記に正規化して正規化文字列を生成する。
【００３２】
このため、本実施形態の文字列処理部２０３は、形態素解析された分割文字列を組み合わせた連結文字列を生成する。具体的には文字列処理部２０３は連続する分割文字列同士をつなげて文字列を生成する。以下に図５を参照して本実施形態の異表記パターンデータベースについて説明する。
【００３３】
図５は、本実施形態に係る異表記パターンデータベースの例を示す図である。本実施形態の異表記パターンデータベースは、正規化文字列を得るためのものであり、異表記パターン格納部２０９に格納されている。なお、異表記パターン格納部２０９は、記憶装置１０６によって実現される。図５に示すように、異表記パターンデータベースでは、検索キーとなる「表記」と、「表記」に対応する文字列であって正規化された文字列である「代表表記」とが格納されている。本実施形態では、「とり扱」を検索キーとして異表記パターンデータベースを検索した場合、検索結果として「取扱」という正規化文字列が得られる。
【００３４】
換言すると、図５に示す異表記パターンデータベースは、「取扱い」、「取り扱い」、「とり扱い」、「取りあつかい」のように、同一とみなすことができて且つ表記の異なる複数の単位文字列と、「取扱」のように代表として定められた代表表記とが関連付けられた異表記情報である。そして、文字列処理部２０３は、異表記パターン格納部２０９に格納された異表記パターンデータベースを参照することにより、異表記処理部として機能する。
【００３５】
図２に戻って、検索処理部２０６と出力処理部２０４について説明する。本実施形態の検索処理部２０６は、文字列処理部２０３により得られた正規化文字列により、検索対象である索引格納部２０８に格納される索引を検索する。出力処理部２０４は、検索処理部２０６による検索結果等を表示する。なお、本実施形態の出力処理部２０４は、検索結果以外にも、例えば検索キーとなった正規化文字列を表示しても良い。
【００３６】
図６は、本実施形態に係る検索装置１００における文書登録処理の動作を説明するフローチャートである。本実施形態の検索装置１００において、ユーザによる入力ユニット１０４への操作に応じて文書登録の実行指示がなされると、登録処理部２０１は、記憶装置１０４の文書格納部２０７に格納された文書データの中に、索引未作成の文書があるか否かを判断する（Ｓ６０１）。インデックス未作成の文書がない場合は全ての検索対象の文書データの索引が作成されているので、登録処理部２０１は文書登録処理を終了する。
【００３７】
一方、索引未作成の文書がある場合（Ｓ６０１／ＹＥＳ）、登録処理部２０１は、索引未作成の文書を読み込み（Ｓ６０２）、文書格納部２０７に格納された各文書をユニークに示す文書ＩＤを取得し（Ｓ６０３）、文書データを文字列処理部２０３に入力して文字列処理を依頼する（Ｓ６０４）。文字列処理部２０３においては、上述した形態素解析及び正規化処理を行い、索引語を生成する。
【００３８】
登録処理部２０１は、文字列処理部２０３による文字列処理が完了するのを待ち（Ｓ６０５／ＮＯ）、文字列処理が完了すると（Ｓ６０５／ＹＥＳ）、その処理結果である索引語を取得して、文書ＩＤと共に索引格納部２０８に登録し（Ｓ６０６）、Ｓ６０１の処理に戻る。
【００３９】
図７は、図６のＳ６０４に応じて文字列処理部２０３が実行する文字列処理の動作を示すフローチャートである。文書登録処理において文書データが文字列処理部２０３に送られると（Ｓ６０４）、文字列処理部２０３は、まず出現位置を初期化し（Ｓ７０１）、開始位置をセットする（Ｓ７０２）。
【００４０】
開始位置をセットした結果、文書末尾に達していれば（Ｓ７０３／ＹＥＳ）、文字列処理部２０３は、登録処理部２０１に終了を通知して（Ｓ７０４）、処理を終了する。文書末尾に達していない場合（Ｓ７０３／ＮＯ）、文字列処理部２０３は、形態素解析辞書格納部２１０に格納されている辞書の情報を参照して文書を形態素解析して（Ｓ７０５）、分割文字列を生成する（Ｓ７０６）。分割文字列を生成すると、文字列処理部２０３は、その分割文字列について異表記パターン格納部２０９に格納された異表記データベースを参照して異表記を代表表記に正規化する異表記正規化処理を実行する（Ｓ７０７）。
【００４１】
異表記正規化処理により、正規化された代表表記及びその表記の出現位置を取得すると、文字列処理部２０３は、取得した代表表記及びその表記の出現位置を索引語表記及びその出現位置として登録処理部２０１に出力する（Ｓ７０８）。その後、文字列処理部２０３は、出現位置を１つ進めて（Ｓ７０９）、Ｓ７０２に戻って処理を繰り返す。ここで、Ｓ７０９において、文字列処理部２０３は、Ｓ７０６において分割した分割文字列を単位とし、現在の出現位置に対応する分割文字列の次の分割文字列へ出現位置を進める。
【００４２】
図８は、本実施形態に係る検索装置１００における検索処理の動作を説明するフローチャートである。本実施形態の検索装置１００において、ユーザによる入力ユニット１０４への操作に応じて検索文字列及び検索の実行指示が入力されると、入力部２０２は、入力された検索文字列を検索条件作成部２０５に入力する（Ｓ８０１）。検索条件作成部２０５は、入力された検索文字列を文字列処理部２０３に送り、文字列処理を依頼する（Ｓ８０２）。文字列処理部２０３においては、上述した形態素解析及び正規化処理を行い、検索語を生成する。
【００４３】
検索条件作成部２０５は、文字列処理部２０３による文字列処理が完了するのを待ち（Ｓ８０３／ＮＯ）、文字列処理が完了すると（Ｓ８０３／ＹＥＳ）、その処理結果である検索語を取得して記憶する（Ｓ８０４）。検索語を取得した検索条件作成部２０５は、取得した検索語に基づいて検索条件を生成し、検索処理部２０６に入力する。これにより、検索処理部２０６が、検索条件作成部２０５から取得した検索条件に基づいて索引格納部２０８を検索し（Ｓ８０５）、検索結果を出力する（Ｓ８０６）。
【００４４】
図９は、図８のＳ８０２に応じて文字列処理部２０３が実行する文字列処理の動作を締めすフローチャートである。検索処理において検索文字列が文字列処理部２０３に入力されると（Ｓ８０２）、文字列処理部２０３は、開始位置をセットし（Ｓ９０１）、その結果最後の文字列に達していれば（Ｓ９０２／ＹＥＳ）、検索条件作成部２０５に終了を通知して（Ｓ９０３）、処理を終了する。
【００４５】
検索文字列として入力される文字列は、複数の単語や言葉がスペースで区切られた文字列である場合が多い。これに対して、Ｓ９０２において判断される最後の文字列とは、上記スペースで区切られた複数の文字列のうちの最後の文字列を示す。
【００４６】
最後の文字列に達していない場合（Ｓ９０２／ＮＯ）、文字列処理部２０３は、形態素解析格納部２１０に格納されている辞書の情報を参照して検索語の形態素解析を行い（Ｓ９０４）、分割文字列を生成する（Ｓ９０５）。分割文字列を生成すると、文字列処理部２０３は、その分割文字列について異表記パターン格納部２０９に格納された異表記データベースを参照して異表記正規化処理を行う（Ｓ９０６）。
【００４７】
異表記正規化処理により正規化された代表表記及を取得すると、検索条件作成部２０５は、取得した代表表記を検索語として出力する（Ｓ９０７）。その後、文字列処理部２０３は、出現位置を１つ進めて（Ｓ９０８）Ｓ９０１に戻って処理を繰り返す。ここで、Ｓ９０８において、文字列処理部２０３は、上述したようにスペースによって区切られた文字列を単位とし、現在の出現位置に対応する文字列の次の文字列へ出現位置を進める。
【００４８】
次に、本実施形態の要旨に係る処理である、図７のＳ７０６とＳ７０７および図９のＳ９０５とＳ９０６における索引文字列、検索文字列を得る処理の詳細について、図１０を参照して説明する。図１０は、本実施形態に係る検索装置１００による索引文字列、検索文字列を得る処理の動作を説明するフローチャートである。
【００４９】
文字列処理部２０３は、文字列を形態素分割すると、分割された文字列の先頭の文字列を検索キーとしてセットする（Ｓ１００１）。なお、形態素分割した分割文字列は、記憶装置１０６等の記憶媒体に格納される。次に、文字列処理部２０３は、異表記パターンデータベース内にセットされた文字列と対応する表記が存在するか否かを判断する（Ｓ１００２）。
【００５０】
Ｓ１００２において、セットされた文字列に対応する表記が存在しない場合（Ｓ１００２／ＮＯ）、文字列処理部２０３は、セットされている文字列が連結を判断するべき最後の分割文字列か否かを判断する（Ｓ１００７）。ここで、Ｓ１００７における“最後の分割文字列”については後に詳述する。その判断の結果、最後の分割文字列であった場合（Ｓ１００７／ＹＥＳ）、文字列処理部２０３は、後述するＳ１００５へ進む。
【００５１】
Ｓ１００７において最後の分割文字列でない場合（Ｓ１００７／ＮＯ）、文字列処理部２０３は、現在セットされている文字列に続く次の分割文字列を連結して（Ｓ１００８）、Ｓ１００２へ戻る。具体的には形態素解析で分割された文字列を参照し、二番目の分割文字列を一番目の分割文字列の後につなげて文字列を生成する。即ち、文字列処理部２０３は、一の単位文字列について異表記処理を行った後、その単位文字列に続いて配置されている次の単位文字列を連結して連結文字列を生成した上で異表記処理を行う。
【００５２】
Ｓ１００２において、セットされた文字列と対応する表記が異表記パターンデータベースに存在する場合（Ｓ１００２／ＹＥＳ）、文字列処理部２０３は、異表記パターンデータベースから表記に対応する正規化文字列を抽出し、正規化文字列をメモリユニット１０２等に格納する（Ｓ１００３）。
【００５３】
次に、文字列処理部２０３は、検索キーとなった文字列に、連結を判断するべき最後の分割文字列が含まれるか否かを判断する（Ｓ１００４）。ここで、Ｓ１００４における“最後の分割文字列”は、Ｓ１００７と同様であり、後に詳述する。Ｓ１００４において、最後の分割文字列が含まれていなかった場合（Ｓ１００４／ＮＯ）、文字列処理部２０３は、上記Ｓ１００８に進む。
【００５４】
他方、Ｓ１００４において、最後の分割文字列が含まれると判断された場合（Ｓ１００４／ＹＥＳ）、文字列処理部２０３は、Ｓ１００３で抽出された正規化文字列を代表表記として確定する（Ｓ１００５）。このときメモリユニット１０２に格納された正規化文字列のうち、確定された正規化文字列以外の正規化文字列を削除しても良い。
【００５５】
次に、文字列処理部２０３は、最後の分割文字列を先頭として検索を実行したか否かを判断する（Ｓ１００６）。Ｓ１００６において、最後の分割文字列を先頭として検索を実行した場合（Ｓ１００６／ＹＥＳ）、文字列処理部２０３はそのまま処理を終了する。Ｓ１００６において、最後の分割文字列を先頭として検索を実行していない場合、文字列処理部２０３は、現在の分割文字列における二番目の分割文字列を次の分割文字列としてセットし（Ｓ１００９）、Ｓ１００２へ戻る。
【００５６】
Ｓ１０９の処理により、入力された文字列に含まれる分割文字列の全てについて、先頭としてセットされて連結文字列が生成されることとなり、漏れのない異表記処理を実現することができる。以下に、文字列処理部２０３に渡された文字列を「とり扱説明書」として図１０の処理について説明する。文字列処理部２０３は、まず「とり」を先頭の分割文字列としてセットする（Ｓ１００１）。続いて文字列処理部２０３は、異表記パターンデータベース内に「とり」という表記が存在するか否かを判断する（Ｓ１００２）。
【００５７】
図５に示すように、異表記パターンデータベースには「取り」の異表記として「とり」が存在するので（Ｓ１００２／ＹＥＳ）、文字列処理部２０３は、正規化表記である「取り」をメモリユニット１０２に格納する（Ｓ１００３）。そして、文字列処理部２０３は、現在セットされている「とり」が、最後の分割文字列か否かを判断する（Ｓ１００４）。
【００５８】
「とり」は最後の分割文字列ではないので（Ｓ１００４／ＮＯ）、文字列処理部２０３は、形態素解析結果を参照して、「とり」の後に二番目の分割文字列「扱」をつなげた連結文字列「とり扱」を生成し（Ｓ１００８）、Ｓ１００２へ戻る。そして、文字列処理部２０３は、異表記パターンデータベース内に「とり扱」という表記が存在するか否か判断する（Ｓ１００２）。
【００５９】
図５に示すように、異表記パターンデータベースには「取扱」の異表記として「とり扱」が存在するので（Ｓ１００２／ＹＥＳ）、文字列処理部２０３は、正規化表記である「取扱」をメモリユニット１０２に格納する（Ｓ１００３）。その後のＳ１００４の判断においては、「とり扱」は最後の分割文字列ではないので、文字列処理部２０３は、形態素解析結果を参照して次の分割文字列を先頭の分割文字列へ追加する（Ｓ１００８）。これにより、「扱」の後に三番目の分割文字列「説明書」をつなげた連結文字列「とり扱説明書」が生成される。そして文字列処理部２０３は、「とり扱説明書」をセットされた文字列としてＳ１００２以降の処理を行う。
【００６０】
このように、本実施形態に係る文字列処理部２０３は、分割文字列を追加して文字列を生成する際に、現在セットされている文字列のうち、最後尾の分割文字列の次に位置する分割文字列を現在セットされている文字列に連結した文字列を生成する。具体的には、例えば「とり扱」を異表記パターンデータベースの検索キーとした後には、検索文字列において「とり扱」の最後尾の分割文字列である「扱」の次に位置する分割文字列である「説明書」を「とり扱」に連結し、「とり扱説明書」とする。
【００６１】
文字列「とり扱説明書」がセットされた場合、異表記パターンデータベース内に対応する表記が存在しない（Ｓ１００２／ＮＯ）。よって、文字列処理部２０３は、「とり扱説明書」に最後の分割文字列が含まれるか否かを判断する（Ｓ１００７）。この場合、最後の分割文字列「説明書」が含まれるため（Ｓ１００７／ＹＥＳ）、文字列処理部２０３は、既にメモリユニット１０２に格納されている「取扱」を分割文字列「とり扱」の正規化文字列として確定させ（Ｓ１００５）、この正規化文字列をメモリユニット１０２に記憶させる。尚、上述したように、Ｓ１００５においては、メモリユニット１０２に格納されている正規化表記をクリアしても良く、この場合、「取り」、「取扱」といった表記がクリアされる。
【００６２】
そして、文字列処理部２０３は、最後の分割文字列すなわち、分割文字列「説明書」を先頭として異表記パターンデータベースの検索を行ったか否かを判断する（Ｓ１００６）。ここではまだ検索を行っていないため、文字列処理部２０３は、現在セットされている連結文字列「とり扱説明書」における二番目の文字列である「扱」を先頭の文字列としてセットし（Ｓ１００９）、Ｓ１００２からの処理を繰り返す。
【００６３】
次のＳ１００２からの処理においては、「扱」の異表記パターンは異表記パターンデータベースに格納されており（Ｓ１００２／ＹＥＳ）、代表表記である「扱い」が正規化文字列としてメモリユニットに格納され（Ｓ１００３）、最後の分割文字列ではないので（Ｓ１００４／ＮＯ）、「扱」に続く分割文字列「説明書」を連結して「扱説明書」という連結文字列に基づいてＳ１００２からの処理を繰り返す。
【００６４】
次のＳ１００２からの処理においては、「扱説明書」の異表記パターンは異表記パターンデータベースに格納されておらず（Ｓ１００２／ＮＯ）、「扱説明書」は最後の分割文字列「説明書」を含むため（Ｓ１００７／ＹＥＳ）、文字列処理部２０３は、メモリユニット１０２に格納されている「扱い」を分割文字列「扱」の代表表記として確定させる（Ｓ１００５）。そして、現在先頭にセットされている分割文字列「扱」は最後の分割文字列ではないため、（Ｓ１００６／ＮＯ）、文字列処理部２０３は、現在セットされている連結文字列「扱扱説明書」における二番目の文字列である「説明書」を先頭の文字列としてセットし（Ｓ１００９）、Ｓ１００２からの処理を繰り返す。
【００６５】
次のＳ１００２からの処理においては、「説明書」の異表記パターンは異表記パターンデータベースに格納されておらず（Ｓ１００２／ＮＯ）、分割文字列「説明書」は最後の分割文字列である（Ｓ１００７／ＹＥＳ）。この際、メモリユニット１０２には未だ正規化表記が格納されていないため、「説明書」がそのまま代表表記として確定されてメモリユニット１０２に格納される（Ｓ１００５）。そして、分割文字列「説明書」は最後の分割文字列であるため（Ｓ１００６／ＹＥＳ）、文字列処理部２０３は、処理を終了する。このような処理の結果、正規化表記である「取扱」、「扱」、「説明書」を含む正規化表記群がメモリユニット１０２に記憶される。
【００６６】
このように、判断対象の分割文字列や連結文字列が異表記パターンデータベースに存在しない場合は、判断対象の分割文字列や連結文字列そのものが代表表記として確定される。これにより、索引語や検索語の抽出漏れを防ぐことができる。
【００６７】
このように、正規化表記がメモリユニット１０２に格納されると、文字列処理部２０３は、まず異表記データベースに登録されていた代表表記のうち、分割文字列の連結数が最も多い文字列を優先的に採用する。この場合、「取扱」が優先的に採用される。これにより、正規化前の分割文字列のうち「とり」、「扱」は表記が確定するため、「扱い」は破棄される。残りの分割文字列「説明書」については、「説明書」が正規化文字列として確定しているため、文字列処理部２０３は、「説明書」をそのまま採用する。結果的に、「取扱」、「説明書」という正規化文字列が抽出される。
【００６８】
このように、異表記パターンデータベースから抽出された表記を優先的に採用することにより、検索語や索引語の抽出精度を向上すると共に、冗長的な索引語や検索語の生成を回避し、処理負荷を低減することができる。また、連結数の多い文字列を優先的に採用することにより、抽出精度を下げることなく、冗長的な索引語や検索語の生成を回避することができる。
【００６９】
なお、仮に、「取扱」と「扱説明書」とが共に異表記データベースに登録されていた代表表記である場合、何れが採用するべき表記であるのを判断することは容易ではない。この場合の処理方法の１つとしては、「取扱」と「扱説明書」との両方を採用する方法が考えられる。これにより、索引語や検索語の抽出漏れを回避することができる。この場合、「取扱」が正しければ「説明書」を採用するべきであり、「扱説明書」が正しければ「取り」を採用するべきであるため、文字列処理部２０３は、「取扱」、「扱説明書」と共に、「取り」、「説明書」も正規化表記として採用する。
【００７０】
また、「取扱」と「扱説明書」とが共に異表記データベースに登録されていた代表表記である場合の他の方法としては、「取扱」、「扱説明書」の夫々についての出現頻度を比較し、出現頻度の高い方を採用する方法が考えられる。これにより、索引語や検索語の抽出漏れを回避しつつ、冗長的な索引語や検索語の生成を回避することができる。この場合、出現頻度を参照するためのデータベースとしては、既に索引格納部２０８に記憶されているｔｆ−ｉｄｆの情報の他、専用の出現頻度参照用のデータベースを参照しても良い。
【００７１】
ここで、図１０のＳ１００４、Ｓ１００７における判断対象である“最後の分割文字列”について説明する。図１０の動作からも明らかな通り、Ｓ１００４、Ｓ１００７において“最後の分割文字列”であることが判断されると、Ｓ１００５、Ｓ１００６を経てＳ１００９へ進むため、それ以上分割文字列を連結しての異表記パターンデータベースの検索は行われない。即ち、Ｓ１００４、Ｓ１００７における“最後の分割文字列”とは、異表記パターンデータベースの検索を行う対象として、更に分割文字列を連結する必要があるか否かの判断基準となる文字列の区切りである。
【００７２】
図９の検索語の生成の場合、入力される検索文字列は上述したようにスペースによって区切られているため、上記“最後の分割文字列”の判断としては、スペースで区切られた夫々の文字列の最後の分割文字列であるか否かを判断すれば良い。これにより、容易に連結文字列の生成要否を判断することができる。
【００７３】
他方、図７の索引語の生成の場合、入力される文字列は文書の文字列、即ち自然文であり、日本語のような単語の区切りが明確ではない言語の場合は、上記“最後の分割文字列”の判断は容易ではない。この場合において、自然文を構成する全ての分割文字列について連結を行うとすれば、大部分が冗長的な処理となってしまい、処理効率が悪い。この場合に“最後の分割文字列”を判断する方法としては、形態素解析によって助詞や接続詞等の単体では意味をなさない文字列を判断し、その文字列を図９の場合のスペースと同様に文字列の区切りとして用いることが考えられる。これにより、文章の構成に応じて連結文字列の生成要否を判断することができる。
【００７４】
また、連結する分割文字列の文字数に上限として閾値を設け、その閾値を超える場合に“最後の分割文字列”であると判断することもできる。これにより、文章の構成に応じた判断が困難であっても、冗長な処理をなるべく回避して連結文字列の生成要否を判断することができる。更には、句読点を文字列の区切りとして用いることもできる。これにより、漏れのない連結文字列の生成要否の判断を実現することができる。
【００７５】
以上説明したように、本実施形態に係る検索装置１００においては、文書を登録するために入力された文書に基づいて索引を生成する際及び入力された検索文字列に基づいて検索語を生成する際に、異表記パターンデータベースを参照して異表記を代表表記に正規化する。その際、形態素解析を経て分割された個々の分割文字列のみについて異表記パターンの検索を行うのではなく、個々の分割文字列を連結した文字列について異表記パターンの検索を行う。これにより、オペレータによる管理負担を増大させることなく、高精度な文字列の正規化を実現することができる。
【００７６】
なお、上記実施形態においては、図９において説明したように、入力される検索文字列は、複数の文字列がスペースによって区切られている形態の場合を例として説明した。しかしながら、自然文検索のように、文章が検索文字列として入力される場合であっても適用可能である。この場合、上述した“最後の分割文字列”の判断は、文書登録時の処理と同様に、助詞や接続詞、文字数の閾値、句読点等を用いて行うことが可能である。
【００７７】
実施の形態２．
実施の形態１においては、図５に示すように異表記パターンデータベースが１つである場合を例として説明した。本実施形態においては、複数の異表記パターンデータベースが存在する場合を例として説明する。なお、以下の説明において、実施の形態１と同一の符号を付す構成については同一若しくは相当部を示すものとし、詳細な説明を省略する。
【００７８】
図１１は、本実施形態に係る検索装置１００の異表記パターン格納部２０９に格納された異表記パターンデータベースの一例を示す図である。なお、本実施形態においては、図１１に示す本実施形態の異表記パターンデータベース１１ａ、１１ｂが、検索装置１００の記憶装置１０６等に格納されることにより、記憶装置１０６によって異表記パターン格納部２０９が実現されるが、ネットワークを介して検索装置１００と接続された外部のデータベースに格納されていても良い。また異表記パターンデータベース１１ａと異表記パターンデータベース１１ｂとは、それぞれが異なる記憶装置に格納されていても良い。
【００７９】
次に、本実施形態の検索装置１００の動作について説明する。本実施形態では、図７のＳ７０６とＳ７０７および図９のＳ９０５とＳ９０６における文字列処理、即ち、実施の形態１における図１０の動作のみ実施の形態１と異なる。よって以下に図１２を参照して本実施形態における図７のＳ７０６とＳ７０７および図９のＳ９０５とＳ９０６の文字列処理について説明する。
【００８０】
図１２は、本実施形態に係る検索装置１００による図７のＳ７０６とＳ７０７および図９のＳ９０５と９０６における文字列処理の詳細を説明する第一のフローチャートである。図１２の例は、異表記パターンデータベースが複数存在する場合に、全ての異表記パターンデータベースに対して検索を行う。これにより、幅広い異表記パターンの検索を行うことができる。
【００８１】
Ｓ１２０１からＳ１２０３までの処理は、図１０のＳ１００１からＳ１００３までの処理と同様であるから説明を省略する。Ｓ１２０３に続いて、文字列処理部２０３は、異表記パターン格納部２０９に格納されている全ての異表記パターンデータベースについて検索したか否かを判断する（Ｓ１２０４）。
【００８２】
Ｓ１２０４の判断の結果、全ての異表記パターンデータベースについて検索を行っていない場合（Ｓ１２０４／ＮＯ）、文字列処理部２０３は、Ｓ１２０２へ戻る。他方、全ての異表記パターンデータベースについて検索を行った場合（Ｓ１２０４／ＹＥＳ）、Ｓ１２０５へ進む。
【００８３】
Ｓ１２０５からＳ１２１０までの処理は、図１０のＳ１００４からＳ１００９までの処理と同様であるから説明を省略する。例えば異表記パターン格納部２０９に格納された異表記パターンデータベースが、異表記パターンデータベース１１ａ、１１ｂの場合、本実施形態に係る文字列処理部２０３は、最初に異表記パターンデータベース１１ａ内を検索した後に異表記パターンデータベース１１ｂ内を検索する。
【００８４】
次に、データベースが複数存在する場合の処理の別の例について説明する。図１３は、本実施形態に係る検索装置１００による図７のＳ７０６と７０７および図９のＳ９０５と９０６における文字列処理の詳細を説明する第二のフローチャートである。図１３の例では、異表記パターンデータベースが複数存在するとき、最初に検索した異表記パターンデータベースに該当する表記が存在しない場合にのみ、他の異表記パターンデータベースを検索する。これにより、冗長的な異表記パターンの検索処理を回避することができ、処理負荷を低減することができる。
【００８５】
図１３のＳ１３０１、Ｓ１３０２は、図１０のＳ１００１、Ｓ１００２と同様であるから説明を省略する。文字列処理部２０３は、Ｓ１３０２で検索した異表記パターンデータベースに対応する表記がない場合（Ｓ１３０３／ＮＯ）、記憶装置１０６に格納された他の異表記パターンデータベースに対応する表記が存在するか否かを判断する（Ｓ１３０７）。Ｓ１３０３からＳ１３０６及びＳ１３０８からＳ１３１０までの処理は、図１０のＳ１００３からＳ１００９までの処理と同様であるため説明を省略する。
【００８６】
図１３の例では、例えば異表記パターン格納部２０９に格納された異表記パターンデータベースが、異表記パターンデータベース１１ａ、１１ｂの場合、文字列処理部２０３は、異表記パターンデータベース１１ａ内を検索して対応する表記が存在しない場合にのみ異表記パターンデータベース１１ｂ内を検索する。
【００８７】
以上のように、本実施形態に係る検索装置１００では、複数の辞書データベースを有する場合でも第一の実施形態と同様の効果を得ることができる。
【００８８】
なお、実施の形態１、２においては、図２に示すように、異表記パターン格納部２０９が検索装置１００内に設けられている場合を例として説明した。この他、図１４に示すように、サーバ等の情報処理装置によって実現される異表記パターンデータベース１４ａ、１４ｂがネットワークを介して接続されていても良い。
【００８９】
本実施形態に係る検索装置１００は、入力ユニット１０４から入力された文書データや文書を検索するためのテキストを文字列処理部２０３により形態素に分割し、生成した分割文字列を異表記パターンデータベース１４ａ、１４ｂへ送信する。異表記パターンデータベース１４ａ、１４ｂは、分割文字列で異表記パターンの検索を行って異表記正規化処理を行い、正規化文字列を検索装置１００へ送信する。その後、検索装置１００において、文書登録処理であれば、正規化文字列による索引の登録、検索処理であれば、正規化文字列による検索条件の生成が行われる。
【００９０】
このように、本実施形態に係る検索装置１００では、実施形態１、２と同様の効果を得ることができる。なお本実施形態の検索システム１４０では、異表記パターンデータベースを２つ有する構成としたが、これに限定されない。本実施形態の検索システム１４０は、異表記パターンデータベースが１つであっても良いし３つ以上であっても良い。また、図２の例と同様に、検索装置１００内部に設けられた異表記パターン格納部２０９と同時に用いられても良い。
【００９１】
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。
【符号の説明】
【００９２】
１００  検索装置
１０１  ＣＰＵ
１０２  メモリユニット
１０３  出力ユニット
１０４  入力ユニット
１０５  通信ユニット
１０６  記憶装置
１０７  ドライブ装置
１４０  検索システム
２０１  登録処理部
２０２  入力部
２０３  文字列処理部
２０４  出力処理部
２０５  検索条件作成部
２０６  検索処理部
２０７  文書格納部
２０８  索引格納部
２０９  異表記パターン格納部
２１０  形態素解析辞書格納部
【先行技術文献】
【特許文献】
【００９３】
【特許文献１】特開平７−６５０１３号公報
【図１】
2012194647.tif 000003
【図２】
2012194647.tif 000004
【図３】
2012194647.tif 000005
【図４】
2012194647.tif 000006
【図５】
2012194647.tif 000007
【図６】
2012194647.tif 000008
【図７】
2012194647.tif 000009
【図８】
2012194647.tif 000010
【図９】
2012194647.tif 000011
【図１０】
2012194647.tif 000012
【図１１】
2012194647.tif 000013
【図１２】
2012194647.tif 000014
【図１３】
2012194647.tif 000015
【図１４】
2012194647.tif 000016