(57)【特許請求の範囲】
【請求項１】
テキストから対象文字列をパターンマッチングにより検索するための検索条件を生成する情報処理装置であって、
第１テキストを言語処理により単語に分割する言語処理部と、
前記対象文字列の前後の少なくとも一方に少なくとも１文字を付加、及び、前記対象文字列の少なくとも１文字を置換の少なくとも一方を実行して変換後文字列を生成する文字変換部と、
前記第１テキストにおいて、前記変換後文字列にマッチし、かつ前記言語処理により分割された単語が前記対象文字列に該当する箇所が基準頻度以下であることを条件として、前記対象文字列にマッチし、かつ前記変換後文字列にマッチしない旨の前記検索条件を生成する条件生成部と、
を備える情報処理装置。
【請求項２】
前記条件生成部は、前記第１テキストにおいて、前記言語処理により分割された単語が前記対象文字列に該当する箇所のうち、前記変換後文字列にマッチする箇所の比率が前記基準頻度以下であることを条件として、前記対象文字列にマッチし、かつ前記変換後文字列にマッチしない旨の前記検索条件を生成する請求項１に記載の情報処理装置。
【請求項３】
前記条件生成部は、前記第１テキストにおいて、前記変換後文字列にマッチし、かつ前記言語処理により分割された単語が前記対象文字列に該当する箇所が基準頻度を超えることを条件として、前記変換後文字列による制約を含まない前記検索条件を生成する請求項１または２に記載の情報処理装置。
【請求項４】
前記文字変換部は、
前記言語処理に用いる辞書に登録された単語の中から前記対象文字列を一部に含む単語を検索し、
検索した当該単語において前記対象文字列の前後の少なくとも一方に位置する少なくとも１文字を前記対象文字列に付加して前記変換後文字列を生成する
請求項１から３のいずれか一項に記載の情報処理装置。
【請求項５】
前記文字変換部は、前記言語処理に用いる辞書における前記対象文字列を一部に含む複数の単語のうち予め定められた基準単語数以上の単語に共通する前記少なくとも１文字を、前記対象文字列に付加して前記変換後文字列を生成する請求項４に記載の情報処理装置。
【請求項６】
前記文字変換部は、
前記第１テキストと同一または異なる第２テキストにおいて前記対象文字列を検索し、
検索した前記対象文字列の前後の少なくとも一方に位置する少なくとも１文字を前記対象文字列に付加して前記変換後文字列を生成する
請求項１から３のいずれか一項に記載の情報処理装置。
【請求項７】
前記文字変換部は、前記第２テキスト中の基準数以上の箇所において共通する前記少なくとも１文字を、前記対象文字列に付加して前記変換後文字列を生成する請求項６に記載の情報処理装置。
【請求項８】
前記文字変換部は、活用語の前記対象文字列について複数の活用形に対応する複数の前記少なくとも１文字のそれぞれを付加して複数の前記変換後文字列のそれぞれを生成する請求項１から７のいずれか一項に記載の情報処理装置。
【請求項９】
前記条件生成部は、
前記対象文字列に応じた属性が対応付けられた少なくとも１つの第３テキストに前記変換後文字列がマッチする頻度に基づいて、前記変換後文字列が前記属性を有するか否かを判定し、
前記変換後文字列が前記属性を有しないことを条件として、前記対象文字列にマッチし、かつ前記変換後文字列にマッチしない旨の前記検索条件を生成する
請求項１から８のいずれか一項に記載の情報処理装置。
【請求項１０】
前記条件生成部は、
前記第３テキストに前記変換後文字列がマッチする頻度を説明変数として、前記第３テキストが前記対象文字列に応じた属性を有するか否かをロジスティック回帰により学習し、
前記説明変数が、前記変換後文字列が前記属性を有することに対して負の関係となることを条件として、前記対象文字列にマッチし、かつ前記変換後文字列にマッチしない旨の前記検索条件を生成する
請求項９に記載の情報処理装置。
【請求項１１】
テキストから対象文字列をパターンマッチングにより検索するための検索条件を生成する方法であって、
第１テキストを言語処理により単語に分割する言語処理段階と、
前記対象文字列の前後の少なくとも一方に少なくとも１文字を付加、及び、前記対象文字列の少なくとも１文字を置換の少なくとも一方を実行して変換後文字列を生成する文字変換段階と、
前記第１テキストにおいて、前記変換後文字列にマッチし、かつ前記言語処理により分割された単語が前記対象文字列に該当する箇所が基準頻度以下であることを条件として、前記対象文字列にマッチし、かつ前記変換後文字列にマッチしない旨の前記検索条件を生成する条件生成段階と、
を備える方法。
【請求項１２】
テキストから対象文字列をパターンマッチングにより検索するための検索条件を生成する情報処理装置によって実行されるプログラムであって、
第１テキストを言語処理により単語に分割する言語処理部と、
前記対象文字列の前後の少なくとも一方に少なくとも１文字を付加、及び、前記対象文字列の少なくとも１文字を置換の少なくとも一方を実行して変換後文字列を生成する文字変換部と、
前記第１テキストにおいて、前記変換後文字列にマッチし、かつ前記言語処理により分割された単語が前記対象文字列に該当する箇所が基準頻度以下であることを条件として、前記対象文字列にマッチし、かつ前記変換後文字列にマッチしない旨の前記検索条件を生成する条件生成部と、
して前記情報処理装置を機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、方法及びプログラムに関する。
【背景技術】
【０００２】
文字列を含むデータベースから文字列を抽出した後、一部の文字列を除外する情報処理装置が知られている（特許文献１から４参照）。例えば、特許文献２の装置は、テキストが各レコードとして登録されている文字列のデータベースから切り出した一部の文字列、例えば、「開発コスト」、「コスト」及び「開発」を抽出する。そして、当該装置は、「開発」及び「コスト」と重複する「開発コスト」を削除して、「開発」及び「コスト」を含む新たなデータベースを作成している。
特許文献１  ＷＯ０１／０５０３４３号公報
特許文献２  特開平１０−３３４１０２号公報
特許文献３  特開平１０−１７７５８１号公報
特許文献４  特開２００７−４１６８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、例えば上述の特許文献２の情報処理装置では、抽出された複数の文字列のいくつかからなる文字列、即ち、複数の文字列の合成語を除外しているので、多くの必要な文字列が除外され、抽出すべき文字列が抽出されず、文字列の抽出精度が低い検索条件でしか検索できないといった課題がある。
【課題を解決するための手段】
【０００４】
本発明の第１の態様においては、テキストから対象文字列をパターンマッチングにより検索するための検索条件を生成する情報処理装置であって、第１テキストを言語処理により単語に分割する言語処理部と、前記対象文字列の前後の少なくとも一方に少なくとも１文字を付加、及び、前記対象文字列の少なくとも１文字を置換の少なくとも一方を実行して変換後文字列を生成する文字変換部と、前記第１テキストにおいて、前記変換後文字列にマッチし、かつ前記言語処理により分割された単語が前記対象文字列に該当する箇所が基準頻度以下であることを条件として、前記対象文字列にマッチし、かつ前記変換後文字列にマッチしない旨の前記検索条件を生成する条件生成部と、を備える情報処理装置、及び、対応する方法及びプログラムを提供する。
【０００５】
なお、上記の発明の概要は、本発明の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００６】
【図１】情報処理装置１０の全体構成図である。
【図２】情報処理装置１０による検索条件生成処理及び検索処理のフローチャートである。
【図３】検索条件の生成を説明するベン図ある。
【図４】除外候補を選択する表示画像４０の図である。
【図５】検索対象のテキストコーパスの図である。
【図６】検索条件生成の変更例に用いる第３テキストを含むテキストコーパス４２の図である。
【図７】本実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【０００７】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００８】
図１は、情報処理装置１０の全体構成図である。情報処理装置１０は、言語処理によって検索されるべき対象文字列の単語を文字列検索によって精度よく抽出されるための検索条件３４を生成する。情報処理装置１０の一例は、パーソナルコンピュータ等のコンピュータである。
【０００９】
情報処理装置１０は、制御部１２と、表示部１４と、入力部１６と、記憶部１８とを備える。情報処理装置１０は、表示部１４、入力部１６、及び、記憶部１８のいずれかを有さず、外部の装置に設けられた表示部１４、入力部１６、及び、記憶部１８を利用してもよい。
【００１０】
制御部１２は、ＣＰＵ（Central Processing Unit）等の演算処理装置である。制御部１２は、言語処理部２２と、文字変換部２４と、条件生成部２６と、検索部２８とを有する。例えば、制御部１２は、検索条件生成処理用及び検索処理用のプログラムを記憶部１８またはネットワークから読み込むことによって、言語処理部２２、文字変換部２４、条件生成部２６、及び、検索部２８として機能するように構成してもよい。尚、言語処理部２２、文字変換部２４、条件生成部２６、及び、検索部２８の一部または全部を回路等のハードウェアによって構成してもよい。
【００１１】
言語処理部２２は、第１テキストを言語処理により単語に分割する。例えば、言語処理部２２は、記憶部１８及び条件生成部２６に接続されている。言語処理部２２は、記憶部１８に記憶された学習用のテキストコーパス３２に含まれる１以上の第１テキストを取得して、当該第１テキストを言語処理によって単語に分割する。尚、言語処理部２２は、辞書データ３０に登録された単語及び文法を用いた形態素解析に基づいて、第１テキストを単語分割してもよい。言語処理部２２は、単語分割した第１テキストを条件生成部２６へ出力する。
【００１２】
文字変換部２４は、対象文字列の前後の少なくとも一方に少なくとも１文字を付加して変換後文字列を生成する。例えば、文字変換部２４は、記憶部１８及び条件生成部２６に接続されている。文字変換部２４は、記憶部１８の辞書データ３０から取得した単語に基づいて、対象文字列の前後の一方に少なくとも一文字を付加した変換後文字列として生成する。文字変換部２４は、対象文字列及び変換後文字列等を条件生成部２６に出力する。
【００１３】
条件生成部２６は、言語処理部２２、文字変換部２４及び記憶部１８と接続されている。条件生成部２６は、言語処理部２２から単語分割された第１テキストを取得する。条件生成部２６は、文字変換部２４から対象文字列及び変換後文字列を取得する。条件生成部２６は、第１テキストにおいて、変換後文字列にマッチし、かつ言語処理により分割された単語が対象文字列に該当する箇所が基準頻度Ｔｈ以下であることを条件として、対象文字列にマッチし、かつ変換後文字列にマッチしない旨の検索条件３４を生成する。これにより、条件生成部２６は、文字列検索によって、対象文字列を検索して、且つ、異なる単語として区別するべき変換後文字列を含むような単語を検索させるような検索条件３４を生成することができる。条件生成部２６は、記憶部１８に生成した検索条件３４を記憶させる。条件生成部２６は、変換後文字列にマッチさせない候補である除外候補を含む表示画像の画像情報を表示部１４に出力する。
【００１４】
検索部２８は、条件生成部２６が生成した検索条件３４に基づいて、テキストを検索する。例えば、検索部２８は、テキストコーパス３２内で検索条件３４にマッチする文字列を含むテキストを検索して、抽出する。
【００１５】
表示部１４は、制御部１２の条件生成部２６からの画像情報に基づいて、画像を表示する。表示部１４の一例は、有機ＥＬ表示装置、及び、液晶表示装置である。
【００１６】
入力部１６は、ユーザからの入力を受け付けて、制御部１２へと出力する。入力部１６の一例は、キーボード、マウス、及び、タッチパネル等である。
【００１７】
記憶部１８は、制御部１２で実行されるプログラム、及び、プログラムの実行において必要なパラメータ等の情報を記憶する。例えば、記憶部１８は、検索条件生成処理用のプログラム、及び、検索処理用のプログラムを記憶する。記憶部１８は、検索条件生成処理用及び検索処理用のプログラムを実行するときに必要となる辞書データ３０及びテキストコーパス３２を記憶する。辞書データ３０は、例えば、国語辞書のデータであってもよく、医療用等の専門用語の辞書データであってもよい。テキストコーパス３２は、例えば、一般のテキストを含むデータベースであってもよく、医療用等の特定の分野のテキストを含むデータベースであってもよい。医療用の分野のテキストの一例は、保険の申請書に記載された文章である。
【００１８】
図２は、情報処理装置１０による検索条件生成処理及び検索処理のフローチャートである。図３は、検索条件３４の生成を説明するベン図である。図４は、除外候補を選択する表示画像４０の図である。図５は、検索対象のテキストコーパス３２の図である。検索条件生成処理及び検索処理は、制御部１２が検索条件生成処理用及び検索処理用のプログラムを読み込むことによって実行される。本実施形態では、検索対象の対象文字列を「がん」とする。
【００１９】
図２に示すように、検索条件生成処理では、まず、文字変換部２４は、対象文字列を取得する（Ｓ１０）。例えば、文字変換部２４は、記憶部１８に記憶された辞書データ３０に登録された単語から対象文字列を取得する。尚、文字変換部２４は、キーボード等によるユーザの入力によって対象文字列を取得してもよい。
【００２０】
文字変換部２４は、対象文字列の前後の少なくとも一方に少なくとも１文字を付加して変換後文字列を生成する（Ｓ１２）。例えば、文字変換部２４は、言語処理に用いる辞書データ３０に登録された単語の中から対象文字列を一部に含む単語を検索し、検索した当該単語において対象文字列の前後の少なくとも一方に位置する少なくとも１文字を対象文字列に付加して変換後文字列を生成する。更に、文字変換部２４は、言語処理に用いる辞書データ３０における対象文字列を一部に含む複数の単語のうち予め定められた基準単語数Ｓｔａ以上の単語に共通する少なくとも１文字を、対象文字列に付加して変換後文字列を生成してもよい。
【００２１】
具体例を挙げて、文字変換部２４による変換後文字列の生成について説明する。文字変換部２４は、対象文字列「がん」を含む単語を辞書データ３０で検索した結果、単語「がん」、「○○誘発性がん」、「□□誘発性がん」、「がん誘発性××」、「がん誘発性△△」、「××がん検診」、「□□がん検診」及び「がん細胞」を抽出したとする。当該単語は、辞書データ３０のエントリ（即ち、見出し語）から抽出してもよい。
【００２２】
例えば、文字変換部２４は、単語「○○誘発性がん」のうち、対象文字列「がん」から前に一文字拡張した文字列「性がん」の個数をカウントする。辞書データ３０は、単語「○○誘発性がん」及び「□□誘発性がん」を含むので、文字変換部２４は、文字列「性がん」の個数を２個とカウントする。ここで、基準単語数Ｓｔａを２とする。文字列「性がん」の個数は、基準単語数Ｓｔａ以上なので、文字変換部２４は、更に単語「○○誘発性がん」の「性がん」から前に一文字拡張した「発性がん」の個数をカウントする。「発性がん」の個数は同様に２個となり、基準単語数Ｓｔａ以上なので、文字変換部２４は、更に、「誘発性がん」の個数をカウントする。「誘発性がん」の個数も２個となり、基準単語数Ｓｔａ以上なので、文字変換部２４は、「○誘発性がん」の個数をカウントする。「○誘発性がん」を含む単語は、「○○誘発性がん」以外ないので、文字変換部２４は、当該個数を１個とカウントする。この個数は、基準単語数Ｓｔａ以下なので、文字変換部２４は、「○誘発性がん」を変換後文字列にしない。
【００２３】
一方、文字変換部２４は、「誘発性がん」の個数が基準単語数Ｓｔａ以上の条件を満たすので、「誘発性がん」を変換後文字列とする。換言すれば、文字変換部２４は、対象文字列「がん」の前に３文字「誘発性」を付加して変換後文字列「誘発性がん」を生成する。ここで、文字変換部２４が対象文字列に付加した１以上の文字を検索候補とする。ここでの検索候補は、対象文字列「がん」に付加した基準単語数Ｓｔａ以上の文字のうち、最も長い「誘発性〜」である。文字変換部２４は、検索候補が対象文字列の前また後のいずれに付加されるかを識別可能にする。
【００２４】
同様に、文字変換部２４は、辞書データ３０の単語「がん誘発性××」のうち、対象文字列「がん」から後に一文字拡張した文字列「がん誘」の個数をカウントする。当該個数は、単語「がん誘発性××」及び「がん誘発性△△」から基準単語数Ｓｔａ以上の２個とカウントされる。この後、文字変換部２４は、上述と同様の処理を実行して、「がん誘発性」を変換後文字列として生成して、「〜誘発性」を検索候補とする。同様に、文字変換部２４は、辞書データ３０の単語「××がん検診」及び「□□がん検診」から「がん検診」を変換後文字列として生成して、「〜がん検診」を検索候補とする。
【００２５】
一方、辞書データ３０の単語「がん細胞」のうち、対象文字列「がん」から後に一文字拡張した文字列「がん細」は他の単語と共通しないので、文字変換部２４は、個数を１とカウントして、基準単語数Ｓｔａ未満と判断する。従って、文字変換部２４は、単語「がん細」を変換後文字列として生成しない。
【００２６】
文字変換部２４は、変換後文字列、対象文字列、及び、検索候補を条件生成部２６へ出力する。
【００２７】
言語処理部２２は、第１テキストを言語処理によって単語に分割する（Ｓ１４）。例えば、言語処理部２２は、記憶部１８に記憶されたテキストコーパス３２から１以上の第１テキストを取得する。言語処理部２２は、記憶部１８に記憶された辞書データ３０に既に登録済みの単語に基づいて、取得した第１テキストを単語に分割する。言語処理部２２は、単語に分割された１以上の第１テキストを条件生成部２６へ出力する。
【００２８】
条件生成部２６は、第１テキストに含まれる変換後文字列の図３に示す集合Ｒａを生成する（Ｓ１６）。例えば、条件生成部２６は、第１テキストに含まれる変換後文字列にマッチする箇所、即ち、言語処理部２２による単語分割を考慮せず文字列上一致する箇所を文字列検索によって検索して抽出する。従って、条件生成部２６は、変換後文字列にマッチする第１テキストの全ての箇所を検索して抽出することになる。
【００２９】
条件生成部２６は、第１テキストにおいて言語処理により分割された単語のうち、対象文字列と一致する単語の箇所の集合Ｒｘを生成する（Ｓ１８）。具体的には、条件生成部２６は、言語処理部２２によって単語に分割された第１テキスト中で対象文字列と一致する箇所を検索して抽出して、図３に示す集合Ｒｘを生成する。
【００３０】
条件生成部２６は、第１テキストにおいて、変換後文字列にマッチし、かつ言語処理により分割された単語のうち対象文字列に該当する箇所が基準頻度Ｔｈ以下である条件を満たすか否かを判断する（Ｓ２０）。例えば、条件生成部２６は、第１テキストにおいて、言語処理により分割された単語のうち対象文字列に該当する箇所のうち、変換後文字列にマッチする箇所の比率が基準頻度Ｔｈ以下である条件を満たすか否かを判断する。基準頻度Ｔｈは、０から１の間の数値であって、例えば、０．５である。具体的には、条件生成部２６は、次の式（１）を満たすか否かを判断する。
Ｔｈ≧＃（Ｒａ  ∩  Ｒｘ）／＃Ｒｘ      ・・・（１）
図３にハッチングで示す（Ｒａ  ∩  Ｒｘ）は、集合Ｒａと、集合Ｒｘとが重なる領域である。尚、＃は、集合内の文字列または単語の個数を示す。
【００３１】
条件生成部２６は、式（１）を満たさない、即ち、変換後文字列にマッチし、かつ言語処理により分割された単語のうち対象文字列に該当する箇所が基準頻度Ｔｈより大きいと判断すると（Ｓ２０：Ｎｏ）、当該変換後文字列に含まれる検索候補を検索候補として維持する（Ｓ２２）。例えば、条件生成部２６は、変換後文字列「誘発性がん」が式（１）を満たさないと判断すると、検索候補「誘発性〜」を検索候補として維持する。
【００３２】
一方、条件生成部２６は、式（１）を満たす、即ち、変換後文字列にマッチし、かつ言語処理により分割された単語のうち対象文字列に該当する箇所が基準頻度Ｔｈ以下と判断すると（Ｓ２０：Ｙｅｓ）、当該変換後文字列に含まれる検索候補を除外候補とする（Ｓ２４）。例えば、条件生成部２６は、変換後文字列「がん誘発性」が式（１）を満たすと判断すると、検索候補「〜誘発性」を除外候補に変更する。尚、本実施形態では、変換後文字列「がん検診」も式（１）を満たさず、検索候補「〜検診」も除外候補に変更したとする。
【００３３】
条件生成部２６は、判断した変換後文字列が最後の変換後文字列か否かを判断する（Ｓ２６）。条件生成部２６は、全ての変換後文字列についてステップＳ２０の処理を実行するまでステップＳ２０を繰り返す（Ｓ２６：Ｎｏ）。
【００３４】
条件生成部２６は、全ての変換後文字列についてステップＳ２０の処理が実行されたと判断したら（Ｓ２６：Ｙｅｓ）、検索条件３４を生成する（Ｓ２８）。ここで、条件生成部２６は、検索候補を「誘発性〜」として、除外候補を「〜誘発性」及び「〜検診」と決定している。従って、条件生成部２６は、次の式（２）を検索条件３４として生成する。尚、式（２）内の各記号は正規表現に基づく。
検索条件  ：  （がん）＾（誘発性｜検診）      ・・・（２）
＾：後に続く括弧内に含まれる文字にマッチしない。
｜：「または」を意味する。上記の例では、「誘発性」または「検診」を意味する。
従って、式（２）の検索条件３４は、「がん」を含む文字列のうち、「がん誘発性」及び「がん検診」を除外することを示す。これにより、条件生成部２６は、対象文字列にマッチし、かつ、式（１）の条件を満たす変換後文字列にマッチしない旨の検索条件３４を生成する。条件生成部２６は、生成した検索条件３４を記憶部１８に記憶させる。
【００３５】
条件生成部２６は、ユーザによって候補が選択されたか否かを判断する（Ｓ３０）。例えば、条件生成部２６は、図４に示す表示画像４０を表示部１４に表示させる。表示画像４０において、中央の「がん」は対象文字列を示す。「がん」の左側に表示されている文字または文字列は、「がん」の前方の検索候補または除外候補を示す。「がん」の右側に表示されている文字または文字列は、「がん」の後方の検索候補または除外候補を示す。尚、各文字または文字列の左側の□のチェックマークは、当該文字または文字列が条件生成部２６に選択された除外候補であることを示す。左側の□にチェックマークが付与されていない文字または文字列は、条件生成部２６によって設定された検索候補を示す。
【００３６】
ユーザは、当該表示画像４０を見て、入力部１６を介して、各文字または文字列にチェックマークを付与、または、チェックマークを除去することによって、除外候補を選択する。条件生成部２６は、ユーザによる除外候補の選択を取得すると（Ｓ３０：Ｙｅｓ）、検索条件３４を変更して、新たに記憶部１８に記憶させる（Ｓ３２）。一方、条件生成部２６は、除外候補の選択を取得しない場合（Ｓ３０：Ｎｏ）、ステップＳ３２を実行しない。これにより、検索条件生成処理は終了する。
【００３７】
検索処理では、検索部２８が、記憶部１８に記憶された検索条件３４に基づいてテキストを検索する（Ｓ３４）。尚、検索部２８は、条件生成部２６から検索条件３４を取得してもよい。例えば、図５に示すテキストコーパス３２を検索する場合、検索部２８は、対象文字列「がん」を含むテキストＴＸ１からＴＸ６を抽出する。次に、検索部２８は、除外対象となる「がん誘発性」と「がん検診」を含むテキストＴＸ５及びＴＸ６を除外する。これにより、検索部２８は、最終的に、テキストＴＸ１からＴＸ４を抽出する。これにより、検索処理が終了する。検索処理は、検索条件生成処理と連続して実行する必要はなく、別に実行されてもよい。
【００３８】
上述したように情報処理装置１０では、条件生成部２６は、変換後文字列にマッチして、かつ、言語処理に基づいて検索された対象文字列の個数が基準頻度Ｔｈ以下となる変換後文字列に付加された検索候補を除外候補としている。これにより、情報処理装置１０は、対象文字列を含む文字列のうち、抽出すべき文字列を精度よく抽出できる。
【００３９】
例えば、上述の実施形態の例で示した「がん誘発性××」は、「がん」ではなく、別の病気である。従って、対象文字列が「がん」である場合、「がん誘発性××」は抽出すべき文字列ではない。この場合、条件生成部２６は、対象文字列「がん」を含む文字列のうち、変換後文字列「がん誘発性」及び「がん検診」を除外する検索条件３４を生成する。従って、当該検索条件３４は、抽出すべきでない文字列を除外できることがわかる。このように、情報処理装置１０は、対象文字列を含む文字列のうち、抽出すべきでない文字列を除外して、文字列の抽出精度を向上させる検索条件３４を生成することができる。
【００４０】
また、情報処理装置１０では、条件生成部２６は、対象文字列にマッチして、かつ、変換後文字列のいずれかにマッチしない検索条件３４を生成するので、言語処理によって単語分割された第１テキストを検索対象とした場合に抽出されなかった文字列を抽出できる。
【００４１】
例えば、対象文字列として「白内障手術」を言語処理により検索する場合であって、単語として「右白内障」及び「手術」が辞書データ３０に登録されている場合において、テキスト中の文字列「右白内障手術」は「右白内障」と「手術」に単語分割てしまう結果、「白内障手術」は抽出されなかった。一方、情報処理装置１０は、検索条件３４に基づいて、対象文字列「白内障手術」を含む文字列をパターンマッチングにより全て抽出するので、除外候補に該当しない限り「右白内障手術」も抽出できる。また、対象文字列が「麻痺」の場合であって、テキスト中の文字列「左拇指麻痺」は、未知語「拇」を含むので抽出されなかった。これは、文字列「左拇指麻痺」が、未知語「拇」を含むので未知語として認識され、単語分割されないことが原因である。一方、情報処理装置１０は、検索条件３４に基づいて、対象文字列「麻痺」を含む文字列を一度全て抽出するので、除外候補とならない限り「左拇指麻痺」も抽出できる。
【００４２】
情報処理装置１０では、条件生成部２６が、既存の辞書データ３０によって、検索条件３４を生成できる。これにより、情報処理装置１０は、辞書データ３０を更新することによって、検索条件３４の精度を常に向上できる。
【００４３】
情報処理装置１０では、条件生成部２６が、除外候補を選択可能な表示画像４０を表示部１４に表示させる。これにより、情報処理装置１０は、検索条件３４を可視化して、ユーザにどのような検索条件３４で検索されるのかを示すことができる。
【００４４】
次に、上述した実施形態を変更した例を説明する。
【００４５】
（基準頻度の判断）ステップＳ２０における基準頻度の判断の変更例について説明する。
【００４６】
更に、条件生成部２６は、第１テキストにおいて、変換後文字列にマッチし、かつ言語処理により分割された単語のうち対象文字列に該当する箇所が基準頻度Ｔｈを超えることを条件としてもよい。具体的には、条件生成部２６は、次の式（３）を満たすか否かを判断すればよい。
Ｔｈ＜＃（Ｒａ  ∩  Ｒｘ）／＃Ｒｘ      ・・・（３）
条件生成部２６は、式（３）を満たすことを条件として、当該変換後文字列による制約を含まない検索条件３４を生成してもよい。上述した実施形態では、対象文字列「がん」に対して、変換後文字列「誘発性がん」が式（３）を満たすので、条件生成部２６は、当該変換後文字列「誘発性がん」による制約を含まない、即ち、変換後文字列「誘発性がん」を除外しない検索条件３４を生成する。
【００４７】
条件生成部２６は、次の式（４）を満たすことを条件として、式（１）を満たすか否かを判断してもよい。
Ｔｈ＜＃（Ｒａ−Ｒｘ）／＃Ｒｘ      ・・・（４）
換言すれば、条件生成部２６は、第１テキストにおいて、変換後文字列にマッチし、かつ言語処理により分割された単語のうち対象文字列に該当しない箇所が基準頻度Ｔｈを超えることを条件としてもよい。この場合、条件生成部２６は、対象文字列にマッチし、かつ、式（４）の条件を満たす変換後文字列にマッチしない旨の検索条件３４を生成する。
【００４８】
（検索条件の生成）検索条件３４の生成の変更例について説明する。
【００４９】
図６は、検索条件生成の変更例に用いる第３テキストを含むテキストコーパスの図である。また、条件生成部２６は、対象文字列に応じた属性が対応付けられた少なくとも１つの第３テキストに変換後文字列がマッチする頻度に基づいて、変換後文字列が属性を有するか否かを判定し、変換後文字列が属性を有しないことを条件として、対象文字列にマッチし、かつ変換後文字列にマッチしない旨の検索条件３４を生成してもよい。
【００５０】
例えば、条件生成部２６は、第３テキストに変換後文字列がマッチする頻度を説明変数として、第３テキストが対象文字列に応じた属性を有するか否かをロジスティック回帰により学習し、説明変数が、変換後文字列が属性を有することに対して負の関係となることを条件として、対象文字列にマッチし、かつ変換後文字列にマッチしない旨の検索条件３４を生成する。
【００５１】
具体的には、対象文字列を「がん」とし、図６に示すテキストコーパス４２の第３テキストＴＸｍ（ｍ＝１１、・・、２１、・・、３１、・・）に基づいて、条件生成部２６は、検索条件３４を生成する。ここで、ロジスティック回帰分析における目的変数を、保険の給付金の対象となる確率とする。換言すれば、変換後文字列が「がん」と見なされる確率を目的変数とする。保険の給付金の対象となる場合、目的変数は１となり、保険の給付金の対象とならない場合、目的変数は０となる。目的変数をｐ、各変換後文字列の説明変数をＸｎ（ｎ＝１、２・・）とすると、ｐとＸｎの関係は次の式（５）となる。
【数１】
0005930228.tif 000002
【００５２】
例えば、「誘発性がん」がテキストＴＸ１１中の全ての文字の中で８０％占める場合、条件生成部２６は、テキストＴＸ１１における「誘発性がん」の説明変数Ｘ１を８０％とする。また、条件生成部２６は、テキストＴＸ１１が、保険の給付金の対象となったテキストの場合、テキストＴＸ１１の目的変数を１とする。同様に、条件生成部２６は、他のテキストＴＸ２１、ＴＸ３１についても、「がん誘発性」または「がん検診」が、テキストＴＸ２１、ＴＸ３１中で占める割合を算出して「がん誘発性」または「がん検診」の説明変数Ｘ２、Ｘ３をそれぞれ算出する。尚、テキストＴＸ２１、ＴＸ３１は保険の給付金の対象とならなかったので、目的変数を０とする。このようにして、条件生成部２６は、説明変数と目的変数との複数の組み合わせを求めて、既知のロジスティック回帰分析の推定法である最尤法等によって、式（１）に示す各説明変数の係数α及び各変換後文字列と関連付けられた係数βｎを推定する。条件生成部２６は、係数βｎが正の場合、当該変換後文字列の属性を正と判定する。一方、条件生成部２６は、係数βｎが負の場合、当該変換後文字列の属性を負と判定する。条件生成部２６は、これらの判定結果に基づいて、対象文字列にマッチし、かつ属性が負の変換後文字列にマッチしない旨の検索条件３４を生成する。
【００５３】
（変換後文字列の生成）ステップＳ１２における変換後文字列の生成の変更例について説明する。
【００５４】
文字変換部２４は、辞書データ３０の単語ではなく、テキストに含まれる文字列に基づいて、変換後文字列を生成してもよい。例えば、文字変換部２４は、第１テキストと同一または異なる第２テキストにおいて対象文字列を検索し、検索した対象文字列の前後の少なくとも一方に位置する少なくとも１文字を対象文字列に付加して変換後文字列を生成してもよい。この場合、文字変換部２４は、第２テキスト中の基準数Ｓｔｂ以上の箇所において共通する少なくとも１文字を、対象文字列に付加して変換後文字列を生成してもよい。例えば、文字変換部２４は、対象文字列が「がん」の場合、第２テキスト中の「がん」を検索して、「がん」の箇所の前後の少なくとも一方の文字を一文字ずつ拡張する。文字変換部２４は、「がん」を拡張した文字列と共通する箇所が基準数Ｓｔｂ以上ある文字列のうち、最も長い文字列を変換後文字列とする。
【００５５】
文字変換部２４は、活用語の対象文字列について複数の活用形に対応する複数の少なくとも１文字のそれぞれを付加して複数の変換後文字列のそれぞれを生成してもよい。例えば、対象文字列が活用語の「上がる」の場合、文字変換部２４は当該対象文字列の活用形である「上がら」、「上がり」、「上がっ」、「上がる」、「上がれ」、及び、「上がろ」に対して、少なくとも１文字の検索候補を付加して変換後文字列を生成する。
【００５６】
上述の実施形態では、文字変換部２４は、対象文字列を含む文字列が基準単語数Ｓｔａ以上または基準数Ｓｔｂ以上の場合、変換後文字列を生成したが、変換後文字列の生成はこれに限られない。例えば、文字変換部２４は、対象文字列を含む全ての文字列を変換後文字列としてもよい。換言すれば、基準単語数Ｓｔａ及び基準数Ｓｔｂを１と設定してもよい。
【００５７】
（その他の変更例）上述の実施形態を部分的に変更した形態について説明する。
上述の実施形態では、文字変換部２４が辞書データ３０またはテキストコーパス３２に基づいて、検索候補を抽出していたが、検索候補はこの例に限られない。例えば、文字変換部２４は、検索候補として、カタカナの任意の一文字を含む文字セットから抽出してもよい。また、文字変換部２４は、漢数字等の文字列パターンから検索候補を抽出してもよい。
【００５８】
文字変換部２４は、対象文字列の少なくとも１文字を置換してもよい。例えば、対象文字列が英語の単語の場合、対象文字列の１文字以上を置換してもよい。具体的には、「ウイルス」を意味する「virus」に対して、「ウイルスの」を意味する「viral」に置換することによって変換後文字列を生成してもよい。また、文字変換部２４は、付加と置換との少なくとも一方を実行して変換後文字列を生成してもよく、両方を実行して変換後文字列を生成してもよい。即ち、文字変換部２４は、対象文字列の前後の少なくとも一方に少なくとも１文字を付加、及び、前記対象文字列の少なくとも１文字を置換の少なくとも一方を実行してもよい。
【００５９】
図７は、本実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、情報処理装置１０の一例である。コンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示部２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、及び、ハードディスクドライブ２０４０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、メモリドライブ２０５０及び入出力チップ２０７０を有するレガシー入出力部とを備える。
【００６０】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示部２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００６１】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用する表示プログラム等のプログラム及びデータを格納する。
【００６２】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、メモリドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、及び／又は、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。メモリドライブ２０５０は、メモリカード２０９０から例えば表示プログラム等のプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、メモリドライブ２０５０を入出力コントローラ２０８４へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【００６３】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、メモリカード２０９０、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。表示プログラム等のプログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【００６４】
コンピュータ１９００にインストールされ、コンピュータ１９００を情報処理装置１０として機能させるプログラムは、言語処理モジュール、文字変換モジュール、条件生成モジュール、及び、検索モジュールとを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、言語処理モジュール、文字変換モジュール、条件生成モジュール、及び、検索モジュールとしてそれぞれ機能させる。
【００６５】
これらのプログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である言語処理モジュール、文字変換モジュール、条件生成モジュール、及び、検索モジュールとして機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の情報処理装置１０が構築される。
【００６６】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、又はメモリカード２０９０等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置又は通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【００６７】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、メモリドライブ２０５０（メモリカード２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、及び／又は記憶装置に含まれるものとする。
【００６８】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合（又は不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。
【００６９】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、メモリカード２０９０の他に、ＤＶＤ又はＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【００７０】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００７１】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００７２】
１０  情報処理装置
１２  制御部
１４  表示部
１６  入力部
１８  記憶部
２２  言語処理部
２４  文字変換部
２６  条件生成部
２８  検索部
３０  辞書データ
３２  テキストコーパス
３４  検索条件
４０  表示画像
４２  テキストコーパス
１９００  コンピュータ
２０００  ＣＰＵ
２０１０  ＲＯＭ
２０２０  ＲＡＭ
２０３０  通信インターフェイス
２０４０  ハードディスクドライブ
２０５０  メモリドライブ
２０７０  入出力チップ
２０７５  グラフィック・コントローラ
２０８０  表示部
２０８２  ホスト・コントローラ
２０８４  入出力コントローラ
２０９０  メモリカード
【図１】
0005930228.tif 000003
【図２】
0005930228.tif 000004
【図３】
0005930228.tif 000005
【図４】
0005930228.tif 000006
【図５】
0005930228.tif 000007
【図６】
0005930228.tif 000008
【図７】
0005930228.tif 000009