(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024128740
(43)【公開日】2024-09-24
(54)【発明の名称】モデル生成方法、情報処理方法、及びプログラム
(51)【国際特許分類】
G06F 40/279 20200101AFI20240913BHJP
G06F 40/216 20200101ALI20240913BHJP
【FI】
G06F40/279
G06F40/216
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023037909
(22)【出願日】2023-03-10
(71)【出願人】
【識別番号】302064762
【氏名又は名称】株式会社日本総合研究所
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】西脇 一尊
(72)【発明者】
【氏名】門脇 一真
(57)【要約】
【課題】文章中の各文章の間の関係を推定することが可能な学習モデルのモデル生成方法等を提供する。
【解決手段】コンピュータは、第1の文章及び第2の文章の組み合わせと、前記第1の文章及び前記第2の文章の関係を示す関係情報とを含む訓練データを複数取得する。そして、コンピュータは、第1の文章及び第2の文章の単語数に関わらず、第1の文章と第2の文章との間に挿入するセパレータの位置を中央に固定した上で、複数の訓練データを用いて、各訓練データに含まれる第1の文章及び第2の文章の全部又は一部を入力した場合に前記第1の文章及び第2の文章の関係を示す関係情報を出力する学習モデルを生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
第1の文章及び第2の文章の組み合わせと、前記第1の文章及び前記第2の文章の関係を示す関係情報とを含む訓練データを複数取得し、
第1の文章及び第2の文章の単語数に関わらず、前記第1の文章と前記第2の文章との間に挿入するセパレータの位置を中央に固定した上で、複数の前記訓練データを用いて、前記訓練データに含まれる第1の文章及び第2の文章の全部又は一部を入力した場合に前記第1の文章及び第2の文章の関係を示す関係情報を出力する学習モデルを生成する
処理をコンピュータが実行するモデル生成方法。
【請求項2】
前記セパレータを中央位置に固定し、前記中央位置を起点として前側に第1の文章の全部又は一部を挿入し、前記中央位置を起点として後側に第2の文章の全部又は一部を挿入する
処理を前記コンピュータが実行する請求項1に記載のモデル生成方法。
【請求項3】
前記中央位置を起点として前側の領域に、前記中央位置側に詰めて、前記第1の文章の末尾から前記第1の文章を挿入し、
前記中央位置を起点として後側の領域に、前記中央位置側に詰めて、前記第2の文章の先頭から前記第2の文章を挿入する
処理を前記コンピュータが実行する請求項2に記載のモデル生成方法。
【請求項4】
前記第1の文章の全部を挿入した場合に空き領域がある場合、前記第1の文章に連なる第3の文章の末尾から前記空き領域に挿入し、
前記第2の文章の全部を挿入した場合に空き領域がある場合、前記第2の文章から連なる第4の文章の先頭から前記空き領域に挿入する
処理を前記コンピュータが実行する請求項2又は3に記載のモデル生成方法。
【請求項5】
フィルタ対象の語句を記憶部に記憶しておき、
前記第1の文章及び前記第2の文章に含まれる前記フィルタ対象の語句を、前記学習モデルの入力対象から除外する
処理を前記コンピュータが実行する請求項1~3のいずれか1つに記載のモデル生成方法。
【請求項6】
第1の文章及び第2の文章の組み合わせを取得し、
第1の文章と第2の文章との間に挿入するセパレータの位置を中央に固定した上で、前記第1の文章及び前記第2の文章の全部又は一部を入力した場合に前記第1の文章及び第2の文章の関係を示す関係情報を出力するように学習された学習モデルに、固定した前記中央の位置にセパレータを挿入した上で、前記セパレータの前側に挿入された第1の文章の全部又は一部、及び、前記セパレータの後側に挿入された第2の文章の全部又は一部を入力し、前記第1の文章及び前記第2の文章の関係を示す関係情報を取得する
処理をコンピュータが実行する情報処理方法。
【請求項7】
前記学習モデルは、前記第1の文章及び前記第2の文章の間が段落区切りであるか否かを示す関係情報を出力するように学習してあり、
複数の文章を含む処理対象の文章を取得し、
前記処理対象の文章において前後に連なる2つの文章を抽出し、
抽出した2つの文章の全部又は一部を順次前記学習モデルに入力し、前記2つの文章の間が段落区切りであるか否かを示す関係情報を取得し、
2つの文章のそれぞれの間が段落区切りであるか否かに基づいて、いずれの2つの文章の間を段落区切りとするかを特定する
処理を前記コンピュータが実行する請求項6に記載の情報処理方法。
【請求項8】
第1の文章及び第2の文章の組み合わせを取得し、
第1の文章と第2の文章との間に挿入するセパレータの位置を中央に固定した上で、前記第1の文章及び前記第2の文章の全部又は一部を入力した場合に前記第1の文章及び第2の文章の関係を示す関係情報を出力するように学習された学習モデルに、固定した前記中央の位置にセパレータを挿入した上で、前記セパレータの前側に挿入された第1の文章の全部又は一部、及び、前記セパレータの後側に挿入された第2の文章の全部又は一部を入力し、前記第1の文章及び前記第2の文章の関係を示す関係情報を取得する
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、モデル生成方法、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
自然言語処理の分野では、文脈を加味して文章を処理できる言語モデルが利用されている。例えば、BERT(Bidirectional Encoder Representations from Transformers)等による言語モデルを用いて、文章中の重要文の抽出、自動要約等が行われている。また、特許文献1では、BERT等によって文章を分類する学習モデルを用いて、文章中の単語を分類項目に分類する文章解析装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
文章中の重要箇所を抽出する場合、例えば、言語モデルを用いて文章中から抽出された文だけでなく、その前後の文及び文脈を確認して、抽出された文が本当に重要であるかを判定したいという要望がある。そこで、重要箇所として、重要文のみを抽出するのではなく、例えば重要文として抽出された文とその前後の文とを抽出することが考えられる。その際、重要文の前後の文が、重要文と共に抽出すべき文であるか否かを判定する必要があるが、重要文と、その前の文又は後の文との関係を推定することは難しい。特許文献1に開示された技術は、各文章の間の関係を検知するものではない。
【0005】
本開示は、斯かる事情に鑑みてなされたものであり、その目的とするところは、文章中の各文章の間の関係を推定することが可能な学習モデルのモデル生成方法等を提供することにある。
【課題を解決するための手段】
【0006】
本開示に係るモデル生成方法は、第1の文章及び第2の文章の組み合わせと、前記第1の文章及び前記第2の文章の関係を示す関係情報とを含む訓練データを複数取得し、第1の文章及び第2の文章の単語数に関わらず、前記第1の文章と前記第2の文章との間に挿入するセパレータの位置を中央に固定した上で、複数の前記訓練データを用いて、前記訓練データに含まれる第1の文章及び第2の文章の全部又は一部を入力した場合に前記第1の文章及び第2の文章の関係を示す関係情報を出力する学習モデルを生成する処理をコンピュータが実行する。
【発明の効果】
【0007】
本開示では、文章中の各文章の間の関係を推定することが可能となる。
【図面の簡単な説明】
【0008】
【
図1】情報処理装置の構成例を示すブロック図である。
【
図4】学習モデルの生成処理手順の一例を示すフローチャートである。
【
図5】各文の関係の推定処理手順の一例を示すフローチャートである。
【
図9】除外対象DBのレコードレイアウトの一例を示す説明図である。
【
図10】実施形態2の学習モデルの生成処理手順の一例を示すフローチャートである。
【
図11】実施形態2の推定処理手順の一例を示すフローチャートである。
【
図12】実施形態3の推定処理手順の一例を示すフローチャートである。
【
図13】実施形態4の推定処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下に、本開示のモデル生成方法、情報処理方法、及びプログラムについて、その実施形態を示す図面に基づいて詳述する。
【0010】
(実施形態1)
本実施形態では、複数の文を含む文章において、段落の切れ目、節の切れ目、章の切れ目等の各区切りの位置を予測する情報処理装置について説明する。なお、予測対象は、段落区切り、節区切り、及び章区切りに限定されず、項区切り等、文章を構成する各要素の区切りの位置とすることができる。
図1は情報処理装置の構成例を示すブロック図である。
【0011】
情報処理装置10は、種々の情報処理及び情報の送受信が可能な情報処理装置であり、サーバコンピュータ又はパーソナルコンピュータ等である。情報処理装置10は、制御部11、記憶部12、通信部13、入力部14、表示部15、読み取り部16等を含み、これらの各部はバスを介して相互に接続されている。制御部11は、CPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)、又はAIチップ(AI用半導体)等の1又は複数のプロセッサを含む。制御部11は、記憶部12に記憶してあるプログラム12Pを適宜実行することにより、情報処理装置10が行うべき種々の情報処理及び制御処理を実行する。
【0012】
記憶部12は、RAM(Random Access Memory)、フラッシュメモリ、ハードディスク、SSD(Solid State Drive)等を含む。記憶部12は、制御部11が実行するプログラム12P(プログラム製品)及びプログラム12Pの実行に必要な各種のデータを記憶している。また記憶部12は、制御部11がプログラム12Pを実行する際に発生するデータ等を一時的に記憶する。また記憶部12は、例えば機械学習によって訓練データを学習済みの学習モデル12aと、学習モデル12aに対応付けられているトークナイザ12bとを記憶している。学習モデル12aは、人工知能ソフトウェアを構成するプログラムモジュールとしての利用が想定される。学習モデル12aは、入力値に対して所定の演算を行い、演算結果を出力するものであり、記憶部12には、この演算を規定する関数の係数や閾値等のデータが学習モデル12aとして記憶される。
【0013】
通信部13は、有線通信又は無線通信に関する処理を行うための通信モジュールであり、ネットワークを介して他の装置との間で情報の送受信を行う。ネットワークは、インターネット又は公衆電話回線網であってもよく、情報処理装置10が設けられている施設内に構築されたLAN(Local Area Network)であってもよい。入力部14は、ユーザによる操作入力を受け付け、操作内容に対応した制御信号を制御部11へ送出する。表示部15は、液晶ディスプレイ又は有機ELディスプレイ等であり、制御部11からの指示に従って各種の情報を表示する。入力部14及び表示部15は一体として構成されたタッチパネルであってもよく、また、タッチパネルは情報処理装置10に外付けされている構成でもよい。
【0014】
読み取り部16は、CD(Compact Disc)、DVD(Digital Versatile Disc)、USB(Universal Serial Bus)メモリ、SD(Secure Digital)カード等を含む可搬型記憶媒体10aに記憶された情報を読み取る。記憶部12に記憶されるプログラム12P及び各種のデータは、制御部11が読み取り部16を介して可搬型記憶媒体10aから読み取って記憶部12に記憶してもよい。また、プログラム12P及び各種のデータは、情報処理装置10の製造段階において記憶部12に書き込まれてもよく、制御部11が通信部13を介して他の装置からダウンロードして記憶部12に記憶してもよい。
【0015】
本実施形態において、情報処理装置10は複数のコンピュータからなるマルチコンピュータであってもよく、1台の装置内にソフトウェアによって仮想的に構築された仮想マシンであってもよく、クラウドサーバであってもよい。また、情報処理装置10は、入力部14及び表示部15は必須ではなく、接続されたコンピュータを通じて操作を受け付ける構成でもよく、表示すべき情報を外部の表示装置へ出力する構成でもよい。また、プログラム12Pは単一のコンピュータ上で実行されてもよく、ネットワークを介して相互に接続された複数のコンピュータ上で実行されてもよい。
【0016】
上述した構成の情報処理装置10は、例えば複数の文を含む文章において、前後に連なる2つの文(文章)の関係を予測する処理を行う。具体的には、情報処理装置10は、2つの文(文章)の間が段落区切りであるか、節区切りであるか、章区切りであるか、区切りではないかを予測する。本実施形態の情報処理装置10は、2つの文(文章)の関係を予測する際に学習モデル12aを用いる。
【0017】
図2は学習モデル12aの説明図であり、
図2Aは学習モデル12aの構成例を示し、
図2Bは学習モデル12aの入力データを示す。
図3はトークナイザ12bの構成例を示す説明図である。学習モデル12aは、第1の文章及び第2の文章の組み合わせを入力とし、入力された文章に基づいて、第1の文章と第2の文章との関係(段落区切り、節区切り又は章区切りであるか、あるいは、区切りではないか)を判別する演算を行い、演算した結果(第1の文章と第2の文章との関係を示す関係情報)を出力するように学習してある。学習モデル12aは、例えばBERTである。BERTは、Transformersによる双方向のエンコード表現を用いた自然言語処理モデルであり、Transformer Encoderをネットワーク状に結合させて構成される。なお、学習モデル12aは、BERTのほかに、LSTM(Long Short Term Memory)、RNN(Recurrent Neural Network),GPT(Generative Pre-trained Transformer)、SVM(Support Vector Machine)、Seq2Seq(Sequence to Sequence)、ランダムフォレスト、決定木等のアルゴリズムで構成されてもよく、複数のアルゴリズムを組み合わせて構成されてもよい。
【0018】
学習モデル12aは、第1の文章及び第2の文章の組み合わせが入力される入力層と、入力された文章のデータに基づく演算を行う中間層と、中間層の演算結果を基に第1の文章と第2の文章との関係を示す関係情報を出力する出力層とを有する。入力層は、入力データを所定のルールに従って分割した各トークンがそれぞれ入力される入力ノードを有する。
図2Bに示すように、入力データは、文章(入力データ)の先頭を示す特殊トークンであるCLSトークンと、第1の文章と、第1の文章の末尾を示す特殊トークンであるSEPトークンと、第2の文章と、第2の文章の末尾を示す特殊トークンであるSEPトークンとを、この順序で含む。CLSトークン及びSEPトークンは、1トークン分のデータである。第1の文章及び第2の文章は、
図2Bの下側の各矩形枠で示すように、複数のトークンに分割されている。第1の文章及び第2の文章は、学習モデル12aの種類毎に用意されたトークナイザ12bを用いて各トークンに分割される。
図3に示すように、トークナイザ12bは、例えば1文が入力された場合に、入力された1文を、単語、形態素、文節等の各単位に分割する。
図3では、入力データの矩形枠は1文を示し、出力データの矩形枠は、1文から分割された各1トークンを示す。トークナイザ12bが分割するトークンの単位は、単語、形態素、文節に限定されず、対応する学習モデル12aの入力に適した分割方法(所定のルール)で分割される文字列とすることができる。
【0019】
本実施形態の学習モデル12aは、入力可能なトークン数に上限があるモデルであり、例えば入力可能な最大トークン数が512のモデルを用いる。この場合、学習モデル12aの入力データは、CLSトークン及び2つのSEPトークンを除いた509トークン分の第1の文章及び第2の文章を含む。本実施形態では、509トークンの半分である254トークンを第1の文章用のトークンとし、255トークンを第2の文章用のトークンとする。なお、第1の文章用のトークン数と、第2の文章用のトークン数とはこれに限定されず、第1の文章用のトークン数が255で、第2の文章用のトークン数が254であってもよい。即ち、本実施形態では、第1の文章と第2の文章との間に挿入されるSEPトークン(セパレータ)が、入力可能な最大トークン数の略中央位置(中央位置付近、中央位置の近傍)に固定され、このSEPトークンを起点として前側に第1の文章のトークンが挿入され、このSEPトークンを起点として後側に第2の文章のトークンが挿入されたデータを学習モデル12aの入力データとする。
【0020】
学習モデル12aの中間層は、各種の関数及び閾値等を用いて、入力層から入力された各トークンに対応するベクトルを算出する。出力層は、入力された第1の文章及び第2の文章のそれぞれの関係に対応付けられた4つの出力ノードを有する。
図2Aの例では、出力ノード0から、第1の文章及び第2の文章の間が段落区切り(段落の切れ目)であると判別すべき確率(確信度)を出力し、出力ノード1から、節区切り(節の切れ目)であると判別すべき確率(確信度)を出力し、出力ノード2から、章区切り(章の切れ目)であると判別すべき確率(確信度)を出力し、出力ノード3から、その他である(例えば区切りではない)と判別すべき確率(確信度)を出力する。各出力ノードからの出力値は、例えば0~1の値であり、各出力ノードから出力された確率の合計が1.0(100%)となる。
【0021】
上述した構成により、学習モデル12aは、第1の文章と第2の文章との間に挿入されるSEPトークンが、入力可能な最大トークン数の略中央位置に固定され、このSEPトークンの前側に第1の文章のトークンが挿入され、後側に第2の文章のトークンが挿入されたデータが入力された場合に、第1の文章及び第2の文章の関係を示す出力値(各関係の確信度)を出力する。情報処理装置10は、上述した学習モデル12aにおいて、各出力ノードからの出力値のうちで最大の出力値(確信度)を出力した出力ノードを特定し、特定した出力ノードに対応付けられている関係(区切り)を、入力した第1の文章及び第2の文章の関係(区切り)に判別する。学習モデル12aの出力層は、上述したような複数の出力ノードを有する代わりに、確信度が最大の関係(区切り)を示す情報を出力する1つの出力ノードを有する構成でもよい。また、学習モデル12aで予測する関係は、上述した段落、節、章に限定されず、その他の関係(例えば項区切り)を含んでもよく、予測対象の数の出力ノードを有する構成とすることができる。
【0022】
学習モデル12aは、訓練用の入力データと、入力データに含まれる第1の文章及び第2の文章の関係を示す関係情報(正解ラベル)とを含む訓練データを用いて機械学習することにより生成できる。訓練データは、例えば段落区切り、節区切り、章区切りを有する文章から、前後に連続する2つの文を抽出し、抽出した2つの文から入力データを生成し、生成した入力データに対して、この2つの文の間が段落区切り、節区切り、又は章区切りであること、あるいは、区切りではないことを示す正解ラベルを付与して生成される。なお、入力データは、先頭にCLSトークンを挿入し、中央位置及び末尾にSEPトークンを挿入し、CLSトークン及び中央位置のSEPトークンの間に前の文(第1の文章)を分割したトークンを挿入し、2つのSEPトークンの間に後の文(第2の文章)を分割したトークンを挿入して生成される。
【0023】
ここで、第1の文章用のトークンとして前の文を分割したトークンを挿入した場合に、全てのトークンを挿入できないときは、前の文の末尾から挿入可能なトークン数を抽出してCLSトークン及び中央位置のSEPトークンの間に挿入する。具体的には、前の文を分割したトークンの数が、第1の文章用のトークン数(例えば254)よりも多い場合、前の文の末尾から第1の文章用のトークン数のトークンを抽出して挿入する。即ち、前の文において、第1の文章用のトークンとして挿入できない先頭部分は入力データから除かれる。同様に、第2の文章用のトークンとして後の文を分割したトークンを挿入した場合に、全てのトークンを挿入できないときは、後の文の先頭から挿入可能なトークン数を抽出して2つのSEPトークンの間に挿入する。具体的には、後の文を分割したトークンの数が、第2の文章用のトークン数(例えば255)よりも多い場合、後の文の先頭から第2の文章用のトークン数のトークンを抽出して挿入する。即ち、後の文において、第2の文章用のトークンとして挿入できない末尾部分は入力データから除かれる。このように、本実施形態では、前後に連続する2つの文から、2つの文の切れ目を基準として同程度のトークン数のトークンが抽出されて入力データに用いられる。
【0024】
また、第1の文章用のトークンとして前の文を分割したトークンを挿入した場合に、空き領域が生じるときは、前の文の更に前の文(第1の文章に連なる第3の文章)の末尾から、空き領域に挿入可能なトークン数を抽出してCLSトークン及び中央位置のSEPトークンの間の空き領域に挿入する。具体的には、前の文を分割したトークンの数が、第1の文章用のトークン数(例えば254)よりも少ない場合、前の文の末尾を基準として、前の文に加えて更に前の文から、第1の文章用のトークン数のトークンを抽出して挿入する。即ち、前の1文だけでは第1の文章用のトークンに空き領域が生じる場合、更に前の文も入力データに含める。同様に、第2の文章用のトークンとして後の文を分割したトークンを挿入した場合に、空き領域が生じるときは、後の文の更に後の文(第2の文章から連なる第4の文章)の先頭から、空き領域に挿入可能なトークン数を抽出して2つのSEPトークンの間の空き領域に挿入する。具体的には、後の文を分割したトークンの数が、第2の文章用のトークン数(例えば255)よりも少ない場合、後の文の先頭を基準として、後の文に加えて更に後の文から、第2の文章用のトークン数のトークンを抽出して挿入する。即ち、後の1文だけでは第2の文章用のトークンに空き領域が生じる場合、更に後の文も入力データに含める。このように、本実施形態では、複数の文を有する文章から、連続する2つの文の切れ目を基準として、前後に同程度のトークン数のトークンが抽出されて入力データに用いられる。
【0025】
学習モデル12aは、上述したように生成された訓練データに含まれる入力データが入力された場合に、訓練データに含まれる正解ラベル(関係情報)に対応する出力ノードからの出力値が1に近づき、他方の出力ノードからの出力値が0に近づくように学習する。学習処理において学習モデル12aは、入力された入力データに基づいて中間層及び出力層での演算を行い、各出力ノードからの出力値を算出する。学習モデル12aは、算出した各出力ノードの出力値と正解ラベルに応じた値(正解ラベルに対応する出力ノードに対しては1、他方の出力ノードに対しては0)とを比較し、両者が近似するように、中間層及び出力層での演算処理に用いるパラメータを最適化する。当該パラメータは、中間層及び出力層におけるノード間の重み(結合係数)等である。パラメータの最適化の方法は特に限定されないが、誤差逆伝播法、最急降下法等を用いることができる。これにより、入力データが入力された場合に、入力データに含まれる第1の文章及び第2の文章の関係を予測し、予測結果を出力する学習モデル12aが得られる。
【0026】
情報処理装置10は、このような学習モデル12aを予め用意しておき、複数の文を含む文章において、各文の間の関係を判定する際に用いる。学習モデル12aの学習は他の学習装置で行われてもよい。他の学習装置で学習が行われて生成された学習済みの学習モデル12aは、例えばネットワーク経由又は可搬型記憶媒体10a経由で学習装置から情報処理装置10にダウンロードされて記憶部12に記憶される。
【0027】
以下に、上述したような訓練データを学習して学習モデル12aを生成する処理について説明する。
図4は学習モデル12aの生成処理手順の一例を示すフローチャートである。以下の処理は、情報処理装置10の制御部11が、記憶部12に記憶してあるプログラム12Pに従って実行するが、他の学習装置で行われてもよい。以下の処理では、制御部11はまず、任意の文章に基づいて訓練データを生成し、生成した訓練データを用いて学習モデル12aの学習を行う。
【0028】
情報処理装置10の制御部11は、訓練データの生成に用いる文章のデータを取得する(S11)。文章のデータは、ネットワークを介して公開されている各種の文章を通信部13によってダウンロードしてもよく、予め他の装置から取得して記憶部12に記憶されている文章を読み出してもよい。なお、訓練データの生成に用いる文章は、複数の文を含んでおり、段落の切れ目、節の切れ目、章の切れ目が明確である文章が望ましい。段落の切れ目は、例えば改行の後に所定文字数分のスペースが挿入されている箇所を切れ目と判定することができる。章の切れ目及び節の切れ目は、例えば文章中に章番号及び節番号がある場合に、章番号及び節番号が挿入されている箇所を切れ目と判定することができる。また、訓練データの生成に用いる文章は、アノテーションの担当者等によって、文章中の各文の切れ目が段落区切り、節区切り、又は章区切りであるかが判定され、各文の切れ目に判定結果が付与された文章であってもよい。
【0029】
制御部11は、取得した文章から1文(第1の文)を抽出する(S12)。制御部11は、文章の先頭から順に各文を抽出する処理を行い、ここでは、文章の先頭の1文、具体的には、先頭から1つ目の読点までの1文を抽出する。制御部11は、抽出した第1の文をトークナイザ12bを用いてトークンに分割する(S13)。そして、制御部11は、トークナイザ12bによって分割した各トークンを、第1の文の末尾から順に抽出して、第1の文章用のトークンとして入力データに挿入する(S14)。なお、制御部11は、学習モデル12aの入力データとして、先頭にCLSトークンを、中央位置及び末尾にSEPトークンをそれぞれ挿入(固定)しており、第1の文を分割したトークンを、CLSトークンと中央位置のSEPトークンとの間に挿入する。このとき、制御部11は、第1の文の末尾側のトークンが、SEPトークン側となるように、第1の文章用のトークンの数だけ挿入する。即ち、CLSトークンと中央位置のSEPトークンとの間において、SEPトークン側に詰めて(右詰めで)第1の文のトークンを挿入する。よって、第1の文を分割したトークンの数が、第1の文章用のトークンの数(例えば254)よりも多い場合、制御部11は、第1の文において、第1の文章用のトークンとして挿入されたトークン(文字列)よりも前側のトークン(文字列)を入力データから除外する。
【0030】
一方、第1の文を分割したトークンの数が、第1の文章用のトークンの数(例えば254)よりも少ない場合、第1の文章用のトークンに空き領域が生じる。よって、制御部11は、空き領域があるか否かを判断し(S15)、空き領域があると判断した場合(S15:YES)、ステップS12で抽出した第1の文の前の文(第3の文)を抽出する(S16)。そして、制御部11は、抽出した前の文に対して、ステップS13~S14の処理を実行する。即ち、制御部11は、第3の文をトークナイザ12bを用いてトークンに分割し(S13)、分割した各トークンを、第3の文の末尾から順に抽出して、第1の文章用のトークンとして入力データに挿入する(S14)。ここでは、制御部11は、第1の文章用のトークンの空き領域に対して、第3の文を分割したトークンを挿入する。そして、制御部11は、第1の文章用のトークンに空き領域があるか否かを判断し(S15)、空き領域がないと判断するまでステップS13~S16の処理を繰り返す。これにより、訓練用の入力データに含まれる第1の文章として、処理対象の文章から1文(第1の文)が抽出され、第1の文のみでは第1の文章用のトークンを満たせない場合には、第1の文の前の文(第3の文)が抽出され、抽出された文を分割した各トークンが、第1の文章用のトークンとして使用される。なお、第1の文の前の文がない場合、例えばステップS12で抽出した第1の文が最初の文である場合、制御部11は、ステップS15~S16の処理をスキップしてもよい。この場合、第1の文章用のトークンに空き領域が生じた場合であっても、空き領域のままとしてもよく、空き領域に空白を示す特殊トークンを挿入してもよい。なお、入力データの略中央位置に挿入されるSEPトークンは、必ずしも中央位置に固定される構成に限定されない。例えば、第1の文の前の文がない場合に、第1の文章用のトークンにおける空き領域を入力データの先頭側に詰めて、これに伴い中央位置に固定されるSEPトークンも先頭側に詰めて、残りの領域を第2の文章用のトークンに用いてもよい。この場合、第1の文章として挿入すべき文が少ないときには、空き領域を第2の文章用のトークンに使用することにより、入力可能なトークン数を有効に使用することができる。
【0031】
第1の文章用のトークンに空き領域がないと判断した場合(S15:NO)、制御部11は、ステップS12で抽出した第1の文と次の1文(第2の文)との間の区切りを特定する(S17)。ここでは、制御部11は、2文の間が、段落区切りであるか、節区切りであるか、章区切りであるか、区切りではないかを判定する。例えば制御部11は、第1の文の後に改行があり、改行の後に所定文字数分(例えば1文字分)のスペースが挿入されている場合に、段落区切りであると判定する。また制御部11は、第1の文の後に章番号又は節番号が挿入されている場合に、章区切り又は節区切りであると判定する。更に、文章中の各文の切れ目に段落区切り、節区切り、又は章区切りを示す情報が付与されている場合、制御部11は、付与されている情報から、2文の間が段落区切りであるか、節区切りであるか、章区切りであるか、区切りではないかを判定する。
【0032】
次に制御部11は、次の1文(第2の文)を抽出する(S18)。ここでは、制御部11は、ステップS12で抽出した1文の読点から次の読点までの1文を抽出する。そして、制御部11は、抽出した第2の文をトークナイザ12bを用いてトークンに分割し(S19)、分割した各トークンを、第2の文の先頭から順に抽出して、第2の文章用のトークンとして入力データに挿入する(S20)。ここでは、制御部11は、第2の文を分割したトークンを、2つのSEPトークンの間に挿入する。このとき、制御部11は、第2の文の先頭側のトークンが、中央位置のSEPトークン側となるように、第2の文章用のトークンの数だけ挿入する。即ち、2つのSEPトークンの間において、中央位置のSEPトークン側に詰めて(左詰めで)第2の文のトークンを挿入する。よって、第2の文を分割したトークンの数が、第2の文章用のトークンの数(例えば255)よりも多い場合、制御部11は、第2の文において、第2の文章用のトークンとして挿入されたトークン(文字列)よりも後側のトークン(文字列)を入力データから除外する。
【0033】
一方、第2の文を分割したトークンの数が、第2の文章用のトークンの数(例えば255)よりも少ない場合、第2の文章用のトークンに空き領域が生じる。よって、制御部11は、空き領域があるか否かを判断し(S21)、空き領域があると判断した場合(S21:YES)、ステップS18で抽出した第2の文の次の文(第4の文)を抽出する(S22)。そして、制御部11は、抽出した次の文に対して、ステップS19~S20の処理を実行する。即ち、制御部11は、第4の文をトークナイザ12bを用いてトークンに分割し(S19)、分割した各トークンを、第4の文の先頭から順に抽出して、第2の文章用のトークンとして入力データに挿入する(S20)。ここでは、制御部11は、第2の文章用のトークンの空き領域に対して、第4の文を分割したトークンを挿入する。そして、制御部11は、第2の文章用のトークンに空き領域があるか否かを判断し(S21)、空き領域がないと判断するまでステップS19~S22の処理を繰り返す。これにより、訓練用の入力データに含まれる第2の文章として、処理対象の文章から1文(第2の文)が抽出され、第2の文のみでは第2の文章用のトークンを満たせない場合には、第2の文の次の文(第4の文)が抽出され、抽出された各トークンが、第2の文章用のトークンとして使用される。なお、第2の文の次の文がない場合、例えばステップS18で抽出した第2の文が最後の文である場合、制御部11は、ステップS21~S22の処理をスキップしてもよい。この場合、第2の文章用のトークンに空き領域が生じた場合であっても、空き領域のままとしてもよく、空き領域に空白を示す特殊トークンを挿入してもよい。
【0034】
第2の文章用のトークンに空き領域がないと判断した場合(S21:NO)、制御部11は、先頭にCLSトークンを、中央位置及び末尾にSEPトークンをそれぞれ固定した上で、ステップS14で挿入した第1の文章用のトークンと、ステップS20で挿入した第2の文章用のトークンとを含む入力データに対して、ステップS17で特定した区切りに応じた正解ラベルを付与して訓練データを生成し、記憶部12に記憶する(S23)。具体的には、制御部11は、特定した区切りが段落区切りである場合、段落区切りを示す正解ラベルを入力データに付与し、節区切りである場合、節区切りを示す正解ラベルを入力データに付与し、章区切りである場合、章区切りを示す正解ラベルを入力データに付与し、区切りではない場合、その他を示す正解ラベルを入力データに付与する。制御部11は、生成した訓練データを、例えば記憶部12に用意された訓練DB(図示せず)に記憶する。
【0035】
制御部11は、ステップS11で取得した文章において、訓練データの生成に用いられていない未処理の文があるか否かを判断する(S24)。未処理の文があると判断した場合(S24:YES)、制御部11は、ステップS12の処理に戻り、未処理の文についてステップS12~S23の処理を行う。なお、ここでのステップS12で、制御部11は、直近のステップS18で抽出した第2の文を、第1の文として抽出する。これにより、直近に生成した訓練データに含まれる第2の文章が、次に生成される訓練データに含まれる第1の文章となり、この第1の文章の次の文章が、第2の文章として訓練データが生成される。制御部11は、未処理の文がないと判断するまでステップS12~S24の処理を繰り返す。これにより、訓練データの生成用に取得した文章から抽出した第1の文章及び第2の文章を含む入力データと、第1の文章及び第2の文章の関係を示す情報とに基づいて、学習モデル12aの学習に用いる訓練データが生成されて訓練DBに蓄積される。
【0036】
制御部11は、未処理の文がないと判断した場合(S24:NO)、上述したように訓練DBに蓄積した訓練データを用いて、学習モデル12aの学習を行う。制御部11は、上述した処理によって訓練DBに蓄積した訓練データのうちの1つを読み出す(S25)。そして、制御部11は、読み出した訓練データに基づいて、学習モデル12aの学習処理を行う(S26)。ここでは、制御部11は、訓練データに含まれる入力データを学習モデル12aに入力し、当該入力データが入力されることによって学習モデル12aから出力される出力値を取得する。制御部11は、学習モデル12aから出力された各出力ノードの出力値と、訓練データに含まれる正解ラベルに応じた値(正解ラベルに対応する出力ノードに対しては1、他の出力ノードに対しては0)とを比較し、両者が近似するように学習モデル12aを学習させる。学習処理において、学習モデル12aは、中間層及び出力層での演算処理に用いるパラメータを最適化する。例えば制御部11は、中間層及び出力層におけるノード間の重み(結合係数)等のパラメータを、学習モデル12aの出力層から入力層に向かって順次更新する誤差逆伝播法を用いて最適化する。
【0037】
制御部11は、訓練DBに記憶してある訓練データのうちで、学習処理が行われていない未処理の訓練データがあるか否かを判断する(S27)。未処理の訓練データがあると判断した場合(S27:YES)、制御部11は、ステップS25の処理に戻り、学習処理が未処理の訓練データについてステップS25~S26の処理を行う。未処理の訓練データがないと判断した場合(S27:NO)、制御部11は、一連の処理を終了する。
【0038】
上述した学習処理により、上述した構成の入力データが入力された場合に、入力データに含まれる第1の文章と第2の文章との間が段落区切り、節区切り、又は章区切りである可能性、あるいは、区切りではない可能性を示す出力値を出力する学習モデル12aが生成される。よって、情報処理装置10は、学習モデル12aを用いることにより、上述した入力データに含まれる第1の文章と第2の文章との関係が、段落区切り、節区切り、又は章区切りであるか、あるいは、区切りではないかに関する情報(各関係に対する確信度)を取得できる。なお、上述した処理において、ステップS11~S24による訓練データの生成処理と、ステップS25~S27による学習モデル12aの生成処理とは、各別の装置で行われてもよい。学習モデル12aは、事前学習済みのモデルであり、上述した学習処理によってファインチューニングすることにより、本実施形態の学習モデル12aが構築できる。
【0039】
以下に、本実施形態の情報処理装置10において、複数の文を有する文章中で前後に連続する各文の関係を推定する処理について説明する。
図5は各文の関係の推定処理手順の一例を示すフローチャート、
図6は推定処理の説明図、
図7は画面例を示す説明図である。なお、本実施形態では、各文の関係として段落、節、及び章の切れ目を推定する。
【0040】
情報処理装置10の制御部11は、処理対象の文章のデータを取得する(S31)。処理対象の文章のデータは、例えばネットワーク経由又は可搬型記憶媒体10a経由で取得して記憶部12に記憶されているものとし、ここでは、制御部11は、記憶部12に記憶してある文章のデータを読み出す。
図6Aは処理対象の文章(処理前の文章)の例を示しており、処理対象の文章は、複数の文を含み、改行、段落区切り、節区切り、章区切り等が挿入されていないプレーンな文章である。なお、処理対象の文章は一部に改行等が挿入されていてもよい。また、処理対象の文章のデータは、例えば発話者が発した音声データに対して音声認識処理を行うことによって生成された発話内容のテキストデータであってもよい。
【0041】
制御部11は、取得した文章に対して、
図4中のステップS12~S16と同じ処理を行う(S32~S36)。具体的には、制御部11は、文章から第1の文を抽出し(S32)、第1の文をトークナイザ12bを用いてトークンに分割し(S33)、各トークンを、第1の文の末尾から順に抽出して、第1の文章用のトークンとして入力データに挿入する(S34)。ここでも、制御部11は、文の関係を推定するために学習モデル12aに入力する入力データとして、先頭にCLSトークンを、中央位置及び末尾にSEPトークンをそれぞれ挿入(固定)し、第1の文を分割したトークンを、CLSトークンと中央位置のSEPトークンとの間に挿入する。そして、制御部11は、第1の文章用のトークンに空き領域があるか否かを判断し(S35)、空き領域があると判断した場合(S35:YES)、ステップS32で抽出した第1の文の前の文(第3の文)を抽出し(S36)、抽出した第3の文に対して、ステップS33~S34の処理を実行する。これにより、処理対象の文章から抽出された第1の文と、第1の文のみでは第1の文章用のトークンを満たせない場合には第1の文の前の第3の文とを第1の文章として含む入力データを生成できる。ここでも、第1の文の前の文がない場合、制御部11は、ステップS35~S36の処理をスキップしてもよく、第1の文章用のトークンに空き領域が生じた場合、空き領域のままとしてもよく、空き領域に空白を示す特殊トークンを挿入してもよい。
【0042】
第1の文章用のトークンに空き領域がないと判断した場合(S35:NO)、制御部11は、
図4中のステップS18~S22と同じ処理を行う(S37~S41)。具体的には、制御部11は、第1の文の次の第2の文を抽出し(S37)、第2の文をトークナイザ12bを用いてトークンに分割し(S38)、各トークンを、第2の文の先頭から順に抽出して、第2の文章用のトークンとして入力データに挿入する(S39)。ここでは、制御部11は、第2の文を分割したトークンを、入力データにおける2つのSEPトークンの間に挿入する。そして、制御部11は、第2の文章用のトークンに空き領域があるか否かを判断し(S40)、空き領域があると判断した場合(S40:YES)、ステップS37で抽出した第2の文の次の文(第4の文)を抽出し(S41)、抽出した第4の文に対して、ステップS38~S39の処理を実行する。これにより、処理対象の文章から抽出された第2の文と、第2の文のみでは第2の文章用のトークンを満たせない場合には第2の文の次の第4の文とを第2の文章として含む入力データを生成できる。ここでも、第2の文の次の文がない場合、制御部11は、ステップS40~S41の処理をスキップしてもよく、第2の文章用のトークンに空き領域が生じた場合、空き領域のままとしてもよく、空き領域に空白を示す特殊トークンを挿入してもよい。
【0043】
第2の文章用のトークンに空き領域がないと判断した場合(S40:NO)、制御部11は、先頭にCLSトークンを、中央位置及び末尾にSEPトークンをそれぞれ固定した上で、ステップS34で挿入した第1の文章用のトークンと、ステップS39で挿入した第2の文章用のトークンとを含む入力データに基づいて、入力データに含まれる第1の文と第2の文との間の区切りを推定する(S42)。具体的には、制御部11は、生成した入力データを学習モデル12aに入力し、学習モデル12aの各出力ノードからの出力値を取得する。制御部11は、取得した出力値から、最大の出力値を出力した出力ノードを特定し、特定した出力ノードに対応付けられている区切りを、ここでの第1の文及び第2の文の区切りに特定する。
【0044】
制御部11は、推定した結果を記憶部12に記憶する(S43)。例えば、制御部11は、処理対象の文章から抽出した各文に対して識別情報(例えば文ID)を付与しており、例えば第2の文の文IDに対応付けて、推定結果の区切りを記憶部12に記憶する。制御部11は、ステップS31で取得した文章において、上述した推定処理を実行していない未処理の文があるか否かを判断する(S44)。未処理の文があると判断した場合(S44:YES)、制御部11は、ステップS32の処理に戻り、未処理の文についてステップS32~S43の処理を行う。なお、ここでのステップS32で、制御部11は、直近のステップS37で抽出した第2の文を、第1の文として抽出する。これにより、直近の推定処理における第2の文が、次の推定処理における第1の文となり、次の推定処理において、この第1の文と、この第1の文の次の第2の文との関係が推定される。
【0045】
制御部11は、未処理の文がないと判断するまでステップS32~S44の処理を繰り返し、未処理の文がないと判断した場合(S44:NO)、ステップS43で記憶した各文に対する推定結果を反映させた文章を作成する(S45)。
図6Bは推定結果を反映させた文章の例を示しており、制御部11は、
図6Aに示すような処理対象の文章から、各文に対する推定処理の結果に基づいて、
図6Bに示すような文章を作成する。
図6Bに示す文章では、例えば、段落区切りの箇所に改行が挿入され、段落区切りの直後の文の先頭に1文字分の空白が挿入される。また、章区切りの箇所には、第1章、第2章等の章番号が挿入され、節区切りの箇所には、第1節、第2節等の節番号が挿入される。なお、節番号の前には1文字分の空白が挿入されていてもよい。
【0046】
制御部11は、推定結果を反映させた文章を表示部15に表示する(S46)。例えば制御部11は、
図7Aに示すような画面を表示部15に表示し、情報処理装置10のユーザに提示する。
図7Aに示す画面は、推定結果を反映させた文章を表示し、表示中の文章に対して実行可能な処理の操作ボタンとして、保存ボタン、送信ボタン、及び印刷ボタンが設けられている。制御部11は、保存ボタンが操作された場合、表示中の文章を記憶部12に記憶し、送信ボタンが操作された場合、表示中の文章を指定された装置へ送信し、印刷ボタンが操作された場合、情報処理装置10が通信可能なプリンタへ送信して印刷処理を実行する。これにより、ユーザが所望する処理によって、推定結果が反映された文章を提供することができる。
【0047】
また、
図7Aに示す画面は、表示中の文章に対して、段落区切り、節区切り、又は章区切りの修正を受け付けるように構成されており、編集ボタンが設けられている。編集ボタンが操作された場合、制御部11は、
図7Bに示すような編集画面を表示部15に表示する。
図7Bに示す編集画面は、文章中の段落区切り、節区切り、及び章区切りの箇所に下線が付けられており、下線の箇所に対して選択操作(例えば右クリック)が行われた場合、段落区切り、節区切り、章区切り、又は区切りなしのいずれかを選択できるメニュー欄が表示される。メニュー欄を介していずれかが選択された場合、制御部11は、選択された内容に従って、
図7Bの編集画面における文章中の段落区切り、節区切り、及び章区切りを更新する。また、編集画面における文章中の任意の読点の箇所に対して選択操作(例えば右クリック)が行われた場合(
図7B中の矢印A)、同様のメニュー欄が表示され、メニュー欄を介して、区切りなしと判断された箇所に対して、段落区切り、節区切り、又は章区切りへの修正指示を受け付けることができる。編集画面は、編集処理の終了を指示するための編集終了ボタンを有しており、編集終了ボタンが操作された場合、制御部11は、編集画面の表示を終了し、
図7Aの画面の表示の戻り、編集後の文章を表示する。
【0048】
上述した処理により、複数の文を有するプレーンな文章中の各文の間に、段落区切り、節区切り、及び章区切りを挿入することができ、読み易く理解し易い文章を提供することが可能となる。また、例えば文章中の重要箇所を抽出する場合に、重要文と判定された文と、その前後の文との関係を推定することにより、重要文と共に抽出すべき文を特定することが可能となる。また、本実施形態では、学習モデル12aの入力データにおいて、2つの文章を区切るためのSEPトークンが、入力データの略中央位置に固定されるので、学習モデル12aに入力される2つの文章が同程度の分量となる。BERTを用いて文章を解析する従来の技術においても、2つの文章の間にSEPトークンが挿入された入力データがBERTに入力される。しかし、2つの文章の入力長は考慮されていないため、前側の文章が長い場合には、入力データにおいて前側の文章が占める割合が大きくなり、後側の文章が挿入される領域が少なくなる。このような入力データでは、後側の文章について、文章解析結果に寄与する文脈情報を十分に学習できる量を入力できない場合が生じ、このような入力データを用いた場合、適切な文章解析を実現できない場合が生じる。これに対して、本実施形態では、学習モデル12aに入力される2つの文章の文章長(入力長)のバランスを揃えることにより、2つの文章の文脈情報を最大限に活用した文章解析処理を実現できるので、各文の間の区切りを適切に推定できる。
【0049】
本実施形態では、第1の文から分割されたトークンの数が、入力データにおける第1の文章用のトークンの数よりも多い場合、第1の文の末尾からトークンを抽出して第1の文章用のトークンとして入力データに挿入する構成であるが、この構成に限定されない。例えば、第1の文の先頭からトークンを抽出して第1の文章用のトークンとして入力データに挿入してもよい。このような構成とした場合、第1の文及び第2の文のそれぞれの先頭箇所のデータ(文章)を用いて2つの文の関係を推定することができる。また、第2の文から分割されたトークンの数が、入力データにおける第2の文章用のトークンの数よりも多い場合、第2の文の先頭からトークンを抽出して第2の文章用のトークンとして入力データに挿入する構成のほかに、第2の文の末尾からトークンを抽出して第2の文章用のトークンとして入力データに挿入する構成でもよい。
【0050】
本実施形態において、処理対象の文章として、発話者が発した音声データから生成された発話内容のテキストデータを用いた場合、例えば講演会等で録音された音声データから、段落区切り、節区切り、及び章区切りが挿入された文章を生成することができ、読み易く理解し易い議事録等の作成が可能となる。
【0051】
図8は学習モデル12aの変形例を示す説明図である。本実施形態の学習モデル12aは、入力データに含まれる第1の文と第2の文との間が段落区切り、節区切り、章区切り、又は区切りなしのいずれであるかを判別する構成であるが、このような構成に限定されない。例えば学習モデル12aは、
図8に示すように、入力データに含まれる第1の文と第2の文との間が段落区切りであるか、段落区切りでないかを判別するように構成されてもよい。
図8の例では、学習モデル12aの出力層は2つの出力ノードを有し、出力ノード0から、第1の文と第2の文との間が段落区切りであると判別すべき確率(確信度)を出力し、出力ノード1から、段落区切りでないと判別すべき確率(確信度)を出力する。
図8に示す構成でも、各出力ノードからの出力値は、例えば0~1の値であり、各出力ノードから出力された確率の合計が1.0となる。なお、
図8に示す構成の場合、例えば、段落区切りの判別用、節区切りの判別用、章区切りの判別用にそれぞれ学習モデル12aを生成してもよい。
【0052】
(実施形態2)
本実施形態では、学習モデル12aの入力データに含める第1の文章及び第2の文章において、所定の語句を入力対象から除外する情報処理装置について説明する。本実施形態の情報処理装置は、
図1に示す実施形態1の情報処理装置10と同様の構成を有するので、構成についての説明は省略する。なお、本実施形態の情報処理装置10において、記憶部12は、学習モデル12aの入力データに含めない除外対象(フィルタ対象)の語句(文字列)が登録してある除外対象DBを記憶している。
【0053】
図9は除外対象DBのレコードレイアウトの一例を示す説明図である。除外対象DBは、例えば
図9に示すように、除外対象とする語句の種別と、各種別の語句とを対応付けて記憶する。
図9の例では、除外対象として、助詞の語句と、句点と、名詞の語句とが登録されているが、これらに限定されない。例えば、1トークンに分割された場合に意味をなさない語句(文字列)、学習モデル12aが2つの文章の関係を推定する際の寄与度が低い語句(文字列)、学習モデル12aが効果的な学習を実行するための寄与度が低い語句(文字列)等を除外対象に登録することができる。
【0054】
図10は実施形態2の学習モデル12aの生成処理手順の一例を示すフローチャートである。
図10に示す処理は、
図4に示す処理において、ステップS14の代わりにステップS51~S54を追加し、ステップS20の代わりにステップS55~S58を追加したものである。
図4と同じステップについては説明を省略する。なお、
図10では、
図4中のステップS11~S12,S17~S18,S23~S27の図示を省略している。
【0055】
本実施形態の情報処理装置10において制御部11は、
図4中のステップS11~S13の処理を実行する。そして、制御部11は、第1の文を分割したトークンを、第1の文の末尾から1つ抽出し(S51)、抽出したトークンが除外対象であるか否かを判断する(S52)。ここでは、制御部11は、抽出したトークンの語句(文字列)が除外対象DBに記憶してあるか否かを判断する。除外対象であると判断した場合(S52:YES)、制御部11は、ステップS51の処理に戻り、次の1トークンを抽出し(S51)、抽出したトークンが除外対象であるか否かを判断する(S52)。除外対象でないと判断した場合(S52:NO)、制御部11は、抽出したトークンを第1の文章用のトークンとして入力データに挿入する(S53)。なお、制御部11は、CLSトークンと中央位置のSEPトークンとの間において、第1の文の末尾側のトークンがSEPトークン側となるように、除外対象ではないトークンを詰めて挿入する。制御部11は、ステップS13で分割したトークンにおいて、抽出されていない未処理のトークンがあるか否かを判断する(S54)。未処理のトークンがあると判断した場合(S54:YES)、制御部11は、ステップS51の処理に戻る。未処理のトークンがないと判断した場合(S54:NO)、制御部11は、ステップS15の処理に移行する。そして、第1の文章用のトークンに空き領域がある場合、第1の文の前の文をトークンに分割し、第1の文章用のトークンに挿入する。
【0056】
同様に、制御部11は、ステップS19の処理後、第2の文を分割したトークンを、第2の文の先頭から1つ抽出し(S55)、抽出したトークンが除外対象であるか否かを判断する(S56)。除外対象であると判断した場合(S56:YES)、制御部11は、ステップS55の処理に戻り、次の1トークンを抽出し(S55)、抽出したトークンが除外対象であるか否かを判断する(S56)。除外対象でないと判断した場合(S56:NO)、制御部11は、抽出したトークンを第2の文章用のトークンとして入力データに挿入する(S57)。なお、制御部11は、2つのSEPトークンの間において、第2の文の先頭側のトークンが中央位置のSEPトークン側となるように、除外対象ではないトークンを詰めて挿入する。制御部11は、ステップS19で分割したトークンにおいて、抽出されていない未処理のトークンがあるか否かを判断する(S58)。未処理のトークンがあると判断した場合(S58:YES)、制御部11は、ステップS55の処理に戻る。未処理のトークンがないと判断した場合(S58:NO)、制御部11は、ステップS21の処理に移行する。そして、第2の文章用のトークンに空き領域がある場合、第2の文の次の文をトークンに分割し、第2の文章用のトークンに挿入する。
【0057】
上述した処理により、本実施形態では、予め除外対象DBに登録されている語句を、学習モデル12aの学習に用いる入力データから除外することができる。よって、学習モデル12aを用いた推定処理に対する寄与度が低い語句(文字列)を除外対象に登録しておくことにより、推定処理に対する寄与度が高い語句を用いた訓練データを生成することができる。このような訓練データを用いることにより、学習モデル12aの学習を効率よく実行することが可能となる。
【0058】
図11は実施形態2の推定処理手順の一例を示すフローチャートである。
図11に示す処理は、
図5に示す処理において、ステップS34の代わりにステップS61~S64を追加し、ステップS39の代わりにステップS65~S68を追加したものである。
図5と同じステップについては説明を省略する。なお、
図11では、
図5中のステップS31~S32,S42~S46の図示を省略している。
【0059】
本実施形態の情報処理装置10では、制御部11は、
図5中のステップS31~S33の処理を実行する。そして、制御部11は、
図10中のステップS51~S54と同じ処理を行う(S61~S64)。具体的には、制御部11は、第1の文を分割したトークンを、第1の文の末尾から1つ抽出し(S61)、抽出したトークンが除外対象であるか否かを判断する(S62)。制御部11は、抽出したトークンが除外対象であると判断した場合(S62:YES)、ステップS61の処理に戻り、除外対象でないと判断した場合(S62:NO)、抽出したトークンを第1の文章用のトークンとして入力データに挿入する(S63)。そして、制御部11は、ステップS33で分割したトークンにおいて、抽出されていない未処理のトークンがあるか否かを判断し(S64)、未処理のトークンがあると判断した場合(S64:YES)、ステップS61の処理に戻り、未処理のトークンがないと判断した場合(S64:NO)、ステップS35の処理に移行する。
【0060】
同様に、制御部11は、ステップS38の処理後、
図10中のステップS55~S58と同じ処理を行う(S65~S68)。具体的には、制御部11は、第2の文を分割したトークンを、第2の文の先頭から1つ抽出し(S65)、抽出したトークンが除外対象であるか否かを判断する(S66)。制御部11は、抽出したトークンが除外対象であると判断した場合(S66:YES)、ステップS65の処理に戻り、除外対象でないと判断した場合(S66:NO)、抽出したトークンを第2の文章用のトークンとして入力データに挿入する(S67)。そして、制御部11は、ステップS38で分割したトークンにおいて、抽出されていない未処理のトークンがあるか否かを判断し(S68)、未処理のトークンがあると判断した場合(S68:YES)、ステップS65の処理に戻り、未処理のトークンがないと判断した場合(S68:NO)、ステップS40の処理に移行する。
【0061】
上述した処理により、本実施形態では、学習モデル12aを用いた推定処理において、除外対象DBに登録されている語句を、学習モデル12aに入力する入力データから除外することができる。よって、学習モデル12aを用いた推定処理に対する寄与度が低い語句(文字列)を除外対象に登録しておくことにより、推定処理に対する寄与度が高い語句を用いた推定処理の実行が可能となる。これにより、学習モデル12aを用いて精度の高い推定処理の実行が可能となる。
【0062】
(実施形態3)
本実施形態では、学習モデル12aを用いて文章中の各文の関係(段落区切り、節区切り、及び章区切り)を推定した結果に基づいて、各文の関係を特定する情報処理装置について説明する。本実施形態の情報処理装置は、
図1に示す実施形態1の情報処理装置10と同様の構成を有するので、構成についての説明は省略する。なお、本実施形態では、学習モデル12aの生成は、
図4と同じ処理によって実現できる。
【0063】
図12は実施形態3の推定処理手順の一例を示すフローチャートである。
図12に示す処理は、
図5に示す処理において、ステップS42とステップS43との間にステップS71~S72を追加したものである。
図5と同じステップについては説明を省略する。なお、
図12では、
図5中のステップS31~S41,S44~S46の図示を省略している。
【0064】
本実施形態の情報処理装置10では、制御部11は、
図5中のステップS31~S42の処理を実行する。これにより、処理対象の文章において、ある1組の第1の文及び第2の文の組み合わせに対して2つの文の間の関係(段落区切り、節区切り、章区切り、又は区切りなし)が推定される。そして、制御部11は、これまでに各文に対して推定した結果を採用するか否かを、予め設定されたルールに従って判定する(S71)。例えば、文章において、段落区切り、節区切り、及び章区切りの各区切りが連続して出現することは少ない。段落区切りが連続して出現する場合、1文のみの段落が頻発し、このような文章は適切でない可能性が高い。そこで、1つの段落には所定数(例えば3つ)以上の文が含まれるというルールを設定することが考えられる。このルールに従うと、制御部11は、ステップS42の推定結果が段落区切りであった場合に、ここでの推定箇所の前の所定数(例えば3つ)の文に、段落区切りと推定された他の文があるか否かを判定し、判定結果に応じて推定結果を採用するか否かを判定するように構成できる。具体的には、制御部11は、段落区切りと推定された他の文があると判定した場合、ここでの推定箇所の文と、段落区切りと推定された他の文とのいずれかに対する推定結果を採用し、他方に対する推定結果を採用しないと判定する。なお、推定結果を採用する文は、出現順が先の文であってもよく、後の文であってもよく、又は、段落区切りと推定された場合に学習モデル12aが出力した出力値(推定結果である段落区切りに対する確信度)が大きい方の文であってもよい。また、制御部11は、後述する実施形態5の学習モデル12cのように、2つの文を入力した場合に、2つの文の関係が含意関係、矛盾関係、連続関係等のいずれであるかを判別する学習モデル12cを用いて、2つの文の関係を判別し、判別結果に基づいて、いずれの文に対する推定結果を採用するかを判定してもよい。
【0065】
また、1つの節又は章には複数の段落が含まれるというルールを設定することも考えられる。このルールに従うと、制御部11は、ステップS42の推定結果が節区切り又は章区切りであった場合に、ここでの推定箇所の直前の1文と更に前の1文との間が節区切り又は章区切りと推定されたか否かを判定し、判定結果に応じて推定結果を採用するか否かを判定するように構成できる。具体的には、制御部11は、直前の1文と更に前の1文との間が節区切り又は章区切りと推定された場合、ここでの推定箇所の文と、直前の文とのいずれかに対する推定結果を採用し、他方に対する推定結果を採用しないと判定する。ここでも、推定結果を採用する文は、出現順が先の文であってもよく、後の文であってもよく、あるいは、節区切り又は章区切りと推定された場合に学習モデル12aが出力した出力値(推定結果に対する確信度)が大きい方の文であってもよい。
【0066】
上述した判定処理では、例えば近傍の複数の文において各文の間に対する推定結果を考慮して、いずれの文の間を区切りとするかを判定していた。このほかに、他の文の間に対する推定結果を考慮せずに、各文の間毎に、推定結果を採用するか否かを判定してもよい。例えば、各文の間に対する推定結果を推定した場合に学習モデル12aが出力した出力値(推定結果に対する確信度)が所定閾値(例えば0.5)以上であるか否かを判定し、所定閾値以上である場合に推定結果を採用し、所定閾値未満である場合に推定結果を採用しないように構成されていてもよい。このとき、例えば文章中の各文に対して一旦推定処理を実行し、各推定処理で得られた推定結果に対する確信度の平均値を算出し、確信度の平均値を所定閾値に設定してもよく、各推定結果に対する確信度の上位20%の位置となる確信度を特定し、特定した確信度を所定閾値に設定してもよい。
【0067】
制御部11は、上述した処理により、これまでの推定結果を採用すると判断した場合(S71:YES)、ステップS43の処理に移行する。この場合、制御部11は、ステップS42で推定した結果を記憶部12に記憶し、これは実施形態1と同様の処理となる。一方、制御部11は、これまでの推定結果を採用しないと判定した場合(S71:NO)、上述した処理によって推定結果を採用しないと判定した箇所(文の間)に対する推定結果を変更する(S72)。例えば、制御部11は、段落区切りと推定された箇所に対する推定結果を区切りなしに変更する。また制御部11は、区切りなしに変更するほかに、節区切り又は章区切りに変更してもよく、周辺の各文に対する推定結果に応じた内容に変更する。なお、制御部11は、推定結果を採用すると判定した箇所に対する推定結果を維持する。上述したように、所定のルールを予め登録しておくことにより、制御部11は、ルールに従って、各文に対する推定結果を採用するか否かを特定できる。
【0068】
上述した処理により、本実施形態では、学習モデル12aを用いて推定した、文章中の各文の間の関係を適切に修正することが可能となる。例えば、連続する箇所(各文の間)に対して同じ区切りと推定された場合に、各箇所の関係を、予め設定されているルールを満たすように適切に修正することができる。よって、段落区切り、節区切り、及び章区切りがより適切に特定された文章を作成することができる。
【0069】
本実施形態の構成は、上述した実施形態1~2の情報処理装置10に適用することができ、実施形態1~2の情報処理装置10に適用した場合であっても同様の処理の実行が可能であり、同様の効果が得られる。また、本実施形態においても、上述した実施形態1~2で適宜説明した変形例の適用が可能である。
【0070】
(実施形態4)
本実施形態では、文章の種類毎に学習モデル12aを用意しておき、処理対象の文章の種類に応じた学習モデル12aを用いて文章中の各文の関係を推定する情報処理装置について説明する。本実施形態の情報処理装置は、
図1に示す実施形態1の情報処理装置10と同様の構成を有するので、構成についての説明は省略する。なお、本実施形態では、複数の学習モデル12aが記憶部12に記憶されており、各学習モデル12aは、処理対象の文章の種類に対応付けて記憶されている。なお、それぞれの学習モデル12aは、各種類の文章に基づいて、
図4と同じ処理によって生成できる。
【0071】
図13は実施形態4の推定処理手順の一例を示すフローチャートである。
図13に示す処理は、
図5に示す処理において、ステップS31とステップS32との間にステップS81~S82を追加したものである。
図5と同じステップについては説明を省略する。なお、
図13では
図5中のステップS44~S46の図示を省略している。
【0072】
本実施形態の情報処理装置10では、制御部11は、
図5中のステップS31の処理を実行する。そして、制御部11は、取得した文章の種類を判別する(S81)。例えば、制御部11は、法律文書、レシピ文書(仕様書等)、金融文書(有価証券報告書、決算短信、アナリストレポート等)、論文、Webで公開されている各種の文書、医療文書(診断書、主治医による意見書等)等のいずれであるかを特定する。判別対象の種類は、予め用意された学習モデル12aに対応付けられている種類である。具体的には、上述した各種類に対応付けて、各種類の文章のフォーマットを記憶部12に記憶しておき、制御部11は、取得した文章と、各種類の文章のフォーマットとを比較することによって、取得した文章の種類を特定する。また、各種類の文章における出現回数が多い用語を記憶部12に記憶しておき、制御部11は、取得した文章中の出現回数が所定回数以上の用語を特定し、特定した用語に対応する種類を特定してもよい。
【0073】
制御部11は、特定した文章の種類に応じた学習モデル12aを記憶部12から読み出し(S82)、ステップS32の処理に移行する。本実施形態では、制御部11は、ステップS42で、ステップS82で読み出した学習モデル12aを用いて、入力データに含まれる第1の文と第2の文との間の区切りを推定する(S42)。なお、本実施形態では、各文の間の関係を推定する処理に用いる学習モデル12aが、処理対象の文章の種類に応じて異なること以外は、実施形態1と同様であるので説明を省略する。
【0074】
本実施形態の構成は、上述した実施形態1~3の情報処理装置10に適用することができ、実施形態1~3の情報処理装置10に適用した場合であっても同様の処理の実行が可能であり、同様の効果が得られる。また、本実施形態においても、上述した実施形態1~3で適宜説明した変形例の適用が可能である。
【0075】
(実施形態5)
上述した実施形態1~4の情報処理装置10は、文章中の各文の間の関係として段落区切り、節区切り、章区切り、及びその他(区切りなし)のいずれかを推定する構成である。本実施形態では、文章中の各文の間の関係として、含意関係、矛盾関係、連続関係等のいずれかを予測する情報処理装置について説明する。本実施形態の情報処理装置は、
図1に示す実施形態1の情報処理装置10と同様の構成を有するので、構成についての説明は省略する。なお、本実施形態では、学習モデル12aのほかに、又は、学習モデル12aの代わりに、学習モデル12cが記憶部12に記憶されている。
【0076】
図14は学習モデル12cの構成例を示す説明図である。本実施形態の学習モデル12cは、実施形態1~4における学習モデル12aと同様の構成を有しており、学習モデル12cに入力される入力データの構成は、学習モデル12aに入力される入力データと同じである。学習モデル12cの出力層は、例えば4つの出力ノードを有しており、
図14Aの例では、出力ノード0から、入力データに含まれる第1の文章及び第2の文章の関係が含意関係であると判別すべき確率(確信度)を出力し、出力ノード1から、矛盾関係であると判別すべき確率(確信度)を出力し、出力ノード2から、連続関係であると判別すべき確率(確信度)を出力し、出力ノード3から、その他であると判別すべき確率(確信度)を出力する。各出力ノードからの出力値は、例えば0~1の値であり、各出力ノードから出力された確率の合計が1.0(100%)となる。学習モデル12cの出力層は、上述したような複数の出力ノードを有する代わりに、確信度が最大の関係を示す情報を出力する1つの出力ノードを有する構成でもよい。また、学習モデル12cで予測する関係は、上述した関係に限定されず、順接、逆接、並立、対比等の関係を含んでもよく、予測対象の数の出力ノードを有する構成とすることができる。
【0077】
学習モデル12cは、
図4と同様の処理によって生成できる。なお、学習モデル12cの学習に用いる訓練データは、例えば、前後に連続する2つの文の関係が予め決定されている文章、又は、各関係を判別できる文言(例えば接続詞)が使用されている文章から生成できる。例えば、このような文章から、前後に連続する2つの文を抽出し、抽出した2つの文から入力データを生成し、生成した入力データに対して、この2つの文の関係を特定し、2つの文の関係が含意関係、矛盾関係、又は連続関係であること、あるいは、それ以外の関係であることを示す正解ラベルを付与して生成される。具体的には、
図4中のステップS17で、情報処理装置10の制御部11は、第1の文と第2の文との間の区切りを特定する代わりに、第1の文と第2の文との関係を含意関係、矛盾関係、連続関係、それ以外の中から特定する。これにより、上述したような訓練データを生成することができ、このような訓練データを用いて学習を行うことにより、入力データが入力された場合に、入力データに含まれる第1の文章及び第2の文章の関係が、含意関係、矛盾関係、連続関係、又はそれ以外のいずれであるかを予測し、予測結果を出力する学習モデル12cが得られる。学習モデル12cの学習も他の学習装置で行われてもよく、他の学習装置で学習が行われて生成された学習済みの学習モデル12cは、ネットワーク経由又は可搬型記憶媒体10a経由で学習装置から情報処理装置10にダウンロードされて記憶部12に記憶される。
【0078】
本実施形態の情報処理装置10は、
図5と同様の処理を実行することによって、学習モデル12cを用いて、文章中の各文の間の関係を推定することができ、推定結果を反映させた文章を提供することができる。なお、
図5中のステップS42で、制御部11は、ステップS32~S41によって生成した入力データを学習モデル12cに入力し、学習モデル12cの各出力ノードからの出力値に基づいて、入力データに含まれる第1の文と第2の文との関係を推定する。ここでは、制御部11は、第1の文と第2の文との間の区切りを特定する代わりに、第1の文と第2の文との関係として、含意関係、矛盾関係、連続関係、その他のいずれかを推定する。また、ステップS45で、制御部11は、処理対象の文章において、各文の間に、推定した関係に応じたマーク又はメッセージ等を付与することにより、推定結果を反映させた文章を作成する。このような処理により、本実施形態では、文章中の連続する各文の関係を推定して提示することができるので、各文の文脈を理解し易い文章の提供が可能となる。
【0079】
本実施形態において、文章中の各文の関係を推定する際に用いる学習モデルは、
図2Aに示す学習モデル12aの構成と、
図14Aに示す学習モデル12cの構成とを組み合わせて、
図14Bに示すような構成としてもよい。
図14Bは学習モデル12dの構成例を示しており、
図14Bに示す学習モデル12dの出力層は、7つの出力ノードを有しており、出力ノード0から、入力データに含まれる第1の文章及び第2の文章の間が段落区切りであると判別すべき確率を出力し、出力ノード1から、節区切りであると判別すべき確率を出力し、出力ノード2から、章区切りであると判別すべき確率を出力し、出力ノード3から、第1の文章及び第2の文章の関係が含意関係であると判別すべき確率を出力し、出力ノード4から、矛盾関係であると判別すべき確率を出力し、出力ノード5から、連続関係であると判別すべき確率を出力し、出力ノード6から、その他であると判別すべき確率を出力する。学習モデル12dにおいても、各出力ノードからの出力値は、例えば0~1の値であり、各出力ノードから出力された確率の合計が1.0となる。このような構成の学習モデル12dを用いた場合、入力データに含まれる第1の文及び第2の文の関係が、段落区切り、節区切り、又は章区切りであるか、あるいは、含意関係、矛盾関係、又は連続関係であるかをまとめて推定することができる。
【0080】
本実施形態の構成は、上述した実施形態1~4の情報処理装置10に適用することができ、実施形態1~4の情報処理装置10に適用した場合であっても同様の処理の実行が可能であり、同様の効果が得られる。また、本実施形態においても、上述した実施形態1~4で適宜説明した変形例の適用が可能である。
【0081】
上述した実施形態1~5では、学習モデル12aの入力データは、日本語で記載された文章としたが、この構成に限定されない。例えば、英語で記載された文章を入力データとしてもよく、この場合、学習モデル12aを、英語に対応したBERTで構成すればよい。よって、英語等の外国語で記載された文章についても、段落区切り、節区切り、章区切りの挿入が可能であり、また、連続する各文の関係を提示できる文章の提供が可能となる。
【0082】
各実施形態に記載した事項は相互に組み合わせることが可能である。また、特許請求の範囲に記載した独立請求項及び従属請求項は、引用形式に関わらず全てのあらゆる組み合わせにおいて、相互に組み合わせることが可能である。さらに、特許請求の範囲には他の2以上のクレームを引用するクレームを記載する形式(マルチクレーム形式)を用いているが、これに限るものではない。マルチクレームを少なくとも一つ引用するマルチクレーム(マルチマルチクレーム)を記載する形式を用いて記載しても良い。
【0083】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0084】
10 情報処理装置
11 制御部
12 記憶部
13 通信部
14 入力部
15 表示部
12a 学習モデル
12b トークナイザ