(57)【要約】【課題】ユーザが指定したテキストを含む文章を適切に生成することができる情報処理装置等を提供する。【解決手段】情報処理装置１は、所定単位の文字又は文字列である各要素から構成される文章において、前記各要素の次に出現する前記要素を前記文章の順に学習した言語モデルを記憶する記憶部と、生成する文章に含める前記要素の指定入力を受け付ける受付部と、前記言語モデルを参照して、指定された前記要素に基づき文章を生成する生成部と、生成した前記文章を出力する出力部とを備える。【選択図】図１
2020035019.tif 000002
【特許請求の範囲】
【請求項１】
所定単位の文字又は文字列である各要素から構成される文章において、前記各要素の次に出現する前記要素を前記文章の順に学習した言語モデルを記憶する記憶部と、
生成する文章に含める前記要素の指定入力を受け付ける受付部と、
前記言語モデルを参照して、指定された前記要素に基づき文章を生成する生成部と、
生成した前記文章を出力する出力部と
を備える情報処理装置。
【請求項２】
前記生成部は、
学習元文章の先頭に存在する前記要素から前記言語モデルを参照しながら前記要素を選択して文章を生成し、
前記指定された要素を含む文章を生成する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
先頭の前記要素から一定値以上の生起確率で生成される複数の前記要素から生成する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記受付部は、複数の前記要素の指定入力を受け付け、
前記生成部は、前記複数の要素のうち、いずれかの前記要素を選択して、選択した前記要素に基づき複数の前記文章を生成し、
前記複数の文章から、前記選択した要素以外に指定された他の前記要素を含むかを判断して、前記文章を選択する選択部を備え、
前記出力部は、選択した前記文章を出力する
ことを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記受付部は、前記複数の要素が文章内で出現する順序の指定入力を受け付け、
前記選択部は、指定された順序で前記複数の要素が出現する前記文章を選択する
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記生成部は、前記他の要素を含む前記文章が生成されなかった場合、生成した前記文章に含まれる各要素を前記他の要素に置換しながら前記文章を生成する
ことを特徴とする請求項４又は５に記載の情報処理装置。
【請求項７】
前記生成部は、生成した前記文章に含まれる各要素のうち、前記他の要素と同一品詞の要素を前記他の要素に置換する
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記生成部は、前記言語モデルに基づき、前記指定された要素に続く各要素の生起確率を算出して前記文章を生成し、
前記各要素の生起確率に基づき、生成した前記文章の妥当性を示すスコアを算出する算出部を備え、
前記出力部は、算出した前記スコアに応じて前記文章を出力する
ことを特徴とする請求項１〜７のいずれか１項に記載の情報処理装置。
【請求項９】
前記記憶部は、前記文章の先頭から末尾に亘る正順序で前記要素を学習した第１の言語モデルと、該文章の先頭から末尾までを逆順序に並び替えて前記要素を学習した第２の言語モデルとを記憶し、
前記生成部は、前記第１及び第２の言語モデルに基づき、前記文章を生成する
ことを特徴とする請求項１〜８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記生成部は、
前記第１又は第２の言語モデルに基づいて前記文章を生成し、
生成した前記文章に含まれる前記要素の並び順を逆順序に変換し、
前記第２又は第１の言語モデルに基づいて、変換後の前記文章に含まれる各要素の生起確率を算出し、
前記出力部は、算出した前記各要素の生起確率に応じて前記文章を出力する
ことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記記憶部は、文章のカテゴリに応じて異なる複数の前記言語モデルを記憶し、
前記受付部は、生成する文章の前記カテゴリの指定入力を受け付け、
前記生成部は、指定された前記カテゴリに対応する前記言語モデルに基づき、前記文章を生成する
ことを特徴とする請求項１〜１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記記憶部は、前記要素を置換するための置換辞書を記憶し、
前記受付部は、テキスト入力により前記要素の指定入力を受け付け、
前記置換辞書を参照して、入力された前記要素を置換する置換部を備え、
前記生成部は、置換された前記要素に基づき前記文章を生成する
ことを特徴とする請求項１〜１１のいずれか１項に記載の情報処理装置。
【請求項１３】
生成する文章に含める所定単位の文字又は文字列である要素の指定入力を受け付け、
文章内で各要素の次に出現する前記要素を前記文章の順に学習した言語モデルを参照して、指定された前記要素に基づき文章を生成し、
生成した前記文章を出力する
処理をコンピュータに実行させることを特徴とする情報処理方法。
【請求項１４】
生成する文章に含める所定単位の文字又は文字列である要素の指定入力を受け付け、
文章内で各要素の次に出現する前記要素を前記文章の順に学習した言語モデルを参照して、指定された前記要素に基づき文章を生成し、
生成した前記文章を出力する
処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
コンピュータが文章を自動生成する文章生成技術がある。例えば特許文献１では、再帰型ニューラルネットワーク（ＲＮＮ；Recurrent Neural Network、以下では「ＲＮＮ」と記す）を用いて、コンピュータに入力された文書を要約した説明文を生成する説明文生成方法等が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−２８８６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に係る発明は文書の要約を行っているに過ぎず、ユーザが指定したテキストから、当該テキストを含む文章を自動生成するに至っていない。
【０００５】
一つの側面では、ユーザが指定したテキストを含む文章を適切に生成することができる情報処理装置等を提供することを目的とする。
【課題を解決するための手段】
【０００６】
一つの側面では、情報処理装置は、所定単位の文字又は文字列である各要素から構成される文章において、前記各要素の次に出現する前記要素を前記文章の順に学習した言語モデルを記憶する記憶部と、生成する文章に含める前記要素の指定入力を受け付ける受付部と、前記言語モデルを参照して、指定された前記要素に基づき文章を生成する生成部と、生成した前記文章を出力する出力部とを備える。
【発明の効果】
【０００７】
一つの側面では、ユーザが指定したテキストを含む文章を適切に生成することができる。
【図面の簡単な説明】
【０００８】
【図１】文章生成システムの構成例を示す模式図である。
【図２】サーバの構成例を示すブロック図である。
【図３】キーワードＤＢ及び置換辞書のレコードレイアウトの一例を示す説明図である。
【図４】文章学習処理に関する説明図である。
【図５】言語モデルに関する説明図である。
【図６】文章生成処理に関する説明図である。
【図７】端末が表示する画面イメージ図である。
【図８】文章学習処理の処理手順の一例を示すフローチャートである。
【図９】文章生成処理の処理手順の一例を示すフローチャートである。
【図１０】実施の形態２の概要を示す説明図である。
【図１１】実施の形態２に係る文章生成処理の処理手順の一例を示すフローチャートである。
【図１２】実施の形態３の概要を示す説明図である。
【図１３】実施の形態３に係る文章生成処理の処理手順の一例を示すフローチャートである。
【図１４】実施の形態４の概要を示す説明図である。
【図１５】実施の形態４に係る文章生成処理の処理手順の一例を示すフローチャートである。
【図１６】実施の形態５に係る文章学習処理に関する説明図である。
【図１７】実施の形態５に係る文章生成処理に関する説明図である。
【図１８】実施の形態５に係る文章学習処理の処理手順の一例を示すフローチャートである。
【図１９】実施の形態５に係る文章生成処理の処理手順の一例を示すフローチャートである。
【図２０】上述した形態のサーバの動作を示す機能ブロック図である。
【発明を実施するための形態】
【０００９】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
（実施の形態１）
図１は、文章生成システムの構成例を示す模式図である。本実施の形態では、ユーザが指定した語句に基づき、契約書の文章を自動生成する文章生成システムについて説明する。文章生成システムは、情報処理装置１、端末２、２、２…を含む。各装置は、インターネット等のネットワークＮを介して通信接続されている。
【００１０】
情報処理装置１は、種々の情報処理、情報の送受信が可能な情報処理装置であり、例えばサーバ装置、パーソナルコンピュータ等である。本実施の形態では情報処理装置１がサーバ装置であるものとし、以下の説明では簡潔にサーバ１と読み替える。サーバ１は、学習用の契約書群を用いて、契約書に出現する語句を学習する機械学習を行い、契約書内の任意の箇所に出現する語句を、直前までに出現する語句から推定可能な言語モデルを生成する。言語モデルは、自然言語の文章が生成される確率をモデル化したものであり、例えばＮ−ｇｒａｍモデル、隠れマルコフモデルなどがある。後述するように、本実施の形態においてサーバ１は、学習用に与えられる契約書群からＲＮＮを言語モデルとして構築し、当該ＲＮＮを用いて契約書用の文章を生成する。
【００１１】
端末２は、契約書を作成する各ユーザが使用する端末装置であり、例えばパーソナルコンピュータ、多機能端末等である。端末２は、作成する契約書の文章に含める語句を指定する指定入力を受け付け、指定された語句（以下では適宜に「指定語句」と呼ぶ）を含む文章の生成をサーバ１に要求する。端末２は、生成された文章をサーバ１から受信し、ユーザに提示する。
【００１２】
図２は、サーバ１の構成例を示すブロック図である。サーバ１は、制御部１１、主記憶部１２、通信部１３、補助記憶部１４を備える。
制御部１１は、一又は複数のＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro-Processing Unit）、ＧＰＵ（Graphics Processing Unit）等の演算処理装置を有し、補助記憶部１４に記憶されたプログラムＰを読み出して実行することにより、サーバ１に係る種々の情報処理、制御処理等を行う。主記憶部１２は、ＳＲＡＭ（Static Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）、フラッシュメモリ等の一時記憶領域であり、制御部１１が演算処理を実行するために必要なデータを一時的に記憶する。通信部１３は、通信に関する処理を行うための処理回路等を含み、外部と情報の送受信を行う。
【００１３】
補助記憶部１４は大容量メモリ、ハードディスク等であり、制御部１１が処理を実行するために必要なプログラムＰ、その他のデータを記憶している。また、補助記憶部１４は、言語モデル１４１、キーワードＤＢ１４２、及び置換辞書１４３を記憶している。言語モデル１４１は、上述の如く、学習用の契約書群から生成される言語モデルのデータであり、各種契約書に含まれる各条項のモデルデータである。後述するように、本実施の形態でサーバ１は、契約書に含まれる文章のカテゴリ（契約書の種別、及び契約書内の条項）毎に言語モデル１４１を生成して補助記憶部１４に記憶してある。
【００１４】
キーワードＤＢ１４２は、各種契約書の各条項に頻出するキーワードを格納したデータベースである。例えばサーバ１は、機械学習を行って学習用の契約書群から言語モデル１４１を生成する際に、出現頻度に応じて契約書内の各条項のキーワードを抽出し、キーワードＤＢ１４２に格納しておく。
【００１５】
置換辞書１４３は、同義語、類義語等のような関連ある複数の語句を対応付けて格納したテーブルである。後述するようにユーザから語句の指定を受けて文章を生成する際に、サーバ１は置換辞書１４３を参照して、ユーザが指定した語句を置換して文章を生成する。
【００１６】
なお、補助記憶部１４はサーバ１に接続された外部記憶装置であってもよい。また、サーバ１は複数のコンピュータからなるマルチコンピュータであってもよく、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。
【００１７】
また、本実施の形態においてサーバ１は上記の構成に限られず、例えば可搬型記憶媒体に記憶された情報を読み取る読取部、操作入力を受け付ける入力部、画像を表示する表示部等を含んでもよい。
【００１８】
図３は、キーワードＤＢ１４２及び置換辞書１４３のレコードレイアウトの一例を示す説明図である。キーワードＤＢ１４２は、種別列、条項列、キーワード列を含む。種別列は、キーワードの抽出元である契約書の種別を記憶している。条項列は、契約書の種別と対応付けて、キーワードの抽出元である契約書内の各条項を記憶している。キーワード列は、契約書の種別及び条項と対応付けて、各種別の契約書の各条項から抽出した一又は複数のキーワードを記憶している。
【００１９】
置換辞書１４３は、対象語列、置換語列を含む。対象語列は、ユーザが指定した語句について、置換辞書１４３を用いた置換対象とする対象語を記憶している。置換語列は、対象語と対応付けて、対象語を置換した語句を記憶している。
【００２０】
図４は、文章学習処理に関する説明図である。図４では、サーバ１が学習用の契約書の文章を学習する機械学習を行い、複数の言語モデル１４１、１４１、１４１…を生成する様子を概念的に図示してある。以下では、サーバ１が実行する処理の概要について説明する。
【００２１】
サーバ１は、学習用の契約書群を外部から取得し、各契約書の文章（学習元文章）に出現する語句を学習する機械学習を行う。例えばサーバ１は、人手で作成された既存の契約書を学習用の契約書として用いて学習を行う。サーバ１はまず、各々の契約書から、その契約書の種別、及び契約書に含まれる各条項を判別し、カテゴリ（種別及び条項）毎に契約書内の文章を分類する文書の構造化を行う。そしてサーバ１は、構造化した契約書の各文章を、カテゴリ毎に学習して別々の言語モデル１４１を生成する。
【００２２】
契約書の種別は、契約内容を大別する分類であり、例えば秘密保持契約、業務委託契約、共同研究契約などである。なお、上記はいずれも一例であって、契約書の種別は特に限定されない。図４左側に一例として、秘密保持契約に係る契約書を概念的に図示してある。図４で太線枠に示すように、一般的な契約書は、複数の条項に区分して契約内容が記述される。サーバ１は、契約書の条項毎に、各条項の文章を学習する。なお、本明細書で「文章」と言う場合、文章は一文（センテンス）に限定されず、複数の文から成る文章、又は一文よりも短い文章も含まれ得る。後述するように、サーバ１は、各種別の契約書の各条項に出現する語句を、契約書における各語句の並び順に従って学習する。これによりサーバ１は、各条項に応じた言語モデル１４１を生成する。
【００２３】
まずサーバ１は、複数の学習用契約書を、契約書の種別に応じて分類する。例えばサーバ１は、契約書の書類名等から契約書の種別を判別する。図４に示す契約書では、サーバ１はタイトルの「秘密保持契約書」から、当該契約書が秘密保持契約に係る契約書であることを判別する。
【００２４】
さらにサーバ１は、契約書内の各条項に相当する文章部分を特定し、契約書内の文章を条項毎に分類する。例えばサーバ１は、各条項のタイトルに相当する小見出し（サブタイトル）に基づいて条項を特定する。図４の例では、サーバ１は「第１条」の小見出し「目的」から、当該文章部分を契約の目的に関する条項として判別する。
【００２５】
なお、上記ではサーバ１が契約書のタイトル名、小見出し等からルールベースで契約書のカテゴリ（種別及び条項）を判別するものとしたが、本実施の形態はこれに限定されるものではない。例えばサーバ１は、ｔｆ−ｉｄｆ法等を用いて各契約書の文章の類似度を、文章に含まれる単語の出現頻度に応じて算出し、文章同士の類似度を算出して契約書の構造化を行ってもよい。
【００２６】
サーバ１は各契約書について上述の処理を繰り返し、複数の学習用契約書それぞれの種別を判別し、各契約書に記述されている各条項を判別する。すなわちサーバ１は、契約書の構造化を行う。サーバ１は、構造化した各契約書においてカテゴリ（種別及び条項）が共通する文章を元に、各言語モデル１４１を生成する。例えば図４右側に示すように、サーバ１は、種別が「秘密保持契約」であり、かつ、条項が「損害賠償」で共通する各契約書の文章を元に、一の言語モデル１４１を生成する。その他の言語モデル１４１についても同様に、サーバ１は文章のカテゴリに応じて言語モデル１４１を生成する。
【００２７】
図５は、言語モデル１４１に関する説明図である。本実施の形態でサーバ１は、言語モデル１４１としてＲＮＮを構築する。例えばサーバ１は、ＲＮＮの一種であるＬＳＴＭ（Long Short-Term Memory）を構築する。
【００２８】
サーバ１は、上記のようにカテゴリ毎に分類した文章をＲＮＮに入力し、各カテゴリの文章に出現する語句を学習する。ここでサーバ１はまず、ＲＮＮに入力する文章に対して形態素解析等の自然言語処理を行い、所定単位の文字又は文字列である語句（要素）毎に分割する。この分割単位は、例えば単語、文節等の単位であるが、特に限定されない。例えばサーバ１は、複数の語句を格納した辞書（不図示）を予め記憶しておき、当該辞書に格納された語句に従って文章を分割する。
【００２９】
なお、サーバ１は単語、文節等の単位ではなく、その他の単位で文章を分割してもよい。その他の分割単位としては、サブワード（部分語）と呼ばれる単位が想定され得る。サブワードは通常の分かち書きとは異なり、文章中に出現する頻度に応じて文章を区分した語句の単位である。一般的に文章の最小構成単位として用いられる「単語」は、文章中の文字又は文字列を意味、文法等の観点から最小化した単位であるが、サブワードは意味、文法等による単位ではなく、文章中で用いられる頻度に応じて最小化した単位である。サブワード単位で分割した場合、サーバ１は契約書特有の専門用語も分割可能であるため、より好適に文書の分割を行うことができる。このように、サーバ１は所定単位の文字又は文字列である要素毎に契約書の文章を分割可能であればよく、分割単位とする要素は単語等の単位に限定されない。
【００３０】
サーバ１は、分割した各語句をＲＮＮに係る入力層に入力し、機械学習を行う。図５に、ＲＮＮの構成を概念的に図示する。図５に示すように、ＲＮＮは、入力層、中間層（隠れ層）、及び出力層を有する。入力層は、文章の先頭から末尾に亘って順に出現する各語句の入力をそれぞれ受け付ける複数のニューロンを有する。出力層は、入力層の各ニューロンに対応して、各ニューロンに入力される語句の次に出現する語句をそれぞれ推定して出力する複数のニューロンを有する。そして中間層は、入力層の各ニューロンへの入力値（語句）に対して出力層の各ニューロンにおける出力値（語句）を演算するための複数のニューロンを有する。中間層の各ニューロンは、過去の入力値に関する中間層での演算結果を用いて次の入力値に関する演算を行うことで、直前までに出現する一又は複数の語句から次の語句を推定する。
【００３１】
なお、図５に示すＲＮＮの構成は一例であって、本実施の形態はこれに限定されるものではない。例えば中間層は一層に限定されず、二層以上であってもよい。また、入力層及び出力層のニューロンの数は同数に限定されず、例えば入力に対して出力の数は少なくともよい。
【００３２】
また、本実施の形態でサーバ１はＲＮＮのアルゴリズムに従って学習を行うが、例えばその他の深層学習、Ｎ−ｇｒａｍモデル、ＳＶＭ（Support Vector Machine）、ベイジアンネットワーク、決定木など、他のアルゴリズムに従って学習を行い、言語モデル１４１を生成してもよい。
【００３３】
サーバ１は、学習用文章の各語句を、当該文章内での並び順に従って入力層の各ニューロンに入力し、出力層の各ニューロンから出力値を得る。図５の例では、サーバ１は学習用文章の各語句「甲」、「及び」、「乙」、「が」…を、文章内での順番に従い、対応する入力層の各ニューロンに入力する。サーバ１は、中間層を経て出力層の各ニューロンでの演算を行い、文章内の任意の位置（順番）に出現する語句の生起確率を、直前までに出現する語句に基づいて算出し、次に出現する語句を推定する。図５の例では、サーバ１は１番目の語句「甲」に基づき、２番目に出現する語句の生起確率を算出して推定を行う。また、サーバ１は１番目、２番目の語句「甲」、「及び」に基づき、３番目の語句の生起確率を算出して推定を行う。以下同様にして、サーバ１は各語句を推定する。
【００３４】
サーバ１は、推定した語句を実際の語句（正解値）と比較し、出力層の各ニューロンからの出力値が正解値に近似するよう各ニューロンのパラメータを調整し、ＲＮＮを構築する。例えばサーバ１は、「甲」に続く語句として推定した語句が、実際の語句「及び」となるように、各ニューロンでの重み等を調整する。これによりサーバ１は、学習用文章の正順序における語句の並び順を学習した言語モデル１４１を生成する。
【００３５】
サーバ１は上述の処理を各カテゴリの文章について行い、ＲＮＮに係る言語モデル１４１を、契約書のカテゴリ毎に生成する。
【００３６】
また、サーバ１は上記の学習時に、併せて各カテゴリの文章に高頻度で出現するキーワードを抽出してキーワードＤＢ１４２に格納しておく。例えばサーバ１は、文章内での各語句の出現頻度を計算し、出現頻度が閾値以上の語句をキーワードとして抽出する。サーバ１は、キーワードとして抽出した語句を、抽出元である文章のカテゴリ（種別及び条項）と対応付けてキーワードＤＢ１４２に格納する。後述するように、サーバ１は、生成する契約書の文章に含める語句をユーザが指定する場合に、キーワードとして抽出した語句をユーザに提示して指定入力を受け付ける。
【００３７】
図６は、文章生成処理に関する説明図である。図７は、端末２が表示する画面イメージ図である。図６では、ユーザが指定した複数の語句から契約書の文章を生成する様子を概念的に図示している。図７では、文章生成時における端末２の表示画面を模式的に図示している。図６及び図７に基づき、言語モデル１４１を用いた文章生成処理について説明する。
【００３８】
まずサーバ１は、端末２から、ユーザが文章の作成を希望する契約書のカテゴリと、当該文章に含めたい複数の語句とを指定する指定入力を受け付ける。例えば図７に図示する入力画面を介して、サーバ１は端末２から各種情報の指定入力を受け付ける。
【００３９】
入力画面は、例えば条項選択欄７１、キーワード選択欄７２、テキスト入力欄７３を含む。条項選択欄７１は、入力画面上部に既に表示されている種別の契約書の条項をプルダウンメニューとして表示し、作成を希望する文章の条項をユーザが選択するための選択欄である。図７に示すように、条項選択欄７１において端末２は、入力画面上部に表示されている契約書の種別「秘密保持契約」に含まれる各種条項をプルダウンで表示し、いずれかの条項の選択入力を受け付ける。これにより端末２は、ユーザが作成を希望する契約書の種別及び条項、すなわちカテゴリの指定入力を受け付ける。
【００４０】
キーワード選択欄７２は、条項選択欄７１で選択された条項のキーワードをプルダウンメニューとして表示し、作成する文章に含めたいキーワードをユーザが選択するための選択欄である。サーバ１は条項選択欄７１で選択された条項のキーワードをキーワードＤＢ１４２から読み出して端末２に出力し、端末２は当該キーワードをキーワード選択欄７２にプルダウンで表示し、いずれかのキーワードの選択入力を受け付ける。
【００４１】
テキスト入力欄７３は、作成する文章に含めたい任意のキーワード（語句）をユーザがテキスト入力するための入力欄である。端末２はキーワード選択欄７２で提示したキーワードから選択入力を受け付けるだけでなく、テキスト入力欄７３において任意のキーワードの入力を受け付ける。
【００４２】
なお、テキスト入力欄７３によりユーザが任意のテキストをキーワードとして入力した場合、ユーザが自由に入力を行うため、入力されるテキストの内容によっては言語モデル１４１を用いても当該テキストから契約書の文章を生成することが困難となる虞がある。そこでサーバ１は、置換辞書１４３を用いてユーザが入力したテキストを変換し、変換後のテキストをキーワードとして用いてもよい。図７の例の場合、サーバ１は、ユーザが入力したテキスト「文書による許諾」に含まれる語句「文書」及び「許諾」を「書面」及び「承諾」に変換し、変換後のテキストをキーワードとして用いる。これにより、言語モデル１４１による文章生成が困難になる事態を防止する。
【００４３】
上述の如く、端末２は、ユーザが作成を希望する契約書のカテゴリ、及び当該条項の文章に含める複数の語句（キーワード）の指定入力を受け付ける。生成ボタン７４への操作入力を受け付けた場合、端末２は入力内容をサーバ１に出力し、指定された語句を含む文章の生成を要求する。
【００４４】
図６に戻って、サーバ１は、ユーザが指定したカテゴリの言語モデル１４１を用い、指定された複数の語句を含む文章を生成して端末２に出力する。図６では、ユーザがカテゴリとして種別「秘密保持契約」の条項「知的財産権」を指定し、かつ、文章に含める語句として「発明」及び「共有」が指定された場合を図示している。この場合、サーバ１は契約書の種別が「秘密保持契約」であり、かつ、条項が「知的財産権」である言語モデル１４１を用い、文章を生成する。
【００４５】
サーバ１はまず、指定された複数の語句のうち、いずれかの語句から、最終的に出力する文章の候補（以下では「候補文」と呼ぶ）を複数生成する。図６では、語句「発明」から複数の候補文が生成される様子を図示している。サーバ１は、当該語句をＲＮＮに係る入力層に入力し、当該語句に基づき次の語句の生起確率を算出して、２番目の語句として生起確率が高い一又は複数の語句を出力として得る。次にサーバ１は、２番目の語句を入力層に入力して、１番目の語句「発明」と、２番目の語句とに基づき次の語句の生起確率を算出して、３番目の語句として生起確率が高い一又は複数の語句を出力として得る。
【００４６】
このように、サーバ１は直前までの語句から次の語句の生起確率を算出し、次の語句を推定していく。サーバ１は上述の処理を繰り返し、一の語句から複数の文章を生成する。この場合にサーバ１は、生成した各文章の妥当性を評価するためのスコアを、文章生成の際に算出された各語句の生起確率に基づいて算出し、スコアが高い文章を候補文とする。例えばサーバ１は、文章全体のスコアとして、文章に含まれる各語句の生起確率の平均値を用いる。サーバ１は、生起確率の平均値が閾値以上の文章を候補文とする。
【００４７】
なお、サーバ１は生起確率の平均値をスコアとして用いることで候補文を決定したが、他の基準で候補文を決定してもよい。例えばサーバ１は、生起確率が閾値以下の語句を含む文章、つまり不適切な語句を含む文章を除外することで、候補文を決定してもよい。
【００４８】
また、上記ではユーザが指定した複数の語句のうち、単一の語句から候補文を生成したが、本実施の形態はこれに限定されるものではない。例えばサーバ１は、ユーザが指定した３以上の語句のうち、２以上の語句から複数の候補文を生成し、残る指定語句を含む候補文を選択するようにしてもよい。つまりサーバ１は、ユーザが指定した複数の語句のうち、一部の語句を用いて候補文を生成可能であればよく、当該一部の語句は単一の語句に限定されない。
【００４９】
サーバ１は、生成した複数の候補文から、ユーザが指定した複数の語句のうち、文章生成に用いていない他の指定語句を含む候補文を、端末２に出力する文章として選択する。図６の例では、サーバ１は「発明」以外の語句「共有」を含む、点線矩形枠で囲んだ候補文を出力文章として選択する。
【００５０】
上述の如く、サーバ１は、生成した複数の候補文から、指定された複数の語句を全て含み、かつ、文章全体のスコアが高い候補文を選択する。なお、選択する候補文は単一であってもよく、複数であってもよい。サーバ１は、選択した候補文を端末２に出力する。端末２は、図７に示すようにサーバ１から出力された候補文を表示し、ユーザに提示する。
【００５１】
図８は、文章学習処理の処理手順の一例を示すフローチャートである。図８に基づき、文章学習処理の処理内容について説明する。
サーバ１の制御部１１は、学習用の契約書群を取得する（ステップＳ１１）。制御部１１は、取得した各契約書の文章を、契約書の種別、契約書内の条項等のカテゴリに応じて構造化する処理を行い、各契約書内の文章をカテゴリ毎に分類する（ステップＳ１２）。
【００５２】
制御部１１は、カテゴリ毎に分類した各文章を、所定単位の文字又は文字列である複数の語句（要素）に分割する（ステップＳ１３）。例えば制御部１１は、単語、文節等の意味単位で文章を分割してもよく、サブワード等の出現頻度に応じた単位で文章を分割してもよい。
【００５３】
制御部１１は、分割した文章の各語句を、文章における並び順に従って学習する機械学習処理を行い、カテゴリ毎に言語モデル１４１を生成する（ステップＳ１４）。例えば制御部１１は、ＲＮＮ（ＬＳＴＭ）のアルゴリズムに基づく機械学習を行い、文章の先頭から順に出現する一又は複数の語句から、当該一又は複数の語句に続いて出現する語句を推定する言語モデル１４１を生成する。制御部１１は、カテゴリ毎に別々の言語モデル１４１を生成する。制御部１１は、生成した各カテゴリの言語モデル１４１を補助記憶部１４に格納する。
【００５４】
また、制御部１１は、各カテゴリの文章内での出現頻度に基づき、各カテゴリの文章のキーワードを抽出してキーワードＤＢ１４２に記憶する（ステップＳ１５）。制御部１１は、一連の処理を終了する。
【００５５】
図９は、文章生成処理の処理手順の一例を示すフローチャートである。図９に基づき、文章生成処理の処理内容について説明する。
サーバ１の制御部１１は、図７で例示した入力画面を介して、生成する文章のカテゴリを指定する指定入力を端末２から受け付ける（ステップＳ３１）。上述の如く、文章のカテゴリは契約書の種別、条項等である。制御部１１は、同じく図７で例示した入力画面を介して、生成する文章に含める複数の語句を指定する指定入力を端末２から受け付ける（ステップＳ３２）。例えば制御部１１は、キーワードＤＢ１４２を参照して、ステップＳ３１で指定されたカテゴリの文章のキーワードを複数提示し、ユーザによる選択入力を受け付ける。また、制御部１１はユーザから任意の語句のテキスト入力を受け付けてもよい。また、任意の語句のテキスト入力を受け付けた場合、制御部１１は置換辞書１４３を用いて、入力された語句を置換してもよい。
【００５６】
制御部１１は、ステップＳ３１で指定されたカテゴリの言語モデル１４１を用いて、ステップＳ３２で指定された複数の語句のうち、いずれかの語句から候補文を複数生成する（ステップＳ３３）。例えば制御部１１は、指定語句のいずれかをＲＮＮである言語モデル１４１に入力し、指定語句に続く語句を出力として得る。さらに制御部１１は、指定語句と、出力された語句とに基づいて次に続く語句を出力として得る。制御部１１は当該処理を繰り返し、複数の文章を生成する。制御部１１は、文章を生成する際に算出した各語句の生起確率に基づいて各パターンの文章全体のスコア（例えば生起確率の平均値）を算出する。制御部１１は、算出したスコアに応じて候補文を決定する。例えば制御部１１は、スコアが閾値以上の文章を候補文に決定する。
【００５７】
制御部１１は、生成した複数の候補文のうち、ステップＳ３３で候補文を生成する際に用いた語句以外の他の指定語句を含む候補文を、最終的に出力する文章として選択する（ステップＳ３４）。制御部１１は、選択した文章を端末２に出力し（ステップＳ３５）、一連の処理を終了する。
【００５８】
なお、上記ではユーザが指定した複数の語句を用いて文章を生成したが、単一の指定語句のみから文章を生成してもよい。
【００５９】
また、上記では生成する文章の一例として契約書を挙げたが、生成する文章は契約書に限定されず、他の文書に係るものであってもよい。
【００６０】
また、上記では、サーバ１は学習用契約書の文章に出現する各語句を先頭から末尾に亘り文章通りの正順序で学習して言語モデル１４１を生成したが、本実施の形態はこれに限定されるものではない。例えばサーバ１は、後述する実施の形態５のように文章の先頭及び末尾を入れ替え、文章の末尾から先頭に亘る逆順序で各語句を学習した言語モデル１４１を生成し、逆順序の言語モデル１４１から文章を生成するようにしてもよい。また、例えばサーバ１は、正順序及び逆順序の双方向で学習を行ったｂｉｄｉｒｅｃｔｉｏｎａｌ  ＲＮＮを言語モデル１４１として構築し、当該言語モデル１４１を用いて文章を生成してもよい。このように、サーバ１は文章内の語順を学習した言語モデル１４１から文章を生成可能であればよく、その語順は正順序であるか、又は逆順序であるかを問わず、また、正順序及び逆順序の双方向を学習して言語モデル１４１を構築してもよい。
【００６１】
以上より、本実施の形態１によれば、学習用契約書の文章内に出現する各語句を、その文章の順に学習した言語モデル１４１を用いることで、ユーザが指定した語句を含む文章を適切に生成することができる。
【００６２】
また、本実施の形態１によれば、ユーザが指定した複数の語句から文章を生成することで、より適切な文章を生成することができる。
【００６３】
また、本実施の形態１によれば、言語モデル１４１から生成した文章のスコアを各語句の生起確率から算出することで、当該文章の妥当性を評価し、適切な文章をユーザに提示することができる。
【００６４】
また、本実施の形態１によれば、文章のカテゴリ毎に言語モデル１４１を用意し、ユーザが指定したカテゴリに対応する言語モデル１４１から文章を生成することで、より適切な文章をユーザに提示することができる。
【００６５】
また、本実施の形態１によれば、ユーザが任意に入力した語句から文章を生成する際に、置換辞書を用いて入力された語句を置換することで、言語モデル１４１を用いても文章を生成困難となるような事態を防止することができる。
【００６６】
（実施の形態２）
本実施の形態では、言語モデル１４１に基づいて文章の先頭に頻出するフレーズを生成し、当該フレーズから、ユーザが指定した語句を含む文章を生成する形態について述べる。なお、実施の形態１と重複する内容については同一の符号を付して説明を省略する。
図１０は、実施の形態２の概要を示す説明図である。図１０に基づき、本実施の形態でサーバ１が実行する文章生成処理について説明する。
【００６７】
本実施の形態に係るサーバ１はまず、言語モデル１４１を用いて、契約書の文章先頭に出現するであろうと推定される複数の語句、すなわち頻出の先頭フレーズを生成する。例えばサーバ１は、言語モデル１４１の生成時に用いた学習用契約書の文章、すなわち学習元文章において、文章先頭に存在する語句から言語モデル１４１を用いて先頭フレーズを生成する。図１０の例では、「甲」が学習元文章の先頭に存在する語句に該当する。サーバ１は言語モデル１４１を参照しながら、学習元文章の先頭語句に続く語句として、一定値以上の生起確率を有する語句を選択する。さらにサーバ１は、選択した語句に続く語句として、一定値以上の生起確率を有する語句を選択する。サーバ１は当該処理を繰り返し、一定値以上の生起確率を有する語句を、先頭語句に続く語句として順々に選択し、文章を生成していく。
【００６８】
サーバ１は、上記のように文章先頭から順に生起確率が一定値以上の語句を選択していき、複数の語句を先頭フレーズとして生成する。例えばサーバ１は、ユーザが指定した語句のいずれか（図１０では「発明」又は「共有」）が出現するまで文章生成を行い、指定語句が出現した時点で、指定語句より前に位置する一又は複数の語句を先頭フレーズとして特定すればよい。あるいはサーバ１は、文章の先頭から所定語数の語句を生成し、当該所定語数の語句から、意味、文法等のまとまりを持ったフレーズ部分を特定してもよい。文章先頭からどこまでの語句を先頭フレーズとして特定するか、その手法は特に問わない。
【００６９】
サーバ１は、生成した先頭フレーズから、ユーザが指定した語句を含む文章を生成する。具体的には、サーバ１は、ユーザが指定した複数の語句のうち、いずれかの語句を先頭フレーズの次の語句として配置する。そしてサーバ１は、先頭フレーズ及び指定語句をＲＮＮ（言語モデル１４１）に入力し、指定語句に続く語句を推定して複数の候補文を生成する。
【００７０】
後の処理は実施の形態１と同様であり、サーバ１は文章生成に用いていない他の指定語句を含む候補文を最終的に出力する文章として選択し、端末２に出力する。
【００７１】
図１１は、実施の形態２に係る文章生成処理の処理手順の一例を示すフローチャートである。
生成する文章のカテゴリの指定入力を受け付け（ステップＳ３１）、当該文章に含める複数の語句の指定入力を受け付けた後（ステップＳ３２）、サーバ１の制御部１１は、以下の処理を実行する。制御部１１は、ステップＳ３１で指定されたカテゴリの言語モデル１４１に基づき、当該カテゴリの文章の先頭に出現するフレーズ（複数の語句）を生成する（ステップＳ２０１）。制御部１１は、生成したフレーズと、ステップＳ３１で指定された複数の語句のうちいずれかの語句とに基づいて、複数の候補文を生成する（ステップＳ２０２）。具体的には、制御部１１は先頭フレーズの次に指定語句のいずれかを配置してＲＮＮに入力し、後続の語句を推定して文章を生成する。制御部１１は、処理をステップＳ３４に移行する。
【００７２】
以上より、本実施の形態２によれば、言語モデル１４１に基づいて先頭フレーズを生成し、当該フレーズの次に指定語句を配置して後続の語句を生成していくことで、より好適に文章を生成することができる。
【００７３】
（実施の形態３）
本実施の形態では、ユーザが指定した順序で指定語句が出現する文章を生成する形態について説明する。
図１２は、実施の形態３の概要を示す説明図である。図１２に基づき、本実施の形態に係るサーバ１が実行する文章生成処理について説明する。
【００７４】
本実施の形態でサーバ１は、図７で例示した画面と同様の入力画面において、複数の語句の指定入力を受け付けるだけでなく、当該複数の語句が文章内で出現する順序の指定入力を受け付ける。そしてサーバ１は、指定された順序で各語句が出現する文章を生成する。
【００７５】
例えば図１２に示すように、「発明」が１番目の語句、「帰属」が２番目の語句、「協議」が３番目の語句として指定された場合を考える。この場合、サーバ１は１番目の語句として指定された「発明」をＲＮＮ（言語モデル１４１）に入力し、後続の語句を推定して複数の候補文を生成する。
【００７６】
サーバ１は、生成した複数の候補文のうち、文章生成に用いていない他の指定語句がユーザにより指定された順序で出現する文章を選択する。図１２の例では、「発明」以外の指定語句「帰属」及び「協議」を含み、かつ、２番目に指定された語句「帰属」が３番目に指定された語句「協議」よりも先に出現する文章を選択する。サーバ１は、選択した文章を端末２に出力する。
【００７７】
図１３は、実施の形態３に係る文章生成処理の処理手順の一例を示すフローチャートである。
生成する文章のカテゴリの指定入力を受け付けた後（ステップＳ３１）、サーバ１の制御部１１は以下の処理を実行する。制御部１１は、生成する文章に含める複数の語句と、各語句が文章内で出現する順序とを指定する指定入力を受け付ける（ステップＳ３０１）。制御部１１は、指定された複数の語句のうち、いずれかの語句から候補文を複数生成する（ステップＳ３０２）。そして制御部１１は、複数の候補文から、ステップＳ３０１で指定された順序で各指定語句が出現する候補文を、最終的に出力する文章として選択する（ステップＳ３０３）。制御部１１は処理をステップＳ３５に移行する。
【００７８】
以上より、本実施の形態３によれば、指定された順序で指定語句が出現する文章を生成することで、より正確な文章の生成を行うことができる。
【００７９】
（実施の形態４）
本実施の形態では、ユーザが指定した複数の語句を全て含む候補文が生成されない場合、候補文に含まれる語句を指定語句に置き換えて、指定語句を全て含む文章を生成する形態について説明する。
図１４は、実施の形態４の概要を示す説明図である。図１４に基づき、本実施の形態に係るサーバ１が実行する文章生成処理について説明する。
【００８０】
本実施の形態に係るサーバ１は、実施の形態１と同様に、ユーザが指定した複数の語句のうち、いずれかの語句に基づいて複数の候補文を生成する。この場合に、ユーザが指定した語句によっては、候補文生成に用いていない他の指定語句を含む文章が候補文として生成されない可能性もある。例えば図１４の上側に模式的に示すように、「発明」及び「共有」が指定された場合に、語句「発明」から複数の候補文が生成されたものの、候補文のいずれにも「共有」が含まれないような可能性もある。
【００８１】
この場合にサーバ１は、候補文に含まれる語句を指定語句に置換しながら、文章のスコアに応じて端末２に出力する文章を選択する。例えばサーバ１はまず、上記のようにして生成された複数の候補文のうち、スコアが最も高い候補文を選択する。そしてサーバ１は、選択した候補文に含まれる各語句を残りの指定語句に置換して、複数の候補文を新たに生成する。図１４の例では、スコアが最も高い点線矩形枠で囲んだ文章について、「発明」に続く２番目の語句、３番目の語句、４番目の語句…をそれぞれ残りの指定語句「共有」に置換した候補文を生成する。
【００８２】
なお、上記では指定語句「発明」以外の全ての語句を総当たりで指定語句「共有」に置換しているが、本実施の形態はこれに限定されるものではない。例えばサーバ１は、指定語句「発明」を除く各語句のうち、残りの指定語句「共有」と同一品詞の語句に絞って指定語句「共有」に置換し、候補文を生成してもよい。すなわちサーバ１は、候補文生成に用いていない他の指定語句（要素）と同一品詞の語句を、当該他の指定語句に変換して候補文を生成する。同一品詞の間で変換を行うことで、より適切な候補文を作成することができると共に、文章生成に伴う処理負荷を軽減することができる。
【００８３】
サーバ１は、生成した各候補文の語句をＲＮＮ（言語モデル１４１）に入力して生起確率を算出し、各候補文のスコアを算出する。そしてサーバ１は、スコアが高い候補文を選択する。例えばサーバ１は、スコアが閾値以上の候補文を選択する。このようにしてサーバ１は、複数の指定語句を全て含み、かつ、スコアが閾値以上の候補文を生成する。サーバ１は、生成した候補文を端末２に出力し、ユーザに提示する。
【００８４】
図１５は、実施の形態４に係る文章生成処理の処理手順の一例を示すフローチャートである。
ステップＳ３２で指定された複数の語句のうち、いずれかの語句を用いて複数の候補文を生成した後（ステップＳ３３）、サーバ１の制御部１１は以下の処理を実行する。制御部１１は、ステップＳ３２で指定された複数の語句のうち、ステップＳ３３で文章を生成する際に用いた語句以外の他の指定語句を含む候補文があるか否かを判定する（ステップＳ４０１）。指定語句を含む候補文があると判定した場合（Ｓ４０１：ＹＥＳ）、制御部１１は処理をステップＳ３４に移行する。
【００８５】
指定語句を含む候補文がないと判定した場合（Ｓ４０１：ＮＯ）、制御部１１は、ステップＳ３３で生成した候補文に含まれる各語句を指定語句に置換しながら、新たな候補文を生成する（ステップＳ４０２）。例えば制御部１１は、ステップＳ３３で生成した複数の候補文のうち最もスコアが高い候補文を選択し、当該候補文に含まれる各語句を、文章生成に用いていない指定語句に置換して複数の候補文を新たに生成する。この場合に制御部１１は、例えば候補文に含まれる各語句のうち、文章生成に用いていない指定語句（他の要素）と同一品詞の語句を指定語句に置換することで新たな候補文を生成する。
【００８６】
制御部１１は、言語モデル１４１を用いて新たに生成した複数の候補文それぞれのスコアを算出し、スコアが高い候補文を、最終的に出力する文章として選択する（ステップＳ４０３）。例えば制御部１１は、スコアが閾値以上の候補文を選択する。制御部１１は処理をステップＳ３５に移行する。
【００８７】
以上より、本実施の形態４によれば、指定語句を全て含む文章が生成されない場合であっても、文章内の語句を置き換えることで、指定語句を含む文章を適切に生成することができる。
【００８８】
また、本実施の形態４によれば、上記の置換を同一品詞の間で行うことで、指定語句を含む文章をより適切に生成することができる。
【００８９】
（実施の形態５）
本実施の形態では、学習用契約書から正順序の言語モデル１４１（第１の言語モデル）だけでなく逆順序の言語モデル１４１（第２の言語モデル）を生成し、両方の言語モデル１４１を組み合わせて文章を生成する形態について説明する。
図１６は、実施の形態５に係る文章学習処理に関する説明図である。図１６では、学習用契約書に出現する語句の並び順を、文章の末尾から逆順序で学習する様子を概念的に図示している。
【００９０】
サーバ１は実施の形態１と同様に、学習用契約書の文章を所定単位の語句毎に分割し、文章の先頭から末尾に亘って正順序で各語句を学習して言語モデル１４１を生成する。本実施の形態ではさらに、サーバ１は文章の各語句を逆順序に並び替え、文章の末尾から逆順序で各語句を学習して、逆順序の言語モデル１４１を生成する。
【００９１】
例えばサーバ１は、正順序の学習処理を完了後、学習用文章の先頭から末尾までを入れ替え、末尾の語句を先頭にした逆順序に並び替える。すなわち、図１６に示すように、サーバ１は「甲」、「及び」、「乙」、「が」、…「通知」、「する」と続く語句を、「する」、「通知」、「に」、「相手方」、…「及び」、「甲」という順序に並び替える。サーバ１は、図３で示したＲＮＮと同様の構成を有する逆順序学習用のＲＮＮの入力層に、並び替えた各語句を入力する。そしてサーバ１は、文章の末尾から逆順序で出現する一又は複数の語句に基づき、当該一又は複数の語句の直前に出現する語句を推定するＲＮＮを構築する。つまりサーバ１は、文章内の任意の位置の語句を、当該語句に続く後続の語句から推定するＲＮＮを構築する。
【００９２】
図１７は、実施の形態５に係る文章生成処理に関する説明図である。ユーザが指定した語句から文章を生成する場合、サーバ１は、正順序及び逆順序の双方の言語モデル１４１から算出される各語句の生起確率を組み合わせて、文章を生成する。
【００９３】
例えばサーバ１は、まず正順序の言語モデル１４１を用いて候補文を生成する。具体的には実施の形態１と同様に、サーバ１は複数の指定語句のいずれかから複数の候補文を生成する。そしてサーバ１は、残りの指定語句を含む候補文を選択する。ここで、図１７に例示する候補文が選択された場合を考える。
【００９４】
サーバ１は候補文の語句の並び順を逆順序に変換し、言語モデル１４１に入力して各語句の生起確率を算出する。そしてサーバ１は、逆順序の言語モデル１４１から算出した生起確率に基づき、候補文が適切な文章であるか否か判定する。例えばサーバ１は、各語句の生起確率を所定の閾値と比較し、閾値以下の語句があるか否かを判定する。これによりサーバ１は、逆順序の言語モデル１４１から、不適切な語句があるかをチェックする。
【００９５】
生起確率が閾値以下の語句があると判定した場合、例えばサーバ１は逆順序の言語モデル１４１を用いて、該当語句を別の語句に置換する。すなわちサーバ１は、該当語句を校正する。例えばサーバ１は、該当語句の直後から出現する一又は複数の語句（図１７では「に」の直後から出現する「相手方」、「と」、「の」…の語句）より、該当語句の位置に出現する語句を推定し、語句を置換する。これによりサーバ１は、候補文をより適切な文章に校正する。サーバ１は、校正後の文章を端末２に出力する。
【００９６】
図１８は、実施の形態５に係る文章学習処理の処理手順の一例を示すフローチャートである。
契約書の文章を複数の語句に分割した後（ステップＳ１３）、サーバ１の制御部１１は以下の処理を実行する。制御部１１は、分割した文章の各語句を、文章における並び順に従って学習する機械学習処理を行い、正順序の言語モデル１４１を生成する（ステップＳ５０１）。次に制御部１１は、文章の先頭から末尾までを並び替え、各語句の並び順を逆順序に変換する（ステップＳ５０２）。そして制御部１１は、各語句を逆順序で学習した言語モデル１４１を生成する（ステップＳ５０３）。制御部１１は、ステップＳ５０１で生成した正順序の言語モデル１４１と、ステップＳ５０３で生成した逆順序の言語モデル１４１とを補助記憶部１４に格納し、処理をステップＳ１５に移行する。
【００９７】
図１９は、実施の形態５に係る文章生成処理の処理手順の一例を示すフローチャートである。
生成する文章に含める複数の語句の指定入力を受け付けた後（ステップＳ３２）、サーバ１の制御部１１は以下の処理を実行する。制御部１１は、正順序の言語モデル１４１に基づき、ステップＳ３２で指定された複数の語句のうち、いずれかの語句から候補文を複数生成する（ステップＳ５２１）。制御部１１は、生成した複数の候補文から、ステップＳ５２１で用いていない指定語句を含む候補文を選択する（ステップＳ５２２）。
【００９８】
制御部１１は、ステップＳ５２２で選択した候補文に含まれる各語句の並び順を逆順序に変換する（ステップＳ５２３）。そして制御部１１は、逆順序の言語モデル１４１に基づき、候補文に含まれる各語句の生起確率を算出する（ステップＳ５２４）。制御部１１は、逆順序の言語モデル１４１から算出した生起確率に応じて、最終的に出力する文章を決定する（ステップＳ５２５）。例えば制御部１１は、逆順序の言語モデル１４１を用いて候補文に含まれる各語句の生起確率を所定の閾値と比較し、閾値以下の語句があるか否かを判定する。閾値以下の語句がないと判定した場合、制御部１１は、候補文を出力文章に決定する。また、例えば制御部１１は、閾値以下の語句があると判定した場合、逆順序の言語モデル１４１を用いて該当語句を別の語句に置換（校正）する処理を行い、置換後の候補文を最終的に出力する文章に決定してもよい。制御部１１は処理をステップＳ３５に移行する。
【００９９】
なお、逆順序の言語モデル１４１から候補文を生成して、正順序の言語モデル１４１によりチェックを行うようにしてもよい。
【０１００】
以上より、本実施の形態５によれば、正順序及び逆順序の言語モデル１４１を組み合わせて文章を生成することで、より適切な文章をユーザに提示することができる。
【０１０１】
また、本実施の形態５によれば、正順序又は逆順序のいずれかの言語モデル１４１から候補文を生成し、他方の言語モデル１４１を用いて候補文をチェックすることで、より適切に文章を生成することができる。
【０１０２】
（実施の形態６）
図２０は、上述した形態のサーバ１の動作を示す機能ブロック図である。制御部１１がプログラムＰを実行することにより、サーバ１は以下のように動作する。
記憶部２０１は、所定単位の文字又は文字列である各要素から構成される文章において、前記各要素の次に出現する前記要素を前記文章の順に学習した言語モデルを記憶する。受付部２０２は、生成する文章に含める前記要素の指定入力を受け付ける。生成部２０３は、前記言語モデルを参照して、指定された前記要素に基づき文章を生成する。出力部２０４は、生成した前記文章を出力する。
【０１０３】
本実施の形態６は以上の如きであり、その他は実施の形態１から５と同様であるので、対応する部分には同一の符号を付してその詳細な説明を省略する。
【０１０４】
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１０５】
１      サーバ（情報処理装置）
１１    制御部
１２    主記憶部
１３    通信部
１４    補助記憶部
Ｐ      プログラム
１４１  言語モデル
１４２  キーワードＤＢ
１４３  置換辞書
２      端末
【図１】
2020035019.tif 000003
【図２】
2020035019.tif 000004
【図３】
2020035019.tif 000005
【図４】
2020035019.tif 000006
【図５】
2020035019.tif 000007
【図６】
2020035019.tif 000008
【図７】
2020035019.tif 000009
【図８】
2020035019.tif 000010
【図９】
2020035019.tif 000011
【図１０】
2020035019.tif 000012
【図１１】
2020035019.tif 000013
【図１２】
2020035019.tif 000014
【図１３】
2020035019.tif 000015
【図１４】
2020035019.tif 000016
【図１５】
2020035019.tif 000017
【図１６】
2020035019.tif 000018
【図１７】
2020035019.tif 000019
【図１８】
2020035019.tif 000020
【図１９】
2020035019.tif 000021
【図２０】
2020035019.tif 000022