(57)【要約】【課題】漢字および平仮名を含む単語の異表記語を生成することが可能な技術を提供する。【解決手段】指定された単語の異表記語を生成する異表記語生成プログラムにおいて、複数の異表記語ペアから複数の表記揺れ文字列ペアを生成し、指定された単語に含まれる文字列を上記表記揺れ文字列ペアを用いて置換し、指定された単語の異表記語を生成する。【選択図】図２
2006107070.tif 000002
【特許請求の範囲】
【請求項１】
記憶手段から複数の単語の組合せである単語ペアを読み出すステップと、
上記単語ペアから部分文字列対応データを生成するステップと、
上記部分文字列対応データから表記揺れ文字列ペアデータを生成するステップと、
上記表記揺れ文字列ペアデータを記憶手段に書き出すステップとを有する表記揺れ文字列ペアデータの生成方法をコンピュータに実現させるプログラム。
【請求項２】
入力手段から注目単語の入力を受けるステップと、
上記表記揺れ文字列ペアデータを用いて上記注目単語の異表記語を生成するステップとを有する異表記語の生成方法をコンピュータに実現させるプログラム。
【請求項３】
複数の単語ペアを格納する記憶装置と、演算部とを有する表記揺れ文字列ペアデータ生成装置であって、
上記演算部は、上記記憶装置から単語ペアを読み出し、該単語ペアから部分文字列対応データを生成し、該部分文字列対応データから表記揺れ文字列ペアデータを生成することを特徴とする表記揺れ文字列ペアデータ生成装置。
【請求項４】
複数の単語ペアから生成された表記揺れ文字列ペアデータを格納する記憶装置と、演算部と、表示装置と、入力装置とを有する異表記語生成装置であって、
上記演算部は、上記表記揺れ文字列ペアデータを用いて上記入力装置から入力された単語に対する異表記語を生成することを特徴とする異表記語生成装置。
【請求項５】
入力手段から単語ペアの入力を受けるステップと、
上記表記揺れ文字列ペアデータを記憶手段から読み出すステップと、
上記単語ペアから部分文字列対応を生成するステップと、
上記表記揺れ文字列ペアデータの照合により部分文字列対応が表記揺れかどうかを判定するステップとを有する異表記語の判定方法をコンピュータに実現させるプログラム。
【請求項６】
複数の単語ペアから生成された表記揺れ文字列ペアデータを格納する記憶装置と、演算部と、入力装置とを有する異表記語生成装置であって、
上記演算部は、上記入力装置から入力された単語ペアから部分文字列対応を生成し、該部分文字列対応で異なる文字列の対応である部分文字列対応を上記表記揺れ文字列ペアデータと照合し、上記単語の組が異表記語であるかどうかを判定することを特徴とする異表記語判定装置。
【請求項７】
部分文字列対応の抽出は、文字列間の文字を対応付けるステップを有し、上記文字列間の文字を対応付けるステップは、文字の特徴別に異なる重みを用いて文字列間の文字を対応付けることを特徴とする請求項１記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、異表記語の生成あるいは異表記語の判定に用いる表記揺れ文字列ペアを生成するプログラムおよび装置に関する。
【背景技術】
【０００２】
文書検索などのテキスト処理システムでは、同じ単語が異なる単語として扱われてしまう異表記語の存在が問題となっている。例えば、片仮名表記や漢字表記の揺れ、漢字の送り仮名の違い、仮名と英字の違い、省略語などが異表記語として挙げられる。文書検索においては、異表記語の存在が検索漏れという問題を生じる。異表記語を同じ単語として扱うための方法として、異表記語の辞書を人手で作成することが考えられるが、単語は母集団が未知で異なり数が多いため、一部の単語に対する異表記語のみにしか対応ができないという問題と、人手による作業を多く必要とするため辞書の作成にコストを要するという問題がある。
【０００３】
上記問題を解決するための手段として、異表記展開ルールを作成し異表記語を生成する技術が登場した。例えば、特開平６−４４２９５（特許文献１）では、一般性の高い異表記展開ルールを作成し、一般性の低い表記揺れは、辞書の登録語に対して個々に記述し、双方を用いることによって片仮名語の異表記語を生成するという方法を用いている。また、異表記展開ルールを用いない方式では、指定した語に対する異表記語候補をコーパスから抽出し、異表記語を辞書に登録するという技術が登場した。例えば、特開２００４−１１０６３３（特許文献２）では、異表記語を抽出しようとする単語の関連語を単語の共起情報に基づいて抽出し、異表記語を抽出しようとする単語と表記の類似度が高い関連語を異表記語候補として生成し、人手で異表記語と判断された語を辞書に登録するという方法を用いている。
【０００４】
【特許文献１】特開平６−４４２９５号公報
【０００５】
【特許文献２】特開２００４−１１０６３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記従来の技術は、異表記展開ルールを用いて異表記語を生成する場合には、表記展開ルールを人手で記述することには限界があるため、片仮名語の異表記語など、一般性の高い表記揺れを要因とする異表記語のみにしか対応できないという問題があった。また、異表記展開ルールを用いずに異表記語を生成する場合には、漢字や平仮名を含む単語の異表記語を生成できるというメリットがあるものの、辞書に登録されていない単語に対する異表記語の生成や、低頻度語に対する異表記語の生成が困難であるという問題があった。
本発明の目的は、片仮名語や漢字表記の揺れ、漢字の送り仮名の違いなどにも対応した異表記語を生成することと、人手の介入を最小限に抑えて異表記語の生成に用いる異表記展開ルールを生成することである。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本願で開示する発明の概要を説明すれば以下の通りである。
本発明の異表記語生成プログラムは、記憶装置から異表記語データを読み出し、該異表記語データ中の異表記語ペアから部分文字列対応を生成し、該部分文字列対応から表記揺れ文字列ペアを生成し、メモリやハードディスクなどの記憶装置に格納する。
次に、異表記語を抽出しようとする単語に含まれる文字列で、表記揺れ文字列ペアデータに含まれる文字列に対して、表記揺れ文字列ペアで対応する文字列に置換して異表記語を生成し、表示装置あるいは記憶装置に上記異表記語を出力する。
【発明の効果】
【０００８】
本発明によれば、異表記語データから生成した表記揺れ文字列ペアを用いて異表記語を生成することによって、人手で異表記展開ルールを作成する方式では生成が困難であった、漢字表記の揺れ、漢字の送り仮名の違い、漢字の読みなどを要因とする異表記語を生成できるという効果がある。
また、表記揺れ文字列ペアは、汎用性を有するため、表記揺れ文字列ペアの生成に用いていない単語や未知の単語に対する異表記語を生成できるという効果がある。
【実施例１】
【０００９】
以下、本発明の第１の実施例を、図を用いて説明する。
図１は、本実施例の異表記語生成装置の構成図である。本装置は、中央演算装置（ＣＰＵ）１０１と、主メモリ１０２と、表示装置１０３と、入力装置１０４と、記憶装置１１０と、で構成される。
記憶装置１１０には、ＯＳ（オペレーティングシステム）１１１と、異表記語データ１１２と、表記揺れ文字列ペアデータ１１３と、単語データ１１４と、部分文字列対応生成プログラム１１５と、表記揺れ文字列ペア生成プログラム１１６と、異表記語生成プログラム１１７と、異表記語表示プログラム１１８と、が格納される。
【００１０】
異表記語データ１１２には、表記揺れの関係にある単語ペアが登録される。表記揺れ文字列ペアデータ１１３には、異表記語データ１１２から生成される表記揺れ文字列ペアデータが登録される。単語データ１１４には、任意のテキストから抽出された単語のリストが登録される。部分文字列対応生成プログラム１１５は、異表記語データ１１２から、部分文字列対応を生成する。また、表記揺れ文字列ペア生成プログラム１１６は、部分文字列生成プログラム１１５で生成された部分文字列対応から表記揺れ文字列ペアを生成し、生成した表記揺れ文字列ペアを表記揺れ文字列ペアデータ１１３に登録する。異表記語生成プログラム１１７は、入力装置１０４から単語の入力を受け、該単語に含まれる文字列を、表記揺れ文字列ペアデータ１１３を用いて置換し、置換された単語で単語データ１１４に登録されている単語を異表記語として生成する。異表記語表示プログラム１１８は、異表記語生成プログラム１１７で生成された異表記語を表示装置１０３に表示させる。
尚、上記プログラムは、主メモリ１０２に読み込まれ、ＣＰＵ１０１が制御することにより実行される。
【００１１】
次に、本実施例の処理の流れを、図２のフローチャートを用いて説明する。
まず、部分文字列対応生成プログラム１１５で、メモリやハードディスクなどの記憶装置から、異表記語データ１１２を読み出し（Ｓ２０１）、図３に例を示す異表記語データに含まれる異表記語ペア各々について、部分文字列対応を生成する（Ｓ２０２）。ここで、部分文字列対応は、単語間の異なり文字数が最小となるように文字の対応付けをして得られる１文字以上の単語構成文字列の対応とする。文献Ｒｅｃｈａｒｄ  Ｂｅｌｌｍａｎ，“Ｄｙｎａｍｉｃ  Ｐｒｏｇｒａｍｍｉｎｇ”，Ｐｒｉｎｃｅｔｏｎ  Ｕｎｉｖｅｒｓｉｔｙ  Ｐｒｅｓｓ，Ｐｒｉｎｃｅｔｏｎ，Ｎｅｗ  Ｊｅｒｓｅｙ，１９５７．に述べられているパターン認識処理などの分野でよく知られているＤＰマッチング法（Ｄｙｎａｍｉｃ  Ｐｒｏｇｒａｍｍｉｎｇ）を用いると、
【００１２】
【数１】
2006107070.tif 000003
【００１３】
で計算される単語ＷＡと単語ＷＢの異なり文字数Ｄ（ＷＡ，ＷＢ）を最小とするＡｉとＢｊの対応関係を用いて部分文字列対応が生成される。ただし、
単語ＷＡ＝Ａ１Ａ２…Ａｉ…ＡＩ（Ａｉはｉ番目の文字）
単語ＷＢ＝Ｂ１Ｂ２…Ｂｊ…ＢＪ（Ｂｊはｊ番目の文字）
とする。
【００１４】
例えば、「書き込み‐書込み」の異表記語ペアからは、「書」と「込」と「み」が共通するので、図４に示す「書き‐書」と「込み‐込み」という部分文字列対応と、図５に示す「書‐書」と「き込み‐込み」という部分文字列対応が生成される。ここで、部分文字列となる文字列の生成は、図４、図５の例のように矢印が横方向または縦方向の文字の結合を優先とし、共通文字が連続する場合には文字列を結合して生成する。また、「書込み‐かき込み」の異表記語ペアからは、「込」と「み」が共通するので、「書‐かき」と「込み‐込み」という部分文字列対応と、「書−か」と「込み‐き込み」という部分文字列対応が生成される。尚、文字間の距離ｄ（ｉ，ｊ）は、漢字と漢字間、漢字と平仮名間、平仮名と平仮名間というように、文字の種類別に異なる距離を定義して計算することも可能である。
【００１５】
次に、表記揺れ文字列ペア生成プログラム１１６で、部分文字列対応生成プログラムにより複数の異表記語ペアから生成された複数の部分文字列対応各々に対して、指定条件を満たす部分文字列対応を表記揺れ文字列ペアとして生成する（Ｓ２０３）。例えば、図６に示すように、「お‐御」の平仮名と漢字の揺れ、「取‐取り」の送り仮名の違い、「タ‐ター」の長音の有無、「バ‐ヴァ」の片仮名表記の揺れ、「２‐二」の数字と漢字の違い、「竜‐龍」の漢字表記の揺れなどを示す表記揺れ文字列ペアが生成される。
【００１６】
指定条件には、一箇所の部分文字列対応が異なり、残りが同じ部分文字列対応である場合に、異なる部分文字列対応を表記揺れ文字列ペアとするといった条件を設定する。例えば、この条件を用いた場合、「書込み‐かき込み」の異表記語ペアから得られる、「書‐かき」と「込み‐込み」という部分文字列対応は条件を満たすため、「書‐かき」が表記揺れ文字列として生成されるが、「書−か」と「込み‐き込み」という部分文字列対応は条件を満たさないため、表記揺れ文字列は生成されない。また、指定数よりも少ない異表記語ペアから生成された表記揺れ文字列ペアはノイズである可能性が高いという考えの基に表記揺れ文字列ペアから除外する。尚、指定条件は、ノイズである表記揺れ文字列ペアを少なくする条件であれば、どのような条件を用いても構わない。
【００１７】
生成された表記揺れ文字列ペアは、表記揺れ文字列ペア生成プログラム１１６を用いて、表記揺れ文字列ペアデータ格納エリア１１３に格納される（Ｓ２０４）。ここで、表記揺れ文字列ペアデータの格納は、表記揺れ文字列ペアの生成に用いた異表記語において表記揺れ文字列ペアの前後に出現した文字列の情報、表記揺れ文字列ペア各々の生成に用いられた異表記語ペアの頻度など、表記揺れ文字列ペアの特徴を示す情報を併せて格納しても構わない。
尚、上記ステップＳ２０１〜Ｓ２０４は、表記揺れ文字列ペアデータが生成済みである場合には省略することができる。
【００１８】
次に、マウスやキーボードなどの入力装置１０４から、異表記語を生成しようとする単語（以下、注目単語と呼ぶ）の入力を受け（Ｓ２０５）、注目単語を構成する文字列が表記揺れ文字列ペアデータ１１３に含まれている場合は、上記注目単語を構成する文字列を表記揺れ文字列ペアで対応する文字列に置換し、異表記語を生成する（Ｓ２０６）。ここで、単語でない文字列が生成されることを防止するため、事前に任意のテキストを形態素解析して生成した単語データ１１４に含まれない単語は、異表記語から除外することもできる。また、１個の注目単語に対して、適用可能な表記揺れ文字列ペアが複数存在する場合には、１個の注目単語から複数の異表記語が生成される。例えば、「書−かき」と「込み‐こみ」という表記揺れ文字列ペアが用意されていた場合、「かき込み」という注目単語が入力されると、「かき」と「込み」が注目単語に含まれているので、「書き込み」と「かきこみ」と「書きこみ」という異表記語が生成される。
【００１９】
また、「書き込み」という注目単語が入力されると、「書‐かき」の表記揺れ文字列ペアの「書」が注目単語に含まれているので、「かきき込み」という誤った異表記語が生成されるが、文書検索などの用途では、存在しない単語や検索結果に影響しない単語であれば誤った異表記語が生成されても問題は生じない。誤った異表記語の生成によって問題が生じる用途では、生成された異表記語が単語データ１１４に含まれているかの照会により「かきき込み」は単語でないことが分かるので、異表記語を誤って生成することを防止できる。
【００２０】
生成された異表記語は、パソコンモニタなどの表示装置１０３に表示させる（Ｓ２０７）。尚、生成された異表記語は、ハードディスクなどの記憶装置に異表記語辞書として登録することもできる。注目単語が他にもある場合は、上記ステップＳ２０５からＳ２０７を繰り返し、注目単語がなくなった時点で処理を終了する。
【００２１】
本実施例によれば、異表記語ペアから表記揺れ文字列ペアを生成するので、片仮名語に限らず漢字や平仮名を含む表記揺れ文字列ペアを生成することができ、片仮名表記や漢字表記の揺れ、漢字の送り仮名や漢字の読みの違いなどに対応した異表記語を生成することができるという効果がある。また、異表記語を抽出しようとする単語が未知の単語や表記揺れ文字列ペアの生成に用いていない単語であっても、既存の異表記語ペアから生成した表記揺れ文字列ペアデータを用いることにより異表記語を生成できるという効果がある。
【実施例２】
【００２２】
次に、本発明の第２の実施形態である与えられた単語ペアが異表記語ペアであるかどうかを判定する方法を、図を用いて説明する。図７は第２の実施形態の処理の流れを示すフローチャートである。第２の実施形態は、第１の実施形態と同様に、異表記語ペアから表記揺れ文字列ペアを生成し、生成された表記揺れ文字列ペアを、メモリやハードディスクなどの記憶装置に格納する（Ｓ７０１〜Ｓ７０４）。次に、マウスやキーボードなどの入力装置から単語ペアの入力を受け（Ｓ７０５）、第１の実施形態と同様に単語ペアから部分文字列対応を生成する（Ｓ７０６）。ここで、単語ペアの入力は、ハードディスクなどの記憶装置に格納されている単語ペアを、指定された順序で取り出すなど、単語ペアが入力されれば方式は問わない。
【００２３】
次に、生成された部分文字列対応で、異なる文字列の対応が表記揺れであるかどうかを、生成された表記揺れ文字列ペアとの照合によって判定し、異なる文字列の対応である部分文字列対応がすべて表記揺れであれば、入力された単語ペアを異表記と判定し（Ｓ７０７）、ハードディスクやメモリなどの記憶装置に判定結果を出力する（Ｓ７０８）。例えば、「読み込み‐読込み」の単語ペアが入力されると、「読み‐読」と「込み‐込み」という部分文字列対応が生成され、「読み‐読」が表記揺れ文字列ペアデータに登録されていると、「読み込み‐読込み」の単語ペアは異表記と判定される。
本実施例によれば、異表記の可能性がある単語ペアが与えられた場合に、効率よく異表記かどうかを判定できるという効果がある。
【産業上の利用可能性】
【００２４】
異表記語データから表記揺れ文字列ペアデータを生成し、漢字や平仮名を含む異表記語の生成も可能とする本方式は、異表記語の存在が問題となる文書検索システムやテキストマイニングシステムなどの文書処理装置全般に適用できる。
【図面の簡単な説明】
【００２５】
【図１】本発明の第１の実施形態である異表記語生成装置の構成図である。
【図２】本発明の第１の実施形態である異表記語を生成する手順を示したフローチャートである。
【図３】異表記語データの例を示した図である。
【図４】部分文字列対応の例を示した図である。
【図５】部分文字列対応の例を示した図である。
【図６】表記揺れ文字列ペアデータの例を示した図である。
【図７】本発明の第２の実施形態である単語ペアの異表記判定の手順を示したフローチャートである。
【符号の説明】
【００２６】
１０１：ＣＰＵ、１０２：主メモリ、１０３：表示装置、１０４：入力装置、１１０：記憶装置、１１１：ＯＳ、１１２：異表記語データ、１１３：表記揺れ文字列ペアデータ、１１４：単語データ、１１５：部分文字列対応生成プログラム、１１６：表記揺れ文字列ペア生成プログラム、１１７：異表記語生成プログラム、１１８：異表記語表示プログラム。
【図１】
2006107070.tif 000004
【図２】
2006107070.tif 000005
【図３】
2006107070.tif 000006
【図４】
2006107070.tif 000007
【図５】
2006107070.tif 000008
【図６】
2006107070.tif 000009
【図７】
2006107070.tif 000010