テキスト整形規則獲得装置、その方法、構造判定装置、それらのプログラム
【課題】構造判定に用いる整形規則を自動生成する。
【解決手段】N行(Nは2以上の整数)からなるテキスト中の全ての行について形態素解析を行うことで形態素に分割し(9、S10)、N行全ての文について、第n+1(n=1,...,N−1)行目の行頭の1以上の形態素を用いてクラスタリングを行い(16、S18)、主要文に属する主要行であること、または主要文に属さない非主要行であること、のうち少なくとも一方を示す整形規則を前記クラスタリングの情報から生成し(18)、前記整形規則を格納する(20、S22)。
【解決手段】N行(Nは2以上の整数)からなるテキスト中の全ての行について形態素解析を行うことで形態素に分割し(9、S10)、N行全ての文について、第n+1(n=1,...,N−1)行目の行頭の1以上の形態素を用いてクラスタリングを行い(16、S18)、主要文に属する主要行であること、または主要文に属さない非主要行であること、のうち少なくとも一方を示す整形規則を前記クラスタリングの情報から生成し(18)、前記整形規則を格納する(20、S22)。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、例えば、音声合成に使用される文の整形規則を獲得するテキスト整形規則獲得装置、その方法、そのプログラム、そして、獲得した整形規則を用いて文の構造を判定する構造判定装置、そのプログラムに関する。
【背景技術】
【0002】
従来の音声合成(TTS:Text to speech)のテキスト処理では、「平文」を入力対象としているものが多い。最近では、非特許文献1および、非特許文献2のように、WEB上のブログページの読み上げも行われ始めたが、これは、WEBに埋め込まれているHTMLやXMLのタグによって文書の外観を制御するので、タグの解析結果に従って、TTSが想定する平文相当の文を取得しやすい。また、独自の書式を持つ電子メールのメーラ・プログラムやその他の応用ツールからはそれらの応用プログラムでの情報格納構造に従うことにより合成対象の平文相当の文を取得できるため、同様に問題が少ない。
【0003】
一方、電子メールからコピー・ペーストで取得されたテキストや、構造情報を持たない電子メールプログラムからダウンロードしたメールのテキストや、それらに添付される形態情報を持たないテキストでは、その外観は書き手が決めた任意の位置での改行や文字の位置によって決まっており、構造を示す体系立ったタグなど記号が付与されるわけではないので、音声合成の前に平文相当の文への整形が必要となる。
【0004】
そこで、音声合成による読み上げにおいては、予め人手で用意された規則を用いた文の整形方式が提案されている。その規則生成の困難性を回避する目的で、電子メールなどの文書データから学習して得られた規則を用いて、入力文書の本文の通常行と引用行とを区別して音声合成用の文に整形する特許文献1のような方式が提案されている。
【非特許文献1】<http://tech.yahoo.com/blogs/hughes/8431;ylt=Agh6OsDQIU21I9Ld1UIErNEmLpA5 >の”Yahoo Tech”というWEBサイトの記事(Fri Jan 19,2007 5:26AM EST) ”From Blog to Podcast with Odiogo”
【非特許文献2】<http://www.odiogo.com/press.php>のYahooTech’Techie Diva (January19,2007)の”From Blog to Podcast with Odiogo”
【特許文献1】特開平第11−272580号
【発明の開示】
【発明が解決しようとする課題】
【0005】
特許文献1の技術において、通常行と引用行とを区別するためには、通常行と引用行とを区別するためのラベルを付した学習データを予め用意しておかなければならなかった。このラベルの付加は、人間が行う場合が多く、非常に煩雑であった。
【0006】
本発明は、例えば、メール(テキスト)の引用部分ではない、メールの本文のような、ユーザが必要であると判断する主要文に属する行(以下、「主要行」という。)と当該主要文ではない、つまりユーザが必要でない非主要文に属する行(以下、「非主要行」という。)とを分けるための整形規則を獲得することを自動化するテキスト整形規則獲得装置、その方法、そのプログラム、そして生成された整形規則を用いる構造判定装置を提供する。
【課題を解決するための手段】
【0007】
本発明のテキスト整形規則獲得装置は、形態素解析部と、クラスタリング部と、規則生成部と、を備える。形態素解析部は、入力されたテキスト中の全ての行について形態素解析を行うことで形態素に分割する。クラスタリング部は、行頭の1以上の形態素を用いて、形態素に分割された前記テキストの全ての行についてクラスタリングをする。規則生成部は、主要文に属する主要行であること、または非主要文に属する非主要行であること、のうち少なくとも一方を示す整形規則を前記クラスタリングの情報から生成する。なお、主要文とは、例えば音声合成時に読みあげ対象となる文であり、非主要文とは、そのほかの文である。メールのような場合は、本文を主要文、引用文を非主要文と決めればよい。どのような文を主要文、非主要文とするかは、ユーザが適宜設計変更ですればよい。
【発明の効果】
【0008】
上記の構成のように、行頭の1以上の形態素を用いて、形態素に分割されたテキスト全ての行について、クラスタリングを行うことにより、主要行を示す規則の候補となるクラスタと、非主要行を示す規則の候補となるクラスタとに分ける。そして、主要行であること、または非主要行であること、のうち少なくとも一方を示す整形規則をクラスタリングの情報から生成する。これにより、主要行(上記特許文献1の技術では通常行と言及)と非主要行(上記特許文献1の技術では引用行と言及)とに分けるために、人間がラベルを付した学習データを必要とすることなく、自動的に整形規則を獲得できる。
【発明を実施するための最良の形態】
【0009】
以下に、発明を実施するための最良の形態を示す。なお、同じ機能を持つ構成部や同じ処理を行う過程には同じ番号を付し、重複説明を省略する。以下の説明では、「文」または「文章」とは1以上の「行」から構成されるものとする。
【実施例1】
【0010】
図1に実施例1のテキスト整形規則獲得装置200−1とこれに付随する記憶装置100の機能構成例を示し、図2にテキスト整形規則獲得装置200−1の主な処理を示す。また、図3に、整形規則獲得の対象となる入力されるテキストの例を示す。この例では、テキストの行数は19行である。1〜7行目の行は、本文であるので、主要行である。「>」が行頭に付されている9〜12行目の行は、非主要行である引用行(引用文を構成する行)を示す。15行〜19行目の行も本文ではなく、非主要文である。「>」が付されている行については、「>」の後に半角スペースが用いられているとする。テキスト整形規則獲得装置200−1は、連結作成部6と形態素解析部9とつながり度計算部12とクラスタリング部16と規則生成部18とで構成される。また記憶装置100は、テキスト格納部2とつながり度付き行格納部14と規則格納部20とで構成される。
【0011】
図1記載のテキスト整形規則獲得装置200−1は、図示しない範囲指定装置を有する。範囲指定装置は、計算機本体、文書を表示するディスプレイ、キーボード、マウスなどで構成される。これらを使って、規則獲得の対象となるテキストが入力されると、当該テキストを1行ずつテキスト格納部2に格納させる(ステップS2)。
【0012】
そして、連結作成部6が、テキスト格納部2から1行目と2行目の行(ステップS4)、2行目と3行目の行,...,n行目とn+1行目の行(n=1,...,N−1),...,N−1行目とN行目の行とを取り出す(ステップS6)。そして、連結作成部6は、n行目とn+1行目の行とを連結して、連結位置を記憶する(ステップS8)。入力されたテキストが連結された例を図4に示す。行と行の間に「◆」を用い、空行は「(空行)」とし、ファイルの末尾は「(ファイル末)」とした。「◆」については、あくまで行と行とが連結されていることを示すためだけのものであり、以下の形態素解析部9の形態素解析処理、つながり度計算部12のつながり度計算処理などにおいては記号としては考慮しないものである。
【0013】
そして、形態素解析部9は、連結された行全てについて、形態素解析を行い、形態素に分割する(ステップS10)。つながり度計算部12は、回帰モデルを用いて、N行全てについて、第n行目(n=1,...,N−1)の行末の1以上の形態素と、第n+1行目の行頭の1以上の形態素とを用いて、第n行目の行と第n+1行目の行とがつながる可能性を示すつながり度を計算する(ステップS12)。計算されたつながり度は、第n+1行目の行のつながり度として、第n+1行目の行に付与される。第n行目の行と第n+1行目の行とが連結された状態で、形態素解析部9が形態素解析した結果、境界の「◆」の位置が何らかの単語の内部に来る場合には、つながり度計算部12は、n+1行目の行に高いつながり度を付与する。
【0014】
ここで、つながり度が低い行というのは、その行と前の行とのつながる可能性が低く、逆に、つながり度が高い行というのは、その行と前の行とのつながる可能性が高いということである。
【0015】
また、回帰モデルとは、確率的言語モデル、回帰木、数量化II類、ニューラルネットワーク、条件付確率場モデルなどである。全てのモデルはn−1行目の行末の1つ以上の形態素とn行目の行頭の1つ以上の形態素との間のつながりの可能性を示すつながり度を計算するよう構成される。各モデルの学習には、例えば、新聞記事などの大量の文からなるデータベースを用いて学習する。
【0016】
言語モデルでは、例えば、n−1行目の行末の1つ以上の形態素とn行目の行頭の形態素と間に境界が来る条件付確率であるP(n−1行目の行末の1つ以上の形態素、n行目の行頭の1つ以上の形態素)を用いることが可能である。この値が大きいほど境界の存在する可能性が低く、すなわち、つながり度が高く、この値が小さいほど境界の存在する可能性が高く、すなわち、つながり度が低い。
【0017】
回帰木、数量化II類、ニューラルネットワークでは、説明変数や入力に、n行目の行末の形態素とn+1行目の行頭の形態素とを設定し、非説明変数や出力につながり度を設定できる。条件付確率場モデルでは、例えば、素性としてn行目の行末の1つ以上の形態素、n+1行目の行頭の1つ以上の形態素を設定し、その素性の下で境界が来る確率として定義してつながり度の計算に利用する。nがN−1になるまで、つながり度の計算を行う(ステップS14、ステップS16)。このように、つながり度計算部12は、電子メールといった処理対象の構造に限定されることなく大量に用意できる新聞などの言語データから学習した回帰モデルを用いて、つながり度を求めることができる。そして、つながり度計算部12は、n行目の行とn+1行目の行とのつながり度をn+1行目の行に付与する。付与された結果例を図5に示す。つながり度が付与された行を一旦、つながり度付き行格納部14に格納させることが好ましい。そして、ここでは、後述するクラスタリング部でのクラスタリング処理のために、図5に示す結果をつながり度、行頭の第1〜4形態素を要素とする5元のベクトルとして表現し、当該ベクトルの例を図6に示す。ベクトルの要素数は任意でよい。また、このように、ベクトル表現しなくても良い。参照用に行の行番号を右端に記した。この番号は、図3の左端に示した行番号と同じである。
【0018】
クラスタリング部16は、第n+1行目(n=1、...、N−1)の行頭の1以上の形態素と、第n行目と第n+1行目とのつながり度(つまり、n+1行目の行に付与されたつながり度)を用いて、形態素に分割されたテキストのN行全てについて、クラスタリングを行う。ここでは、図6に示すベクトルを用いて、クラスタリングを行う(ステップS18)。図7にクラスタリング後の結果例を示す。以下の説明では、クラスタに属するベクトルを項という。例えば、クラスタ1の1番目の項は、(0、>、半角スペース、田中、です)になる。図7の例では、クラスタ1には、つながり度が「0」であり、第1、第2形態素が特殊な記号(図7の例では「> 半角スペース」)であるベクトルが属する。クラスタ2には、つながり度が「0」であり、第1形態素が特殊な記号でないベクトルが属する。クラスタ3には、つながり度が100であるベクトルが属する。図7では、各クラスタは、つながり度が低い順かつ、共通性の高い形態素を有している順に列挙されている。図7の例のように、「>」などの特殊記号を形態素に含むクラスタ1や、つながり度が0であるクラスタ2(クラスタリング前の行が非主要行であるクラスタ)は、後述する非主要行を示す規則の候補となり、つながり度が高いクラスタ3(クラスタリング前の行が主要行であるクラスタ)は主要行を示す規則の候補となる。また、1以上の形態素として特殊な記号を含む行の他の例として、本文中の表を構成している行や箇条書きされている行などがある。
【0019】
また、つながり度計算部12がつながり度を離散的に出力し、クラスタリング処理に当該離散的なつながり度を用いると、クラスタリング効率が更によくなる。例えば、つながり度計算部12が、つながり度を0、10、20、・・・などのように出力すると、つながり度を用いたクラスタリング処理が更に円滑になる。
【0020】
規則生成部18は、主要文に属する主要行であること、または主要文に属さない非主要行であること、のうち少なくとも一方を示す整形規則をクラスタリングの情報から生成する。まず、整形規則について説明する。整形規則の例を図8に示す。ここで、整形規則とは規則が集合したものである。規則1は、クラスタ1から求められた(求め方は後述する)規則であり、規則2〜12は、クラスタ2の全ての項であり、規則13以降は、クラスタ3の全ての項である。そして、以下の実施例4で説明する構造判定装置は、この整形規則を用いて、入力された文を構成するそれぞれの行(テキスト)が主要行であるか、または、非主要行なのかを判定する。
【0021】
そして、以下で説明する構造判定装置でこの整形規則が用いられる場合、当該構造判定装置が、つながり度が0である規則が規定する第1形態素〜第4形態素を有する行を非主要行と判定し、つながり度が100である規則が規定する第1形態素〜第4形態素を有する行を主要行と判定する。以下では、非主要行と判定する規則を非主要行規則とし、主要行と判定する規則を主要行規則とする。例えば、規則1が規定する第1形態素が「>」であり、第2形態素が「半角スペース」である行は非主要行と判定する規則であることを示している。この例では、つながり度が0または100である場合を説明したが、それ以外のつながり度が用いられる場合もある。その場合は、予め閾値を決めておき、つながり度が当該閾値以上/より大きい規則を、主要行規則とし、つながり度が当該閾値以下/未満である規則を、非主要行規則とすればよい。
【0022】
次に規則生成部18による規則生成手法の詳細を図8を用いて説明する。クラスタリング結果(図7参照)を全て整形規則としても良い。しかし、それでは、整形規則が膨大な量になるため、効率的ではない。そこで、規則生成部18が、形態素が1つ以上共通している項を選択すればよい。この選択処理は、図7のように、各クラスタをベクトル表現している場合には、各クラスタからセントロイドベクトルを求める処理ともいえる。このようにすることで、整形規則の量を少なくでき、汎用的な整形規則を得ることができる。
【0023】
規則生成部18による、形態素が1つ以上共通している項の選択処理について、説明する。例えば、クラスタ1に属する行番号9〜12の項の中で、行番号10の項(ベクトル)は、「>、半角スペース、空白、空白」である。このベクトル中の「>、半角スペース」が、行番号9、11、12の項の先頭の2つの形態素(0、>)と共通している。従って、規則生成部18は、行番号が9〜12の項から、第1形態素が「>」であり、第2形態素が「半角スペース」である規則1を得ることができる。図8の例では、規則1は(>、半角スペース、*、*)と示しており、「*」は何でも良いことを示す。
【0024】
一方、クラスタ3に属する項のように、つながり度が高い項についての行は、その行とその前の行がつながる可能性が高いということであり、一般の文章の可能性が高い。従って、行頭の形態素(第1形態素)は様々であるので(図7の例では、「田中」「佐藤」など)、形態素が共通する項を抽出することは困難である。また、クラスタ2に属する項のように、つながり度が低い項であっても、行頭の形態素(第1形態素)は様々なので、形態素が共通する項を抽出することは困難である。従って、クラスタ2、3の各項をそのまま整形規則としてもよい。
【0025】
ところが、規則2〜規則12は、規則1と比較して汎用性がない規則であるといえる(つまり不必要な規則である)。何故なら、例えば規則2に示すように、第1形態素〜第4形態素が 佐藤さとこ(さとう という行が、後述する構造判定装置に入力されることは極めて稀だからである。規則3〜12についても同様である。
【0026】
また、つながり度が100である規則13以降は、つながり度が高いから、非主要行を判定する規則を生成する場合は、不必要である。そこで、ユーザが不必要な規則2以降を排除することが好ましい(ステップS20)。ユーザによる排除の方法は、提示部22を設けて、提示部22に生成された整形規則を提示して、ユーザが入力部24から排除情報を入力すればよい。
【0027】
また、提示部22を設けず、規則生成部18が、全ての形態素が異なる項を選択せずに、1つ以上の形態素が共通している項、もしくは、「*」を含む項を自動的に抽出して規則としても良い。また、規則生成部18が、頻繁に使用されることが予想される1以上の形態素(例えば、「>」等の記号)を予め定めておき、その形態素を含む項を抽出して規則としてもよい。図8の例では、つながり度が含まれているが、必ずしも含む必要はない。
【0028】
そして選択された整形規則は規則格納部20に格納させる(ステップS22)。
【0029】
また、連結作成部6と形態素解析部9において、先に、形態素解析部9により全ての行について形態素解析を行い、形態素に分解された状態で、n行目の行とn+1行の行とを連結させてもよい。また、連結作成部6を設けず、n行目の行とn+1行目の行とを連結させずに、つながり度計算部12が、第n行目(n=1,...,N−1)の行末の1以上の形態素と、第n+1行目の行頭の1以上の形態素とを取り出して、第n+1行目の行のつながり度を求めても良い。
【0030】
このように、n+1行目の行頭の形態素と、n行目の行とn+1行目の行とのつながり度を用いて規則を生成することで、つながり度が低い規則を、非主要行規則とすることが出来る。従って、従来のように、主要行、非主要行を分けるためにラベルを付する必要がなく、自動的に主要行、非主要行のうち少なくとも一方を示す規則を得ることができる。
【0031】
また、上述のように、つながり度は、電子メールといった処理対象の構造に限定されることなく、大量に用意できる新聞の言語データから学習した回帰モデルを用いて求められる。そして、第n+1行目の行のつながり度と、第n+1行目の行頭の1以上の形態素とを用いて、整形規則の候補となるクラスタを得ることができる。従って、処理対象特有の、しかし、人間が見ても繰り返しなどがあり、明らかな構造も取りこぼすことなく整形規則を獲得できる。
また、記憶装置100とテキスト整形規則獲得装置200−1とは統合させてもよい。
【0032】
[変形例1]
図9に変形例1のテキスト整形規則獲得装置200−2の機能構成例を示し、図10にテキスト整形規則獲得装置200−2の主な処理の流れを示す。図11に変形例1のテキスト整形規則獲得装置200−2による整形規則獲得の対象となるテキストの例を示す。テキスト整形規則獲得装置200−2は、つながり度計算部12がない点でテキスト整形規則獲得装置200−1と異なる。図11に示すテキストは、14行目〜19行目がない点で、図3に示したテキストと異なる。例えば、図11に示したテキストについてのクラスタリング部16によるクラスタリング結果は図12に示すようになる。この場合には、つながり度を用いなくても、例えば、テキスト中の各行において行頭の1以上の形態素が共通しているかを見て、共通している形態素があれば(この例では「>」)、同位置に当該形態素を有する行を非主要行であることを示す規則の候補となるクラスタとすればよい。従って、例えば図11に示したテキストについて規則を生成する場合は、つながり度計算部12(図2記載のステップS12)を設ける必要がなく、結果として、演算処理の削減を図ることができる。
【実施例2】
【0033】
図13に実施例2のテキスト整形規則獲得装置200−3の機能構成例を示し、図14にテキスト整形規則獲得装置200−3の主な処理の流れを示す。テキスト整形規則獲得装置200−3は第1除去部8、除去対象記号格納部10がある点で、テキスト整形規則獲得装置200−1とは異なる。例えば、入力されるテキスト中の全ての行の行頭に、空白スペースなどの記号がある場合がある。その場合、つながり度計算部12のつながり度計算処理が正確に行われなくなる場合がある。このような状況を回避するために、予め定められた第1除去対象記号(例えば、空白スペース)を除去対象記号格納部10に格納させておき、第1除去部8が、入力されたテキストの全ての行から当該第1除去対象記号を除去すればよい(ステップS24)。このようにすることで例えば、全ての行に空白スペースがある場合には、空白スペースを第1除去対象記号として、除去することで、正確なつながり度を計算できる。
【実施例3】
【0034】
図15に実施例3のテキスト整形規則獲得装置200−4の機能構成例を示し、図16にテキスト整形規則獲得装置200−4の主な処理の流れを示す。テキスト整形規則獲得装置200−4は、第2除去部26、除去対象記号格納部10がある点でテキスト整形規則獲得装置200−1(図1参照)と異なる。
【0035】
第2除去部26は、整形規則中の非主要行を示す規則の始めから1以上の形態素を第2除去対象記号として決定し(ステップS30)、当該第2除去対象記号を前記テキストの全ての行から除去する(ステップS32)。
【0036】
例えば、図17に示すテキストの14行〜15行のように、「>」が2つ続けて用いられ、引用文が更に引用文として用いられる場合がある。図17では、「>」と「>」の間には空白スペースなどは存在せず、連続しているとする。この場合、規則生成部18は図18に示すような規則を生成する。図18に示す規則では、規則1、2ともに非主要行であることを示す。例えば、行頭の第1形態素である「>」を第2除去対象記号とする。そして、入力されたテキストのうち、非主要行とみなされる行(図17では9〜21行目の行)が再度、テキスト格納部2に格納される。そして、当該格納された行から第2除去対象記号である「>」を除去すると、図19に示すようになる。図19に示すように、9行〜12行目の行頭の「>」が除去され、14行、15行目の行頭の「>」が1つになる。この図19のテキストについて、再度、同様の処理を続けると、引用文の引用文についての構造(2回引用された構造)、つまり階層構造についての規則を獲得できる。なお、図19記載のテキストから生成される規則は、図18記載の規則1である。この規則1の第1〜第3形態素を第2〜第4形態素に繰り下げて配置させ、空いた第1形態素の位置に第2除去対象記号を加えることで規則2が生成される。
【0037】
階層構造が何層にもなっているテキストから規則を生成する場合は、全ての階層構造について整形規則が終了した場合や、整形規則を生成する回数が、予め定めた回数を超えた場合等で処理を終了させれば良い(ステップS34)。なお、1回目の整形規則生成後、テキスト格納部2に格納させるテキストは、上記説明では、非主要行と見なされる行のみであったが、入力されたテキスト全てについてテキスト格納部2に格納させても良い。
【実施例4】
【0038】
前述の上記特許文献1では、予め学習に使われた文書での実際の構造判定対象と文書でのそれらの特徴とがミスマッチを起こす場合に、学習に基づく手法で得られた規則は一般的にはうまく機能しない。例えば、音声合成処理において、学習段階では「引用文(つまり、読み上げ対象でない文)を構成する行の行頭には、「>」が付されている」として学習したが、引用文を構成する行aの行頭に「:」などの(つまり、「>」とは違う)記号が付されている場合は、その行aを引用文を構成する行として判定しないという問題がある。このように、様々な文書を処理対象とする場合、学習データと処理対象との間でのミスマッチは常に問題となる。
【0039】
そこで、この実施例4の構造判定装置のように、構造判定対象の文書についての規則を生成し、この生成された規則を用いて、文書の構造判定を行えば、構造判定対象の文書の非主要行(引用文を構成する行)の行頭にいかなる記号が用いられたとしても、柔軟に当該構造判定対象の文書の構造を判定できる。図20に構造判定装置300と音声合成装置400との機能構成例を示す。構造判定装置300は、上記実施例1〜3で説明したテキスト整形規則獲得装置200−1〜200−4のうち何れかと記憶装置100を用いたものである。そして、構造判定装置300が例えば音声合成装置400と共に使用される場合、構造判定装置300は、文書が読み上げ対象となる行(つまり主要行)であるのか、読み上げ対象とならない行(つまり非主要行)であるのかを判定する。構造判定装置300は、テキスト整形規則獲得装置200−1〜200−4のうち何れか(以下、テキスト整形規則獲得装置200と記す)と判定部302とで構成されている。
【0040】
構造判定対象の文書A(例えば、図3に示すテキスト)が構造判定装置300に入力されると、テキスト整形規則獲得装置200と判定部302に入力される。そして、テキスト整形規則獲得装置200で、文書Aについて整形規則B(図8に示す整形規則)が生成され、規則格納部20に格納される。そして、判定部302は整形規則Bを用いて、文書Aの各行が主要行であるか、非主要行であるかを判定して、例えば、行毎に、主要行もしくは非主要行を示すラベルを付加する。このようにして主要行、非主要行が区別された文書A’は、音声合成装置400中の構造情報付加部402に入力される。
【0041】
構造情報付加部402では、判定部302の判定結果を受けて、文書A’のうち、一続きと判定された行をつなぎ合わせることで、改行を取り去り文章としてまとめ上げる。そして、音声合成部404で、付加された構造情報を基に音声合成を行う。構造情報を付加した各行が文としてつながることで、音声合成においてイントネーションが自然になる。
【0042】
また図8記載の整形規則には、つながり度が含まれているが、構造判定処理の際には、つながり度は用いない。
【0043】
次に、構造判定装置300と音声合成装置400とを用いた場合の有利な効果を具体的に説明する。例えば、図21に、構造判定対象の文書Cを示す。文書C(図21参照)は、文書A(図3参照)と比較して、9行目〜12行目の行頭の記号「>」が「田中:」になっている点で異なる。図3のように、引用を示す場合に、行頭に「>」を付加する場合も多いが、メールを送ってきた人の名字と記号を用いて(図21の例では、「田中:」である)、示すこともしばしばある。図21では、「田中」と「:」と「次の形態素」との間に半角スペースなどはなく、お互いが連続しているものとする。上記特許文献1の技術では、例えば「>」が行頭についている行が非主要行であるという学習データがある場合、本来は非主要行である9行目〜12行目の行は、非主要行という判定をされない。つまり、上記特許文献1の技術では、「田中:」が行頭に付いた行が非主要行であることを示す学習データを用いなければ正しく判定される規則を獲得できず、9行目〜12行目の行は非主要行であると判定できず、学習データと処理対象の文書との間でのミスマッチが生じている事になる。
【0044】
しかし、この構造判定装置300であれば、図21に示す文書について、テキスト整形規則獲得装置200が、図22に示すような規則を生成するので、9行目〜12行目の行を非主要行として判定できる。つまり、構造判定装置300は、テキスト中の非主要行の行頭がどのような記号であっても、柔軟に非主要行か主要行かの判定できる。また、整形規則によって、各行が選別され、すなわち主要文(メールの場合は本文)か否かの構造情報が付与されることと等価であるので、付与された構造を利用することで、主要文以外の文の読み飛ばし等の制御も可能である。
【0045】
テキスト整形規則獲得装置200−1〜200−4の各部の処理を図示しない制御部が制御しても良い。また、テキスト整形規則獲得装置200−1〜200−4、構造判定装置300における処理機能をコンピュータによって実現する場合、これらの装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、これらの装置における処理機能がコンピュータ上で実現される。
【図面の簡単な説明】
【0046】
【図1】実施例1のテキスト整形規則獲得装置の機能構成例を示す図。
【図2】実施例1のテキスト整形規則獲得装置の主な処理の流れを示す図。
【図3】実施例1のテキスト整形規則獲得装置に入力されるテキストの例を示した図。
【図4】テキストの前後の文をつなぎ合わせたことを示す図。
【図5】テキストの各文につながり度を付与した図。
【図6】図5に示したものを5元のベクトルとして示した図。
【図7】図6に示したベクトルをクラスタリングした結果を示した図。
【図8】実施例1のテキスト整形規則獲得装置により生成される整形規則を示した図。
【図9】変形例1のテキスト整形規則獲得装置の機能構成例を示す図。
【図10】変形例1のテキスト整形規則獲得装置の主な処理の流れを示す図。
【図11】変形例1のテキスト整形規則獲得装置に入力されるテキストの例を示し図。
【図12】変形例1のテキスト整形規則獲得装置のクラスタリングの結果の例を示す図。
【図13】実施例2のテキスト整形規則獲得装置の機能構成例を示す図。
【図14】実施例2のテキスト整形規則獲得装置の主な処理の流れを示す図。
【図15】実施例3のテキスト整形規則獲得装置の機能構成例を示す図。
【図16】実施例3のテキスト整形規則獲得装置の主な処理の流れを示す図。
【図17】実施例3のテキスト整形規則獲得装置に入力されるテキストの例を示す図。
【図18】実施例3のテキスト整形規則獲得装置により生成される整形規則を示した図。
【図19】図18に示すテキストから第2除去対象記号「>」を除去した結果を示した図。
【図20】この発明の構造判定装置などの機能構成例を示した図。
【図21】この発明の構造判定装置の効果を示すためのテキストの例を示す図。
【図22】図21に示したテキストから生成される整形規則を示す図。
【技術分野】
【0001】
この発明は、例えば、音声合成に使用される文の整形規則を獲得するテキスト整形規則獲得装置、その方法、そのプログラム、そして、獲得した整形規則を用いて文の構造を判定する構造判定装置、そのプログラムに関する。
【背景技術】
【0002】
従来の音声合成(TTS:Text to speech)のテキスト処理では、「平文」を入力対象としているものが多い。最近では、非特許文献1および、非特許文献2のように、WEB上のブログページの読み上げも行われ始めたが、これは、WEBに埋め込まれているHTMLやXMLのタグによって文書の外観を制御するので、タグの解析結果に従って、TTSが想定する平文相当の文を取得しやすい。また、独自の書式を持つ電子メールのメーラ・プログラムやその他の応用ツールからはそれらの応用プログラムでの情報格納構造に従うことにより合成対象の平文相当の文を取得できるため、同様に問題が少ない。
【0003】
一方、電子メールからコピー・ペーストで取得されたテキストや、構造情報を持たない電子メールプログラムからダウンロードしたメールのテキストや、それらに添付される形態情報を持たないテキストでは、その外観は書き手が決めた任意の位置での改行や文字の位置によって決まっており、構造を示す体系立ったタグなど記号が付与されるわけではないので、音声合成の前に平文相当の文への整形が必要となる。
【0004】
そこで、音声合成による読み上げにおいては、予め人手で用意された規則を用いた文の整形方式が提案されている。その規則生成の困難性を回避する目的で、電子メールなどの文書データから学習して得られた規則を用いて、入力文書の本文の通常行と引用行とを区別して音声合成用の文に整形する特許文献1のような方式が提案されている。
【非特許文献1】<http://tech.yahoo.com/blogs/hughes/8431;ylt=Agh6OsDQIU21I9Ld1UIErNEmLpA5 >の”Yahoo Tech”というWEBサイトの記事(Fri Jan 19,2007 5:26AM EST) ”From Blog to Podcast with Odiogo”
【非特許文献2】<http://www.odiogo.com/press.php>のYahooTech’Techie Diva (January19,2007)の”From Blog to Podcast with Odiogo”
【特許文献1】特開平第11−272580号
【発明の開示】
【発明が解決しようとする課題】
【0005】
特許文献1の技術において、通常行と引用行とを区別するためには、通常行と引用行とを区別するためのラベルを付した学習データを予め用意しておかなければならなかった。このラベルの付加は、人間が行う場合が多く、非常に煩雑であった。
【0006】
本発明は、例えば、メール(テキスト)の引用部分ではない、メールの本文のような、ユーザが必要であると判断する主要文に属する行(以下、「主要行」という。)と当該主要文ではない、つまりユーザが必要でない非主要文に属する行(以下、「非主要行」という。)とを分けるための整形規則を獲得することを自動化するテキスト整形規則獲得装置、その方法、そのプログラム、そして生成された整形規則を用いる構造判定装置を提供する。
【課題を解決するための手段】
【0007】
本発明のテキスト整形規則獲得装置は、形態素解析部と、クラスタリング部と、規則生成部と、を備える。形態素解析部は、入力されたテキスト中の全ての行について形態素解析を行うことで形態素に分割する。クラスタリング部は、行頭の1以上の形態素を用いて、形態素に分割された前記テキストの全ての行についてクラスタリングをする。規則生成部は、主要文に属する主要行であること、または非主要文に属する非主要行であること、のうち少なくとも一方を示す整形規則を前記クラスタリングの情報から生成する。なお、主要文とは、例えば音声合成時に読みあげ対象となる文であり、非主要文とは、そのほかの文である。メールのような場合は、本文を主要文、引用文を非主要文と決めればよい。どのような文を主要文、非主要文とするかは、ユーザが適宜設計変更ですればよい。
【発明の効果】
【0008】
上記の構成のように、行頭の1以上の形態素を用いて、形態素に分割されたテキスト全ての行について、クラスタリングを行うことにより、主要行を示す規則の候補となるクラスタと、非主要行を示す規則の候補となるクラスタとに分ける。そして、主要行であること、または非主要行であること、のうち少なくとも一方を示す整形規則をクラスタリングの情報から生成する。これにより、主要行(上記特許文献1の技術では通常行と言及)と非主要行(上記特許文献1の技術では引用行と言及)とに分けるために、人間がラベルを付した学習データを必要とすることなく、自動的に整形規則を獲得できる。
【発明を実施するための最良の形態】
【0009】
以下に、発明を実施するための最良の形態を示す。なお、同じ機能を持つ構成部や同じ処理を行う過程には同じ番号を付し、重複説明を省略する。以下の説明では、「文」または「文章」とは1以上の「行」から構成されるものとする。
【実施例1】
【0010】
図1に実施例1のテキスト整形規則獲得装置200−1とこれに付随する記憶装置100の機能構成例を示し、図2にテキスト整形規則獲得装置200−1の主な処理を示す。また、図3に、整形規則獲得の対象となる入力されるテキストの例を示す。この例では、テキストの行数は19行である。1〜7行目の行は、本文であるので、主要行である。「>」が行頭に付されている9〜12行目の行は、非主要行である引用行(引用文を構成する行)を示す。15行〜19行目の行も本文ではなく、非主要文である。「>」が付されている行については、「>」の後に半角スペースが用いられているとする。テキスト整形規則獲得装置200−1は、連結作成部6と形態素解析部9とつながり度計算部12とクラスタリング部16と規則生成部18とで構成される。また記憶装置100は、テキスト格納部2とつながり度付き行格納部14と規則格納部20とで構成される。
【0011】
図1記載のテキスト整形規則獲得装置200−1は、図示しない範囲指定装置を有する。範囲指定装置は、計算機本体、文書を表示するディスプレイ、キーボード、マウスなどで構成される。これらを使って、規則獲得の対象となるテキストが入力されると、当該テキストを1行ずつテキスト格納部2に格納させる(ステップS2)。
【0012】
そして、連結作成部6が、テキスト格納部2から1行目と2行目の行(ステップS4)、2行目と3行目の行,...,n行目とn+1行目の行(n=1,...,N−1),...,N−1行目とN行目の行とを取り出す(ステップS6)。そして、連結作成部6は、n行目とn+1行目の行とを連結して、連結位置を記憶する(ステップS8)。入力されたテキストが連結された例を図4に示す。行と行の間に「◆」を用い、空行は「(空行)」とし、ファイルの末尾は「(ファイル末)」とした。「◆」については、あくまで行と行とが連結されていることを示すためだけのものであり、以下の形態素解析部9の形態素解析処理、つながり度計算部12のつながり度計算処理などにおいては記号としては考慮しないものである。
【0013】
そして、形態素解析部9は、連結された行全てについて、形態素解析を行い、形態素に分割する(ステップS10)。つながり度計算部12は、回帰モデルを用いて、N行全てについて、第n行目(n=1,...,N−1)の行末の1以上の形態素と、第n+1行目の行頭の1以上の形態素とを用いて、第n行目の行と第n+1行目の行とがつながる可能性を示すつながり度を計算する(ステップS12)。計算されたつながり度は、第n+1行目の行のつながり度として、第n+1行目の行に付与される。第n行目の行と第n+1行目の行とが連結された状態で、形態素解析部9が形態素解析した結果、境界の「◆」の位置が何らかの単語の内部に来る場合には、つながり度計算部12は、n+1行目の行に高いつながり度を付与する。
【0014】
ここで、つながり度が低い行というのは、その行と前の行とのつながる可能性が低く、逆に、つながり度が高い行というのは、その行と前の行とのつながる可能性が高いということである。
【0015】
また、回帰モデルとは、確率的言語モデル、回帰木、数量化II類、ニューラルネットワーク、条件付確率場モデルなどである。全てのモデルはn−1行目の行末の1つ以上の形態素とn行目の行頭の1つ以上の形態素との間のつながりの可能性を示すつながり度を計算するよう構成される。各モデルの学習には、例えば、新聞記事などの大量の文からなるデータベースを用いて学習する。
【0016】
言語モデルでは、例えば、n−1行目の行末の1つ以上の形態素とn行目の行頭の形態素と間に境界が来る条件付確率であるP(n−1行目の行末の1つ以上の形態素、n行目の行頭の1つ以上の形態素)を用いることが可能である。この値が大きいほど境界の存在する可能性が低く、すなわち、つながり度が高く、この値が小さいほど境界の存在する可能性が高く、すなわち、つながり度が低い。
【0017】
回帰木、数量化II類、ニューラルネットワークでは、説明変数や入力に、n行目の行末の形態素とn+1行目の行頭の形態素とを設定し、非説明変数や出力につながり度を設定できる。条件付確率場モデルでは、例えば、素性としてn行目の行末の1つ以上の形態素、n+1行目の行頭の1つ以上の形態素を設定し、その素性の下で境界が来る確率として定義してつながり度の計算に利用する。nがN−1になるまで、つながり度の計算を行う(ステップS14、ステップS16)。このように、つながり度計算部12は、電子メールといった処理対象の構造に限定されることなく大量に用意できる新聞などの言語データから学習した回帰モデルを用いて、つながり度を求めることができる。そして、つながり度計算部12は、n行目の行とn+1行目の行とのつながり度をn+1行目の行に付与する。付与された結果例を図5に示す。つながり度が付与された行を一旦、つながり度付き行格納部14に格納させることが好ましい。そして、ここでは、後述するクラスタリング部でのクラスタリング処理のために、図5に示す結果をつながり度、行頭の第1〜4形態素を要素とする5元のベクトルとして表現し、当該ベクトルの例を図6に示す。ベクトルの要素数は任意でよい。また、このように、ベクトル表現しなくても良い。参照用に行の行番号を右端に記した。この番号は、図3の左端に示した行番号と同じである。
【0018】
クラスタリング部16は、第n+1行目(n=1、...、N−1)の行頭の1以上の形態素と、第n行目と第n+1行目とのつながり度(つまり、n+1行目の行に付与されたつながり度)を用いて、形態素に分割されたテキストのN行全てについて、クラスタリングを行う。ここでは、図6に示すベクトルを用いて、クラスタリングを行う(ステップS18)。図7にクラスタリング後の結果例を示す。以下の説明では、クラスタに属するベクトルを項という。例えば、クラスタ1の1番目の項は、(0、>、半角スペース、田中、です)になる。図7の例では、クラスタ1には、つながり度が「0」であり、第1、第2形態素が特殊な記号(図7の例では「> 半角スペース」)であるベクトルが属する。クラスタ2には、つながり度が「0」であり、第1形態素が特殊な記号でないベクトルが属する。クラスタ3には、つながり度が100であるベクトルが属する。図7では、各クラスタは、つながり度が低い順かつ、共通性の高い形態素を有している順に列挙されている。図7の例のように、「>」などの特殊記号を形態素に含むクラスタ1や、つながり度が0であるクラスタ2(クラスタリング前の行が非主要行であるクラスタ)は、後述する非主要行を示す規則の候補となり、つながり度が高いクラスタ3(クラスタリング前の行が主要行であるクラスタ)は主要行を示す規則の候補となる。また、1以上の形態素として特殊な記号を含む行の他の例として、本文中の表を構成している行や箇条書きされている行などがある。
【0019】
また、つながり度計算部12がつながり度を離散的に出力し、クラスタリング処理に当該離散的なつながり度を用いると、クラスタリング効率が更によくなる。例えば、つながり度計算部12が、つながり度を0、10、20、・・・などのように出力すると、つながり度を用いたクラスタリング処理が更に円滑になる。
【0020】
規則生成部18は、主要文に属する主要行であること、または主要文に属さない非主要行であること、のうち少なくとも一方を示す整形規則をクラスタリングの情報から生成する。まず、整形規則について説明する。整形規則の例を図8に示す。ここで、整形規則とは規則が集合したものである。規則1は、クラスタ1から求められた(求め方は後述する)規則であり、規則2〜12は、クラスタ2の全ての項であり、規則13以降は、クラスタ3の全ての項である。そして、以下の実施例4で説明する構造判定装置は、この整形規則を用いて、入力された文を構成するそれぞれの行(テキスト)が主要行であるか、または、非主要行なのかを判定する。
【0021】
そして、以下で説明する構造判定装置でこの整形規則が用いられる場合、当該構造判定装置が、つながり度が0である規則が規定する第1形態素〜第4形態素を有する行を非主要行と判定し、つながり度が100である規則が規定する第1形態素〜第4形態素を有する行を主要行と判定する。以下では、非主要行と判定する規則を非主要行規則とし、主要行と判定する規則を主要行規則とする。例えば、規則1が規定する第1形態素が「>」であり、第2形態素が「半角スペース」である行は非主要行と判定する規則であることを示している。この例では、つながり度が0または100である場合を説明したが、それ以外のつながり度が用いられる場合もある。その場合は、予め閾値を決めておき、つながり度が当該閾値以上/より大きい規則を、主要行規則とし、つながり度が当該閾値以下/未満である規則を、非主要行規則とすればよい。
【0022】
次に規則生成部18による規則生成手法の詳細を図8を用いて説明する。クラスタリング結果(図7参照)を全て整形規則としても良い。しかし、それでは、整形規則が膨大な量になるため、効率的ではない。そこで、規則生成部18が、形態素が1つ以上共通している項を選択すればよい。この選択処理は、図7のように、各クラスタをベクトル表現している場合には、各クラスタからセントロイドベクトルを求める処理ともいえる。このようにすることで、整形規則の量を少なくでき、汎用的な整形規則を得ることができる。
【0023】
規則生成部18による、形態素が1つ以上共通している項の選択処理について、説明する。例えば、クラスタ1に属する行番号9〜12の項の中で、行番号10の項(ベクトル)は、「>、半角スペース、空白、空白」である。このベクトル中の「>、半角スペース」が、行番号9、11、12の項の先頭の2つの形態素(0、>)と共通している。従って、規則生成部18は、行番号が9〜12の項から、第1形態素が「>」であり、第2形態素が「半角スペース」である規則1を得ることができる。図8の例では、規則1は(>、半角スペース、*、*)と示しており、「*」は何でも良いことを示す。
【0024】
一方、クラスタ3に属する項のように、つながり度が高い項についての行は、その行とその前の行がつながる可能性が高いということであり、一般の文章の可能性が高い。従って、行頭の形態素(第1形態素)は様々であるので(図7の例では、「田中」「佐藤」など)、形態素が共通する項を抽出することは困難である。また、クラスタ2に属する項のように、つながり度が低い項であっても、行頭の形態素(第1形態素)は様々なので、形態素が共通する項を抽出することは困難である。従って、クラスタ2、3の各項をそのまま整形規則としてもよい。
【0025】
ところが、規則2〜規則12は、規則1と比較して汎用性がない規則であるといえる(つまり不必要な規則である)。何故なら、例えば規則2に示すように、第1形態素〜第4形態素が 佐藤さとこ(さとう という行が、後述する構造判定装置に入力されることは極めて稀だからである。規則3〜12についても同様である。
【0026】
また、つながり度が100である規則13以降は、つながり度が高いから、非主要行を判定する規則を生成する場合は、不必要である。そこで、ユーザが不必要な規則2以降を排除することが好ましい(ステップS20)。ユーザによる排除の方法は、提示部22を設けて、提示部22に生成された整形規則を提示して、ユーザが入力部24から排除情報を入力すればよい。
【0027】
また、提示部22を設けず、規則生成部18が、全ての形態素が異なる項を選択せずに、1つ以上の形態素が共通している項、もしくは、「*」を含む項を自動的に抽出して規則としても良い。また、規則生成部18が、頻繁に使用されることが予想される1以上の形態素(例えば、「>」等の記号)を予め定めておき、その形態素を含む項を抽出して規則としてもよい。図8の例では、つながり度が含まれているが、必ずしも含む必要はない。
【0028】
そして選択された整形規則は規則格納部20に格納させる(ステップS22)。
【0029】
また、連結作成部6と形態素解析部9において、先に、形態素解析部9により全ての行について形態素解析を行い、形態素に分解された状態で、n行目の行とn+1行の行とを連結させてもよい。また、連結作成部6を設けず、n行目の行とn+1行目の行とを連結させずに、つながり度計算部12が、第n行目(n=1,...,N−1)の行末の1以上の形態素と、第n+1行目の行頭の1以上の形態素とを取り出して、第n+1行目の行のつながり度を求めても良い。
【0030】
このように、n+1行目の行頭の形態素と、n行目の行とn+1行目の行とのつながり度を用いて規則を生成することで、つながり度が低い規則を、非主要行規則とすることが出来る。従って、従来のように、主要行、非主要行を分けるためにラベルを付する必要がなく、自動的に主要行、非主要行のうち少なくとも一方を示す規則を得ることができる。
【0031】
また、上述のように、つながり度は、電子メールといった処理対象の構造に限定されることなく、大量に用意できる新聞の言語データから学習した回帰モデルを用いて求められる。そして、第n+1行目の行のつながり度と、第n+1行目の行頭の1以上の形態素とを用いて、整形規則の候補となるクラスタを得ることができる。従って、処理対象特有の、しかし、人間が見ても繰り返しなどがあり、明らかな構造も取りこぼすことなく整形規則を獲得できる。
また、記憶装置100とテキスト整形規則獲得装置200−1とは統合させてもよい。
【0032】
[変形例1]
図9に変形例1のテキスト整形規則獲得装置200−2の機能構成例を示し、図10にテキスト整形規則獲得装置200−2の主な処理の流れを示す。図11に変形例1のテキスト整形規則獲得装置200−2による整形規則獲得の対象となるテキストの例を示す。テキスト整形規則獲得装置200−2は、つながり度計算部12がない点でテキスト整形規則獲得装置200−1と異なる。図11に示すテキストは、14行目〜19行目がない点で、図3に示したテキストと異なる。例えば、図11に示したテキストについてのクラスタリング部16によるクラスタリング結果は図12に示すようになる。この場合には、つながり度を用いなくても、例えば、テキスト中の各行において行頭の1以上の形態素が共通しているかを見て、共通している形態素があれば(この例では「>」)、同位置に当該形態素を有する行を非主要行であることを示す規則の候補となるクラスタとすればよい。従って、例えば図11に示したテキストについて規則を生成する場合は、つながり度計算部12(図2記載のステップS12)を設ける必要がなく、結果として、演算処理の削減を図ることができる。
【実施例2】
【0033】
図13に実施例2のテキスト整形規則獲得装置200−3の機能構成例を示し、図14にテキスト整形規則獲得装置200−3の主な処理の流れを示す。テキスト整形規則獲得装置200−3は第1除去部8、除去対象記号格納部10がある点で、テキスト整形規則獲得装置200−1とは異なる。例えば、入力されるテキスト中の全ての行の行頭に、空白スペースなどの記号がある場合がある。その場合、つながり度計算部12のつながり度計算処理が正確に行われなくなる場合がある。このような状況を回避するために、予め定められた第1除去対象記号(例えば、空白スペース)を除去対象記号格納部10に格納させておき、第1除去部8が、入力されたテキストの全ての行から当該第1除去対象記号を除去すればよい(ステップS24)。このようにすることで例えば、全ての行に空白スペースがある場合には、空白スペースを第1除去対象記号として、除去することで、正確なつながり度を計算できる。
【実施例3】
【0034】
図15に実施例3のテキスト整形規則獲得装置200−4の機能構成例を示し、図16にテキスト整形規則獲得装置200−4の主な処理の流れを示す。テキスト整形規則獲得装置200−4は、第2除去部26、除去対象記号格納部10がある点でテキスト整形規則獲得装置200−1(図1参照)と異なる。
【0035】
第2除去部26は、整形規則中の非主要行を示す規則の始めから1以上の形態素を第2除去対象記号として決定し(ステップS30)、当該第2除去対象記号を前記テキストの全ての行から除去する(ステップS32)。
【0036】
例えば、図17に示すテキストの14行〜15行のように、「>」が2つ続けて用いられ、引用文が更に引用文として用いられる場合がある。図17では、「>」と「>」の間には空白スペースなどは存在せず、連続しているとする。この場合、規則生成部18は図18に示すような規則を生成する。図18に示す規則では、規則1、2ともに非主要行であることを示す。例えば、行頭の第1形態素である「>」を第2除去対象記号とする。そして、入力されたテキストのうち、非主要行とみなされる行(図17では9〜21行目の行)が再度、テキスト格納部2に格納される。そして、当該格納された行から第2除去対象記号である「>」を除去すると、図19に示すようになる。図19に示すように、9行〜12行目の行頭の「>」が除去され、14行、15行目の行頭の「>」が1つになる。この図19のテキストについて、再度、同様の処理を続けると、引用文の引用文についての構造(2回引用された構造)、つまり階層構造についての規則を獲得できる。なお、図19記載のテキストから生成される規則は、図18記載の規則1である。この規則1の第1〜第3形態素を第2〜第4形態素に繰り下げて配置させ、空いた第1形態素の位置に第2除去対象記号を加えることで規則2が生成される。
【0037】
階層構造が何層にもなっているテキストから規則を生成する場合は、全ての階層構造について整形規則が終了した場合や、整形規則を生成する回数が、予め定めた回数を超えた場合等で処理を終了させれば良い(ステップS34)。なお、1回目の整形規則生成後、テキスト格納部2に格納させるテキストは、上記説明では、非主要行と見なされる行のみであったが、入力されたテキスト全てについてテキスト格納部2に格納させても良い。
【実施例4】
【0038】
前述の上記特許文献1では、予め学習に使われた文書での実際の構造判定対象と文書でのそれらの特徴とがミスマッチを起こす場合に、学習に基づく手法で得られた規則は一般的にはうまく機能しない。例えば、音声合成処理において、学習段階では「引用文(つまり、読み上げ対象でない文)を構成する行の行頭には、「>」が付されている」として学習したが、引用文を構成する行aの行頭に「:」などの(つまり、「>」とは違う)記号が付されている場合は、その行aを引用文を構成する行として判定しないという問題がある。このように、様々な文書を処理対象とする場合、学習データと処理対象との間でのミスマッチは常に問題となる。
【0039】
そこで、この実施例4の構造判定装置のように、構造判定対象の文書についての規則を生成し、この生成された規則を用いて、文書の構造判定を行えば、構造判定対象の文書の非主要行(引用文を構成する行)の行頭にいかなる記号が用いられたとしても、柔軟に当該構造判定対象の文書の構造を判定できる。図20に構造判定装置300と音声合成装置400との機能構成例を示す。構造判定装置300は、上記実施例1〜3で説明したテキスト整形規則獲得装置200−1〜200−4のうち何れかと記憶装置100を用いたものである。そして、構造判定装置300が例えば音声合成装置400と共に使用される場合、構造判定装置300は、文書が読み上げ対象となる行(つまり主要行)であるのか、読み上げ対象とならない行(つまり非主要行)であるのかを判定する。構造判定装置300は、テキスト整形規則獲得装置200−1〜200−4のうち何れか(以下、テキスト整形規則獲得装置200と記す)と判定部302とで構成されている。
【0040】
構造判定対象の文書A(例えば、図3に示すテキスト)が構造判定装置300に入力されると、テキスト整形規則獲得装置200と判定部302に入力される。そして、テキスト整形規則獲得装置200で、文書Aについて整形規則B(図8に示す整形規則)が生成され、規則格納部20に格納される。そして、判定部302は整形規則Bを用いて、文書Aの各行が主要行であるか、非主要行であるかを判定して、例えば、行毎に、主要行もしくは非主要行を示すラベルを付加する。このようにして主要行、非主要行が区別された文書A’は、音声合成装置400中の構造情報付加部402に入力される。
【0041】
構造情報付加部402では、判定部302の判定結果を受けて、文書A’のうち、一続きと判定された行をつなぎ合わせることで、改行を取り去り文章としてまとめ上げる。そして、音声合成部404で、付加された構造情報を基に音声合成を行う。構造情報を付加した各行が文としてつながることで、音声合成においてイントネーションが自然になる。
【0042】
また図8記載の整形規則には、つながり度が含まれているが、構造判定処理の際には、つながり度は用いない。
【0043】
次に、構造判定装置300と音声合成装置400とを用いた場合の有利な効果を具体的に説明する。例えば、図21に、構造判定対象の文書Cを示す。文書C(図21参照)は、文書A(図3参照)と比較して、9行目〜12行目の行頭の記号「>」が「田中:」になっている点で異なる。図3のように、引用を示す場合に、行頭に「>」を付加する場合も多いが、メールを送ってきた人の名字と記号を用いて(図21の例では、「田中:」である)、示すこともしばしばある。図21では、「田中」と「:」と「次の形態素」との間に半角スペースなどはなく、お互いが連続しているものとする。上記特許文献1の技術では、例えば「>」が行頭についている行が非主要行であるという学習データがある場合、本来は非主要行である9行目〜12行目の行は、非主要行という判定をされない。つまり、上記特許文献1の技術では、「田中:」が行頭に付いた行が非主要行であることを示す学習データを用いなければ正しく判定される規則を獲得できず、9行目〜12行目の行は非主要行であると判定できず、学習データと処理対象の文書との間でのミスマッチが生じている事になる。
【0044】
しかし、この構造判定装置300であれば、図21に示す文書について、テキスト整形規則獲得装置200が、図22に示すような規則を生成するので、9行目〜12行目の行を非主要行として判定できる。つまり、構造判定装置300は、テキスト中の非主要行の行頭がどのような記号であっても、柔軟に非主要行か主要行かの判定できる。また、整形規則によって、各行が選別され、すなわち主要文(メールの場合は本文)か否かの構造情報が付与されることと等価であるので、付与された構造を利用することで、主要文以外の文の読み飛ばし等の制御も可能である。
【0045】
テキスト整形規則獲得装置200−1〜200−4の各部の処理を図示しない制御部が制御しても良い。また、テキスト整形規則獲得装置200−1〜200−4、構造判定装置300における処理機能をコンピュータによって実現する場合、これらの装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、これらの装置における処理機能がコンピュータ上で実現される。
【図面の簡単な説明】
【0046】
【図1】実施例1のテキスト整形規則獲得装置の機能構成例を示す図。
【図2】実施例1のテキスト整形規則獲得装置の主な処理の流れを示す図。
【図3】実施例1のテキスト整形規則獲得装置に入力されるテキストの例を示した図。
【図4】テキストの前後の文をつなぎ合わせたことを示す図。
【図5】テキストの各文につながり度を付与した図。
【図6】図5に示したものを5元のベクトルとして示した図。
【図7】図6に示したベクトルをクラスタリングした結果を示した図。
【図8】実施例1のテキスト整形規則獲得装置により生成される整形規則を示した図。
【図9】変形例1のテキスト整形規則獲得装置の機能構成例を示す図。
【図10】変形例1のテキスト整形規則獲得装置の主な処理の流れを示す図。
【図11】変形例1のテキスト整形規則獲得装置に入力されるテキストの例を示し図。
【図12】変形例1のテキスト整形規則獲得装置のクラスタリングの結果の例を示す図。
【図13】実施例2のテキスト整形規則獲得装置の機能構成例を示す図。
【図14】実施例2のテキスト整形規則獲得装置の主な処理の流れを示す図。
【図15】実施例3のテキスト整形規則獲得装置の機能構成例を示す図。
【図16】実施例3のテキスト整形規則獲得装置の主な処理の流れを示す図。
【図17】実施例3のテキスト整形規則獲得装置に入力されるテキストの例を示す図。
【図18】実施例3のテキスト整形規則獲得装置により生成される整形規則を示した図。
【図19】図18に示すテキストから第2除去対象記号「>」を除去した結果を示した図。
【図20】この発明の構造判定装置などの機能構成例を示した図。
【図21】この発明の構造判定装置の効果を示すためのテキストの例を示す図。
【図22】図21に示したテキストから生成される整形規則を示す図。
【特許請求の範囲】
【請求項1】
入力されたテキスト中の全ての行について形態素解析を行うことで形態素に分割する形態素解析部と、
行頭の1以上の形態素を用いて、形態素に分割された前記テキスト中の全ての行についてクラスタリングをするクラスタリング部と、
主要文に属する主要行であること、または非主要文に属する非主要行であること、のうち少なくとも一方を示す整形規則を前記クラスタリングの情報から生成する規則生成部と、を備えるテキスト整形規則獲得装置。
【請求項2】
N行(Nは2以上の整数)からなるテキスト中の全ての行について形態素解析を行うことで形態素に分割する形態素解析部と、
回帰モデルを用いて、N行全てについて、第n行目(n=1,...,N−1)の行末の1以上の形態素と、第n+1行目の行頭の1以上の形態素とを用いて、第n行目の行と第n+1行目の行とがつながる可能性を示すつながり度を計算するつながり度計算部と、
第n+1行目の行頭の1以上の形態素と、第n行目の行と第n+1行目の行とのつながり度を用いて、形態素に分割された前記テキストのN行全ての行についてクラスタリングをするクラスタリング部と、
主要文に属する主要行であること、または非主要文に属する非主要行であること、のうち少なくとも一方を示す整形規則を前記クラスタリングの情報から生成する規則生成部と、を備えるテキスト整形規則獲得装置。
【請求項3】
請求項2記載のテキスト整形規則獲得装置であって、
前記つながり度計算部は、前記つながり度を離散的に出力することを特徴とするテキスト整形規則獲得装置。
【請求項4】
請求項1〜3の何れかに記載のテキスト整形規則獲得装置であって、
前記規則生成部は、少なくとも1つのクラスタ中において、形態素が1つ以上共通している項を規則として整形規則を生成するものであることを特徴とするテキスト整形規則獲得装置。
【請求項5】
請求項1〜4の何れかに記載のテキスト整形規則獲得装置であって、
前記テキストから、予め定められた第1除去対象記号を除去する第1除去部を有し、
前記クラスタリング部は、前記第1除去対象記号を除去したテキストについて処理を行うことを特徴とするテキスト整形規則獲得装置。
【請求項6】
請求項1〜5の何れかに記載のテキスト整形規則獲得装置であって、
前記整形規則中の前記非主要行を示す規則の始めの1以上の形態素を第2除去対象記号として、当該第2除去対象記号を前記テキストから除去する第2除去部を有し、
前記クラスタリング部は、前記第2除去対象記号を除去したテキストについて処理を行うことを特徴とするテキスト整形規則獲得装置。
【請求項7】
請求項1〜6の何れかに記載のテキスト整形規則獲得装置であって、
前記生成された整形規則のうち、必要な規則のみを残すための選択情報が入力される入力部を備え、
前記規則生成部は、前記選択情報で示す必要な規則のみを残すことを特徴とするテキスト整形規則獲得装置。
【請求項8】
請求項1〜7の何れかに記載のテキスト整形規則獲得装置と、
入力されたテキストについて当該テキスト整形規則獲得装置により生成された整形規則を用いて、前記テキストから前記非主要行であることを判定する判定部と、を備える構造判定装置。
【請求項9】
入力されたテキスト中の全ての行について形態素解析を行うことで形態素に分割する過程と、
行頭の1以上の形態素を用いて、形態素に分割された前記テキスト中の全ての行についてクラスタリングをする過程と、
主要文に属する主要行であること、または非主要文に属する非主要行であること、のうち少なくとも一方を示す整形規則を前記クラスタリングの情報から生成する過程と、を有するテキスト整形規則獲得方法。
【請求項10】
請求項1〜7の何れかに記載されるテキスト整形規則獲得装置、または請求項8に記載される構造判定装置の各部としてコンピュータを機能させるためのプログラム。
【請求項1】
入力されたテキスト中の全ての行について形態素解析を行うことで形態素に分割する形態素解析部と、
行頭の1以上の形態素を用いて、形態素に分割された前記テキスト中の全ての行についてクラスタリングをするクラスタリング部と、
主要文に属する主要行であること、または非主要文に属する非主要行であること、のうち少なくとも一方を示す整形規則を前記クラスタリングの情報から生成する規則生成部と、を備えるテキスト整形規則獲得装置。
【請求項2】
N行(Nは2以上の整数)からなるテキスト中の全ての行について形態素解析を行うことで形態素に分割する形態素解析部と、
回帰モデルを用いて、N行全てについて、第n行目(n=1,...,N−1)の行末の1以上の形態素と、第n+1行目の行頭の1以上の形態素とを用いて、第n行目の行と第n+1行目の行とがつながる可能性を示すつながり度を計算するつながり度計算部と、
第n+1行目の行頭の1以上の形態素と、第n行目の行と第n+1行目の行とのつながり度を用いて、形態素に分割された前記テキストのN行全ての行についてクラスタリングをするクラスタリング部と、
主要文に属する主要行であること、または非主要文に属する非主要行であること、のうち少なくとも一方を示す整形規則を前記クラスタリングの情報から生成する規則生成部と、を備えるテキスト整形規則獲得装置。
【請求項3】
請求項2記載のテキスト整形規則獲得装置であって、
前記つながり度計算部は、前記つながり度を離散的に出力することを特徴とするテキスト整形規則獲得装置。
【請求項4】
請求項1〜3の何れかに記載のテキスト整形規則獲得装置であって、
前記規則生成部は、少なくとも1つのクラスタ中において、形態素が1つ以上共通している項を規則として整形規則を生成するものであることを特徴とするテキスト整形規則獲得装置。
【請求項5】
請求項1〜4の何れかに記載のテキスト整形規則獲得装置であって、
前記テキストから、予め定められた第1除去対象記号を除去する第1除去部を有し、
前記クラスタリング部は、前記第1除去対象記号を除去したテキストについて処理を行うことを特徴とするテキスト整形規則獲得装置。
【請求項6】
請求項1〜5の何れかに記載のテキスト整形規則獲得装置であって、
前記整形規則中の前記非主要行を示す規則の始めの1以上の形態素を第2除去対象記号として、当該第2除去対象記号を前記テキストから除去する第2除去部を有し、
前記クラスタリング部は、前記第2除去対象記号を除去したテキストについて処理を行うことを特徴とするテキスト整形規則獲得装置。
【請求項7】
請求項1〜6の何れかに記載のテキスト整形規則獲得装置であって、
前記生成された整形規則のうち、必要な規則のみを残すための選択情報が入力される入力部を備え、
前記規則生成部は、前記選択情報で示す必要な規則のみを残すことを特徴とするテキスト整形規則獲得装置。
【請求項8】
請求項1〜7の何れかに記載のテキスト整形規則獲得装置と、
入力されたテキストについて当該テキスト整形規則獲得装置により生成された整形規則を用いて、前記テキストから前記非主要行であることを判定する判定部と、を備える構造判定装置。
【請求項9】
入力されたテキスト中の全ての行について形態素解析を行うことで形態素に分割する過程と、
行頭の1以上の形態素を用いて、形態素に分割された前記テキスト中の全ての行についてクラスタリングをする過程と、
主要文に属する主要行であること、または非主要文に属する非主要行であること、のうち少なくとも一方を示す整形規則を前記クラスタリングの情報から生成する過程と、を有するテキスト整形規則獲得方法。
【請求項10】
請求項1〜7の何れかに記載されるテキスト整形規則獲得装置、または請求項8に記載される構造判定装置の各部としてコンピュータを機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公開番号】特開2009−145966(P2009−145966A)
【公開日】平成21年7月2日(2009.7.2)
【国際特許分類】
【出願番号】特願2007−319782(P2007−319782)
【出願日】平成19年12月11日(2007.12.11)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成21年7月2日(2009.7.2)
【国際特許分類】
【出願日】平成19年12月11日(2007.12.11)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]