(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2021-12-27
(45)【発行日】2022-01-19
(54)【発明の名称】言語処理方法及び言語処理システム
(51)【国際特許分類】
G06F 40/30 20200101AFI20220112BHJP
G06F 40/216 20200101ALI20220112BHJP
【FI】
G06F40/30
G06F40/216
(21)【出願番号】P 2018018194
(22)【出願日】2018-02-05
【審査請求日】2020-06-22
(73)【特許権者】
【識別番号】597132849
【氏名又は名称】株式会社日立ソリューションズ・クリエイト
(74)【代理人】
【識別番号】110001678
【氏名又は名称】特許業務法人藤央特許事務所
(72)【発明者】
【氏名】下山 晃
【審査官】長 由紀子
(56)【参考文献】
【文献】特開2017-151933(JP,A)
【文献】氏原 淳志,第2章 ディープラーニング入門 CNNで画像分類とドキュメント分類にチャレンジ!,SoftwareDesign,日本,(株)技術評論社,2017年08月18日,第322号,pp.26-34
【文献】宮崎 和光 外2名,ディプロマ・ポリシーと学位に付記する専攻分野の名称の整合性に関する研究 -深層学習による接近-,電気学会研究会資料,日本,一般社団法人電気学会,2017年12月08日,pp.23-28
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-58
(57)【特許請求の範囲】
【請求項1】
言語処理システムが実行する言語処理方法であって、
言語処理システムは、所定の処理を実行する演算装置と、前記演算装置に接続された記憶装置とを有し、
前記方法は、
前記演算装置が、自然言語文字列を学習する学習部を構成し、
前記演算装置が、学習すべき自然言語文字列が入力されると、該自然言語文字列を
unicodeのコードポイントに変換し、前記変換されたunicodeのコードポイントをビット列に分解し、前記ビット列を二進数で表現される数値ベクトル化した後に前記学習部に入力し、
前記学習部が、
unicodeのコードポイントに変換された自然言語文字列を学習し、
unicodeのコードポイントは、文字の種類及び順序性に従った順序で定められていることを特徴とする言語処理方法。
【請求項2】
請求項1に記載の言語処理方法であって、
前記演算装置が、自然言語文字列から結果を推測する推測部を構成し、
前記演算装置が、学習すべき自然言語文字列が入力されると、該自然言語文字列をunicodeのコードポイントに変換し、前記変換されたunicodeのコードポイントをビット列に分解し、前記ビット列を二進数で表現される数値ベクトル化して学習部に入力した後に前記推測部に入力し、
前記推測部が、unicodeのコードポイントに変換された自然言語文字列から結果を推測することを特徴とする言語処理方法。
【請求項3】
言語処理システムであって、
所定の処理を実行する演算装置と、前記演算装置に接続された記憶装置とを備え、
前記演算装置は、
自然言語文字列を学習する学習部を構成し、
学習すべき自然言語文字列が入力されると、該自然言語文字列をunicodeのコードポイントに変換し、前記変換されたunicodeのコードポイントをビット列に分解し、前記ビット列を二進数で表現される数値ベクトル化した後に前記学習部に入力するものであって、
前記学習部が、unicodeのコードポイントに変換された自然言語文字列を学習し、
unicodeのコードポイントは、文字の種類及び順序性に従った順序で定められていることを特徴とする言語処理システム。
【請求項4】
請求項3に記載の言語処理システムであって、
前記演算装置は、
自然言語文字列から結果を推測する推測部を構成し、
学習すべき自然言語文字列が入力されると、該自然言語文字列をunicodeのコードポイントに変換し、前記変換されたunicodeのコードポイントをビット列に分解し、前記ビット列を二進数で表現される数値ベクトル化して学習部に入力した後に前記推測部に入力するものであって、
前記推測部は、unicodeのコードポイントに変換された自然言語文字列から結果を推測することを特徴とする言語処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、深層学習により自然言語処理を行う言語処理システムに関する。
【背景技術】
【0002】
近年、様々な分野で深層学習が普及している。自然言語処理においても、文字や単語を数値化して深層学習を行うことによって、様々な問題において従来手法と同等以上の精度を達成できることが報告されている。
【0003】
文字列データを入力とする深層学習を行う場合、一般的には文字又は単語毎に割り当てられた固有のIDを入力する。このID(文字コード)は、非特許文献1では1-of-k表現に変換して処理に使用している。又は、分散表現や単語埋め込みと称されるID毎に固有の数値ベクトルに変換する際に使用される。また、非特許文献2では、この数値ベクトルを事前に文章から学習することによって、類似する文脈に出現する単語が近い数値ベクトルになるようにマッピングしている。また、非特許文献3では、事前学習により文字の形に応じた値を設定している。
【先行技術文献】
【特許文献】
【0004】
【文献】Character-level Convolutional Networks for Text Classification,[平成30年1月6日検索]、インターネット〈URL:http://papers.nips.cc/paper/5782-character-level-convolutional-networks-for-text-classification.pdf〉
【文献】Efficient Estimation of Word Representations in Vector Space,[平成30年1月6日検索]、インターネット〈URL:https://arxiv.org/abs/1301.3781〉
【文献】Document Classification through Image-Based Character Embedding and Wildcard Training,[平成30年1月6日検索]、インターネット〈URL:http://ucrel.lancs.ac.uk/bignlp2016/Shimada.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【0005】
前述した非特許文献1の方法は、文字の順序性を考慮できない。例えば「一」「ニ」「三」や「1」「2」「3」のような文字についても、「それぞれが別の文字である」こと以外のヒントが無い状態から学習を行うため、未知の文字・単語に弱く、大量の学習データが必要になる。非特許文献2及び非特許文献3の方法では、「1」「2」「3」などに関しては、似た文脈に出現する又は似た字形であるため、類似したベクトルが割り当てられることにより、必要な学習データ量の削減が期待できる。しかしながら、これらの方法も順序性は考慮されていない。また、事前に文字の画像を用いた学習を行う必要がある。
【0006】
本発明の目的は、文字の種類及び順序性を考慮した深層学習によって、少数の学習データで高精度の推測が可能となる自然言語処理装置を提供することにある。
【課題を解決するための手段】
【0007】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、言語処理システムが実行する言語処理方法であって、言語処理システムは、所定の処理を実行する演算装置と、前記演算装置に接続された記憶装置とを有し、前記方法は、前記演算装置が、自然言語文字列を学習する学習部を構成し、前記演算装置が、学習すべき自然言語文字列が入力されると、該自然言語文字列をunicodeのコードポイントに変換し、前記変換されたunicodeのコードポイントをビット列に分解し、前記ビット列を二進数で表現される数値ベクトル化した後に前記学習部に入力し、前記学習部が、unicodeのコードポイントに変換された自然言語文字列を学習し、unicodeのコードポイントは、文字の種類及び順序性に従った順序で定められていることを特徴とする。
【発明の効果】
【0008】
本発明の一態様によれば、少数の学習データで高精度の推測が可能となる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
【図面の簡単な説明】
【0009】
【
図1】本発明に係る自然言語処理装置の構成を示すブロック図である。
【
図2】学習用データベースの構成例を示す図である。
【
図3】予測用データベースの構成例を示す図である。
【
図4】自然言語処理装置が実行する処理の概要を示すフローチャートである
【
図5】自然言語処理装置が実行する処理の概要を示すフローチャートである
【
図6】数値化処理部が実行する数値化処理のフローチャートである。
【発明を実施するための形態】
【0010】
以下、図面を参照しながら、本発明に係る自然言語処理装置の実施例を説明する。後述する実施例やその説明は本発明の一例であり、本発明の範疇には様々な変形例が含まれる。
【0011】
<システム構成>
図1~
図6は、本発明の実施例を示す図であり、これらの図において、同一の符号を付した部分は同一物を表し、基本的な構成及び動作は同様である。
【0012】
図1は、本発明に係る自然言語処理装置の構成を示すブロック図である。
【0013】
自然言語処理装置は、自然言語を含む入力データから何らかの推定値を出力する装置である。自然言語処理装置は、中央処理装置010、データメモリ020、プログラムメモリ030、学習用データベース040、予測用データベース050、表示装置060、キーボード070及びポインティングデバイス080を有する計算機システムによって構成される。中央処理装置010は、データメモリ020、プログラムメモリ030、学習用データベース040、予測用データベース050、表示装置060、キーボード070及びポインティングデバイス080と相互に接続されている。
【0014】
中央処理装置010は、数値化処理部011、ニューラルネットワーク学習処理部012及びニューラルネットワーク予測処理部013を有する。これらの各部は、中央処理装置010が所定のプログラムを実行することによって実現される。なお、自然言語処理装置がプログラムを実行して行う処理の一部をハードウェア(例えば、FPGA)で行ってもよい。
【0015】
数値化処理部011は、入力データの自然言語を、ニューラルネットワークで処理可能な数値形式へ変換する。ニューラルネットワーク学習処理部012は、学習用データベース040を用いてニューラルネットワークの学習を行う。ニューラルネットワーク予測処理部013は、予測用データベース050の予測用データから値を予測する。
【0016】
データメモリ020は、中央処理装置010の各処理部が、入力データから値の予測を行い、その結果を表示するために用いる各種パラメタ及びデータを格納する。具体的には、データメモリ020は、学習用データ021、予測用データ022、ニューラルネットワーク023及び予測結果データ024を格納する。
【0017】
中央処理装置010が実行するプログラムは、リムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワークを介して自然言語処理装置に提供され、非一時的記憶媒体である不揮発性の補助記憶装置に格納される。このため、自然言語処理装置は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【0018】
自然言語処理装置は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
【0019】
図2は、学習用データベース040の構成例を示す図である。
【0020】
学習用データベース040には、予め使用者が入力データと、入力データから推定したい既知の値のペアを登録するデータである。学習用データベース040は、入力データ201及び正解ラベル202のデータフィールドを有する。入力データ201は、ニューラルネットワークによる処理の対象となる自然言語の文字列データである。正解ラベル202は、入力データ201に対して、ニューラルネットワークに出力させたい既知の値である。
【0021】
図3は、予測用データベース050の構成例を示す図である。
【0022】
予測用データベース050には、予め使用者が、推定したい値が未知の入力データを登録する。予測用データベース050は、入力データ301のデータフィールドを有する。入力データ301は、ニューラルネットワークで推定したい正解ラベルが未知の自然言語の文字列データである。
【0023】
<システム動作について>
図4及び
図5は、自然言語処理装置が実行する処理の概要を示すフローチャートである。
【0024】
本自然言語処理装置の処理は、学習フェーズと予測フェーズに分かれる。
図4に示す学習フェーズでは、学習用データベース040を用いてニューラルネットワーク023の学習を行う。
図5に示す予測フェーズでは、学習済みニューラルネットワーク023を用いて予測用データ300に対する予測を出力する。
【0025】
自然言語処理装置の処理概要のフローチャートについて説明する。
【0026】
図4に示す学習処理では、まず、学習用データベース040から学習用データ021を読み込む(S401)。次に、数値化処理部011が、学習用データベース040の数値化処理を行う(S402)。数値化処理の詳細は
図6で後述する。次に、ニューラルネットワーク学習処理部012が、数値化した学習用データ021を用いてニューラルネットワーク023の学習を行う(S403)。
【0027】
図5に示す予測処理では、予測用データベース050から予測用データ022を読み込み(S501)、数値化処理部011が数値化処理を行う(S502)。次に、ニューラルネットワーク予測処理部013が、学習済みニューラルネットワーク023及び数値化済み予測用データ022を用いて予測を行い、予測結果データ024を得る(S503)。
【0028】
図6は、数値化処理部011が実行する数値化処理のフローチャートである。
【0029】
数値化処理は、学習用データベース040及び予測用データベース050に記録される自然言語の文字列を、ニューラルネットワークで処理可能な数値ベクトル列へ変換する処理である。
【0030】
数値化処理では、まず、学習用データベース040又は予測用データベース050のそれぞれのデータ件数分、ステップS601からS604をループし、各データベースから入力データを読み込む(S601、S602)。
【0031】
次に、入力データの文字ごとにステップS603からS604をループし、文字のUnicodeのコードポイント値を取得する(S603)。コードポイント値は、Unicodeの規格により定められた、文字毎に一意の整数値である。文字のUnicodeのコードポイント値は、一般的な表記方法に従って、先頭に”U+”を付けた16進数で表記する。例えば「図」は「U+56F3」、「1」は「U+FF11」となる。
【0032】
次に、取得したコードポイント値をビット表現に変換する(S604)。Unicodeのコードポイント値は21ビットの整数値であるため、二進数で表現すると21桁の0又は1の並びで表される。これを1桁ずつ分けて数値ベクトルにする。例えば、コードポイント値が「U+56F3」の場合、二進数で「000000101011011110011」であるため、ベクトル(0,0,0,0,0,0,1,0,1,0,1,1,0,1,1,1,1,0,0,1,1)に変換する。
【0033】
この数値化処理で、例えば入力データ「
図1、2に…」は、ベクトル列「(0,0,0,0,0,0,1,0,1,0,1,1,0,1,1,1,1,0,0,1,1)、(0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,1)、(0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1)、(0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,1,0,0,1,0)、…」に変換される。
【0034】
Unicodeのコードポイント値の上位ビットは文字の種類を示しており、例えばU+0000~U+FFFFは基本多言語面と称される基本的な文字や記号の領域であり、そのうちU+2000~U+2DFFは記号、U+3400~9FFFは漢字となっている。また、コードポイント値の下位ビットは、概ね文字の順序性を表していることが多い。例えば「1」「2」「3」は、それぞれU+0031、U+0032、U+0033となっており、「A」「B」「C」は、それぞれU+0041、U+0042、U+0043となっている。コードポイント値は、このような性質をもっているため、コードポイント値を用いてニューラルネットワークで処理することにより、文字の種類や順序性が自然に学習され、文字の種類や順序性が考慮して予測できる。
【0035】
このような順序性を表現したデータ形式でニューラルネットワークで学習することによって、例えば学習用データに「2」「4」は出現するが「3」が出現せず、予測用データには「3」が含まれている場合に、「3」は「2」や「4」と同種の文字であり、「3」を「2」と「4」の中間の値として処理する学習結果が得られる。一方、一般的な、順序性が考慮されていない形式のコードを使用した場合、学習用データに「3」が含まれていなければ「3」を「2」や「4」と同種の文字として処理する学習結果が得られる可能性が低い。そのため、本発明の方法では、一般的なコード体系を用いた方法より、効率的に学習ができ、少ない学習用データでも高い能力が得られる。
【0036】
また、コードポイント値そのものを入力とせず、前述のビット表現化によりコードポイント値を分解した数値ベクトル列として入力する。ニューラルネットワークは「-10~+10程度までの整数値又は実数値の入力に向いた機械学習モデルである」という特性があるところ、このようなニューラルネットワークの特性に適する学習ができる。
【0037】
図7は、予測結果データ024の構成例を示す図である。
【0038】
予測結果データ024は、ニューラルネットワーク予測処理部013が出力した予測結果を保持する。予測結果データ024は、入力データ701及び予測結果702のデータフィールドを有する。入力データ701は、入力された予測用データである。予測結果702は、学習済みニューラルネットワーク及び数値化済み予測用データを用いて予測を行った結果である。
【0039】
以上に説明したように、本発明の実施例の言語処理システムは、自然言語文字列を学習する学習部を構成し、学習すべき自然言語文字列が入力されると、該自然言語文字列を所定の文字コードに変換した後に前記学習部に入力するものであって、前記学習部が、前記所定の文字コードに変換された自然言語文字列を学習し、前記所定の文字コードは、文字の種類及び順序性に従った順序で定められているので、文字の種類及び順序性を考慮して深層学習が可能となり、少ない学習データでニューラルネットワークに学習させることができる。また、文字の順序性を学習でき、事前に学習していない未知の文字でも結果を推測できる。
【0040】
また、前記所定の文字コードは、unicodeのコードポイントとしたので、一般的なライブラリで使用しやすい。また、文字のカバー範囲が広く、かつ並びが整っていることから正しい学習結果を得られやすい。
【0041】
また、前記入力された自然言語文字列を前記所定の文字コードに変換し、前記変換された文字コードをビット列に分解し、前記ビット列をベクトル化して学習部に入力するので、ニューラルネットワークの特性に適する学習ができる。
【0042】
また、言語処理システムは、自然言語文字列から結果を推測する推測部を構成し、学習すべき自然言語文字列が入力されると、該自然言語文字列を所定の文字コードに変換した後に前記推測部に入力するものであって、前記推測部は、前記所定の文字コードに変換された自然言語文字列から結果を推測するので、適切な学習結果を用いて、適確な結果を推測できる。
【0043】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【0044】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【0045】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
【0046】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【0047】
010 中央処理装置
011 数値化処理部
012 ニューラルネットワーク学習処理部
013 ニューラルネットワーク予測処理部
020 データメモリ
021 学習用データ
022 予測用データ
023 ニューラルネットワーク
024 予測結果データ
030 プログラムメモリ
040 学習用データベース
050 予測用データベース
060 表示装置
070 キーボード
080 ポインティングデバイス