IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特開2023-183312テキスト生成装置及びテキスト生成方法
<>
  • 特開-テキスト生成装置及びテキスト生成方法 図1
  • 特開-テキスト生成装置及びテキスト生成方法 図2
  • 特開-テキスト生成装置及びテキスト生成方法 図3
  • 特開-テキスト生成装置及びテキスト生成方法 図4A
  • 特開-テキスト生成装置及びテキスト生成方法 図4B
  • 特開-テキスト生成装置及びテキスト生成方法 図5
  • 特開-テキスト生成装置及びテキスト生成方法 図6
  • 特開-テキスト生成装置及びテキスト生成方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023183312
(43)【公開日】2023-12-27
(54)【発明の名称】テキスト生成装置及びテキスト生成方法
(51)【国際特許分類】
   G06F 40/56 20200101AFI20231220BHJP
   G06F 40/44 20200101ALI20231220BHJP
【FI】
G06F40/56
G06F40/44
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022096855
(22)【出願日】2022-06-15
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
2.PYTHON
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】笹沢 裕一
(72)【発明者】
【氏名】森下 皓文
(72)【発明者】
【氏名】尾崎 太亮
(72)【発明者】
【氏名】今一 修
(72)【発明者】
【氏名】曽我部 将義
(72)【発明者】
【氏名】白畑 智啓
(72)【発明者】
【氏名】佐藤 悠人
【テーマコード(参考)】
5B091
【Fターム(参考)】
5B091CA21
5B091EA01
(57)【要約】
【課題】指定したキーワードが指定した位置に現れるテキストを自動で生成できるテキスト生成装置及びテキスト生成方法を提供する。
【解決手段】テキスト生成装置は、入力された情報を処理する情報処理装置を含む。情報処理装置は、入力情報に基づいてテキストを生成するテキスト生成モデルを用いて、1以上のキーワードと1以上のキーワードの各位置とを指定する一の情報を含む入力情報から、1以上のキーワードを入力した各位置に含むテキストを1又は複数個生成する。
【選択図】図1
【特許請求の範囲】
【請求項1】
入力された情報を処理する情報処理装置を含むテキスト生成装置であって、
前記情報処理装置は、
入力情報に基づいてテキストを生成するテキスト生成モデルを用いて、
1以上のキーワードと1以上の前記キーワードの各位置とを指定する一の情報を含む前記入力情報から、1以上の前記キーワードを入力した前記各位置に含む前記テキストを1又は複数個生成する、
ように構成された、
テキスト生成装置。
【請求項2】
請求項1に記載のテキスト生成装置において、
前記テキスト生成モデルは、
1以上の前記キーワードを示す情報と1以上の前記キーワードの各位置を示す情報とが入力されると、入力された情報が示す1以上の前記キーワードを入力された情報が示す前記各位置に含むテキストを、1又は複数個生成して出力するように学習したモデルであり、
前記情報処理装置は、
前記入力情報を前処理した後、前記テキスト生成モデルに入力して、前記テキストを1又は複数個出力させることにより、前記テキストを1又は複数個生成する、
ように構成された、
テキスト生成装置。
【請求項3】
請求項2に記載のテキスト生成装置において、
前記テキスト生成モデルは、
前記テキスト生成モデルが出力する前記テキストに反映させる他の情報を示す情報が入力されると、前記他の情報が反映された前記テキストを1又は複数個生成して出力するように学習したモデルであり、
前記情報処理装置は、
前記一の情報及び前記他の情報を含む前記入力情報を前処理した後、前記テキスト生成モデルに入力して、1以上の前記キーワードを入力した前記各位置に含み且つ前記他の情報が反映された前記テキストを1又は複数個出力させることにより、前記テキストを1又は複数個生成する、
ように構成された、
テキスト生成装置。
【請求項4】
請求項3に記載のテキスト生成装置において、
前記他の情報は、ソーステキスト、テキストの長さ及びトピックの少なくとも一つを含む、
テキスト生成装置。
【請求項5】
請求項1に記載のテキスト生成装置において、
前記テキスト生成モデルは、
前記入力情報を前処理することにより得られた入力トークン列から文頭のトークンを予測することと、
予測したトークンを含む入力トークン列から後続のトークンを予測することを繰り返すことと、
を行うことにより、前記テキストを生成するモデルである、
テキスト生成装置。
【請求項6】
請求項2に記載のテキスト生成装置において、
前記情報処理装置は、
学習用のテキストを取得し、前記学習用のテキストから1以上のキーワードと、各キーワードの位置とをランダムに抽出し、抽出した1以上のキーワードと、当該1以上の前記キーワードの各位置と、前記学習用のテキストとを含むデータセットを、学習用データセットとして用いて、前記テキスト生成モデルの学習を行う、
ように構成された、
テキスト生成装置。
【請求項7】
請求項6に記載のテキスト生成装置において、
前記情報処理装置は、
形態素解析によって、前記テキストから1以上のキーワード候補を抽出し、1以上のキーワード候補の中の所定の条件を満たすキーワード候補のみを、前記テキスト生成モデルの学習に使用する前記キーワードとして抽出する、
ように構成された、
テキスト生成装置。
【請求項8】
請求項1に記載のテキスト生成装置において、
前記キーワードの位置は、テキストの文頭からの文字数、テキストの文頭からの単語数又はテキスト全体に対する相対位置を示すパラメータである、
テキスト生成装置。
【請求項9】
請求項2に記載のテキスト生成装置において、
前記情報処理装置は、
前記テキスト生成モデルに出力させた前記テキストが、前記入力情報により指定された条件を満たすか否かを判定する、
ように構成された、
テキスト生成装置。
【請求項10】
請求項1に記載のテキスト生成装置において、
前記入力情報は、位置が指定されない1以上の他のキーワードを指定する情報を更に含み、
前記情報処理装置は、
前記入力情報から、1以上の前記キーワードを入力した前記各位置に含み、且つ、1以上の前記他のキーワードを含む前記テキストを1又は複数個生成する、
ように構成された、
テキスト生成装置。
【請求項11】
請求項1に記載のテキスト生成装置において、
前記テキスト生成モデルが格納された記憶装置を備える、
テキスト生成装置。
【請求項12】
入力された情報を処理する情報処理装置を用いたテキスト生成方法であって、
前記情報処理装置が、入力情報に基づいてテキストを生成するテキスト生成モデルを用いて、
1以上のキーワードと1以上の前記キーワードの各位置とを指定する一の情報を含む前記入力情報から、1以上の前記キーワードを入力した前記各位置に含むテキストを1又は複数個生成する、
テキスト生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、テキスト生成装置及びテキスト生成方法に関する。詳しくは、本発明は、キーワードと各キーワードの位置とを制御してテキストを生成するテキスト生成装置及びテキスト生成方法に関する。
【背景技術】
【0002】
従来より、自然言語処理技術を用いたテキスト生成が盛んである。例えば、自然言語処理技術を用いたテキスト生成は、翻訳、要約、文法校正、スタイル変換、対話生成、広告生成、物語生成及びニュース文生成などの分野で利用されている。生成テキストの内容を制御する手法として、キーワードを入力し、そのキーワードを含むテキストを生成する技術が提案されている。
【0003】
非特許文献1では、生成されるテキスト中のキーワードの順序(入力キーワードとその順序を条件とする)を制御する手法が提案されている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Huajie Shao, Jun Wang, Haohong Lin, Xuezhou Zhang, Aston Zhang, Heng Ji, and Tarek Abdelzaher,“Controllable and diverse text generation in e-commerce,”in Proceedings of the Web Conference 2021, p.2392-2401, Association for Computing Machinery.,p.1
【発明の概要】
【発明が解決しようとする課題】
【0005】
キーワードのテキスト中での位置を制御することにより、ユーザにとってより望ましいテキストを生成できる可能性がある。例えば、重要なキーワードがテキストの前半に含まれるテキストを生成することにより、そのキーワードに関心のある人の注目を集めることが期待される。
【0006】
しかし、非特許文献1では、キーワードとテキスト中でのキーワードの順番のみを制御しており、各キーワードのテキスト中での具体的な位置を指定することができない。また、単一のキーワードが入力された場合は、その位置を制御することができない。
【0007】
本発明は上記課題を解決するためになされた。即ち、本発明の目的の一つは、指定したキーワードが指定した位置に現れるテキストを自動で生成できるテキスト生成装置及びテキスト生成方法を提供することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明のテキスト生成装置は、入力された情報を処理する情報処理装置を含むテキスト生成装置であって、前記情報処理装置は、入力情報に基づいてテキストを生成するテキスト生成モデルを用いて、1以上のキーワードと1以上の前記キーワードの各位置とを指定する一の情報を含む前記入力情報から、1以上の前記キーワードを入力した前記各位置に含むテキストを1又は複数個生成するように構成されている。
【0009】
本発明のテキスト生成方法は、入力された情報を処理する情報処理装置を用いたテキスト生成方法であって、前記情報処理装置が、入力情報に基づいてテキストを生成するテキスト生成モデルを用いて、1以上のキーワードと1以上の前記キーワードの各位置とを指定する一の情報を含む前記入力情報から、1以上の前記キーワードを入力した前記各位置に含むテキストを1又は複数個生成する。
【発明の効果】
【0010】
本発明によれば、指定したキーワードが指定した位置に現れるテキストを自動で生成できる。
【図面の簡単な説明】
【0011】
図1図1は本発明の実施形態に係るテキスト生成装置の構成例を示す概略構成図である。
図2図2はテキスト生成部の作動の概要を説明するための図である。
図3図3はテキスト生成モデルを用いたテキスト生成手法を説明するための図である。
図4A図4Aはテキスト生成モデル部が実行する処理フローの一例を示すフローチャートである。
図4B図4Bはテキスト生成モデル部が実行する処理フローの一例を示すフローチャートである。
図5図5はエンコーダ・デコーダ型のテキスト生成モデルを使用し、ソーステキストを追加入力する場合におけるテキスト生成手法を説明するための図である。
図6図6は追加の制御入力を使用する場合におけるテキスト生成手法を説明するための図である。
図7図7はテキスト生成モデルの訓練手法を説明するための図である。
【発明を実施するための形態】
【0012】
<<実施形態>>
以下、本発明の実施形態について、図面を用いて説明する。図面の説明においては同じ機能を持つ要素については同一の番号を付し、重複する説明を省略する。以下の説明では、プログラム又は機能ブロックを主語として処理を説明する場合があるが、処理の主語が、プログラム又は機能ブロックに代えて、プロセッサ又は情報処理装置とされてもよい。また、以下の実施形態は本発明を実施するための形態の一つであり、この実施形態に限定されない。
【0013】
なお、実施形態では日本語のテキスト例を用いて説明を行うが、本発明はテキストの言語を日本語に限定しない。つまり、英語や中国語などの他の自然言語、JavaやPythonなどの形式言語にも適用可能である。また、本発明では簡単のため日本語の短文を生成例として説明を行うが、本発明の生成対象の「テキスト」は文に限定しない。つまり、より長い文章を生成の対象としてもよく、「テキスト」は文章も含む。
【0014】
図1は本発明の実施形態に係るテキスト生成装置の構成例を示す概略構成図である。図1に示すように、テキスト生成装置は、プロセッサ11と、メモリ12と、補助記憶装置13と、入力インタフェース14と、出力インタフェース15と、通信装置16と、を含む情報処理装置10を含む。これらは、バス17を介して接続されている。
【0015】
情報処理装置10は、複数の情報処理装置やクラウド上に構築される仮想的な情報処理装置であってもよい。
【0016】
プロセッサ11は、メモリ12に格納されたプログラムを実行する。
【0017】
メモリ12は、主記憶装置であり、プロセッサ11が実行するプログラムや、プロセッサ11が参照する各種データ等が格納される。
【0018】
補助記憶装置13は、プログラムPG1及びデータベースDB1を保持(記憶、格納)している。
【0019】
プログラムPG1は、テキスト生成部101及びテキスト生成モデル生成部102(以下、「モデル生成部102」と称呼される。)を含む。
【0020】
プロセッサ11は、補助記憶装置13に格納されたプログラムPG1をメモリ12にロードする。プロセッサ11は、メモリ12にロードされたプログラムPG1を実行することによって、テキスト生成部101及びモデル生成部102の各機能を実現する。
【0021】
テキスト生成部101は、テキストの位置及びキーワードに基づいてテキストを出力するテキスト生成モデル103を用いて、テキストを生成する。モデル生成部102は、テキスト生成モデル103を生成(学習、訓練)して、データベースDB1に記憶(格納)する。データベースDB1は、テキスト生成モデル103を格納(記憶、保持)している。テキスト生成モデル103は、例えば、ニューラルネットワークを用いたモデルであり、例えば、生成型の言語モデル(GPT(Generative Pre-Training)、BART(Bidirectional and Auto-Regressive Transformers)など)を用いた言語生成モデルである。
【0022】
入力インタフェース14は、情報処理装置10がキーボード、マウスなどの入力装置(操作装置)などに接続されるためのインタフェースである。
【0023】
出力インタフェース15は、情報処理装置10がディスプレイなどの表示装置に接続されるためのインタフェースである。
【0024】
通信装置16は、ネットワークを介して他の装置と通信を行うための装置である。
【0025】
図2はテキスト生成部101の作動の概要を示した図である。テキスト生成部101は、前処理部111とテキスト生成モデル部112とを含む。
【0026】
テキスト生成部101は、入力として少なくともキーワードと各キーワードの位置を受け取る。本発明での「キーワード」は、テキストに含まれる単語及び/又はフレーズである。例えば、「オリンピックでは、多くの国で行われている競技のみが採用されている。」というテキストでは「オリンピック」・「国」・「行われる」・「採用」などがキーワードである。例えば「オリンピック」・「採用」のようなキーワードとその位置が与えられたときに、これらのキーワードが含まれる上記のようなテキストを生成する。キーワードは必ずしも単語である必要はなく、例えば「オリンピックでは、」・「競技のみが採用」のような複数の単語から構成されるフレーズであってもよい。
【0027】
本発明での「キーワードの位置」とは、各キーワードの最初の文字がテキスト中の文頭から数えて何文字目に位置するかを示す。例えば、前述したテキストにおいて「多くの国」というキーワードは10文字目に位置する。
【0028】
本実施形態では、文字数で数えた場合における位置をキーワードの位置として扱うが、単語数などの別の単位における位置を用いてもよい。例えば、英語などのスペースで単語が区切られている言語では文字単位ではなく単語単位での位置を用いてもよい。日本語においても形態素単位での位置を用いてもよい。
【0029】
キーワードの位置は、「2文字目」、「35文字目」のような絶対位置での表現ではなく、文頭から数えて「10%の位置」、「68%の位置」のような相対位置での表現を入力してもよい。
【0030】
キーワードの位置は一定の単位で丸め込んだ位置を用いてもよい。例えば「2文字目」、「33文字目」などの位置を5文字単位で丸め込み、「0文字目」、「30文字目」などとしてもよい。入力の時点で丸め込んだキーワード位置しか受け付けなくてもよいし、入力されたキーワード位置を丸め込んでもよい。
【0031】
キーワードの位置は与えられなくてもよい。つまり、一部のキーワードの位置が、「<NONE>」のようなキーワードの位置が指定されないことを示すトークンとして与えられてもよい。キーワードの位置が指定されなかったキーワードについては位置の制御を行わず、位置が指定されたキーワードのみを制御する。
【0032】
翻訳や要約、文法校正のように、ソーステキスト(生成の元となるテキスト)を別のテキストに変換するタスクでは、テキストに反映させる他の情報として、追加でソーステキストを入力してもよい。例えば翻訳分野において、ソーステキストとなる英語テキストとキーワードと各キーワードの位置とを入力し、ソーステキストの日本語訳テキストであり、キーワードとその位置の条件を満たすテキストを生成させてもよい。
【0033】
テキストを制御するためにさらに他の条件(テキストに反映させる他の情報)も入力してもよい。例えば、テキストの長さを制御する場合はその長さもテキスト生成部101に入力してよい。例えば、テキストのトピックを制御する場合はそのトピックもテキスト生成部101に入力してよい。例えば、テキストの抽象度を制御する場合はその抽象度もテキスト生成部101に入力してよい。例えば、テキストの主語を制御する場合はその主語もテキスト生成部101に入力してよい。特に、テキストの長さはキーワードの位置の位置と密接に関わる概念であるため、制御することで望ましいテキストが生成できることが期待される。
【0034】
上述したように、テキスト生成部101への入力は、様々な形態が想定されるが、モデルの訓練時にもテキストの生成時と同じ形態での入力を用いることが望ましい。例えば、キーワードの位置を文字単位での絶対位置という表現で入力する場合は、訓練時も同じ表現でキーワードの位置を制御できるように訓練することが望ましい。例えば、文の長さを入力する場合は、訓練時も文の長さを制御できるように訓練することが望ましい。
【0035】
テキスト生成部101は、出力として少なくともテキスト生成部101によって生成されたテキストを出力する。
【0036】
前処理部111は、テキスト生成部101への入力を、テキスト生成モデル部112にてテキスト生成モデル103に与える入力に変形する。
【0037】
実際には、キーワードと各キーワードの位置とを順番に繋げてトークン列に変換する。
【0038】
例えば、閉会式というキーワードを4文字目、聖火というキーワードを8文字目に生成するような制御入力が与えられる場合、入力を以下のようなテキストに変形する。
入力:キーワード:(閉会式、4文字目)・(聖火、8文字目)
出力:<SEP> 閉会式 <4文字目> <SEP> 聖火 <8文字目> <BOS>
<SEP>はキーワードの区切りを示す特殊トークンである。<BOS>はテキストの開始を示す特殊トークンである。つまり、<BOS>トークンの直後にテキストの文頭のトークンが生成される。<4文字目>・<8文字目>は、各キーワードの文字数を示す特殊トークンである。
【0039】
追加の制御入力が与えられた場合には、それを用いてテキスト生成モデル103への入力を生成してもよい。例えば、上記のキーワードとその位置に加え、テキストの文字数「15文字」が生成の条件としてテキスト生成モデル103に入力された場合は以下のような変形を行ってもよい。
入力:キーワード:(閉会式、4文字目)・(聖火、8文字目)、文字数:15文字
出力:<15文字> <SEP> 閉会式 <4文字目> <SEP> 聖火 <8文字目> <SEP> <BOS>
<15文字>は、テキストの文字数を示す制御トークンである。
【0040】
キーワードとその位置を示すために、別の形態のテキストに変形してもよい。例えば、上記で示したトークンの並び順を変更してもよい。例えば、以下のような自然言語での記述された指示テキストへ入力を変形してもよい。
入力:(閉会式、4文字目)、(聖火、8文字目)
出力:「閉会式」を4文字目、「聖火」を8文字目に含むテキストを生成 <BOS>
このような指示テキストに変形した場合は、後述するテキスト生成モデル103の訓練を行わずとも、十分に事前学習されたテキスト生成モデル103を用いることで、キーワードとその位置の制御できる。つまり、キーワードを用いた訓練を行っていない通常の事前学習されたテキスト生成モデル103を使用した場合においても、キーワードと各キーワードの位置を制御する指示テキストをテキスト生成モデル103が適切に解釈し、キーワードとその位置を制御できることが期待される。
【0041】
テキスト生成モデル部112は、テキスト生成モデル103を用いて、テキストを生成する。図3にテキスト生成モデル部112が実行するテキストの生成手法を示す。
【0042】
テキスト生成モデル部112は、データベースDB1からテキスト生成モデル103を取得し、テキスト生成モデル103を用いて、前処理部111から受け取った入力:「<SEP> 閉会式 <4文字目> <SEP> 聖火 <8文字目> <BOS>」から出力テキスト「冬五輪閉会式、聖火が消灯される<EOS>」を生成する。<EOS>はテキストの終端を示す特殊トークンであり、このトークンがテキスト生成モデル103によって生成されたときにテキストの生成を終了する。
【0043】
テキストの生成時には、逐次的に次に続くトークンを予測することによりテキスト全体を生成する。つまり、まず「<SEP> 閉会式 <4文字目> <SEP> 聖火 <8文字目> <BOS>」というトークン列をテキスト生成モデル103に入力する。このトークン列の次の単語として言語モデルとして最も確率が高いトークンをテキスト生成モデル103に生成させる。この場合は、入力キーワードを考慮した場合にテキストの文頭として最も適切であるトークンを生成させる。
【0044】
図3の例では、例えば「冬」というトークンがテキストの文頭として予測される。ここで予測されたトークンを入力トークン列の末尾に追加し、次に続くトークンを予測させる。つまり、「<SEP> 閉会式 <4文字目> <SEP> 聖火 <8文字目> <BOS> 冬」というトークン列をテキスト生成モデル103に入力し、「冬」というトークンの後続として最も適切であるトークンをテキスト生成モデル103に生成させる。図3の例では、例えば「五輪」というトークンを生成する。この要領で「閉会式」、「、」、「聖火」、...と逐次的にトークンを予測することでテキスト全体を生成する。図3の例では、最終的に「冬五輪閉会式、聖火が消灯される」というテキストが生成される。
【0045】
なお、テキスト生成モデル部112は、使用するテキスト生成モデル103に適した別のテキスト生成手法を用いてもよい。例えば、逐次的なトークン予測ではなく、テキスト中のトークン全てを同時に予測することによってテキストを生成してもよい。本実施形態テキスト生成の流れは、あくまでもテキスト生成を行う代表的なモデルにおける手法であることに留意されたい。
【0046】
図4Aはテキスト生成モデル部112が実行する処理フローの一例を示すフローチャートである。テキスト生成モデル部112は、ステップ400から処理を開始し、以下に述べるステップ405乃至ステップ415の処理を順に実行する。
【0047】
ステップ405:テキスト生成モデル部112は、入力(トークン列)を取得する。
【0048】
ステップ410:テキスト生成モデル部112は、テキスト生成モデル103にトークン列を入力してテキストを生成する。
【0049】
ステップ415:テキスト生成モデル部112は、生成したテキストを出力する。
【0050】
その後、テキスト生成モデル部112は、ステップ495に進んで本処理フローを一旦終了する。
【0051】
テキスト生成モデル103が生成するテキストの数は複数であってもよい。テキスト生成モデル103の精度が低い場合、入力した条件を満たさないテキストが生成されることも生じ得る。よって、テキストを出力する前にテキストをチェックし、入力した条件を満たさないテキストを除去してもよい。例えば、キーワード「オリンピック」をテキストの20文字目に含むように指定してテキストを生成したが、それを満たしていないテキストが生成された場合、それを出力テキストから除去してもよい。これらの場合、例えば、テキスト生成モデル部112は、図4Aの処理フローに代えて、以下に述べる図4Bにフローチャートにより示した処理フローを実行する。
【0052】
図4Bはテキスト生成モデル部112が実行する処理フローの一例を示すフローチャートである。テキスト生成モデル部112は、ステップ1400から処理を開始し、既述のステップ405及びステップ410の処理を実行した後、ステップ411に進み、作成したテキストをメモリ12に格納してステップ412に進み、所定数のテキストを生成したか否かを判定する。
【0053】
所定数のテキストを生成していない場合、テキスト生成モデル部112は、ステップ412にて「NO」と判定して、ステップ410に戻り、再度、既述のステップ410及びステップ411の処理を実行した後、ステップ412に進む。なお、この場合、既に生成されたテキストとは、異なるテキストが生成されるように制御される。
【0054】
所定数のテキストを生成している場合、テキスト生成モデル部112は、ステップ412にて「YES」と判定してステップ413に進み、テキストをチェックし(テキストが入力した条件を満たしているか否かを判定し)必要に応じて入力した条件を満たさないテキストを除去する。
【0055】
その後、テキスト生成モデル部112は、ステップ415に進み、メモリ12に格納したテキストを出力した後、ステップ1495に進んで本処理フローを一旦終了する。
【0056】
上述した図3の例では、入力情報として、キーワード及びキーワードの位置が入力される例について説明したが、生成の元となるソーステキストが入力された場合は、これをモデルに入力してもよい。図5はテキスト生成モデル103が、テキスト生成モデルエンコーダ301とテキスト生成モデルデコーダ302で構成されるエンコーダ・デコーダ型である場合の例である。テキスト生成装置のテキスト生成モデルエンコーダ301は、ソーステキストを受け取り、これに対応する隠れ状態を出力する。テキストを生成するテキスト生成モデルデコーダ302は、キーワードと各キーワードの位置を受け取り、エンコーダの出力隠れ状態を参照し、テキストを生成する。テキスト生成の要領は、図3で示したソーステキストが与えられない場合と同様である。つまり、入力に対して逐次的に次のトークンを予測することによりテキスト全体を生成する。ソーステキストを使用しない場合と同様に、使用するテキスト生成モデル103に適した別のテキスト生成手法を用いてもよい。
【0057】
これにより、テキストを生成する際にキーワードとその位置に加え、ソーステキストの情報を考慮した(ソーステキストの情報が反映された)テキストが生成することが期待される。ソーステキストをどのように使用するかは、テキスト生成モデル103の訓練によって制御する。例えば、ソーステキストを要約したテキストを生成したい場合は、訓練時にもソーステキストに対してその要約となるテキストが生成されるように訓練を行う。
【0058】
図5ではソーステキストを一つのトークンで示しているが、実際にはトークン単位に分割された複数のトークン列を入力してもよい。また、ソーステキストが入力された場合においてエンコーダ・デコーダ型のテキスト生成モデル103を使用しなくてもよい。例えば、図5で示したモデルにおいて「[ソーステキスト] <SEP> 閉会式 <4文字目> <SEP> 聖火 <8文字目> <BOS>」のように、ソーステキストとキーワードとその位置を結合したテキストを、モデルに入力してもよい。
【0059】
図6は追加の制御入力として例えば文の長さがテキスト生成部101に入力された場合における、テキスト生成モデル103を用いたテキストの生成手法である。図3からの変更点は、文の長さを示す特殊トークン「<15文字>」がテキスト生成モデル103への入力テキストに連結されている点である。これにより、生成テキストの文字数を制御した生成が可能となる。テキストのトピックやテキストの抽象度などの他の制御入力を用いる場合も同様の手順でテキスト生成モデル103に入力してもよい。これにより、テキストを生成する際にキーワードとその位置に加え、追加の制御入力を考慮したテキストが生成されることが期待される。
【0060】
モデル生成部102が実行するテキスト生成モデル103の訓練手法(学習手法)について説明する。図7はモデル生成部102が実行するテキスト生成モデル103の訓練手法を示した図である。テキスト生成モデル103は入力条件に従った望ましいテキストを生成できるようにあらかじめ訓練される。モデル生成部102は、テキスト生成モデル103に対して、あらかじめ用意された訓練用のテキストデータセットを使用し、キーワードと各キーワードの位置と一つ前までの単語から次の単語を予測し、予測した単語が正解テキストの単語と一致するようにテキスト生成モデル103を訓練する。このような訓練手法により、モデル生成部102は、入力されたキーワードとその位置に従うテキストを生成するように、テキスト生成モデル103に条件付けを行う。生成時とは異なり、計算を高速化するために逐次的にテキスト生成モデル103が予測した単語をテキスト生成モデル103に入力するのではなく、正解の単語を入力して次の単語を予測する。これはテキスト生成モデル103の訓練手法の一形態であり、使用するテキスト生成モデル103に応じてその他の適切な訓練手法を用いてもよい。
【0061】
訓練時にテキスト生成モデル103に入力するキーワードとその位置は、正解テキストから抽出する。例えば「甲子園は100年以上行われている。」というテキストを形態素解析によって「甲子園/は/1/0/0/年/以上/行わ/れ/て/いる/。」と分割できるとする。この中から名詞と複合名詞をキーワードの候補として抽出する。同時に各キーワード候補のテキスト中の位置も抽出する。上記の例だと「甲子園(1文字目)」・「年(7文字目)」・「100年(5文字目)」・「以上(8文字目)」・「100年以上(5文字目)」などがキーワードの候補とその位置として抽出される。ここで抽出したキーワード候補と各キーワード候補の位置の中から、ランダムなキーワードとその位置をテキスト生成モデル103に与えて訓練を行う。例えば、上述した候補の中から「甲子園(1文字目)」・「100年以上(5文字目)」をテキスト生成モデル103に入力する。このような訓練手法により、生成時にキーワードと各キーワードの位置に基づいたテキストを生成するようにテキスト生成モデル103が訓練される。
【0062】
キーワード候補からキーワードを抽出する前に、キーワードとして不適切な一部のフレーズを除去してもよい。上記の例では「1」という単語はそれ単体では意味が薄く、生成時にキーワードとして入力されることが稀であると思われる。そのため、キーワード候補から除去することでテキスト生成モデル103の性能の向上が期待できる。キーワード候補から余計な単語を除去するために、訓練データ中に存在する単語から出現頻度が高く、かつ文字数が短い単語を、除去する単語の候補として収集してもよい。
【0063】
キーワード候補として名詞と複合名詞だけではなく、他の品詞や、形態素に限定されないフレーズを抽出してもよい。例えば、「甲子園は100年以上行われている。」というテキストから「は100年以上行われ」をキーワード候補として抽出してもよい。これにより、生成時に単なる名詞や複合名詞だけでなく、様々なフレーズをキーワードとして入力し、それに基づいたテキストが生成できるようになることが期待される。
【0064】
動詞のような活用形が存在する品詞は、原形のような一般的に入力されやすい形態に変換してキーワード候補として抽出してもよい。例えば、「甲子園は100年以上行われている。」というテキストから「行わ」の原形である「行う」をキーワード候補として抽出してもよい。これにより、生成時に入力したキーワードが文脈に適した活用形で、生成テキスト中で使用されることが期待できる。
【0065】
キーワード候補としてテキスト中の表現そのものではなく、テキスト中の表現を言い換えたフレーズを抽出してもよい。言い換えとはあるフレーズと類似した意味を持つ別の表現である。例えば、「オリンピックでは、多くの国で行われている競技のみが採用されている。」というテキストから「オリンピック」に加えて「五輪」、「多くの国」に加えて「他国」などのフレーズをキーワード候補として抽出してもよい。これにより、生成時に入力したキーワードが文脈に適した表現で、生成テキスト中で使用されることが期待できる。
【0066】
キーワードの位置は一定の確率で正しい位置を与えずに、代わりに<NONE>のようなトークンを与えてもよい。これにより生成時にもキーワードの位置を与えずにキーワードのみを指定して制御できるようになる。
【0067】
生成時に生成の元となるソーステキストを入力する場合は、訓練時もソーステキストを入力して訓練することが望ましい。つまり、図5で示したテキスト生成モデル103と入力の形態を使用し、図7の手法でテキスト生成モデル103を訓練してもよい。
【0068】
生成時に文の長さなどの追加の制御入力を入力する場合は、訓練時も追加の制御入力を入力して訓練することが望ましい。つまり、図6で示したテキスト生成モデル103と入力の形態を使用し、図7の手法でテキスト生成モデル103を訓練してもよい。
【0069】
テキスト生成モデル103の訓練はテキスト生成装置で行わずに、外部の計算機等で訓練を行ったあとに通信装置16を介して受け取ってもよい。
【0070】
モデル生成部102は、キーワードとその位置を制御せずに通常のテキスト生成の要領で訓練されたモデル(一般的に事前学習済みモデルと言われるモデル)のパラメータをチェックポイントとして上記のテキスト生成モデル103の訓練を行ってもよい。事前学習済みモデルは既に大規模なコーパスで長時間の計算時間を用いて訓練されているため、このようなモデルをベースとして訓練をすることで、最終的なテキスト生成モデル103の性能向上が期待できる。
【0071】
テキスト生成モデル103として、キーワードとその位置を制御した訓練をせずに事前学習済みモデルがそのまま使用されてもよい。上述したように、テキスト生成モデル103に与える入力を「「閉会式」を4文字目、「聖火」を8文字目に含むテキストを生成 <BOS>」のような自然言語で記載された指示テキストとすることで、テキスト生成モデル103がその指示に従って特別な学習が無くともキーワードとその位置を適切に制御することが期待される。
【0072】
以上説明したように、本発明の実施形態に係るテキスト生成装置は、指定したキーワードが指定した位置に現れるテキストを自動で生成できる。なお、本発明は上記実施形態に限定されることなく、本発明の範囲内において種々の変形例を採用することができる。
【符号の説明】
【0073】
10…情報処理装置、11…プロセッサ、12…メモリ、13…補助記憶装置、101…テキスト生成部、102…テキスト生成モデル生成部、103…テキスト生成モデル、111…前処理部、112…テキスト生成モデル部、DB1…データベース、PG1…プログラム、
図1
図2
図3
図4A
図4B
図5
図6
図7