(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024076812
(43)【公開日】2024-06-06
(54)【発明の名称】言語処理装置、方法、およびプログラム
(51)【国際特許分類】
G06F 40/216 20200101AFI20240530BHJP
【FI】
G06F40/216
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022188593
(22)【出願日】2022-11-25
(71)【出願人】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100107515
【弁理士】
【氏名又は名称】廣田 浩一
(72)【発明者】
【氏名】伊東 秀夫
【テーマコード(参考)】
5B091
【Fターム(参考)】
5B091EA01
(57)【要約】
【課題】言語処理の精度を向上させる。
【解決手段】本発明の一実施形態である言語処理装置は、単語列の入力を受け付ける単語列入力部と、前記単語列を構成する単語を取得する単語取得部と、文字ごとに定められた文字ベクトルから、前記単語を構成する文字の文字ベクトルを取得し、前記単語を構成する文字の前記文字ベクトル、および、前記単語を構成する文字の前記単語における出現位置に基づいて、前記単語の単語ベクトルを計算する単語ベクトル計算部と、前記単語列を構成する各単語の単語ベクトルからなる単語ベクトル列を出力する単語ベクトル列出力部と、を備える。
【選択図】
図3
【特許請求の範囲】
【請求項1】
単語列の入力を受け付ける単語列入力部と、
前記単語列を構成する単語を取得する単語取得部と、
文字ごとに定められた文字ベクトルから、前記単語を構成する文字の文字ベクトルを取得し、
前記単語を構成する文字の前記文字ベクトル、および、前記単語を構成する文字の前記単語における出現位置に基づいて、前記単語の単語ベクトルを計算する単語ベクトル計算部と、
前記単語列を構成する各単語の単語ベクトルからなる単語ベクトル列を出力する単語ベクトル列出力部と
を備えた言語処理装置。
【請求項2】
前記単語ベクトル計算部は、前記単語の先頭に近い文字の文字ベクトルほど大きい重みを付けて前記単語ベクトルを計算する、請求項1に記載の言語処理装置。
【請求項3】
前記単語ベクトル計算部は、前記単語の先頭から所定の個数の文字の文字ベクトルのみを用いて前記単語ベクトルを計算する、請求項1に記載の言語処理装置。
【請求項4】
前記文字ベクトルは、前記単語列の単語の出現の確率を推定する言語モデルの確率値が大きくなるように学習される、請求項1から3のいずれか一項に記載の言語処理装置。
【請求項5】
言語処理装置が実行する方法であって、
単語列の入力を受け付けるステップと、
前記単語列を構成する単語を取得するステップと、
文字ごとに定められた文字ベクトルから、前記単語を構成する文字の文字ベクトルを取得し、
前記単語を構成する文字の前記文字ベクトル、および、前記単語を構成する文字の前記単語における出現位置に基づいて、前記単語のベクトルを計算するステップと、
前記単語列を構成する各単語の単語ベクトルからなる単語ベクトル列を出力するステップと
を含む方法。
【請求項6】
言語処理装置を、
単語列の入力を受け付ける単語列入力部、
前記単語列を構成する単語を取得する単語取得部、
文字ごとに定められた文字ベクトルから、前記単語を構成する文字の文字ベクトルを取得し、
前記単語を構成する文字の前記文字ベクトル、および、前記単語を構成する文字の前記単語における出現位置に基づいて、前記単語の単語ベクトルを計算する単語ベクトル計算部、
前記単語列を構成する各単語の単語ベクトルからなる単語ベクトル列を出力する単語ベクトル列出力部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、言語処理装置、方法、およびプログラムに関する。
【背景技術】
【0002】
従来、単語列(以下、テキストともいう)中の単語ごとにベクトル(以下、単語ベクトルともいう)を計算する言語モデルが知られている。このような言語モデルは、例えば、テキストの分類器を実現する際などに利用される。単語ベクトルは、単語の意味内容を表現するものとして捉えられ、例えば、単語ベクトルの平均によりテキストの意味内容を表現してテキストの分類に利用される。
【0003】
従来の言語モデルの学習方法では、単語列(テキスト)を構成する単語ごとに、埋め込みベクトルと呼ばれる単語ベクトルを用意する。単語ベクトルの初期値はランダムに設定され、言語モデルの学習とともに単語ベクトルも学習されて更新されていく。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、埋め込みベクトルは、予め定められた語彙(つまり、単語の集合)中の単語ごとに用意されるので、語彙に属さない単語(未知語)や綴りが誤った単語に対しては、一律に"未知語ベクトル"が割り当てられ、単語固有の学習が行われず精度が低下する。
【0005】
上記の未知の単語の問題への対策として、単語列(テキスト)を単語列ではなく文字列として扱い、文字を単語相当として言語モデルを学習することもできる。しかし、自然言語において意味内容に対応する単位は文字ではなく単語であるため、文字ベースの言語モデルの性能は、単語ベースの言語モデルと比較して低い。
【0006】
そこで、本発明では、言語処理の精度を向上させることを目的とする。
【課題を解決するための手段】
【0007】
本発明の一実施形態である言語処理装置は、単語列の入力を受け付ける単語列入力部と、前記単語列を構成する単語を取得する単語取得部と、文字ごとに定められた文字ベクトルから、前記単語を構成する文字の文字ベクトルを取得し、前記単語を構成する文字の前記文字ベクトル、および、前記単語を構成する文字の前記単語における出現位置に基づいて、前記単語の単語ベクトルを計算する単語ベクトル計算部と、前記単語列を構成する各単語の単語ベクトルからなる単語ベクトル列を出力する単語ベクトル列出力部と、を備える。
【発明の効果】
【0008】
本発明によれば、言語処理の精度を向上させることができる。
【図面の簡単な説明】
【0009】
【
図1】本発明の一実施形態に係る全体の構成図である。
【
図2】本発明の一実施形態に係る言語処理装置のハードウェア構成を示す図である。
【
図3】本発明の一実施形態に係る言語処理装置の機能ブロック図である。
【
図4】本発明の一実施形態に係る単語列に対する単語ベクトル列の計算について説明するための図である。
【
図5】本発明の一実施形態に係る文字ごとに定められた文字ベクトルの一例である。
【
図6】本発明の一実施形態に係る言語処理を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、図面に基づいて本発明の実施の形態を説明する。
【0011】
<用語の説明>
・本明細書において、「単語列」とは、複数の単語から構成されるテキストである。
・本明細書において、「単語」とは、単語列を構成する任意の単語であり、言語の最小単位である。
・本明細書において、「文字」とは、単語を構成する任意の文字である。例えば、「文字」は、片仮名、平仮名、漢字、英数字、記号などの日本語のテキストに出現しうる文字であるが、これらに限られず、任意の言語の文字であってよい。
・本明細書において、「文字ベクトル」とは、文字ごとに定められた、当該文字を表現するベクトルである。なお、本明細書では、3次元のベクトルを一例として説明するが、任意の次元のベクトルであってよい。
・本明細書において、「単語ベクトル」とは、単語を表現するベクトルである。本発明では、単語ベクトルは、単語を構成する文字の文字ベクトル、および、単語を構成する文字の当該単語における出現位置、に基づいて計算される。なお、本明細書では、3次元のベクトルを一例として説明するが、任意の次元のベクトルであってよい。
【0012】
<全体構成>
図1は、本発明の一実施形態に係る全体の構成図である。
【0013】
言語処理装置10は、1つまたは複数のコンピュータから構成される。言語処理装置10は、単語列を構成する単語ごとに、単語を構成する文字の文字ベクトル、および、単語を構成する文字の当該単語における出現位置、に基づいて、単語の単語ベクトルを計算して、単語列を構成する各単語の単語ベクトルからなる単語ベクトル列を出力する。言語処理装置10は、操作者11によって操作される。
【0014】
なお、言語処理装置10は、例えば、コンピュータであるが、これに限らず、例えば、MFP(Multifunction Peripheral/Product/Printer)等の画像形成装置、PJ(Projector:プロジェクタ)、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、自動車(Connected Car)、ノートPC(Personal Computer)、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPCまたはデスクトップPC等であってもよい。
【0015】
<ハードウェア構成>
図2は、本発明の一実施形態に係る言語処理装置10のハードウェア構成を示す図である。
【0016】
図2に示されているように、言語処理装置10は、コンピュータによって構築されており、
図2に示されているように、CPU1001、ROM1002、RAM1003、HD1004、HDD(Hard Disk Drive)コントローラ1005、ディスプレイ1006、外部機器接続I/F(Interface)1007、ネットワークI/F1008、データバス1009、キーボード1010、ポインティングデバイス1011、DVD-RW(Digital Versatile Disk Rewritable)ドライブ1013、メディアI/F1015を備えている。
【0017】
これらのうち、CPU1001は、言語処理装置10全体の動作を制御する。ROM1002は、IPL等のCPU1001の駆動に用いられるプログラムを記憶する。RAM1003は、CPU1001のワークエリアとして使用される。HD1004は、プログラム等の各種データを記憶する。HDDコントローラ1005は、CPU1001の制御にしたがってHD1004に対する各種データの読み出し又は書き込みを制御する。ディスプレイ1006は、カーソル、メニュー、ウィンドウ、文字、又は画像等の各種情報を表示する。外部機器接続I/F1007は、各種の外部機器を接続するためのインターフェースである。この場合の外部機器は、例えば、USB(Universal Serial Bus)メモリやプリンタ等である。ネットワークI/F1008は、通信ネットワークを利用してデータ通信をするためのインターフェースである。バスライン1009は、
図2に示されているCPU1001等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
【0018】
また、キーボード1010は、文字、数値、各種指示等の入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス1011は、各種指示の選択や実行、処理対象の選択、カーソルの移動等を行う入力手段の一種である。DVD-RWドライブ1013は、着脱可能な記録媒体の一例としてのDVD-RW1012に対する各種データの読み出し又は書き込みを制御する。なお、DVD-RWに限らず、DVD-R等であってもよい。メディアI/F1015は、フラッシュメモリ等の記録メディア114に対するデータの読み出し又は書き込み(記憶)を制御する。
【0019】
<機能ブロック>
図3は、本発明の一実施形態に係る言語処理装置10の機能ブロック図である。言語処理装置10は、単語列入力部101と、単語取得部102と、単語ベクトル計算部103と、単語ベクトル列出力部104と、文字ベクトル記憶部105と、を備えることができる。また、言語処理装置10は、プログラムを実行することで、単語列入力部101、単語取得部102、単語ベクトル計算部103、単語ベクトル列出力部104、として機能することができる。
【0020】
単語列入力部101は、単語列(複数の単語から構成されるテキスト)の入力を受け付ける。
【0021】
単語取得部102は、単語列入力部101が入力を受け付けた単語列を構成する単語を取得する。例えば、単語取得部102は、単語列を形態素解析することにより、単語列から当該単語列に含まれている単語を抽出することができる。
【0022】
単語ベクトル計算部103は、単語ベクトルを計算する。具体的には、単語ベクトル計算部103は、文字ベクトル記憶部105に記憶されている文字ごとに定められた文字ベクトルから、単語取得部102が取得した単語を構成する文字の文字ベクトルを取得する。単語ベクトル計算部103は、単語を構成する文字の文字ベクトル、および、単語を構成する文字の当該単語における出現位置、に基づいて、単語の単語ベクトルを計算する。
【0023】
単語ベクトル計算部103は、単語の先頭に近い文字の文字ベクトルほど大きい重みを付けて単語ベクトルを計算することができる。また、単語ベクトル計算部103は、単語の先頭から所定の個数の文字の文字ベクトルのみを用いて単語ベクトルを計算することができる。
【0024】
[単語ベクトルの計算]
ここで、単語ベクトルの計算について詳細に説明する。
【0025】
単語ベクトル計算部103は、単語(ここでは、"インク"とする)を構成する全ての文字(つまり、"イ"、"ン"、"ク")の各文字ベクトルを文字ベクトル記憶部105から取得して、以下の式(1)によって単語ベクトルを計算する。
【0026】
【0027】
式(1)において、iは単語中の文字の位置であり、先頭から末尾にかけて0,1,・・・となる。Lは定数であり、ここでは14とする。単語の先頭からL文字以降の文字ベクトルを式(1)の計算には用いないことで計算量を抑える。
【0028】
文字ベクトル(i)は、単語中の位置iにある文字の文字ベクトルを表す。よって、
文字ベクトル(0)は文字「イ」の文字ベクトル、
文字ベクトル(1)は文字「ン」の文字ベクトル、
文字ベクトル(2)は文字「ク」の文字ベクトル、に相当する。
【0029】
文字cの文字ベクトル記憶部105に記憶された文字ベクトルをvec(c)で表すと、単語「インク」の単語ベクトルは、
(14-0)/14 vec(イ)+(14-1)/14 vec(ン)+(14-2)/14 vec(ク)
によって計算される。
【0030】
上記の計算例からもわかるように、
・単語の先頭にある文字ほど、単語ベクトルの値に大きな影響を与える。このことは、単語の先頭にある文字ほど単語の意味内容に大きく寄与することに対応している。
・また、単語「インク」と「クイン」では、単語を構成する文字は同じであるが単語中の文字の位置が異なるため、係数(L-i)/Lの違いから異なる単語ベクトルが計算される。
・また、式(1)は、線形演算であり微分可能である。よって、逆誤差伝搬法によって、微分係数に応じた誤差伝搬が行われ、文字ベクトルを学習(最適化)可能にする。
【0031】
単語ベクトル列出力部104は、単語列入力部101が入力を受け付けた単語列を構成する各単語の単語ベクトルからなる単語ベクトル列を出力する。
【0032】
文字ベクトル記憶部105には、文字ごとに文字ベクトルが記憶されている。
【0033】
上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
【0034】
[言語モデル]
図4は、本発明の一実施形態に係る単語列に対する単語ベクトル列の計算について説明するための図である。具体的には、
図4は、入力された単語列に対して確率値が計算される言語モデル(例えば、BERT)の構成を示す。
【0035】
図4の"単語列"は、言語処理装置10に入力されて記憶された単語列である。
図4の例では、単語「インク」と単語「ジェト」が入力されて記憶されている。なお、先頭から2番目の「ジェト」は、単語「ジェット」の綴りが誤っている例である。
【0036】
図4の"単語ベクトル列"は、単語列を構成する全ての単語の単語ベクトルからなる単語ベクトル列である。
図4の例では、単語「インク」の単語ベクトルと単語「ジェト」の単語ベクトルが記憶されている。
【0037】
従来技術では、予め単語ごとに単語ベクトル(埋め込みベクトルともいう)を用意しておき、当該単語ベクトル(埋め込みベクトル)を抽出して単語ベクトル列として用いる。一方、本発明では、単語を構成する文字のベクトル(文字ベクトル)から、当該単語のベクトル(単語ベクトル)を計算によって求める。
【0038】
図4の残り(中間層、最終層、全結合層、確率値)については従来技術と同一である。概略を説明すると、単語ベクトル列の各ベクトルは、中間層において参照され、中間層のベクトル計算に用いられる。同様に、中間層のベクトルは、最終層のベクトル計算に用いられる。このベクトル列が、入力された単語列に対する言語モデルの出力となる。これらのベクトル計算にはパラメタと呼ばれる学習によって定められる多くの変数が含まれる。パラメタの初期値はランダムに設定されるが、パラメタの値は、最終層のベクトルを全結合層に入力して計算される確率値(確率の推定値)が大きくなるように学習されて更新される。具体的には、確率の推定値と1.0の差(誤差)が小さくなるように、パラメタの値を増加あるいは減少させることを様々な単語列に対して繰り返す(逆誤差伝搬法(バックプロパゲーション)と呼ばれる)。
【0039】
[文字ベクトル]
ここで、文字ベクトルについて説明する。
【0040】
図5は、本発明の一実施形態に係る文字ごとに定められた文字ベクトルの一例である。文字ベクトル記憶部105には、
図5のように、各文字(
図5の例では、"ア"、"イ"、"ウ"、・・・)の文字ベクトル(
図5の例では、"ア"の文字ベクトル(0.1,2.2,0.5)、"イ"の文字ベクトル(0.3,0.2,0.1)、"ウ"の文字ベクトル(0.1,0.6,0.4)、・・・)が記憶されている。なお、上述したように、文字ベクトルは任意の次元であってよく、文字は任意の言語の任意の文字であってよい。文字ベクトルの初期値はランダムに設定され、文字ベクトルの値は、上記のベクトル計算のパラメタと同様に、学習(逆誤差伝搬)の過程で更新されていく。つまり、文字ベクトルは、言語モデルの確率値(単語列を構成する各単語が出現する確率値)が大きくなるように学習される。
【0041】
明細書中の対応テーブル(表)は、機械学習の学習効果によって生成されたものでもよい。ここで、機械学習とは、コンピュータに人のような学習能力を獲得させるための技術であり、コンピュータが、データ識別等の判断に必要なアルゴリズムを、事前に取り込まれる学習データから自律的に生成し、新たなデータについてこれを適用して予測を行う技術のことをいう。機械学習のための学習方法は、教師あり学習、教師なし学習、半教師学習、強化学習、深層学習のいずれかの方法でもよく、さらに、これらの学習方法を組み合わせた学習方法でもよく、機械学習のための学習方法は問わない。
【0042】
<処理方法>
図6は、本発明の一実施形態に係る言語処理(
図4の"単語列"から"単語ベクトル列"への矢印)を示すフローチャートである。
【0043】
ステップ1(S1)において、単語列入力部101は、単語列の入力を受け付けて、当該単語列を任意のメモリに記憶させる。例えば、単語列が、単語xと単語yと単語zから構成されているとする。
【0044】
ステップ2(S2)において、単語列入力部101は、単語ベクトル列を初期化する。具体的には、単語列入力部101は、S1で入力を受け付けた単語列と1対1で対応する単語ベクトル列を記憶させるための記憶領域を設ける。
【0045】
ステップ3(S3)において、単語取得部102は、S1で入力を受け付けた単語列を構成する単語を順に取得する(例えば、単語xを取得する)。例えば、単語xが、文字aと文字bと文字cから構成されているとする。
【0046】
ステップ4(S4)において、単語ベクトル計算部103は、文字ベクトル記憶部105に記憶されている文字ごとに定められた文字ベクトルから、S3で取得した単語(例えば、単語x)を構成する全ての文字(つまり、文字aと文字bと文字c)の文字ベクトル(つまり、文字aの文字ベクトルと文字bの文字ベクトルと文字cの文字ベクトル)を取得する。
【0047】
ステップ5(S5)において、単語ベクトル計算部103は、単語(例えば、単語x)を構成する文字の文字ベクトル(つまり、文字aの文字ベクトルと文字bの文字ベクトルと文字cの文字ベクトル)、および、単語を構成する文字の当該単語における出現位置(つまり、文字aの単語xにおける出現位置と文字bの単語xにおける出現位置と文字cの単語xにおける出現位置)に基づいて、単語xの単語ベクトルを計算する。
【0048】
ステップ6(S6)において、単語ベクトル計算部103は、S5で計算した単語の単語ベクトルを単語ベクトル列に記憶させる。
【0049】
ステップ7(S7)において、単語ベクトル計算部103は、S3で取得した単語が単語列を構成する最後の単語であるか否かを判断する。最後の単語である場合には、ステップ8へ進み、最後の単語ではない場合には、ステップ3へ戻り次の単語を取得する(例えば、単語xの処理が終了すると単語yを取得し、単語yの処理が終了すると単語zを取得し、単語zの処理が終了するとステップ8へ進む)。
【0050】
ステップ8(S8)において、単語ベクトル列出力部104は、単語列を構成する全ての単語の単語ベクトルからなる単語ベクトル列を出力する。
【0051】
<効果>
本発明の一実施形態では、未知の単語による精度の低下を防ぐとともに、文字ベースの言語モデルに比べて高い性能を実現する。すなわち、予め語彙を設ける単語ベースの言語モデルとは異なり、文字ベースの言語モデルと同様に、未知の単語が発生することはない。また、上記の例の単語「ジェト」のにように綴りが誤っている単語に対しても、単語ベクトルを計算することができる。そして、式(1)からわかるように「ジェト」に対して「ジェット」に値が近い単語ベクトルが得られるため、従来の単語ベースの言語モデルに比べて、テキストの分類の性能が向上する(つまり、未知語や綴りの誤りにロバストな言語モデルとなる)。また、文字ベースの言語モデルとは異なり、自然言語において意味内容の単位である単語単位でベクトルを学習するため、単語ベースの言語モデルに比べて性能が低下することがない。また、単語「かさ」と「さか」に対して、文字数と文字の種類は同じ単語に対しても、式(1)からわかるように、異なる単語ベクトルが得られ両者を区別できる。
【0052】
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0053】
10 言語処理装置
11 操作者
101 単語列入力部
102 単語取得部
103 単語ベクトル計算部
104 単語ベクトル列出力部
105 文字ベクトル記憶部
【先行技術文献】
【特許文献】
【0054】
【非特許文献】
【0055】
【非特許文献1】Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova, "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding", https://arxiv.org/abs/1810.04805