(57)【要約】【課題】表形式データの表のキャプションを精度よく生成することができるようにする。【解決手段】セル符号化部７２が、表形式データについて、表の各セルに対し、該セルに記載されたテキスト情報に含まれるトークンの系列を入力として、セルを連続値ベクトルに符号化する。行符号化部７４が、表形式データについて、表の各行に対し、該行に含まれる各セルの連続値ベクトルを入力として、行を連続値ベクトルに符号化する。列符号化部７６が、表形式データについて、表の各列に対し、該列に含まれる各セルの連続値ベクトルを入力として、列を連続値ベクトルに符号化する。表符号化部７８が、表形式データについて、各行及び各列の連続値ベクトルの系列を入力として、表を連続値ベクトルに符号化する。表キャプション生成部８０が、表符号化部７８が出力した連続値ベクトルと、生成器とに基づいて、表のキャプションを生成する。【選択図】図４
2018045625.tif 000002
【特許請求の範囲】
【請求項１】
セルの行列として記述された表形式データと表のキャプションを表す正解ラベルとの組の集合である訓練データ集合に含まれる前記表形式データの各々について、表の各セルに対し、該セルに記載されたテキスト情報に含まれるトークンの系列を入力として、セルを連続値ベクトルに符号化するセル符号化部と、
前記訓練データ集合に含まれる前記表形式データの各々について、表の各行に対し、前記セル符号化部が出力した、該行に含まれるセルの連続値ベクトルの系列を入力として、行を連続値ベクトルに符号化する行符号化部と、
前記訓練データ集合に含まれる前記表形式データの各々について、表の各列に対し、前記セル符号化部が出力した、該列に含まれるセルの連続値ベクトルの系列を入力として、列を連続値ベクトルに符号化する列符号化部と、
前記訓練データ集合に含まれる前記表形式データの各々について、前記行符号化部および前記列符号化部が出力した各行及び各列の連続値ベクトルの系列を入力として、表を連続値ベクトルに符号化する表符号化部と、
前記訓練データ集合に含まれる前記表形式データの各々について前記表符号化部が出力した連続値ベクトルと、前記訓練データ集合に含まれる前記正解ラベルとに基づいて、表形式データの表のキャプションを生成するための生成器を学習する学習部と、
を有することを特徴とする表キャプション生成器学習装置。
【請求項２】
セルの行列として記述された表形式データについて、表の各セルに対し、該セルに記載されたテキスト情報に含まれるトークンの系列を入力として、セルを連続値ベクトルに符号化するセル符号化部と、
前記表形式データについて、表の各行に対し、前記セル符号化部が出力した、該行に含まれるセルの連続値ベクトルの系列を入力として、行を連続値ベクトルに符号化する行符号化部と、
前記表形式データについて、表の各列に対し、前記セル符号化部が出力した、該列に含まれるセルの連続値ベクトルの系列を入力として、列を連続値ベクトルに符号化する列符号化部と、
前記表形式データについて、前記行符号化部および前記列符号化部が出力した各行及び各列の連続値ベクトルの系列を入力として、表を連続値ベクトルに符号化する表符号化部と、
前記表符号化部が出力した連続値ベクトルと、表形式データの表のキャプションを生成するための予め学習された生成器とに基づいて、前記表形式データの表のキャプションを生成する表キャプション生成部と、
を有することを特徴とする表キャプション生成装置。
【請求項３】
前記表キャプション生成部は、前記表符号化部が出力した連続値ベクトルと、表のキャプションの初期トークンとを入力として、前記生成器により、次のトークンを予測すると共に、前記連続値ベクトルを更新し、
前記更新された連続値ベクトルと、前記予測されたトークンとを入力として、前記生成器により、次のトークンを予測すると共に、前記連続値ベクトルを更新することを繰り返し、
前記予測されたトークンの系列を、前記表形式データの表のキャプションとして生成する請求項２記載の表キャプション生成装置。
【請求項４】
セル符号化部が、セルの行列として記述された表形式データと表のキャプションを表す正解ラベルとの組の集合である訓練データ集合に含まれる前記表形式データの各々について、表の各セルに対し、該セルに記載されたテキスト情報に含まれるトークンの系列を入力として、セルを連続値ベクトルに符号化し、
行符号化部が、前記訓練データ集合に含まれる前記表形式データの各々について、表の各行に対し、前記セル符号化部が出力した、該行に含まれるセルの連続値ベクトルの系列を入力として、行を連続値ベクトルに符号化し、
列符号化部が、前記訓練データ集合に含まれる前記表形式データの各々について、表の各列に対し、前記セル符号化部が出力した、該列に含まれるセルの連続値ベクトルの系列を入力として、列を連続値ベクトルに符号化し、
表符号化部が、前記訓練データ集合に含まれる前記表形式データの各々について、前記行符号化部および前記列符号化部が出力した各行及び各列の連続値ベクトルの系列を入力として、表を連続値ベクトルに符号化し、
学習部が、前記訓練データ集合に含まれる前記表形式データの各々について前記表符号化部が出力した連続値ベクトルと、前記訓練データ集合に含まれる前記正解ラベルとに基づいて、表形式データの表のキャプションを生成するための生成器を学習する
ことを特徴とする表キャプション生成器学習方法。
【請求項５】
セル符号化部が、セルの行列として記述された表形式データについて、表の各セルに対し、該セルに記載されたテキスト情報に含まれるトークンの系列を入力として、セルを連続値ベクトルに符号化し、
行符号化部が、前記表形式データについて、表の各行に対し、前記セル符号化部が出力した、該行に含まれるセルの連続値ベクトルの系列を入力として、行を連続値ベクトルに符号化し、
列符号化部が、前記表形式データについて、表の各列に対し、前記セル符号化部が出力した、該列に含まれるセルの連続値ベクトルの系列を入力として、列を連続値ベクトルに符号化し、
表符号化部が、前記表形式データについて、前記行符号化部および前記列符号化部が出力した各行及び各列の連続値ベクトルの系列を入力として、表を連続値ベクトルに符号化し、
表キャプション生成部が、前記表符号化部が出力した連続値ベクトルと、表形式データの表のキャプションを生成するための予め学習された生成器とに基づいて、前記表形式データの表のキャプションを生成する
ことを特徴とする表キャプション生成方法。
【請求項６】
前記表キャプション生成部によって生成することでは、前記表符号化部が出力した連続値ベクトルと、表のキャプションの初期トークンとを入力として、前記生成器により、次のトークンを予測すると共に、前記連続値ベクトルを更新し、
前記更新された連続値ベクトルと、前記予測されたトークンとを入力として、前記生成器により、次のトークンを予測すると共に、前記連続値ベクトルを更新することを繰り返し、
前記予測されたトークンの系列を、前記表形式データの表のキャプションとして生成する請求項５記載の表キャプション生成方法。
【請求項７】
コンピュータを、請求項１に記載の表キャプション生成器学習装置、又は請求項２若しくは請求項３に記載の表キャプション生成装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表形式データの表のキャプションを生成するための表キャプション生成器学習装置、表キャプション生成装置、方法、及びプログラムに関するものである。
【背景技術】
【０００２】
コンピュータ技術の発展により、Web上のHTMLで記述された表データや、表計算ソフトウェアなどで作成されたスプレッドシート上の表データは大量に存在するようになった。しかし、表の内容を適切に表すキャプションは記述されていないものが多い。この表キャプションを表の内容に基づいて生成することができれば、情報検索など幅広いサービスに応用可能な知識が獲得できる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Kelvin Xu, Jimmy Ba, Ryan Kiros, Kyunghyun Cho, Aaron C. Courville, Ruslan Salakhutdinov, Richard S. Zemel, Yoshua Bengio: Show, Attend and Tell: Neural Image Caption Generation with Visual Attention. ICML 2015: 2048-2057.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
画像については、画像の内容に適合したキャプションを生成するための従来手法として、非特許文献１などがこれまで提案されている。
【０００５】
これらの従来手法は、画像の特徴を表すベクトルに符号化し、符号化されたベクトルを入力として画像のキャプションを生成する。しかし、表については画像の様に高精度なキャプションを生成する従来技術は無い。
【０００６】
本発明では、上記事情を鑑みて成されたものであり、入力された表データ全体から、行内のセルの順序、列内の順序表内の行の順序、表内の列の順序を考慮して、精度良く表のキャプションを生成することができる表キャプション生成器学習装置、表キャプション生成装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明に係る表キャプション生成器学習装置は、セルの行列として記述された表形式データと表のキャプションを表す正解ラベルとの組の集合である訓練データ集合に含まれる前記表形式データの各々について、表の各セルに対し、該セルに記載されたテキスト情報に含まれるトークンの系列を入力として、セルを連続値ベクトルに符号化するセル符号化部と、前記訓練データ集合に含まれる前記表形式データの各々について、表の各行に対し、前記セル符号化部が出力した、該行に含まれるセルの連続値ベクトルの系列を入力として、行を連続値ベクトルに符号化する行符号化部と、前記訓練データ集合に含まれる前記表形式データの各々について、表の各列に対し、前記セル符号化部が出力した、該列に含まれるセルの連続値ベクトルの系列を入力として、列を連続値ベクトルに符号化する列符号化部と、前記訓練データ集合に含まれる前記表形式データの各々について、前記行符号化部および前記列符号化部が出力した各行及び各列の連続値ベクトルの系列を入力として、表を連続値ベクトルに符号化する表符号化部と、前記訓練データ集合に含まれる前記表形式データの各々について前記表符号化部が出力した連続値ベクトルと、前記訓練データ集合に含まれる前記正解ラベルとに基づいて、表形式データの表のキャプションを生成するための生成器を学習する学習部とを含んで構成されている。
【０００８】
本発明に係る表キャプション生成器学習方法は、セル符号化部が、セルの行列として記述された表形式データと表のキャプションを表す正解ラベルとの組の集合である訓練データ集合に含まれる前記表形式データの各々について、表の各セルに対し、該セルに記載されたテキスト情報に含まれるトークンの系列を入力として、セルを連続値ベクトルに符号化し、行符号化部が、前記訓練データ集合に含まれる前記表形式データの各々について、表の各行に対し、前記セル符号化部が出力した、該行に含まれるセルの連続値ベクトルの系列を入力として、行を連続値ベクトルに符号化し、列符号化部が、前記訓練データ集合に含まれる前記表形式データの各々について、表の各列に対し、前記セル符号化部が出力した、該列に含まれるセルの連続値ベクトルの系列を入力として、列を連続値ベクトルに符号化し、表符号化部が、前記訓練データ集合に含まれる前記表形式データの各々について、前記行符号化部および前記列符号化部が出力した各行及び各列の連続値ベクトルの系列を入力として、表を連続値ベクトルに符号化し、学習部が、前記訓練データ集合に含まれる前記表形式データの各々について前記表符号化部が出力した連続値ベクトルと、前記訓練データ集合に含まれる前記正解ラベルとに基づいて、表形式データの表のキャプションを生成するための生成器を学習する。
【０００９】
本発明に係る表キャプション生成装置は、セルの行列として記述された表形式データについて、表の各セルに対し、該セルに記載されたテキスト情報に含まれるトークンの系列を入力として、セルを連続値ベクトルに符号化するセル符号化部と、前記表形式データについて、表の各行に対し、前記セル符号化部が出力した、該行に含まれるセルの連続値ベクトルの系列を入力として、行を連続値ベクトルに符号化する行符号化部と、前記表形式データについて、表の各列に対し、前記セル符号化部が出力した、該列に含まれるセルの連続値ベクトルの系列を入力として、列を連続値ベクトルに符号化する列符号化部と、前記表形式データについて、前記行符号化部および前記列符号化部が出力した各行及び各列の連続値ベクトルの系列を入力として、表を連続値ベクトルに符号化する表符号化部と、前記表符号化部が出力した連続値ベクトルと、表形式データの表のキャプションを生成するための予め学習された生成器とに基づいて、前記表形式データの表のキャプションを生成する表キャプション生成部と、を含んで構成されている。
【００１０】
本発明に係る表キャプション生成方法は、セル符号化部が、セルの行列として記述された表形式データについて、表の各セルに対し、該セルに記載されたテキスト情報に含まれるトークンの系列を入力として、セルを連続値ベクトルに符号化し、行符号化部が、前記表形式データについて、表の各行に対し、前記セル符号化部が出力した、該行に含まれるセルの連続値ベクトルの系列を入力として、行を連続値ベクトルに符号化し、列符号化部が、前記表形式データについて、表の各列に対し、前記セル符号化部が出力した、該列に含まれるセルの連続値ベクトルの系列を入力として、列を連続値ベクトルに符号化し、表符号化部が、前記表形式データについて、前記行符号化部および前記列符号化部が出力した各行及び各列の連続値ベクトルの系列を入力として、表を連続値ベクトルに符号化し、表キャプション生成部が、前記表符号化部が出力した連続値ベクトルと、表形式データの表のキャプションを生成するための予め学習された生成器とに基づいて、前記表形式データの表のキャプションを生成する。
【００１１】
また、本発明のプログラムは、コンピュータを、上記の表キャプション生成器学習装置、又は表キャプション生成装置を構成する各部として機能させるためのプログラムである。
【発明の効果】
【００１２】
以上説明したように、本発明の表キャプション生成器学習装置、方法、及びプログラムによれば、セルを連続値ベクトルに符号化し、各セルの連続値ベクトルの系列を入力として、行を連続値ベクトルに符号化し、各セルの連続値ベクトルの系列を入力として、列を連続値ベクトルに符号化し、各行及び各列の連続値ベクトルの系列を入力として、表を連続値ベクトルに符号化し、表形式データの表のキャプションを生成するための生成器を学習することにより、入力された表データ全体から、行内のセルの順序、列内の順序表内の行の順序、表内の列の順序を考慮して、表のキャプションを精度よく生成することができる生成器を学習することができる。
【００１３】
また、本発明の表キャプション生成装置、方法、及びプログラムによれば、セルを連続値ベクトルに符号化し、各セルの連続値ベクトルの系列を入力として、行を連続値ベクトルに符号化し、各セルの連続値ベクトルの系列を入力として、列を連続値ベクトルに符号化し、各行及び各列の連続値ベクトルの系列を入力として、表を連続値ベクトルに符号化し、表形式データの表のキャプションを生成することにより、入力された表データ全体から、行内のセルの順序、列内の順序表内の行の順序、表内の列の順序を考慮して、表のキャプションを精度よく生成することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係る表キャプション生成器学習装置の機能的構成を示すブロック図である。
【図２】表符号化ベクトルを生成する方法を説明するための図である。
【図３】表のキャプションを生成する方法を説明するための図である。
【図４】本発明の実施形態に係る表キャプション生成装置の機能的構成を示すブロック図である。
【図５】本発明の実施形態に係る表キャプション生成器学習装置における表キャプション生成器学習処理ルーチンのフローチャート図である。
【図６】本発明の実施形態に係る表キャプション生成装置における表キャプション生成処理ルーチンのフローチャート図である。
【図７】本発明の実施形態に係る表キャプション生成装置における表のキャプションを生成する処理の流れを示すフローチャート図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【００１６】
＜本発明の実施の形態に係る表キャプション生成器学習装置の構成＞
次に、本発明の実施の形態に係る表キャプション生成器学習装置の構成について説明する。図１に示すように、本実施の形態に係る表キャプション生成器学習装置１００は、ＣＰＵと、ＲＡＭと、後述する表キャプション生成器学習処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することが出来る。この表キャプション生成器学習装置１００は、機能的には図１に示すように入力部１０と、演算部２０と、出力部４０とを含んで構成されている。
【００１７】
入力部１０は、表形式データと表のキャプションを表す正解ラベルとの組の集合である訓練データ集合を受け付ける。
【００１８】
表形式データは、行列形式のセルの集合であり、各セルはHTMLを含まないプレーンテキスト情報、あるいは、HTMLタグを含むテキスト情報が与えられる
【００１９】
演算部２０は、図１に示すように、セル符号化部２２、行符号化部２４、列符号化部２６、表符号化部２８、及び学習部３０を備えて構成されている。
【００２０】
セル符号化部２２は、訓練データ集合に含まれる表形式データの各々について、表の各セルについて、当該セルに記載されたテキスト情報に含まれるトークンの系列を入力として、セルを連続値ベクトルに符号化する。
【００２１】
具体的には、セル符号化部２２は、訓練データ集合の表の各々に関して、該表に含まれるすべてのセルci,j（行番号i, 列番号j）について、以下の処理を行い、各セルの符号化ベクトルhi,jを出力する。
【００２２】
まず、セル符号化部２２は、セルci,jに記載のテキスト情報を形態素解析により単語（トークンと呼ぶ）の系列に分割する。たとえば、プレーンテキストとして「月額費用」を受け取った場合「月額」「費用」というトークン系列に分割する。また、HTMLテキストとして「<th><b>月額</b>費用</th>」を受け取った場合、HTMLタグごとに分割し、タグ内のテキストについて形態素解析することで「<th>」「<b>」「月額」「</b>」「費用」「</th>」のように分割する。なお、テキスト情報を文字ごとに分割して1文字をトークンとしてもよい。
【００２３】
次に、セル符号化部２２は、セルci,jに含まれるトークンの系列を連続値の符号化ベクトルhi,jに変換する。
【００２４】
系列データの符号化には、非特許文献２に示すLSTMや、非特許文献３に示すGRUが利用可能である。
【００２５】
［非特許文献2］：S Hochreiter, J Schmidhuber. Long short-term memory. Neural computation 9 (8), 1735-1780, 1997.
【００２６】
［非特許文献3］：K. Cho, B. van Merrienboer, D. Bahdanau, and Y. Bengio. On the properties of neural machine translation: Encoder-decoder approaches. arXiv preprint arXiv:1409.1259, 2014.
【００２７】
GRUを利用する場合、トークン系列の各トークンをx、Nc次元の符号化ベクトルをhとしたとき、トークンxが与えられるたびに符号化ベクトルhを下記の式（１）、（２）の計算により更新する。
【００２８】
【数１】
2018045625.tif 000003
【００２９】
ここで、σはシグモイド関数、
2018045625.tif 000004
は行列の要素ごとの積を意味する。Ｗe、Ｗr、Ｕr、Ｗz、Ｕz、Ｗ、Ｕはセル間で共通のパラメータ行列である。トークンの種類をK種類、埋め込み次元をEとしたとき、xはK次元の1-of-Kベクトル（トークンに対応する部分のみ1、他は0）となる。ＷeはE×K次元のパラメータ行列となる。その他のＷ.はNc×E次元のパラメータ行列となる。Ｕ.はNc×Nc次元のパラメータ行列となる。hの初期値はNc次元の零ベクトルである。
【００３０】
なお、式(2)のGRUの代わりにLSTMを利用して符号化ベクトルhi,jを出力しても良い。また、トークン系列を逆順にして同様に符号化ベクトルhi,jbを出力し、正順の符号化ベクトルと連結したベクトル[hi,j;hi,jb]をセル符号化部２２の出力としても良い。この場合、符号化ベクトルのサイズは2Ncとなる。
【００３１】
行符号化部２４は、訓練データ集合に含まれる表形式データの各々について、表の各行に対し、セル符号化部２２が出力した、該行に含まれる各セルの連続値ベクトルの系列を入力として、行を連続値ベクトルに符号化する。
【００３２】
具体的には、行符号化部２４は、表に含まれるすべての行（行番号i）について、以下の処理を行い、行内に含まれる各セルの符号化ベクトルhi,jの系列(j=1,2,…)を連続値の符号化ベクトルhiに変換する。例えば、hiをNr次元の零ベクトルとして初期化し、セルの符号化ベクトルhi,jが与えられるたびに上記式(2)のeとしてhi,jを代入することで符号化ベクトルhiを更新する。Ｗe、Ｗr、Ｕr、Ｗz、Ｕz、Ｗ、Ｕは行間で共通のパラメータ行列とし、Ｗ.はNr×Nc次元のパラメータ行列となる。Ｕ.はNr×Nr次元のパラメータ行列となる。
【００３３】
なお、式(2)のGRUの代わりにLSTMを利用して符号化ベクトルを出力しても良い。また、行内のセルの系列を逆順にして同様に符号化ベクトルhibを出力し、正順の符号化ベクトルと連結したベクトル[hi;hib]を行符号化部２４の出力としても良い。この場合、符号化ベクトルのサイズは2Nrとなる。
【００３４】
列符号化部２６は、訓練データ集合に含まれる表形式データの各々について、表の各列に対し、セル符号化部２２が出力した、該列に含まれるセルの連続値ベクトルの系列を入力として、列を連続値ベクトルに符号化する。
【００３５】
具体的には、列符号化部２６は、表に含まれるすべての列（列番号i）について、以下の処理を行い、列内に含まれる各セルの符号化ベクトルhi,jの系列(i=1,2,…)を連続値の符号化ベクトルhjに変換する。例えば、hjをNo次元の零ベクトルとして初期化し、セルの符号化ベクトルhi,jが与えられるたびに式(2)のe=hi,j、h=hjと代入することでhjを更新する。Ｗe、Ｗr、Ｕr、Ｗz、Ｕz、Ｗ、Ｕは列間で共通のパラメータ行列とし、Ｗ.はNo×Nc次元のパラメータ行列となる。Ｕ.はNo×No次元のパラメータ行列となる。
【００３６】
なお、式(2)のGRUの代わりにLSTMを利用して符号化ベクトルを出力しても良い。また、列内のセルの系列を逆順にして同様に符号化ベクトルhjbを出力し、正順の符号化ベクトルと連結したベクトル[hj;hjb]を列符号化部２６の出力としても良い。この場合、符号化ベクトルのサイズは2Noとなる。
【００３７】
表符号化部２８は、訓練データ集合に含まれる表形式データの各々について、行符号化部２４および列符号化部２６が出力した各行及び各列の連続値ベクトルの系列を入力として、表を連続値ベクトルに符号化する。
【００３８】
具体的には、まず、表符号化部２８は、各行の符号化ベクトルhiの系列(i=1,2,…)を連続値の符号化ベクトルhrowに変換する。例えば、hrowをNo次元の零ベクトルとして初期化し、行の符号化ベクトルhiが与えられるたびに式(2)のe=hi、h= hrowと代入することでhrowを更新する。Ｗe、Ｗr、Ｕr、Ｗz、Ｕz、Ｗ、Ｕをパラメータ行列とし、Ｗ.はNt×Nr次元のパラメータ行列となる。Ｕ.はNt×Nt次元のパラメータ行列となる。
【００３９】
なお、式(2)のGRUの代わりにLSTMを利用して符号化ベクトルを出力しても良い。また、行の系列を逆順にして同様に符号化ベクトルhrowbを出力し、正順の符号化ベクトルと連結したベクトル[hrow;hrowb]を出力しても良い。この場合、符号化ベクトルのサイズは2Ntとなる。
【００４０】
そして、表符号化部２８は、各列の符号化ベクトルhjの系列(j=1,2,…)を連続値の符号化ベクトルhcolに変換する。例えば、hcolをNt次元の零ベクトルとして初期化し、列の符号化ベクトルhjが与えられるたびに式(2)のe=hi、h= hcolと代入することでhcolを更新する。Ｗe、Ｗr、Ｕr、Ｗz、Ｕz、Ｗ、Ｕをパラメータ行列（連続値の符号化ベクトルhrowへの変換とは別のパラメータとする）とし、Ｗ.はNt×No次元のパラメータ行列となる。Ｕ.はNt×Nt次元のパラメータ行列となる。
【００４１】
なお、式(2)のGRUの代わりにLSTMを利用して符号化ベクトルを出力しても良い。また、行の系列を逆順にして同様に符号化ベクトルhcolbを出力し、正順の符号化ベクトルと連結したベクトル[hcol;hcolb]を出力しても良い。この場合、符号化ベクトルのサイズは2Ntとなる。
【００４２】
表符号化部２８は、上記で出力したベクトルを連結した[hrow;hcol]を表の符号化ベクトルhtabとして出力する。
【００４３】
学習部３０は、訓練データ集合に含まれる表形式データの各々について表符号化部２８が出力した連続値ベクトルと、訓練データ集合に含まれる正解ラベルとに基づいて、表形式データの表のキャプションを生成するための生成器を学習する。
【００４４】
具体的には、学習部３０は、訓練データ集合に含まれる表のそれぞれについて、表符号化部２８の出力した表符号化ベクトルhtabを基に、キャプションの生成を行う。まず、正解キャプションを、形態素解析を用いてトークンwの系列に分割する。得られた系列の先頭に’<cap>’、末尾に’</cap>’というトークンを追加する。
【００４５】
そして、学習部３０は、hcapを表符号化部２８の出力した表符号化ベクトルhtabとし、hcapでGRUの隠れベクトルhの初期値とし、トークン’<cap>’に対応する次元が1、他が0となるベクトルxを入力として、上記式（１）、（２）によりGRUの隠れベクトルhを更新する。Ｗe、Ｗr、Ｕr、Ｗz、Ｕz、Ｗ、Ｕを表キャプション生成器のパラメータ行列とし、Ｗ.はNt×E次元のパラメータ行列となる。Ｕ.はNt×Nt次元のパラメータ行列となる。なお、Weについてはセル符号化部２２と共通パラメータとする。
【００４６】
そして、学習部３０は、更新された隠れベクトルhを入力として、以下の式（３）に従って、クラス分類（クラス数=K）を行って、次のトークンの予測値を出力する。
【００４７】
【数２】
2018045625.tif 000005
【００４８】
ここで、Wclsは2Nt×Cのサイズのパラメータ行列とし、softmaxはソフトマックス関数、yは次元数Ｋのベクトルである。
【００４９】
また、学習部３０は、該表の正解キャプションの次のトークンに対応する次元が1、他が0となるベクトルxを入力とし、更新された隠れベクトルhを用いて、上記式(1)、(2)によりGRUの隠れベクトルhを更新する。
【００５０】
正解キャプションの最後のトークン’</cap>’まで、上記の処理を繰り返す。
【００５１】
また、学習部３０は、該表の正解キャプションのトークンt(t=1,…Kのとき、tの値とトークンが対応する。例えば、t=1はトークン’今日’に対応する)の各々について、当該トークンｔに対応するベクトルxを用いて上記式（３）で計算されたトークンの予測値ｙのうち、トークンｔに対応する要素ｙtから、式(4)のクロスエントロピー関数により損失Lを計算する。
【００５２】
【数３】
2018045625.tif 000006
【００５３】
そして、学習部３０は、訓練データ集合に含まれる表のそれぞれの正解キャプションの各トークンtについて上記式（４）により求めたトークンの予測値に対する損失Lについて確率的勾配降下法によりセル符号化部２２、行符号化部２４、列符号化部２６、表符号化部２８、及び生成器の行方向、列方向の各パラメータ行列について最適化を行う。なお、本発明は最適化の方法には依存しておらず、他のニューラルネットのパラメータに対する他の最適化法を利用しても良い。
【００５４】
図２に、セル・行・表の符号化ベクトルの例を示す。この例ではセル符号化部２２はセルc3,1に記載の”<td>1000</td>”というHTMLテキストから<td>, 1000, </td>というトークン系列を抽出し、GRUによりセルベクトルh3,1に符号化する。次に、行符号化部２４は各行のセルの並びを行ベクトルに符号化する。この例では、3行目のセルベクトルの系列をGRUにより符号化し、行ベクトルh3を獲得する。そして、表符号化部２８が行の系列をGRUにより符号化し表ベクトルhrowを求める。同様にhcolを列の系列から求め、[hrow; hcol]の連結ベクトルを表符号化部２８の出力とする。
図３に表キャプション生成の例を示す。表符号化ベクトルの出力をGRUの隠れベクトルhの初期値として、キャプションの次のトークンを予測する。
【００５５】
＜本発明の実施の形態に係る表キャプション生成装置の構成＞
次に、本発明の実施の形態に係る表キャプション生成装置の構成について説明する。図４に示すように、本実施の形態に係る表キャプション生成装置１５０は、ＣＰＵと、ＲＡＭと、後述する表キャプション生成処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することが出来る。この表キャプション生成装置１５０は、機能的には図４に示すように入力部６０と、演算部７０と、出力部９０とを含んで構成されている。
【００５６】
入力部６０は、キャプション生成対象となる表形式データを受け付ける。
【００５７】
演算部７０は、図４に示すように、セル符号化部７２、行符号化部７４、列符号化部７６、表符号化部７８、及び表キャプション生成部８０を備えて構成されている。
【００５８】
セル符号化部７２は、入力された表形式データについて、セル符号化部２２と同様に、表の各セルに対して、当該セルに記載されたテキスト情報に含まれるトークンの系列を入力として、セルを連続値ベクトルhi,jに符号化する。ここで、連続値の符号化ベクトルhi,jへの変換で用いられるパラメータ行列は、表キャプション生成器学習装置１００で最適化されたものである。
【００５９】
行符号化部７４は、入力された表形式データについて、行符号化部２４と同様に、表の各行に対し、セル符号化部７２が出力した、該行に含まれるセルの連続値ベクトルの系列を入力として、行を連続値ベクトルhiに符号化する。ここで、各行の符号化ベクトルhiへの変換で用いられるパラメータ行列は、表キャプション生成器学習装置１００で最適化されたものである。
【００６０】
列符号化部７６は、入力された表形式データについて、列符号化部２６と同様に、表の各列に対し、セル符号化部７２が出力した、該列に含まれるセルの連続値ベクトルの系列を入力として、列を連続値ベクトルhjに符号化する。ここで、各列の符号化ベクトルhjへの変換で用いるパラメータ行列は、表キャプション生成器学習装置１００で最適化されたものである。
【００６１】
表符号化部７８は、入力された表形式データについて、表符号化部２８と同様に、行符号化部７４および列符号化部７６が出力した各行及び各列の連続値ベクトルの系列を入力として、表を連続値ベクトルｈtabに符号化する。ここで、連続値の符号化ベクトルhrowへの変換、及び連続値の符号化ベクトルhrowへの変換で用いるパラメータ行列は、表キャプション生成器学習装置１００で最適化されたものである。
【００６２】
表キャプション生成部８０は、入力された表形式データについて、学習部３０と同様に、表符号化部７８が出力した連続値ベクトルと、表キャプション生成器学習装置１００でパラメータ行列が最適化された生成器とに基づいて、表形式データの表のキャプションを生成する。トークンの予測で用いるパラメータ行列は、表キャプション生成器学習装置１００で最適化されたものである。
【００６３】
具体的には、表キャプション生成部８０は、入力された表形式データについて、学習部３０と同様に、表符号化部７８の出力した表符号化ベクトルhtabをGRUの隠れベクトルhの初期値とし、トークン’<cap>’に対応する次元が1，他が0となるベクトルxを入力として、上記式(1)、(2)によりGRUの隠れベクトルhを更新する。
【００６４】
また、表キャプション生成部８０は、学習部３０と同様に、GRUの隠れベクトルhより、上記式（３）に従って、次トークンの予測値yを出力する。予測値yのうち、最も値の大きい次元に相当する予測トークンynを出力する。
【００６５】
表キャプション生成部８０は、トークンynに対応する次元が1、他が0となるベクトルxを入力とし、更新された隠れベクトルhを用いて、上記式(1)、(2)によりGRUの隠れベクトルhを更新する。
【００６６】
予測トークンとして’</cap>’が出力されるまで、上記の処理を繰り返す。
【００６７】
表キャプション生成部８０は、上記の処理で出力された予測トークンのうち、</cap>を除くトークンを出力順に連結して、表のキャプションを生成し、出力部９０により出力する。
【００６８】
＜本発明の実施形態に係る表キャプション生成器学習装置の作用＞
次に、本発明の実施形態に係る表キャプション生成器学習装置１００の作用について説明する。表キャプション生成器学習装置１００は、入力部１０によって、訓練データ集合を受け付けると、表キャプション生成器学習装置１００によって、図５に示す表キャプション生成器学習処理ルーチンが実行される。
【００６９】
まず、ステップＳ１００で、入力された訓練データ集合に含まれる表形式データの各々について、表の各セルに対し、当該セルに記載されたテキスト情報に含まれるトークンの系列を入力として、セルを連続値ベクトルに符号化する。
【００７０】
ステップＳ１０２では、入力された訓練データ集合に含まれる表形式データの各々について、表の各行に対し、上記ステップＳ１００で得られた、該行に含まれるセルの連続値ベクトルの系列を入力として、行を連続値ベクトルに符号化する。
【００７１】
また、訓練データ集合に含まれる表形式データの各々について、表の各列に対し、上記ステップＳ１００で得られた、該列に含まれるセルの連続値ベクトルの系列を入力として、列を連続値ベクトルに符号化する。
【００７２】
ステップＳ１０４では、訓練データ集合に含まれる表形式データの各々について、上記ステップＳ１０２で得られた各行及び各列の連続値ベクトルの系列を入力として、表を連続値ベクトルに符号化する。
【００７３】
ステップＳ１０６では、訓練データ集合に含まれる表形式データのそれぞれについて、上記ステップＳ１０４で得られた表符号化ベクトルを基に、キャプションの各トークンの予測を行う。
【００７４】
そして、ステップＳ１０８では、訓練データ集合に含まれる表のそれぞれに対し、該表の正解キャプションの各トークンと、該表に対する各トークンの予測におけるクラス分類の出力yとを用いて、正解キャプションの各トークンｔについて、各トークンの予測毎に、上記式(4)のクロスエントロピー関数により損失Lを計算する。そして、計算された損失Lについて確率的勾配降下法によりセル符号化部２２、行符号化部２４、列符号化部２６、表符号化部２８、及び生成器の行方向、列方向の各パラメータ行列について最適化を行い、出力部４０により出力し、表キャプション生成器学習処理ルーチンを終了する。
【００７５】
＜本発明の実施形態に係る表キャプション生成装置の作用＞
次に、本発明の実施形態に係る表キャプション生成装置１５０の作用について説明する。表キャプション生成装置１５０は、入力部６０によって、表形式データを受け付けると、表キャプション生成装置１５０によって、図６に示す表キャプション生成処理ルーチンが実行される。
【００７６】
まず、ステップＳ１５０で、入力された表形式データについて、表の各セルに対し、当該セルに記載されたテキスト情報に含まれるトークンの系列を入力として、セルを連続値ベクトルに符号化する。
【００７７】
ステップＳ１５２では、入力された表形式データについて、表の各行に対し、上記ステップＳ１５０で得られた、該行に含まれるセルの連続値ベクトルの系列を入力として、行を連続値ベクトルに符号化する。
【００７８】
また、入力された表形式データについて、表の各列に対し、上記ステップＳ１５０で得られた、該列に含まれるセルの連続値ベクトルの系列を入力として、列を連続値ベクトルに符号化する。
【００７９】
ステップＳ１５４では、入力された表形式データについて、上記ステップＳ１５２で得られた各行及び各列の連続値ベクトルの系列を入力として、表を連続値ベクトルに符号化する。
【００８０】
ステップＳ１５６では、入力された表形式データについて、上記ステップＳ１５４で得られた表符号化ベクトルを基に、キャプションの各トークンの予測を行い、各トークンを連結して、表のキャプションとして、出力部９０により出力し、表キャプション生成処理ルーチンを終了する。
【００８１】
上記ステップＳ１５６は、図７に示す処理ルーチンにより実現される。
【００８２】
ステップＳ１６０では、上記ステップＳ１５４で得られた表符号化ベクトルhtabをGRUの隠れベクトルhの初期値とし、トークン’<cap>’に対応する次元が1，他が0となるベクトルxを入力として、上記式(1)、(2)によりGRUの隠れベクトルhを更新する。
【００８３】
ステップＳ１６２では、GRUの隠れベクトルhより、次トークンの予測値yを出力する。また、予測値yのうち、最も値の大きい次元に相当する予測トークンynを出力する。
【００８４】
そして、ステップＳ１６４では、予測トークンynに対応する次元が1、他が0となるベクトルxを入力とし、更新された隠れベクトルhを用いて、上記式(1)、(2)によりGRUの隠れベクトルhを更新する。
【００８５】
ステップＳ１６６では、上記ステップＳ１６２で予測トークンとして’</cap>’が出力されたか否かを判定し、予測トークンとして’</cap>’が出力されていない場合には、上記ステップＳ１６２へ戻る。一方、予測トークンとして’</cap>’が出力された場合には、繰り返しを終了すると判断し、ステップＳ１６８へ進む。
【００８６】
ステップＳ１６８では、上記ステップＳ１６２で出力された予測トークンのうち、</cap>を除くトークンを出力順に連結して、表のキャプションを生成し、出力部９０により出力して、処理ルーチンを終了する。
【００８７】
以上説明したように、本発明の実施の形態に係る表キャプション生成装置によれば、セルを連続値ベクトルに符号化し、各セルの連続値ベクトルの系列を入力として、行を連続値ベクトルに符号化し、各セルの連続値ベクトルの系列を入力として、列を連続値ベクトルに符号化し、各行及び各列の連続値ベクトルの系列を入力として、表を連続値ベクトルに符号化し、表形式データの表の種類を分類することにより、入力された表データ全体から、行内のセルの順序、列内の順序表内の行の順序、表内の列の順序を考慮して、表形式データの内容に適合した表のキャプションを精度よく生成することができる。
【００８８】
また、本発明の実施の形態に係る表キャプション生成器学習装置によれば、セルを連続値ベクトルに符号化し、各セルの連続値ベクトルの系列を入力として、行を連続値ベクトルに符号化し、各セルの連続値ベクトルの系列を入力として、列を連続値ベクトルに符号化し、各行及び各列の連続値ベクトルの系列を入力として、表を連続値ベクトルに符号化し、表形式データの表の種類を分類するための表キャプション生成器を学習することにより、入力された表データ全体から、行内のセルの順序、列内の順序表内の行の順序、表内の列の順序を考慮して、表形式データの表のキャプションを精度よく生成することができる生成器を学習することができる。
【００８９】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００９０】
例えば、上記の実施の形態では、表キャプション生成器学習装置と表キャプション生成装置とを別々に設ける場合を例に説明したが、表キャプション生成器学習装置と表キャプション生成装置とを、１つの装置で実現するようにしてもよい。
【００９１】
本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能であるし、ネットワークを介して提供することも可能である。
【産業上の利用可能性】
【００９２】
本発明は、表キャプションを自動生成することで精度を向上可能な表形式データの情報検索などに利用可能である。
【符号の説明】
【００９３】
１０、６０    入力部
２０、７０    演算部
２２、７２    セル符号化部
２４、７４    行符号化部
２６、７６    列符号化部
２８、７８    表符号化部
３０   学習部
４０、９０    出力部
８０   表キャプション生成部
１００ 表キャプション生成器学習装置
１５０ 表キャプション生成装置
【図１】
2018045625.tif 000007
【図２】
2018045625.tif 000008
【図３】
2018045625.tif 000009
【図４】
2018045625.tif 000010
【図５】
2018045625.tif 000011
【図６】
2018045625.tif 000012
【図７】
2018045625.tif 000013