(57)【要約】【課題】文字列の表現形式にとらわれず、一つの検索式を使用して複数種の数字表現された文字列を高精度に検索することである。【解決手段】数字表現された文字を検索することを指定するための特定文字を含む数字表現された文字を検索するための検索式を入力する検索式入力手段と、検索対象のテキストの中から数字表現された文字列を検出する数字表現検出手段と、検索式入力手段により入力された検索式に基づいて、数字表現検出手段により検出された数字表現された文字列を含む検索式と一致する文字列を検索対象のテキストの中から検索し、検索結果として出力する検索手段とを具備することを特徴とする。【選択図】 図１
2010186486.tif 000002
【特許請求の範囲】
【請求項１】
テキストの中から数字表現された文字列を含む文字列を検索するための文字列検索装置であって、
数字表現された文字を検索することを指定するための特定文字を含む数字表現された文字を検索するための検索式を入力する検索式入力手段と、
検索対象のテキストの中から数字表現された文字列を検出する数字表現検出手段と、
前記検索式入力手段により入力された前記検索式に基づいて、前記数字表現検出手段により検出された数字表現された文字列を含む前記検索式と一致する文字列を前記検索対象のテキストの中から検索し、検索結果として出力する検索手段とを具備することを特徴とする文字列検索装置。
【請求項２】
テキストの中から数字表現された文字列を含む文字列を検索するための文字列検索装置であって、
数字表現された文字を検索することを指定するための特定文字を含む数字表現された文字列を検索するための検索式と、複数種の数字表現の中からどの種類の数字表現された文字列を検索対象とするかの指定情報とを入力する検索式入力手段と、
検索対象のテキストの中から複数種の数字表現された文字列を検出し、この検出した複数種の数字表現された文字列を統一された数字表現に変換する数字表現検出手段と、
前記検索式入力手段により入力された前記検索式に基づいて、前記指定情報で指定された種類の数字表現された文字列を含む前記検索式と一致する文字列を前記検索対象のテキストの中から検索し検索結果として出力する検索手段とを具備することを特徴とする文字列検索装置。
【請求項３】
前記数字表現検出手段は、検索対象のテキストから抽出した元となる数字表現された文字列を特定種類の数字表現された数字文字列と、前記元となる数字表現された文字列における数字表現の種類を特定する属性情報とから構成される統一された数字表現に変換することを特徴とする請求項２記載の文字列検索装置。
【請求項４】
テキストの中から数字表現された文字列を含む文字列を検索するための文字列検索方法であって、
数字表現された文字を検索することを指定するための特定文字を含む数字表現された文字を検索するための検索式を入力する検索式入力ステップと、
検索対象のテキストの中から数字表現された文字列を検出する数字表現検出ステップと、
前記検索式入力ステップで入力された前記検索式に基づいて、前記数字表現検出ステップで検出された数字表現された文字列を含む前記検索式と一致する文字列を前記検索対象のテキストの中から検索し、検索結果として出力する検索ステップとを具備することを特徴とする文字列検索方法。
【請求項５】
テキストの中から数字表現された文字列を含む文字列を検索するための文字列検索方法であって、
数字表現された文字を検索することを指定するための特定文字を含む数字表現された文字列を検索するための検索式と、複数種の数字表現の中からどの種類の数字表現された文字列を検索対象とするかの指定情報とを入力する検索式入力ステップと、
検索対象のテキストの中から複数種の数字表現された文字列を検出し、この検出した複数種の数字表現された文字列を統一された数字表現に変換する数字表現検出ステップと、
前記検索式入力ステップで入力された前記検索式に基づいて、前記指定情報で指定された種類の数字表現された文字列を含む前記検索式と一致する文字列を前記検索対象のテキストの中から検索し検索結果として出力する検索ステップとを具備することを特徴とする文字列検索方法。
【請求項６】
前記数字表現検出ステップは、検索対象のテキストから抽出した元となる数字表現された文字列を特定種類の数字表現された数字文字列と、前記元となる数字表現された文字列における数字表現の種類を特定する属性情報とから構成される統一された数字表現に変換することを特徴とする請求項５記載の文字列検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象文書から所定の文字列を検索する文字列検索装置及び文字列検索方法に関する。
【背景技術】
【０００２】
従来、文字列検索方式として、実際の文字検索を行う前に正規表現指定の検索文字列の正規表現を解析して実際の文字列検索時には、正規表現を考慮して文字列検索を行えるようにすることにより、正規表現指定の検索文字列の文字列検索時における実際の文字比較を明示指定の検索文字列の文字検索と同様に１対１の明示的比較に徹して行うことのできる正規表現を考慮したものがある（例えば、特許文献１参照）。
【０００３】
また、特定なパターンの文字列の検索には、検索式を立てて検索する方法がある。例えば、検索式［ａ−ｚ］｛ｎ，ｍ｝は、「ａ」から「ｚ」までのアルファベットがｎ回以上ｍ回以下出現する文字列を検索できる。数字の場合も同様に、検索式［０−９］｛ｎ，ｍ｝は、「０」から「９」までの数字がｎ回以上ｍ回以下出現する数字を検索できる。「百、千」などの漢数字を検索する場合も特別な検索式はなく、［一二三…万億］｛ｎ，ｍ｝のように検索式を記述し、「一」から「億」まで列挙した文字がｎ回以上ｍ回以下出現する文字列を検索するようにする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平２−６３７７１号号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、従来のものでは、特定なパターンの検索には、複雑な検索式を記述しなければならない。上述の［ａ−ｚ］｛ｎ，ｍ｝のほか、例えば「＊」、「？」などのワイルドカード文字や「／」、「＾」、「＄」などの記号の組み合わせを用いて複雑な検索式を構成する。
【０００６】
このような検索方法を使って様々な数字表現を検索するためには、ユーザが検索式に関する詳しい知識を有する必要があり、簡単に検索を行うことができない。また、数字表現の場合は、その表現は多様であり、文書によって用いられる文字種（アラビア数字、漢数字、ローマ数字等）は異なるし、また、一つの文書に複数の文字種による数字表現が混在することもある。従来の検索方法では、文字種の混在については、アラビア数字の半角文字と全角文字を共通検索式で検索できるにすぎず、漢数字やローマ数字、またアルファベットによるスペルアウトした数字表現（例えばtwenty-four）を共通検索式で検索をすることはできなかった。
【０００７】
さらに、漢数字やアルファベットのスペルアウトした数字表現など、従来の正規表現による検索方法では、数字として適切性の判断を含めた検索結果を得ることはできなかった。漢数字の例では、［一二三……万億］｛ｎ，ｍ｝のような検索式を用いると、「九州」の「九」や「億万長者」の「億万」まで検索されるという問題があった。
【０００８】
また、少数や分数など、数字文字以外を伴う数字表現までを想定すると、整数の検索と共通で、かつ数字として適切であるものを検索できる検索式を指定することはできなかった。
【０００９】
本発明の目的は、表現形式にとらわれず、一つの検索式を使用して複数種の数字表現された文字列を高精度に検索できる文字列検索装置及び文字列検索方法を提供することである。
【課題を解決するための手段】
【００１０】
本発明は、テキストの中から数字表現された文字列を含む文字列を検索するための文字列検索装置であって、数字表現された文字を検索することを指定するための特定文字を含む数字表現された文字を検索するための検索式を入力する検索式入力手段と、検索対象のテキストの中から数字表現された文字列を検出する数字表現検出手段と、検索式入力手段により入力された検索式に基づいて、数字表現検出手段により検出された数字表現された文字列を含む検索式と一致する文字列を検索対象のテキストの中から検索し、検索結果として出力する検索手段とを具備することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、文字列の表現形式にとらわれず、一つの検索式を使用して複数種の数字表現された文字列を高精度に検索できる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態に係わる文字列検索システムの構成図である。
【図２】図１に示した文字列検索システムの動作を説明するためのフローチャートである。
【図３】表示装置１９に表示される検索画面の一例を示す図である。
【図４】図２におけるステップＳ８での自然言語解析部によるテキストの解析処理の内容を説明するためのフローチャートである。
【図５】図１におけるステップＳ９での検索部によるパターン照合処理内容を説明するためのフローチャートである。
【図６】数字表現照合規則を説明するための図である。
【図７】数字表現照合規則を説明するための図である。
【図８】数字表現照合規則を説明するための図である。
【図９】数字表現照合規則を説明するための図である。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を説明する。図１は本発明の実施の形態に係わる文字列検索を実現するための文字列検索システムの構成図である。図２は、図１に示した文字列検索システムの動作を説明するためのフローチャートである。
【００１４】
図１において、パーソナルコンピュータ１０に実装されたメモリ１１に文字列検索を実現するための検索ソフトウェア１２が記憶されている。通常、検索ソフトウェア１２は磁気ディスク装置２２に記憶されており、実行する際に磁気ディスク装置２２から読み出されメモリ１１に記憶される。検索ソフトウェア１２は、制御部１３、入出力部１４、自然言語解析部１５、検索部１６から構成されている。
【００１５】
制御部１３は検索ソフトウェア１２の全体の処理を制御する。入出力部１４は、制御部１３の制御に基づいて、検索対象の文字列、テキストまたは文書（以下、統一してテキスト呼ぶ）の指定、検索式を入力する機能を実現する。一般に文字列を検索する場合には、表示装置１９に表示されているテキストを対象とする場合、テキストが記録されている電子ファイルを対象とする場合とが考えられる。前者の場合には、明示的な検索対象のテキストの指定は省略する。後者の場合には、電子ファイルのファイル名とそれが記憶されているパス（位置〉の指定をする。ここで、パス（位置）指定は、例えば磁気ディスク装置２２においてファイルが記憶されているフォルダの位置を指定することである。この検索対象のテキストの指定及び検索式の指定は、表示装置１９に表示されたグラフィカル・ユーザー・インタフェースに基づく入力の催促に対応してパーソナルコンピュータ１０の操作者がキーボード２０、マウス２１を使用して入力することにより達成される。自然言語解析部１５は、磁気ディスク装置２２に記憶されている形態素解析辞書２３を参照して、検索対象のテキストの形態素解析を行う機能を持つ。検索部１６は、自然言語解析部１５により形態素解析された検索対象のテキストにおいて、従来技術で実現されているキーワード検索、自然言語検索を行うとともに、本発明の数字表現された文字列の検索を行う。メモリ１１には、ワーキング領域として使用するためのワーキングメモリ１７と、フラグ情報を記憶するための領域であるフラグ設定部１８が設けられている。検索ソフトウェア１２は、その実行時に、処理中のデータをワーキングメモリ１７に一時的に記憶する。また、検索ソフトウェア１２は、その実行時に、処理の状態をフラグ情報としてフラグ設定部１８に記憶する。表示装置１９は、検索ソフトウェア１２の処理状況などを表示するためのものである。キーボード２０とマウス２１は、検索ソフトウェア１２に対して各種情報を入力するためのものである。磁気ディスク装置２２は、形態素解析辞書２３と数字表現照合規則２４とを記憶している。
【００１６】
図２は本発明の実施の形態に係わる文字列検索システムの動作を説明するためのフローチャートである。この実施の形態での検索対象は数字表現された文字（文字列）である。図２において、検索ソフトウェア１２が実行され検索処理が開始されると、ユーザ指定のオプション情報をともなう検索式（検索文字列）を取得する（Ｓ１）。本実施の形態では、検索対象のテキストは表示装置１９に現時点で表示されているテキストであるものとし、その指定は省略する。もし、検索対象のテキストの指定が必要な場合には、このステップＳ１にて指定する。
【００１７】
その後、取得した検索式に基づいて検索対象が数字表現された文字列であるかどうかをチェックする（Ｓ２）。本実施の形態では、数字表現された文字列を検索することを示す特定文字（ワイルドカード文字）「＃」を用いている。よって、ステップＳ２では、まず検索式として指定された検索文字列に「＃」が存在するかどうかを判断することになる。他に数字表現された文字列を検索指示するための検索式の表現として、アラビア数字だけで構成される文字列とアラビア数字を含む文字列と、漢数字で構成される文字列等がある。
【００１８】
アラビア数字だけで構成される文字列の一例として「２４」がある。これは、アラビア数字「２４」を検索することを指定している。アラビア数字を含む文字列の一例として、「２４日」がある。これはアラビア数字「２４」とこれに続く文字「日」とを含む文字列を検索することを指定している。アラビア数字を含む文字列の一例として、「第２」の指定もある。このようにアラビア数字の前後に連続して文字列がついている文字列の場合が該当する。漢数字で構成される文字列の例としては、「二十四」や「三分の二」のような文字列が該当する。ただし、自然言語検索を指定する検索式として「２４日の会議は何か」のような検索式が指定されている場合には、数字表現された文字列の検索には該当しない。
【００１９】
尚、数字表現された文字列としては、アラビア数字、漢数字、ローマ数字、アルファベットによりスペルアウトされた数字表現とがある。漢字を用いる日本語文字、中国語文字、英語などのアルファベット使用言語の文字以外の文字（例：韓国語のハングル文字）を用いた数字表現を含める構成であってもよい。要するに、言語の種類についての制限はない。
【００２０】
ここで、図３に表示装置１９に表示される検索画面の一例を示す。検索式としての検索文字列に「＃時」が指定されている場合を示している。図３の検索画面の一例では、ユーザが数字表現を検索する際にオプションも指定できるようになっている。ユーザ指定のオプションとは、図３の「検索対象に漢数字等を含める」などのオプションである。オプションとしては、漢数字、小数、分数、ローマ数字、スペルアウトした数字が用意されている場合を示している。オプションの選択がない場合にはアラビア数字の検索となる。図３では、アラビア数字に加えオプションとして漢数字が選択された場合を示している。この選択したオプションによって、漢数字、小数、分数、ローマ数字、スペルアウトした数字も検索できるようになる。
【００２１】
ステップＳ２の判定で、検索対象が数字表現された文字列でない場合には、一般的なキーワード検索又は自然言語検索であると判断して、それらに対応した文字列検索処理を行う（Ｓ１３）。一方、ステップＳ２の判定で、検索対象が数字表現された文字列であると判断された場合には、ステップＳ３において、検索式としての検索文字列にワイルドカード文字「＃」が含まれているかどうかを判定する。
【００２２】
ステップＳ３の判定で、検索文字列にワイルドカード文字「＃」が含まれていると判定した場合は、ステップＳ４へ進み、検索式にワイルドカード文字「＃」を含む検索式であることを示すフラグ情報にフラグを設定してメモリ１１のフラグ設定部１８に記憶（ステップＳ４）し、その後ステップＳ７へ処理を進める。
【００２３】
一方、ステップＳ３の判定で、検索文字列にワイルドカード文字「＃」が含まれていないと判定した場合は、ステップＳ５へ進み、自然言語解析部１５は数字表現照合規則２４を参照して、検索式である検索文字列に含まれる数字表現された文字列に数字属性を付与して正規化し、メモリ１１のワーキングメモリ１７に正規化された検索式として記憶する。正規化の詳細は後述する。ここで、数字属性とは、表層文字に付与される一種の属性である。数字の種類、表現形式によって分別された属性の一例を表１に示す。
【表１】
2010186486.tif 000003
【００２４】
本実施の形態では、正規化においては、数字の表現形式にかかわらず、同一の数字を表す表現は同定できるように、当該数字表現をアラビア数字への変換を行い、アラビア数字と属性とを組み合わせた中間表現を用いる。様々な数字表現と正規化後の中間表現の一例を表２に示す。
【表２】
2010186486.tif 000004
【００２５】
例えば、「３分の２」のように、表現に漢字を使用したものでも、数字部分に着目して、「ａｆ（２／３）」と正規化する。また、「５億」のように、アラビア数字と漢数字とが混在している場合、実運用上整数に限った現象なので属性は「ａｋｉ」とし、ａｋｉ「５００００００００」と正規化する。「Ｐａｒｔ Ｉ」のように、英文中の半角文字を用いてローマ数字を表現する場合、「Ｉ」にローマ数字属性を付与し、「ｒｉ（１）」と正規化する。表２では、ローマ数字の桁数の多いものや小数、分数には対応しないものを示しているが、対応するように構成することも可能である。
【００２６】
よって、例えば検索式である検索文字列がアラビア数字「２４」や「２４日」のように「＃」が含まれない場合には、ステップＳ５において、アラビア数字「２４」が「ａｉ（２４）」として中間表現に正規化される。そして、正規化の結果として、検索文字列がアラビア数字「２４」場合には、「ａｉ（２４）」がメモリ１１のワーキングメモリ１７に正規化された検索式として記憶される。同様に検索文字列が「２４日」の場合には、正規化の結果として「ａｉ（２４）」と「日」とから構成される文字列がメモリ１１のワーキングメモリ１７に検索式として記憶される。
【００２７】
次にステップＳ６において、検索式である検索文字列に含まれる数字表現された文字列をワイルドカード文字「＃」に置き換える。即ち、検索文字列がアラビア数字「２４」や「２４日」のような場合には、それぞれ検索文字列を「＃」や「＃日」と置き換える。
【００２８】
続くステップＳ７では、検索対象のテキストが解析済みかどうかをチェックし（Ｓ７）、解析済みである場合には検索部１３によって解析した文と検索式である検索文字列とパターン照合処理を行う（Ｓ９）。解析済みでない場合は自然言語解析部１５によって文の解析処理を行い（Ｓ８）、解析した文と検索式である検索文字列のパターン照合処理を行う（Ｓ９）。
【００２９】
図４は図２におけるステップＳ８での自然言語解析部１５による検索対象のテキストの解析処理の内容を説明するためのフローチャートである。まず、検索対象のテキストについて形態素解析辞書２３を用いて形態素解析を行う（Ｓ３１）。形態素解析辞書２３は様々な従来の自然言語処理システムで実現されているものを使用すればよい。そして、数字表現照合規則２４を用いて数字表現の判定を行い（Ｓ３２）、形態素解析後の形態素が数字表現であるかどうかを判定する（Ｓ３３）。
【００３０】
ここで、数字表現照合規則２４は、判定対象のテキストが数字表現されている否かを判定するための数字表現照合のための規則と、判定対象のテキストが数字表現されていると判定された場合に、その数字表現された文字列を中間表現に変換するためのデータとから構成されている。この中間表現に変換することを正規化と呼ぶ。この実施形態では正規化された文字列をアラビア数字で表現する。
【００３１】
判定対象のテキストが数字表現されている否かを判定するための数字表現照合としては、例えば、以下のような文字列との照合をすることになる。
【００３２】
（１）アラビア数字は「０」から「９」が複数回出現する文字列であり、その文字列の間に、「，」、「、」、「．」、「／」が出現可能な文字列である。「，」は数字３桁おきにのみ生起する。
【００３３】
（２）漢数字は[零，一，二，三，……，万，億]の文字が複数回出現する文字列であり、桁を表す「十」、「百」、「千」、「万」、「億」などの文字は所定の規則に基づき生起する。
【００３４】
（３）漢数字において、「億」の前には必ず[一，二，三，……，千]または［０−９］の文字が複数回出現する場合のみ漢数字である。
【００３５】
次に、ステップＳ３３の判定で、形態素が数字表現と判定された場合、数字属性の付与、正規化を行う（Ｓ３４）。
【００３６】
次に、文の終わりであるかどうかを判定し（Ｓ３５）、文の終わりでない場合には、次の形態素に移り（Ｓ３６）、ステップＳ３２の処理に戻る。同様に、ステップＳ３３の判定で形態素が数字でない場合も、文の終わりであるかどうかを判定し（Ｓ３５）、文の終わりでない場合には、次の形態素に移り（Ｓ３６）、ステップＳ３２の処理に戻る。このように、ステップＳ３２〜ステップＳ３５の処理は、文の終わりまで繰り返され、数字表現にはすべて数字属性が付与され正規表現される。
【００３７】
次に、各種の例文を参照して形態素解析処理の前後での構造の変化を示す。
【００３８】
（例文１）
解析前：私は二十四日に四日市に行きました。
【００３９】
形態素解析後：私／は／二十四／日／に／四日市／市／に／行きました。
【００４０】
数字属性付与・正規化後：私／は／ｋｉ（２４）／日／に／四日市／市／に／行きました。
【００４１】
このように、漢数字の「二十四」は、「２４」として正規化され、「漢数字・整数」を表す属性「ｋｉ」が付与される。一方、第２の実施の形態の形態素解析辞書に含まれる固有名詞語彙情報の参照により、「四日市」は地名だと判定され、「四日市」の「四」は数字表現でないと判断される。
【００４２】
（例文２） 
解析前：I am twenty-four years old．
形態素解析後：I／am／twenty-four／years／old．
数字属性付与・正規化後：I／am／ｓｉ（２４）／years／old．
（例文３） 
解析前：They sleep more than two-thirds of the day．
形態素解析後：They／sleep／more／than／two-thirds／of／the day．
数字属性付与・正規化後：They／sleep／more／than／sf(2/3)／of／the day．
（例文４） 
解析前：三分の二の会員が賛成しています。
【００４３】
形態素解析後：三分の二／の／会員が／賛成しています。
【００４４】
数字属性付与・正規化後： kf(2/3)／の／会員が／賛成しています。
【００４５】
（例文５） 
解析前：ドル円の相場が116.76です。
【００４６】
形態素解析後：ドル円／の／相場が／116.76／です。
【００４７】
数字属性付与・正規化後：ドル円／の／相場が／ad(116.76)／です。
【００４８】
このように検索対象のテキストの解析処理が終了すると、次にステップＳ９において、検索対象のテキストにおいて解析された後の各形態素と検索式である検索文字列とのパターン照合処理を行う。図５はステップＳ９での検索部１３によるパターン照合処理内容を説明するためのフローチャートである。
【００４９】
まず、検索対象のテキストの文字列走査を開始し（Ｓ４１）、文の終わりかどうかをチェックする（Ｓ４２）。文の終わりでない場合、ステップＳ３４において数字属性が付与され、正規化された形態素と検索式である検索文字列とのパターン照合をする（Ｓ４３）。
【００５０】
照合が一致した場合は、一致した文字列を検索結果としてメモリ１１のワーキングメモリ１７に格納し（Ｓ４４）、次いで、一致の照合対象の文字列を次の文字列（形態素）に移し（Ｓ４５）、ステップＳ４１に戻る。ステップＳ４３の判定で一致しない場合は、ステップＳ４５に移りステップＳ４１に戻って再度パターン照合を行う。この処理は文の終わりまで繰り返される。
【００５１】
以下にパターン照合の具体例を幾つか説明する。
【００５２】
（例１）
検索文字列：＃日
検索対象文：私は二十四日に四日市に行きました
オプション：なし
例１では、オプションが「なし」であるので、数字表現はアラビア数字の検索という条件となる。この条件で照合すると何も一致しない。
【００５３】
（例２）
検索文字列：＃日
検索対象文：私は二十四日に四日市に行きました
オプション：漢数字を含む
例２では、オプションが「漢数字を含む」であるので、数字表現はアラビア数字及び漢数字の検索という条件となる。この条件で照合すると「二十四日」が一致し検索結果となる。
【００５４】
（例３）
検索文字列：＃
検索対象文：Part I How to Install TTP System．
オプション：ローマ数字を含む
例３では、オプションが「ローマ数字を含む」であるので、数字表現はアラビア数字及びローマ数字の検索という条件となる。この条件で照合すると「Ｉ」が一致し検索結果となる。
【００５５】
（例４）
検索文字列：＃
検索対象文：売り上げが５億６千万円です。
【００５６】
オプション：漢数字を含む
例４では、オプションが「漢数字を含む」であるので、数字表現はアラビア数字及び漢数字の検索という条件となる。この条件で照合すると「５億６千万」が一致し検索結果となる。
【００５７】
（例５）
検索文字列：＃
検索対象文：生産高は昨年の1.5倍になった
オプション：小数を含む
例５では、オプションが「小数を含む」であるので、数字表現はアラビア数字及び小数の検索という条件となる。この条件で照合すると「１．５」 が一致し検索結果となる。
【００５８】
（例６）
検索文字列：＃
検索対象文：私は二十四日に四日市に行きました
オプション：漢数字を含む
例６では、オプションが「漢数字を含む」であるので、数字表現はアラビア数字及び漢数字の検索という条件となる。この条件で照合すると「二十四」が一致し検索結果となる。「四日市」の「四」は数字表現でないと判断される。
【００５９】
（例７）
検索文字列：２４
検索対象文：私は十四日と二十四日に四日市に行きました
オプション：漢数字を含む
例７では、オプションが「漢数字を含む」であるので、数字表現はアラビア数字及び漢数字の検索という条件となる。この条件で検索を行うと「十四」と「二十四」が一致し検索結果となる。「四日市」の「四」は数字表現でないと判断される。
【００６０】
以上の説明のように図２のフローチャートのＳ９でのパターン照合処理が終了すると、続いてステップＳ１０において、メモリ１１のフラグ設定部１８を参照して、フラグ情報が設定されているかどうかを判定する。
【００６１】
ステップＳ１０において、フラグ情報が設定されていると判定すると、ステップＳ１２において、上記ステップＳ４４において、検索結果としてメモリ１１のワーキングメモリ１７に格納した文字列を最終的な検索結果として出力し、検索処理を終了する。一方、ステップＳ１０において、フラグ情報が設定されていないと判定すると、ステップＳ１１へ処理を進める。
【００６２】
ステップＳ１１では、上記ステップＳ４４において、検索結果としてワーキングメモリ１７に格納された文字列の中から最終的な検索結果を抽出するためのフィルタリング処理をする。このステップＳ３の判定の結果、ステップＳ５、ステップＳ６、ステップＳ７、ステップＳ９と処理がされた場合には、ステップＳ６で数字表現を「＃」に置き換えた結果として、ステップＳ９で照合がされるため、照合結果が最終的な検索結果ではないため、フィルタリング処理が必要となる。
【００６３】
上記（例７）を再度参照されたい。この場合には、検索文字列がアラビア数字「２４」のため、ステップＳ６で数字表現を「＃」に置き換えた結果として、ステップＳ９で照合がされる。この結果、ワーキングメモリ１７には、検索結果「十四」と「二十四」が記憶されている。そこで、フィルタリング処理として、ステップＳ５においてワーキングメモリ１７に記憶された正規化された数字表現「ａｉ（２４）」とワーキングメモリ１７に検索結果として記憶された「十四」と「二十四」とを比較照合する。この比較照合の結果、一致する「二十四」を最終結果として出力（ステップＳ１２）し、検索処理を終了する。
【００６４】
本発明の実施の形態によれば、数字の桁数、数字の文字種、表す数字の種類を意識せずに、一つの検索式を使用して数字表現を高精度に検索できる。すなわち、種々な数字の違いを意識せず、複雑な検索式を記述する必要がなく、アラビア数字、漢数字、ローマ数字、スペルアウトした数字、小数、分数などを共通の検索式で検索できる。また、「九州」の「九」や「億万長者」の「億万」など、本来数字表現ではない文字列を検索結果とせず、高い検索精度を実現できる。
【００６５】
数字を表するワイルドカード文字「＃」を用いることで、複数の文字種の数字表現を共通の検索式で検索できる。即ち、例えば「＃」というワイルドカード文字を指定するだけで、１桁の数字だけでなく、複数桁の数字表現も検索できる。また、同様にアラビア数字以外の複数の文字種の数字表現を共通の検索式で検索できる。更に、「５億６千」や「５千３００」などの複数文字種の混在からなる数字表現も、「５３００」などと同じ検索式で検索できる。また、小数や分数を整数と共通の検索式で検索できる。「２４」で「twenty-four」が検索できる。どの種類の数字表現を検索するかをユーザが指定できる。
【００６６】
最後に、数式表現照合規則２４について説明する。図６、図７、図８、図９に数字表現照合規則の一例を分割図示する。
【００６７】
この数字表現照合規則は、判定対象の文字列（以下、数字表現候補文字列と呼ぶ）が数字表現されている否かを判定するための数字表現照合のための規則と、数字表現候補文字列が数字表現されていると判定された場合に、その数字表現候補文字列を中間表現に変換するためのデータとから構成されている。以下、この中間表現に変換することを正規化と呼ぶ。この実施形態では正規化された文字列をアラビア数字で表現する。この数字表現照合規則を参照することにより、数字表現候補文字列が数字表現されているか否かを判定し、数字表現されている場合には数字表現候補文字列を正規化する。
【００６８】
この実施形態における数字表現照合規則では、数字表現されている文字列としてアラビア数字、漢数字（アラビア数字が混在する「５億６０００万」のような表現も含む）、アルファベットを用いてスペルアウトされた数字表現（例えば、数字の「２３４」を「 two hundred thirty-four 」とアルファベットを用いてスペルアウトされた数字表現）を照合判定の対象とする。照合判定の対象は、これらに限定されず他の数字表現でも良い。
【００６９】
はじめに、この規則で使用されている記号の説明をする。「Ｓ」はこの規則の照合を始める位置を示している。「＄」で始まる文字列は変数を表している。「”」と「”」で囲まれた文字列は数字表現候補文字列と照合するための文字列を定義している。丸括弧「（」と「）」で囲まれた項はオプション項目であることを表している。「＊」の付けられた項は、この項が任意の個数連続することを許容していることを定義している。尚、説明を容易にするため、便宜上、左端に行番号を付与している。また、「／＊」と「＊／」で囲まれた文字列は、コメントであり数字表現照合規則ではない。
【００７０】
００３行，００５行，００７行だけが文字「Ｓ」で始まっており、この３つの行位置から照合を始めることが定義されている。００３行から始まる規則は、アラビア数字（自然数と小数）を照合するためのものである。００５行から始まる規則は、漢数字を照合するためのものである。００７行から始まる規則は、英語（アルファベット）を用いてスペルアウトした数字を照合するためのものである。
【００７１】
まず、００３行から照合を開始する。この行では、「S=($KIGO),$ALABIC」と規則が定義されている。この意味は、数字表現候補文字列を「($KIGO),$ALABIC」と照合することを定義している。この定義では、先頭が変数「($KIGO)」で定義された文字列で始まり、その後に続く変数「$ALABIC」で定義された文字列が照合対象の文字列とされている。尚、変数「$KIGO」は、丸括弧「（」と「）」で囲まれているためオプション項目である。即ち、数字表現候補文字列の先頭が必ず、変数「$KIGO」で定義された文字列でるある必要はない。変数「$KIGO」は、００８行から０１０行に定義されている。これらの行において、照合文字列として記号「＋」、「一」、「±」を定義している。
【００７２】
変数「$ALABIC」は、０１３行，０１５行，０１７行に定義されている。０１３行では、照合する文字列として整数と小数を定義している。０１５行では、照合する文字列として先頭が数字のゼロで始まる小数を定義している。０１７行では、照合する文字列として分数を定義している。
【００７３】
０１３行には、「$ALABIC=$ALABIC_T, $ALABIC_E,$ALABIC_DECIMAL」と定義されている。この定義の意味は、変数「$ALABIC」は、変数「$ALABIC_T」、変数「$ALABIC_E」、変数「$ALABIC_DECIMAL」の３つの変数で定義されている文字列がその順番に並んでいる文字列を定義している。
【００７４】
変数「$ALABIC_T」は、アラビア数字の先頭文字列のことであり、０１９行から定義されている。変数「$ALABIC_E」は、３桁の整数倍の桁の数字文字列のことであり、０２３行から定義されている。変数「$ALABIC_DECIMAL」は、小数点で始まる小数文字列のことであり、０２８行から定義されている。変数「$ALABIC_T」は、０２１行において「”［１−９］”」と定義されている。この意味は数字「１」から「９」までのいずれかの任意の数字で構成される１桁の数字を定義している。
【００７５】
０１９行では、数字「１」から「９」までのいずれかの任意の数字で構成される３桁の数字を定義している。同様に０２０行では、２桁の数字を定義している。
【００７６】
変数「$ALABIC_E」は、０２３行と０２４行で定義されている。０２４行において変数「$ALABIC_E」は、数字「０」から「９」までの任意の数字で構成される任意桁の数字として定義されている。０２３行において変数「$ALABIC_E」は、変数「$ALABIC_E1」と定義されている。変数「$ALABIC_E1」は０２５行において、「（”，”，$ALABIC_BASE，$ALABIC_E1」と定義されている。ここでは、変数「$ALABIC_E1」が左辺と右辺の両方に記述されているため、再帰呼び出しをしている。
【００７７】
変数「$ALABIC_BASE」は０２６行において、数字「０」から「９」までの任意の数字で構成される３桁の数字として定義されている。よって、０２５行で定義されている変数「$ALABIC_E1」の意味は、先頭文字がカンマ「，」で始まり、その後に３桁の数字を１単位とする任意の個数の単位から構成される数字を定義している。このような定義をするのは、数字が３桁毎にカンマで区切られて表現する場合があるからである。
【００７８】
変数「$ALABIC_DECIMAL」は０２８行において、「”．”，”［１−９］”，（”［１−９］”＊）」と定義されている。この定義の意味は、先頭文字が小数点「．」で始まり、その後に数字「０」から「９」までの任意の数字で構成される少なくとも１桁の数字として定義されている。桁数は１桁以上であれば、任意桁でよい。
【００７９】
０１５行には、「$ALABIC=”０”，”．”，$ALABIC_DECIMAL」と定義されている。この定義の意味は、変数「$ALABIC」は先頭がアラビア数字の「０」で始まり、その後に小数点「．」が続き、更にその後に変数「$ALABIC_DECIMAL」が続く文字列と照合することを定義している。
【００８０】
０１７行「$ALABIC=$ALABIC_T，$ALABIC_E，”／”，$ALABIC_T，$ALABIC_E」と定義されている。この定義の意味は、変数「$ALABIC」は先頭から順に、変数「$ALABIC_T」、変数「$ALABIC_E」、文字「／」、変数「$ALABIC_T」、変数「$ALABIC_E」が続く文字列と照合することを定義している。
【００８１】
例えば、数字表現候補文字列がアラビア数字の「２４５」の場合には、０１９行、０１３行の順に参照した００３行で照合が一致する。この場合、数字表現照合規則を参照した結果として、正規化の結果である「２４５」が得られる。例えば、数字表現候補文字列がアラビア数字の「３，４５６」の場合には、０２６行、０２５行、０２３行、０２１行、０１３行の順に参照した００３行で照合が一致する。この場合、数字表現照合規則を参照した結果として、正規化の結果である「３，４５６」が得られる。例えば、数字表現候補文字列がアラビア数字の「５．２３４」の場合には、０２１行、０２５行、０２３行、０２８行、０１３行の順に参照した００３行で照合が一致する。この場合、数字表現照合規則を参照した結果として、正規化の結果である「５．２３４」が得られる。
【００８２】
００３行での照合が一致しなかった場合には、次に００５行での照合を行う。００５行では、「S=$KANJI」と規則が定義されている。この意味は、数字表現候補文字列を「S=$KANJI」と照合することを定義している。変数「$KANJI」は、０３０行から０３２行に定義されている。０３０行には、 変数「$KANJI１」と照合することを定義している。同様に０３１行と０３２行では、それぞれ変数「$KANJI２」、変数「$KANJI３」と照合することを定義している。
【００８３】
変数「$KANJI１」は数字表現候補文字列を自然数の漢数字と照合するために、０３５行と０３６行で定義されている。０３５行では、「$KANJI=（$KAN_CHO）＜1＞，（$KAN_OKU）＜２＞，（$KAN_MAN）＜３＞，$KAN_BASE＜４＞」と定義されている。
【００８４】
初めに変数「$KAN_CHO」について説明する。変数「$KAN_CHO」は、０４９行と０５０行で定義されている。０４９行では、「$KAN_CHO=$KAN_BASE＜１＞，”兆”」と定義されている。変数「$KAN_CHO」は、数字表現候補文字列と照合するための漢数字「兆」を０４９行で定義している。そして、０５０行では、数字表現候補文字列に漢数字「兆」が存在して照合が一致した場合に漢数字「兆」を中間表現であるアラビア数字に変換するためのデータが定義されている。ここで更に変数「$KAN_BASE」について説明する。変数「$KAN_BASE」は、０６３行から０６６行にて４種類の定義がされている。
【００８５】
０６３行から０６６行において、変数「$KAN_BASE」として、変数「$KAN_BASE4」、変数「$KAN_BASE3」、変数「$KAN_BASE2」、変数「$KAN_BASE1」が定義されている。
【００８６】
変数「$KAN_BASE4」は、数字表現候補文字列と照合するための４桁の漢数字を表しており、その定義は０６８行から０８３行にされている。変数「$KAN_BASE3」は、数字表現候補文字列と照合するための３桁の漢数字を表しており、その定義は０８５行から０９２行にされている。変数「$KAN_BASE2」は、数字表現候補文字列と照合するための２桁の漢数字を表しており、その定義は０９４行から０９７行にされている。変数「$KAN_BASE1」は、数字表現候補文字列と照合するための１桁の漢数字を表しており、その定義は０９９行から１００行にされている。
【００８７】
これら変数「$KAN_BASE4」、変数「$KAN_BASE3」、変数「$KAN_BASE2」、変数「$KAN_BASE1」を説明するために、これら変数の定義において出現する変数「$KAN_SEN1」、変数「$KAN_HYAKU」、変数「$KAN_JU」を説明する。
【００８８】
変数「$KAN_SEN1」は、数字表現候補文字列に漢数字「千」が存在して照合が一致した場合に漢数字「千」を中間表現であるアラビア数字に変換するためのデータが定義されている。
【００８９】
変数「$KAN_HYAKU」は、数字表現候補文字列に漢数字「百」が存在して照合が一致した場合に漢数字「百」を中間表現であるアラビア数字に変換するためのデータが定義されている。
【００９０】
変数「$KAN_JU」は、数字表現候補文字列に漢数字「十」が存在して照合が一致した場合に漢数字「十」を中間表現であるアラビア数字に変換するためのデータが定義されている。
【００９１】
１０５行と１０６行において変数「$KAN_JU」が定義されている。１０６行では、数字表現候補文字列として数字「１０」を表現する漢数字「十」が存在して照合が一致した場合に漢数字「十」を中間表現であるアラビア数字に変換するためのデータが定義されている。即ち、１０６行には「$KAN_JU=”十”＝１」と定義されている。この定義の意味は、漢数字「十」を数字表現候補文字列と照合し、照合が一致した場合には変数「$KAN_JU」に数値「１」を代入することである。
【００９２】
１０６行において「”十”」は、数字表現候補文字列と照合するための漢数字を定義しており、「１」は照合の結果として変数「$KAN_JU」に代入する中間表現としてのアラビア数字の数値「１」を定義している。
【００９３】
一方、１０５行では、数字表現候補文字列として数字「２０」、「３０」、「４０」、「５０」、「６０」、「７０」、「８０」、「９０」を表現する漢数字「二十」、「三十」、「四十」、「五十」、「六十」、「七十」、「八十」、「九十」と照合することを定義している。
【００９４】
１０５行において、「$KAN_JU=”［二−九］”＜３＞，”十”＝＜３＞」と定義されている。ここで「＜３＞」は、ローカル変数を定義している。「＜」と「＞」とで括った変数は、ローカル変数を意味する。この場合「＜３＞」とは、番号３番のローカル変数を意味する。
【００９５】
まず、「”［二−九］”＜３＞，”十”」の意味を説明する。この定義の意味は数字表現候補文字列と照合するための漢数字として先頭に漢数字の「二」から「九」までのいずれかの漢数字が出現し、それに続いて漢数字「十」が続く９種類の漢数字を定義している。即ち、「二十」、「三十」、「四十」、「五十」、「六十」、「七十」、「八十」、「九十」を定義している。そして、更に照合の結果をローカル変数＜３＞に代入することを定義している。数字表現候補文字列として「八十」が存在した場合には、照合が一致するため、ローカル変数＜３＞にアラビア数字「８」が代入される。その結果として変数「$KAN_JU」にアラビア数字「８」が代入されることになる。即ち、１０５行を参照することにより、数字表現候補文字列として、それぞれ「二十」、「三十」、「四十」、「五十」、「六十」、「七十」、「八十」、「九十」が存在した場合には、照合が一致するため、ローカル変数＜３＞に、それぞれアラビア数字「２」、「３」、「４」、「５」、「６」、「７」、「８」、「９」が代入される。その結果として変数「$KAN_JU」に、それぞれアラビア数字「２」、「３」、「４」、「５」、「６」、「７」、「８」、「９」が代入されることになる。
【００９６】
このような１０５行と１０６行に関する説明の内容は、変数「$KAN_SEN1」（１０１行と１０２行で定義）と、変数「$KAN_HYAKU」（１０３行と１０４行で定義）にも適用できる。
【００９７】
次に、０４９行から０５４行の定義を説明する。これらの行には、数字表現候補文字列と照合するための漢数字として「兆」、「億」、「万」、「千」が定義されているとともに、これらの漢数字と照合が一致した場合に、その一致した漢数字を中間表現であるアラビア数字に変換するためのデータが定義されている。これらの行で定義された内容で照合対象とする数字表現は例えば「五億」というように数値部分が漢数字で表現された数字表現である。
【００９８】
代表例の一つとして０４９行と０５０行における定義の意味を説明する。０４９行において、「$KAN_CHO＝$KAN_BASE＜１＞，”兆”」と定義れている。この行では、数字表現候補文字列と照合するための漢数字を定義している。一方、０５０行には「＝＜１＞００００００００００００」と定義されている。この行では０４９行での定義された漢数字と照合が一致した場合に、その漢数字で表現している数字を中間表現であるアラビア数字に変換するための定義がされている。
【００９９】
０４９行において、「$KAN_BASE＜１＞，”兆”」と定義されている。この意味は、先頭の文字として変数「$KAN_BASE」で定義された文字に続いて、漢数字「兆」が出現する漢数字の文字列を定義している。そして、もし照合が一致した場合には、その時の変数「$KAN_BASE」に代入されている中間表現であるアラビア数字をローカル変数＜１＞に代入することを意味している。
【０１００】
その結果として、もし、ローカル変数＜１＞に中間表現である数字「４」が代入されている場合には、０５０行で定義された結果として、変数「$KAN_CHO」には、中間表現であるアラビア数字「４００００００００００００」代入される。
【０１０１】
次に、０５５行から０６２行の定義を説明する。これらの行には、数字表現候補文字列と照合するための漢数字として「兆」、「億」、「万」、「千」が定義されているとともに、これらの漢数字と照合が一致した場合に、その一致した漢数字を中間表現であるアラビア数字に変換するためのデータが定義されている。
【０１０２】
これらの行で定義された内容で照合対象とする数字表現は「５億」というように数値部分がアラビア数字で表現された数字表現である。これら各行の定義の意味は、既に説明した内容と同様であるため、詳細説明を省略する。
【０１０３】
ここで、０３６行、０４０行、０４３行の意味を説明する。これらの行では、ローカル変数の加算を定義している。即ち、例えば、０４３行において、ローカル変数＜４＞にアラビア数字「３０００」が代入されており、ローカル変数＜３＞にアラビア数字「５００」が代入されている場合には、変数「$KANSUJI2」にアラビア数字「３５００」が代入されることになる。
【０１０４】
以上の説明で００１行から１０５行までの説明を終了する。詳細な説明をしていない部分は、これまでの説明と同等の部分であり説明を省略する。また、１０８行以降１８１行までの定義は、数字表現候補文字列が英語でスペルアウトされた数字表現と照合するための規則を定義している。定義の意味の詳細は省略するが、定義の意味はこれまでの説明と同等である。
【符号の説明】
【０１０５】
１２…検索ソフトウェア、１３…検索部、１４…入出力部、１５…自然言語解析部、１６…検索部、２３…形態素解析辞書、２４…数字表現照合規則
【図１】
2010186486.tif 000005
【図２】
2010186486.tif 000006
【図３】
2010186486.tif 000007
【図４】
2010186486.tif 000008
【図５】
2010186486.tif 000009
【図６】
2010186486.tif 000010
【図７】
2010186486.tif 000011
【図８】
2010186486.tif 000012
【図９】
2010186486.tif 000013
【手続補正書】
【提出日】平成22年4月19日(2010.4.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
テキストの中から数字表現された文字列を含む文字列を検索するための文字列検索装置であって、
１または複数種の数字表現された文字を検索することを指定するためのワイルドカード文字を含む数字表現された文字を検索するための検索式を入力する検索式入力手段と、
検索対象のテキストの中から数字表現された文字列を検出する数字表現検出手段と、
前記検索式入力手段により入力された前記検索式に基づいて、前記数字表現検出手段により検出された数字表現された文字列を含む前記検索式と一致する文字列を前記検索対象のテキストの中から検索し、検索結果として出力する検索手段とを具備することを特徴とする文字列検索装置。
【請求項２】
テキストの中から数字表現された文字列を含む文字列を検索するための文字列検索装置であって、
１または複数種の数字表現された文字を検索することを指定するためのワイルドカード文字を含む数字表現された文字列を検索するための検索式と、複数種の数字表現の中からどの種類の数字表現された文字列を検索対象とするかの指定情報とを入力する検索式入力手段と、
検索対象のテキストの中から複数種の数字表現された文字列を検出し、この検出した複数種の数字表現された文字列を統一された数字表現に変換する数字表現検出手段と、
前記検索式入力手段により入力された前記検索式に基づいて、前記指定情報で指定された種類の数字表現された文字列を含む前記検索式と一致する文字列を前記検索対象のテキストの中から検索し検索結果として出力する検索手段とを具備することを特徴とする文字列検索装置。
【請求項３】
前記数字表現検出手段は、検索対象のテキストから抽出した元となる数字表現された文字列を特定種類の数字表現された数字文字列と、前記元となる数字表現された文字列における数字表現の種類を特定する属性情報とから構成される統一された数字表現に変換することを特徴とする請求項１または２記載の文字列検索装置。
【請求項４】
テキストの中から数字表現された文字列を含む文字列を検索するための文字列検索方法であって、
１または複数種の数字表現された文字を検索することを指定するためのワイルドカード文字を含む数字表現された文字を検索するための検索式を入力する検索式入力ステップと、
検索対象のテキストの中から数字表現された文字列を検出する数字表現検出ステップと、
前記検索式入力ステップで入力された前記検索式に基づいて、前記数字表現検出ステップで検出された数字表現された文字列を含む前記検索式と一致する文字列を前記検索対象のテキストの中から検索し、検索結果として出力する検索ステップとを具備することを特徴とする文字列検索方法。
【請求項５】
テキストの中から数字表現された文字列を含む文字列を検索するための文字列検索方法であって、
１または複数種の数字表現された文字を検索することを指定するためのワイルドカード文字を含む数字表現された文字列を検索するための検索式と、複数種の数字表現の中からどの種類の数字表現された文字列を検索対象とするかの指定情報とを入力する検索式入力ステップと、
検索対象のテキストの中から複数種の数字表現された文字列を検出し、この検出した複数種の数字表現された文字列を統一された数字表現に変換する数字表現検出ステップと、
前記検索式入力ステップで入力された前記検索式に基づいて、前記指定情報で指定された種類の数字表現された文字列を含む前記検索式と一致する文字列を前記検索対象のテキストの中から検索し検索結果として出力する検索ステップとを具備することを特徴とする文字列検索方法。
【請求項６】
前記数字表現検出ステップは、検索対象のテキストから抽出した元となる数字表現された文字列を特定種類の数字表現された数字文字列と、前記元となる数字表現された文字列における数字表現の種類を特定する属性情報とから構成される統一された数字表現に変換することを特徴とする請求項４または５記載の文字列検索方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００４
【補正方法】変更
【補正の内容】
【０００４】
【特許文献１】特開平２−６４７７１号公報
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
本発明は、テキストの中から数字表現された文字列を含む文字列を検索するための文字列検索装置であって、１または複数種の数字表現された文字を検索することを指定するためのワイルドカード文字を含む数字表現された文字を検索するための検索式を入力する検索式入力手段と、検索対象のテキストの中から数字表現された文字列を検出する数字表現検出手段と、前記検索式入力手段により入力された前記検索式に基づいて、前記数字表現検出手段により検出された数字表現された文字列を含む前記検索式と一致する文字列を前記検索対象のテキストの中から検索し、検索結果として出力する検索手段とを具備することを特徴とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
（例文１）
解析前：私は二十四日に四日市市に行きました。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４１
【補正方法】変更
【補正の内容】
【００４１】
このように、漢数字の「二十四」は、「２４」として正規化され、「漢数字・整数」を表す属性「ｋｉ」が付与される。一方、形態素解析辞書２３に含まれる固有名詞語彙情報の参照により、「四日市」は地名だと判定され、「四日市」の「四」は数字表現でないと判断される。