(57)【要約】【課題】モデルの辞書にない未知語を含めて要約文を生成すること。【解決手段】要約生成方法では、入力文および入力文が入力されたモデルが出力する要約文の間で共通の単語を含む固有表現が存在する場合、要約文のうち共通の単語を含む第１の固有表現の文字列を、入力文のうち共通の単語を含む第２の固有表現の文字列に置換する、処理をコンピュータが実行する。【選択図】図１
2020071668.tif 000002
【特許請求の範囲】
【請求項１】
入力文および前記入力文が入力されたモデルが出力する要約文の間で共通の単語を含む固有表現が存在する場合、前記要約文のうち前記共通の単語を含む第１の固有表現の文字列を、前記入力文のうち前記共通の単語を含む第２の固有表現の文字列に置換する、
処理をコンピュータが実行することを特徴とする要約生成方法。
【請求項２】
前記入力文および前記要約文の間で固有表現の全体集合の類似度が所定の閾値以上であるか否かにより、前記第１の固有表現および前記第２の固有表現を検出する処理を前記コンピュータがさらに実行することを特徴とする請求項１に記載の要約生成方法。
【請求項３】
前記置換する処理は、前記第１の固有表現の前又は後に隣接する第１の隣接文字列と、前記第２の固有表現の前又は後に隣接する第２の隣接文字列との類似度が所定の閾値以上であることを条件に前記第１の固有表現の文字列を前記第２の固有表現の文字列に置換することを特徴とする請求項２に記載の要約生成方法。
【請求項４】
前記入力文および前記要約文の先頭または末尾から順に検索された一致文字列の末尾または先頭の単語と、前記一致文字列の末尾または先頭に隣接する単語とが固有表現であるか否かにより、前記第１の固有表現および前記第２の固有表現を検出する処理を前記コンピュータがさらに実行することを特徴とする請求項１に記載の要約生成方法。
【請求項５】
前記置換する処理は、前記一致文字列の長さが所定の閾値以上であることを条件に前記第１の固有表現の文字列を前記第２の固有表現の文字列に置換することを特徴とする請求項４に記載の要約生成方法。
【請求項６】
入力文および前記入力文が入力されたモデルが出力する要約文の間で共通の単語を含む固有表現が存在する場合、前記要約文のうち前記共通の単語を含む第１の固有表現の文字列を、前記入力文のうち前記共通の単語を含む第２の固有表現の文字列に置換する、
処理をコンピュータに実行させることを特徴とする要約生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、要約生成方法及び要約生成プログラムに関する。
【背景技術】
【０００２】
新聞やＷｅｂサイト、電光掲示板などの文書から要約文を生成する自動要約にニューラルネットワークなどの機械学習が利用されることがある。例えば、入力文をベクトル化するＲＮＮ（Recurrent  Neural  Networks）エンコーダと、入力文のベクトルを参照して要約文の単語の生成を繰り返すＲＮＮデコーダとが接続されたモデルが要約文の生成に用いられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−２２５１８５号公報
【特許文献２】特開２０１７−２７１６８号公報
【特許文献３】特開２００５−１９６５１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の技術では、モデルの辞書の語彙が学習データに出現する単語に限定されるので、モデルの辞書にない未知語は要約文の単語として生成できないという限界がある。
【０００５】
１つの側面では、本発明は、モデルの辞書にない未知語を含めて要約文を生成できる要約生成方法及び要約生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
一態様の要約生成方法では、入力文および前記入力文が入力されたモデルが出力する要約文の間で共通の単語を含む固有表現が存在する場合、前記要約文のうち前記共通の単語を含む第１の固有表現の文字列を、前記入力文のうち前記共通の単語を含む第２の固有表現の文字列に置換する、処理をコンピュータが実行する。
【発明の効果】
【０００７】
モデルの辞書にない未知語を含めて要約文を生成できる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施例１に係るシステムに含まれる各装置の機能的構成を示すブロック図である。
【図２】図２は、記事要約ツールのユースケースの一例を示す図である。
【図３】図３は、固有表現の置換方法の一例を示す図である。
【図４Ａ】図４Ａは、学習用入力文の一例を示す図である。
【図４Ｂ】図４Ｂは、正解要約文の一例を示す図である。
【図５】図５は、モデル学習の一例を示す図である。
【図６】図６は、モデルの辞書の一例を示す図である。
【図７】図７は、入力文および要約文の一例を示す図である。
【図８】図８は、実施例１に係る要約生成処理の手順を示すフローチャートである。
【図９】図９は、固有表現の検出方法の応用例を示す図である。
【図１０】図１０は、実施例２に係る要約生成処理の手順を示すフローチャートである。
【図１１】図１１は、実施例１及び実施例２に係る要約生成プログラムを実行するコンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して本願に係る要約生成方法及び要約生成プログラムについて説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１０】
［システム構成］
図１は、実施例１に係るシステムに含まれる各装置の機能的構成を示すブロック図である。図１に示すシステム１では、学習用入力文および正解要約文を含む学習データを用いてモデルの機械学習を行う機械学習サービス、並びに、学習済みモデルを用いて入力文から要約文を生成する要約生成サービスが提供される。
【００１１】
図１に示すように、システム１には、学習装置１０と、生成装置３０とが含まれる。学習装置１０で学習したモデルを受け取って、生成装置３０は、与えられたデータに対して、結果を生成する。
【００１２】
学習装置１０は、上記の機械学習サービスを提供するコンピュータの一例に対応する。別の計算機に学習装置１０と生成装置３０を配置する際は、ネットワーク通信を介して、モデルを渡す。
【００１３】
一実施形態として、学習装置１０は、パッケージソフトウェアやオンラインソフトウェアとして上記の機械学習サービスを実現する学習プログラムを任意のコンピュータにインストールさせることによって実装できる。このようにインストールされた学習プログラムをコンピュータに実行させることにより、コンピュータを学習装置１０として機能させることができる。
【００１４】
あくまで一例として、学習装置１０は、生成装置３０をクライアントとして収容し、当該クライアントに上記の機械学習サービスを提供するサーバ装置として実装することができる。この場合、学習装置１０は、上記の機械学習サービスを提供するサーバとしてオンプレミスに実装することとしてもよいし、上記の機械学習サービスをアウトソーシングで提供するクラウドとして実装することとしてもかまわない。
【００１５】
例えば、学習装置１０は、複数の学習サンプルを含む学習データ、または、学習データをネットワークもしくは記憶メディアを介して呼び出すことができる識別情報を入力とし、モデルの学習結果を生成装置３０へ出力する。このとき、学習装置１０は、一例として、ＲＮＮエンコーダ及びＲＮＮデコーダが接続されたニューラルネットワークのモデルのパラメータを提供することができる。この他、学習装置１０は、学習済みモデルを用いて実現される要約文の生成が機能として組み込まれたアプリケーションプログラムを提供することもできる。例えば、新聞や電光掲示板、Ｗｅｂサイトなどの各種の記事の原文から記事の見出しを要約文として生成したり、あるいは記事の原文から速報の記事を要約文として生成したりするアプリケーションプログラムを提供することができる。
【００１６】
この他、上記の機械学習サービスの提供形態は、あくまで一例に過ぎず、上記に挙げる例以外の提供形態で機械学習サービスが提供されることを妨げない。例えば、上記の機械学習サービスを実現する学習プログラムそのものをパッケージソフトウェアやオンラインソフトウェアとして提供することとしてもよいし、上記の学習プログラムが導入されたコンピュータを提供することとしてもかまわない。
【００１７】
生成装置３０は、上記の要約生成サービスを提供するコンピュータの一例に対応する。
【００１８】
一実施形態として、生成装置３０は、パッケージソフトウェアやオンラインソフトウェアとして上記の要約生成サービスを実現する要約生成プログラムを任意のコンピュータにインストールさせることによって実装できる。このようにインストールされた要約生成プログラムをコンピュータに実行させることにより、コンピュータを生成装置３０として機能させることができる。
【００１９】
あくまで一例として、上記の要約生成サービスは、新聞や電光掲示板、Ｗｅｂサイトなどの各種のメディアを運営するメディア事業者向けに提供されるＷｅｂサービスのツールの１つ、例えば「記事要約ツール」として提供することができる。この場合、上記のＷｅｂサービスとして提供される機能のうち、原文の入力や要約文の表示等のフロントエンドの機能が記者や編集者等の端末装置に実装されると共に、要約文の生成などのバックエンドの機能が生成装置３０に実装されることとしてもかまわない。
【００２０】
［記事要約ツールのユースケースの一例］
図２は、記事要約ツールのユースケースの一例を示す図である。図２には、メディア事業者の関係者により使用される端末装置に表示される記事要約画面２０の遷移の一例が示されている。
【００２１】
図２の上段には、各種の項目に対する入力が設定されていない初期状態の記事要約画面２０が示されている。例えば、記事要約画面２０には、原文入力エリア２１、要約表示エリア２２、プルダウンメニュー２３、要約ボタン２４、クリアボタン２５などのＧＵＩ（Graphical  User  Interface）コンポーネントが含まれる。このうち、原文入力エリア２１は、記事等の原文を入力するエリアに対応する。また、要約表示エリア２２は、原文入力エリア２１に入力された原文に対応する要約文を表示するエリアに対応する。また、プルダウンメニュー２３は、要約文の上限文字数を指定するＧＵＩコンポーネントの一例に対応する。また、要約ボタン２４は、原文入力エリア２１に入力された原文に対応する要約文を生成するコマンドの実行を受け付けるＧＵＩコンポーネントの一例に対応する。また、クリアボタン２５は、原文入力エリア２１に入力された原文のテキストをクリアするＧＵＩコンポーネントの一例に対応する。
【００２２】
図２に示すように、記事要約画面２０の原文入力エリア２１では、図示しないキーボード等の入力デバイスを介してテキストの入力を受け付けることができる。このように入力デバイスを介してテキストの入力を受け付ける他、原文入力エリア２１では、ワープロソフトなどのアプリケーションにより作成された文書のファイルからテキストをインポートすることができる。
【００２３】
このように原文入力エリア２１に原文のテキストが入力されることにより、記事要約画面２０は、図２の上段に示された状態から図２の中段に示された状態へ遷移する（ステップＳ１）。例えば、原文入力エリア２１に原文のテキストが入力された場合、要約ボタン２４に対する操作を介して要約文を生成するコマンドの実行を受け付けることができる。また、クリアボタン２５に対する操作を介して原文入力エリア２１に入力されたテキストをクリアすることもできる。この他、プルダウンメニュー２３を介して、複数の上限文字数の中からメディア事業者の関係者が希望する上限文字数の指定を受け付けることもできる。ここでは、新聞やニュースの記事の原文から電光掲示板の速報を要約文として生成する場面の一例として、電光掲示板に表示可能な上限文字数の一例に対応する８０文字が指定された例が示されている。これはあくまで一例であり、新聞やＷｅｂサイトの記事から見出しを生成する場合、見出しに対応する上限文字数を選択することができる。
【００２４】
そして、原文入力エリア２１に原文のテキストが入力された状態で要約ボタン２４に対する操作が行われた場合、記事要約画面２０は、図２の中段に示された状態から図２の下段に示された状態へ遷移する（ステップＳ２）。この場合、原文入力エリア２１に入力された原文のテキストが入力文として学習済みモデルに入力されることによりその要約文が生成される。この要約文の生成は、メディア事業者の関係者の端末装置上で実行されることとしてもよいし、あるいはバックエンドのサーバ装置で実行されることとしてもかまわない。この結果、図２の下段に示すように、記事要約画面２０の要約表示エリア２２には、学習済みモデルにより生成された要約文が表示される。
【００２５】
このように記事要約画面２０の要約表示エリア２２に表示された要約文のテキストには、図示しない入力デバイス等を介して編集を行うことができる。
【００２６】
以上のような記事要約ツールが提供されることで、記者や編集者等により行われる記事要約の作業を軽減することが可能になる。例えば、記事要約の作業は、メディアにニュースを配信するプロセス、例えば「配信記事の選定」や「メディア編集システムへの送信」、「記事要約」、「見出し作成」、「校閲」などの中でも相対的に労力が大きいという側面がある。例えば、記事要約が人手により行われる場合、記事の全体から重要な情報を選別し、文章を再構成するといった作業が必要となる。このことから、記事要約の作業が自動化または半自動化される技術的意義は高い。
【００２７】
なお、ここでは、あくまで一例として、メディア事業者の関係者により記事要約ツールが利用されるユースケースを例に挙げたが、メディア事業者から記事の配信を受ける視聴者により記事要約ツールが利用されることとしてもかまわない。例えば、スマートスピーカ等で記事の全文を読み上げる代わりに要約文を読み上げる機能として記事要約ツールを利用することができる。
【００２８】
また、ここでは、あくまで一例として、生成装置３０が上記の要約生成サービスを提供するコンピュータとして実装される例を挙げたが、これに限定されない。例えば、上記の学習済みモデルが組み込まれた要約生成プログラムが任意のコンピュータ、例えば記者や編集者等の端末装置で実行されるスタンドアローンのアプリケーションプログラムとして実装されることとしてもよい。
【００２９】
さらに、ここでは、上記の機械学習サービス及び上記の要約生成サービスが異なる事業主体で実行される例を挙げたが、これら２つのサービスが同一の事業者により提供されることとしてもかまわない。この場合、上記の学習プログラム及び上記の要約生成プログラムが同一のコンピュータもしくはコンピュータシステムにより実行されることとしてもかまわない。
【００３０】
［課題の一側面］
上記の背景技術の欄でも説明した通り、モデルの辞書の語彙が学習データに出現する単語に限定されるので、モデルの辞書にない未知語は要約文の単語として生成できないという限界がある。
【００３１】
［課題解決のアプローチの一側面］
そこで、本実施例に係る生成装置３０は、モデルの辞書にない未知語を入力文に出現する固有表現で補うアプローチを採用する。すなわち、モデルの機械学習には、コーパスが学習データとして利用される場合があるが、語彙数が膨大なコーパスであっても固有名詞を始め、時間表現や数量、パーセンテージなどの数値表現を含む固有表現（Named  Entity）を網羅するのは困難である。このように、モデルの未知語を低減する側面から学習サンプルを増やすのは困難である一方で、視点を変えれば、未知語の大半は、固有表現である可能性が高いとみなすことができる。
【００３２】
このことから、モデルの辞書にない未知語を入力文に出現する固有表現で補うという動機付けの下、入力文および要約文の間で共通の単語を含む固有表現が存在する場合、要約文の固有表現の文字列を入力文の固有表現の文字列に置換する。以下、要約文のうち共通の単語を含む固有表現のことを「第１の固有表現」と記載すると共に、入力文のうち共通の単語を含む固有表現のことを「第２の固有表現」と記載する場合がある。
【００３３】
図３は、固有表現の置換方法の一例を示す図である。図３には、入力文４０Ｇが学習済みモデルに入力されることにより要約文４０Ｙが生成された例が示されている。図３に示すように、入力文４０Ｇおよび要約文４０Ｙから固有表現が抽出される。
【００３４】
このように固有表現が抽出された後、固有表現の置換対象が入力文および要約文の間で共通の単語を含む固有表現に絞り込まれる。例えば、要約文４０Ｙの該当部分を太字で示す通り、要約文４０Ｙからは、共通の単語「吉田」を含む固有表現「吉田ゴム」が第１の固有表現として絞り込まれる。一方、入力文４０Ｇの該当部分を太字で示す通り、共通の単語「吉田」を含む固有表現「吉田○○」が第２の固有表現として絞り込まれる。
【００３５】
この段階で両者が対応すると見做し、第１の固有表現「吉田ゴム」を第２の固有表現「吉田○○」に置換することもできるが、固有表現の置換には次のような条件を付加することもできる。
【００３６】
あくまで一例として、人名を例に挙げれば、親子や親戚などの親類が複数名にわたって記事の文中に出現する場合がある。このような場合、共通の単語を含む固有表現であるからといって必ずしも入力文および要約文の間で対応関係にあると限らない。
【００３７】
このため、要約文４０Ｙおよび入力文４０Ｇの間で固有表現に隣接する文字列が類似することを条件として付加することができる。例えば、修飾部と被修飾部の係り受けは先行する文節から後続する文節へ行われる側面から、固有表現の前に隣接する所定長の文字列の類似度が所定の閾値であることを条件に採用できる。
【００３８】
ここで、数値の一例として、固有表現の前に隣接する１４文字の類似度が８割以上であるか否かが判定されることとする。図３の要約文４１Ｙおよび入力文４０Ｇに下線が付された通り、「吉田ゴム」および「吉田○○」の固有表現の前に隣接する１４文字は、いずれも「同校で防災教室の講師を務めた」である。このように、１４文字の中で１４文字が一致するので、類似度は１０割であり、閾値の８割を超える。
【００３９】
このことから、要約文４０Ｙの固有表現「吉田ゴム」は、入力文４０Ｇの固有表現「吉田○○」に対応する可能性が高いと推定できる。この場合、要約文４０Ｙの固有表現「吉田ゴム」を含む文字列が、入力文４０Ｇの固有表現「吉田○○」を含む文字列に置換される。すなわち、図３に白黒の反転表示で示された文字列４２Ｙ「同校で防災教室の講師を務めた吉田○○」が、図３に斜体字で示された文字列４２Ｇ「同校で防災教室の講師を務めた吉田○○」に置換される。
【００４０】
この結果、学習済みモデルの未知語「○○」の固有表現が入力文４０Ｇを用いて修正された修正要約文４３Ｙ「１５年１１月に同校で防災教室の講師を務めた吉田○○が指摘」が生成される。
【００４１】
以上のように、本実施例に係る生成装置３０によれば、モデルの辞書にない未知語を含めて要約文を生成することが可能になる。
【００４２】
［学習装置１０の構成］
図１に示すように、学習装置１０は、学習データ記憶部１１と、モデル記憶部１２と、入力制御部１３と、エンコーダ実行部１４と、デコーダ実行部１５と、生成部１６と、算出部１７と、更新部１８とを有する。なお、学習装置１０は、図１に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
【００４３】
図１に示す入力制御部１３、エンコーダ実行部１４、デコーダ実行部１５、生成部１６、算出部１７および更新部１８などの機能部は、あくまで例示として、下記のハードウェアプロセッサにより仮想的に実現される。このようなプロセッサの例として、ＤＬＵ（Deep  Learning  Unit）を始め、ＧＰＧＰＵ（General-Purpose  computing  on  Graphics  Processing  Units）やＧＰＵクラスタなどが挙げられる。この他、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）などが挙げられる。すなわち、プロセッサがＲＡＭ（Random  Access  Memory）等のメモリ上に上記学習プログラムをプロセスとして展開することにより、上記の機能部が仮想的に実現される。ここでは、プロセッサの一例として、ＤＬＵやＧＰＧＰＵ、ＧＰＵクラスタ、ＣＰＵ、ＭＰＵを例示したが、汎用型および特化型を問わず、任意のプロセッサにより上記の機能部が実現されることとしてもかまわない。この他、上記の機能部は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによって実現されることを妨げない。
【００４４】
また、図１に示す学習データ記憶部１１およびモデル記憶部１２などの機能部には、ＨＤＤ（Hard  Disk  Drive）、光ディスクやＳＳＤ（Solid  State  Drive）などの記憶装置を採用できる。なお、記憶装置は、必ずしも補助記憶装置でなくともよく、各種の半導体メモリ素子、例えばＲＡＭ、ＥＰＰＲＯＭやフラッシュメモリなども採用できる。
【００４５】
学習データ記憶部１１は、学習データを記憶する記憶部である。ここで、学習データには、一例として、Ｄ個の学習サンプル、いわゆる学習事例が含まれる。さらに、学習サンプルには、モデル学習に用いる入力文および正解の要約文のペアが含まれる。以下、モデルの学習時および要約文の生成時に入力される入力文のラベルを識別する側面から前者のことを「学習用入力文」と記載する場合がある。さらに、モデルの学習時に正解として参照される要約文および入力文から生成される要約文のラベルを識別する側面から前者のことを「正解要約文」と記載する場合がある。
【００４６】
モデル記憶部１２は、モデルに関する情報を記憶する記憶部である。
【００４７】
一実施形態として、モデル記憶部１２には、ＲＮＮエンコーダ及びＲＮＮデコーダが接続されたニューラルネットワークのモデルを形成する入力層、隠れ層及び出力層の各層のニューロンやシナプスなどのモデルの層構造を始め、各層の重みやバイアスなどのモデルのパラメータを含むモデル情報が記憶される。ここで、モデル学習が実行される前の段階では、モデル記憶部１２には、モデルのパラメータとして、乱数により初期設定されたパラメータが記憶される。また、モデル学習が実行された後の段階では、モデル記憶部１２には、学習済みモデルのパラメータが保存される。
【００４８】
入力制御部１３は、モデルに対する入力を制御する処理部である。
【００４９】
一実施形態として、入力制御部１３は、モデル学習のリクエストを受け付けた場合に処理を起動する。このように処理が起動されると、入力制御部１３は、モデル学習の初期設定を行う。例えば、入力制御部１３は、正解要約文の文字数を始め、ユーザに指定された文字数などをモデルが生成する要約文の上限文字数として設定する。
【００５０】
このようにＲＮＮデコーダへ入力する初期値が設定された後、入力制御部１３は、学習データに含まれる学習サンプルごとに、ＲＮＮエンコーダおよびＲＮＮデコーダが接続されたニューラルネットワークのモデルに対する入力を開始する。
【００５１】
具体的には、入力制御部１３は、学習サンプルをカウントするループカウンタｄの値を初期化する。続いて、入力制御部１３は、学習データ記憶部１１に記憶されたＤ個の学習サンプルのうちループカウンタｄに対応する学習サンプルを取得する。その後、入力制御部１３は、ループカウンタｄをインクリメントし、ループカウンタｄの値が学習サンプルの総数Ｄと等しくなるまで、学習データ記憶部１１から学習サンプルを取得する処理を繰り返し実行する。なお、ここでは、学習装置１０内部のストレージに保存された学習データを取得する例を挙げたが、ネットワークを介して接続される外部のコンピュータ、例えばファイルサーバの他、リムーバブルメディア等から学習データが取得されることとしてもかまわない。
【００５２】
このように学習サンプルが取得される度に、入力制御部１３は、当該学習サンプルに含まれる学習用入力文をＲＮＮエンコーダへ入力する。これによって、学習用入力文の単語列がベクトル化されたベクトル、いわゆる中間表現がＲＮＮエンコーダからＲＮＮデコーダへ出力される。これと同時または前後して、入力制御部１３は、ＲＮＮデコーダに文末記号と呼ばれるＥＯＳ（End  Of  Sentence）を出力させるまでの残り文字数を保持するレジスタの値を入力制御部１３が設定した上限文字数に初期化する。これ以降のＲＮＮデコーダへの入力、ＲＮＮデータからの出力、それを用いたモデルのパラメータの更新についてはその詳細を後述する。
【００５３】
エンコーダ実行部１４は、ＲＮＮエンコーダを実行する処理部である。
【００５４】
一実施形態として、エンコーダ実行部１４は、モデル記憶部１２に記憶されたモデル情報にしたがって、入力制御部１３により入力された学習用入力文の単語数Ｍに対応するＭ個のＬＳＴＭ（Long  Short-Term  Memory）をワークエリア上に展開する。これによって、Ｍ個のＬＳＴＭをＲＮＮエンコーダとして機能させる。このＲＮＮエンコーダでは、入力制御部１３による入力制御にしたがって、学習用入力文の先頭の単語から順に、学習用入力文の先頭からｍ番目の単語が当該ｍ番目の単語に対応するＬＳＴＭへ入力されると共に、ｍ−１番目の単語に対応するＬＳＴＭの出力がｍ番目の単語に対応するＬＳＴＭへ入力される。このような入力を先頭の単語に対応するＬＳＴＭから末尾であるＭ番目の単語に対応するＬＳＴＭまで繰り返すことにより、学習用入力文のベクトル、いわゆる中間表現が得られる。このようにＲＮＮエンコーダにより生成された学習用入力文の中間表現がＲＮＮデコーダへ入力される。
【００５５】
デコーダ実行部１５は、ＲＮＮデコーダを実行する処理部である。
【００５６】
一実施形態として、デコーダ実行部１５は、モデル記憶部１２に記憶されたモデル情報にしたがって、入力制御部１３により入力された正解要約文の単語数Ｎに対応するＮ個のＬＳＴＭをワークエリア上に展開する。これによって、Ｎ個のＬＳＴＭをＲＮＮデコーダとして機能させる。これらＲＮＮデコーダには、入力制御部１３の制御にしたがって、ＲＮＮエンコーダから学習用入力文の中間表現が入力されると共に、Ｎ個のＬＳＴＭごとに入力制御部１３からＥＯＳのタグを出力させるまでの残り文字数が入力される。これらの入力にしたがってＮ個のＬＳＴＭを動作させることにより、ＲＮＮデコーダは、Ｎ個のＬＳＭＴごとに単語の確率分布を生成部１６へ出力する。ここで言う「単語の確率分布」とは、学習サンプル全体で学習用入力文に出現する単語ごとに算出された確率の分布を指す。
【００５７】
生成部１６は、要約文の単語を生成する処理部である。
【００５８】
一実施形態として、生成部１６は、ＲＮＮデコーダのｎ番目のＬＳＴＭから単語の確率分布が出力された場合、当該確率分布で確率が最大である単語を要約文の先頭からｎ番目の単語として生成する。
【００５９】
算出部１７は、モデルが生成する単語ごとの損失を算出する処理部である。
【００６０】
一実施形態として、算出部１７は、生成部１６により要約文のｎ番目の単語が生成された場合、正解要約文に含まれる単語のうちｎ番目の単語と、生成部１６により生成されたｎ番目の単語とから損失を算出する。
【００６１】
更新部１８は、モデルのパラメータを更新する処理部である。
【００６２】
一実施形態として、更新部１８は、ＲＮＮデコーダのＮ個のＬＳＴＭごとに損失が算出された場合、各ＬＳＴＭの損失に基づいて対数尤度の最適化を実行することにより、ＲＮＮデコーダのモデルを更新するパラメータを算出する。その上で、更新部１８は、モデル記憶部１２に記憶されたモデルのパラメータを対数尤度の最適化により求められたパラメータに更新する。このパラメータの更新は、全ての学習サンプルにわたって繰り返し実行すると共に、学習データＤについても所定のエポック数にわたって繰り返し実行することができる。
【００６３】
［モデル学習の具体例］
以下、図４〜図６を用いて、モデル学習の具体例を説明しながらモデル学習で構築される辞書の具体例を説明する。
【００６４】
図４Ａおよび図４Ｂにモデルに入力する学習サンプルの一例を例示する。図４Ａは、学習用入力文の一例を示す図である。図４Ｂは、正解要約文の一例を示す図である。図５は、モデル学習の一例を示す図である。これらのうち、図５には、図４Ａに示す学習用入力文６０Ａおよび図４Ｂに示す正解要約文６０Ｂの学習サンプルｄ１がモデルに入力される状況下におけるモデル学習が示されている。
【００６５】
図５に示すように、図４Ｂに示す正解要約文６０Ｂが入力される場合、正解要約文６０Ｂの単語数「１４」に対応する１４個のＬＳＴＭがワークエリア上に展開される。以下、正解要約文６０Ｂの先頭の単語から順番に各単語に対応してワークエリア上に展開されたＬＳＴＭの各々を「ＬＳＴＭ１５Ａ〜ＬＳＴＭ１５Ｎ」と識別する。
【００６６】
例えば、正解要約文６０Ｂの先頭の単語と照合する単語の確率分布を計算する１時刻目には、入力制御部１３の制御にしたがって、ＲＮＮエンコーダの末尾のＬＳＴＭから図４Ａに示す学習用入力文６０Ａの中間表現が先頭のＬＳＴＭ１５Ａへ入力される。これと共に、先頭のＬＳＴＭ１５Ａには、入力制御部１３からＢＯＳ（Begin  Of  Sentence）と呼ばれる文頭記号と共に、ＲＮＮデコーダにＥＯＳを出力させるまでの残り文字数の初期値として正解要約文の文字数「２３」が入力される。これによって、ＬＳＴＭ１５Ａは、学習サンプル全体で学習用入力文に出現する単語ごとに確率を計算することにより１時刻目（ｔ＝１）における単語の確率分布を算出すると共に、学習用入力文６０Ａの中間表現を更新する。その上で、ＬＳＴＭ１５Ａは、１時刻目における単語の確率分布を生成部１６へ出力すると共に、１時刻目に更新された中間表現を次段のＬＳＴＭ１５Ｂへ出力する。
【００６７】
このように１時刻目における単語の確率分布が出力された場合、生成部１６は、当該確率分布で確率が最大である単語、本例では「吉田」を要約文の先頭の単語として生成し、１時刻目に生成された要約文の先頭の単語を算出部１７へ出力する。そして、算出部１７は、正解要約文６０Ｂに含まれる単語のうち１時刻目に対応する先頭の単語「吉田」と、１時刻目に生成された単語「吉田」とから１時刻目における損失を算出する。この場合、１時刻目の正解の単語「吉田」の確率が１に近く、かつその他の単語の確率が０に近いほど小さい損失が算出される。その後、入力制御部１３は、レジスタに保持された残り文字数の初期値「２３」から１時刻目に生成された単語「吉田」の文字数「２」を減算することにより、残り文字数の値を「２１」へ更新する。
【００６８】
次に、正解要約文６０Ｂの先頭から２番目の単語と照合する単語の確率分布を計算する２時刻目には、１時刻目に更新された中間表現がＬＳＴＭ１５ＡからＬＳＴＭ１５Ｂへ入力される。これと共に、ＬＳＴＭ１５Ｂには、入力制御部１３の制御にしたがって、２時刻目の１時刻前、すなわち１時刻目の正解の単語「吉田」が入力されると共に、レジスタに保持された残り文字数「２１」が入力される。これによって、ＬＳＴＭ１５Ｂは、学習サンプル全体で学習用入力文に出現する単語ごとに確率を計算することにより２時刻目（ｔ＝２）における単語の確率分布を算出すると共に、学習用入力文６０Ａの中間表現を更新する。その上で、ＬＳＴＭ１５Ｂは、２時刻目における単語の確率分布を生成部１６へ出力すると共に、２時刻目に更新された中間表現を次段のＬＳＴＭ１５Ｃへ出力する。
【００６９】
このように２時刻目における単語の確率分布が出力された場合、生成部１６は、当該確率分布で確率が最大である単語、本例では「ゴム」を要約文の先頭から２番目の単語として生成し、２時刻目に生成された要約文の先頭から２番目の単語を算出部１７へ出力する。そして、算出部１７は、正解要約文６０Ｂに含まれる単語のうち２時刻目に対応する先頭から２番目の単語「ゴム」と、２時刻目に生成された単語「ゴム」とから２時刻目における損失を算出する。この場合、２時刻目の正解の単語「ゴム」の確率が１に近く、かつその他の単語の確率が０に近いほど小さい損失が算出される。その後、入力制御部１３は、レジスタに保持された残り文字数の値「２１」から２時刻目に生成された単語「ゴム」の文字数「２」を減算することにより、残り文字数の値を「１９」へ更新する。
【００７０】
以上の処理がＬＳＴＭ１５Ｎから文末記号「ＥＯＳ」が出力される１４時刻目まで繰り返し実行される。その後、更新部１８は、１時刻目〜１４時刻目の損失に基づいて対数尤度の最適化を実行することにより、ＲＮＮデコーダのモデルを更新するパラメータを算出した上で、モデル記憶部１２に記憶されたモデルのパラメータを対数尤度の最適化により求められたパラメータに更新する。
【００７１】
このように、図４Ａに示す学習用入力文６０Ａおよび図４Ｂに示す正解要約文６０Ｂの学習サンプルｄ１を含む学習データＤがモデル学習に用いられた場合、あくまで一例として、学習済みモデルには、図６に示す辞書が構築される。図６は、モデルの辞書の一例を示す図である。図６には、１つの側面として、学習サンプルｄ１に含まれる学習用入力文６０Ａの単語の一部が抜粋して示されているが、学習データＤ全体に出現する単語が要約文の単語として生成する確率を算出する対象として辞書化される。例えば、図６に示すように、学習済みモデルの辞書には、「記者」、「会見」、「新製品」、「は」、「そのまま」、「既製品」、「コスト」、「注目」、「吉田」、「ゴム」、「パフォーマンス」などが含まれる。このような単語の辞書を搭載する学習済みモデルでは、図５に示された通り、固有表現「吉田」を含む入力文が入力される場合、単語「吉田」の次に単語「ゴム」が生成される生成確率が高くなるようなモデル学習が学習サンプルｄ１により実現されている。
【００７２】
［生成装置３０の構成］
図１に示すように、生成装置３０は、入力制御部３１と、エンコーダ実行部３２と、デコーダ実行部３３と、生成部３４と、抽出部３５と、検出部３６と、置換部３７とを有する。なお、生成装置３０は、図１に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
【００７３】
図１に示す入力制御部３１、エンコーダ実行部３２、デコーダ実行部３３、生成部３４、抽出部３５、検出部３６及び置換部３７などの機能部は、あくまで例示として、下記のハードウェアプロセッサにより仮想的に実現される。このようなプロセッサの例として、ＤＬＵを始め、ＧＰＧＰＵやＧＰＵクラスタなどが挙げられる。この他、ＣＰＵ、ＭＰＵなどが挙げられる。すなわち、プロセッサがＲＡＭ等のメモリ上に上記の要約生成プログラムをプロセスとして展開することにより、上記の機能部が仮想的に実現される。ここでは、プロセッサの一例として、ＤＬＵやＧＰＧＰＵ、ＧＰＵクラスタ、ＣＰＵ、ＭＰＵを例示したが、汎用型および特化型を問わず、任意のプロセッサにより上記の機能部が実現されることとしてもかまわない。この他、上記の機能部は、ＡＳＩＣやＦＰＧＡなどのハードワイヤードロジックによって実現されることを妨げない。
【００７４】
なお、ここでは、あくまで一例として、上記の要約生成サービスに対応する機能がパッケージ化された要約生成プログラムが実行される例を挙げたが、上記の固有表現の置換機能などの単位でプログラムモジュールが実行されたり、ライブラリが参照されたりすることとしてもかまわない。
【００７５】
入力制御部３１は、モデルに対する入力を制御する処理部である。
【００７６】
一実施形態として、入力制御部３１は、要約文生成のリクエストを受け付けた場合に処理を起動する。このように処理が起動されると、入力制御部３１は、要約文生成の対象とする入力文と共に、学習済みモデルに生成させる要約文の上限文字数の指定を受け付ける。その後、入力制御部３１は、入力文をＲＮＮエンコーダへ入力する。これによって、入力文の単語列がベクトル化されたベクトル、いわゆる中間表現がＲＮＮエンコーダからＲＮＮデコーダへ出力される。これと同時または前後して、入力制御部３１は、ＲＮＮデコーダに文末記号と呼ばれるＥＯＳを出力させるまでの残り文字数を保持するレジスタの値を上記の指定の上限文字数に初期化する。これ以降のＲＮＮデコーダへの入力、ＲＮＮデータからの出力、それを用いた要約文の生成についてはその詳細を後述する。
【００７７】
エンコーダ実行部３２は、ＲＮＮエンコーダを実行する処理部である。
【００７８】
一実施形態として、エンコーダ実行部３２は、モデル記憶部１２に記憶された学習済みモデルのモデル情報にしたがって、入力制御部３１により入力された入力文の単語数ｋに対応するＫ個のＬＳＴＭをワークエリア上に展開することにより、これらＫ個のＬＳＴＭをＲＮＮエンコーダとして機能させる。このＲＮＮエンコーダでは、入力制御部３１による入力制御にしたがって、入力文の先頭の単語から順に、入力文の先頭からｋ番目の単語が当該ｋ番目の単語に対応するＬＳＴＭへ入力されると共に、ｋ−１番目の単語に対応するＬＳＴＭの出力がｋ番目の単語に対応するＬＳＴＭへ入力される。このような入力を先頭の単語に対応するＬＳＴＭから末尾であるＫ番目の単語に対応するＬＳＴＭまで繰り返すことにより、入力文のベクトル、いわゆる中間表現が得られる。このようにＲＮＮエンコーダにより生成された入力文の中間表現がＲＮＮデコーダへ入力される。
【００７９】
デコーダ実行部３３は、ＲＮＮデコーダを実行する処理部である。
【００８０】
一実施形態として、デコーダ実行部３３は、モデル記憶部１２に記憶された学習済みモデルのモデル情報にしたがって、ＥＯＳのタグが出力されるまでＬＳＴＭをワークエリア上に展開することにより、ＥＯＳのタグが出力されるまで展開されたＬ個のＬＳＴＭをＲＮＮデコーダとして機能させる。これらＲＮＮデコーダには、入力制御部３１の制御にしたがって、ＲＮＮエンコーダから入力文の中間表現が入力されると共に、Ｌ個のＬＳＴＭごとに入力制御部３１からＥＯＳのタグを出力させるまでの残り文字数が入力される。これらの入力にしたがってＬ個のＬＳＴＭを動作させることにより、ＲＮＮデコーダは、Ｌ個のＬＳＭＴごとに単語の確率分布を生成部３４へ出力する。
【００８１】
生成部３４は、要約文を生成する処理部である。
【００８２】
一実施形態として、生成部３４は、ＲＮＮデコーダのｌ番目のＬＳＴＭから単語の確率分布が出力された場合、当該確率分布で確率が最大である単語を要約文の先頭からｌ番目の単語として生成する。その後、生成部３４は、ＲＮＮデコーダのＬ番目のＬＳＴＭからＥＯＳのタグが出力された場合、先頭のＬＳＴＭからＬ番目のＬＳＴＭから順に生成された単語を結合することにより要約文を生成し、生成された要約文を抽出部３５へ出力する。
【００８３】
［要約文生成の具体例］
以下、図７を用いて、学習済みモデルを用いた要約文生成の具体例を説明する。
【００８４】
図７は、入力文および要約文の一例を示す図である。図７には、図６に示された単語の辞書を搭載する学習済みモデルに入力文４０Ｇ１が入力される例が示されている。この入力文４０Ｇ１は、図３に示された入力文４０Ｇの記事全文に対応する。図７に示すように、入力文４０Ｇ１が学習済みモデルに入力された場合、学習済みモデルは、要約文４０Ｙを出力する。ここで、入力文４０Ｇ１および要約文４０Ｙの間で共通する単語「吉田」を含む固有表現に着目する。すると、入力文４０Ｇ１に含まれる固有表現「吉田○○」に対応する要約文４０Ｙの部分が「吉田ゴム」と出力されており、入力文４０Ｇ１の本来の趣旨から乖離していることがわかる。これは、図６に示された単語の辞書に固有表現「○○」がない未知語であることが一因である。そして、図５に示された通り、学習済みモデルでは、固有表現「吉田」を含む入力文が入力される場合、単語「吉田」の次に単語「ゴム」が生成される生成確率が高くなるようなモデル学習が学習サンプルｄ１により実現されている。この結果、要約文４０Ｙにおいて「吉田○○」と出力すべき箇所が誤って「吉田ゴム」と出力されている。
【００８５】
以下、あくまで１つの側面として、未知語の箇所が誤った要約文４０Ｙが学習済みモデルから出力される場合でも、未知語の「○○」を含めて要約文を生成できる固有表現の置換機能に対応する各機能部について説明を続ける。
【００８６】
抽出部３５は、固有表現を抽出する処理部である。
【００８７】
一実施形態として、抽出部３５は、入力文および要約文のテキストごとに当該テキストの形態素解析を実行する。この形態素解析の結果を用いて、抽出部３５は、テキストに含まれる文字ごとに当該文字の位置に対応する固有表現ＮＥに関するラベル、例えば固有表現に該当するラベル「Ｙ」または固有表現に該当しないラベル「Ｎ」を付与するラベリング処理を実行する。以下、固有表現ＮＥに関するラベルのことを「ＮＥラベル」と記載する場合がある。このラベリング処理には、任意の固有表現抽出のエンジンを用いることができ、オープンソースのソフトウェアであってかまわない。これによって、入力文および要約文の文字ごとに固有表現が抽出される。
【００８８】
検出部３６は、要約文および入力文の間で対応する第１の固有表現および第２の固有表現を検出する処理部である。
【００８９】
一実施形態として、検出部３６は、要約文および入力文の間で固有表現の全体集合の類似度が所定の閾値以上であるか否かにより、第１の固有表現および第２の固有表現を検出する。あくまで一例として、検出部３６は、要約文および入力文ごとに、要約文または入力文のうちＮＥラベルが「Ｎ」から「Ｙ」へ変わってから「Ｎ」に戻るまでの区間の文字列を固有表現の全体集合として抽出する。その上で、検出部３６は、要約文の固有表現の全体集合を１つ選択する。続いて、検出部３６は、入力文の固有表現の全体集合ごとに当該入力文の固有表現の全体集合および選択中である要約文の固有表現の全体集合の間で類似度が所定の閾値Ｌ以上であるか否かを判定する。この結果、類似度が閾値Ｌ以上である要約文の固有表現の全体集合および入力文の固有表現の全体集合を第１の固有表現および第２の固有表現として検出する。
【００９０】
このような固有表現間の類似度には、一例として、ジャカード係数を用いることができる。例えば、ジャカード係数は、下記の式（１）により算出することができる。また、類似度は、コサインメジャーを用いることもできる。例えば、コサインメジャーは、下記の式（２）により算出することができる。ここで、下記の２つの式における「｜ＹＮＥ［ｙ］∧ＧＮＥ［ｈ］｜」は、２つの固有表現の全体集合における共通の文字数を指す。また、「｜ＹＮＥ［ｙ］｜」および「｜ＧＮＥ［ｈ］｜」は、要約文または入力文の固有表現の全体集合の文字数を指す。また、下記の式（１）における「ｍａｘ（Ａ，Ｂ）」は、ＡとＢのうち最大の値を戻り値として返す関数を指す。また、下記の式（２）における「ｓｑｒｔ（Ａ）」は、Ａの平方根を指す。
【００９１】
｜ＹＮＥ［ｙ］∧ＧＮＥ［ｈ］｜／ｍａｘ（｜ＹＮＥ［ｙ］｜，｜ＧＮＥ［ｈ］｜）・・・（１）
｜ＹＮＥ［ｙ］∧ＧＮＥ［ｈ］｜／（ｓｑｒｔ（｜ＹＮＥ［ｙ］｜）ｓｑｒｔ｜ＧＮＥ［ｈ］｜））・・・（２）
【００９２】
例えば、ＹＮＥを「吉田ゴム」とし、ＧＮＥを「吉田○○」としたとき、｜ＹＮＥ［ｙ］∧ＧＮＥ［ｈ］｜は、「吉田」の２文字となる。このため、ジャカード係数は、２／ｍａｘ（４，４）の計算により、「１／２」と算出できる。また、コサインメジャーは、２／（√２×√２）の計算により、「１」と算出できる。例えば、閾値Ｌを「０．３」や「０．５」などの値に設定しておくことにより、「吉田ゴム」を第１の固有表現として検出し、「吉田○○」を第２の固有表現として検出できる。
【００９３】
なお、２つの固有表現の全体集合の間で文字数に差がある場合、文字数が多い方の全体集合から文字数が少ない方と同数の文字数の部分集合を抽出し、抽出された固有表現の部分集合ごとに文字数が少ない方の固有表現の全体集合との類似度を算出することとしてもかまわない。この場合、閾値Ｌを超える類似度のうち最高の類似度を持つ組合せを第１の固有表現および第２の固有表現として検出することとすればよい。また、ここでは、類似度の計算が文字を最小単位として行う場合を例示したが、単語を最小単位として行うこととしてもかまわない。
【００９４】
置換部３７は、第１の固有表現の文字列を第２の固有表現の文字列に置換する処理部である。
【００９５】
一実施形態として、置換部３７は、検出部３６により第１の固有表現および第２の固有表現が抽出された場合、要約文および入力文の間で各固有表現に隣接する文字列が類似するか否かを判定する。例えば、修飾部と被修飾部の係り受けは先行する文節から後続する文節へ行われる側面から、置換部３７は、第１の固有表現および第２の固有表現の前に隣接する所定長Ｎの文字列の類似度が所定の閾値Ｃであるか否かを判定する。このとき、各固有表現の前に隣接する所定長Ｎの文字列の類似度が閾値Ｃ以上である場合、要約文の第１の固有表現および入力文の第２の固有表現が対応関係にある可能性が推定できる。この場合、置換部３７は、要約文のうち第１の固有表現を含む文字列を、入力文のうち第２の固有表現を含む文字列に置換する。
【００９６】
これら抽出部３５、検出部３６及び置換部３７の処理により、図７を用いて説明した事例、すなわち未知語「○○」の箇所に誤り「ゴム」がある要約文４０Ｙが学習済みモデルから出力される場合でも、未知語の「○○」を含めて要約文を生成できる。
【００９７】
すなわち、図３を用いて説明した通り、まず、入力文４０Ｇおよび要約文４０Ｙから固有表現が抽出される。その上で、要約文４０Ｙからは、共通の単語「吉田」を含む固有表現「吉田ゴム」が第１の固有表現として絞り込まれる。一方、入力文４０Ｇの該当部分を太字で示す通り、共通の単語「吉田」を含む固有表現「吉田○○」が第２の固有表現として絞り込まれる。さらに、「吉田ゴム」および「吉田○○」の２つの固有表現の前に隣接する所定長Ｎの文字列「同校で防災教室の講師を務めた」が一致することから、類似度がジャカード係数およびコサインメジャーとも閾値Ｃ以上である１と確認できる。このため、要約文４０Ｙの固有表現「吉田ゴム」は、入力文４０Ｇの固有表現「吉田○○」に対応する可能性が高いと推定できる。このような確認が行われた後、図３に白黒の反転表示で示された文字列４２Ｙ「同校で防災教室の講師を務めた吉田○○」が、図３に斜体字で示された文字列４２Ｇ「同校で防災教室の講師を務めた吉田○○」に置換される。
【００９８】
したがって、学習済みモデルの未知語「○○」の固有表現が入力文４０Ｇを用いて修正された修正要約文４３Ｙ「１５年１１月に同校で防災教室の講師を務めた吉田○○が指摘」を生成して所定の出力先、例えば生成装置３０に接続された端末装置等へ出力できる。
【００９９】
［処理の流れ］
図８は、実施例１に係る要約生成処理の手順を示すフローチャートである。この処理は、要約文および入力文から固有表現を抽出する前処理が実行された後に実行される。ここで、図８に示す要約生成処理で用いられるパラメータの説明を行う。例えば、「ｇ」は、入力文Ｇの固有表現ＧＮＥの位置を指示する変数を指し、例えば、「０」が初期値に設定される。また、「ｙ」は、要約文Ｙの固有表現ＹＮＥの位置を指示する変数を指す。これらの変数のカウンタは図示しないレジスタ等に保持される。
【０１００】
図８に示すように、検出部３６は、要約文Ｙの固有表現ＹＮＥの位置ｙを「１」に初期化すると共に入力文Ｇの固有表現ＧＮＥの位置ｇをインクリメントする（ステップＳ１０１）。続いて、検出部３６は、入力文Ｇのｇ番目の固有表現ＧＮＥ［ｇ］と、要約文Ｙのｙ番目の固有表現ＹＮＥ［ｙ］との類似度が閾値Ｌ以上であるか否かを判定する。
【０１０１】
このとき、ＧＮＥ［ｇ］およびＹＮＥ［ｙ］の類似度が閾値Ｌ以上である場合（ステップＳ１０２Ｙｅｓ）、ＹＮＥ［ｙ］が第１の固有表現として検出されると共にＧＮＥ［ｇ］が第２の固有表現として検出される。この場合、置換部３７は、ＧＮＥ［ｇ］およびＹＮＥ［ｙ］の前に隣接する所定長Ｎの文字列の類似度が閾値Ｃ以上であるか否かを判定する（ステップＳ１０３）。
【０１０２】
ここで、ＧＮＥ［ｇ］およびＹＮＥ［ｙ］の前に隣接する所定長Ｎの文字列の類似度が閾値Ｃ以上である場合（ステップＳ１０３Ｙｅｓ）、ＧＮＥ［ｇ］およびＹＮＥ［ｙ］が対応関係にあると推定できる。この場合、置換部３７は、要約文Ｙ中のｙ番目の固有表現ＹＮＥ［ｙ］を入力文Ｇ中のｇ番目の固有表現ＧＮＥ［ｇ］に置換し（ステップＳ１０４）、ステップＳ１０５の処理へ移行する。
【０１０３】
一方、ＧＮＥ［ｇ］およびＹＮＥ［ｙ］の類似度が閾値Ｌ以上でない場合、あるいはＧＮＥ［ｇ］およびＹＮＥ［ｙ］の前に隣接する所定長Ｎの文字列の類似度が閾値Ｃ以上でない場合（ステップＳ１０２ＮｏまたはステップＳ１０３Ｎｏ）、ステップＳ１０４の処理をスキップしてステップＳ１０５の処理へ移行する。
【０１０４】
そして、検出部３６は、要約文Ｙの固有表現ＹＮＥの位置ｙをインクリメントする（ステップＳ１０５）。その後、要約文Ｙの固有表現ＹＮＥの位置ｙが要約文Ｙの固有表現の数｜ＹＮＥ｜と等しくなるまで（ステップＳ１０６Ｙｅｓ）、上記のステップＳ１０２〜上記のステップＳ１０５までの処理を繰り返して実行する。
【０１０５】
また、要約文Ｙの固有表現ＹＮＥの位置ｙが要約文Ｙの固有表現の数｜ＹＮＥ｜になると（ステップＳ１０６Ｎｏ）、入力文Ｇの固有表現ＧＮＥの位置ｇが入力文Ｇの固有表現の数｜ＧＮＥ｜と等しくなるまで（ステップＳ１０７Ｙｅｓ）、上記のステップＳ１０１〜上記のステップＳ１０６までの処理を繰り返して実行する。
【０１０６】
その後、入力文Ｇの固有表現ＧＮＥの位置ｇが入力文Ｇの固有表現の数｜ＧＮＥ｜と等しくなると（ステップＳ１０７Ｎｏ）、処理を終了する。
【０１０７】
［効果の一側面］
上述してきたように、本実施例に係る生成装置３０は、入力文および要約文の間で共通の単語を含む固有表現が存在する場合、要約文の固有表現の文字列を入力文の固有表現の文字列に置換する。したがって、本実施例に係る生成装置３０によれば、モデルの辞書にない未知語を含めて要約文を生成することが可能である。
【実施例２】
【０１０８】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【０１０９】
［固有表現の検出方法の応用例］
上記の実施例１では、要約文および入力文に含まれる固有表現を検索キーとし、第１の固有表現および第２の固有表現を検出する例を説明したが、他の方法によって第１の固有表現および第２の固有表現を検出することもできる。例えば、生成装置３０は、入力文および要約文の先頭または末尾から順に検索された一致文字列の末尾または先頭の単語と、一致文字列の末尾または先頭に隣接する単語とが固有表現であるか否かにより、第１の固有表現及び第２の固有表現を検出することもできる。
【０１１０】
図９は、固有表現の検出方法の応用例を示す図である。図９の上段には、図３に示された入力文４０Ｇに含まれる文字ごとに入力文４０Ｇ中の位置ｇおよびＮＥタグが示されている。一方、図９の下段には、図３に示された要約文４０Ｙに含まれる文字ごとに要約文４０Ｙ中の位置ｙおよびＮＥタグが示されている。
【０１１１】
例えば、入力文４０Ｇおよび要約文４０Ｙの先頭から順に検索が行われる場合、次の通りとなる。すなわち、図９に示すように、入力文４０Ｇにおける位置ｇ＝３８から位置ｇ＝４５までの文字列と、要約文４０Ｙにおける位置ｙ＝１５から位置ｙ＝２３までの文字列とが一致する。その一方で、入力文４０Ｇにおける位置ｇ＝４６の文字「○」と、要約文４０Ｙの位置ｙ＝２４の文字「ゴ」とが一致しない。これによって、図９に示す枠８１で囲われた一致文字列「講師を務めた吉田」が検索結果として得られる。
【０１１２】
そして、一致文字列が得られた場合、一致文字列の末尾の単語「吉田」と、一致文字列の末尾に隣接する単語、すなわち枠８２で囲われた入力文４０Ｇの単語「○○」及び要約文４０Ｙの単語「ゴム」とが固有表現であるか否かが判定される。これら単語「吉田」、単語「○○」及び単語「ゴム」のＮＥタグは、いずれも「Ｙ」であるので、固有表現であることが確認できる。この場合、要約文４０Ｙのうち一致文字列の末尾の単語「吉田」および一致文字列の末尾に隣接する単語「ゴム」を含む文字列「吉田ゴム」が、入力文４０Ｇのうち一致文字列の末尾の単語「吉田」および一致文字列の末尾に隣接する単語「○○」を含む文字列「吉田○○」に置換される。つまり、図９に示された破線の枠８３Ｙで囲われた文字列「吉田ゴム」が、図９に実線の枠８３Ｇで囲われた文字列「吉田○○」に置換される。
【０１１３】
このような固有表現の置換方法のアルゴリズムの一例を図１０に示す。図１０は、実施例２に係る要約生成処理の手順を示すフローチャートである。この処理も、要約文および入力文から固有表現を抽出する前処理が実行された後に実行される。ここで、図１０に示す要約生成処理で用いられるパラメータの説明を行う。例えば、「ｇ」は、入力文Ｇの固有表現ＧＮＥの位置を指示する変数を指し、例えば、「１」が初期値に設定される。また、「ｙ」は、要約文Ｙの固有表現ＹＮＥの位置を指示する変数を指す。さらに、「ｃ」は、一致文字列の文字数を指す。また、「ｈ」は、一致文字列の検索用のインデックスを指す。これらの変数のカウンタは図示しないレジスタ等に保持される。
【０１１４】
図１０に示すように、検出部３６は、要約文Ｙの固有表現ＹＮＥの位置ｙを「１」に初期化し、一致文字列の文字数ｃを「０」に初期化すると共に一致文字列の検索用のインデックスｈを「ｇ」に初期化する（ステップＳ３０１）。
【０１１５】
続いて、検出部３６は、入力文Ｇにおけるｈ番目の文字と、要約文Ｙにおけるｙ番目の文字とが同じ文字であるか否か、すなわちＧ［ｈ］＝＝Ｙ［ｙ］であるか否かを判定する（ステップＳ３０２）。なお、Ｇ［ｈ］＝＝Ｙ［ｙ］でない場合（ステップＳ３０２Ｎｏ）、ステップＳ３０８の処理へ移行する。
【０１１６】
このとき、Ｇ［ｈ］＝＝Ｙ［ｙ］である場合（ステップＳ３０２Ｙｅｓ）、検出部３６は、要約文Ｙの固有表現ＹＮＥの位置ｙ、一致文字列の文字数ｃおよび一致文字列の検索用のインデックスｈをインクリメントする（ステップＳ３０３）。
【０１１７】
そして、検出部３６は、一致文字列の文字数ｃが一致文字列と比較する閾値Ｌよりも小さいか否か、すなわち一致文字列の文字数ｃ＜閾値Ｌであるか否かを判定する（ステップＳ３０４）。なお、一致文字列の文字数ｃ＜閾値Ｌである場合（ステップＳ３０４Ｙｅｓ）、上記のステップＳ３０２の処理に戻る。
【０１１８】
一方、一致文字列の文字数ｃ＜閾値Ｌでない場合（ステップＳ３０４Ｎｏ）、検出部３６は、入力文Ｇにおけるｈ番目の文字と、要約文Ｙにおけるｙ番目の文字とが異なる文字であるか否か、すなわちＧ［ｈ］！＝Ｙ［ｙ］であるか否かを判定する（ステップＳ３０５）。なお、Ｇ［ｈ］！＝Ｙ［ｙ］でない場合（ステップＳ３０５Ｎｏ）、上記のステップＳ３０３の処理に戻る。
【０１１９】
このとき、Ｇ［ｈ］！＝Ｙ［ｙ］である場合（ステップＳ３０５Ｙｅｓ）、検出部３６は、入力文Ｇにおけるｈ−１番目の文字と、入力文Ｇにおけるｈ番目の文字と、要約文Ｙにおけるｙ番目の文字とのＮＥラベルが固有表現に該当するラベル「Ｙ」であるか否かを判定する（ステップＳ３０６）。なお、３つの文字のＮＥラベルが「Ｙ」でない場合（ステップＳ３０６Ｎｏ）、ステップＳ３０８の処理へ移行する。
【０１２０】
ここで、入力文Ｇにおけるｈ−１番目の文字と、入力文Ｇにおけるｈ番目の文字と、要約文Ｙにおけるｙ番目の文字とのＮＥラベルがラベル「Ｙ」である場合（ステップＳ３０６Ｙｅｓ）、次のような処理を実行する。すなわち、置換部３７は、要約文Ｙ中の位置ｙの文字Ｙ［ｙ］を含む固有表現の文字列を入力文Ｇ中の位置ｈ−１の文字Ｇ［ｈ−１］を含む固有表現の文字列に置換する（ステップＳ３０７）。
【０１２１】
その後、検出部３６は、入力文Ｇの位置ｇをインクリメントする（ステップＳ３０８）。そして、入力文Ｇの位置ｇが入力文Ｇの文字数｜Ｇ｜に達するまで（ステップＳ３０９Ｙｅｓ）、上記のステップＳ３０１から上記のステップＳ３０８までの処理が繰り返し実行される。最後に、入力文Ｇの位置ｇが入力文Ｇの文字数｜Ｇ｜に達すると（ステップＳ３０９Ｎｏ）、処理を終了する。
【０１２２】
このような処理によって、図８に示す要約生成処理と同様、モデルの辞書にない未知語を含めて要約文を生成することが可能である。
【０１２３】
［適用条件の応用例］
実施例１および実施例２では、要約文４０Ｙおよび入力文４０Ｇの間で固有表現に隣接する文字列が類似することを第１の固有表現および第２の固有表現の置換に関する適用条件として設定する例を挙げたが、他の加重条件を設定することとしてもかまわない。例えば、固有表現抽出では、文字や形態素ごとに上記のＮＥラベルの他にも、人名や地名、組織名、数値表現などのクラスも得られるので、これを適用条件の設定に用いることができる。例えば、第１の固有表現および第２の固有表現の間でクラスが共通であること、さらには、第１の固有表現および第２の固有表現に含まれる文字または形態素が分類されたクラスが全て同一であることを適用条件として設定することもできる。
【０１２４】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、入力制御部３１、エンコーダ実行部３２、デコーダ実行部３３、生成部３４、抽出部３５、検出部３６または置換部３７を生成装置３０の外部装置としてネットワーク経由で接続するようにしてもよい。あくまで一例として、入力制御部３１、エンコーダ実行部３２、デコーダ実行部３３及び生成部３４が生成装置３０の外部装置に備わることとしてもかまわない。また、入力制御部３１、エンコーダ実行部３２、デコーダ実行部３３、生成部３４、抽出部３５、検出部３６または置換部３７を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の生成装置３０の機能を実現するようにしてもよい。あくまで一例として、入力制御部３１、エンコーダ実行部３２、デコーダ実行部３３及び生成部３４を有する装置と、抽出部３５、検出部３６及び置換部３７を有する装置とがネットワーク経由で協働することとしてもよい。
【０１２５】
［要約生成プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１１を用いて、上記の実施例と同様の機能を有する要約生成プログラムを実行するコンピュータの一例について説明する。
【０１２６】
図１１は、実施例１及び実施例２に係る要約生成プログラムを実行するコンピュータのハードウェア構成例を示す図である。図１１に示すように、コンピュータ１００は、操作部１１０ａと、スピーカ１１０ｂと、カメラ１１０ｃと、ディスプレイ１２０と、通信部１３０とを有する。さらに、このコンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０とを有する。これら１１０〜１８０の各部はバス１４０を介して接続される。
【０１２７】
ＨＤＤ１７０には、図１１に示すように、上記の実施例１で示した入力制御部３１、エンコーダ実行部３２、デコーダ実行部３３、生成部３４、抽出部３５、検出部３６及び置換部３７と同様の機能を発揮する要約生成プログラム１７０ａが記憶される。この要約生成プログラム１７０ａは、図１に示した入力制御部３１、エンコーダ実行部３２、デコーダ実行部３３、生成部３４、抽出部３５、検出部３６及び置換部３７の各構成要素と同様、統合又は分離してもかまわない。すなわち、ＨＤＤ１７０には、必ずしも上記の実施例１で示した全てのデータが格納されずともよく、処理に用いるデータがＨＤＤ１７０に格納されればよい。
【０１２８】
このような環境の下、ＣＰＵ１５０は、ＨＤＤ１７０から要約生成プログラム１７０ａを読み出した上でＲＡＭ１８０へ展開する。この結果、要約生成プログラム１７０ａは、図１１に示すように、要約生成プロセス１８０ａとして機能する。この要約生成プロセス１８０ａは、ＲＡＭ１８０が有する記憶領域のうち要約生成プロセス１８０ａに割り当てられた領域にＨＤＤ１７０から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、要約生成プロセス１８０ａが実行する処理の一例として、図８や図１０に示す処理などが含まれる。なお、ＣＰＵ１５０では、必ずしも上記の実施例１で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【０１２９】
なお、上記の要約生成プログラム１７０ａは、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶されておらずともかまわない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に要約生成プログラム１７０ａを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体から要約生成プログラム１７０ａを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などに要約生成プログラム１７０ａを記憶させておき、コンピュータ１００がこれらから要約生成プログラム１７０ａを取得して実行するようにしてもよい。
【０１３０】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１３１】
（付記１）入力文および前記入力文が入力されたモデルが出力する要約文の間で共通の単語を含む固有表現が存在する場合、前記要約文のうち前記共通の単語を含む第１の固有表現の文字列を、前記入力文のうち前記共通の単語を含む第２の固有表現の文字列に置換する、
処理をコンピュータが実行することを特徴とする要約生成方法。
【０１３２】
（付記２）前記入力文および前記要約文の間で固有表現の全体集合の類似度が所定の閾値以上であるか否かにより、前記第１の固有表現および前記第２の固有表現を検出する処理を前記コンピュータがさらに実行することを特徴とする付記１に記載の要約生成方法。
【０１３３】
（付記３）前記置換する処理は、前記第１の固有表現の前又は後に隣接する第１の隣接文字列と、前記第２の固有表現の前又は後に隣接する第２の隣接文字列との類似度が所定の閾値以上であることを条件に前記第１の固有表現の文字列を前記第２の固有表現の文字列に置換することを特徴とする付記２に記載の要約生成方法。
【０１３４】
（付記４）前記入力文および前記要約文の先頭または末尾から順に検索された一致文字列の末尾または先頭の単語と、前記一致文字列の末尾または先頭に隣接する単語とが固有表現であるか否かにより、前記第１の固有表現および前記第２の固有表現を検出する処理を前記コンピュータがさらに実行することを特徴とする付記１に記載の要約生成方法。
【０１３５】
（付記５）前記置換する処理は、前記一致文字列の長さが所定の閾値以上であることを条件に前記第１の固有表現の文字列を前記第２の固有表現の文字列に置換することを特徴とする付記４に記載の要約生成方法。
【０１３６】
（付記６）入力文および前記入力文が入力されたモデルが出力する要約文の間で共通の単語を含む固有表現が存在する場合、前記要約文のうち前記共通の単語を含む第１の固有表現の文字列を、前記入力文のうち前記共通の単語を含む第２の固有表現の文字列に置換する、
処理をコンピュータに実行させることを特徴とする要約生成プログラム。
【０１３７】
（付記７）前記入力文および前記要約文の間で固有表現の全体集合の類似度が所定の閾値以上であるか否かにより、前記第１の固有表現および前記第２の固有表現を検出する処理を前記コンピュータにさらに実行させることを特徴とする付記６に記載の要約生成プログラム。
【０１３８】
（付記８）前記置換する処理は、前記第１の固有表現の前又は後に隣接する第１の隣接文字列と、前記第２の固有表現の前又は後に隣接する第２の隣接文字列との類似度が所定の閾値以上であることを条件に前記第１の固有表現の文字列を前記第２の固有表現の文字列に置換することを特徴とする付記７に記載の要約生成プログラム。
【０１３９】
（付記９）前記入力文および前記要約文の先頭または末尾から順に検索された一致文字列の末尾または先頭の単語と、前記一致文字列の末尾または先頭に隣接する単語とが固有表現であるか否かにより、前記第１の固有表現および前記第２の固有表現を検出する処理を前記コンピュータにさらに実行させることを特徴とする付記６に記載の要約生成プログラム。
【０１４０】
（付記１０）前記置換する処理は、前記一致文字列の長さが所定の閾値以上であることを条件に前記第１の固有表現の文字列を前記第２の固有表現の文字列に置換することを特徴とする付記９に記載の要約生成プログラム。
【０１４１】
（付記１１）入力文および前記入力文が入力されたモデルが出力する要約文の間で共通の単語を含む固有表現が存在する場合、前記要約文のうち前記共通の単語を含む第１の固有表現の文字列を、前記入力文のうち前記共通の単語を含む第２の固有表現の文字列に置換する置換部、
を有することを特徴とする要約生成装置。
【０１４２】
（付記１２）前記入力文および前記要約文の間で固有表現の全体集合の類似度が所定の閾値以上であるか否かにより、前記第１の固有表現および前記第２の固有表現を検出する検出部をさらに有することを特徴とする付記１１に記載の要約生成装置。
【０１４３】
（付記１３）前記置換部は、前記第１の固有表現の前又は後に隣接する第１の隣接文字列と、前記第２の固有表現の前又は後に隣接する第２の隣接文字列との類似度が所定の閾値以上であることを条件に前記第１の固有表現の文字列を前記第２の固有表現の文字列に置換することを特徴とする付記１２に記載の要約生成装置。
【０１４４】
（付記１４）前記入力文および前記要約文の先頭または末尾から順に検索された一致文字列の末尾または先頭の単語と、前記一致文字列の末尾または先頭に隣接する単語とが固有表現であるか否かにより、前記第１の固有表現および前記第２の固有表現を検出する検出部をさらに有することを特徴とする付記１１に記載の要約生成装置。
【０１４５】
（付記１５）前記置換部は、前記一致文字列の長さが所定の閾値以上であることを条件に前記第１の固有表現の文字列を前記第２の固有表現の文字列に置換することを特徴とする付記１４に記載の要約生成装置。
【符号の説明】
【０１４６】
１０    学習装置
１１    学習データ記憶部
１２    モデル記憶部
１３    入力制御部
１４    エンコーダ実行部
１５    デコーダ実行部
１６    生成部
１７    算出部
１８    更新部
３０    生成装置
３１    入力制御部
３２    エンコーダ実行部
３３    デコーダ実行部
３４    生成部
３５    抽出部
３６    検出部
３７    置換部
【図１】
2020071668.tif 000003
【図２】
2020071668.tif 000004
【図３】
2020071668.tif 000005
【図４Ａ】
2020071668.tif 000006
【図４Ｂ】
2020071668.tif 000007
【図５】
2020071668.tif 000008
【図６】
2020071668.tif 000009
【図７】
2020071668.tif 000010
【図８】
2020071668.tif 000011
【図９】
2020071668.tif 000012
【図１０】
2020071668.tif 000013
【図１１】
2020071668.tif 000014