(57)【要約】  ベクトル化装置（２）は、文字列に応じたベクトルを生成する。ベクトル化装置は、取得部（２２〜２４）と、記憶部（２１）と、演算処理部（２０）とを備える。取得部は、文字列を取得する。記憶部は、文字列とベクトルとの関係を示すベクトル化情報（Ｄ２）を記憶する。演算処理部は、ベクトル化情報に基づいて、取得された文字列に対応するベクトル（Ｖ１）を生成する。ベクトル化情報は、各ベクトルに含まれる複数のベクトル要素の間に、所定の周期（Ｎ）を有する順序を設定する。
2019187696.tif 000002
【特許請求の範囲】
【請求項１】
文字列に応じたベクトルを生成するベクトル化装置であって、
文字列を取得する取得部と、
文字列とベクトルとの関係を示すベクトル化情報を記憶する記憶部と、
前記ベクトル化情報に基づいて、取得された文字列に対応するベクトルを生成する演算処理部とを備え、
前記ベクトル化情報は、各ベクトルに含まれる複数のベクトル要素の間に、所定の周期を有する順序を設定する
ベクトル化装置。
【請求項２】
前記ベクトル化情報は、前記ベクトル中の複数のベクトル要素に対応する複数のボキャブラリ要素によって規定され、
前記ボキャブラリ要素は、前記周期分の個数のクラスに分類され、
前記ベクトル化情報は、前記周期毎に各クラスのボキャブラリ要素が繰り返されるように、前記順序を設定する
請求項１に記載のベクトル化装置。
【請求項３】
前記文字列に対応するベクトルの各ベクトル要素は、前記ボキャブラリ要素毎のスコアを示す
請求項２に記載のベクトル化装置。
【請求項４】
前記クラスは、言語的な意味に基づく前記ボキャブラリ要素の分類を示す
請求項２又は３記載のベクトル化装置。
【請求項５】
前記文字列は、文字、単語、句、文章、及び文書のうちの少なくとも１つを含む
請求項１〜４のいずれか１項に記載のベクトル化装置。
【請求項６】
前記演算処理部は、生成したベクトルに基づいて、畳み込みニューラルネットワークによる言語処理を実行し、
前記畳み込みニューラルネットワークは、前記周期に応じたフィルタ及びストライド幅を有する
請求項１〜５のいずれか１項に記載のベクトル化装置。
【請求項７】
前記畳み込みニューラルネットワークは、
前記周期の整数倍のサイズを有するフィルタ、及び前記周期の整数倍のストライド幅に基づく畳み込みを演算する第１の畳み込み層と、
前記第１の畳み込み層における演算結果を畳み込む第２の畳み込み層とを含む
請求項６に記載のベクトル化装置。
【請求項８】
コンピュータが文字列に基づく言語処理を行う言語処理方法であって、
前記コンピュータが、文字列を取得するステップと、
前記コンピュータの演算処理部が、文字列とベクトルとの関係を示すベクトル化情報に基づき、取得した文字列に対応するベクトルを生成するステップと、
前記演算処理部が、生成したベクトルに基づいて、畳み込みニューラルネットワークによる言語処理を実行するステップとを含み、
前記演算処理部は、前記ベクトル化情報に基づき、各ベクトルに含まれる複数のベクトル要素の間に所定の周期を有する順序を設定して、生成したベクトルを前記畳み込みニューラルネットワークに入力する
言語処理方法。
【請求項９】
請求項８に記載の言語処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、文字列に応じたベクトルを生成するベクトル化装置、文字列に基づく言語処理を行う言語処理方法及びプログラムに関する。
【背景技術】
【０００２】
非特許文献１は、機械学習において文章を分類するタスクを学習させた畳み込みニューラルネットワーク（ＣＮＮ）のモデルを開示している。非特許文献１のＣＮＮモデルは、１層の畳み込み層を設けている。当該畳み込み層は、文章中の複数の単語に対応する単語ベクトルの連結にフィルタを適用して、特徴量マップを生成している。非特許文献１は、分類対象の文章に応じた単語ベクトルを得る手法として、機械学習を利用した公知技術であるｗｏｒｄ２ｖｅｃを採用している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−０２６０２７号公報
【非特許文献】
【０００４】
【非特許文献１】Kim Yoon, "Convolutional Neural Networks for Sentence Classification", arXiv preprint arXiv:1408.5882, 08/2014.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本開示は、文字列に応じたベクトルによる言語処理を行い易くすることができるベクトル化装置および言語処理方法を提供する。
【課題を解決するための手段】
【０００６】
本開示の一態様におけるベクトル化装置は、文字列に応じたベクトルを生成する。ベクトル化装置は、取得部と、記憶部と、演算処理部とを備える。取得部は、文字列を取得する。記憶部は、文字列とベクトルとの関係を示すベクトル化情報を記憶する。演算処理部は、ベクトル化情報に基づいて、取得された文字列に対応するベクトルを生成する。ベクトル化情報は、各ベクトルに含まれる複数のベクトル要素の間に、所定の周期を有する順序を設定する。【０００７】
本開示の一態様における言語処理方法は、コンピュータが文字列に基づく言語処理を行う方法である。本方法は、コンピュータが、文字列を取得するステップと、コンピュータの演算処理部が、文字列とベクトルとの関係を示すベクトル化情報に基づき、取得した文字列に対応するベクトルを生成するステップとを含む。本方法は、演算処理部が、生成したベクトルに基づいて、畳み込みニューラルネットワークによる言語処理を実行するステップを含む。演算処理部は、ベクトル化情報に基づき、各ベクトルに含まれる複数のベクトル要素の間に所定の周期を有する順序を設定して、生成したベクトルを畳み込みニューラルネットワークに入力する。
【発明の効果】
【０００８】
本開示におけるベクトル化装置及び言語処理方法によると、各ベクトルにおける周期により、文字列に応じたベクトルによる言語処理を行い易くすることができる。
【図面の簡単な説明】
【０００９】
【図１】本開示の実施形態１に係る言語処理方法の概要を説明するための図
【図２】実施形態１に係るベクトル化装置の構成を例示するブロック図
【図３】ベクトル化装置における単語ベクトル辞書のデータ構造を説明するための図
【図４】単語ベクトル辞書におけるボキャブラリの分類を説明するための図
【図５】実施形態１に係る言語処理方法を例示するフローチャート
【図６】実施形態１におけるＣＮＮのネットワーク構造を説明するための図
【図７】実施形態１におけるＣＮＮの処理を説明するためのフローチャート
【図８】実施形態１におけるＣＮＮの畳み込みを説明するための図
【図９】実施形態１に係る言語処理方法の実験結果を示す図表
【図１０】実施形態１における単語ベクトルの算出処理を例示するフローチャート
【図１１】実施形態１における単語ベクトルの算出処理を説明するための図
【図１２】ボキャブラリリストを決定する処理を例示するフローチャート
【図１３】単語ベクトルの算出処理の変形例を説明するためのフローチャート
【図１４】単語ベクトルの算出処理の変形例を説明するための図
【発明を実施するための形態】
【００１０】
以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
【００１１】
なお、出願人は、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
【００１２】
（本開示についての知見）
本開示に到った本願発明者の知見について、以下説明する。
【００１３】
本開示では、自然言語処理に畳み込みニューラルネットワーク（ＣＮＮ）を適用する技術について説明する。ＣＮＮは、画像認識等の画像処理の分野で主に用いられるニューラルネットワークである（特許文献１参照）。
【００１４】
画像処理におけるＣＮＮは、例えば数画素分のサイズを有するフィルタを用いて処理対象の画像を畳み込む。画像の畳み込みによると、画像におけるフィルタのサイズ分の注目領域毎の特徴量を示す特徴量マップが二次元的に生成される。さらに、生成された特徴量マップを畳み込む深層化によって、画像処理のＣＮＮは性能を向上することが知られている。
【００１５】
自然言語処理のＣＮＮでは、従来、単語に対応する単語ベクトルの複数個分のサイズを有するフィルタが用いられており、得られる特徴量マップは一次元的になっている（例えば非特許文献１）。本願発明者は、上記のフィルタは大き過ぎてＣＮＮを深層化し難いことに着目し、より小さいサイズのフィルタを用いることについて検討を重ねたところ、以下の問題点が明らかとなった。
【００１６】
すなわち、自然言語処理のＣＮＮにおいて従来よりもフィルタを小さくすると注目領域が単語ベクトルの内部を分割することとなるが、ｗｏｒｄ２ｖｅｃ等の従来の単語ベクトル化手法では、当該注目領域を処理単位とする意義を見出し難い。このことから、従来技術においては、自然言語処理のＣＮＮの深層化等による性能向上が困難であるという問題点が明らかとなった。
【００１７】
以上の問題点について、本願発明者は鋭意研究を重ね、その結果、単語ベクトルにおけるベクトル要素の並び順に周期性を持たせるベクトル化手法を考案するに到った。本手法によると、単語ベクトルの周期性に合わせてフィルタを小さくした際の注目領域に意義を与え、ＣＮＮの性能向上を図ることが可能となる。
【００１８】
（実施形態１）
上記のベクトル化手法に基づくベクトル化装置及び言語処理方法の実施形態１について、以下説明する。
【００１９】
１．構成
１−１．概要
実施形態１に係るベクトル化装置を用いた言語処理方法の概要について、図１を参照して説明する。図１は、本実施形態に係る言語処理方法の概要を説明するための図である。
【００２０】
本実施形態に係る言語処理方法は、機械学習における自然言語処理のＣＮＮ１０を用いて、例えば文書データＤ１に対する文書分類を行う。文書データＤ１は、文書を構成する複数の単語を含むテキストデータである。文書データＤ１中の単語は、本実施形態における文字列の一例である。
【００２１】
本実施形態に係るベクトル化装置２は、言語処理方法におけるＣＮＮ１０の前処理として、文書データＤ１に上述したベクトル化手法を適用する。ベクトル化装置２は、文書データＤ１における単語のベクトル化（即ち単語埋め込み）を行って、単語ベクトルＶ１を生成する。単語ベクトルＶ１は、予め設定された次元毎のベクトル要素Ｖ１０を含む。別々の単語に対応する単語ベクトルＶ１は、少なくとも１つのベクトル要素Ｖ１０の値の差異によって識別され得る。
【００２２】
ベクトル化装置２による前処理後の文書データＤ１０は、図１に示すように、Ｘ，Ｙ方向の二次元的なベクトル要素Ｖ１０の配列を示すデータになる。Ｘ方向は、各単語ベクトルＶ１においてベクトル要素Ｖ１０が並ぶ方向である。Ｙ方向は、例えば文書データＤ１中で単語ベクトルＶ１が並ぶ方向である。
【００２３】
本実施形態のベクトル化装置２は、例えば単語ベクトル辞書Ｄ２を参照して、Ｘ方向において周期Ｎを有するようにベクトル要素Ｖ１０の並び順を設定して、単語ベクトルＶ１をＣＮＮ１０に入力する。周期Ｎは、２以上で且つ単語ベクトルＶ１の次元数の半数以下の整数である。
【００２４】
本実施形態のベクトル化装置２によると、単語ベクトルＶ１中の周期Ｎに応じて、前処理後の文書データＤ１０をＸ方向に内分するようにＣＮＮ１０の注目領域を設定する意義を与えられる。これにより、ＣＮＮ１０を深層化して性能向上を図る等、機械学習による言語処理を行い易くすることができる。
【００２５】
１−２．ハードウェア構成
本実施形態に係るベクトル化装置２のハードウェア構成を、図２を参照して説明する。図２は、ベクトル化装置２の構成を例示するブロック図である。
【００２６】
ベクトル化装置２は、例えばＰＣ又は種々の情報端末などの情報処理装置で構成される。ベクトル化装置２は、図２に示すように、演算処理部２０と、記憶部２１と、機器インタフェース２２と、ネットワークインタフェース２３とを備える。以下、「インタフェース」を「Ｉ／Ｆ」と略記する。また、ベクトル化装置２は、操作部２４と、表示部２５とを備える。
【００２７】
演算処理部２０は、例えばソフトウェアと協働して所定の機能を実現するＣＰＵ又はＭＰＵを含み、ベクトル化装置２の全体動作を制御する。演算処理部２０は、記憶部２１に格納されたデータやプログラムを読み出して種々の演算処理を行い、各種の機能を実現する。例えば、演算処理部２０は、本実施形態のベクトル化手法、或いは当該手法に基づく言語処理方法を実現するプログラムを実行する。上記のプログラムは、各種の通信ネットワークから提供されてもよいし、可搬性を有する記録媒体に格納されていてもよい。
【００２８】
なお、演算処理部２０は、所定の機能を実現するように設計された専用の電子回路又は再構成可能な電子回路などのハードウェア回路であってもよい。演算処理部２０は、ＣＰＵ、ＭＰＵ、ＧＰＵ、ＧＰＧＰＵ、ＴＰＵ、マイコン、ＤＳＰ、ＦＰＧＡ及びＡＳＩＣ等の種々の半導体集積回路で構成されてもよい。
【００２９】
記憶部２１は、ベクトル化装置２の機能を実現するために必要なプログラム及びデータを記憶する記憶媒体である。記憶部２１は、図２に示すように、格納部２１ａ及び一時記憶部２１ｂを含む。
【００３０】
格納部２１ａは、所定の機能を実現するためのパラメータ、データ及び制御プログラム等を格納する。格納部２１ａは、例えばＨＤＤ又はＳＳＤで構成される。例えば、格納部２１ａは、単語ベクトル辞書Ｄ２などを格納する。単語ベクトル辞書Ｄ２は、本実施形態におけるベクトル化情報の一例である。単語ベクトル辞書Ｄ２については後述する。
【００３１】
一時記憶部２１ｂは、例えばＤＲＡＭ又はＳＲＡＭ等のＲＡＭで構成され、データを一時的に記憶（即ち保持）する。また、一時記憶部２１ｂは、演算処理部２０の作業エリアとして機能してもよく、演算処理部２０の内部メモリにおける記憶領域で構成されてもよい。
【００３２】
機器Ｉ／Ｆ２２は、ベクトル化装置２に外部機器を接続するための回路である。機器Ｉ／Ｆ２２は、所定の通信規格にしたがい通信を行う取得部の一例である。所定の規格には、ＵＳＢ、ＨＤＭＩ（登録商標）、ＩＥＥＥ１３９５、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）等が含まれる。
【００３３】
ネットワークＩ／Ｆ２３は、無線または有線の通信回線を介してベクトル化装置２を通信ネットワークに接続するための回路である。ネットワークＩ／Ｆ２３は所定の通信規格に準拠した通信を行う取得部の一例である。所定の通信規格には、ＩＥＥＥ８０２．３，ＩＥＥＥ８０２．１１ａ／１１ｂ／１１ｇ／１１ａｃ等の通信規格が含まれる。
【００３４】
操作部２４は、ユーザが操作を行うユーザインタフェースである。操作部２４は、例えば、キーボード、タッチパッド、タッチパネル、ボタン、スイッチ、及びこれらの組み合わせで構成される。操作部２４は、ユーザによって入力される諸情報を取得する取得部の一例である。また、ベクトル化装置２における取得部は、例えば各種記憶媒体（例えば格納部２１ａ）に格納された諸情報を演算処理部２０の作業エリア（例えば一時記憶部２１ｂ）に読み出すことによって諸情報の取得を行うものであってもよい。
【００３５】
表示部２５は、例えば、液晶ディスプレイ又は有機ＥＬディスプレイで構成される。表示部２５は、例えば操作部２４から入力された情報、及び本実施形態の言語処理による文書分類等の処理結果を示す情報など、種々の情報を表示する。
【００３６】
以上の説明では、ＰＣ等で構成されるベクトル化装置２の一例を説明した。本開示に係るベクトル化装置２はこれに限定されず、種々の情報処理装置（即ちコンピュータ）であってもよい。例えば、ベクトル化装置２は、ＡＳＰサーバなどの一つ又は複数のサーバ装置であってもよい。また、コンピュータクラスタ或いはクラウドコンピューティングなどにおいて、本開示に係る言語処理方法が実現されてもよい。
【００３７】
例えば、ベクトル化装置２は、外部から通信ネットワークを介して入力された文書データＤ１（図１）をネットワークＩ／Ｆ２３により取得して、単語等の文字列のベクトル化を実行してもよい。ベクトル化装置２は、外部にベクトル化済みの文書データＤ１０を送信したり、同データＤ１０に対するＣＮＮ１０の処理結果を送信したりしてもよい。
【００３８】
１−３．単語ベクトル辞書について
本実施形態では、例えば単語ベクトル辞書Ｄ２において、単語ベクトルＶ１の各次元に言語的な意味付けを与えるボキャブラリの分類を用いることにより、周期Ｎが実現される。単語ベクトル辞書Ｄ２及びボキャブラリの分類について、図３，４を用いて説明する。
【００３９】
図３は、ベクトル化装置２における単語ベクトル辞書Ｄ２のデータ構造を説明するための図である。図４は、単語ベクトル辞書Ｄ２におけるボキャブラリＶ０の分類を説明するための図である。
【００４０】
図３（ａ）は、単語ベクトル辞書Ｄ２の一例を示す。図３（ｂ）は、図３（ａ）の単語ベクトル辞書Ｄ２における単語ベクトル辞書Ｄ２の一例を示す。図３（ａ），（ｂ）では、説明の簡単化のため、単語ベクトルＶ１が６次元であり、周期Ｎ＝３の一例を示す。
【００４１】
単語ベクトル辞書Ｄ２は、「単語」と「単語ベクトル」とを対応付けて記録する。図３（ａ）の例では、単語「パリ」に対応する単語ベクトルＶ１と、単語「打者」に対応する単語ベクトルＶ１とが、単語ベクトル辞書Ｄ２に記録されている。図３（ｂ）では、単語「パリ」の単語ベクトルＶ１を例示している。各ベクトル要素Ｖ１０は、例えば０〜１又は−１〜１等の所定範囲内の値を有する。
【００４２】
本実施形態の単語ベクトル辞書Ｄ２は、単語ベクトルＶ１の次元分の単語を含んだボキャブラリＶ０によって規定される。図３（ａ）の例において、単語ベクトル辞書Ｄ２のボキャブラリＶ０は、「パリ」、「野球」、「選挙」、「東京」、「選手」及び「議会」という６単語を含んでいる。ボキャブラリＶ０の各単語は、単語ベクトルＶ１の各次元のベクトル要素Ｖ１０に対応付けされるボキャブラリ要素の一例である。
【００４３】
単語ベクトルＶ１における各ベクトル要素Ｖ１０は、本実施形態では、当該単語ベクトルＶ１の単語と、ボキャブラリＶ０の各単語とが互いに類似する度合いである類似度を示す。例えば、単語ベクトルＶ１における１番目のベクトル要素Ｖ１０はボキャブラリＶ０中の１つ目の単語「パリ」に対する類似度を示し、２番目のベクトル要素Ｖ１０はボキャブラリＶ０中の２つ目の単語「野球」に対する類似度を示す。このことから、単語「パリ」に対応する単語ベクトルＶ１（図３（ｂ））において、１番目のベクトル要素Ｖ１０は「１」である一方、２番目のベクトル要素Ｖ１０は「０．１」になっている。
【００４４】
本実施形態では、単語ベクトルＶ１に周期Ｎを設定するために、ボキャブラリＶ０中の単語がＮ個のクラスに分類される。ボキャブラリＶ０の分類について、図４を用いて説明する。
【００４５】
図４では、ボキャブラリＶ０中の単語が、第１〜第３クラスｃ１，ｃ２，ｃ３に分類されている。第１クラスｃ１は、地名に関する単語が属するクラスである。図４の例において、第１クラスｃ１は、「パリ」及び「東京」を含む。第２クラスｃ２は、スポーツに関する単語が属するクラスであり、例えば「野球」及び「選手」を含む。第３クラスｃ３は、政治に関する単語が属するクラスであり、例えば「選挙」及び「議会」を含む。
【００４６】
以上のようなボキャブラリＶ０の単語は、単語ベクトル辞書Ｄ２（図３（ａ））のＸ方向において、第１〜第３クラスｃ１〜ｃ３から順番に１つずつ並べられる。例えば、単語ベクトル辞書Ｄ２におけるボキャブラリＶ０の１番目の単語は、第１クラスｃ１に属する「パリ」であり、２番目の単語は第２クラスｃ２の「野球」であり、３番目の単語は第３クラスｃ３の「選挙」である。
【００４７】
また、ボキャブラリＶ０の４番目以降も同様に、周期Ｎ＝３毎に各クラスｃ１〜ｃ３の単語が順番に並べられる。例えば、単語ベクトル辞書Ｄ２におけるボキャブラリＶ０の４番目の単語は、第１クラスｃ１に属し、且つ１番目の「パリ」とは別の「東京」になっている。
【００４８】
単語ベクトル辞書Ｄ２は、以上のようなボキャブラリＶ０の単語の並び順に従って、各単語ベクトルＶ１中に並ぶベクトル要素Ｖ１０の順序を管理する。これにより、単語ベクトルＶ１において、各クラスｃ１〜ｃ３に関する類似度を示すベクトル要素Ｖ１０が、周期Ｎ毎に繰り返される。つまり、単語ベクトルＶ１において隣接したＮ個のベクトル要素Ｖ１０、即ちＮ次元のサブベクトルには、全クラスｃ１〜ｃ３に対する当該単語ベクトルＶ１の単語の類似度というような、完結した意義があると考えられる。
【００４９】
以上のように、本実施形態のベクトル化装置２によると、言語的な意味に関する分類から周期Ｎ毎の意義を単語ベクトルＶ１に与えて、例えば単語ベクトル辞書Ｄ２において管理することができる。なお、ボキャブラリＶ０の分類は言語的な意味に限らず、種々の観点から行われてもよい。
【００５０】
２．動作
本実施形態に係る言語処理方法、及びベクトル化装置２の動作について、以下説明する。
【００５１】
２−１．言語処理方法について
本実施形態の言語処理方法が実現される動作について、図１，５を用いて説明する。以下では、ベクトル化装置２が、本実施形態の言語処理方法を実行する動作例を説明する。
【００５２】
図５は、本実施形態に係る言語処理方法を例示するフローチャートである。図５に示すフローチャートの各処理は、ベクトル化装置２の演算処理部２０によって実行される。
【００５３】
まず、ベクトル化装置２の演算処理部２０は、上記の各種取得部（機器インタフェース２２、ネットワークインタフェース２３、操作部２４）のいずれかを介して、文書データＤ１（図１）を取得する（Ｓ１）。例えば、ユーザは、操作部２４の操作により文書データＤ１を入力できる。
【００５４】
次に、演算処理部２０は、取得した文書データＤ１中でベクトル化の対象とする文字列として単語を認識するように単語分割を行う（Ｓ２）。演算処理部２０は、例えば単語間の空白など、文書データＤ１における単語の区切りを検出する。また、特定の品詞を言語処理の処理対象とする場合、演算処理部２０は、文書データＤ１から対象の品詞の単語を抽出してもよい。
【００５５】
次に、演算処理部２０は、ベクトル化装置２として文書データＤ１における単語のベクトル化を実行する（Ｓ３）。例えば、演算処理部２０は、記憶部２１に格納された単語ベクトル辞書Ｄ２を参照して、各単語に対応する単語ベクトルＶ１をそれぞれ生成する。
【００５６】
また、演算処理部２０は、例えば取得した文書データＤ１中で認識した単語の順序に従い、図１に示すように単語ベクトルＶ１をＹ方向に並べて、単語のベクトル化が為された文書データＤ１０を生成する。ステップＳ３の処理により、単語のベクトル化済みの文書データＤ１０のＸ方向において、各単語ベクトルＶ１に共通の周期Ｎが設定される。
【００５７】
次に、演算処理部２０は、生成した単語ベクトルＶ１に基づいて、ＣＮＮ１０による言語処理を実行する（Ｓ４）。ＣＮＮ１０には、学習前からあらかじめ畳み込みのフィルタを指定する特定のパラメータが、単語ベクトルＶ１の周期Ｎに応じて設定される。演算処理部２０は、例えば文書分類を学習させたＣＮＮ１０に、単語のベクトル化済みの文書データＤ１０を入力して、ＣＮＮ１０による文書分類の処理を実行する。ステップＳ４及びＣＮＮ１０の詳細については後述する。
【００５８】
次に、演算処理部２０は、ＣＮＮ１０による処理結果に基づいて、例えば文書データＤ１の分類情報を出力する（Ｓ５）。分類情報は、所定の複数のクラスにおいて、文書データＤ１が分類されるクラスを示す。演算処理部２０は、例えば、表示部２５に分類情報を表示させる。
【００５９】
演算処理部２０は、分類情報を出力すると（Ｓ５）、図５に示すフローチャートの処理を終了する。
【００６０】
以上の処理によると、文書分類等のＣＮＮ１０による言語処理において、単語ベクトルＶ１に周期Ｎが設定される。これにより、単語ベクトルＶ１の周期Ｎに合わせてＣＮＮ１０を構築でき、学習済みのＣＮＮ１０による言語処理を精度良くすることができる。
【００６１】
２−１−１．ＣＮＮ（畳み込みニューラルネットワーク）について
図５のステップＳ４及びＣＮＮ１０の詳細を、図６，７，８を用いて説明する。
【００６２】
図６は、本実施形態におけるＣＮＮ１０のネットワーク構造を説明するための図である。図７は、本実施形態におけるＣＮＮ１０の処理を説明するためのフローチャートである。図８は、ＣＮＮ１０の畳み込みを説明するための図である。
【００６３】
本実施形態におけるＣＮＮ１０は、例えば図６に示すように、入力側から出力側へ順番に、第１の畳み込み層１１と、第２の畳み込み層１２と、プーリング層１５と、全結合層１６とを含む。また、ＣＮＮ１０は、例えばデータを入出力する入力層及び出力層を含む。以上の各層を含むＣＮＮ１０として、演算処理部２０が図５のステップＳ４において実行する処理について、図７を用いて説明する。
【００６４】
まず、ＣＮＮ１０の入力層として、演算処理部２０は一時記憶部２１ｂ等に、図５のステップＳ３において単語のベクトル化が為された文書データＤ１０を入力する（Ｓ１１）。
【００６５】
次に、第１の畳み込み層１１として、演算処理部２０はベクトル化済みの文書データＤ１０に畳み込みの演算を行って、特徴量マップＤ１１を生成する（Ｓ１２）。第１の畳み込み層１１においては、周期Ｎの整数倍のサイズを有するフィルタ１１ｆ、及び周期Ｎの整数倍のストライド幅を用いた畳み込みを行う（図８参照）。これにより、二次元的な特徴量Ｄ１１ａの分布を示す特徴量マップＤ１１が生成される。ＣＮＮ１０における畳み込みの詳細については後述する。
【００６６】
次に、演算処理部２０は、第２の畳み込み層１２として、第１の畳み込み層１１における特徴量マップＤ１１に畳み込みを行って、新たな特徴量マップＤ１２を生成する（Ｓ１３）。第２の畳み込み層１２における特徴量マップＤ１２は、一次元的であってもよい。第２の畳み込み層１２におけるフィルタ１２ｆのサイズ及びストライド幅は、特に限定されず、種々の値に設定可能である。
【００６７】
次に、演算処理部２０は、生成した特徴量マップＤ１２に基づいて、プーリング層１５としての演算を行って、演算結果を示す特徴量データＤ１５を生成する（Ｓ１４）。例えば、演算処理部２０は、特徴量マップＤ１２に対して最大プーリング又は平均プーリング等を演算する。
【００６８】
次に、演算処理部２０は、生成した特徴量データＤ１５の全体を用いて、全結合層１６としての演算を行って、ＣＮＮ１０による処理結果を示す出力データＤ３を生成する（Ｓ１５）。例えば、演算処理部２０は、文書分類のクラス毎の活性化関数により、各クラスの判定基準を学習させた演算を実行する。この場合、例えば出力データＤ３の各値が、文書分類の各クラスに属する値に相当する。
【００６９】
演算処理部２０は、ステップＳ１５で生成された出力データＤ３を、出力層として一時記憶部２１ｂに保持し、図５のステップＳ４の処理を完了する。その後、演算処理部２０は、保持した出力データＤ３に基づきステップＳ５の処理を行う。
【００７０】
以上の処理によると、ベクトル化装置２によるベクトル化済みの文書データＤ１０が、単語ベクトルＶ１の周期Ｎに合わせて構築されたＣＮＮ１０に入力され、２層の畳み込み層１１，１２において順次、畳み込まれる（Ｓ１２，Ｓ１３）。本実施形態のＣＮＮ１０における畳み込みの詳細について、図８を用いて説明する。
【００７１】
図８（ａ）は、第１の畳み込み層１１のフィルタ１１ｆの一例を示す。フィルタ１１ｆは、フィルタ係数Ｆ１１〜Ｆ２３のマトリクスで規定される。各フィルタ係数Ｆ１１〜Ｆ２３は、例えば０〜１の範囲内で、機械学習によって各々の値を設定される。
【００７２】
図８（ａ）の例において、フィルタ１１ｆのＸ方向のサイズは、周期Ｎ＝３に合わせて３列に設定されている。また、フィルタ１１ｆのＹ方向のサイズは、２単語分の２行に設定されている。フィルタ１１ｆのＹ方向のサイズは特に限定されず、１単語に対応する１行に設定されてもよいし、３行以上に設定されてもよい。
【００７３】
図８（ｂ）は、図８（ａ）のフィルタ１１ｆに対する注目領域Ｒ１の一例を示す。図８（ｃ）は、図８（ｂ）の状態からシフトした注目領域Ｒ１の一例を示す。図８（ｂ），（ｃ）では、畳み込みにおけるＸ方向のストライド幅Ｗ１が、周期Ｎ＝３に合わせて３列に設定された例を示している。
【００７４】
例えば第１の畳み込み層１１における畳み込みにおいて、注目領域Ｒ１は、図８（ｂ）に示すように、ベクトル化済みの文書データＤ１０上で、フィルタ１１ｆを重畳させるように設定される。第１の畳み込み層１１として演算処理部２０は、各フィルタ係数Ｆ１１〜Ｆ２３によって、注目領域Ｒ１中で対応するベクトル要素Ｖ１０をそれぞれ重み付けて合算することにより、１つの注目領域Ｒ１の特徴量Ｄ１１ａを算出する（Ｓ１２）。
【００７５】
さらに、第１の畳み込み層１１としての演算処理部２０は、例えば図８（ｃ）に示すように、ストライド幅Ｗ１毎にフィルタ１１ｆをシフトさせながら注目領域Ｒ１を繰り返し設定して、上記と同様に各注目領域Ｒ１の特徴量Ｄ１１ａを順次、算出する。これにより、図７のステップＳ１２において、畳み込み前の文書データＤ１０よりも周期Ｎの整数倍分、小さいＸ方向のサイズを有するように、特徴量マップＤ１１が生成される。
【００７６】
本実施形態のＣＮＮ１０では、第１の畳み込み層１１のＸ方向におけるフィルタ１１ｆのサイズとストライド幅Ｗ１とが、それぞれ周期Ｎの整数倍に設定される。これにより、ベクトル化済みの文書データＤ１０が周期Ｎを最小単位とする注目領域Ｒ１でＸ方向を内分するように畳み込まれ、周期Ｎに応じた意義が考えられる特徴量Ｄ１１ａの特徴量マップＤ１１を得ることができる。
【００７７】
第１の畳み込み層１１のフィルタ１１ｆの個数は１つであってもよいし、複数であってもよい。フィルタ１１ｆの個数分の特徴量マップＤ１１を得ることができる。各フィルタ１１ｆのサイズ及びストライド幅は、別々に設定できる。なお、Ｙ方向におけるストライド幅は特に限定されず、適宜設定可能である。
【００７８】
第２の畳み込み層１２は、例えば、図６に示すようにＸ方向のサイズが２列以上のフィルタ１２ｆを有する。第２の畳み込み層１２としての演算処理部２０は、第１の畳み込み層１１で生成された特徴量マップＤ１１に対して１つ又は複数のフィルタ１２ｆを用いて、ステップＳ１２と同様に畳み込みを演算し、フィルタ１２ｆ毎に新たな特徴量マップＤ１２を算出する（Ｓ１３）。
【００７９】
第２の畳み込み層１２によると、第１の畳み込み層１１において各単語ベクトルＶ１を内分しながら独立に得られた注目領域Ｒ１毎の特徴量Ｄ１１ａが、第２の畳み込み層１２のフィルタ１２ｆのサイズ分、統合される。これにより、所謂アンサンブル学習のように統合的な解析を実現することができる。
【００８０】
以上のようなＣＮＮ１０の機械学習を行う際には、学習用の単語ベクトルにも、学習済みのＣＮＮ１０に入力されることとなる単語ベクトルＶ１と同じ周期性が設定される。例えば、ＣＮＮ１０に学習させるために用いる訓練データにも、図５のステップＳ３のベクトル化済みの文書データＤ１と同様の周期Ｎが設定される。当該訓練データは、例えば文書分類が予め為された文書データに、単語ベクトル辞書Ｄ２を用いたり、ベクトル化装置２を用いたりすることにより、作成可能である。
【００８１】
ＣＮＮ１０の機械学習は、図７と同様の処理を、ステップＳ１１で上記の訓練データを入力しながら繰り返し、ステップＳ１５の出力データと訓練データの分類の正解とに基づき誤差逆伝播法等を適用することによって行える。この際、各畳み込み層１１，１２のフィルタのサイズ及びストライド幅等は予め決定された状態で、各フィルタのフィルタ係数及び全結合層１６の重み付け係数等の学習対象のパラメータが調整される。
【００８２】
例えばＣＮＮ１０の機械学習時に、第１の畳み込み層１１における特徴量マップＤ１１の各々の特徴量Ｄ１１ａは、それぞれが独立で注目領域Ｒ１の性質を表現するアンサンブル学習における弱学習器のように扱うことができる。このため、第２の畳み込み層１２では、アンサンブルのような効果を奏する学習を行うことができる。つまり、第１の畳み込み層１１のそれぞれの特徴量Ｄ１１ａをさらに統合して学習を行うことができるので、注目領域Ｒ１の性質をより深く捉えることができる。
【００８３】
以上の説明では、ＣＮＮ１０における畳み込み層の層数が、第１及び第２の畳み込み層１１，１２の２層である例を説明した。本実施形態のＣＮＮ１０における畳み込み層の層数は、２層に限らず、３層であってもよいし、４層以上であってもよい。また、本実施形態のＣＮＮ１０においては、複数の畳み込み層の間に適宜、プーリング層等が設けられてもよい。ＣＮＮ１０の畳み込み層等の層数を増やすことにより、ＣＮＮ１０を深層化して、自然言語処理の処理精度を良くすることができる。
【００８４】
２−１−２．確認実験について
以上のような本実施形態の言語処理方法に関して、本願発明者が効果を確認するために行った実験について、図９を用いて説明する。図９は、本実施形態に係る言語処理方法の実験結果を示す図表である。
【００８５】
図９では、文書分類タスクにおいて確認実験を行った。実験に用いるデータとしては、オープンデータであるｄａｔａ−ｗｅｂ−ｓｎｉｐｐｅｔｓを利用した。本実験では、ＣＮＮによって文書を８クラスに分類するタスクを実施した。
【００８６】
本実験では、図９に示すように、畳み込み層の層数が１層のＣＮＮと２層のＣＮＮとに、３種類の単語ベクトル化手法「ｗｏｒｄ２ｖｅｃ」、「ＯＨＶ＋＋」及び「順序型ＯＨＶ＋＋」を適用して、上記タスクについて各々の正解率等を測定した。
【００８７】
「順序型ＯＨＶ＋＋」は、本実施形態のベクトル化装置２によるベクトル化手法を示す。単語ベクトルは３２０次元に設定し、周期Ｎ＝８に設定した。「ＯＨＶ＋＋」は、本実施形態と同様のベクトル化手法において周期性を持たせない場合のベクトル化手法を示す。
【００８８】
畳み込み層の層数が２層のＣＮＮは、本実施形態における図６に示したＣＮＮ１０の一例である。当該ＣＮＮにおいて、フィルタのＸ方向のサイズは、１層目では「４０」に設定し、２層目では「８」に設定した。一方、畳み込み層が１層のみのＣＮＮにおいて、フィルタのＸ方向のサイズは、単語ベクトルの次元数と同じ「３２０」に設定した。
【００８９】
本実験によると、図９に示すように、「ｗｏｒｄ２ｖｅｃ」等においては、畳み込み層を２層にすると、１層の場合よりも正解率が低下している。これに対して、本実施形態の「順序型ＯＨＶ＋＋」によると、畳み込み層を２層にすることより、１層の場合よりも正解率が向上している。このように、本実施形態のベクトル化装置２のベクトル化手法によると、ＣＮＮ１０を深層化して性能向上を図れることが確認できた。
【００９０】
２−２．単語ベクトルの算出処理
以上の説明では、予め格納された単語ベクトル辞書Ｄ２を参照して単語ベクトルＶ１が生成される例を説明した。以下で、本実施形態における単語ベクトルＶ１を算出する処理について、図１０，１１，１２を用いて説明する。
【００９１】
図１０は、本実施形態における単語ベクトルＶ１の算出処理を例示するフローチャートである。図１１は、単語ベクトルＶ１の算出処理を説明するための図である。以下では一例として、ベクトル化装置２の演算処理部２０が、図１０に示すフローチャートの各処理を実行する例を説明する。本フローチャートは、例えば、単語ベクトル辞書Ｄ２の作成前の状態で開始される。
【００９２】
まず、演算処理部２０は、Ｎクラスのボキャブラリリストを決定する（Ｓ２０）。ボキャブラリリストは、単語ベクトルＶ１を算出するためのボキャブラリ要素を規定するリストである。図１１（ａ）に、ボキャブラリリストＶ２の一例を示す。
【００９３】
図１１（ａ）のボキャブラリリストＶ２は、図４のボキャブラリＶ０に対応している。ボキャブラリリストＶ２においては、Ｎ個のクラスの各ボキャブラリ要素が、周期Ｎに応じて並んでいる。図１１（ａ）の例において、ボキャブラリ要素Ｖ２０は、単語である。ボキャブラリリストＶ２を決定する処理（Ｓ２０）の詳細については、後述する。ボキャブラリリストＶ２は、予め決定されていてもよい。
【００９４】
図１０に戻り、演算処理部２０は、各種取得部（機器インタフェース２２、ネットワークインタフェース２３、操作部２４）のいずれかを介して、ベクトル化の対象とする単語を入力する（Ｓ２１）。演算処理部２０は、例えば所定の演算式を用いて、ボキャブラリリストＶ２中のボキャブラリ要素Ｖ２０毎に、入力された単語のスコアを算出する（Ｓ２２）。スコアの演算式は、予め記憶部２１に記憶され、例えば２単語間の類似度を算出する。スコアの算出には、ＰＭＩ（自己相互情報量）或いは共起確率が用いられてもよいし、行列分解が用いられてもよい。
【００９５】
演算処理部２０は、ボキャブラリリストＶ２におけるボキャブラリ要素Ｖ２０の並び順に従って、算出したスコアを並べて、つまり、周期Ｎのスコアの配置を単語ベクトルとして出力する（Ｓ２３）。図１１（ｂ）に、出力される単語ベクトルＶ１の一例を示す。
【００９６】
図１１（ｂ）は、ステップＳ２１において単語「パリ」が入力された場合の単語ベクトルＶ１を例示している。演算処理部２０は、図１１（ａ）のボキャブラリリストＶ２におけるボキャブラリ要素Ｖ２０毎のスコアを算出して（Ｓ２２）、単語ベクトルＶ１を生成して出力する（Ｓ２３）。演算処理部２０は、単語ベクトルＶ１を出力することにより、図１０に示すフローチャートを終了する。
【００９７】
以上の処理によると、ボキャブラリリストＶ２等に基づき単語ベクトルＶ１を算出して、ベクトル要素Ｖ１０間に周期Ｎを有する順序を設定することができる。ボキャブラリリストＶ２及びスコアの演算式等は、本実施形態におけるベクトル化情報の一例である。
【００９８】
図１０の処理を複数の単語に対して繰り返し実行することにより、単語ベクトル辞書Ｄ２を作成することができる。
【００９９】
上記のステップＳ２２によると、ボキャブラリリストＶ２中のボキャブラリ要素Ｖ２０に対する類似度等に応じて、単語ベクトルＶ１の各ボキャブラリ要素Ｖ２０に値が設定される。例えば、図１１（ｂ）の単語ベクトルＶ１において、ボキャブラリ要素Ｖ２０が入力された単語と同じ「パリ」のベクトル要素Ｖ１０には、所謂ワンホットベクトルと同様に値「１」が設定される一方、他のベクトル要素Ｖ１０にもゼロでない値が設定されている。これにより、例えばワンホットベクトルのようなスパース性を解消して、機械学習において扱い易いデータを得ることができる。
【０１００】
ステップＳ２２におけるスコアの算出方法としては、他の単語ベクトル化手法が、ステップＳ２３で出力される単語ベクトルＶ１とは別の中間状態のベクトルを生成するために用いられてもよい。例えば、演算処理部２０は、ｗｏｒｄ２ｖｅｃにおいて、ボキャブラリリストＶ２中の単語に対応するベクトルと、入力された単語に対応するベクトルとを生成し、生成したベクトル同士の内積をスコアとして算出することができる。
【０１０１】
以上の説明では、ボキャブラリリストＶ２を構成するボキャブラリ要素Ｖ２０が単語である例を説明した。ボキャブラリ要素Ｖ２０は、単語に限らず種々の要素であってもよく、例えば文書であってもよい。例えば、ステップＳ２２において、演算処理部２０は、ボキャブラリ要素とする文書の中で注目する単語をカウントすることによって、対応するベクトル要素のスコアを算出してもよい。
【０１０２】
図１０のステップＳ２０の処理について、図１２を用いて説明する。図１２は、ボキャブラリリストＶ２を決定する処理（Ｓ２０）を例示するフローチャートである。
【０１０３】
まず、演算処理部２０は、各種取得部（機器インタフェース２２、ネットワークインタフェース２３、操作部２４）のいずれかを介して、ボキャブラリリストＶ２におけるボキャブラリ要素Ｖ２０の候補を含んだ単語群あるいは文書群などの情報を取得する（Ｓ３０）。例えば、ステップＳ３０で取得される情報は、例えば所定の訓練データであってもよい。
【０１０４】
次に、演算処理部２０は、取得した情報が示す単語等の要素を、周期Ｎと同じ個数のクラスに分類する（Ｓ３１）。ステップＳ３１の処理には、例えばＫ−ｍｅａｎｓ法あるいはＬＤＡ（潜在的ディリクレ分配法）など、種々の分類手法を用いることができる。ボキャブラリＶ０のクラスとしては、例えばＣＮＮ１０による文書分類と同じクラスを用いてもよいし、当該文書分類とは異なるクラスを用いてよい。
【０１０５】
次に、演算処理部２０は、Ｎ個のクラスの内の１つのクラスを、第１クラスから順番に選択する（Ｓ３２）。演算処理部２０は、選択したクラスにおける単語等の１つの要素をボキャブラリ要素Ｖ２０として抽出する（Ｓ３３）。演算処理部２０は、例えば一時記憶部２１ｂにおいて、抽出したボキャブラリ要素Ｖ２０をボキャブラリリストＶ２に記録する（Ｓ３４）。
【０１０６】
演算処理部２０は、ボキャブラリリストＶ２中のボキャブラリ要素Ｖ２０の個数が所定数に達するまで（Ｓ３５でＮＯ）、ステップＳ３２〜Ｓ３５の処理を繰り返す。所定数は、所望の単語ベクトルの次元数を示す。演算処理部２０は、各ステップＳ３２において、第１クラスから第Ｎクラスまで順番に選択し、第Ｎクラスの次に第１クラスを選択する。また、演算処理部２０は、ステップＳ３３毎に抽出されたボキャブラリ要素Ｖ２０を順番に、ステップＳ３４でボキャブラリリストＶ２に記録する。
【０１０７】
演算処理部２０は、ボキャブラリリストＶ２中のボキャブラリ要素Ｖ２０の個数が所定数に達すると（Ｓ３５でＹＥＳ）、例えばボキャブラリリストＶ２を格納部２１ａに格納する（Ｓ３６）。これにより、演算処理部２０は、図１０のステップＳ２０の処理を終了し、ステップＳ２１に進む。
【０１０８】
以上の処理によると、ボキャブラリ要素Ｖ２０の候補をＮ個のクラスに分類して、各クラスから順番にボキャブラリ要素Ｖ２０を抽出することにより、周期Ｎを有するボキャブラリリストＶ２を生成することができる。
【０１０９】
上記のステップＳ３３におけるボキャブラリ要素Ｖ２０の抽出には、例えばｉＤＦ（逆文書頻度）が用いられてもよい。例えば、ボキャブラリ要素Ｖ２０とする単語を抽出する際に、演算処理部２０は、ステップＳ３０で取得した情報におけるｉＤＦと、ステップＳ３２で選択したクラスにおけるｉＤＦとの差分を単語毎に計算する。演算処理部２０は、各クラスにおいて上記の差分が大きい単語から順番に抽出する（Ｓ３３）。これにより、各クラスにおいて特徴的に表れると考えられる代表語を、ボキャブラリ要素Ｖ２０として抽出することができる。
【０１１０】
３．まとめ
以上のように、本実施形態に係るベクトル化装置２は、単語毎の文字列に応じたベクトルである単語ベクトルＶ１を生成する。ベクトル化装置２は、取得部（機器インタフェース２２、ネットワークインタフェース２３、操作部２４）と、記憶部２１と、演算処理部２０とを備える。取得部は、単語等の文字列を取得する（Ｓ１）。記憶部２１は、文字列とベクトルとの関係を示すベクトル化情報の一例として単語ベクトル辞書Ｄ２等を記憶する。演算処理部２０は、ベクトル化情報に基づいて、取得された単語に対応する単語ベクトルＶ１を生成する（Ｓ３）。ベクトル化情報は、各単語ベクトルＶ１に含まれる複数のベクトル要素Ｖ１０の間に、所定の周期Ｎを有する順序を設定する。
【０１１１】
以上のベクトル化装置２によると、各単語ベクトルＶ１に内部的な周期性を持たせることで、例えばＣＮＮ１０の注目領域Ｒ１を小さくする意義を与え、ＣＮＮ１０による言語処理を行い易くすることができる。
【０１１２】
本実施形態において、単語ベクトル辞書Ｄ２等のベクトル化情報は、単語ベクトルＶ１中の複数のベクトル要素Ｖ１０に対応する複数のボキャブラリ要素Ｖ２０によって規定される。ボキャブラリ要素Ｖ２０は、周期Ｎ分の個数のクラスに分類される。ベクトル化情報は、周期Ｎ毎に各クラスのボキャブラリ要素Ｖ２０が繰り返されるように、上記の順序を設定する。これにより、周期Ｎ毎に繰り返し似通った性質を有する注目領域Ｒ１を形成でき、ＣＮＮ１０等において単語ベクトルＶ１を扱い易くすることができる。
【０１１３】
また、本実施形態において、単語に対応する単語ベクトルＶ１の各ベクトル要素Ｖ１０は、当該単語に関するボキャブラリ要素Ｖ２０毎のスコアを示す。ボキャブラリ要素Ｖ２０毎のスコアにより、多数のベクトル要素Ｖ１０にゼロではない値が設定されることで、スパース性を回避することができる。
【０１１４】
また、本実施形態において、ボキャブラリＶ０のクラスｃ１〜ｃ３は、言語的な意味に基づくボキャブラリ要素Ｖ２０の分類を示す。これにより、言語的な意味の観点から単語ベクトルＶ１の周期Ｎに意味付けすることができる。
【０１１５】
また、本実施形態において、演算処理部２０は、生成した単語ベクトルＶ１に基づいて、ＣＮＮ１０による言語処理を実行する（Ｓ４）。ＣＮＮ１０は、周期Ｎに応じたフィルタ１１ｆ及びストライド幅Ｗ１を有する。これにより、単語ベクトルＶの周期Ｎに合わせてＣＮＮ１０による言語処理を精度良く行うことができる。
【０１１６】
また、本実施形態において、ＣＮＮ１０は、周期Ｎの整数倍のサイズを有するフィルタ１１ｆ、及び周期Ｎの整数倍のストライド幅Ｗ１に基づく畳み込みを演算する第１の畳み込み層１１と、第１の畳み込み層１１における演算結果を畳み込む第２の畳み込み層１２とを含む。これにより、言語処理のＣＮＮ１０において複数の畳み込み層１１，１２を用いて精度良く言語処理を行うことができる。ＣＮＮ１０は、更なる畳み込み層等を含んでもよい。
【０１１７】
また、本実施形態における言語処理方法は、ベクトル化装置２等のコンピュータが文字列に基づく言語処理を行う方法である。本方法は、コンピュータが、文字列を取得するステップ（Ｓ１）と、コンピュータの演算処理部２０が、文字列とベクトルとの関係を示すベクトル化情報に基づき、取得した文字列に対応するベクトルを生成するステップ（Ｓ３）とを含む。本方法は、演算処理部２０が、生成したベクトルに基づいて、ＣＮＮ１０による言語処理を実行するステップ（Ｓ４）を含む。演算処理部２０は、ベクトル化情報に基づき、各ベクトルに含まれる複数のベクトル要素の間に所定の周期Ｎを有する順序を設定して、生成したベクトルをＣＮＮ１０に入力する（Ｓ１１）。
【０１１８】
以上の言語処理方法によると、ベクトルに周期性を持たせることにより、文字列に応じたベクトルによる言語処理を行い易い。本実施形態においては、上記の言語処理方法をコンピュータに実行させるためのプログラムが提供される。上記のプログラムは、種々の非一時的なコンピュータ読み取り可能の記録媒体に格納して提供されてもよい。コンピュータに同プログラムを実行させることにより、言語処理を行い易くすることができる。
【０１１９】
（他の実施形態）
以上のように、本出願において開示する技術の例示として、実施形態１を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置換、付加、省略などを行った実施の形態にも適用可能である。また、上記各実施形態で説明した各構成要素を組み合わせて、新たな実施の形態とすることも可能である。そこで、以下、他の実施形態を例示する。
【０１２０】
上記の実施形態１では、ボキャブラリＶ０に基づき単語ベクトルＶ１に周期性を持たせた。ボキャブラリＶ０を用いずに周期性を単語ベクトルに持たせる変形例について、図１３，１４を用いて説明する。
【０１２１】
図１３は、単語ベクトルＶ３の算出処理の変形例を説明するためのフローチャートである。図１４は、単語ベクトルＶ３の算出処理の変形例を説明するための図である。まず、ベクトル化装置２の演算処理部２０は、図１０のステップＳ２１と同様に、処理対象の単語を入力する（Ｓ４１）。
【０１２２】
次に、演算処理部２０は、入力した単語に基づいて、互いに独立な複数のＮ次元ベクトルを生成する（Ｓ４２）。図１４では、Ｎ＝２において、３つのＮ次元ベクトルＶ３１，Ｖ３２，Ｖ３３が生成された例を示している。例えば、ステップＳ４２の処理は、Ｗｏｒｄ２Ｖｅｃ，ＧｌｏＶｅなどの各種の単語ベクトル化手法を用いて行うことができる。例えば、予め複数の学習器を独立に学習させておき、ステップＳ４１で入力された単語に応じたＮ次元ベクトルを各々の学習器に生成させるように、ステップＳ４２の処理が行われてもよい。
【０１２３】
次に、演算処理部２０は、例えば図１４に示すように、算出した複数のＮ次元ベクトル３１〜３３を連結して、１つの単語ベクトルＶ３を算出する（Ｓ４３）。以上の処理によっても、算出される単語ベクトルＶ３において、各Ｎ次元ベクトルに応じた周期Ｎを設定することができる。以上のように算出された単語ベクトルによる単語ベクトル辞書が用いられてもよい。
【０１２４】
上記の各実施形態において、ベクトル化装置２が、単語を単語ベクトルにベクトル化する例を説明したが、ベクトル化の対象は単語に限定されない。本実施形態のベクトル化装置がベクトル化する文字列は、文字、単語、句、文章、及び文書のうちの少なくとも１つを含んでもよい。文字のベクトル化においては、例えば所定の複数文字を処理単位としてベクトル化が行われてもよい。各種文字列のベクトル化において、上記と同様に周期Ｎを設定することにより、文字列に応じたベクトルに基づく言語処理を行い易くすることができる。
【０１２５】
また、上記の各実施形態では、文字列に応じて生成されたベクトルによる言語処理に、ＣＮＮ１０を用いたが、必ずしもＣＮＮが用いられなくてもよい。周期Ｎを持たせて文字列をベクトル化したデータが、ＣＮＮとは異なる言語処理に利用されてもよい。
【０１２６】
また、上記の各実施形態では、言語処理の一例として文書分類について説明した。本実施形態の言語処理方法は、文書分類に限らず、種々の言語処理に適用されてもよく、例えば機械翻訳に適用されてもよい。
【０１２７】
以上のように、本開示における技術の例示として、実施の形態を説明した。そのために、添付図面および詳細な説明を提供した。
【０１２８】
したがって、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
【０１２９】
また、上述の実施の形態は、本開示における技術を例示するためのものであるから、特許請求の範囲またはその均等の範囲において、種々の変更、置換、付加、省略などを行うことができる。
【産業上の利用可能性】
【０１３０】
本開示は、種々の文書分類および機械翻訳などの各種の自然言語処理に適用可能である。
【図１】
2019187696.tif 000003
【図２】
2019187696.tif 000004
【図３】
2019187696.tif 000005
【図４】
2019187696.tif 000006
【図５】
2019187696.tif 000007
【図６】
2019187696.tif 000008
【図７】
2019187696.tif 000009
【図８】
2019187696.tif 000010
【図９】
2019187696.tif 000011
【図１０】
2019187696.tif 000012
【図１１】
2019187696.tif 000013
【図１２】
2019187696.tif 000014
【図１３】
2019187696.tif 000015
【図１４】
2019187696.tif 000016
【国際調査報告】
2019187696.tif 000017
2019187696.tif 000018
2019187696.tif 000019
2019187696.tif 000020