JP2005322162A - テキスト解析装置、その方法、プログラムおよびその記録媒体 - Google Patents
テキスト解析装置、その方法、プログラムおよびその記録媒体 Download PDFInfo
- Publication number
- JP2005322162A JP2005322162A JP2004141520A JP2004141520A JP2005322162A JP 2005322162 A JP2005322162 A JP 2005322162A JP 2004141520 A JP2004141520 A JP 2004141520A JP 2004141520 A JP2004141520 A JP 2004141520A JP 2005322162 A JP2005322162 A JP 2005322162A
- Authority
- JP
- Japan
- Prior art keywords
- ruby
- reading
- word
- text
- character string
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Machine Translation (AREA)
- Document Processing Apparatus (AREA)
Abstract
【課題】書式未定義型ルビ付きテキストに対して、ルビ対象文字列とルビセパレータとの位置関係に拘らず、ルビ、ルビセパレータ、ルビ対象文字列を検出し、ルビの部分は解析対象としないで、ルビで表された読みをルビ対象文字列に付与する。
【解決手段】ルビ、ルビセパレータ、ルビ対象文字列、形態素解析対象文字列(以下通常文字)の配列よりなる各種ルビ表現パターンとその対象文字列長に対する制約を与えたルビパターン表(12)を参照して、ルビ、ルビセパレータ、対象文字列を抽出し(11)、ルビ、ルビセパレータを入力テキストから除去し、これを形態素解析し(13)、その解析結果単語列中のルビ対象文字列に対する読みを、抽出したルビの読みとした単語に変更する(16)。
【選択図】 図1
【解決手段】ルビ、ルビセパレータ、ルビ対象文字列、形態素解析対象文字列(以下通常文字)の配列よりなる各種ルビ表現パターンとその対象文字列長に対する制約を与えたルビパターン表(12)を参照して、ルビ、ルビセパレータ、対象文字列を抽出し(11)、ルビ、ルビセパレータを入力テキストから除去し、これを形態素解析し(13)、その解析結果単語列中のルビ対象文字列に対する読みを、抽出したルビの読みとした単語に変更する(16)。
【選択図】 図1
Description
この発明は、文章(テキスト)処理の一環としての形態素解析にあって、ルビ(文字の読みを表わす情報)が付けられたテキストを正しく解析するテキスト解析装置、その方法、プログラムおよびその記録媒体に関する。
テキストに基づき音声を合成するシステムを実現するためには、文章(テキスト)を入力して処理することが必要である。このテキスト処理の一環として言語解析技術があり、このうち単語認定のための形態素解析は、テキストの各部分を、日常使用する言葉における単語として区分する処理である。所でテキスト中のある部分の文字列についてその読みを示すための情報(ルビ)が付されたルビ付きテキストには、ルビのための書式が定義されてその書式を解析することで簡単にルビ部分を検出できる書式定義型ルビ付きテキストと、ルビのための特定の書式は定まることなく任意の書式でルビが記述される書式未定義型ルビ付きテキストとがある。これらのルビ付きテキストを形態素解析の対象として単語に分割する場合、ルビの部分は解析対象の単語として扱う必要がなく、そのルビの部分はルビで表された読みを該当する単語に付与するだけである。すなわち、ルビ付きテキスト中からルビ部分を検出することにより読みを示すルビ部分を解析対象から外すべきである。
上記二種類のルビ付きテキストのうち、書式定義型ルビ付きテキストの場合は、ルビとルビで読みを表す対象となる文字列(ルビ対象文字列と称する)とが容易に特定できるので、特許文献1に示すような指定条件を満たす単語を認定する形態素解析を行う技術を用いて、ルビの部分は解析対象とせず、ルビで表された読みを該当する単語に付与することができる。
一方、書式未定義型ルビ付きテキストにも適用できる技術(書式定義型ルビ付きテキストにも適用可能である)として、特許文献2に示すものがある。この特許文献2では、ルビを検出する検出手段と、検出されたルビと単語辞書より得られるそのルビ直前の単語の読みとが一致するか否かを判定する判定手段と、一致すると判定された場合には単語辞書による読みまたはルビの読みのどちらか一方を出力し、一致しないと判定された場合には単語辞書による読みとルビの読みの両方を出力する読み上げ制御手段と、からなる技術が開示されている。この場合の読み上げ制御手段は、一致すると判定される場合には、ルビの部分は解析対象とせず、ルビで表された読みを該当する単語に付与することと同等の処理を行っているということができる。
特許第3379643号公報
特許第2612030号公報
一方、書式未定義型ルビ付きテキストにも適用できる技術(書式定義型ルビ付きテキストにも適用可能である)として、特許文献2に示すものがある。この特許文献2では、ルビを検出する検出手段と、検出されたルビと単語辞書より得られるそのルビ直前の単語の読みとが一致するか否かを判定する判定手段と、一致すると判定された場合には単語辞書による読みまたはルビの読みのどちらか一方を出力し、一致しないと判定された場合には単語辞書による読みとルビの読みの両方を出力する読み上げ制御手段と、からなる技術が開示されている。この場合の読み上げ制御手段は、一致すると判定される場合には、ルビの部分は解析対象とせず、ルビで表された読みを該当する単語に付与することと同等の処理を行っているということができる。
特許文献2に示す技術により書式未定義型ルビ付きテキストを解析する場合、書式は定義されていないものの、ルビに関連する文字列に着目すると、ルビ(読みを表す部分)、ルビセパレータ(ルビを区分けするための境界となる文字列で、通常、開始ルビセパレータ及び終了ルビセパレータの組からなる)、ルビ対象文字列(ルビによる読みの対象となる文字列)の3種類の構成に分けられる。ルビは「山田太郎氏(やまたたろう)」のように、ルビ対象文字列「山田太郎」とルビセパレータの括弧とが隣接しないで「氏」(解析対象とするべき文字)が間に入っているようなケースもあるが、上述の従来技術ではこのようなケースに対応できないという問題がある。
この発明は、上記の点に鑑み発明されたもので、書式未定義型ルビ付きテキストに対して、あるいは、ルビ対象文字列とルビセパレータとの位置関係に拘らず、ルビ、ルビセパレータ、ルビ対象文字列を検出し、ルビの部分は解析対象としないで、ルビで表された読みをルビ対象文字列に付与するテキスト解析装置、その方法、プログラムおよびその記録媒体を提供することを目的とする。
この発明によればルビ、ルビセパレータ、ルビ対象文字列、通常文字列を含むルビ表現パターンを表わすルビパターン表を用いて入力テキスト中のルビ情報部分を抽出し、上記入力テキストからルビとルビを表すための境界情報であるルビセパレータを削除した形態素解析入力用テキストを作成する。
この発明によれば、書式未定義型ルビ付きテキストに対して、通常文字列(解析対象とするべき文字列)を含むルビ表現パターンのルビパターン表を用いてルビ情報を決定してルビとルビセパレータを削除しているため、ルビ対象文字列が単語辞書に含まれているかどうか、あるいはルビ対象文字列とルビセパレータの位置関係に拘らず、ルビ、ルビセパレータ、ルビ対象文字列を検出することができる。
以下、この発明の実施形態を図面に基づいて説明する。
図1に、この発明のテキスト解析装置による実施形態の基本的機能構成を、図2にその処理方法を示す。
キーボードから、あるいはハードディスクや外部メモリ等から読み出されて入力部10に任意のテキスト(入力テキストと称する)が入力されると(ステップS1)、ルビ情報抽出部11により、入力テキストからルビ、ルビセパレータ、ルビ対象文字列からなるルビ情報が抽出され(ステップS2)、そのルビ情報中のルビ、ルビセパレータが除去され形態素解析入力用テキストが作成される(ステップS3)。この場合この発明では特にルビ情報の決定に、後述する図3に示すルビパターン表が用いられる。つまりパターン記憶部12内に格納されているルビパターン表を参照してルビ情報を抽出する。
図1に、この発明のテキスト解析装置による実施形態の基本的機能構成を、図2にその処理方法を示す。
キーボードから、あるいはハードディスクや外部メモリ等から読み出されて入力部10に任意のテキスト(入力テキストと称する)が入力されると(ステップS1)、ルビ情報抽出部11により、入力テキストからルビ、ルビセパレータ、ルビ対象文字列からなるルビ情報が抽出され(ステップS2)、そのルビ情報中のルビ、ルビセパレータが除去され形態素解析入力用テキストが作成される(ステップS3)。この場合この発明では特にルビ情報の決定に、後述する図3に示すルビパターン表が用いられる。つまりパターン記憶部12内に格納されているルビパターン表を参照してルビ情報を抽出する。
ルビ情報抽出部11にて作成された形態素解析入力用テキストは形態素解析部13により辞書記憶部14に記憶されている単語辞書および文法記憶部15に記憶されている文法規則を用いて形態素解析処理される(ステップS4)。
形態素解析部13よりの形態素解析処理後の単語情報列は、ルビ情報抽出部11で抽出されたルビ及びルビ対象文字列の情報を用いてルビ対象文字列に相当する単語を特定し、その単語の読みとルビと一致・不一致に応じて単語情報列の変更がルビ情報選択部16により行われる(ステップS5)。
形態素解析部13よりの形態素解析処理後の単語情報列は、ルビ情報抽出部11で抽出されたルビ及びルビ対象文字列の情報を用いてルビ対象文字列に相当する単語を特定し、その単語の読みとルビと一致・不一致に応じて単語情報列の変更がルビ情報選択部16により行われる(ステップS5)。
制御部17は各記憶部12,14,15からの記憶情報の読み取り、各部11,13,16の順次動作などを行う。
ここでパターン記憶部18に格納されているルビパターン表の例として図3(a)に新聞記事用ルビパターン表の例を、(b)に店舗情報用ルビパターン表の例を示す。各ルビパターン表は、パターン番号(No.)欄、ルビ表現パターン欄、ルビ表現条件欄があり、ルビ表現パターン欄では1つのルビ情報がルビ(\R)、ルビセパレータ(\F、\E)、ルビ対象文字列(\T)、通常文字列の4部分からなる正規表現(文字列を式の形式にて表したもので最も一般に用いられている)を用いてルビ表現パターンとして記入されている。新聞記事用の表中のNo.1ではルビ対象文字列\T、ルビ開始セパレータ\F、ルビ\R、ルビ終了セパレータ\Eのルビ表現パターンであり、これは最も一般なものである。この発明においては例えばNo.2として示すように、\T、\F、\R、\Eの他に通常文字列が\Tの後に「(さん|氏)」として、更に\Rの後に「=.+」が挿入されたり、あるいはNo.3に示すように\Tの前に通常文字列「(長男|次男|三男|長女|次女|三女|妻)」が配置されたり、通常文字列がルビ表現パターンに含まれているものがある。
ここでパターン記憶部18に格納されているルビパターン表の例として図3(a)に新聞記事用ルビパターン表の例を、(b)に店舗情報用ルビパターン表の例を示す。各ルビパターン表は、パターン番号(No.)欄、ルビ表現パターン欄、ルビ表現条件欄があり、ルビ表現パターン欄では1つのルビ情報がルビ(\R)、ルビセパレータ(\F、\E)、ルビ対象文字列(\T)、通常文字列の4部分からなる正規表現(文字列を式の形式にて表したもので最も一般に用いられている)を用いてルビ表現パターンとして記入されている。新聞記事用の表中のNo.1ではルビ対象文字列\T、ルビ開始セパレータ\F、ルビ\R、ルビ終了セパレータ\Eのルビ表現パターンであり、これは最も一般なものである。この発明においては例えばNo.2として示すように、\T、\F、\R、\Eの他に通常文字列が\Tの後に「(さん|氏)」として、更に\Rの後に「=.+」が挿入されたり、あるいはNo.3に示すように\Tの前に通常文字列「(長男|次男|三男|長女|次女|三女|妻)」が配置されたり、通常文字列がルビ表現パターンに含まれているものがある。
ルビ表現条件欄では、ルビ、ルビセパレータ、ルビ対象文字列それぞれ個別の制約条件、(ルビ表現条件)が記入されている。ルビ表現条件は、ルビ、ルビ開始セパレータ、ルビ終了セパレータ、ルビ対象文字列を表す正規表現、および、ルビ対象文字列長の条件からなる。
ここでは、正規表現の表記をPerl(プログラミング言語)の表記に従うものとした。ただ、メタ文字を拡張して、ルビ表現としてもよく、\R(ルビ)、\F(ルビ開始セパレータ)、\E(ルビ終了セパレータ)、\T(ルビ対象文字列)および字種として、\h(ひらがな)、\k(カタカナ)、\c(漢字)\a(アルファベット)を追加する。新聞記事用表では、新聞記事中に用いられているルビは主としてひらがなで表記されているからルビとしてはひらがなであることの制約条件「\h」を付け、ルビを付ける文字列は主として漢字が用いられているから、ルビ対象文字列\Tには漢字であることの制約条件「\c」を付けた。また店舗情報を表わす文章ではルビは主としてカタカナが用いられているからルビはカタカナであることの制約条件「\k」を付け、アルファベットに対しルビを付けることが多いから、ルビ対象文字列にアルファベットであることの制約条件「\a」を付けた。なお「\h+」はひらがな1文字以上を表わし、「.+」は任意の字種の1文字以上を表わす。
ここでは、正規表現の表記をPerl(プログラミング言語)の表記に従うものとした。ただ、メタ文字を拡張して、ルビ表現としてもよく、\R(ルビ)、\F(ルビ開始セパレータ)、\E(ルビ終了セパレータ)、\T(ルビ対象文字列)および字種として、\h(ひらがな)、\k(カタカナ)、\c(漢字)\a(アルファベット)を追加する。新聞記事用表では、新聞記事中に用いられているルビは主としてひらがなで表記されているからルビとしてはひらがなであることの制約条件「\h」を付け、ルビを付ける文字列は主として漢字が用いられているから、ルビ対象文字列\Tには漢字であることの制約条件「\c」を付けた。また店舗情報を表わす文章ではルビは主としてカタカナが用いられているからルビはカタカナであることの制約条件「\k」を付け、アルファベットに対しルビを付けることが多いから、ルビ対象文字列にアルファベットであることの制約条件「\a」を付けた。なお「\h+」はひらがな1文字以上を表わし、「.+」は任意の字種の1文字以上を表わす。
この実施形態ではルビ表現条件として、ルビ対象文字列長も、ルビ対象文字列に対する制約とした。この制約条件としては制約なし、弱制約、強制約の3種類の指定を可能としている。制約なしでは、ルビ対象文字列の長さに対する制約はない。入力テキスト中のパターン自体は、ルビ表現パターン欄中のルビ表現パターンと一致(マッチ)していても、弱制約では、ルビ対象文字列の正規表現にマッチした文字数が最小値(表中MINと記述)未満の場合にはパターンマッチしないとして扱い、ルビ対象文字列の正規表現にマッチした文字数が最大値(表中MAXと記述)を超える場合には、パターンマッチ(ルビ表現パターンと一致)するとするが、ルビ対象文字列をその末尾から最大値の長さをもつ文字数に短く設定する。強制約では、ルビ対象文字列の正規表現にマッチした文字数が、最大値(表中MAXと記述)と最小値(表中MINと記述)で記述された文字数条件を満たさない場合には、パターンマッチしないとして扱う。これらのルビ対象文字列長条件では、ルビの文字数(表中rlenと記述)を利用する。例えば新聞記事用表のNo.1ではルビの文字数(rlen)を3で割った値をルビ対象文字列長の最小値とし、この値より小さければパターンは一致しないとし、ルビ対象文字列の文字数がルビの文字数(rlen)より以上であれば末尾のルビの文字数だけをルビ対象文字列とする。新聞記事においてルビを付ける場合は漢字に対する場合が多く、1文字の漢字の読み(ルビ)は一般に1文字〜3文字程度であるから、MIN〉=rlen/3とし、ルビと思われる部分の文字数が漢字1文字に対し、4文字以上の場合はルビとしない。なお図3に示すルビパターン表はあくまで一例であり、そのルビ表現パターンとしては他に各種のものが考えられ、その表示方法もこれに限らない。ルビ表現条件についても同様であり、例えばルビに対し、字種の制約をしなくてもよく、また表記のやり方も他の手法を用いてもよく、ルビ対象文字列長に対する制約も他のやり方で行ってもよく、あるいはルビの文字数に対して制約を与えてもよい。
前述したようにルビ表現パターンにおいて、ルビ情報として\R、\F、\E、\Tを用いたので、これら以外の文字列が通常文字列(形態素解析対象)となるが、他の記述法による正規表現を用いても構わない。またこの例では通常文字列に対する制約条件はルビ表現パターンに直接記述した。前述したように、例えばルビ表現パターン\T(さん|氏)、\F\R・\R=+\Eにおいて「\T(さん|氏)」は通常文字列に対する制約は「さん」と「氏」のいずれかである。なおルビパターン表としては、No.1に示すように最も一般的な\Tと\Fと\Rと\Eとからなるルビ表現パターンの他に、この発明では、これらの他に通常文字列(形態素解析対象)を含むルビ表現パターンが少くとも1つは記述される。
ルビ情報抽出部11では入力テキストの文字列中にルビパターン表中のルビ表現パターンとマッチしたものがあるかを調べるパターンマッチング処理が行われることになる。以下にルビ情報抽出部11の処理手順及び機能構成を図4及び図5を参照して簡単に説明する。
入力テキストの文字列は先頭から順次ずらしながら、ルビパターン表のルビ表現パターンのいずれかとマッチするかがパターンマッチング部21で調べられる(ステップS11)。マッチしない部分は形態素解析テキストとしてテキスト出力部22から出力される(ステップS12)。この例ではルビ\R及びルビ対象文字\Tのそれぞれ字種表現条件がある場合はこれも加味してルビ表現パターンとマッチングするかが調べられる。
入力テキストの文字列は先頭から順次ずらしながら、ルビパターン表のルビ表現パターンのいずれかとマッチするかがパターンマッチング部21で調べられる(ステップS11)。マッチしない部分は形態素解析テキストとしてテキスト出力部22から出力される(ステップS12)。この例ではルビ\R及びルビ対象文字\Tのそれぞれ字種表現条件がある場合はこれも加味してルビ表現パターンとマッチングするかが調べられる。
ステップS11でマッチした部分があれば、ルビ表現パターンに対する文字長制約があるかが制約判定部23で判定され(ステップS13)、制約があれば最小値MINの条件を満たすかの判定がなされ(ステップS14)、この条件を満たさなければこの部分は形態素解析対象テキストとして出力される(ステップS12)。つまり、例えば図3(a)中のNo.1の場合、制約判定部23内の割算部23aで、ルビの文字数rlenを3で割算し、この割算結果がルビ対象文字列の文字数より小さければ、文字長の制約条件を満たさないと判定される。この判定は制約判定部23内の判定部23bで行われる。
ステップS13で文字長の制約がないと判定部23bで判定されると、その文字列中のルビ\Rと対応する文字列がルビ情報としてルビ情報出力部25から出力される(ステップS15)。またその文字列中のルビ対象文字列\Tと対応する文字列、及び通常文字列は形態素解析対象として、ステップS12により、出力部22から出力される。
ステップS14で制約を満たしていると判定部23bで判定されると、更にルビ対象文字列長の最大値MAXに対する制約を満たすかの判定が行なわれ(ステップS16)、その制約を満たせば、つまりこの例ではルビ対象文字列長のルビの文字数rlenが最大値MAX以下であればステップS15に移り、その最大長に対する制約を満たさなければ、ステップS17でその文字列長に対する制約が強制約であるかが調べられ、強制約であればその部分のテキストはマッチしないと判定されてステップS12に移る。ステップS17で強制約でないと判定されると、ルビ対象文字列の末尾からその制約で決められた数だけの文字列が判定対応処理部24でルビ対象文字列として抽出され、つまりルビ対象文字列が短縮される(ステップS18)。例えば図3(a)中のNo.2の場合はルビの文字数rlenだけ、ルビ対象文字列の末尾からルビ対象文字列として抽出され、No.3の場合は末尾の3文字だけがルビ対象文字列として抽出される。その後ステップS15に移る。なお、あるルビ表現パターンにおいて、ルビがルビ対象文字列に対して分割して記述されている場合には、その間に含まれる文字列を形態素解析入力用テキストから除いてもよい。また、ルビセパレータで囲まれた文字列に、通常文字列が含まれる場合(前述のルビが分割して記述されている場合の、その間に含まれる文字列は除く)には、末尾のルビセパレータを「、」(読点)に置き換えてもよい。これらの処理は図5中の破線で示す特殊処理部26で、また図4中の破線ステップS19で行う。ルビ対象文字長に対する制約は下限値MINのみでもよい。その場合は図4中に破線31で示すように、ステップS14で条件を満たすと判定されると、直ちにステップS15に移る。また上限値MAXのみの制約としてもよい。この場合は破線32で示すようにステップS13で制約があると判定されると、破線32で示すように、ステップS18へ直ちに移る。更にこの上限値MAXの制約も強制約のみ、又は弱制約のみ、つまり破線33で示すようにステップS16で条件を満たさなければ直ちにステップS18に移ってもよい。
ステップS14で制約を満たしていると判定部23bで判定されると、更にルビ対象文字列長の最大値MAXに対する制約を満たすかの判定が行なわれ(ステップS16)、その制約を満たせば、つまりこの例ではルビ対象文字列長のルビの文字数rlenが最大値MAX以下であればステップS15に移り、その最大長に対する制約を満たさなければ、ステップS17でその文字列長に対する制約が強制約であるかが調べられ、強制約であればその部分のテキストはマッチしないと判定されてステップS12に移る。ステップS17で強制約でないと判定されると、ルビ対象文字列の末尾からその制約で決められた数だけの文字列が判定対応処理部24でルビ対象文字列として抽出され、つまりルビ対象文字列が短縮される(ステップS18)。例えば図3(a)中のNo.2の場合はルビの文字数rlenだけ、ルビ対象文字列の末尾からルビ対象文字列として抽出され、No.3の場合は末尾の3文字だけがルビ対象文字列として抽出される。その後ステップS15に移る。なお、あるルビ表現パターンにおいて、ルビがルビ対象文字列に対して分割して記述されている場合には、その間に含まれる文字列を形態素解析入力用テキストから除いてもよい。また、ルビセパレータで囲まれた文字列に、通常文字列が含まれる場合(前述のルビが分割して記述されている場合の、その間に含まれる文字列は除く)には、末尾のルビセパレータを「、」(読点)に置き換えてもよい。これらの処理は図5中の破線で示す特殊処理部26で、また図4中の破線ステップS19で行う。ルビ対象文字長に対する制約は下限値MINのみでもよい。その場合は図4中に破線31で示すように、ステップS14で条件を満たすと判定されると、直ちにステップS15に移る。また上限値MAXのみの制約としてもよい。この場合は破線32で示すようにステップS13で制約があると判定されると、破線32で示すように、ステップS18へ直ちに移る。更にこの上限値MAXの制約も強制約のみ、又は弱制約のみ、つまり破線33で示すようにステップS16で条件を満たさなければ直ちにステップS18に移ってもよい。
形態素解析部12は、辞書記憶部14の単語辞書、文法記憶部15の文法規則を用いて、ルビ情報抽出部11からの形態素解析入力用テキストに対して形態素解析を行う。この形態素解析は従来の方法と同様に行えばよく、例えばまず単語辞書検索処理にて文法規則に記述された接続可能な単語連鎖を単語辞書よりすべて抽出し、品詞連鎖と単語とからなる単語連鎖候補例を得て、単語選択処理にてこの単語連鎖候補例に対し優先順位を付け、最も優先順位が高い(=第一解の)単語連鎖、および、その多義となる単語連鎖からなる単語情報列を出力する。
ルビ情報選択部16は、形態素解析部13からの単語情報列を入力し、ルビ情報抽出部11で抽出されたルビ及びルビ対象文字列の情報を用いてルビ対象文字列に相当する単語を特定し、その単語の読みがルビと一致するような単語連鎖が第一解となるように単語情報列を変更する。ルビと一致する読みをもつ単語が単語情報列に存在しない場合には、単語情報列にその単語を追加し、第一解にその単語を含むように単語情報列を変更する。
ルビ情報選択部16の処理手順を図6を参照して説明する。この処理のすべてのステップにおいて、ルビ対象文字列の読みとルビとの比較を行う際には、ルビの字種を、ルビ対象文字列の読みの字種(すなわち辞書記憶部14内の単語辞書の読みの字種)に変換してから比較を行う。例えば、単語辞書の読みの字種がカタカナであり、ルビがひらがなである場合には、ルビをカタカナに変換して比較する。
ルビ情報選択部16の処理手順を図6を参照して説明する。この処理のすべてのステップにおいて、ルビ対象文字列の読みとルビとの比較を行う際には、ルビの字種を、ルビ対象文字列の読みの字種(すなわち辞書記憶部14内の単語辞書の読みの字種)に変換してから比較を行う。例えば、単語辞書の読みの字種がカタカナであり、ルビがひらがなである場合には、ルビをカタカナに変換して比較する。
ステップS31では、ステップS32以降の処理が未処理のルビ対象文字列があるか判定する。未処理のルビ対象文字列がある場合にはステップS32に移行し、未処理のルビ対象文字列がない場合には処理を終了する。
ステップS32では、形態素解析部13からの単語情報列の第一単語連鎖において、ルビ情報抽出部11で抽出されたルビ対象文字列(複数の単語に分割されていてもよい)の読みが、対応するルビと完全一致するかあるいは後方一致するかを判定する。ここで後方一致とは、ルビ対象文字列の読みがルビより長く、ルビ対象文字列の読みの末尾位置にてルビが完全に含まれる場合をいう。例えば、ルビ対象文字列の読みが「ムスコタロウ」でルビが「タロウ」である場合、後方一致していることになる。完全一致か後方一致の場合には、ステップS33に移行し、一致しない場合にはステップS34に移る。ステップS33に移行した場合には、現在の単語連鎖第一解をそのまま第一解とし、ステップS31に戻る。
ステップS32では、形態素解析部13からの単語情報列の第一単語連鎖において、ルビ情報抽出部11で抽出されたルビ対象文字列(複数の単語に分割されていてもよい)の読みが、対応するルビと完全一致するかあるいは後方一致するかを判定する。ここで後方一致とは、ルビ対象文字列の読みがルビより長く、ルビ対象文字列の読みの末尾位置にてルビが完全に含まれる場合をいう。例えば、ルビ対象文字列の読みが「ムスコタロウ」でルビが「タロウ」である場合、後方一致していることになる。完全一致か後方一致の場合には、ステップS33に移行し、一致しない場合にはステップS34に移る。ステップS33に移行した場合には、現在の単語連鎖第一解をそのまま第一解とし、ステップS31に戻る。
ステップS34では、単語情報列の中で、ルビ対象文字列(複数の単語に分割されていてもよい)の読みが、対応するルビと一致する第一解以外の単語が存在するかを判定する。一致する単語が存在する場合にはステップS35に移行し、存在しない場合にはステップS36に移る。ステップS35に移行した場合には、ルビの読みと一致する単語を含む単語連鎖を第一解とし、ステップS31に戻る。
ステップS36では、単語情報列の中で、ルビ対象文字列(複数の単語に分割されていてもよい)の読みが、対応するルビと後方一致する第一解以外の単語が存在するかを判定する。後方一致する単語が存在する場合にはステップS35に移行し、存在しない場合にはステップS37に移行する。ステップS37では、ルビ対象文字列にあたる単語境界で、ルビの読みをもつ新単語を作成し、それを含む単語連鎖の第一解を作成し、ステップS31に戻る。つまり入力単語情報列中のそのルビと対応する単語を、ルビの読みの新単語に置き換える。この具体的方法は例えば特許文献1に示す方法を用いることができる。図1中のルビ情報選択部16内にはルビの字種を単語辞書の読みの字種に変換するための変換部16a、ルビと単語の読みとを比較する比較部16b、その比較結果に応じて入力単語情報列の単語を変更する変更部16c、入力単語情報列をルビの読みをもつ新単語に変更するための単語生成部16dが設けられることになる。なおステップS32で第一解の読みと一致しなければ直ちにステップS31に移ってもよい。あるいはステップS34でルビのもつ単語がなければ、直ちにステップS31に戻ってもよい。またはステップS36で後方一致単語がなければ直ちにステップS31に戻ってもよい。
ステップS36では、単語情報列の中で、ルビ対象文字列(複数の単語に分割されていてもよい)の読みが、対応するルビと後方一致する第一解以外の単語が存在するかを判定する。後方一致する単語が存在する場合にはステップS35に移行し、存在しない場合にはステップS37に移行する。ステップS37では、ルビ対象文字列にあたる単語境界で、ルビの読みをもつ新単語を作成し、それを含む単語連鎖の第一解を作成し、ステップS31に戻る。つまり入力単語情報列中のそのルビと対応する単語を、ルビの読みの新単語に置き換える。この具体的方法は例えば特許文献1に示す方法を用いることができる。図1中のルビ情報選択部16内にはルビの字種を単語辞書の読みの字種に変換するための変換部16a、ルビと単語の読みとを比較する比較部16b、その比較結果に応じて入力単語情報列の単語を変更する変更部16c、入力単語情報列をルビの読みをもつ新単語に変更するための単語生成部16dが設けられることになる。なおステップS32で第一解の読みと一致しなければ直ちにステップS31に移ってもよい。あるいはステップS34でルビのもつ単語がなければ、直ちにステップS31に戻ってもよい。またはステップS36で後方一致単語がなければ直ちにステップS31に戻ってもよい。
ここで、実施例について説明する。
まず、図7(a)に示す新聞記事テキスト例を入力テキストとした場合の実施例を説明する。始めに、ルビ情報抽出部11にてルビパターン表を用いてルビ情報の抽出を行う。その抽出した結果を図8(a)に示す。図8(a)の記述は図3(a)に示したルビパターン表と同様とした。ルビ表現パターンとして、「山田太郎氏(やまた・たろう=横須賀大学名誉教授)、「心筋梗塞(こうそく)」、「妻英子(ひでこ)」、それぞれ図3(a)中のパターン番号No.2、No.1、No.3が適用されて抽出された。ルビ表現条件のうちルビは、「やまた・たろう」、「こうそく」、「ひでこ」であり、ルビ対象文字列は、「山田太郎」、「心筋梗塞」、「英子」である。ここで、ルビ表現パターン「心筋硬塞(こうそく)」において、ルビ対象文字列が「急性心筋硬塞」ではなく「心筋梗塞」となるのは、図3(a)No.1のルビ対象文字列長の制約、つまりルビ「こうそく」の文字数4をルビ対象文字列の文字数6が超えているため、ルビ対象文字列「急性心筋梗塞」の末尾4文字(=最大値)である「心筋梗塞」に短縮されるためである。
まず、図7(a)に示す新聞記事テキスト例を入力テキストとした場合の実施例を説明する。始めに、ルビ情報抽出部11にてルビパターン表を用いてルビ情報の抽出を行う。その抽出した結果を図8(a)に示す。図8(a)の記述は図3(a)に示したルビパターン表と同様とした。ルビ表現パターンとして、「山田太郎氏(やまた・たろう=横須賀大学名誉教授)、「心筋梗塞(こうそく)」、「妻英子(ひでこ)」、それぞれ図3(a)中のパターン番号No.2、No.1、No.3が適用されて抽出された。ルビ表現条件のうちルビは、「やまた・たろう」、「こうそく」、「ひでこ」であり、ルビ対象文字列は、「山田太郎」、「心筋梗塞」、「英子」である。ここで、ルビ表現パターン「心筋硬塞(こうそく)」において、ルビ対象文字列が「急性心筋硬塞」ではなく「心筋梗塞」となるのは、図3(a)No.1のルビ対象文字列長の制約、つまりルビ「こうそく」の文字数4をルビ対象文字列の文字数6が超えているため、ルビ対象文字列「急性心筋梗塞」の末尾4文字(=最大値)である「心筋梗塞」に短縮されるためである。
このルビ情報抽出の結果より、入力テキストからルビセパレータ、ルビ、および分割されたルビ(「やまた」と「たろう」)の間に挟まれた文字列(「・」)を削除し、ルビセパレータで囲まれた中に「=横須賀大学名誉教授」という通常文字列を含むルビ表現パターンの末尾ルビセパレータを「、」に置換し、図8(b)に示す形態素解析入力用テキストを作成する。
次に形態素解析部13において、形態素解析を行い、図9(a)に示す単語連鎖候補例を得て、優先順位の高い単語情報列(図2には第一のみ示す)を得る。
次に形態素解析部13において、形態素解析を行い、図9(a)に示す単語連鎖候補例を得て、優先順位の高い単語情報列(図2には第一のみ示す)を得る。
次に、ルビ情報選択部16において、図6に示した処理手順に従ってルビ情報選択を行う。ステップS31で、未処理のルビ対象文字列「山田太郎」を検出し、ステップS32に移る。ステップS32で、第一解の読みは「ヤマダタロウ」、ルビは「ヤマタタロウ」(カタカナに変換する)であり、これらは一致しないため、ステップS34に移る。ここでは、図9(b)に示すように単語情報候補列内に表記=山田、読み=ヤマタ、品詞=固有名詞:姓の単語が存在していたとする。そこで、ステップS34からステップS35に移り、表記=山田、読み=ヤマダ、品詞=固有名詞:姓という単語を表記=山田、読み=ヤマタ、品詞=固有名詞:姓という単語に置き換えた単語連鎖を第一解として、ステップS31に戻る。つまり単語辞書にルビと一致する読みをもつ単語が登録されていなくても正しい読みの単語とすることができる。
ステップS31で、未処理のルビ対象文字列「心筋梗塞」を検出し、ステップS32に移る。
ステップS32で、第一解の読みは「シンキンコウソク」、ルビは「コウソク」(カタカナに変換する)であり、後方一致するため、ステップS33に移る。ステップS33で、現在の第一解の単語連鎖をそのまま第一解として、ステップS31に戻る。
ステップS32で、第一解の読みは「シンキンコウソク」、ルビは「コウソク」(カタカナに変換する)であり、後方一致するため、ステップS33に移る。ステップS33で、現在の第一解の単語連鎖をそのまま第一解として、ステップS31に戻る。
次いで、ステップS31で、未処理のルビ対象文字列「英子」を検出し、ステップS32に移る。ステップS32で、第一解の読み「ヒデコ」がルビの読み「ヒデコ」(カタカナに変換する)に一致するため、ステップS33に移る。ステップS33で、現在の第一解の単語連鎖をそのまま第一解として、ステップS31に戻る。
ステップS31で、すべてのルビ対象文字列に対して処理を行ったので、処理を終了する。
この結果、図8(b)に示す単語情報列(図示は第一解のみ)を、最終結果として出力する。
ステップS31で、すべてのルビ対象文字列に対して処理を行ったので、処理を終了する。
この結果、図8(b)に示す単語情報列(図示は第一解のみ)を、最終結果として出力する。
次に、図7(b)に示す店舗情報用テキスト例を入力テキストとした場合の実施例を説明する。始めに、ルビ情報抽出部11にてルビパターン表(図3(b))を用いてルビ情報を抽出する。その結果、図10(a)に示すルビ情報が抽出される。この場合は、抽出されたルビ表現パターンは、「sucre(シュクレ)」のみであり、ルビ表現条件のルビは、「シュクレ」であり、ルビ対象文字列は、「sucre」である。ここで、テキスト中の「AD(アドバンスデザイン)」は、図3(b)のNo.1のルビ表現条件のうち、ルビ、ルビ開始セパレータ、ルビ終了セパレータ、ルビ対象文字列に対しては満たすが、ルビの文字数rlen=9を3で割った値3以上にルビ対象文字列長=2にならず、強制約のMIN>=rlen/3を満たさないため、ルビ表現パターンとならない。
このルビ情報抽出の結果より、入力テキストからルビセパレータ、ルビを削除し、図10(b)に示す形態素解析入力用テキストを作成する。
次に形態素解析部13において形態素解析を行い、図11(a)に示す単語連鎖候補列を得て、単語情報列(図示は第一解のみ)を得る。
次に、ルビ情報選択部16において、図6に示した処理手順に従ってルビ情報選択を行う。
ステップS31で、未処理のルビ対象文字列「sucre」を検出し、ステップS32に移る。
次に形態素解析部13において形態素解析を行い、図11(a)に示す単語連鎖候補列を得て、単語情報列(図示は第一解のみ)を得る。
次に、ルビ情報選択部16において、図6に示した処理手順に従ってルビ情報選択を行う。
ステップS31で、未処理のルビ対象文字列「sucre」を検出し、ステップS32に移る。
ステップS32で、第一解の読みは「エスユーシーアールイー」、ルビは「シュクレ」であり、両者は一致しないため、ステップS34に移る。
ステップS34で、ルビの読みを持つ単語が存在しないため(「sucre」は未知語)、ステップS36に移る。
ステップS36で、後方一致する単語が存在しないため、ステップS37に移る。ステップS37で、表記=sucre、読み=シュクレ、品詞=未知語とする新単語を作成し、表記=sucre、読み=エスユーシーアールイー、品詞=未知語の代わりにこれを第一解に含む単語連鎖を作成し、ステップS31に戻る。つまり単語辞書にルビの読みと一致する単語がなくても、新単語を作成して、出力することができる。
ステップS34で、ルビの読みを持つ単語が存在しないため(「sucre」は未知語)、ステップS36に移る。
ステップS36で、後方一致する単語が存在しないため、ステップS37に移る。ステップS37で、表記=sucre、読み=シュクレ、品詞=未知語とする新単語を作成し、表記=sucre、読み=エスユーシーアールイー、品詞=未知語の代わりにこれを第一解に含む単語連鎖を作成し、ステップS31に戻る。つまり単語辞書にルビの読みと一致する単語がなくても、新単語を作成して、出力することができる。
ステップS31で、すべてのルビ対象文字列に対して処理を行ったので、処理を終了する。
この結果、図11(b)の単語情報列(図示は第一解のみ)を、最終結果として出力する。
ルビ対象文字列長に対する下限値MINに対する制約はMAXと同様にrlen値で行ってもよい。
図1に示したテキスト解析装置はコンピュータにより機能させることもできる。その場合は図2、図4、図6に示した処理手順の各ステップをコンピュータに実行させるためのプログラムをコンピュータにCD−ROM、磁気ディスク、半導体記憶装置などの記録媒体からインストールし、あるいは通信回線を介してダウンロードして、そのプログラムを実行させればよい。
この結果、図11(b)の単語情報列(図示は第一解のみ)を、最終結果として出力する。
ルビ対象文字列長に対する下限値MINに対する制約はMAXと同様にrlen値で行ってもよい。
図1に示したテキスト解析装置はコンピュータにより機能させることもできる。その場合は図2、図4、図6に示した処理手順の各ステップをコンピュータに実行させるためのプログラムをコンピュータにCD−ROM、磁気ディスク、半導体記憶装置などの記録媒体からインストールし、あるいは通信回線を介してダウンロードして、そのプログラムを実行させればよい。
以上のように、この発明にかかるテキスト解析装置および方法、そのプログラム、その記録媒体は、例えばテキストを入力とする音声合成において、テキストを形態素解析し、その解析結果を用いて音声合成する技術に利用される。
Claims (11)
- 入力テキストを入力して単語情報列を出力するテキスト解析装置において、
ルビ、ルビを表すための境界情報であるルビセパレータ、ルビ対象文字列、通常文字列を含むルビ表現パターンを表すルビパターン表を用いてルビ情報部分を決定し、上記入力テキストからルビとルビセパレータを削除した形態素解析入力用テキストを作成するルビ情報抽出手段と、
上記形態素解析入力用テキストを入力とし、単語辞書と文法規則を用いて単語情報列を出力する形態素解析手段と、
上記ルビ情報抽出手段よりのルビ情報を参照して、付与されたルビを含む単語が第一解に含まれるように上記単語情報列を変更するルビ情報選択手段とを備えたことを特徴とするテキスト解析装置。 - 入力テキストを形態素解析して単語情報列を出力するテキスト解析方法において、
ルビ情報抽出部により、ルビ、ルビを表すための境界情報であるルビセパレータ、ルビ対象文字列、形態素解析の対象となる通常文字列を含むルビ表現パターンを表すルビパターン表をパターン記憶部から読み出し参照して上記入力テキスト中からルビと、ルビセパレータを削除して形態素解析用テキストを作成し、
形態素解析部により、辞書記憶部の辞書及び文法記憶部の文法規則を読み出し参照して上記形態素解析用テキストを形態素解析して単語情報列を生成し、
ルビ情報抽出部により、付与されたルビを含む単語の読みの第一解が、上記抽出したルビの読みと一致するように、上記単語情報列を変更する
ことを特徴とするテキスト解析方法。 - 上記形態素解析用テキストを作成する過程において、
入力テキストをその先頭から上記ルビパターン表中の各ルビ表現パターンに対し、パターンマッチング処理を行い、
パターンがマッチすれば対応するルビ、ルビセパレータ、ルビ対象文字列を抽出し、
その抽出されたルビおよびルビセパレータを上記入力テキストから除去し、
上記単語情報列を変更する過程において、上記抽出したルビ対象文字列も参照して変更処理を行うことを特徴とする請求項2記載のテキスト解析方法。 - 上記パターンマッチング処理において、ルビ表現パターンに対するルビ対象文字列長に対するそのルビ表現パターンとマッチしたテキスト部分中のルビ対象文字列が上記下限値の制約があれば、その下限値の制約を満たすかを調べ、
満たしていなければそのテキスト部分はマッチしないとすることを特徴とする請求項3記載のテキスト解析方法。 - 上記パターンマッチング処理において、ルビ表現パターンに対するルビ対象文字列長に対する上限値の制約があれば、そのルビ表現パターンとマッチしたテキスト部分中ルビ対象文字列の末尾から上記上限値の数だけをルビ対象文字列することを特徴とする請求項3又は4記載のテキスト解析方法。
- 上記パターンマッチング処理において、ルビ表現パターンに対するルビ対象文字列長に対する上限値の制約があれば、その上限値の制約を満たすかを調べ、
満たしていなければそのテキスト部分はマッチしないとすることを特徴とする請求項3又は4記載のテキスト解析方法。 - 上記単語情報の変更過程において、ルビと単語情報列第一解の読みが一致しない場合は、上記単語情報列中に、ルビの読みと完全に一致する読みをもつ単語を検索し、それが存在すればその単語が単語情報列の第一解に含まれるように変更することを特徴とする請求項2〜6のいずれかに記載のテキスト解析方法。
- 上記単語検索において、完全一致する読みをもつ単語が存在しなければ、上記ルビの読みと後方一致する読みをもつ単語を検索し、それが存在すれば、その単語が単語情報列の第一解に含まれるように変更することを特徴とする請求項7記載のテキスト解析方法。
- 上記後方一致する読みをもつ単語が存在しなければ、上記ルビの読みを持つ単語を生成してその単語が単語情報列の第一解に含まれるように変更することを特徴とする請求項8記載のテキスト解析方法。
- 請求項2〜9のいずれかに記載したテキスト解析方法の各過程をコンピュータに実行させるためのテキスト解析プログラム。
- 請求項10に記載のテキスト解析プログラムが記録されたコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004141520A JP2005322162A (ja) | 2004-05-11 | 2004-05-11 | テキスト解析装置、その方法、プログラムおよびその記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004141520A JP2005322162A (ja) | 2004-05-11 | 2004-05-11 | テキスト解析装置、その方法、プログラムおよびその記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005322162A true JP2005322162A (ja) | 2005-11-17 |
Family
ID=35469388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004141520A Pending JP2005322162A (ja) | 2004-05-11 | 2004-05-11 | テキスト解析装置、その方法、プログラムおよびその記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005322162A (ja) |
-
2004
- 2004-05-11 JP JP2004141520A patent/JP2005322162A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5144940B2 (ja) | 目次抽出におけるロバスト性向上 | |
JP2002117027A (ja) | 感情情報抽出方法および感情情報抽出プログラムの記録媒体 | |
JP5447368B2 (ja) | 新規事例生成装置、新規事例生成方法及び新規事例生成用プログラム | |
JP2009059300A (ja) | 訳語学習のためのデータを作成する装置、方法、およびプログラム | |
JP2008234049A (ja) | 要約文生成装置及び要約文生成プログラム | |
KR20130074176A (ko) | 말뭉치 기반의 한국어 형태소 분석장치 및 그 분석방법 | |
JP3975825B2 (ja) | 文字認識誤り訂正方法、装置及びプログラム | |
JP2005322162A (ja) | テキスト解析装置、その方法、プログラムおよびその記録媒体 | |
JP2006053866A (ja) | カタカナ文字列の表記ゆれの検出方法 | |
JP5326781B2 (ja) | 抽出規則作成システム、抽出規則作成方法及び抽出規則作成プログラム | |
JP2009140411A (ja) | 文章要約装置および文章要約方法 | |
AlGahtani et al. | Joint Arabic segmentation and part-of-speech tagging | |
JP2004206659A (ja) | 読み情報決定方法及び装置及びプログラム | |
JP4304146B2 (ja) | 辞書登録装置、辞書登録方法および辞書登録プログラム | |
EP1072986A2 (en) | System and method for extracting data from semi-structured text | |
JP5521670B2 (ja) | パターンマッチング装置、翻訳装置、翻訳システム及び翻訳プログラム | |
Sedlácek et al. | Automatic Processing of Czech Inflectional and Derivative Morphology | |
JP2008293070A (ja) | 文書解析システム、および文書解析方法、並びにコンピュータ・プログラム | |
JP3949874B2 (ja) | 翻訳訳語学習方法、翻訳訳語学習装置、記憶媒体及び翻訳システム | |
JP2000259673A (ja) | 単語分割方法と装置 | |
JP2005173753A (ja) | 自然語辞書更新装置、更新方法、プログラム及び記録媒体 | |
JP3048793B2 (ja) | 文字変換装置 | |
JP2005189955A (ja) | 文書処理方法、文書処理装置、制御プログラム及び記録媒体 | |
JPH0231274A (ja) | 単語辞書検索装置 | |
JP2000311170A (ja) | テキスト情報抽出方法 |