以下に添付図面を参照して本願に係る要約文生成方法、要約文生成プログラム及び要約文生成装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[システム構成]
図1は、実施例1に係るシステムに含まれる各装置の機能的構成を示すブロック図である。図1に示すシステム1では、学習用入力文および正解要約文を含む学習データを用いてモデルの機械学習を行う機械学習サービス、並びに、学習済みモデルを用いて入力文から要約文を生成する要約生成サービスが提供される。
図1に示すように、システム1には、学習装置10と、生成装置30とが含まれる。学習装置10で学習したモデルを受け取って、生成装置30は、与えられたデータに対して、結果を生成する。これら学習装置10及び生成装置30は、いずれも要約文生成装置の一例に対応する。
学習装置10は、上記の機械学習サービスを提供するコンピュータの一例に対応する。別の計算機に学習装置10と生成装置30を配置する際は、ネットワーク通信を介して、モデルを渡す。
一実施形態として、学習装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の機械学習サービスを実現する学習プログラムを任意のコンピュータにインストールさせることによって実装できる。このようにインストールされた学習プログラムをコンピュータに実行させることにより、コンピュータを学習装置10として機能させることができる。
あくまで一例として、学習装置10は、生成装置30をクライアントとして収容し、当該クライアントに上記の機械学習サービスを提供するサーバ装置として実装することができる。この場合、学習装置10は、上記の機械学習サービスを提供するサーバとしてオンプレミスに実装することとしてもよいし、上記の機械学習サービスをアウトソーシングで提供するクラウドとして実装することとしてもかまわない。
例えば、学習装置10は、複数の学習サンプルを含む学習データ、または、学習データをネットワーク通信もしくは記憶メディアを介して呼び出すことができる識別情報を入力とし、モデルの学習結果を生成装置30へ出力する。このとき、学習装置10は、一例として、RNNエンコーダ及びRNNデコーダが接続されたニューラルネットワークのモデルのパラメータを提供することができる。この他、学習装置10は、学習済みモデルを用いて実現される要約文の生成が機能として組み込まれたアプリケーションプログラムを提供することもできる。例えば、新聞や電光掲示板、Webサイトなどの各種の記事の原文から記事の見出しを要約文として生成したり、あるいは記事の原文から速報の記事を要約文として生成したりするアプリケーションプログラムを提供することができる。
この他、上記の機械学習サービスの提供形態は、あくまで一例に過ぎず、上記に挙げる例以外の提供形態で機械学習サービスが提供されることを妨げない。例えば、上記の機械学習サービスを実現する学習プログラムそのものをパッケージソフトウェアやオンラインソフトウェアとして提供することとしてもよいし、上記の学習プログラムが導入されたコンピュータを提供することとしてもかまわない。
生成装置30は、上記の要約生成サービスを提供するコンピュータの一例に対応する。
一実施形態として、生成装置30は、パッケージソフトウェアやオンラインソフトウェアとして上記の要約生成サービスを実現する要約生成プログラムを任意のコンピュータにインストールさせることによって実装できる。このようにインストールされた要約生成プログラムをコンピュータに実行させることにより、コンピュータを生成装置30として機能させることができる。
あくまで一例として、上記の要約生成サービスは、新聞や電光掲示板、Webサイトなどの各種のメディアを運営するメディア事業者向けに提供されるWebサービスのツールの1つ、例えば「記事要約ツール」として提供することができる。この場合、上記のWebサービスとして提供される機能のうち、原文の入力や要約文の表示等のフロントエンドの機能が記者や編集者等の端末装置に実装されると共に、要約文の生成などのバックエンドの機能が生成装置30に実装されることとしてもかまわない。
[記事要約ツールのユースケースの一例]
図2は、記事要約ツールのユースケースの一例を示す図である。図2には、メディア事業者の関係者により使用される端末装置に表示される記事要約画面20の遷移の一例が示されている。
図2の時刻t1には、各種の項目に対する入力が設定されていない初期状態の記事要約画面20が示されている。例えば、記事要約画面20には、原文入力エリア21、要約表示エリア22、プルダウンメニュー23、要約ボタン24、クリアボタン25などのGUI(Graphical User Interface)コンポーネントが含まれる。このうち、原文入力エリア21は、記事等の原文を入力するエリアに対応する。また、要約表示エリア22は、原文入力エリア21に入力された原文に対応する要約文を表示するエリアに対応する。また、プルダウンメニュー23は、要約文の上限文字数を指定するGUIコンポーネントの一例に対応する。また、要約ボタン24は、原文入力エリア21に入力された原文に対応する要約文を生成するコマンドの実行を受け付けるGUIコンポーネントの一例に対応する。また、クリアボタン25は、原文入力エリア21に入力された原文のテキストをクリアするGUIコンポーネントの一例に対応する。
図2に示すように、記事要約画面20の原文入力エリア21では、図示しないキーボード等の入力デバイスを介してテキストの入力を受け付けることができる。このように入力デバイスを介してテキストの入力を受け付ける他、原文入力エリア21では、ワープロソフトなどのアプリケーションにより作成された文書のファイルからテキストをインポートすることができる。
このように原文入力エリア21に原文のテキストが入力されることにより、記事要約画面20は、図2の時刻t1に示された状態から図2の時刻t2に示された状態へ遷移する(ステップS1)。例えば、原文入力エリア21に原文のテキストが入力された場合、要約ボタン24に対する操作を介して要約文を生成するコマンドの実行を受け付けることができる。また、クリアボタン25に対する操作を介して原文入力エリア21に入力されたテキストをクリアすることもできる。この他、プルダウンメニュー23を介して、複数の上限文字数の中からメディア事業者の関係者が希望する上限文字数の指定を受け付けることもできる。ここでは、新聞やニュースの記事の原文から電光掲示板の速報を要約文として生成する場面の一例として、電光掲示板に表示可能な上限文字数の一例に対応する80文字が指定された例が示されている。これはあくまで一例であり、新聞やWebサイトの記事から見出しを生成する場合、見出しに対応する上限文字数を選択することができる。
そして、原文入力エリア21に原文のテキストが入力された状態で要約ボタン24に対する操作が行われた場合、記事要約画面20は、図2の時刻t2に示された状態から図2の時刻t3に示された状態へ遷移する(ステップS2)。この場合、原文入力エリア21に入力された原文のテキストが入力文として学習済みモデルに入力されることによりその要約文が生成される。この要約文の生成は、メディア事業者の関係者の端末装置上で実行されることとしてもよいし、あるいはバックエンドのサーバ装置で実行されることとしてもかまわない。このように要約文が生成された後、記事要約画面20の要約表示エリア22には、学習済みモデルにより生成された要約文が表示される。
このように記事要約画面20の要約表示エリア22に表示された要約文のテキストには、図示しない入力デバイス等を介して編集を行うことができる。
以上のような記事要約ツールが提供されることで、記者や編集者等により行われる記事要約の作業を軽減することが可能になる。例えば、記事要約の作業は、メディアにニュースを配信するプロセス、例えば「配信記事の選定」や「メディア編集システムへの送信」、「記事要約」、「見出し作成」、「校閲」などの中でも相対的に労力が大きいという側面がある。例えば、記事要約が人手により行われる場合、記事の全体から重要な情報を選別し、文章を再構成するといった作業が必要となる。このことから、記事要約の作業が自動化または半自動化される技術的意義は高い。
なお、ここでは、あくまで一例として、メディア事業者の関係者により記事要約ツールが利用されるユースケースを例に挙げたが、メディア事業者から記事の配信を受ける視聴者により記事要約ツールが利用されることとしてもかまわない。例えば、スマートスピーカ等で記事の全文を読み上げる代わりに要約文を読み上げる機能として記事要約ツールを利用することができる。
また、ここでは、あくまで一例として、生成装置30が上記の要約生成サービスを提供するコンピュータとして実装される例を挙げたが、これに限定されない。例えば、上記の学習済みモデルが組み込まれた要約生成プログラムが任意のコンピュータ、例えば記者や編集者等の端末装置で実行されるスタンドアローンのアプリケーションプログラムとして実装されることとしてもよい。
さらに、ここでは、上記の機械学習サービス及び上記の要約生成サービスが異なる事業主体で実行される例を挙げたが、これら2つのサービスが同一の事業者により提供されることとしてもかまわない。この場合、上記の学習プログラム及び上記の要約生成プログラムが同一のコンピュータもしくはコンピュータシステムにより実行されることとしてもかまわない。
[RNN+Pointer-Gen]
上記の学習装置10及び上記の生成装置30では、RNNとPointer-Genとが組み合わされたモデルが用いられる。このように、RNNとPointer-Genとが組み合わされたモデルでは、RNNデコーダが出力する単語の生成確率に加えて入力文に含まれる単語の生成確率に基づいて要約文の単語を出力することができる。このため、RNNのモデルが有する辞書にない未知語を含めて要約文を生成できる。
[課題の一側面]
上記の背景技術の欄でも説明した通り、RNNとPointer-Genとが組み合わされたモデルでは、入力文に含まれるフレーズの省略に失敗するのを抑制することができない場合がある。
なぜなら、RNNとPointer-Genとが組み合わされたとしても、入力文の単語が要約文の単語としてコピーされるに過ぎないからである。このように入力文の単語をコピーするだけでは、複数語を含むフレーズに含まれる単語の一部を省略することによってフレーズを短縮するのが限界であるので、フレーズの省略に失敗する事例が発生する。
すなわち、フレーズは、必ずしも単語単位で省略されるとは限らない。例えば、フレーズに含まれる文字列のうち一部の文字を抜粋して並べることにより省略されることもある。
あくまで一例として、日本語のフレーズを例に挙げれば、フレーズ「全日本柔道連盟」の正しい略語は「全柔連」である。ところが、RNN+Pointer-Genのモデルの場合、フレーズ「全日本柔道連盟」に含まれる単語「全」、「日本」、「柔道」及び「連名」を要約文の単語としてコピーするので、正しい略語「全柔連」を要約文の単語として出力することはできない。
このような課題は、言語が日本語である場合に限定されない。例えば、英語のフレーズ「North Atlantic Treaty Organization」の場合、英単語「North」、「Atlantic」、「Treaty」及び「Organization」を出力するのが限界であり、正しい略語、いわゆる頭字語「NATO」を含めて要約文を出力することはできない。
[課題解決の一側面]
そこで、本実施例では、入力文の単語に対応するノードを直列に接続したラティスのうち所定の表現に対応する区間のノードを拡張し、拡張後のラティスの各ノードの生成確率とモデル辞書の各単語の生成確率とに基づいて要約文の要素を出力する。
あくまで一例として、本実施例では、入力文が分割された単語列のうち単語N-gramがフレーズの省略表現の辞書にヒットする場合、当該単語N-gramの区間に省略表現に対応するノードを追加することで、ラティスを拡張する。このようなラティスの拡張によって、RNN+Pointer-Genのモデルは、入力文の単語だけでなく、入力文に含まれるフレーズの省略表現を要約文の要素としてコピーすることができる。
したがって、本実施例によれば、入力文に含まれるフレーズの省略に失敗するのを抑制できる。
[学習装置10の構成]
図1に示すように、学習装置10は、学習データ記憶部11と、モデル記憶部12と、取得部13と、省略表現記憶部14Aと、ラティス拡張部14と、エンコーダ実行部16Eと、デコーダ実行部16Dと、算出部17と、生成部18と、更新部19とを有する。なお、学習装置10は、図1に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
図1に示す取得部13と、ラティス拡張部14、エンコーダ実行部16E、デコーダ実行部16D、算出部17、生成部18及び更新部19などの機能部は、あくまで例示として、下記のハードウェアプロセッサにより仮想的に実現される。このようなプロセッサの例として、DLU(Deep Learning Unit)を始め、GPGPU(General-Purpose computing on Graphics Processing Units)やGPUクラスタなどが挙げられる。この他、CPU(Central Processing Unit)、MPU(Micro Processing Unit)などが挙げられる。すなわち、プロセッサがRAM(Random Access Memory)等のメモリ上に上記学習プログラムをプロセスとして展開することにより、上記の機能部が仮想的に実現される。ここでは、プロセッサの一例として、DLUやGPGPU、GPUクラスタ、CPU、MPUを例示したが、汎用型および特化型を問わず、任意のプロセッサにより上記の機能部が実現されることとしてもかまわない。この他、上記の機能部は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによって実現されることを妨げない。
また、図1に示す学習データ記憶部11、モデル記憶部12及び省略表現記憶部14Aなどの機能部には、HDD(Hard Disk Drive)、光ディスクやSSD(Solid State Drive)などの記憶装置を採用できる。なお、記憶装置は、必ずしも補助記憶装置でなくともよく、各種の半導体メモリ素子、例えばRAM、EPPROMやフラッシュメモリなども採用できる。
学習データ記憶部11は、学習データを記憶する記憶部である。ここで、学習データには、一例として、D個の学習サンプル、いわゆる学習事例が含まれる。さらに、学習サンプルには、モデル学習に用いる入力文および正解の要約文のペアが含まれる。以下、モデルの学習時および要約文の生成時に入力される入力文のラベルを識別する側面から前者のことを「学習用入力文」と記載する場合がある。これはあくまでラベルの識別に過ぎず、両者が入力文の一例に対応することに変わりはない。さらに、モデルの学習時に正解として参照される要約文および入力文から生成される要約文のラベルを識別する側面から前者のことを「正解要約文」と記載する場合がある。
モデル記憶部12は、モデルに関する情報を記憶する記憶部である。
一実施形態として、モデル記憶部12には、RNNエンコーダ及びRNNデコーダが接続されたニューラルネットワークのモデルを形成する入力層、隠れ層及び出力層の各層のニューロンやシナプスなどのモデルの層構造を始め、各層の重みやバイアスなどのモデルのパラメータを含むモデル情報が記憶される。ここで、モデル学習が実行される前の段階では、モデル記憶部12には、モデルのパラメータとして、乱数により初期設定されたパラメータが記憶される。また、モデル学習が実行された後の段階では、モデル記憶部12には、学習済みモデルのパラメータが保存される。
取得部13は、学習サンプルを取得する処理部である。
一実施形態として、取得部13は、モデル学習のリクエストを受け付けた場合に処理を起動する。このように処理が起動されると、取得部13は、モデル学習の初期設定を行う。例えば、取得部13は、正解要約文の文字数、あるいはユーザ設定が行われた文字数などをモデルが生成する要約文の上限文字数として設定する。さらに、取得部13は、学習サンプルをカウントするループカウンタdの値を初期化する。続いて、取得部13は、学習データ記憶部11に記憶されたD個の学習サンプルのうちループカウンタdに対応する学習サンプルを取得する。その後、取得部13は、ループカウンタdをインクリメントし、ループカウンタdの値が学習サンプルの総数Dと等しくなるまで、学習データ記憶部11から学習サンプルを取得する処理を繰り返し実行する。なお、ここでは、学習装置10内部ストレージに保存された学習データを取得する例を挙げたが、学習データの情報ソースは内部ストレージに限定されない。例えば、外部のコンピュータ、例えばファイルサーバの他、リムーバブルメディア等から学習データが取得されることとしてもかまわない。
ラティス拡張部14は、学習用入力文に含まれる単語に対応するノードが直列に接続されたラティスを拡張する処理部である。
一実施形態として、ラティス拡張部14は、取得部13により学習サンプルが取得された場合、当該学習サンプルに含まれる学習用入力文のテキストに形態素解析を実行する。このように形態素解析が実行されることによって、学習用入力文が単語列に分割される。続いて、ラティス拡張部14は、学習用入力文の単語に対応するノードが直列に接続されたラティスを生成する。
(1)拡張その1
1つの側面として、ラティス拡張部14は、省略表現記憶部14Aに保存された省略表現辞書を用いてラティスを拡張する。例えば、ラティス拡張部14は、学習用入力文の単語列のうち所定語数の単語列、例えば単語N-gramを抽出する。続いて、ラティス拡張部14は、上記の省略表現辞書から学習用入力文の単語N-gramに対応する省略表現を検索する。例えば、省略表現辞書には、フレーズとその省略表現とが対応付けられたデータを採用できる。あくまで一例として言語が日本語である場合、省略表現辞書には、例えば、フレーズ「全日本柔道連盟」と省略表現「全柔連」とが対応付けられたエントリやフレーズ「全日本連名」と省略表現「全日連」とが対応付けられたエントリなどが含まれる。このような省略表現辞書の下、学習用入力文の単語N-gramにヒットする省略表現が存在する場合、ラティス拡張部14は、次のような処理を実行する。すなわち、ラティス拡張部14は、ラティスのうち学習用入力文の単語N-gramに対応する区間に、学習用入力文の単語N-gramにヒットした省略表現に対応するノードを追加する。
(2)拡張その2
他の側面として、ラティス拡張部14は、固有表現抽出器を用いてラティスを拡張する。例えば、ラティス拡張部14は、学習サンプルに含まれる入力文から固有表現を抽出する。例えば、ラティス拡張部14は、入力文のテキストに形態素解析を実行する。この形態素解析の結果を用いて、ラティス拡張部14は、入力文のテキストに含まれる単語ごとに当該単語の位置に対応する固有表現NE(Named Entity)に関するラベルを付与するラベリング処理を実行する。例えば、入力文の各単語には、固有表現に該当するラベル「Y」または固有表現に該当しないラベル「N」が付与される。このラベリング処理には、任意の固有表現抽出のエンジンを用いることができ、オープンソースのソフトウェアであってかまわない。これによって、入力文の単語ごとに固有表現が抽出される。このように入力文から固有表現が抽出された後、ラティス拡張部14は、上記の省略表現辞書から固有表現に対応する省略表現を検索する。このような省略表現辞書の下、固有表現にヒットする省略表現が存在する場合、ラティス拡張部14は、次のような処理を実行する。すなわち、ラティス拡張部14は、ラティスのうち固有表現に対応する区間に、固有表現にヒットした省略表現に対応するノードを追加する。
このように生成されたラティスは、フレーズに関する省略表現が登録された省略表現辞書や固有表現抽出などを用いて拡張される。
エンコーダ実行部16Eは、RNNエンコーダを実行する処理部である。下記のLSTMは、「Long Short-Term Memory」の略称である。
一実施形態として、エンコーダ実行部16Eは、モデル記憶部12に記憶されたモデル情報にしたがって、ラティス拡張部14により拡張された拡張後の学習用入力文のラティスのノード数Mに対応するM個のLSTMをワークエリア上に展開する。以下、ラティス拡張部14により拡張された拡張後のラティスのことを「拡張ラティス」と記載する場合がある。さらに、入力文の単語に対応するノードが直列に接続されることにより生成された初期段階のラティスを拡張ラティスのラベルと区別する側面から「初期ラティス」と記載する場合がある。これによって、M個のLSTMのセルをRNNエンコーダとして機能させる。例えば、エンコーダ実行部16Eは、拡張ラティスの先頭のノードから順に、拡張ラティスの先頭からm番目のノードに対応する単語や省略表現を当該m番目のノードに対応するLSTMのセルへ入力する。さらに、エンコーダ実行部16Eは、m-1番目のノードに対応するLSTMのセルの出力をm番目のノードに対応するLSTMのセルへ入力する。このような入力を先頭のノードに対応するLSTMのセルから末尾であるM番目のノードに対応するLSTMのセルまで繰り返すことにより、学習用入力文のベクトル、いわゆる隠れ状態が得られる。このようにRNNエンコーダにより生成された学習用入力文の隠れ状態がRNNデコーダへ入力される。
デコーダ実行部16Dは、RNNデコーダを実行する処理部である。
一実施形態として、デコーダ実行部16Dは、モデル記憶部12に記憶されたモデル情報にしたがって、正解要約文の単語数Nに対応するN個のLSTMのセルをワークエリア上に展開する。これによって、N個のLSTMのセルをRNNデコーダとして機能させる。例えば、デコーダ実行部16Dは、RNNエンコーダにより出力される隠れ状態、BOS(Begin Of Sentence)と呼ばれる文頭記号のタグおよび上限文字数を正解要約文の先頭の単語に対応するLSTMのセルに入力する。その後、デコーダ実行部16Dは、正解要約文の先頭からn番目の単語に対応するLSTMのセルに対し、次のような入力を実行する。すなわち、n番目の単語に対応するLSTMのセルには、正解要約文の先頭からn-1番目の単語、EOS(End Of Sentence)のタグを出力させるまでの残り文字数およびn-1番目の単語に対応するLSTMのセルが更新して出力する隠れ状態が入力される。このようにN個のLSTMのセルを動作させることにより、RNNデコーダは、N個のLSMTのセルごとに単語の生成確率の分布を生成部18へ出力する。ここで言う「単語」とは、RNNのモデルが有するモデル辞書に存在する単語のことを指し、例えば、学習サンプル全体で学習用入力文に出現する単語から獲得される。
算出部17は、拡張ラティスの各ノードの生成確率を算出する処理部である。
あくまで一例として、要約文の先頭からn番目の要素、すなわちモデル辞書の単語、あるいは拡張ラティスのノードに対応する単語や短縮表現が生成される場合を例に挙げる。この場合、算出部17は、拡張ラティスに含まれるM個のノードごとに、当該ノードに対応するRNNエンコーダのLSTMのセルが出力する隠れ状態と、RNNデコーダのn番目のLSTMのセルが更新する隠れ状態との類似度、例えば内積をスコアとして算出する。その上で、算出部17は、全てのノードのスコアの総和が「1」となるように各ノードのスコアを正規化する。これによって、正規化後のスコアが生成確率として得られる。
生成部18は、要約文の要素を生成する処理部である。
一実施形態として、生成部18は、デコーダ実行部16Dにより実行されるRNNデコーダのn番目のLSTMのセルから出力されるモデル辞書の各単語の生成確率と、算出部17により算出された拡張ラティスの各ノードの生成確率とを結合する。例えば、生成部18は、下記の式(1)にしたがってモデル辞書の各単語の生成確率pvocabularyおよび拡張ラティスの各ノードの生成確率pattentionを線形結合することにより、各要素の生成確率pを算出する。このとき、拡張ラティスの各ノードに対応する単語や省略表現のうちモデル辞書にない未知語の生成確率pvocabularyの値はゼロとして要素の生成確率pが計算される。さらに、単語の生成確率pvocabularyおよび拡張ラティスのノードの生成確率pattentionには、非特許文献1に記載がある重みを付与して要素の生成確率pを計算することもできる。その後、生成部18は、最大の生成確率pを有する要素を要約文の先頭からn番目の単語として生成する。
p=pvocabulary+pattention・・・(1)
更新部19は、モデルのパラメータを更新する処理部である。
一実施形態として、更新部19は、生成部18により要約文のn番目の単語が生成された場合、正解要約文に含まれる単語のうちn番目の単語と、生成部18により生成されたn番目の単語とから損失を算出する。その上で、更新部19は、RNNデコーダのN個のLSTMごとに損失が算出された場合、各LSTMの損失に基づいて対数尤度の最適化を実行することにより、RNNのモデルを更新するパラメータを算出する。その上で、更新部19は、モデル記憶部12に記憶されたモデルのパラメータを対数尤度の最適化により求められたパラメータに更新する。このパラメータの更新は、全ての学習サンプルにわたって繰り返し実行すると共に、学習データDについても所定のエポック数にわたって繰り返し実行することができる。
[モデル学習の具体例]
以下、図3~図7を用いて、モデル学習の具体例を説明しながら従来技術および本実施例における要約文の生成事例を対比する。
図3Aおよび図3Bにモデルに入力する学習サンプルの一例を例示する。図3Aは、学習用入力文の一例を示す図である。図3Bは、正解要約文の一例を示す図である。図4は、初期ラティスの一例を示す図である。図5は、従来技術における要約文の生成事例を示す図である。図6は、拡張ラティスの一例を示す図である。図7は、実施例1に係る要約文の生成事例を示す図である。
図3Aに示す学習用入力文40Gが入力された場合、図4に示すように、学習用入力文40Gの単語に対応するノードが直列に接続された初期ラティス41が生成される。
(1)従来技術
ここで、従来技術でモデル学習が行われる場合、初期ラティス41に基づいてRNNエンコーダのLSTMのセルが生成される。図4に示す例で言えば、初期ラティス41の先頭のノード「<s>」から順に末尾のノード「</s>」までのノード数M(=11)に対応する11個のRNNエンコーダのLSTM16E1~16E11のセルがワークエリア上に展開される。このようにLSTM16E1から16E11まで隠し状態を更新しながら伝搬させることにより、RNNエンコーダから隠れ状態h11が得られる。
一方、RNNデコーダのLSTMのセルは、図5に示すように、図3Bに示す正解要約文40Yに含まれる単語数N(=7)に対応する7個のLSTMのセルがワークエリア上に展開される。以下、正解要約文40Yの先頭の単語から順番に各単語に対応してワークエリア上に展開されたLSTMのセルの各々を「LSTM16D1~LSTM16D7」と識別する。
例えば、要約文の先頭の要素が生成される1時刻目t1には、RNNエンコーダから出力される隠れ状態h11、BOSのタグおよび要約文の残り文字数、例えば正解要約文40Yの文字数「8」がRNNデコーダの先頭のLSTM16D1のセルへ入力される。この結果、RNNデコーダのLSTM16D1のセルは、モデル辞書の単語ごとに生成確率を計算することにより、1時刻目t1における各単語の生成確率pvocabularyを算出すると共に、隠れ状態h11を隠れ状態h12へ更新する。
このRNNデコーダのLSTM16D1のセルが出力する隠れ状態h12を用いて、算出部17は、拡張ラティスに含まれる11個のノードごとに生成確率を計算する。例えば、初期ラティス41のノード「全」の生成確率を算出する場合を例に挙げる。この場合、初期ラティス41のノード「全」に対応するRNNエンコーダのLSTM16E2のセルが出力する隠れ状態h2と、RNNデコーダのLSTM16D1のセルが更新した隠れ状態h12との類似度がスコアとして計算される。これと同様に、初期ラティス41に含まれる全てのノードのスコアが算出される。その上で、全てのノードのスコアの総和が「1」となるように各ノードのスコアが正規化される。これによって、各ノードの生成確率pattentionが得られる。
その後、生成部18は、モデル辞書の各単語の生成確率pvocabularyおよび拡張ラティスの各ノードの生成確率pattentionが線形結合されることにより得られた各要素の生成確率pに基づいて、最大の生成確率pを有する要素「全」を1時刻目t1に出力する。そして、残り文字数の初期値「8」から1時刻目t1に生成された単語「全」の文字数「1」を減算することにより、残り文字数の値を「7」へ更新する。
次に、要約文の先頭の要素が生成される2時刻目t2には、RNNデコーダの1時刻前のLSTM16D1エンコーダから出力される隠れ状態h12、1時刻前の正解の単語「全日連」および要約文の残り文字数「7」がRNNデコーダの先頭から2番目のLSTM16D2のセルへ入力される。この結果、RNNデコーダのLSTM16D2のセルは、モデル辞書の単語ごとに生成確率を計算することにより、2時刻目t2における各単語の生成確率pvocabularyを算出すると共に、隠れ状態h12を隠れ状態h13へ更新する。
このRNNデコーダのLSTM16D2のセルが出力する隠れ状態h13を用いて、算出部17は、拡張ラティスに含まれる11個のノードごとに生成確率を計算する。例えば、初期ラティス41のノード「日本」の生成確率を算出する場合を例に挙げる。この場合、初期ラティス41のノード「日本」に対応するRNNエンコーダのLSTM16E3のセルが出力する隠れ状態h3と、RNNデコーダのLSTM16D2のセルが更新した隠れ状態h13との類似度がスコアとして計算される。これと同様に、初期ラティス41に含まれる全てのノードのスコアが算出される。その上で、全てのノードのスコアの総和が「1」となるように各ノードのスコアが正規化される。これによって、各ノードの生成確率pattentionが得られる。
その後、生成部18は、モデル辞書の各単語の生成確率pvocabularyおよび拡張ラティスの各ノードの生成確率pattentionが線形結合されることにより得られた各要素の生成確率pに基づいて、最大の生成確率pを有する要素「日本」を2時刻目t2に出力する。そして、残り文字数の初期値「7」から2時刻目t2に生成された単語「日本」の文字数「2」を減算することにより、残り文字数の値を「5」へ更新する。
以上の処理がLSTM16D7から文末記号「EOS」が出力される7時刻目t7まで繰り返し実行される。この結果、従来技術では、要約文「全日本連名が中島選出」が得られる。この結果を正解要約文40Yと対比すれば明らかな通り、従来技術では、フレーズ「全日本連名」を省略表現「全日連」と省略すべきところが、フレーズ「全日本連名」をそのまま含む形で要約文が生成されている。このため、従来技術では、フレーズ「全日本連名」から省略表現「全日連」への省略に失敗し、上限文字数「8」を超えていることが明らかである。
(2)本実施例
一方、本実施例でモデル学習が行われる場合、従来技術のように、RNNエンコーダのLSTMのセルの生成に初期ラティス41が用いられない。すなわち、省略表現辞書から学習用入力文40Gの単語トリグラム「全日本連名」に対応する省略表現「全日連」が検索される。これによって、図4に示す初期ラティス41は、図6に示す拡張ラティス42へ拡張される。すなわち、図6に反転表示で示された通り、学習用入力文40Gの単語トリグラム「全日本連名」に対応する区間に、学習用入力文40Gの単語トリグラム「全日本連名」にヒットした省略表現「全日連」に対応するノードが追加される。
このような拡張ラティス42がRNNエンコーダのLSTMのセルの生成に用いられる。図6に示す例で言えば、拡張ラティス42の先頭のノード「<s>」から順に末尾のノード「</s>」までのノード数M(=12)に対応する12個のRNNエンコーダのLSTM16E1~16E12のセルがワークエリア上に展開される。このようにLSTM16E1から16E12まで隠し状態を更新しながら伝搬させることにより、RNNエンコーダから隠れ状態H12が得られる。
一方、RNNデコーダのLSTMのセルは、図7に示すように、図3Bに示された正解要約文40Yに含まれる単語数N(=5)に対応する5個のLSTMのセルがワークエリア上に展開される。以下、正解要約文40Yの先頭の単語から順番に各単語に対応してワークエリア上に展開されたLSTMのセルの各々を「LSTM16D1~LSTM16D5」と識別する。
例えば、要約文の先頭の要素が生成される1時刻目t1には、RNNエンコーダから出力される隠れ状態H12、BOSのタグおよび要約文の残り文字数、例えば正解要約文40Yの文字数「8」がRNNデコーダの先頭のLSTM16D1のセルへ入力される。この結果、RNNデコーダのLSTM16D1のセルは、モデル辞書の単語ごとに生成確率を計算することにより、1時刻目t1における各単語の生成確率pvocabularyを算出すると共に、隠れ状態H12を隠れ状態H13へ更新する。
このRNNデコーダのLSTM16D1のセルが出力する隠れ状態H13を用いて、算出部17は、拡張ラティスに含まれる12個のノードごとに生成確率を計算する。例えば、拡張ラティス42のノード「全日連」の生成確率を算出する場合を例に挙げる。この場合、拡張ラティス42のノード「全日連」に対応するRNNエンコーダのLSTM16E5のセルが出力する隠れ状態H5と、RNNデコーダのLSTM16D1のセルが更新した隠れ状態H13との類似度がスコアとして計算される。これと同様に、拡張ラティス42に含まれる全てのノードのスコアが算出される。その上で、全てのノードのスコアの総和が「1」となるように各ノードのスコアが正規化される。これによって、各ノードの生成確率pattentionが得られる。
その後、生成部18は、モデル辞書の各単語の生成確率pvocabularyおよび拡張ラティスの各ノードの生成確率pattentionが線形結合されることにより得られた各要素の生成確率pに基づいて、最大の生成確率pを有する要素「全日連」を1時刻目t1に出力する。そして、残り文字数の初期値「8」から1時刻目t1に生成された単語「全日連」の文字数「3」を減算することにより、残り文字数の値を「5」へ更新する。
以上の処理がLSTM16D5から文末記号「EOS」が出力される5時刻目t5まで繰り返し実行される。この結果、本実施例では、要約文「全日連が中島選出」が得られる。この結果を正解要約文40Yと対比すれば明らかな通り、本実施例では、フレーズ「全日本連名」を省略表現「全日連」と省略できていることが明らかである。このため、本実施例では、省略表現「全日連」を含む要約文の生成が可能となっている。
[生成装置30の構成]
図1に示すように、生成装置30は、取得部31と、省略表現記憶部34Aと、ラティス拡張部34と、エンコーダ実行部36Eと、デコーダ実行部36Dと、算出部37と、生成部38とを有する。なお、生成装置30は、図1に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
図1に示す取得部31、ラティス拡張部34、エンコーダ実行部36E、デコーダ実行部36D、算出部37および生成部38などの機能部は、あくまで例示として、下記のハードウェアプロセッサにより仮想的に実現される。このようなプロセッサの例として、DLUを始め、GPGPUやGPUクラスタなどが挙げられる。この他、CPU、MPUなどが挙げられる。すなわち、プロセッサがRAM等のメモリ上に上記の要約生成プログラムをプロセスとして展開することにより、上記の機能部が仮想的に実現される。ここでは、プロセッサの一例として、DLUやGPGPU、GPUクラスタ、CPU、MPUを例示したが、汎用型および特化型を問わず、任意のプロセッサにより上記の機能部が実現されることとしてもかまわない。この他、上記の機能部は、ASICやFPGAなどのハードワイヤードロジックによって実現されることを妨げない。
また、図1に示す省略表現記憶部34Aなどの機能部には、HDD、光ディスクやSSDなどの記憶装置を採用できる。なお、記憶装置は、必ずしも補助記憶装置でなくともよく、各種の半導体メモリ素子、例えばRAM、EPPROMやフラッシュメモリなども採用できる。
取得部33は、入力文を取得する処理部である。
一実施形態として、取得部33は、要約文生成のリクエストを受け付けた場合に処理を起動する。このように処理が起動されると、取得部33は、要約文生成の対象とする入力文を取得する。さらに、取得部33は、学習済みモデルに生成させる要約文の上限文字数の指定を受け付ける。その後、取得部33は、RNNデコーダに文末記号と呼ばれるEOSを出力させるまでの残り文字数を保持するレジスタの値を上記の指定の上限文字数に初期化する。
ラティス拡張部34は、入力文に含まれる単語に対応するノードが直列に接続された初期ラティスを拡張する処理部である。
一実施形態として、ラティス拡張部34は、取得部33により入力文が取得された場合、当該入力文のテキストに形態素解析を実行する。このように形態素解析が実行されることによって、入力文が単語列に分割される。続いて、ラティス拡張部34は、入力文の単語に対応するノードが直列に接続された初期ラティスを生成する。
このように初期ラティスが生成された後、ラティス拡張部34は、省略表現記憶部34Aに保存された省略表現辞書を用いてラティスを拡張する。例えば、ラティス拡張部34は、入力文の単語列のうち所定数の単語列、例えば単語N-gramを抽出する。続いて、ラティス拡張部34は、上記の省略表現辞書から入力文の単語N-gramに対応する省略表現を検索する。なお、省略表現記憶部34Aに保存される省略表現辞書は、省略表現記憶部14Aに保存される省略表現辞書と同一のものであってもかまわない。このような省略表現辞書の下、入力文の単語N-gramにヒットする省略表現が存在する場合、ラティス拡張部34は、次のような処理を実行する。すなわち、ラティス拡張部34は、ラティスのうち入力文の単語N-gramに対応する区間に、入力文の単語N-gramにヒットした省略表現に対応するノードを追加する。このような省略表現に対応するノードの追加によって、入力文の拡張ラティスが得られる。
エンコーダ実行部36Eは、RNNエンコーダを実行する処理部である。
一実施形態として、エンコーダ実行部36Eは、モデル記憶部12に記憶された学習済みモデルのモデル情報にしたがって、ラティス拡張部34により拡張された拡張ラティスのノード数Kに対応するK個のLSTMをワークエリア上に展開する。これによって、K個のLSTMのセルをRNNエンコーダとして機能させる。例えば、エンコーダ実行部36Eは、拡張ラティスの先頭のノードから順に、拡張ラティスの先頭からk番目のノードに対応する単語や省略表現を当該k番目のノードに対応するLSTMのセルへ入力する。さらに、エンコーダ実行部36Eは、k-1番目のノードに対応するLSTMのセルの出力をk番目のノードに対応するLSTMのセルへ入力する。このような入力を先頭のノードに対応するLSTMのセルから末尾であるK番目のノードに対応するLSTMのセルまで繰り返すことにより、入力文のベクトル、いわゆる隠れ状態が得られる。このようにRNNエンコーダにより生成された入力文の隠れ状態がRNNデコーダへ入力される。
デコーダ実行部36Dは、RNNデコーダを実行する処理部である。
一実施形態として、デコーダ実行部36Dは、モデル記憶部12に記憶された学習済みモデルのモデル情報にしたがって、EOSのタグが出力されるまでLSTMのセルをワークエリア上に展開する。これによって、EOSのタグが出力されるまで展開されたL個のLSTMのセルをRNNデコーダとして機能させる。例えば、デコーダ実行部36Dは、RNNエンコーダにより出力される隠れ状態、BOSのタグおよび上限文字数を先頭のLSTMのセルに入力する。その後、デコーダ実行部36Dは、要約文の先頭からl番目の要素に対応するLSTMのセルに対し、次のような入力を実行する。すなわち、l番目の要素に対応するLSTMのセルには、要約文のうち先頭からl-1番目に生成された要素、EOSのタグを出力させるまでの残り文字数およびl-1番目の要素に対応するLSTMのセルが更新する隠れ状態が入力される。このようにL個のLSTMのセルを動作させることにより、RNNデコーダは、L個のLSMTのセルごとに単語の生成確率の分布を生成部38へ出力する。ここで言う「単語」とは、RNNの学習済みモデルが有するモデル辞書に存在する単語のことを指し、例えば、モデル学習時に学習サンプル全体で学習用入力文に出現する単語から獲得される。
算出部37は、拡張ラティスの各ノードの生成確率を算出する処理部である。
あくまで一例として、要約文の先頭からk番目の要素、すなわちモデル辞書の単語、あるいは拡張ラティスのノードに対応する単語や短縮表現が生成される場合を例に挙げる。この場合、算出部37は、拡張ラティスに含まれるK個のノードごとに、当該ノードに対応するRNNエンコーダのLSTMのセルが出力する隠れ状態と、RNNデコーダのk番目のLSTMのセルが更新する隠れ状態との類似度、例えば内積をスコアとして算出する。その上で、算出部37は、全てのノードのスコアの総和が「1」となるように各ノードのスコアを正規化する。これによって、正規化後のスコアが生成確率として得られる。
生成部38は、要約文の要素を生成する処理部である。
一実施形態として、生成部38は、デコーダ実行部36Dにより実行されるRNNデコーダのl番目のLSTMのセルから出力されるモデル辞書の各単語の生成確率と、算出部37により算出された拡張ラティスの各ノードの生成確率とを結合する。例えば、生成部38は、上記の式(1)にしたがってモデル辞書の各単語の生成確率pvocabularyおよび拡張ラティスの各ノードの生成確率pattentionを線形結合することにより、各要素の生成確率pを算出する。このとき、拡張ラティスの各ノードに対応する単語や省略表現のうちモデル辞書にない未知語の生成確率pvocabularyの値はゼロとして要素の生成確率pが計算される。さらに、単語の生成確率pvocabularyおよび拡張ラティスのノードの生成確率pattentionには、非特許文献1に記載がある重みを付与して要素の生成確率pを計算することもできる。その後、生成部38は、最大の生成確率pを有する要素を要約文の先頭からl番目の単語として生成する。
[要約文生成の具体例]
以下、図8及び図9を用いて、要約文生成の具体例を説明する。ここでは、図3Aに示された学習用入力文40Gと類似する入力文「全日本連名が山田を代表に選出」が入力される例を挙げる。
図8は、拡張ラティスの一例を示す図である。図9は、実施例1に係る要約文の生成事例を示す図である。
入力文「全日本連名が山田を代表に選出」が入力された場合、入力文「全日本連名が山田を代表に選出」の単語に対応するノードが直列に接続された初期ラティスが生成される。
ここで、本実施例で要約文生成が行われる場合、従来技術のように、RNNエンコーダのLSTMのセルの生成に初期ラティスが用いられない。すなわち、省略表現辞書から入力文の単語トリグラム「全日本連名」に対応する省略表現「全日連」が検索される。これによって、入力文から生成された初期ラティスは、図8に示す拡張ラティス62へ拡張される。すなわち、図8に反転表示で示された通り、入力文の単語トリグラム「全日本連名」に対応する区間に、入力文の単語トリグラム「全日本連名」にヒットした省略表現「全日連」に対応するノードが追加される。
このような拡張ラティス62がRNNエンコーダのLSTMのセルの生成に用いられる。図8に示す例で言えば、拡張ラティス62の先頭のノード「<s>」から順に末尾のノード「</s>」までのノード数K(=12)に対応する12個のRNNエンコーダのLSTM36E1~36E12のセルがワークエリア上に展開される。このようにLSTM36E1から36E12まで隠し状態を更新しながら伝搬させることにより、RNNエンコーダから隠れ状態H12が得られる。
一方、RNNデコーダのLSTMのセルは、図9に示すように、EOSのタグが出力されるまでの要約文の要素数L(=5)に対応する5個のLSTMのセルがワークエリア上に展開される。以下、要約文の先頭の要素から順番に各要素に対応してワークエリア上に展開されたLSTMのセルの各々を「LSTM36D1~LSTM36D5」と識別する。
例えば、要約文の先頭の要素が生成される1時刻目t1には、RNNエンコーダから出力される隠れ状態H12、BOSのタグおよび要約文の残り文字数「8」がRNNデコーダの先頭のLSTM36D1のセルへ入力される。この結果、RNNデコーダのLSTM36D1のセルは、モデル辞書の単語ごとに生成確率を計算することにより、1時刻目t1における各単語の生成確率pvocabularyを算出すると共に、隠れ状態H12を隠れ状態H13へ更新する。
このRNNデコーダのLSTM36D1のセルが出力する隠れ状態H13を用いて、算出部17は、拡張ラティスに含まれる12個のノードごとに生成確率を計算する。例えば、拡張ラティス62のノード「全日連」の生成確率を算出する場合を例に挙げる。この場合、拡張ラティス62のノード「全日連」に対応するRNNエンコーダのLSTM36E5のセルが出力する隠れ状態H5と、RNNデコーダのLSTM36D1のセルが更新した隠れ状態H13との類似度がスコアとして計算される。これと同様に、拡張ラティス62に含まれる全てのノードのスコアが算出される。その上で、全てのノードのスコアの総和が「1」となるように各ノードのスコアが正規化される。これによって、各ノードの生成確率pattentionが得られる。
その後、生成部38は、モデル辞書の各単語の生成確率pvocabularyおよび拡張ラティス62の各ノードの生成確率pattentionが線形結合されることにより得られた各要素の生成確率pに基づいて、最大の生成確率pを有する要素「全日連」を1時刻目t1に出力する。そして、残り文字数の初期値「8」から1時刻目t1に生成された単語「全日連」の文字数「3」を減算することにより、残り文字数の値を「5」へ更新する。
以上の処理がLSTM36D5から文末記号「EOS」が出力される5時刻目t5まで繰り返し実行される。この結果、本実施例では、要約文「全日連が中島選出」が得られる。この結果から明らかな通り、本実施例では、フレーズ「全日本連名」を省略表現「全日連」と省略できていることが明らかである。このため、本実施例では、省略表現「全日連」を含む要約文の生成が可能となっている。
[処理の流れ]
次に、本実施例に係るシステムの処理の流れについて説明する。ここでは、学習装置10により実行される(A)学習処理について説明した後に、生成装置30により実行される(B)生成処理について説明し、学習処理および生成処理のサブルーチンとして実行される(C)ラティス拡張処理について説明することとする。
(A)学習処理
図10は、実施例1に係る学習処理の手順を示すフローチャートである。この学習処理は、一例として、モデル学習のリクエストを受け付けた場合に開始される。図10に示すように、取得部13は、モデルに生成させる要約文の上限文字数を設定する(ステップS101)。続いて、学習データに含まれるD個の学習サンプルdごとに、ステップS102~ステップS112の処理が実行される。
すなわち、取得部13は、学習データ記憶部11に記憶された学習データのうち学習サンプルdを1つ取得する(ステップS102)。続いて、ラティス拡張部14は、ステップS102で取得された学習サンプルdに含まれる学習用入力文の各単語に対応するノードが直列に接続された初期ラティスを生成する(ステップS103)。
その後、ラティス拡張部14は、省略表現辞書や学習サンプルdに含まれる入力文などを用いてステップS103で生成された初期ラティスを拡張する「ラティス拡張処理」を実行する(ステップS104)。
続いて、エンコーダ実行部16Eは、ステップS104で得られた拡張ラティスを拡張ラティスのノード数Mに対応するM個のLSTMのセルが展開されたRNNエンコーダへ入力することにより、拡張ラティスをエンコードする(ステップS105)。これによって、拡張ラティスのベクトル、いわゆる隠れ状態が得られる。
そして、取得部13は、RNNデコーダにEOSのタグを出力させるまでの残り文字数を保持するレジスタの値をステップS101で設定された上限文字数に初期化する(ステップS106)。
その後、正解要約文のN個の単語の先頭から順の各時刻ごとに、ステップS107~ステップS111の処理が実行される。
すなわち、デコーダ実行部16Dは、レジスタに保持された残り文字数と、BOSのタグもしくは1時刻前の正解の単語と、1時刻前に対応するLSTMのセルが出力する隠れ状態とをRNNデコーダのうち現時刻に対応するLSTMのセルへ入力する(ステップS107A)。これによって、現時刻におけるモデル辞書の各単語の生成確率が算出されると共に、隠し状態が更新される。
また、算出部17は、拡張ラティスに含まれるM個のノードごとに当該ノードに対応するRNNエンコーダのLSTMのセルが出力する隠れ状態と、RNNデコーダのn番目のLSTMのセルが更新する隠れ状態とに基づいて生成確率を算出する(ステップS107B)。
そして、生成部18は、モデル辞書の各単語の生成確率および拡張ラティスの各ノードの生成確率を線形結合することにより、各要素の生成確率を算出する(ステップS108)。その上で、生成部18は、最大の生成確率を有する要素を生成する(ステップS109)。
続いて、更新部19は、正解要約文に含まれる単語のうち現時刻に対応する単語と、ステップS109で生成された要素とから現時刻における損失を算出する(ステップS110)。
その後、取得部13は、レジスタに保持された残り文字数からステップS109で生成された要素の文字数を減算することにより、レジスタの残り文字数の値を更新する(ステップS111)。
そして、正解要約文のN個の単語ごとに損失が算出されると、更新部19は、各LSTMの損失に基づいて対数尤度の最適化を実行することにより、RNNデコーダのモデルを更新するパラメータを算出した上で、モデル記憶部12に記憶されたモデルのパラメータを更新する(ステップS112)。
その後、学習データに含まれる全ての学習サンプルdについてモデルのパラメータの更新が実行されると、学習装置10は、学習済みモデルを生成装置30へ出力し(ステップS113)、処理を終了する。
(B)生成処理
図11は、実施例1に係る生成処理の手順を示すフローチャートである。この生成処理は、一例として、要約文生成のリクエストを受け付けた場合に開始される。図11に示すように、取得部33は、入力文と共に学習済みモデルに生成させる要約文の上限文字数の指定を取得する(ステップS301)。
続いて、ラティス拡張部34は、ステップS301で取得された入力文の各単語に対応するノードが直列に接続された初期ラティスを生成する(ステップS302)。
その後、ラティス拡張部34は、省略表現辞書を用いてステップS302で生成された初期ラティスを拡張する「ラティス拡張処理」を実行する(ステップS303)。
続いて、エンコーダ実行部36Eは、ステップS303で得られた拡張ラティスを拡張ラティスのノード数Kに対応するK個のLSTMのセルが展開されたRNNエンコーダへ入力することにより、拡張ラティスをエンコードする(ステップS304)。これによって、拡張ラティスのベクトル、いわゆる隠れ状態が得られる。
そして、取得部33は、RNNデコーダにEOSのタグを出力させるまでの残り文字数を保持するレジスタの値をステップS301で取得された上限文字数に初期化する(ステップS305)。
その後、RNNデコーダからEOSのタグが出力されるまで、ステップS306~ステップS309の処理が実行される。
すなわち、デコーダ実行部36Dは、レジスタに保持された残り文字数と、BOSのタグもしくは1時刻前に生成された要素と、1時刻前に対応するLSTMのセルが出力する隠れ状態とをRNNデコーダのうち現時刻に対応するLSTMのセルへ入力する(ステップS306A)。これによって、現時刻におけるモデル辞書の各単語の生成確率が算出されると共に隠し状態が更新される。
また、算出部37は、拡張ラティスに含まれるK個のノードごとに当該ノードに対応するRNNエンコーダのLSTMのセルが出力する隠れ状態と、RNNデコーダのl番目のLSTMのセルが更新する隠れ状態とに基づいて生成確率を算出する(ステップS306B)。
そして、生成部38は、モデル辞書の各単語の生成確率および拡張ラティスの各ノードの生成確率を線形結合することにより、各要素の生成確率を算出する(ステップS307)。その上で、生成部38は、最大の生成確率を有する要素を生成する(ステップS308)。
続いて、取得部33は、レジスタに保持された残り文字数からステップS308で生成された単語の文字数を減算することにより、レジスタの残り文字数の値を更新する(ステップS309)。
そして、RNNデコーダからEOSのタグが出力されると、生成部38は、先頭のLSTMのセルからL番目のLSTMのセルまでに生成された要素を結合することにより要約文を生成して要約文を所定の出力先へ出力し(ステップS310)、処理を終了する。
(C)ラティス拡張処理
図12は、実施例1に係るラティス拡張処理の手順を示すフローチャートである。この処理は、図10に示されたステップS104の処理または図11に示されたステップS303の処理に対応する。なお、図10に示されたステップS104では、正解要約文が取得されるので、ステップS501AからステップS503Aまでの処理に加えてステップS501BからステップS504Bまでの処理が行われる。一方、図11に示されたステップS303では、正解要約文は未知であるので、ステップS501BからステップS504Bまでの処理は行われず、ステップS501AからステップS503Aまでの処理だけが行われる。
まず、ステップS501AからステップS503Aまでの処理について説明する。図12に示すように、ラティス拡張部14またはラティス拡張部34は、省略表現辞書の検索に用いる単語列の先頭位置を指定する変数iが学習用入力文または入力文の先頭位置「1」から学習用入力文の末尾位置「M」又は入力文の末尾位置「K」までインクリメントされるまで、ステップS501AからステップS503Aまでの処理を繰り返す。このとき、ラティス拡張部14またはラティス拡張部34は、省略表現辞書の検索に用いる単語列の末尾位置を指定する変数jの値をi+1の値に初期化し、変数jがi+1+Uの値になるまで、変数jをインクリメントしながらステップS501AからステップS503Aまでの処理を繰り返す。なお、「U」は、単語列に含まれる単語数の上限値を指す。
このうち、ステップS501Aでは、学習用入力文または入力文のうち変数iの位置から変数jの位置までの単語列に対応する省略表現が省略表現辞書から検索される。このとき、変数iの位置から変数jの位置までの単語列にヒットする省略表現が存在する場合(ステップS502A Yes)、ラティス拡張部14またはラティス拡張部34は、ラティスのうち変数iの位置から変数jの位置までの単語列に対応する区間に、変数iの位置から変数jの位置までの単語列にヒットした省略表現に対応するノードを追加する(ステップS503A)。
一方、ステップS501BからステップS504Bまでの処理について説明する。ラティス拡張部14は、学習サンプルに含まれる入力文から固有表現を抽出する(ステップS501B)。このように入力文から抽出された固有表現ごとに、ステップS502BからステップS504Bまでの処理を繰り返す。すなわち、ラティス拡張部14は、上記の省略表現辞書から固有表現に対応する省略表現を検索する(ステップS502B)。このとき、固有表現にヒットする省略表現が存在する場合(ステップS503B Yes)、ラティス拡張部14は、ラティスのうち固有表現に対応する区間に、固有表現にヒットした省略表現に対応するノードを追加する(ステップS504B)。
[効果の一側面]
上述してきたように、本実施例に係る学習装置10及び生成装置30は、入力文の単語に対応するノードを直列に接続したラティスのうち所定の表現に対応する区間のノードを拡張し、拡張後のラティスの各ノードの生成確率とモデル辞書の各単語の生成確率とに基づいて要約文の要素を出力する。したがって、本実施例に係る学習装置10及び生成装置30によれば、入力文に含まれるフレーズの省略に失敗するのを抑制することが可能である。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[拡張方法の応用例1]
上記の実施例1では、ラティスの拡張時に学習用入力文または入力文の単語N-gramにヒットした省略表現に対応するノードを追加する例を挙げたが、ラティスの拡張時に追加するノードは必ずしも省略表現そのものに対応するノードでなくともかまわない。例えば、ラティス拡張部14またはラティス拡張部34は、学習用入力文または入力文の単語N-gramに対応する省略表現がヒットすることを条件に、学習用入力文または入力文の単語N-gramに含まれる各文字に対応するノードを追加することとしてもかまわない。
このような拡張方法を採用する場合、図12に示されたラティス拡張処理を図13に示されたラティス拡張処理に差し替えることで、上記の実施例1と同様、入力文に含まれるフレーズの省略に失敗するのを抑制できる。
図13は、応用例1に係るラティス拡張処理の手順を示すフローチャートである。この処理は、図10に示されたステップS104の処理または図11に示されたステップS303の処理に対応する。なお、図10に示されたステップS104では、正解要約文が取得されるので、ステップS601AからステップS603Aまでの処理に加えてステップS601BからステップS604Bまでの処理が行われる。一方、図11に示されたステップS303では、正解要約文は未知であるので、ステップS601BからステップS604Bまでの処理は行われず、ステップS601AからステップS603Aまでの処理だけが行われる。
まず、ステップS601AからステップS603Aまでの処理について説明する。図13に示すように、ラティス拡張部14またはラティス拡張部34は、省略表現辞書の検索に用いる単語列の先頭位置を指定する変数iが学習用入力文または入力文の先頭位置「1」から学習用入力文の末尾位置「M」又は入力文の末尾位置「K」までインクリメントされるまで、ステップS601AからステップS603Aまでの処理を繰り返す。このとき、ラティス拡張部14またはラティス拡張部34は、省略表現辞書の検索に用いる単語列の末尾位置を指定する変数jの値をi+1の値に初期化し、変数jがi+1+Uの値になるまで、変数jをインクリメントしながらステップS601AからステップS603Aまでの処理を繰り返す。なお、「U」は、単語列に含まれる単語数の上限値を指す。
このうち、ステップS601Aでは、学習用入力文または入力文のうち変数iの位置から変数jの位置までの単語列に対応する省略表現が省略表現辞書から検索される。このとき、変数iの位置から変数jの位置までの単語列にヒットする省略表現が存在する場合(ステップS602A Yes)、ラティス拡張部14またはラティス拡張部34は、ラティスのうち変数iの位置から変数jの位置までの単語列に対応する区間に、変数iの位置から変数jの位置までの単語列に含まれる各文字に対応するノードを追加する(ステップS603A)。
一方、ステップS601BからステップS604Bまでの処理について説明する。ラティス拡張部14は、学習サンプルに含まれる入力文から固有表現を抽出する(ステップS601B)。このように入力文から抽出された固有表現ごとに、ステップS602BからステップS604Bまでの処理を繰り返す。すなわち、ラティス拡張部14は、上記の省略表現辞書から固有表現に対応する省略表現を検索する(ステップS602B)。このとき、固有表現にヒットする省略表現が存在する場合(ステップS603B Yes)、ラティス拡張部14は、ラティスのうち固有表現に対応する区間に、固有表現に含まれる各文字に対応するノードを追加する(ステップS604B)。
(1)モデル学習の具体例
以下、図14~図15を用いて、モデル学習の具体例を説明しながら応用例1における要約文の生成事例を説明する。ここでは、学習サンプルの一例として、図3Aおよび図3Bに示された学習サンプルが用いられる例を挙げて説明を行うこととする。
図14は、拡張ラティスの一例を示す図である。図15は、応用例1に係る要約文の生成事例を示す図である。
図3Aに示す学習用入力文40Gが入力された場合、図4に示すように、学習用入力文40Gの単語に対応するノードが直列に接続された初期ラティス41が生成される。
ここで、応用例1においても、従来技術のように、RNNエンコーダのLSTMのセルの生成に初期ラティス41は用いられない。すなわち、省略表現辞書から学習用入力文40Gの単語トリグラム「全日本連名」に対応する省略表現「全日連」が検索される。これによって、図4に示す初期ラティス41は、図14に示す拡張ラティス43へ拡張される。すなわち、図14に反転表示で示された通り、学習用入力文40Gの単語トリグラム「全日本連名」に対応する区間に、学習用入力文40Gの単語トリグラム「全日本連名」に含まれる各文字「全」、「日」、「本」、「連」及び「盟」に対応するノードが追加される。
このような拡張ラティス43がRNNエンコーダのLSTMのセルの生成に用いられる。図14に示す例で言えば、拡張ラティス43の先頭のノード「<s>」から順に末尾のノード「</s>」までのノード数M(=15)に対応する15個のRNNエンコーダのLSTM16E1~16E15のセルがワークエリア上に展開される。このようにLSTM16E1から16E15まで隠し状態を更新しながら伝搬させることにより、RNNエンコーダから隠れ状態H15が得られる。
一方、RNNデコーダのLSTMのセルは、図15に示すように、図3Bに示された正解要約文40Yに含まれる単語数N(=7)に対応する7個のLSTMのセルがワークエリア上に展開される。以下、正解要約文40Yの先頭の単語から順番に各単語に対応してワークエリア上に展開されたLSTMのセルの各々を「LSTM16D1~LSTM16D7」と識別する。
例えば、要約文の先頭の要素が生成される1時刻目t1には、RNNエンコーダから出力される隠れ状態H15、BOSのタグおよび要約文の残り文字数、例えば正解要約文40Yの文字数「8」がRNNデコーダの先頭のLSTM16D1のセルへ入力される。この結果、RNNデコーダのLSTM16D1のセルは、モデル辞書の単語ごとに生成確率を計算することにより、1時刻目t1における各単語の生成確率pvocabularyを算出すると共に、隠れ状態H15を隠れ状態H16へ更新する。
このRNNデコーダのLSTM16D1のセルが出力する隠れ状態H16を用いて、算出部17は、拡張ラティス43に含まれる15個のノードごとに生成確率を計算する。例えば、拡張ラティス43の追加ノード「日」の生成確率を算出する場合を例に挙げる。この場合、拡張ラティス43のノード「日」に対応するRNNエンコーダのLSTM16E5のセルが出力する隠れ状態H5と、RNNデコーダのLSTM16D1のセルが更新した隠れ状態H16との類似度がスコアとして計算される。また、拡張ラティス43の追加ノード「連」の生成確率を算出する場合を例に挙げる。この場合、拡張ラティス43のノード「連」に対応するRNNエンコーダのLSTM16E7のセルが出力する隠れ状態H7と、RNNデコーダのLSTM16D1のセルが更新した隠れ状態H16との類似度がスコアとして計算される。これらと同様に、拡張ラティス43に含まれる全てのノードのスコアが算出される。その上で、全てのノードのスコアの総和が「1」となるように各ノードのスコアが正規化される。これによって、各ノードの生成確率pattentionが得られる。
その後、生成部18は、モデル辞書の各単語の生成確率pvocabularyおよび拡張ラティスの各ノードの生成確率pattentionが線形結合されることにより得られた各要素の生成確率pに基づいて、最大の生成確率pを有する要素「全」を1時刻目t1に出力する。そして、残り文字数の初期値「8」から1時刻目t1に生成された単語「全」の文字数「1」を減算することにより、残り文字数の値を「7」へ更新する。
次に、要約文の先頭の要素が生成される2時刻目t2には、RNNエンコーダから出力される隠れ状態H16、1時刻目t1の正解の単語「全日連」および要約文の残り文字数「7」がRNNデコーダの先頭のLSTM16D2のセルへ入力される。この結果、RNNデコーダのLSTM16D2のセルは、モデル辞書の単語ごとに生成確率を計算することにより、2時刻目t2における各単語の生成確率pvocabularyを算出すると共に、隠れ状態H16を隠れ状態H17へ更新する。
このRNNデコーダのLSTM16D2のセルが出力する隠れ状態H17を用いて、算出部17は、拡張ラティス43に含まれる15個のノードごとに生成確率を計算する。例えば、拡張ラティス43の追加ノード「日」の生成確率を算出する場合を例に挙げる。この場合、拡張ラティス43のノード「日」に対応するRNNエンコーダのLSTM16E5のセルが出力する隠れ状態H5と、RNNデコーダのLSTM16D2のセルが更新した隠れ状態H17との類似度がスコアとして計算される。また、拡張ラティス43の追加ノード「連」の生成確率を算出する場合を例に挙げる。この場合、拡張ラティス43のノード「連」に対応するRNNエンコーダのLSTM16E7のセルが出力する隠れ状態H7と、RNNデコーダのLSTM16D2のセルが更新した隠れ状態H17との類似度がスコアとして計算される。これらと同様に、拡張ラティス43に含まれる全てのノードのスコアが算出される。その上で、全てのノードのスコアの総和が「1」となるように各ノードのスコアが正規化される。これによって、各ノードの生成確率pattentionが得られる。
その後、生成部18は、モデル辞書の各単語の生成確率pvocabularyおよび拡張ラティスの各ノードの生成確率pattentionが線形結合されることにより得られた各要素の生成確率pに基づいて、最大の生成確率pを有する要素「日」を2時刻目t2に出力する。そして、残り文字数「7」から2時刻目t2に生成された単語「日」の文字数「1」を減算することにより、残り文字数の値を「6」へ更新する。
次に、要約文の先頭の要素が生成される3時刻目t3には、RNNエンコーダから出力される隠れ状態H17、2時刻目t2の正解の単語「が」および要約文の残り文字数「6」がRNNデコーダの先頭のLSTM16D3のセルへ入力される。この結果、RNNデコーダのLSTM16D3のセルは、モデル辞書の単語ごとに生成確率を計算することにより、3時刻目t3における各単語の生成確率pvocabularyを算出すると共に、隠れ状態H17を隠れ状態H18へ更新する。
このRNNデコーダのLSTM16D3のセルが出力する隠れ状態H18を用いて、算出部17は、拡張ラティス43に含まれる15個のノードごとに生成確率を計算する。例えば、拡張ラティス43の追加ノード「日」の生成確率を算出する場合を例に挙げる。この場合、拡張ラティス43のノード「日」に対応するRNNエンコーダのLSTM16E5のセルが出力する隠れ状態H5と、RNNデコーダのLSTM16D3のセルが更新した隠れ状態H18との類似度がスコアとして計算される。また、拡張ラティス43の追加ノード「連」の生成確率を算出する場合を例に挙げる。この場合、拡張ラティス43のノード「連」に対応するRNNエンコーダのLSTM16E7のセルが出力する隠れ状態H7と、RNNデコーダのLSTM16D3のセルが更新した隠れ状態H18との類似度がスコアとして計算される。これらと同様に、拡張ラティス43に含まれる全てのノードのスコアが算出される。その上で、全てのノードのスコアの総和が「1」となるように各ノードのスコアが正規化される。これによって、各ノードの生成確率pattentionが得られる。
その後、生成部18は、モデル辞書の各単語の生成確率pvocabularyおよび拡張ラティスの各ノードの生成確率pattentionが線形結合されることにより得られた各要素の生成確率pに基づいて、最大の生成確率pを有する要素「連」を3時刻目t3に出力する。そして、残り文字数「6」から3時刻目t3に生成された単語「連」の文字数「1」を減算することにより、残り文字数の値を「5」へ更新する。
以上の処理がLSTM16D7から文末記号「EOS」が出力される7時刻目t7まで繰り返し実行される。この結果、応用例1においても、要約文「全日連が中島選出」が得られる。この結果を正解要約文40Yと対比すれば明らかな通り、応用例1では、フレーズ「全日本連名」を省略表現「全日連」と省略できていることが明らかである。このため、応用例1では、省略表現「全日連」を含む要約文の生成が可能となっている。
(2)要約文生成の具体例
以下、図16及び図17を用いて、要約文生成の具体例を説明する。ここでは、図3Aに示された学習用入力文40Gと類似する入力文「全日本連名が山田を代表に選出」が入力される例を挙げる。
図16は、拡張ラティスの一例を示す図である。図17は、応用例1に係る要約文の生成事例を示す図である。
入力文「全日本連名が山田を代表に選出」が入力された場合、入力文「全日本連名が山田を代表に選出」の単語に対応するノードが直列に接続された初期ラティスが生成される。
ここで、応用例1で要約文生成が行われる場合、従来技術のように、RNNエンコーダのLSTMのセルの生成に初期ラティスが用いられない。すなわち、省略表現辞書から入力文の単語トリグラム「全日本連名」に対応する省略表現「全日連」が検索される。これによって、入力文から生成された初期ラティスは、図16に示す拡張ラティス63へ拡張される。すなわち、図16に反転表示で示された通り、入力文の単語トリグラム「全日本連名」に対応する区間に、入力文の単語トリグラム「全日本連名」に含まれる各文字「全」、「日」、「本」、「連」及び「盟」に対応するノードが追加される。
このような拡張ラティス63がRNNエンコーダのLSTMのセルの生成に用いられる。図16に示す例で言えば、拡張ラティス63の先頭のノード「<s>」から順に末尾のノード「</s>」までのノード数M(=15)に対応する15個のRNNエンコーダのLSTM36E1~36E15のセルがワークエリア上に展開される。このようにLSTM36E1から36E15まで隠し状態を更新しながら伝搬させることにより、RNNエンコーダから隠れ状態H15が得られる。
一方、RNNデコーダのLSTMのセルは、図17に示すように、EOSのタグが出力されるまでの要約文の要素数L(=7)に対応する7個のLSTMのセルがワークエリア上に展開される。以下、要約文の先頭の要素から順番に各単語に対応してワークエリア上に展開されたLSTMのセルの各々を「LSTM36D1~LSTM36D7」と識別する。
例えば、要約文の先頭の要素が生成される1時刻目t1には、RNNエンコーダから出力される隠れ状態H15、BOSのタグおよび要約文の残り文字数「8」がRNNデコーダの先頭のLSTM36D1のセルへ入力される。この結果、RNNデコーダのLSTM36D1のセルは、モデル辞書の単語ごとに生成確率を計算することにより、1時刻目t1における各単語の生成確率pvocabularyを算出すると共に、隠れ状態H15を隠れ状態H16へ更新する。
このRNNデコーダのLSTM36D1のセルが出力する隠れ状態H16を用いて、算出部37は、拡張ラティス63に含まれる15個のノードごとに生成確率を計算する。例えば、拡張ラティス63の追加ノード「日」の生成確率を算出する場合を例に挙げる。この場合、拡張ラティス63のノード「日」に対応するRNNエンコーダのLSTM36E5のセルが出力する隠れ状態H5と、RNNデコーダのLSTM36D1のセルが更新した隠れ状態H16との類似度がスコアとして計算される。また、拡張ラティス63の追加ノード「連」の生成確率を算出する場合を例に挙げる。この場合、拡張ラティス63のノード「連」に対応するRNNエンコーダのLSTM36E7のセルが出力する隠れ状態H7と、RNNデコーダのLSTM36D1のセルが更新した隠れ状態H16との類似度がスコアとして計算される。これらと同様に、拡張ラティス63に含まれる全てのノードのスコアが算出される。その上で、全てのノードのスコアの総和が「1」となるように各ノードのスコアが正規化される。これによって、各ノードの生成確率pattentionが得られる。
その後、生成部38は、モデル辞書の各単語の生成確率pvocabularyおよび拡張ラティスの各ノードの生成確率pattentionが線形結合されることにより得られた各要素の生成確率pに基づいて、最大の生成確率pを有する要素「全」を1時刻目t1に出力する。そして、残り文字数の初期値「8」から1時刻目t1に生成された単語「全」の文字数「1」を減算することにより、残り文字数の値を「7」へ更新する。
次に、要約文の先頭の要素が生成される2時刻目t2には、1時刻目t1に更新された隠れ状態H16、1時刻目t1に生成された要素「全」および要約文の残り文字数「7」がRNNデコーダの先頭のLSTM36D2のセルへ入力される。この結果、RNNデコーダのLSTM36D2のセルは、モデル辞書の単語ごとに生成確率を計算することにより、2時刻目t2における各単語の生成確率pvocabularyを算出すると共に、隠れ状態H16を隠れ状態H17へ更新する。
このRNNデコーダのLSTM36D2のセルが出力する隠れ状態H17を用いて、算出部37は、拡張ラティス63に含まれる15個のノードごとに生成確率を計算する。例えば、拡張ラティス63の追加ノード「日」の生成確率を算出する場合を例に挙げる。この場合、拡張ラティス63のノード「日」に対応するRNNエンコーダのLSTM36E5のセルが出力する隠れ状態H5と、RNNデコーダのLSTM36D2のセルが更新した隠れ状態H17との類似度がスコアとして計算される。また、拡張ラティス63の追加ノード「連」の生成確率を算出する場合を例に挙げる。この場合、拡張ラティス63のノード「連」に対応するRNNエンコーダのLSTM36E7のセルが出力する隠れ状態H7と、RNNデコーダのLSTM36D2のセルが更新した隠れ状態H17との類似度がスコアとして計算される。これらと同様に、拡張ラティス63に含まれる全てのノードのスコアが算出される。その上で、全てのノードのスコアの総和が「1」となるように各ノードのスコアが正規化される。これによって、各ノードの生成確率pattentionが得られる。
その後、生成部38は、モデル辞書の各単語の生成確率pvocabularyおよび拡張ラティスの各ノードの生成確率pattentionが線形結合されることにより得られた各要素の生成確率pに基づいて、最大の生成確率pを有する要素「日」を2時刻目t2に出力する。そして、残り文字数「7」から2時刻目t2に生成された単語「日」の文字数「1」を減算することにより、残り文字数の値を「6」へ更新する。
次に、要約文の先頭の要素が生成される3時刻目t3には、2時刻目t2に更新された隠れ状態H17、2時刻目t2に生成された要素「日」および要約文の残り文字数「6」がRNNデコーダの先頭のLSTM36D3のセルへ入力される。この結果、RNNデコーダのLSTM36D3のセルは、モデル辞書の単語ごとに生成確率を計算することにより、3時刻目t3における各単語の生成確率pvocabularyを算出すると共に、隠れ状態H17を隠れ状態H18へ更新する。
このRNNデコーダのLSTM36D3のセルが出力する隠れ状態H18を用いて、算出部37は、拡張ラティス63に含まれる15個のノードごとに生成確率を計算する。例えば、拡張ラティス63の追加ノード「日」の生成確率を算出する場合を例に挙げる。この場合、拡張ラティス63のノード「日」に対応するRNNエンコーダのLSTM36E5のセルが出力する隠れ状態H5と、RNNデコーダのLSTM36D3のセルが更新した隠れ状態H18との類似度がスコアとして計算される。また、拡張ラティス63の追加ノード「連」の生成確率を算出する場合を例に挙げる。この場合、拡張ラティス63のノード「連」に対応するRNNエンコーダのLSTM36E7のセルが出力する隠れ状態H7と、RNNデコーダのLSTM36D3のセルが更新した隠れ状態H18との類似度がスコアとして計算される。これらと同様に、拡張ラティス63に含まれる全てのノードのスコアが算出される。その上で、全てのノードのスコアの総和が「1」となるように各ノードのスコアが正規化される。これによって、各ノードの生成確率pattentionが得られる。
その後、生成部38は、モデル辞書の各単語の生成確率pvocabularyおよび拡張ラティスの各ノードの生成確率pattentionが線形結合されることにより得られた各要素の生成確率pに基づいて、最大の生成確率pを有する要素「連」を3時刻目t3に出力する。そして、残り文字数「6」から3時刻目t3に生成された単語「連」の文字数「1」を減算することにより、残り文字数の値を「5」へ更新する。
以上の処理がLSTM16D7から文末記号「EOS」が出力される7時刻目t7まで繰り返し実行される。この結果、応用例1においても、要約文「全日連が山田選出」が得られる。この結果から明らかな通り、応用例1では、フレーズ「全日本連名」を省略表現「全日連」と省略できていることが明らかである。このため、応用例1では、省略表現「全日連」を含む要約文の生成が可能となっている。
[拡張方法の応用例2]
上記の実施例1では、ラティスを拡張する条件の一例として、学習用入力文または入力文の単語N-gramに対応する省略表現がヒットすることを例に挙げたが、これに限定されない。例えば、ラティス拡張部14またはラティス拡張部34は、学習用入力文または入力文に固有表現が含まれることを条件に、学習用入力文または入力文に含まれる固有表現に対応するノードを追加することとしてもかまわない。
このような拡張方法を採用する場合、図12に示されたラティス拡張処理を図18に示されたラティス拡張処理に差し替えることで、入力文に含まれる固有表現の一部が途切れて要約文が生成されるのを抑制できる。
図18は、応用例2に係るラティス拡張処理の手順を示すフローチャートである。この処理は、図10に示されたステップS104の処理または図11に示されたステップS303の処理に対応する。
図18に示すように、ラティス拡張部14またはラティス拡張部34は、学習用入力文または入力文から固有表現を抽出する(ステップS701)。このように学習用入力文または入力文から抽出された固有表現ごとに、ステップS702の処理を繰り返す。ここで言う「固有表現」とは、固有表現に該当するラベル「Y」が連続する区間全体の固有表現であることが好ましい。すなわち、ラティス拡張部14またはラティス拡張部34は、学習用入力文または入力文のラティスのうち上記のステップS701で抽出された固有表現に対応する区間に当該固有表現に対応するノードを追加する(ステップS702)。
(1)モデル学習の具体例
以下、図19~図23を用いて、モデル学習の具体例を説明しながら従来技術および応用例2における要約文の生成事例を対比する。
図19Aおよび図19Bにモデルに入力する学習サンプルの一例を例示する。図19Aは、学習用入力文の一例を示す図である。図19Bは、正解要約文の一例を示す図である。図20は、初期ラティスの一例を示す図である。図21は、従来技術における要約文の生成事例を示す図である。図22は、拡張ラティスの一例を示す図である。図23は、応用例2に係る要約文の生成事例を示す図である。
図19Aに示す学習用入力文80Gが入力された場合、図20に示すように、学習用入力文80Gの単語に対応するノードが直列に接続された初期ラティス81が生成される。
(1.1)従来技術
ここで、従来技術でモデル学習が行われる場合、初期ラティス81に基づいてRNNエンコーダのLSTMのセルが生成される。図20に示す例で言えば、初期ラティス81の先頭のノード「<s>」から順に末尾のノード「</s>」までのノード数M(=9)に対応する9個のRNNエンコーダのLSTM16E1~16E9のセルがワークエリア上に展開される。このようにLSTM16E1から16E9まで隠し状態を更新しながら伝搬させることにより、RNNエンコーダから隠れ状態h9が得られる。
一方、RNNデコーダのLSTMのセルは、図21に示すように、図19Bに示す正解要約文80Yに含まれる単語数N(=4)に対応する4個のLSTMのセルがワークエリア上に展開される。以下、正解要約文80Yの先頭の単語から順番に各単語に対応してワークエリア上に展開されたLSTMのセルの各々を「LSTM16D1~LSTM16D4」と識別する。
例えば、要約文の先頭の要素が生成される1時刻目t1には、RNNエンコーダから出力される隠れ状態h9、BOSのタグおよび要約文の残り文字数、例えば正解要約文40Yの文字数「7」がRNNデコーダの先頭のLSTM16D1のセルへ入力される。この結果、RNNデコーダのLSTM16D1のセルは、モデル辞書の単語ごとに生成確率を計算することにより、1時刻目t1における各単語の生成確率pvocabularyを算出すると共に、隠れ状態h9を隠れ状態h10へ更新する。
このRNNデコーダのLSTM16D1のセルが出力する隠れ状態h10を用いて、算出部17は、拡張ラティスに含まれる9個のノードごとに生成確率を計算する。例えば、初期ラティス81のノード「中島」の生成確率を算出する場合を例に挙げる。この場合、初期ラティス81のノード「中島」に対応するRNNエンコーダのLSTM16E2のセルが出力する隠れ状態h2と、RNNデコーダのLSTM16D1のセルが更新した隠れ状態h10との類似度がスコアとして計算される。これと同様に、初期ラティス81に含まれる全てのノードのスコアが算出される。その上で、全てのノードのスコアの総和が「1」となるように各ノードのスコアが正規化される。これによって、各ノードの生成確率pattentionが得られる。
その後、生成部18は、モデル辞書の各単語の生成確率pvocabularyおよび拡張ラティスの各ノードの生成確率pattentionが線形結合されることにより得られた各要素の生成確率pに基づいて、最大の生成確率pを有する要素「中島」を1時刻目t1に出力する。そして、残り文字数の初期値「7」から1時刻目t1に生成された単語「中島」の文字数「2」を減算することにより、残り文字数の値を「5」へ更新する。
次に、要約文の先頭の要素が生成される2時刻目t2には、RNNデコーダの1時刻前のLSTM16D1エンコーダから出力される隠れ状態h10、1時刻前の正解の単語「中島翔哉」および要約文の残り文字数「5」がRNNデコーダの先頭から2番目のLSTM16D2のセルへ入力される。この結果、RNNデコーダのLSTM16D2のセルは、モデル辞書の単語ごとに生成確率を計算することにより、2時刻目t2における各単語の生成確率pvocabularyを算出すると共に、隠れ状態h10を隠れ状態h11へ更新する。
このRNNデコーダのLSTM16D2のセルが出力する隠れ状態h11を用いて、算出部17は、拡張ラティスに含まれる9個のノードごとに生成確率を計算する。例えば、初期ラティス81のノード「中島」の生成確率を算出する場合を例に挙げる。この場合、初期ラティス81のノード「中島」に対応するRNNエンコーダのLSTM16E2のセルが出力する隠れ状態h2と、RNNデコーダのLSTM16D2のセルが更新した隠れ状態h11との類似度がスコアとして計算される。これと同様に、初期ラティス81に含まれる全てのノードのスコアが算出される。その上で、全てのノードのスコアの総和が「1」となるように各ノードのスコアが正規化される。これによって、各ノードの生成確率pattentionが得られる。
その後、生成部18は、モデル辞書の各単語の生成確率pvocabularyおよび拡張ラティスの各ノードの生成確率pattentionが線形結合されることにより得られた各要素の生成確率pに基づいて、最大の生成確率pを有する要素「が」を2時刻目t2に出力する。そして、残り文字数「5」から2時刻目t2に生成された単語「が」の文字数「1」を減算することにより、残り文字数の値を「4」へ更新する。
以上の処理がLSTM16D4から文末記号「EOS」が出力される4時刻目t4まで繰り返し実行される。この結果、従来技術では、要約文「中島が得点」が得られる。この結果を正解要約文80Yと対比すれば明らかな通り、従来技術では、フレーズ「中島翔哉」を途切れさせずにそのまま出力すべきところが、「中島」の途中で途切れて要約文が生成されている。このため、従来技術では、入力文に含まれる固有表現の一部「翔哉」が途切れて要約文が生成されるのを抑制できていないことが明らかである。
(1.2)応用例2
一方、応用例2でモデル学習が行われる場合、従来技術のように、RNNエンコーダのLSTMのセルの生成に初期ラティス81が用いられない。すなわち、学習用入力文80Gから一連の固有表現「中島翔哉」が抽出される。これによって、図20に示す初期ラティス81は、図22に示す拡張ラティス83へ拡張される。すなわち、図22に反転表示で示された通り、学習用入力文80Gの固有表現「中島翔哉」に対応する区間に、一連の固有表現「中島翔哉」に対応するノードが追加される。
このような拡張ラティス83がRNNエンコーダのLSTMのセルの生成に用いられる。図22に示す例で言えば、拡張ラティス83の先頭のノード「<s>」から順に末尾のノード「</s>」までのノード数M(=12)に対応する12個のRNNエンコーダのLSTM16E1~16E12のセルがワークエリア上に展開される。このようにLSTM16E1から16E12まで隠し状態を更新しながら伝搬させることにより、RNNエンコーダから隠れ状態H12が得られる。
一方、RNNデコーダのLSTMのセルは、図23に示すように、図19Bに示された正解要約文80Yに含まれる単語数N(=4)に対応する4個のLSTMのセルがワークエリア上に展開される。以下、正解要約文80Yの先頭の単語から順番に各単語に対応してワークエリア上に展開されたLSTMのセルの各々を「LSTM16D1~LSTM16D4」と識別する。
例えば、要約文の先頭の要素が生成される1時刻目t1には、RNNエンコーダから出力される隠れ状態H12、BOSのタグおよび要約文の残り文字数、例えば正解要約文80Yの文字数「7」がRNNデコーダの先頭のLSTM16D1のセルへ入力される。この結果、RNNデコーダのLSTM16D1のセルは、モデル辞書の単語ごとに生成確率を計算することにより、1時刻目t1における各単語の生成確率pvocabularyを算出すると共に、隠れ状態H12を隠れ状態H13へ更新する。
このRNNデコーダのLSTM16D1のセルが出力する隠れ状態H13を用いて、算出部17は、拡張ラティスに含まれる12個のノードごとに生成確率を計算する。例えば、拡張ラティス83のノード「中島翔哉」の生成確率を算出する場合を例に挙げる。この場合、拡張ラティス83のノード「中島翔哉」に対応するRNNエンコーダのLSTM16E4のセルが出力する隠れ状態H4と、RNNデコーダのLSTM16D1のセルが更新した隠れ状態H13との類似度がスコアとして計算される。これと同様に、拡張ラティス83に含まれる全てのノードのスコアが算出される。その上で、全てのノードのスコアの総和が「1」となるように各ノードのスコアが正規化される。これによって、各ノードの生成確率pattentionが得られる。
その後、生成部18は、モデル辞書の各単語の生成確率pvocabularyおよび拡張ラティスの各ノードの生成確率pattentionが線形結合されることにより得られた各要素の生成確率pに基づいて、最大の生成確率pを有する要素「中島翔哉」を1時刻目t1に出力する。そして、残り文字数の初期値「7」から1時刻目t1に生成された単語「中島翔哉」の文字数「4」を減算することにより、残り文字数の値を「3」へ更新する。
以上の処理がLSTM16D4から文末記号「EOS」が出力される4時刻目t4まで繰り返し実行される。この結果、応用例2では、要約文「中島翔哉が得点」が得られる。この結果を正解要約文80Yと対比すれば明らかな通り、応用例2では、一連の固有表現「中島翔哉」を途切れさせずにそのまま出力できている。このため、応用例2では、入力文に含まれる固有表現の一部「翔哉」が途切れて要約文が生成されるのを抑制できることが明らかである。
(2)要約文生成の具体例
以下、図24及び図25を用いて、要約文生成の具体例を説明する。ここでは、図19Aに示された学習用入力文80Gと類似する入力文「山田太郎がゴールを決めた」が入力される例を挙げる。
図24は、拡張ラティスの一例を示す図である。図25は、応用例2に係る要約文の生成事例を示す図である。
入力文「山田太郎がゴールを決めた」が入力された場合、入力文「山田太郎がゴールを決めた」の単語に対応するノードが直列に接続された初期ラティスが生成される。
ここで、応用例2で要約文生成が行われる場合、従来技術のように、RNNエンコーダのLSTMのセルの生成に初期ラティスが用いられない。すなわち、入力文から一連の固有表現「山田太郎」が抽出される。これによって、入力文から生成された初期ラティスは、図24に示す拡張ラティス93へ拡張される。すなわち、図24に反転表示で示された通り、入力文の固有表現「山田太郎」に対応する区間に、一連の固有表現「山田太郎」に対応するノードが追加される。
このような拡張ラティス93がRNNエンコーダのLSTMのセルの生成に用いられる。図24に示す例で言えば、拡張ラティス93の先頭のノード「<s>」から順に末尾のノード「</s>」までのノード数K(=12)に対応する12個のRNNエンコーダのLSTM36E1~36E12のセルがワークエリア上に展開される。このようにLSTM36E1から36E12まで隠し状態を更新しながら伝搬させることにより、RNNエンコーダから隠れ状態H12が得られる。
一方、RNNデコーダのLSTMのセルは、図25に示すように、EOSのタグが出力されるまでの要約文の要素数L(=4)に対応する4個のLSTMのセルがワークエリア上に展開される。以下、要約文の先頭の要素から順番に各要素に対応してワークエリア上に展開されたLSTMのセルの各々を「LSTM36D1~LSTM36D4」と識別する。
例えば、要約文の先頭の要素が生成される1時刻目t1には、RNNエンコーダから出力される隠れ状態H12、BOSのタグおよび要約文の残り文字数「7」がRNNデコーダの先頭のLSTM36D1のセルへ入力される。この結果、RNNデコーダのLSTM36D1のセルは、モデル辞書の単語ごとに生成確率を計算することにより、1時刻目t1における各単語の生成確率pvocabularyを算出すると共に、隠れ状態H12を隠れ状態H13へ更新する。
このRNNデコーダのLSTM36D1のセルが出力する隠れ状態H13を用いて、算出部17は、拡張ラティスに含まれる12個のノードごとに生成確率を計算する。例えば、拡張ラティス93のノード「山田太郎」の生成確率を算出する場合を例に挙げる。この場合、拡張ラティス93のノード「山田太郎」に対応するRNNエンコーダのLSTM36E4のセルが出力する隠れ状態H4と、RNNデコーダのLSTM36D1のセルが更新した隠れ状態H13との類似度がスコアとして計算される。これと同様に、拡張ラティス93に含まれる全てのノードのスコアが算出される。その上で、全てのノードのスコアの総和が「1」となるように各ノードのスコアが正規化される。これによって、各ノードの生成確率pattentionが得られる。
その後、生成部38は、モデル辞書の各単語の生成確率pvocabularyおよび拡張ラティス93の各ノードの生成確率pattentionが線形結合されることにより得られた各要素の生成確率pに基づいて、最大の生成確率pを有する要素「山田太郎」を1時刻目t1に出力する。そして、残り文字数の初期値「7」から1時刻目t1に生成された単語「山田太郎」の文字数「4」を減算することにより、残り文字数の値を「3」へ更新する。
以上の処理がLSTM36D4から文末記号「EOS」が出力される4時刻目t4まで繰り返し実行される。この結果、応用例2では、要約文「山田太郎が得点」が得られる。この結果から明らかな通り、応用例2では、一連の固有表現「山田太郎」を途切れさせずにそのまま出力できている。このため、応用例2では、入力文に含まれる固有表現の一部「太郎」が途切れて要約文が生成されるのを抑制できることが明らかである。
[省略表現]
上記の実施例1では、省略表現辞書のエントリの例として、固有表現のフレーズとその省略表現とが対応付けられたエントリの例を挙げたが、省略表現辞書に登録されるフレーズは必ずしも固有表現でなくともかまわない。例えば、固有表現以外の他のフレーズとその省略表現とが対応付けられたエントリが省略表現辞書に含まれることを妨げない。あくまで一例として、フレーズ「ゴールを決めた」と省略表現「得点」とが対応付けられたエントリが省略表現辞書に存在する場合、図22に示された拡張ラティス83や図24に示された拡張ラティス93のように、学習用入力文または入力文のうちフレーズ「ゴールを決めた」の区間にその省略表現「得点」に対応するノードを追加することができる。これによって、フレーズ「ゴールを決めた」を省略表現「得点」へ短縮して要約文を生成することが可能である。
[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、取得部13、ラティス拡張部14、エンコーダ実行部16E、デコーダ実行部16D、算出部17、生成部18又は更新部19を学習装置10の外部装置としてネットワーク経由で接続するようにしてもよい。また、取得部13、ラティス拡張部14、エンコーダ実行部16E、デコーダ実行部16D、算出部17、生成部18又は更新部19を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の学習装置10の機能を実現するようにしてもよい。また、例えば、取得部33、ラティス拡張部34、エンコーダ実行部36E、デコーダ実行部36D、算出部37又は生成部38を生成装置30の外部装置としてネットワーク経由で接続するようにしてもよい。また、取得部33、ラティス拡張部34、エンコーダ実行部36E、デコーダ実行部36D、算出部37又は生成部38を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の生成装置30の機能を実現するようにしてもよい。
[要約文生成プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図26を用いて、上記の実施例と同様の機能を有する要約文生成プログラムを実行するコンピュータの一例について説明する。
図26は、実施例1及び実施例2に係る要約文生成プログラムを実行するコンピュータのハードウェア構成例を示す図である。図26に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、マイク110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110~180の各部はバス140を介して接続される。
HDD170には、図26に示すように、上記の実施例1で示した取得部13、ラティス拡張部14、エンコーダ実行部16E、デコーダ実行部16D、算出部17、生成部18又は更新部19と同様の機能を発揮する要約文生成プログラム170aが記憶される。また、HDD170には、取得部33、ラティス拡張部34、エンコーダ実行部36E、デコーダ実行部36D、算出部37又は生成部38と同様の機能を発揮する要約文生成プログラム170aが記憶されることとしてもかまわない。この要約文生成プログラム170aは、図1に示した機能部の各構成要素と同様、統合又は分離してもかまわない。すなわち、HDD170には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。
このような環境の下、CPU150は、HDD170から要約文生成プログラム170aを読み出した上でRAM180へ展開する。この結果、要約文生成プログラム170aは、図26に示すように、要約文生成プロセス180aとして機能する。この要約文生成プロセス180aは、RAM180が有する記憶領域のうち要約文生成プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、要約文生成プロセス180aが実行する処理の一例として、図10~図13や図18に示す処理などが含まれる。なお、CPU150では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
なお、上記の要約文生成プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に要約文生成プログラム170aを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から要約文生成プログラム170aを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに要約文生成プログラム170aを記憶させておき、コンピュータ100がこれらから要約文生成プログラム170aを取得して実行するようにしてもよい。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)入力文を取得し、
前記入力文の単語に対応するノードが直列に接続されたラティスのうち所定の表現に対応する区間のノードを生成し、
モデルが有する辞書の単語ごとに生成確率を算出し、
生成後のラティスに含まれるノードごとに、前記モデルのエンコーダのセルのうち前記ノードに対応するセルが出力する隠れ状態と、前記モデルのデコーダのセルが更新する隠れ状態とに基づいて生成確率を算出し、
前記辞書の各単語の生成確率と前記生成後のラティスの各ノードの生成確率とに基づいて要約文の要素を生成する、
処理をコンピュータが実行することを特徴とする要約文生成方法。
(付記2)前記生成する処理は、前記入力文の単語N-gramに対応する省略表現が存在する場合、前記ラティスのうち前記入力文の単語N-gramに対応する区間に、前記省略表現に対応するノードを追加することを特徴とする付記1に記載の要約文生成方法。
(付記3)前記生成する処理は、前記入力文の単語N-gramに対応する省略表現が存在する場合、前記ラティスのうち前記入力文の単語N-gramに対応する区間に、前記入力文の単語N-gramに含まれる各文字に対応するノードを追加することを特徴とする付記1に記載の要約文生成方法。
(付記4)前記生成する処理は、前記入力文に固有表現が存在する場合、前記ラティスのうち前記固有表現に対応する区間に、前記固有表現に対応するノードを追加することを特徴とする付記1に記載の要約文生成方法。
(付記5)前記生成する処理は、前記入力文の単語列の中から抽出された固有表現に対応する省略表現が存在する場合、前記ラティスのうち前記固有表現に対応する区間に、前記省略表現に対応するノードを追加することを特徴とする付記1に記載の要約文生成方法。
(付記6)前記生成する処理は、前記入力文の単語列の中から抽出された固有表現に対応する省略表現が存在する場合、前記ラティスのうち前記固有表現に対応する区間に、前記固有表現に含まれる各文字に対応するノードを追加することを特徴とする付記1に記載の要約文生成方法。
(付記7)前記モデルは、前記入力文として記事が入力されると前記記事の要約文を生成する記事要約プログラムに組み込まれることを特徴とする付記1に記載の要約文生成方法。
(付記8)入力文を取得し、
前記入力文の単語に対応するノードが直列に接続されたラティスのうち所定の表現に対応する区間のノードを生成し、
モデルが有する辞書の単語ごとに生成確率を算出し、
生成後のラティスに含まれるノードごとに、前記モデルのエンコーダのセルのうち前記ノードに対応するセルが出力する隠れ状態と、前記モデルのデコーダのセルが更新する隠れ状態とに基づいて生成確率を算出し、
前記辞書の各単語の生成確率と前記生成後のラティスの各ノードの生成確率とに基づいて要約文の要素を生成する、
処理をコンピュータに実行させることを特徴とする要約文生成プログラム。
(付記9)前記生成する処理は、前記入力文の単語N-gramに対応する省略表現が存在する場合、前記ラティスのうち前記入力文の単語N-gramに対応する区間に、前記省略表現に対応するノードを追加することを特徴とする付記8に記載の要約文生成プログラム。
(付記10)前記生成する処理は、前記入力文の単語N-gramに対応する省略表現が存在する場合、前記ラティスのうち前記入力文の単語N-gramに対応する区間に、前記入力文の単語N-gramに含まれる各文字に対応するノードを追加することを特徴とする付記8に記載の要約文生成プログラム。
(付記11)前記生成する処理は、前記入力文に固有表現が存在する場合、前記ラティスのうち前記固有表現に対応する区間に、前記固有表現に対応するノードを追加することを特徴とする付記8に記載の要約文生成プログラム。
(付記12)前記生成する処理は、前記入力文の単語列の中から抽出された固有表現に対応する省略表現が存在する場合、前記ラティスのうち前記固有表現に対応する区間に、前記省略表現に対応するノードを追加することを特徴とする付記8に記載の要約文生成プログラム。
(付記13)前記生成する処理は、前記入力文の単語列の中から抽出された固有表現に対応する省略表現が存在する場合、前記ラティスのうち前記固有表現に対応する区間に、前記固有表現に含まれる各文字に対応するノードを追加することを特徴とする付記8に記載の要約文生成プログラム。
(付記14)前記モデルは、前記入力文として記事が入力されると前記記事の要約文を生成する記事要約プログラムに組み込まれることを特徴とする付記8に記載の要約文生成プログラム。
(付記15)入力文を取得する取得部と、
前記入力文の単語に対応するノードが直列に接続されたラティスのうち所定の表現に対応する区間のノードを生成する第1生成部と、
モデルが有する辞書の単語ごとに生成確率を算出する第1算出部と、
生成後のラティスに含まれるノードごとに、前記モデルのエンコーダのセルのうち前記ノードに対応するセルが出力する隠れ状態と、前記モデルのデコーダのセルが更新する隠れ状態とに基づいて生成確率を算出する第2算出部と、
前記辞書の各単語の生成確率と前記生成後のラティスの各ノードの生成確率とに基づいて要約文の要素を生成する第2生成部と、
を有することを特徴とする要約文生成装置。
(付記16)前記第1生成部は、前記入力文の単語N-gramに対応する省略表現が存在する場合、前記ラティスのうち前記入力文の単語N-gramに対応する区間に、前記省略表現に対応するノードを追加することを特徴とする付記15に記載の要約文生成装置。
(付記17)前記第1生成部は、前記入力文の単語N-gramに対応する省略表現が存在する場合、前記ラティスのうち前記入力文の単語N-gramに対応する区間に、前記入力文の単語N-gramに含まれる各文字に対応するノードを追加することを特徴とする付記15に記載の要約文生成装置。
(付記18)前記第1生成部は、前記入力文に固有表現が存在する場合、前記ラティスのうち前記固有表現に対応する区間に、前記固有表現に対応するノードを追加することを特徴とする付記15に記載の要約文生成装置。
(付記19)前記第1生成部は、前記入力文の単語列の中から抽出された固有表現に対応する省略表現が存在する場合、前記ラティスのうち前記固有表現に対応する区間に、前記省略表現に対応するノードを追加することを特徴とする付記15に記載の要約文生成装置。
(付記20)前記モデルは、前記入力文として記事が入力されると前記記事の要約文を生成する記事要約プログラムに組み込まれることを特徴とする付記15に記載の要約文生成装置。