(57)【要約】【課題】書式未定義型ルビ付きテキストに対して、ルビ対象文字列とルビセパレータとの位置関係に拘らず、ルビ、ルビセパレータ、ルビ対象文字列を検出し、ルビの部分は解析対象としないで、ルビで表された読みをルビ対象文字列に付与する。【解決手段】ルビ、ルビセパレータ、ルビ対象文字列、形態素解析対象文字列（以下通常文字）の配列よりなる各種ルビ表現パターンとその対象文字列長に対する制約を与えたルビパターン表（１２）を参照して、ルビ、ルビセパレータ、対象文字列を抽出し（１１）、ルビ、ルビセパレータを入力テキストから除去し、これを形態素解析し（１３）、その解析結果単語列中のルビ対象文字列に対する読みを、抽出したルビの読みとした単語に変更する（１６）。【選択図】  図１
2005322162.tif 000002
【特許請求の範囲】
【請求項１】
入力テキストを入力して単語情報列を出力するテキスト解析装置において、
ルビ、ルビを表すための境界情報であるルビセパレータ、ルビ対象文字列、通常文字列を含むルビ表現パターンを表すルビパターン表を用いてルビ情報部分を決定し、上記入力テキストからルビとルビセパレータを削除した形態素解析入力用テキストを作成するルビ情報抽出手段と、
上記形態素解析入力用テキストを入力とし、単語辞書と文法規則を用いて単語情報列を出力する形態素解析手段と、
上記ルビ情報抽出手段よりのルビ情報を参照して、付与されたルビを含む単語が第一解に含まれるように上記単語情報列を変更するルビ情報選択手段とを備えたことを特徴とするテキスト解析装置。
【請求項２】
入力テキストを形態素解析して単語情報列を出力するテキスト解析方法において、
ルビ情報抽出部により、ルビ、ルビを表すための境界情報であるルビセパレータ、ルビ対象文字列、形態素解析の対象となる通常文字列を含むルビ表現パターンを表すルビパターン表をパターン記憶部から読み出し参照して上記入力テキスト中からルビと、ルビセパレータを削除して形態素解析用テキストを作成し、
形態素解析部により、辞書記憶部の辞書及び文法記憶部の文法規則を読み出し参照して上記形態素解析用テキストを形態素解析して単語情報列を生成し、
ルビ情報抽出部により、付与されたルビを含む単語の読みの第一解が、上記抽出したルビの読みと一致するように、上記単語情報列を変更する
ことを特徴とするテキスト解析方法。
【請求項３】
上記形態素解析用テキストを作成する過程において、
入力テキストをその先頭から上記ルビパターン表中の各ルビ表現パターンに対し、パターンマッチング処理を行い、
パターンがマッチすれば対応するルビ、ルビセパレータ、ルビ対象文字列を抽出し、
その抽出されたルビおよびルビセパレータを上記入力テキストから除去し、
上記単語情報列を変更する過程において、上記抽出したルビ対象文字列も参照して変更処理を行うことを特徴とする請求項２記載のテキスト解析方法。
【請求項４】
上記パターンマッチング処理において、ルビ表現パターンに対するルビ対象文字列長に対するそのルビ表現パターンとマッチしたテキスト部分中のルビ対象文字列が上記下限値の制約があれば、その下限値の制約を満たすかを調べ、
満たしていなければそのテキスト部分はマッチしないとすることを特徴とする請求項３記載のテキスト解析方法。
【請求項５】
上記パターンマッチング処理において、ルビ表現パターンに対するルビ対象文字列長に対する上限値の制約があれば、そのルビ表現パターンとマッチしたテキスト部分中ルビ対象文字列の末尾から上記上限値の数だけをルビ対象文字列することを特徴とする請求項３又は４記載のテキスト解析方法。
【請求項６】
上記パターンマッチング処理において、ルビ表現パターンに対するルビ対象文字列長に対する上限値の制約があれば、その上限値の制約を満たすかを調べ、
満たしていなければそのテキスト部分はマッチしないとすることを特徴とする請求項３又は４記載のテキスト解析方法。
【請求項７】
上記単語情報の変更過程において、ルビと単語情報列第一解の読みが一致しない場合は、上記単語情報列中に、ルビの読みと完全に一致する読みをもつ単語を検索し、それが存在すればその単語が単語情報列の第一解に含まれるように変更することを特徴とする請求項２〜６のいずれかに記載のテキスト解析方法。
【請求項８】
上記単語検索において、完全一致する読みをもつ単語が存在しなければ、上記ルビの読みと後方一致する読みをもつ単語を検索し、それが存在すれば、その単語が単語情報列の第一解に含まれるように変更することを特徴とする請求項７記載のテキスト解析方法。
【請求項９】
上記後方一致する読みをもつ単語が存在しなければ、上記ルビの読みを持つ単語を生成してその単語が単語情報列の第一解に含まれるように変更することを特徴とする請求項８記載のテキスト解析方法。
【請求項１０】
請求項２〜９のいずれかに記載したテキスト解析方法の各過程をコンピュータに実行させるためのテキスト解析プログラム。
【請求項１１】
請求項１０に記載のテキスト解析プログラムが記録されたコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、文章（テキスト）処理の一環としての形態素解析にあって、ルビ（文字の読みを表わす情報）が付けられたテキストを正しく解析するテキスト解析装置、その方法、プログラムおよびその記録媒体に関する。
【背景技術】
【０００２】
テキストに基づき音声を合成するシステムを実現するためには、文章（テキスト）を入力して処理することが必要である。このテキスト処理の一環として言語解析技術があり、このうち単語認定のための形態素解析は、テキストの各部分を、日常使用する言葉における単語として区分する処理である。所でテキスト中のある部分の文字列についてその読みを示すための情報（ルビ）が付されたルビ付きテキストには、ルビのための書式が定義されてその書式を解析することで簡単にルビ部分を検出できる書式定義型ルビ付きテキストと、ルビのための特定の書式は定まることなく任意の書式でルビが記述される書式未定義型ルビ付きテキストとがある。これらのルビ付きテキストを形態素解析の対象として単語に分割する場合、ルビの部分は解析対象の単語として扱う必要がなく、そのルビの部分はルビで表された読みを該当する単語に付与するだけである。すなわち、ルビ付きテキスト中からルビ部分を検出することにより読みを示すルビ部分を解析対象から外すべきである。
【０００３】
上記二種類のルビ付きテキストのうち、書式定義型ルビ付きテキストの場合は、ルビとルビで読みを表す対象となる文字列（ルビ対象文字列と称する）とが容易に特定できるので、特許文献１に示すような指定条件を満たす単語を認定する形態素解析を行う技術を用いて、ルビの部分は解析対象とせず、ルビで表された読みを該当する単語に付与することができる。
一方、書式未定義型ルビ付きテキストにも適用できる技術（書式定義型ルビ付きテキストにも適用可能である）として、特許文献２に示すものがある。この特許文献２では、ルビを検出する検出手段と、検出されたルビと単語辞書より得られるそのルビ直前の単語の読みとが一致するか否かを判定する判定手段と、一致すると判定された場合には単語辞書による読みまたはルビの読みのどちらか一方を出力し、一致しないと判定された場合には単語辞書による読みとルビの読みの両方を出力する読み上げ制御手段と、からなる技術が開示されている。この場合の読み上げ制御手段は、一致すると判定される場合には、ルビの部分は解析対象とせず、ルビで表された読みを該当する単語に付与することと同等の処理を行っているということができる。
【特許文献１】特許第３３７９６４３号公報
【特許文献２】特許第２６１２０３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献２に示す技術により書式未定義型ルビ付きテキストを解析する場合、書式は定義されていないものの、ルビに関連する文字列に着目すると、ルビ（読みを表す部分）、ルビセパレータ（ルビを区分けするための境界となる文字列で、通常、開始ルビセパレータ及び終了ルビセパレータの組からなる）、ルビ対象文字列（ルビによる読みの対象となる文字列）の３種類の構成に分けられる。ルビは「山田太郎氏（やまたたろう）」のように、ルビ対象文字列「山田太郎」とルビセパレータの括弧とが隣接しないで「氏」（解析対象とするべき文字）が間に入っているようなケースもあるが、上述の従来技術ではこのようなケースに対応できないという問題がある。
【０００５】
この発明は、上記の点に鑑み発明されたもので、書式未定義型ルビ付きテキストに対して、あるいは、ルビ対象文字列とルビセパレータとの位置関係に拘らず、ルビ、ルビセパレータ、ルビ対象文字列を検出し、ルビの部分は解析対象としないで、ルビで表された読みをルビ対象文字列に付与するテキスト解析装置、その方法、プログラムおよびその記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明によればルビ、ルビセパレータ、ルビ対象文字列、通常文字列を含むルビ表現パターンを表わすルビパターン表を用いて入力テキスト中のルビ情報部分を抽出し、上記入力テキストからルビとルビを表すための境界情報であるルビセパレータを削除した形態素解析入力用テキストを作成する。
【発明の効果】
【０００７】
この発明によれば、書式未定義型ルビ付きテキストに対して、通常文字列（解析対象とするべき文字列）を含むルビ表現パターンのルビパターン表を用いてルビ情報を決定してルビとルビセパレータを削除しているため、ルビ対象文字列が単語辞書に含まれているかどうか、あるいはルビ対象文字列とルビセパレータの位置関係に拘らず、ルビ、ルビセパレータ、ルビ対象文字列を検出することができる。
【発明を実施するための最良の形態】
【０００８】
以下、この発明の実施形態を図面に基づいて説明する。
図１に、この発明のテキスト解析装置による実施形態の基本的機能構成を、図２にその処理方法を示す。
キーボードから、あるいはハードディスクや外部メモリ等から読み出されて入力部１０に任意のテキスト（入力テキストと称する）が入力されると（ステップＳ１）、ルビ情報抽出部１１により、入力テキストからルビ、ルビセパレータ、ルビ対象文字列からなるルビ情報が抽出され（ステップＳ２）、そのルビ情報中のルビ、ルビセパレータが除去され形態素解析入力用テキストが作成される（ステップＳ３）。この場合この発明では特にルビ情報の決定に、後述する図３に示すルビパターン表が用いられる。つまりパターン記憶部１２内に格納されているルビパターン表を参照してルビ情報を抽出する。
【０００９】
ルビ情報抽出部１１にて作成された形態素解析入力用テキストは形態素解析部１３により辞書記憶部１４に記憶されている単語辞書および文法記憶部１５に記憶されている文法規則を用いて形態素解析処理される（ステップＳ４）。
形態素解析部１３よりの形態素解析処理後の単語情報列は、ルビ情報抽出部１１で抽出されたルビ及びルビ対象文字列の情報を用いてルビ対象文字列に相当する単語を特定し、その単語の読みとルビと一致・不一致に応じて単語情報列の変更がルビ情報選択部１６により行われる（ステップＳ５）。
【００１０】
制御部１７は各記憶部１２，１４，１５からの記憶情報の読み取り、各部１１，１３，１６の順次動作などを行う。
ここでパターン記憶部１８に格納されているルビパターン表の例として図３（ａ）に新聞記事用ルビパターン表の例を、（ｂ）に店舗情報用ルビパターン表の例を示す。各ルビパターン表は、パターン番号（Ｎｏ．）欄、ルビ表現パターン欄、ルビ表現条件欄があり、ルビ表現パターン欄では１つのルビ情報がルビ（＼Ｒ）、ルビセパレータ（＼Ｆ、＼Ｅ）、ルビ対象文字列（＼Ｔ）、通常文字列の４部分からなる正規表現（文字列を式の形式にて表したもので最も一般に用いられている）を用いてルビ表現パターンとして記入されている。新聞記事用の表中のＮｏ．１ではルビ対象文字列＼Ｔ、ルビ開始セパレータ＼Ｆ、ルビ＼Ｒ、ルビ終了セパレータ＼Ｅのルビ表現パターンであり、これは最も一般なものである。この発明においては例えばＮｏ．２として示すように、＼Ｔ、＼Ｆ、＼Ｒ、＼Ｅの他に通常文字列が＼Ｔの後に「（さん｜氏）」として、更に＼Ｒの後に「＝．＋」が挿入されたり、あるいはＮｏ．３に示すように＼Ｔの前に通常文字列「（長男｜次男｜三男｜長女｜次女｜三女｜妻）」が配置されたり、通常文字列がルビ表現パターンに含まれているものがある。
【００１１】
ルビ表現条件欄では、ルビ、ルビセパレータ、ルビ対象文字列それぞれ個別の制約条件、（ルビ表現条件）が記入されている。ルビ表現条件は、ルビ、ルビ開始セパレータ、ルビ終了セパレータ、ルビ対象文字列を表す正規表現、および、ルビ対象文字列長の条件からなる。
ここでは、正規表現の表記をPerl（プログラミング言語）の表記に従うものとした。ただ、メタ文字を拡張して、ルビ表現としてもよく、＼Ｒ（ルビ）、＼Ｆ（ルビ開始セパレータ）、＼Ｅ（ルビ終了セパレータ）、＼Ｔ（ルビ対象文字列）および字種として、＼ｈ（ひらがな）、＼ｋ（カタカナ）、＼ｃ（漢字）＼ａ（アルファベット）を追加する。新聞記事用表では、新聞記事中に用いられているルビは主としてひらがなで表記されているからルビとしてはひらがなであることの制約条件「＼ｈ」を付け、ルビを付ける文字列は主として漢字が用いられているから、ルビ対象文字列＼Ｔには漢字であることの制約条件「＼ｃ」を付けた。また店舗情報を表わす文章ではルビは主としてカタカナが用いられているからルビはカタカナであることの制約条件「＼ｋ」を付け、アルファベットに対しルビを付けることが多いから、ルビ対象文字列にアルファベットであることの制約条件「＼ａ」を付けた。なお「＼ｈ＋」はひらがな１文字以上を表わし、「．＋」は任意の字種の１文字以上を表わす。
【００１２】
この実施形態ではルビ表現条件として、ルビ対象文字列長も、ルビ対象文字列に対する制約とした。この制約条件としては制約なし、弱制約、強制約の３種類の指定を可能としている。制約なしでは、ルビ対象文字列の長さに対する制約はない。入力テキスト中のパターン自体は、ルビ表現パターン欄中のルビ表現パターンと一致（マッチ）していても、弱制約では、ルビ対象文字列の正規表現にマッチした文字数が最小値（表中ＭＩＮと記述）未満の場合にはパターンマッチしないとして扱い、ルビ対象文字列の正規表現にマッチした文字数が最大値（表中ＭＡＸと記述）を超える場合には、パターンマッチ（ルビ表現パターンと一致）するとするが、ルビ対象文字列をその末尾から最大値の長さをもつ文字数に短く設定する。強制約では、ルビ対象文字列の正規表現にマッチした文字数が、最大値（表中ＭＡＸと記述）と最小値（表中ＭＩＮと記述）で記述された文字数条件を満たさない場合には、パターンマッチしないとして扱う。これらのルビ対象文字列長条件では、ルビの文字数（表中rlenと記述）を利用する。例えば新聞記事用表のＮｏ．１ではルビの文字数（rlen）を３で割った値をルビ対象文字列長の最小値とし、この値より小さければパターンは一致しないとし、ルビ対象文字列の文字数がルビの文字数（rlen）より以上であれば末尾のルビの文字数だけをルビ対象文字列とする。新聞記事においてルビを付ける場合は漢字に対する場合が多く、１文字の漢字の読み（ルビ）は一般に１文字〜３文字程度であるから、ＭＩＮ〉＝rlen／３とし、ルビと思われる部分の文字数が漢字１文字に対し、４文字以上の場合はルビとしない。なお図３に示すルビパターン表はあくまで一例であり、そのルビ表現パターンとしては他に各種のものが考えられ、その表示方法もこれに限らない。ルビ表現条件についても同様であり、例えばルビに対し、字種の制約をしなくてもよく、また表記のやり方も他の手法を用いてもよく、ルビ対象文字列長に対する制約も他のやり方で行ってもよく、あるいはルビの文字数に対して制約を与えてもよい。
【００１３】
前述したようにルビ表現パターンにおいて、ルビ情報として＼Ｒ、＼Ｆ、＼Ｅ、＼Ｔを用いたので、これら以外の文字列が通常文字列（形態素解析対象）となるが、他の記述法による正規表現を用いても構わない。またこの例では通常文字列に対する制約条件はルビ表現パターンに直接記述した。前述したように、例えばルビ表現パターン＼Ｔ（さん｜氏）、＼Ｆ＼Ｒ・＼Ｒ＝＋＼Ｅにおいて「＼Ｔ（さん｜氏）」は通常文字列に対する制約は「さん」と「氏」のいずれかである。なおルビパターン表としては、Ｎｏ．１に示すように最も一般的な＼Ｔと＼Ｆと＼Ｒと＼Ｅとからなるルビ表現パターンの他に、この発明では、これらの他に通常文字列（形態素解析対象）を含むルビ表現パターンが少くとも１つは記述される。
【００１４】
ルビ情報抽出部１１では入力テキストの文字列中にルビパターン表中のルビ表現パターンとマッチしたものがあるかを調べるパターンマッチング処理が行われることになる。以下にルビ情報抽出部１１の処理手順及び機能構成を図４及び図５を参照して簡単に説明する。
入力テキストの文字列は先頭から順次ずらしながら、ルビパターン表のルビ表現パターンのいずれかとマッチするかがパターンマッチング部２１で調べられる（ステップＳ１１）。マッチしない部分は形態素解析テキストとしてテキスト出力部２２から出力される（ステップＳ１２）。この例ではルビ＼Ｒ及びルビ対象文字＼Ｔのそれぞれ字種表現条件がある場合はこれも加味してルビ表現パターンとマッチングするかが調べられる。
【００１５】
ステップＳ１１でマッチした部分があれば、ルビ表現パターンに対する文字長制約があるかが制約判定部２３で判定され（ステップＳ１３）、制約があれば最小値ＭＩＮの条件を満たすかの判定がなされ（ステップＳ１４）、この条件を満たさなければこの部分は形態素解析対象テキストとして出力される（ステップＳ１２）。つまり、例えば図３（ａ）中のＮｏ．１の場合、制約判定部２３内の割算部２３ａで、ルビの文字数rlenを３で割算し、この割算結果がルビ対象文字列の文字数より小さければ、文字長の制約条件を満たさないと判定される。この判定は制約判定部２３内の判定部２３ｂで行われる。
【００１６】
ステップＳ１３で文字長の制約がないと判定部２３ｂで判定されると、その文字列中のルビ＼Ｒと対応する文字列がルビ情報としてルビ情報出力部２５から出力される（ステップＳ１５）。またその文字列中のルビ対象文字列＼Ｔと対応する文字列、及び通常文字列は形態素解析対象として、ステップＳ１２により、出力部２２から出力される。
ステップＳ１４で制約を満たしていると判定部２３ｂで判定されると、更にルビ対象文字列長の最大値ＭＡＸに対する制約を満たすかの判定が行なわれ（ステップＳ１６）、その制約を満たせば、つまりこの例ではルビ対象文字列長のルビの文字数rlenが最大値ＭＡＸ以下であればステップＳ１５に移り、その最大長に対する制約を満たさなければ、ステップＳ１７でその文字列長に対する制約が強制約であるかが調べられ、強制約であればその部分のテキストはマッチしないと判定されてステップＳ１２に移る。ステップＳ１７で強制約でないと判定されると、ルビ対象文字列の末尾からその制約で決められた数だけの文字列が判定対応処理部２４でルビ対象文字列として抽出され、つまりルビ対象文字列が短縮される（ステップＳ１８）。例えば図３（ａ）中のＮｏ．２の場合はルビの文字数rlenだけ、ルビ対象文字列の末尾からルビ対象文字列として抽出され、Ｎｏ．３の場合は末尾の３文字だけがルビ対象文字列として抽出される。その後ステップＳ１５に移る。なお、あるルビ表現パターンにおいて、ルビがルビ対象文字列に対して分割して記述されている場合には、その間に含まれる文字列を形態素解析入力用テキストから除いてもよい。また、ルビセパレータで囲まれた文字列に、通常文字列が含まれる場合（前述のルビが分割して記述されている場合の、その間に含まれる文字列は除く）には、末尾のルビセパレータを「、」（読点）に置き換えてもよい。これらの処理は図５中の破線で示す特殊処理部２６で、また図４中の破線ステップＳ１９で行う。ルビ対象文字長に対する制約は下限値ＭＩＮのみでもよい。その場合は図４中に破線３１で示すように、ステップＳ１４で条件を満たすと判定されると、直ちにステップＳ１５に移る。また上限値ＭＡＸのみの制約としてもよい。この場合は破線３２で示すようにステップＳ１３で制約があると判定されると、破線３２で示すように、ステップＳ１８へ直ちに移る。更にこの上限値ＭＡＸの制約も強制約のみ、又は弱制約のみ、つまり破線３３で示すようにステップＳ１６で条件を満たさなければ直ちにステップＳ１８に移ってもよい。
【００１７】
形態素解析部１２は、辞書記憶部１４の単語辞書、文法記憶部１５の文法規則を用いて、ルビ情報抽出部１１からの形態素解析入力用テキストに対して形態素解析を行う。この形態素解析は従来の方法と同様に行えばよく、例えばまず単語辞書検索処理にて文法規則に記述された接続可能な単語連鎖を単語辞書よりすべて抽出し、品詞連鎖と単語とからなる単語連鎖候補例を得て、単語選択処理にてこの単語連鎖候補例に対し優先順位を付け、最も優先順位が高い（＝第一解の）単語連鎖、および、その多義となる単語連鎖からなる単語情報列を出力する。
【００１８】
ルビ情報選択部１６は、形態素解析部１３からの単語情報列を入力し、ルビ情報抽出部１１で抽出されたルビ及びルビ対象文字列の情報を用いてルビ対象文字列に相当する単語を特定し、その単語の読みがルビと一致するような単語連鎖が第一解となるように単語情報列を変更する。ルビと一致する読みをもつ単語が単語情報列に存在しない場合には、単語情報列にその単語を追加し、第一解にその単語を含むように単語情報列を変更する。
ルビ情報選択部１６の処理手順を図６を参照して説明する。この処理のすべてのステップにおいて、ルビ対象文字列の読みとルビとの比較を行う際には、ルビの字種を、ルビ対象文字列の読みの字種（すなわち辞書記憶部１４内の単語辞書の読みの字種）に変換してから比較を行う。例えば、単語辞書の読みの字種がカタカナであり、ルビがひらがなである場合には、ルビをカタカナに変換して比較する。
【００１９】
ステップＳ３１では、ステップＳ３２以降の処理が未処理のルビ対象文字列があるか判定する。未処理のルビ対象文字列がある場合にはステップＳ３２に移行し、未処理のルビ対象文字列がない場合には処理を終了する。
ステップＳ３２では、形態素解析部１３からの単語情報列の第一単語連鎖において、ルビ情報抽出部１１で抽出されたルビ対象文字列（複数の単語に分割されていてもよい）の読みが、対応するルビと完全一致するかあるいは後方一致するかを判定する。ここで後方一致とは、ルビ対象文字列の読みがルビより長く、ルビ対象文字列の読みの末尾位置にてルビが完全に含まれる場合をいう。例えば、ルビ対象文字列の読みが「ムスコタロウ」でルビが「タロウ」である場合、後方一致していることになる。完全一致か後方一致の場合には、ステップＳ３３に移行し、一致しない場合にはステップＳ３４に移る。ステップＳ３３に移行した場合には、現在の単語連鎖第一解をそのまま第一解とし、ステップＳ３１に戻る。
【００２０】
ステップＳ３４では、単語情報列の中で、ルビ対象文字列（複数の単語に分割されていてもよい）の読みが、対応するルビと一致する第一解以外の単語が存在するかを判定する。一致する単語が存在する場合にはステップＳ３５に移行し、存在しない場合にはステップＳ３６に移る。ステップＳ３５に移行した場合には、ルビの読みと一致する単語を含む単語連鎖を第一解とし、ステップＳ３１に戻る。
ステップＳ３６では、単語情報列の中で、ルビ対象文字列（複数の単語に分割されていてもよい）の読みが、対応するルビと後方一致する第一解以外の単語が存在するかを判定する。後方一致する単語が存在する場合にはステップＳ３５に移行し、存在しない場合にはステップＳ３７に移行する。ステップＳ３７では、ルビ対象文字列にあたる単語境界で、ルビの読みをもつ新単語を作成し、それを含む単語連鎖の第一解を作成し、ステップＳ３１に戻る。つまり入力単語情報列中のそのルビと対応する単語を、ルビの読みの新単語に置き換える。この具体的方法は例えば特許文献１に示す方法を用いることができる。図１中のルビ情報選択部１６内にはルビの字種を単語辞書の読みの字種に変換するための変換部１６ａ、ルビと単語の読みとを比較する比較部１６ｂ、その比較結果に応じて入力単語情報列の単語を変更する変更部１６ｃ、入力単語情報列をルビの読みをもつ新単語に変更するための単語生成部１６ｄが設けられることになる。なおステップＳ３２で第一解の読みと一致しなければ直ちにステップＳ３１に移ってもよい。あるいはステップＳ３４でルビのもつ単語がなければ、直ちにステップＳ３１に戻ってもよい。またはステップＳ３６で後方一致単語がなければ直ちにステップＳ３１に戻ってもよい。
【実施例１】
【００２１】
ここで、実施例について説明する。
まず、図７（ａ）に示す新聞記事テキスト例を入力テキストとした場合の実施例を説明する。始めに、ルビ情報抽出部１１にてルビパターン表を用いてルビ情報の抽出を行う。その抽出した結果を図８（ａ）に示す。図８（ａ）の記述は図３（ａ）に示したルビパターン表と同様とした。ルビ表現パターンとして、「山田太郎氏（やまた・たろう＝横須賀大学名誉教授）、「心筋梗塞（こうそく）」、「妻英子（ひでこ）」、それぞれ図３（ａ）中のパターン番号Ｎｏ．２、Ｎｏ．１、Ｎｏ．３が適用されて抽出された。ルビ表現条件のうちルビは、「やまた・たろう」、「こうそく」、「ひでこ」であり、ルビ対象文字列は、「山田太郎」、「心筋梗塞」、「英子」である。ここで、ルビ表現パターン「心筋硬塞（こうそく）」において、ルビ対象文字列が「急性心筋硬塞」ではなく「心筋梗塞」となるのは、図３（ａ）Ｎｏ．１のルビ対象文字列長の制約、つまりルビ「こうそく」の文字数４をルビ対象文字列の文字数６が超えているため、ルビ対象文字列「急性心筋梗塞」の末尾４文字（＝最大値）である「心筋梗塞」に短縮されるためである。
【００２２】
このルビ情報抽出の結果より、入力テキストからルビセパレータ、ルビ、および分割されたルビ（「やまた」と「たろう」）の間に挟まれた文字列（「・」）を削除し、ルビセパレータで囲まれた中に「＝横須賀大学名誉教授」という通常文字列を含むルビ表現パターンの末尾ルビセパレータを「、」に置換し、図８（ｂ）に示す形態素解析入力用テキストを作成する。
次に形態素解析部１３において、形態素解析を行い、図９（ａ）に示す単語連鎖候補例を得て、優先順位の高い単語情報列（図２には第一のみ示す）を得る。
【００２３】
次に、ルビ情報選択部１６において、図６に示した処理手順に従ってルビ情報選択を行う。ステップＳ３１で、未処理のルビ対象文字列「山田太郎」を検出し、ステップＳ３２に移る。ステップＳ３２で、第一解の読みは「ヤマダタロウ」、ルビは「ヤマタタロウ」（カタカナに変換する）であり、これらは一致しないため、ステップＳ３４に移る。ここでは、図９（ｂ）に示すように単語情報候補列内に表記＝山田、読み＝ヤマタ、品詞＝固有名詞：姓の単語が存在していたとする。そこで、ステップＳ３４からステップＳ３５に移り、表記＝山田、読み＝ヤマダ、品詞＝固有名詞：姓という単語を表記＝山田、読み＝ヤマタ、品詞＝固有名詞：姓という単語に置き換えた単語連鎖を第一解として、ステップＳ３１に戻る。つまり単語辞書にルビと一致する読みをもつ単語が登録されていなくても正しい読みの単語とすることができる。
【００２４】
ステップＳ３１で、未処理のルビ対象文字列「心筋梗塞」を検出し、ステップＳ３２に移る。
ステップＳ３２で、第一解の読みは「シンキンコウソク」、ルビは「コウソク」（カタカナに変換する）であり、後方一致するため、ステップＳ３３に移る。ステップＳ３３で、現在の第一解の単語連鎖をそのまま第一解として、ステップＳ３１に戻る。
【００２５】
次いで、ステップＳ３１で、未処理のルビ対象文字列「英子」を検出し、ステップＳ３２に移る。ステップＳ３２で、第一解の読み「ヒデコ」がルビの読み「ヒデコ」（カタカナに変換する）に一致するため、ステップＳ３３に移る。ステップＳ３３で、現在の第一解の単語連鎖をそのまま第一解として、ステップＳ３１に戻る。
ステップＳ３１で、すべてのルビ対象文字列に対して処理を行ったので、処理を終了する。
この結果、図８（ｂ）に示す単語情報列（図示は第一解のみ）を、最終結果として出力する。
【実施例２】
【００２６】
次に、図７（ｂ）に示す店舗情報用テキスト例を入力テキストとした場合の実施例を説明する。始めに、ルビ情報抽出部１１にてルビパターン表（図３（ｂ））を用いてルビ情報を抽出する。その結果、図１０（ａ）に示すルビ情報が抽出される。この場合は、抽出されたルビ表現パターンは、「ｓｕｃｒｅ（シュクレ）」のみであり、ルビ表現条件のルビは、「シュクレ」であり、ルビ対象文字列は、「ｓｕｃｒｅ」である。ここで、テキスト中の「ＡＤ（アドバンスデザイン）」は、図３（ｂ）のＮｏ．１のルビ表現条件のうち、ルビ、ルビ開始セパレータ、ルビ終了セパレータ、ルビ対象文字列に対しては満たすが、ルビの文字数rlen＝９を３で割った値３以上にルビ対象文字列長＝２にならず、強制約のＭＩＮ＞＝rlen／３を満たさないため、ルビ表現パターンとならない。
【００２７】
このルビ情報抽出の結果より、入力テキストからルビセパレータ、ルビを削除し、図１０（ｂ）に示す形態素解析入力用テキストを作成する。
次に形態素解析部１３において形態素解析を行い、図１１（ａ）に示す単語連鎖候補列を得て、単語情報列（図示は第一解のみ）を得る。
次に、ルビ情報選択部１６において、図６に示した処理手順に従ってルビ情報選択を行う。
ステップＳ３１で、未処理のルビ対象文字列「ｓｕｃｒｅ」を検出し、ステップＳ３２に移る。
【００２８】
ステップＳ３２で、第一解の読みは「エスユーシーアールイー」、ルビは「シュクレ」であり、両者は一致しないため、ステップＳ３４に移る。
ステップＳ３４で、ルビの読みを持つ単語が存在しないため（「ｓｕｃｒｅ」は未知語）、ステップＳ３６に移る。
ステップＳ３６で、後方一致する単語が存在しないため、ステップＳ３７に移る。ステップＳ３７で、表記＝ｓｕｃｒｅ、読み＝シュクレ、品詞＝未知語とする新単語を作成し、表記＝ｓｕｃｒｅ、読み＝エスユーシーアールイー、品詞＝未知語の代わりにこれを第一解に含む単語連鎖を作成し、ステップＳ３１に戻る。つまり単語辞書にルビの読みと一致する単語がなくても、新単語を作成して、出力することができる。
【００２９】
ステップＳ３１で、すべてのルビ対象文字列に対して処理を行ったので、処理を終了する。
この結果、図１１（ｂ）の単語情報列（図示は第一解のみ）を、最終結果として出力する。
ルビ対象文字列長に対する下限値ＭＩＮに対する制約はＭＡＸと同様にrlen値で行ってもよい。
図１に示したテキスト解析装置はコンピュータにより機能させることもできる。その場合は図２、図４、図６に示した処理手順の各ステップをコンピュータに実行させるためのプログラムをコンピュータにＣＤ−ＲＯＭ、磁気ディスク、半導体記憶装置などの記録媒体からインストールし、あるいは通信回線を介してダウンロードして、そのプログラムを実行させればよい。
【産業上の利用可能性】
【００３０】
以上のように、この発明にかかるテキスト解析装置および方法、そのプログラム、その記録媒体は、例えばテキストを入力とする音声合成において、テキストを形態素解析し、その解析結果を用いて音声合成する技術に利用される。
【図面の簡単な説明】
【００３１】
【図１】この発明のテキスト解析装置の機能構成例を示すブロック図。
【図２】この発明によるテキスト解析方法の処理手順の例を示す流れ図。
【図３】ルビパターン表の例を示す図。
【図４】図１中のルビ情報抽出部１１の処理手順の例を示す流れ図。
【図５】ルビ情報抽出部１１の機能構成例を示すブロック図。
【図６】図１中のルビ情報選択部１６の処理手順の例を示す流れ図。
【図７】入力テキストの例を示す図。
【図８】図７（ａ）に示したテキストから抽出したルビ表現パターン及びその形態素解析入力用テキストを示す図。
【図９】図８（ｂ）に示したテキストに対する連鎖候補列、ルビとルビ情報選択処理の結果を示す図。
【図１０】図７（ａ）に示したテキストから抽出したルビ表現パターンとその形態素解析用入力テキストを示す図。
【図１１】図１０（ｂ）に示したテキストに対する単語連鎖候補列およびルビ情報選択処理結果を示す図。
【図１】
2005322162.tif 000003
【図２】
2005322162.tif 000004
【図３】
2005322162.tif 000005
【図４】
2005322162.tif 000006
【図５】
2005322162.tif 000007
【図６】
2005322162.tif 000008
【図７】
2005322162.tif 000009
【図８】
2005322162.tif 000010
【図９】
2005322162.tif 000011
【図１０】
2005322162.tif 000012
【図１１】
2005322162.tif 000013