(57)【要約】【課題】少数の学習データで高精度の推測が可能となる自然言語処理装置を提供する。【解決手段】言語処理システムが実行する言語処理方法であって、言語処理システムは、所定の処理を実行する演算装置と、前記演算装置に接続された記憶装置とを有し、前記方法は、前記演算装置が、自然言語文字列を学習する学習部を構成し、前記演算装置が、学習すべき自然言語文字列が入力されると、該自然言語文字列を所定の文字コードに変換した後に前記学習部に入力し、前記学習部が、前記所定の文字コードに変換された自然言語文字列を学習し、前記文字コードは、文字の種類及び順序性に従った順序で定められていることを特徴とする。【選択図】図１
2019135593.tif 000002
【特許請求の範囲】
【請求項１】
言語処理システムが実行する言語処理方法であって、
言語処理システムは、所定の処理を実行する演算装置と、前記演算装置に接続された記憶装置とを有し、
前記方法は、
前記演算装置が、自然言語文字列を学習する学習部を構成し、
前記演算装置が、学習すべき自然言語文字列が入力されると、該自然言語文字列を所定の文字コードに変換した後に前記学習部に入力し、
前記学習部が、前記所定の文字コードに変換された自然言語文字列を学習し、
前記所定の文字コードは、文字の種類及び順序性に従った順序で定められていることを特徴とする言語処理方法。
【請求項２】
請求項１に記載の言語処理方法であって、
前記所定の文字コードは、ｕｎｉｃｏｄｅのコードポイントであることを特徴とする言語処理方法。
【請求項３】
請求項１に記載の言語処理方法であって、
前記演算装置が、前記入力された自然言語文字列を前記所定の文字コードに変換し、
前記演算装置が、前記変換された文字コードをビット列に分解し、
前記演算装置が、前記ビット列をベクトル化して学習部に入力することを特徴とする言語処理方法。
【請求項４】
請求項１に記載の言語処理方法であって、
前記演算装置が、自然言語文字列から結果を推測する推測部を構成し、
前記演算装置が、学習すべき自然言語文字列が入力されると、該自然言語文字列を所定の文字コードに変換した後に前記推測部に入力し、
前記推測部が、前記所定の文字コードに変換された自然言語文字列から結果を推測することを特徴とする言語処理方法。
【請求項５】
言語処理システムであって、
所定の処理を実行する演算装置と、前記演算装置に接続された記憶装置とを備え、
前記演算装置は、
自然言語文字列を学習する学習部を構成し、
学習すべき自然言語文字列が入力されると、該自然言語文字列を所定の文字コードに変換した後に前記学習部に入力するものであって、
前記学習部が、前記所定の文字コードに変換された自然言語文字列を学習し、
前記所定の文字コードは、文字の種類及び順序性に従った順序で定められていることを特徴とする言語処理システム。
【請求項６】
請求項５に記載の言語処理システムであって、
前記所定の文字コードは、ｕｎｉｃｏｄｅのコードポイントであることを特徴とする言語処理システム。
【請求項７】
請求項５に記載の言語処理システムであって、
前記演算装置は、
前記入力された自然言語文字列を前記所定の文字コードに変換し、
前記変換された文字コードをビット列に分解し、
前記ビット列をベクトル化して学習部に入力することを特徴とする言語処理システム。
【請求項８】
請求項５に記載の言語処理システムであって、
前記演算装置は、
自然言語文字列から結果を推測する推測部を構成し、
学習すべき自然言語文字列が入力されると、該自然言語文字列を所定の文字コードに変換した後に前記推測部に入力するものであって、
前記推測部は、前記所定の文字コードに変換された自然言語文字列から結果を推測することを特徴とする言語処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、深層学習により自然言語処理を行う言語処理システムに関する。
【背景技術】
【０００２】
近年、様々な分野で深層学習が普及している。自然言語処理においても、文字や単語を数値化して深層学習を行うことによって、様々な問題において従来手法と同等以上の精度を達成できることが報告されている。
【０００３】
文字列データを入力とする深層学習を行う場合、一般的には文字又は単語毎に割り当てられた固有のＩＤを入力する。このＩＤ（文字コード）は、非特許文献１では１−ｏｆ−ｋ表現に変換して処理に使用している。又は、分散表現や単語埋め込みと称されるＩＤ毎に固有の数値ベクトルに変換する際に使用される。また、非特許文献２では、この数値ベクトルを事前に文章から学習することによって、類似する文脈に出現する単語が近い数値ベクトルになるようにマッピングしている。また、非特許文献３では、事前学習により文字の形に応じた値を設定している。
【先行技術文献】
【特許文献】
【０００４】
【非特許文献１】Character-level Convolutional Networks for Text Classification，［平成３０年１月６日検索］、インターネット〈URL：http://papers.nips.cc/paper/5782-character-level-convolutional-networks-for-text-classification.pdf〉
【非特許文献２】Efficient Estimation of Word Representations in Vector Space，［平成３０年１月６日検索］、インターネット〈URL：https://arxiv.org/abs/1301.3781〉
【非特許文献３】Document Classification through Image-Based Character Embedding and Wildcard Training，［平成３０年１月６日検索］、インターネット〈URL：http://ucrel.lancs.ac.uk/bignlp2016/Shimada.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前述した非特許文献１の方法は、文字の順序性を考慮できない。例えば「一」「ニ」「三」や「１」「２」「３」のような文字についても、「それぞれが別の文字である」こと以外のヒントが無い状態から学習を行うため、未知の文字・単語に弱く、大量の学習データが必要になる。非特許文献２及び非特許文献３の方法では、「１」「２」「３」などに関しては、似た文脈に出現する又は似た字形であるため、類似したベクトルが割り当てられることにより、必要な学習データ量の削減が期待できる。しかしながら、これらの方法も順序性は考慮されていない。また、事前に文字の画像を用いた学習を行う必要がある。
【０００６】
本発明の目的は、文字の種類及び順序性を考慮した深層学習によって、少数の学習データで高精度の推測が可能となる自然言語処理装置を提供することにある。
【課題を解決するための手段】
【０００７】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、言語処理システムが実行する言語処理方法であって、言語処理システムは、所定の処理を実行する演算装置と、前記演算装置に接続された記憶装置とを有し、前記方法は、前記演算装置が、自然言語文字列を学習する学習部を構成し、前記演算装置が、学習すべき自然言語文字列が入力されると、該自然言語文字列を所定の文字コードに変換した後に前記学習部に入力し、前記学習部が、前記所定の文字コードに変換された自然言語文字列を学習し、前記文字コードは、文字の種類及び順序性に従った順序で定められていることを特徴とする。
【発明の効果】
【０００８】
本発明の一態様によれば、少数の学習データで高精度の推測が可能となる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
【図面の簡単な説明】
【０００９】
【図１】本発明に係る自然言語処理装置の構成を示すブロック図である。
【図２】学習用データベースの構成例を示す図である。
【図３】予測用データベースの構成例を示す図である。
【図４】自然言語処理装置が実行する処理の概要を示すフローチャートである
【図５】自然言語処理装置が実行する処理の概要を示すフローチャートである
【図６】数値化処理部が実行する数値化処理のフローチャートである。
【図７】予測結果データの構成例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら、本発明に係る自然言語処理装置の実施例を説明する。後述する実施例やその説明は本発明の一例であり、本発明の範疇には様々な変形例が含まれる。
【００１１】
＜システム構成＞
図１〜図６は、本発明の実施例を示す図であり、これらの図において、同一の符号を付した部分は同一物を表し、基本的な構成及び動作は同様である。
【００１２】
図１は、本発明に係る自然言語処理装置の構成を示すブロック図である。
【００１３】
自然言語処理装置は、自然言語を含む入力データから何らかの推定値を出力する装置である。自然言語処理装置は、中央処理装置０１０、データメモリ０２０、プログラムメモリ０３０、学習用データベース０４０、予測用データベース０５０、表示装置０６０、キーボード０７０及びポインティングデバイス０８０を有する計算機システムによって構成される。中央処理装置０１０は、データメモリ０２０、プログラムメモリ０３０、学習用データベース０４０、予測用データベース０５０、表示装置０６０、キーボード０７０及びポインティングデバイス０８０と相互に接続されている。
【００１４】
中央処理装置０１０は、数値化処理部０１１、ニューラルネットワーク学習処理部０１２及びニューラルネットワーク予測処理部０１３を有する。これらの各部は、中央処理装置０１０が所定のプログラムを実行することによって実現される。なお、自然言語処理装置がプログラムを実行して行う処理の一部をハードウェア（例えば、ＦＰＧＡ）で行ってもよい。
【００１５】
数値化処理部０１１は、入力データの自然言語を、ニューラルネットワークで処理可能な数値形式へ変換する。ニューラルネットワーク学習処理部０１２は、学習用データベース０４０を用いてニューラルネットワークの学習を行う。ニューラルネットワーク予測処理部０１３は、予測用データベース０５０の予測用データから値を予測する。
【００１６】
データメモリ０２０は、中央処理装置０１０の各処理部が、入力データから値の予測を行い、その結果を表示するために用いる各種パラメタ及びデータを格納する。具体的には、データメモリ０２０は、学習用データ０２１、予測用データ０２２、ニューラルネットワーク０２３及び予測結果データ０２４を格納する。
【００１７】
中央処理装置０１０が実行するプログラムは、リムーバブルメディア（ＣＤ−ＲＯＭ、フラッシュメモリなど）又はネットワークを介して自然言語処理装置に提供され、非一時的記憶媒体である不揮発性の補助記憶装置に格納される。このため、自然言語処理装置は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【００１８】
自然言語処理装置は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
【００１９】
図２は、学習用データベース０４０の構成例を示す図である。
【００２０】
学習用データベース０４０には、予め使用者が入力データと、入力データから推定したい既知の値のペアを登録するデータである。学習用データベース０４０は、入力データ２０１及び正解ラベル２０２のデータフィールドを有する。入力データ２０１は、ニューラルネットワークによる処理の対象となる自然言語の文字列データである。正解ラベル２０２は、入力データ２０１に対して、ニューラルネットワークに出力させたい既知の値である。
【００２１】
図３は、予測用データベース０５０の構成例を示す図である。
【００２２】
予測用データベース０５０には、予め使用者が、推定したい値が未知の入力データを登録する。予測用データベース０５０は、入力データ３０１のデータフィールドを有する。入力データ３０１は、ニューラルネットワークで推定したい正解ラベルが未知の自然言語の文字列データである。
【００２３】
＜システム動作について＞
図４及び図５は、自然言語処理装置が実行する処理の概要を示すフローチャートである。
【００２４】
本自然言語処理装置の処理は、学習フェーズと予測フェーズに分かれる。図４に示す学習フェーズでは、学習用データベース０４０を用いてニューラルネットワーク０２３の学習を行う。図５に示す予測フェーズでは、学習済みニューラルネットワーク０２３を用いて予測用データ３００に対する予測を出力する。
【００２５】
自然言語処理装置の処理概要のフローチャートについて説明する。
【００２６】
図４に示す学習処理では、まず、学習用データベース０４０から学習用データ０２１を読み込む（Ｓ４０１）。次に、数値化処理部０１１が、学習用データベース０４０の数値化処理を行う（Ｓ４０２）。数値化処理の詳細は図６で後述する。次に、ニューラルネットワーク学習処理部０１２が、数値化した学習用データ０２１を用いてニューラルネットワーク０２３の学習を行う（Ｓ４０３）。
【００２７】
図５に示す予測処理では、予測用データベース０５０から予測用データ０２２を読み込み（Ｓ５０１）、数値化処理部０１１が数値化処理を行う（Ｓ５０２）。次に、ニューラルネットワーク予測処理部０１３が、学習済みニューラルネットワーク０２３及び数値化済み予測用データ０２２を用いて予測を行い、予測結果データ０２４を得る（Ｓ５０３）。
【００２８】
図６は、数値化処理部０１１が実行する数値化処理のフローチャートである。
【００２９】
数値化処理は、学習用データベース０４０及び予測用データベース０５０に記録される自然言語の文字列を、ニューラルネットワークで処理可能な数値ベクトル列へ変換する処理である。
【００３０】
数値化処理では、まず、学習用データベース０４０又は予測用データベース０５０のそれぞれのデータ件数分、ステップＳ６０１からＳ６０４をループし、各データベースから入力データを読み込む（Ｓ６０１、Ｓ６０２）。
【００３１】
次に、入力データの文字ごとにステップＳ６０３からＳ６０４をループし、文字のＵｎｉｃｏｄｅのコードポイント値を取得する（Ｓ６０３）。コードポイント値は、Ｕｎｉｃｏｄｅの規格により定められた、文字毎に一意の整数値である。文字のＵｎｉｃｏｄｅのコードポイント値は、一般的な表記方法に従って、先頭に”Ｕ＋”を付けた１６進数で表記する。例えば「図」は「Ｕ＋５６Ｆ３」、「１」は「Ｕ＋ＦＦ１１」となる。
【００３２】
次に、取得したコードポイント値をビット表現に変換する（Ｓ６０４）。Ｕｎｉｃｏｄｅのコードポイント値は２１ビットの整数値であるため、二進数で表現すると２１桁の０又は１の並びで表される。これを１桁ずつ分けて数値ベクトルにする。例えば、コードポイント値が「Ｕ＋５６Ｆ３」の場合、二進数で「００００００１０１０１１０１１１１００１１」であるため、ベクトル（０，０，０，０，０，０，１，０，１，０，１，１，０，１，１，１，１，０，０，１，１）に変換する。
【００３３】
この数値化処理で、例えば入力データ「図１、２に…」は、ベクトル列「（０，０，０，０，０，０，１，０，１，０，１，１，０，１，１，１，１，０，０，１，１）、（０，０，０，０，０，１，１，１，１，１，１，１，１，０，０，０，１，０，０，０，１）、（０，０，０，０，０，０，０，１，１，０，０，０，０，０，０，０，０，０，０，０，１）、（０，０，０，０，０，１，１，１，１，１，１，１，１，０，０，０，１，０，０，１，０）、…」に変換される。
【００３４】
Ｕｎｉｃｏｄｅのコードポイント値の上位ビットは文字の種類を示しており、例えばＵ＋００００〜Ｕ＋ＦＦＦＦは基本多言語面と称される基本的な文字や記号の領域であり、そのうちＵ＋２０００〜Ｕ＋２ＤＦＦは記号、Ｕ＋３４００〜９ＦＦＦは漢字となっている。また、コードポイント値の下位ビットは、概ね文字の順序性を表していることが多い。例えば「1」「2」「3」は、それぞれＵ＋００３１、Ｕ＋００３２、Ｕ＋００３３となっており、「A」「B」「C」は、それぞれＵ＋００４１、Ｕ＋００４２、Ｕ＋００４３となっている。コードポイント値は、このような性質をもっているため、コードポイント値を用いてニューラルネットワークで処理することにより、文字の種類や順序性が自然に学習され、文字の種類や順序性が考慮して予測できる。
【００３５】
このような順序性を表現したデータ形式でニューラルネットワークで学習することによって、例えば学習用データに「２」「４」は出現するが「３」が出現せず、予測用データには「３」が含まれている場合に、「３」は「２」や「４」と同種の文字であり、「３」を「２」と「４」の中間の値として処理する学習結果が得られる。一方、一般的な、順序性が考慮されていない形式のコードを使用した場合、学習用データに「３」が含まれていなければ「３」を「２」や「４」と同種の文字として処理する学習結果が得られる可能性が低い。そのため、本発明の方法では、一般的なコード体系を用いた方法より、効率的に学習ができ、少ない学習用データでも高い能力が得られる。
【００３６】
また、コードポイント値そのものを入力とせず、前述のビット表現化によりコードポイント値を分解した数値ベクトル列として入力する。ニューラルネットワークは「−１０〜＋１０程度までの整数値又は実数値の入力に向いた機械学習モデルである」という特性があるところ、このようなニューラルネットワークの特性に適する学習ができる。
【００３７】
図７は、予測結果データ０２４の構成例を示す図である。
【００３８】
予測結果データ０２４は、ニューラルネットワーク予測処理部０１３が出力した予測結果を保持する。予測結果データ０２４は、入力データ７０１及び予測結果７０２のデータフィールドを有する。入力データ７０１は、入力された予測用データである。予測結果７０２は、学習済みニューラルネットワーク及び数値化済み予測用データを用いて予測を行った結果である。
【００３９】
以上に説明したように、本発明の実施例の言語処理システムは、自然言語文字列を学習する学習部を構成し、学習すべき自然言語文字列が入力されると、該自然言語文字列を所定の文字コードに変換した後に前記学習部に入力するものであって、前記学習部が、前記所定の文字コードに変換された自然言語文字列を学習し、前記所定の文字コードは、文字の種類及び順序性に従った順序で定められているので、文字の種類及び順序性を考慮して深層学習が可能となり、少ない学習データでニューラルネットワークに学習させることができる。また、文字の順序性を学習でき、事前に学習していない未知の文字でも結果を推測できる。
【００４０】
また、前記所定の文字コードは、ｕｎｉｃｏｄｅのコードポイントとしたので、一般的なライブラリで使用しやすい。また、文字のカバー範囲が広く、かつ並びが整っていることから正しい学習結果を得られやすい。
【００４１】
また、前記入力された自然言語文字列を前記所定の文字コードに変換し、前記変換された文字コードをビット列に分解し、前記ビット列をベクトル化して学習部に入力するので、ニューラルネットワークの特性に適する学習ができる。
【００４２】
また、言語処理システムは、自然言語文字列から結果を推測する推測部を構成し、学習すべき自然言語文字列が入力されると、該自然言語文字列を所定の文字コードに変換した後に前記推測部に入力するものであって、前記推測部は、前記所定の文字コードに変換された自然言語文字列から結果を推測するので、適切な学習結果を用いて、適確な結果を推測できる。
【００４３】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【００４４】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【００４５】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、又は、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に格納することができる。
【００４６】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【００４７】
０１０  中央処理装置
０１１  数値化処理部
０１２  ニューラルネットワーク学習処理部
０１３  ニューラルネットワーク予測処理部
０２０  データメモリ
０２１  学習用データ
０２２  予測用データ
０２３  ニューラルネットワーク
０２４  予測結果データ
０３０  プログラムメモリ
０４０  学習用データベース
０５０  予測用データベース
０６０  表示装置
０７０  キーボード
０８０  ポインティングデバイス
【図１】
2019135593.tif 000003
【図２】
2019135593.tif 000004
【図３】
2019135593.tif 000005
【図４】
2019135593.tif 000006
【図５】
2019135593.tif 000007
【図６】
2019135593.tif 000008
【図７】
2019135593.tif 000009