JP7073740B2 - 言語処理装置、言語処理方法及びプログラム - Google Patents

言語処理装置、言語処理方法及びプログラム Download PDF

Info

Publication number
JP7073740B2
JP7073740B2 JP2018009933A JP2018009933A JP7073740B2 JP 7073740 B2 JP7073740 B2 JP 7073740B2 JP 2018009933 A JP2018009933 A JP 2018009933A JP 2018009933 A JP2018009933 A JP 2018009933A JP 7073740 B2 JP7073740 B2 JP 7073740B2
Authority
JP
Japan
Prior art keywords
word
vector
word vector
language processing
dictionary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018009933A
Other languages
English (en)
Other versions
JP2019128788A (ja
Inventor
秀夫 伊東
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2018009933A priority Critical patent/JP7073740B2/ja
Publication of JP2019128788A publication Critical patent/JP2019128788A/ja
Priority to JP2022077851A priority patent/JP2022110062A/ja
Application granted granted Critical
Publication of JP7073740B2 publication Critical patent/JP7073740B2/ja
Priority to JP2023183901A priority patent/JP2023178459A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、言語処理装置、言語処理方法及びプログラムに関する。
従来、音声認識、文字認識、機械翻訳又は質問応答等の言語処理サービスが提供されている。このような言語処理サービスを実現させるため、機械学習を行う方法が知られている。
例えば、単語に対応する埋め込みベクトルと呼ばれるベクトルを学習する方法が知られている(例えば、非特許文献1参照)。
しかしながら、従来の方法では、単語をベクトル表現した、いわゆる単語ベクトル等のベクトルが精度良く求められない場合がある。
本発明の一態様は、ベクトルを精度良く求めることを目的とする。
本発明の一実施形態による、言語処理装置は、
文言を入力する文言入力部と、
第1単語と、前記第1単語を識別する第1識別番号とを対応させた第1辞書を入力する第1辞書入力部と、
前記第1識別番号に対応させて、前記第1単語をベクトル表現した第1単語ベクトルを入力する第1単語ベクトル入力部と、
第2単語と、前記第2単語を識別する第2識別番号とを対応させた第2辞書を入力する第2辞書入力部と、
前記第2識別番号に対応させて、前記第2単語をベクトル表現した第2単語ベクトルを入力する第2単語ベクトル入力部と、
前記文言に対応する前記第1単語ベクトルと、前記文言に対応する前記第2単語ベクトルとに基づいて第1相違度を計算する計算部と、
前記第1相違度に基づいて、前記第1単語ベクトル及び前記第2単語ベクトルのうち、少なくともいずれか一方を訂正する単語ベクトル訂正部と
を備えることを特徴とする。
本発明の実施形態によって、ベクトルを精度良く求められる。
第1実施形態に係る言語処理装置の全体構成例を示す機能ブロック図である。 本実施形態に係る言語処理装置のハードウェア構成例を示すブロック図である。 第1実施形態に係る言語処理装置による全体処理例を示すフローチャートである。 第1実施形態に係る第1辞書の例を示す図である。 第1実施形態に係る第1単語ベクトルデータの例を示す図である。 第1実施形態に係る第2辞書の例を示す図である。 第1実施形態に係る第2単語ベクトルデータの例を示す図である。 第1実施形態に係る言語処理装置による単語の取り出し例を示す図である。 第1実施形態に係る言語処理装置によって計算される内積値及び確率値の例を示す図である。 第2実施形態に係る言語処理装置の全体構成例を示す機能ブロック図である。 第2実施形態に係る言語処理装置による全体処理例を示すフローチャートである。 第2実施形態に係るパラメータの例を示す図である。 第2実施形態に係る第3単語ベクトルデータの例を示す図である。 第2実施形態に係る第1判定結果データの例を示す図である。 第2実施形態に係る第2判定結果データの生成例を示す図である。 第3実施形態に係る言語処理装置の全体構成例を示す機能ブロック図である。 第3実施形態に係る言語処理装置による全体処理例を示すフローチャートである。 第3実施形態に係る単語列ベクトルデータの例を示す図である。 第3実施形態に係る学習データの例を示す図である。
以下、発明を実施するための最適な形態について、図面を参照して説明する。
<第1実施形態>
ベクトルは、例えば、単語ベクトル等である。また、単語ベクトルは、自然言語処理等で用いられ、単語をベクトル表現したものである。なお、単語ベクトルは、単語を分散表現又は埋め込み表現したデータと呼ばれる場合もある。
単語ベクトルは、各単語の特徴等を示すため、単語ベクトルが近傍となる単語は、同じような特徴である場合が多い。例えば、単語ベクトルが近い単語は、文章等において同じような意味又は形式等で用いられやすいので、前後に現れる、すなわち、一緒に用いられる単語も類似しやすい。例えば、「本」という単語と、「書籍」という単語は、同じような用いられ方をするため、単語ベクトルも近くなる場合が多い。また、単語ベクトルが近いか否かは、例えば、2つの単語ベクトルの内積値等で判断できる。
また、単語ベクトルを含むベクトルは、あらかじめ設定される次元数である。次元数は、ベクトルを構成する要素の数となる。したがって、次元数が大きいと、多様な単語を表現できる。例えば、次元数を「3」とすると、単語ベクトルは、単語ベクトルV=(0.1,0.2,0.3)のように、3つの要素で構成される。なお、単語ベクトルの要素が示すそれぞれの値は、初期値及び範囲があらかじめ設定される。
以下、単語ベクトルの次元数を「3」とする例で説明する。ただし、次元数は、3以外でもよい。次元数は、各単語の特徴等を示すため、次元数が多いと、多様に表現できるため、多くの単語を表現できる。一方で、次元数が少ないと、処理対象となる要素が少ないため、記憶領域又は計算量等を少なくできる。例えば、日本語又は英語によって記載される文章を対象とする場合には、次元数は、100乃至300程度であるのが望ましい。すなわち、100乃至300程度の次元数であると、単語ベクトルは、日本語又は英語の文章において登場するそれぞれの単語を異なるように表現することができ、かつ、単語ベクトルのデータ量等が大量になるのを防ぐことができる。
<全体構成例>
図1は、第1実施形態に係る言語処理装置の全体構成例を示す機能ブロック図である。例えば、言語処理装置10は、図示するように、文言入力部10F1、第1辞書入力部10F2、第1単語ベクトル入力部10F3、第2辞書入力部10F4及び第2単語ベクトル入力部10F5を備える機能構成である。さらに、言語処理装置10は、図示するように、計算部10F6及び単語ベクトル訂正部10F7を備える機能構成である。
文言入力部10F1は、文言DC1を入力する文言入力手順を行う。例えば、文言入力部10F1は、図2に示す入力装置10H3又はインタフェース(interface)10H5等によって実現される。
第1辞書入力部10F2は、第1辞書DI1を入力する第1辞書入力手順を行う。例えば、第1辞書入力部10F2は、図2に示す入力装置10H3又はインタフェース10H5等によって実現される。
第1単語ベクトル入力部10F3は、第1単語ベクトルを入力する第1単語ベクトル入力手順を行う。例えば、第1単語ベクトル入力部10F3は、図2に示す入力装置10H3又はインタフェース10H5等によって実現される。
第2辞書入力部10F4は、第2辞書DI2を入力する第2辞書入力手順を行う。例えば、第2辞書入力部10F4は、図2に示す入力装置10H3又はインタフェース10H5等によって実現される。
第2単語ベクトル入力部10F5は、第2単語ベクトルを入力する第2単語ベクトル入力手順を行う。例えば、第2単語ベクトル入力部10F5は、図2に示す入力装置10H3又はインタフェース10H5等によって実現される。
計算部10F6は、例えば、図示するように、内積値計算部10F61、確率値計算部10F62及び第1相違度計算部10F63を有する機能構成である。また、計算部10F6は、第1単語ベクトル及び第2単語ベクトルに基づいて、内積値及び確率値等を計算し、第1相違度を計算する計算手順を行う。例えば、計算部10F6は、図2に示すCPU(Central Processing Unit)10H1等によって実現される。
単語ベクトル訂正部10F7は、第1単語ベクトルデータDV1に含まれる第1単語ベクトル及び第2単語ベクトルデータDV2に含まれる第2単語ベクトルのうち、少なくともいずれか一方を訂正する単語ベクトル訂正手順を行う。例えば、単語ベクトル訂正部10F7は、図2に示すCPU10H1等によって実現される。
以下、図示するような機能構成である場合を例に説明する。
<ハードウェア構成例>
図2は、本実施形態に係る言語処理装置のハードウェア構成例を示すブロック図である。例えば、言語処理装置10は、図示するようなハードウェア構成である。すなわち、言語処理装置10は、いわゆるPC(Personal Computer)等である情報処理装置である。具体的には、図示するように、言語処理装置10は、CPU10H1、記憶装置10H2、入力装置10H3、出力装置10H4及びインタフェース10H5等を有するハードウェア構成である。
CPU10H1は、演算装置及び制御装置の例である。
記憶装置10H2は、メモリ等の主記憶装置である。なお、記憶装置10H2は、ハードディスク等の補助記憶装置を有してもよい。
入力装置10H3は、ユーザによる操作等を入力する装置である。例えば、入力装置10H3は、キーボード及びコネクタ等である。
出力装置10H4は、演算結果等をユーザに出力する装置である。例えば、出力装置10H4は、ディスプレイ及びコネクタ等である。
インタフェース10H5は、ネットワーク又は記録媒体等によって外部とデータを入出力する装置である。例えば、インタフェース10H5は、コネクタ又はアンテナ等である。
なお、ハードウェア構成は、図示する構成に限られない。例えば、記憶装置、演算装置又は制御装置は、内部又は外部に複数ある構成でもよい。
<全体処理例>
図3は、第1実施形態に係る言語処理装置による全体処理例を示すフローチャートである。まず、言語処理装置は、図示するステップS101乃至ステップS104を行うことで、第1辞書DI1、第1単語ベクトルデータDV1、第2辞書DI2及び第2単語ベクトルデータDV2等といったデータを入力する。
<第1辞書の入力例>(ステップS101)
ステップS101では、言語処理装置は、第1辞書DI1を入力する。例えば、第1辞書DI1は、以下のようなデータである。
図4は、第1実施形態に係る第1辞書の例を示す図である。図示するように、第1辞書DI1は、第1単語と、第1識別番号とを対応させるデータである。
図における「第1単語」には、「A」、「B」、「C」、・・・といった単語が入力される。そして、図示する「第1識別番号」のように、第1辞書DI1には、「第1単語」に対して、各単語を識別できるそれぞれの識別番号が入力される。
<第1単語ベクトルデータの入力例>(ステップS102)
ステップS102では、言語処理装置は、第1単語ベクトルデータDV1を入力する。例えば、第1単語ベクトルデータDV1は、以下のようなデータである。
図5は、第1実施形態に係る第1単語ベクトルデータの例を示す図である。図示するように、第1単語ベクトルデータDV1は、第1識別番号と、第1単語ベクトルとを対応させるデータである。したがって、第1識別番号が定まると、第1単語ベクトルデータDV1によって、言語処理装置は、第1識別番号に対応する第1単語ベクトルが特定できる。また、第1辞書DI1における第1識別番号と、第1単語ベクトルデータDV1における第1識別番号とは同じとし、言語処理装置は、第1辞書DI1及び第1単語ベクトルデータDV1があると、所定の単語に対応する第1単語ベクトルを特定できる。
<第2辞書の入力例>(ステップS103)
ステップS103では、言語処理装置は、第2辞書DI2を入力する。第2辞書DI2は、第1辞書DI1とは別個に用意される辞書である。例えば、第2辞書DI2は、以下のようなデータである。
図6は、第1実施形態に係る第2辞書の例を示す図である。図示するように、第2辞書DI2は、第2単語と、第2識別番号とを対応させるデータである。
図示する例のように、「第2単語」には、「B」、「C」、「E」・・・といった単語が入力される。そして、図示する「第2識別番号」のように、第2辞書DI2には、「第2単語」に対して、各単語を識別できるそれぞれの識別番号が入力される。
なお、第1単語は、例えば、インターネット上に現れる単語であり、一方で、第2単語は、社内会議の議事録に現れる単語である等の違いがあるのが望ましい。すなわち、第1辞書DI1には、例えば、10万語を超えるような種類の単語があるのに対して、第2辞書DI2には、例えば、5千語程度の種類の単語があるような違いがあるのが望ましい。以下、図1に示すように、第1辞書DI1及び第1単語ベクトルデータDV1は、入力側で用いられるとし、第2辞書DI2及び第2単語ベクトルデータDV2は、出力側で用いられる例で説明する。
インターネット上等では、様々な種類の単語がある。一方で、社内会議の議事録等には、インターネット上等と比較すると、少ない種類の単語に偏る場合が多い。したがって、第1辞書DI1には、登録される単語であっても、特定の会社内では、使用される頻度が小さい単語等は、第2辞書DI2には登録されない。このような違いがあると、図4と、図6とを比較するとわかるように、「A」及び「D」といった単語は、第1辞書DI1にはあり、一方で、第2辞書DI2には、ない単語の例である。
逆に、「B」、「C」及び「E」といった単語は、インターネット上でも、社内会議の議事録でも使用される単語である。
この例における「A」及び「D」といった単語は、インターネット上等の日常会話のような場面では使用される単語であるが、ビジネスの場面では使用されることが少ない単語である場合が多い。つまり、「A」及び「D」といった単語は、ビジネスの場面にはふさわしくない単語である場合が多い。したがって、このように、第1単語及び第2単語に違いをつけると、音声認識等において、文言が第2辞書DI2によって定まる場面に使用されることが少ない単語に誤認識されるのを少なくすることができる。
<第2単語ベクトルデータの入力例>(ステップS104)
ステップS104では、言語処理装置は、第2単語ベクトルデータDV2を入力する。例えば、第2単語ベクトルデータDV2は、以下のようなデータである。
図7は、第1実施形態に係る第2単語ベクトルデータの例を示す図である。図示するように、第2単語ベクトルデータDV2は、第2識別番号と、第2単語ベクトルとを対応させるデータである。したがって、第2識別番号が定まると、第2単語ベクトルデータDV2によって、言語処理装置は、第2識別番号に対応する第2単語ベクトルが特定できる。また、第2辞書DI2における第2識別番号と、第2単語ベクトルデータDV2における第2識別番号とは同じとし、言語処理装置は、第2辞書DI2及び第2単語ベクトルデータDV2があると、所定の単語に対応する第2単語ベクトルを特定できる。
この例では、第1辞書DI1及び第2辞書DI2のどちらにも現れる単語の例として「B」という単語がある。第1辞書DI1によって、「B」は、第1識別番号が「2」と特定されるので、第1単語ベクトルは、第1単語ベクトルデータDV1に基づいて第1識別番号「2」に対応する「(0.4,0.3,0.1)」と定まる。
一方で、第2辞書DI2によって、「B」は、第2識別番号が「1」と特定されるので、第2単語ベクトルは、第2単語ベクトルデータDV2に基づいて第2識別番号「1」に対応する「(0.8,0.5,0.2)」と定まる。このように、第1単語ベクトルデータDV1及び第2単語ベクトルデータDV2によって、1つの単語に対して2つの単語ベクトルを用意する構成とする。
なお、第1辞書DI1、第1単語ベクトルデータDV1、第2辞書DI2及び第2単語ベクトルデータDV2は、図示するような表形式に限られず、他の形式であってもよい。また、ステップS101乃至ステップS104は、図示する順序でなくともよい。
<文言の入力例>(ステップS105)
ステップS105では、言語処理装置は、文言を入力する。以下、単語を含む文章等を「文言」という。文言は、例えば、テキストデータ又はユーザの操作等によって入力される。
<文言に含まれる単語の取り出し例>(ステップS106)
ステップS106では、言語処理装置は、文言に含まれる単語を取り出す。例えば、言語処理装置は、以下のように処理を行う。
図8は、第1実施形態に係る言語処理装置による単語の取り出し例を示す図である。まず、図示するような文言DC1がステップS105で入力されたとする。図示するように、文言DC1は、「B」、「C」及び「E」という単語を含む文言の例である。以下、文言DC1に含まれる「B」という単語100が処理対象である例で説明する。
<単語に対応する第1識別番号の取得例>(ステップS107)
ステップS107では、言語処理装置は、単語に対応する第1識別番号を取得する。「B」という単語100の例では、言語処理装置は、第1辞書DI1において「B」という単語100には「2」という第1識別番号が対応するため、「2」という第1識別番号を取得する。
<第1識別番号に対応する第1単語ベクトルの取得例>(ステップS108)
ステップS108では、言語処理装置は、第1識別番号に対応する第1単語ベクトルを取得する。「B」という単語100の例では、単語100の第1識別番号として、ステップS107で第1識別番号が「2」が取得されているため、第1単語ベクトルデータDV1において第1識別番号「2」に対応する「(0.4,0.3,0.1)」という第1単語ベクトルが取得される。
以下、第1単語ベクトルを「V」で示し、第1識別番号を「N」で示す。したがって、上記の「B」という単語100に対する例は、例えば、下記(10)式のように示せる。

V(N)= V(2) = (0.4,0.3,0.1)・・・(10)式

以下、第2単語ベクトルを「U」で示し、第2識別番号を「M」で示す。したがって、この例における第2識別番号が「1」の場合(M=1)には、「B」という単語100に対する例は、下記(11)式のように示せる。

U(M)= U(1) = (0.8,0.5,0.2)・・・(11)式

<内積値の計算例>(ステップS109)
ステップS109では、言語処理装置は、内積値を計算する。内積値「Q」は、第2識別番号ごとに、例えば、下記(12)式のように第1単語ベクトル及び第2単語ベクトルに基づいて計算される。

Q(N,M)= V(N)*U(M)・・・(12)式

以下に説明する例では、上記(12)式で計算される内積値は、近い単語同士ほど、大きな値となる。
<確率値の計算例>(ステップS110)
ステップS110では、言語処理装置は、確率値を計算する。確率値「P」は、例えば、下記(13)式のように計算される。

P(N,M)=exp(Q(N,M))/Σexp(Q(N,m))・・・(13)式

なお、上記(13)式では、「exp」は、指数関数を示す。また、上記(13)式では、「Σ」は、すべての第2識別番号「m=1、2、3・・・」に関する総和を示す。
このようにして計算される確率値「P(N,M)」は、第1識別番号が「N」の単語の近くに、第2識別番号が「M」の単語が現れる確率を推定した値を示す。すなわち、確率値が高い単語は、例えば、文章等において直後に現れる可能性が高い単語となりやすい。
ステップS109及びステップS110によって、例えば、内積値及び確率値は、例えば、以下のように計算される。
図9は、第1実施形態に係る言語処理装置によって計算される内積値及び確率値の例を示す図である。図示するように、言語処理装置は、第2識別番号「M」ごとに、それぞれの内積値「Q」及び確率値「P」を計算する。
なお、図示する例は、上記(13)式において、分母を「10」と仮定して計算した例である。具体的には、「M=1」とする場合では、内積値「Q」が「0.672」と計算され、上記(13)式において、分子は、「exp(0.672)=1.9581・・・≒1.96」である。したがって、分子「1.96」を分母「10」で除算すると、確率値「P」は、「1.96÷10=0.196」と計算される。
<近傍にある単語の出力例>(ステップS111)
ステップS111では、言語処理装置は、近傍にある単語を出力する。
例えば、言語処理装置は、近傍にある単語を第2識別番号で示す。具体的には、文言DC1の例は、「B」という単語100の直後に、「C」という単語101が現れる例である。したがって、この例は、「B」という単語100に対して、「C」という単語101が近傍にある単語となる例である。ゆえに、この例では、言語処理装置は、「C」という単語101に対応して、第2識別番号「2」を出力する。以下、この例で説明する。
<第1相違度の計算例>(ステップS112)
ステップS112では、言語処理装置は、第1相違度を計算する。例えば、第1相違度「E」は、下記(14)式のように計算される。

E=-log P(N,MC)・・・(14)式

なお、上記(14)式では、「MC」は、ステップS111で出力される第2識別番号である。したがって、上記(14)式に基づいて、第1相違度「E」は、ステップS111で第2識別番号が出力されるごとに計算される。
上記(14)式の通り、第1相違度「E」は、確率値P(N,MC)が大きいほど、値が小さくなる値である。
<第2識別番号の取り出し例>(ステップS113)
ステップS113では、言語処理装置は、第2識別番号を取り出す。具体的には、第2単語ベクトルデータDV2に含まれる第2識別番号のうち、言語処理装置は、番号順に第2識別番号「M」を取り出す。
<第2単語ベクトルの訂正例>(ステップS114)
ステップS114では、言語処理装置は、第2単語ベクトルを訂正する。なお、訂正対象となる第2単語ベクトルは、第2単語ベクトルデータDV2に含まれる第2単語ベクトルのうち、ステップS113で取り出された第2識別番号「M」に対応する第2単語ベクトルである。
訂正は、第1相違度「E」が小さくなるように行う。例えば、訂正は、下記(15)式のように行われる。

訂正後 第2単語ベクトル U(M)
=訂正前 第2単語ベクトル U(M)-η(P(N,M)-T(M,MC))V(N)・・・(15)式

上記(15)式における「η」は、学習率である。すなわち、「η」は、あらかじめ設定される値である。例えば、「η」は、「0.01」等が設定される。「η」は、1度に訂正される値の大きさを示す。
また、上記(15)式における「T(M,MC)」は、第2識別番号「M」が「MC」と等しいと「1」となり、一方で、第2識別番号「M」が「MC」と異なると「0」となる変数である。
上記(15)式に基づく訂正が行われると、第2単語ベクトル「U(M)」は、「M」が「MC」と等しい場合には、確率値「P(N,M)」と、「T(M,MC)」が示す「1」との差に比例した値に基づいて訂正されるため、内積値「Q(N,M)」及び確率値「P(N,M)」が大きくなるように訂正される。
一方で、「M」が「MC」と等しくない場合には、確率値「P(N,M)」と、「T(M,MC)」が示す「0」との差に比例した値に基づいて訂正されるため、内積値「Q(N,M)」及び確率値「P(N,M)」が小さくなるように訂正される。
<第2識別番号が最後か否かの判断例>(ステップS115)
ステップS115では、言語処理装置は、第2識別番号が第2単語ベクトルデータにおける最後であるか否かを判断する。すなわち、ステップS113及びステップS114は、第2単語ベクトルデータDV2に含まれる第2単語ベクトルの数分、繰り返し行われる。したがって、第2単語ベクトルデータDV2に含まれる全ての第2単語ベクトル「U(m)」(m=1、2、3・・・)が訂正される。
第2識別番号が第2単語ベクトルデータにおける最後であると判断されると(ステップS115でYES)、言語処理装置は、ステップS116に進む。一方で、第2識別番号が第2単語ベクトルデータにおける最後でないと判断されると(ステップS115でNO)、言語処理装置は、ステップS113に進む。
<第1単語ベクトルの訂正例>(ステップS116)
ステップS116では、言語処理装置は、第1単語ベクトルを訂正する。なお、訂正対象となる第1単語ベクトルは、第1単語ベクトルデータDV1に含まれる第1単語ベクトルのうち、単語100に対応する第1単語ベクトルである。
訂正は、第1相違度「E」が小さくなるように行う。例えば、訂正は、下記(16)式のように行われる。

訂正後 第1単語ベクトル V(N)
=訂正前 第1単語ベクトル V(N)-ηΣ(P(N,m)-T(m,MC))U(m)・・・(16)式

上記(16)式における「η」は、学習率である。すなわち、「η」は、あらかじめ設定される値である。「η」は、1度に訂正される値の大きさを示す。なお、「η」は、第2単語ベクトルを訂正ための上記(15)式における「η」とは、値が異なってもよい。また、上記(16)式では、「Σ」は、すべての第2識別番号「m=1、2、3・・・」に関する総和を示す。
上記(16)式に基づく訂正が行われると、第1単語ベクトルは、「Σ」による総和において、「m」が「MC」と等しい項では、確率値「P(N,m)」と、「T(m,MC)」が示す「1」との差に比例した値に基づいて訂正されるため、内積値「Q(N,m)」及び確率値「P(N,m)」が大きくなる方向に訂正される。
一方で、「m」が「MC」と等しくない項では、確率値「P(N,m)」と、「T(m,MC)」が示す「0」との差に比例した値に基づいて訂正されるため、内積値「Q(N,m)」及び確率値「P(N,m)」が小さくなる方向に訂正される。
<単語が最後か否かの判断例>(ステップS117)
ステップS117では、言語処理装置は、処理対象とした単語が文言における最後であるか否かを判断する。すなわち、ステップS106乃至ステップS116は、文言DC1に含まれる単語の数分、繰り返し行われる。
単語が文言における最後であると判断されると(ステップS117でYES)、言語処理装置は、処理を終了する。一方で、単語が文言における最後でないと判断されると(ステップS117でNO)、言語処理装置は、ステップS106に進む。
<効果>
自然言語処理等では、コーパス(corpus)を用いてドメイン適応等が行われる。このような場合には、コーパスにおける単語の種類数は、ドメインにおける単語の種類数と比較すると、多くなる場合が多い。
本実施形態では、第1辞書DI1にコーパス及びドメインで用いられる単語が登録される。一方で、第2辞書DI2にドメインで用いられる単語が登録される。このように違いがあると、第1辞書DI1には、インターネット上等で用いられる様々な単語が登録される。一方で、第2辞書DI2には、特定の会社等で用いられる単語が登録される。
このような第2辞書DI2及び第2単語ベクトルがないと、確率値「P(N,m)」等は、単語の種類数が多い第1辞書DI1にある単語分計算される。そのため、計算対象が多いため、言語処理装置は、計算量が多くなる。一方で、本実施形態のように、第2辞書DI2及び第2単語ベクトルがあると、言語処理装置は、第2辞書DI2及び第2単語ベクトルで絞られた単語について単語ベクトルを訂正し、学習する。
例えば、本実施形態の構成において、いわゆる訓練データを文言DC1として入力すると、訓練データに基づいて、1回の訂正で、単語ベクトルが学習率で定まる分、訂正される。これを繰り返すことで、単語ベクトルが学習される。すなわち、上記(15)式及び上記(16)式のような訂正がされると、いわゆる誤差逆伝播法(Backpropagation)と呼ばれる方法が実現できる。
このような学習を経た単語ベクトルが例えば音声認識における次の単語を推定する処理において用いられると、所定の場面には相応しくない単語が推定されるのを防ぐことができる。ほかにも、このような学習を経た単語ベクトルは、近い単語ベクトルであると似たような意味の単語である場合が多いため、類義語の検索等にも用いることができる。したがって、本実施形態のような構成であると、このような精度の良い単語ベクトルを生成することができる。
<第2実施形態>
例えば、第2実施形態における言語処理装置は、第1実施形態と同様のハードウェア構成の装置等によって実現される。以下、第1実施形態と異なる点を中心に説明し、重複する説明を省略する。
<全体構成例>
図10は、第2実施形態に係る言語処理装置の全体構成例を示す機能ブロック図である。例えば、言語処理装置10は、図示するように、文言入力部10F1、パラメータ設定部10F22、第3単語ベクトル入力部10F23、第1判定結果データ入力部10F24、判定部10F25及びパラメータ訂正部10F26を備える機能構成である。
文言入力部10F1は、文言を入力する文言入力手順を行う。例えば、文言入力部10F1は、入力装置10H3又はインタフェース10H5等によって実現される。
パラメータ設定部10F22は、パラメータPARを設定するパラメータ設定手順を行う。例えば、パラメータ設定部10F22は、入力装置10H3又はインタフェース10H5等によって実現される。
第3単語ベクトル入力部10F23は、単語と、第3単語ベクトルとを対応させた第3単語ベクトルデータDV3を入力する第3単語ベクトル入力手順を行う。例えば、第3単語ベクトル入力部10F23は、入力装置10H3又はインタフェース10H5等によって実現される。
第1判定結果データ入力部10F24は、第1判定結果データDJ1を入力する第1判定結果データ入力を行う。例えば、第1判定結果データ入力部10F24は、入力装置10H3又はインタフェース10H5等によって実現される。
判定部10F25は、パラメータPARに基づいて、文言の第3単語ベクトルが語彙に属するか否かを判定し、判定した結果を示す第2判定結果データDJ2を生成する。例えば、判定部10F25は、CPU10H1等によって実現される。
パラメータ訂正部10F26は、第1判定結果データDJ1及び第2判定結果データDJ2に基づいて、パラメータPARを訂正する。例えば、パラメータ訂正部10F26は、CPU10H1等によって実現される。
<全体処理例>
図11は、第2実施形態に係る言語処理装置による全体処理例を示すフローチャートである。
<パラメータの設定例>(ステップS201)
ステップS201では、言語処理装置は、パラメータを設定する。以下の説明では、パラメータPARを「W」及び「b」で示す。以下、「W」を「係数ベクトル」という。また、「b」を「切片」という。パラメータは、例えば、以下のようなデータとなる。
図12は、第2実施形態に係るパラメータの例を示す図である。図示するように、パラメータPARを構成する係数ベクトル「W」及び切片「b」は、値が設定される。例えば、係数ベクトル「W」及び切片「b」の値は、初期値があらかじめ設定される。図示する例は、単語ベクトルを3次元(N=3)とするため、係数ベクトル「W」は、3次元である。
<第3単語ベクトルデータの入力例>(ステップS202)
ステップS202では、言語処理装置は、第3単語ベクトルデータを入力する。例えば、第3単語ベクトルは、以下に示す第3単語ベクトルデータDV3のように、単語と対応させて入力される。
図13は、第2実施形態に係る第3単語ベクトルデータの例を示す図である。図示するように、第3単語ベクトルデータDV3には、単語「A」、「B」、「C」・・・の各単語に対応して、それぞれの単語ベクトル「(0.1,0.5,0.2)」、「(0.4,0.3,0.1)」、「(0.2,0.1,0.2)」・・・が入力される。なお、図示する例は、第1実施形態と同様に、3次元(N=3)の例とし、単語ベクトルは、3つの要素で構成されるとするが、次元数は、別の値であってもよい。
なお、パラメータPAR及び第3単語ベクトルデータDV3は、図示するような表形式に限られず、他の形式であってもよい。また、ステップS201及びステップS202は、図示する順序でなくともよい。
<文言の入力例>(ステップS203)
ステップS203では、言語処理装置は、文言を入力する。以下、第1実施形態と同様に、単語を含む文章等を「文言」という。文言は、例えば、テキストデータ又はユーザの操作等によって入力される。
<文言に含まれる単語の取り出し例>(ステップS204)
ステップS204では、言語処理装置は、文言に含まれる単語を取り出す。例えば、言語処理装置は、第1実施形態と同様に、文言に含まれる単語を取り出す。以下、文言から「A」、「C」、「E」という単語が順に取り出される例で説明する。
<第1判定結果データの入力例>(ステップS205)
ステップS205では、言語処理装置は、第1判定結果データを入力する。例えば、第1判定結果データDJ1は、以下のようなデータである。
図14は、第2実施形態に係る第1判定結果データの例を示す図である。図示するように、第1判定結果データDJ1は、ステップS203で入力される文言に含まれる各単語が、語彙に属するか否かを判定した結果を示すデータである。
図示する例では、「判定結果」は、「0」又は「1」の2値である。以下の説明では、「語彙に属する」と判定した場合を「1」とし、一方で、「語彙に属さない」と判定した場合を「0」とする。
第1判定結果データDJ1は、学習における、いわゆる「正解データ」である。
<パラメータに基づいて判定して第2判定結果データを生成する例>(ステップS206)
ステップS206では、言語処理装置は、パラメータに基づいて単語を判定して第2判定結果データを生成する。以下、ステップS204で取り出される単語の単語ベクトルを「x」とする。なお、「x」は、第3単語ベクトルデータDV3で定まる。具体的には、「A」という単語は、「x」=「(0.1,0.5,0.2)」となる。
例えば、判定では、まず、下記(20)式が計算される。

y=Wx-b・・・(20)式

そして、上記(20)式で計算される「y」が、「y≧0」であると、「語彙に属する」と判定する。一方で、「y」が、「y<0」であると、「語彙に属さない」と判定する。
このような判定は、例えば、以下のように図示できる。
図15は、第2実施形態に係る第2判定結果データの生成例を示す図である。この例では、単語ベクトルが2次元であるとする。したがって、各単語は、単語ベクトルに基づいて、図示するような2次元座標上にプロットできる。
そして、パラメータPARは、この例では、判定の基準となる直線20を特定できるデータである。具体的には、パラメータPARにおける係数ベクトル「W」は、直線20の傾きを示すデータである。さらに、パラメータPARにおける切片「b」は、直線20の切片を示すデータである。したがって、係数ベクトル「W」及び切片「b」が定まると、直線20が一意に定まる。
なお、直線20は、「分類平面」又は「超平面」等と呼ばれる場合もある。また、直線20は、次元数が3次元であれば平面となる。
図示するように、言語処理装置は、上記(20)式に基づいて、判定対象となる単語の単語ベクトル「x」が語彙に「属する」か「属さない」かを判定できる。
このようにして判定した結果を言語処理装置は、第2判定結果データとする。
<判定が正しいか否かの判定例>(ステップS207)
ステップS207では、言語処理装置は、第2判定結果データにおける判定結果が正しいか否かを判断する。例えば、判定が正しいか否かは、第1判定結果データDJ1における判定結果と、第2判定結果データDJ2における判定結果とが一致するか否かで判断される。
すなわち、第1判定結果データDJ1で「判定結果」が「1」であり、かつ、第2判定結果データDJ2で「y」が「y≧0」であると、言語処理装置は、判定が正しいと判断する。また、第1判定結果データDJ1で「判定結果」が「0」であり、かつ、第2判定結果データDJ2で「y」が「y<0」であると、言語処理装置は、判定が正しいと判断する。
このように、第1判定結果データDJ1及び第2判定結果データDJ2が示す、語彙に「属する」か「属さない」かのそれぞれの判定結果が一致すれば、言語処理装置は、判定が正しいと判断する(ステップS207でYES)。
一方で、第1判定結果データDJ1及び第2判定結果データDJ2が示す、語彙に「属する」か「属さない」かのそれぞれの判定結果が一致しないと、言語処理装置は、判定が正しくないと判断する(ステップS207でNO)。
次に、判定が正しいと判断されると(ステップS207でYES)、言語処理装置は、ステップS209に進む。一方で、判定が正しくないと判断されると(ステップS207でNO)、言語処理装置は、ステップS208に進む。
<パラメータの訂正例>(ステップS208)
ステップS208では、言語処理装置は、パラメータを訂正する。例えば、訂正は、下記(21)式及び下記(22)式のように行われる。

訂正後のW=訂正前のW+(t-y)x・・・(21)式

訂正後のb=訂正前のb-(t-y)・・・(22)式

なお、上記(21)式及び上記(22)式における「t」は、第1判定結果データDJ1における「判定結果」の値である。
すなわち、判定結果「t」より「y」が大きい場合には、「y」が小さくなるように訂正が行われる。そのため、上記(21)式では、「t-y」が負になることを利用して、単語ベクトル「x」を構成する各値が正であれば、値を小さくする訂正が行われる。一方で、上記(21)式では、単語ベクトル「x」を構成する各値が負であれば、値を大きくする訂正が行われる。
また、判定結果「t」より「y」が小さい場合には、上記の逆となる訂正が行われる。
さらに、判定結果「t」より「y」が大きい場合には、「y≧0」と判定される閾値となる切片「b」が大きくなるように訂正が行われる。そのため、上記(22)式では、「t-y」が負になることを利用して、「t-y」をマイナス1倍した値を加算する訂正が行われる。
一方で、判定結果「t」より「y」が小さい場合には、上記の逆となる訂正が行われる。
<単語が最後か否かの判断例>(ステップS209)
ステップS209では、言語処理装置は、処理対象とした単語が文言における最後であるか否かを判断する。すなわち、ステップS204乃至ステップS208は、文言に含まれる単語の数分、繰り返し行われる。
単語が文言における最後であると判断されると(ステップS209でYES)、言語処理装置は、全体処理を終了する。一方で、単語が文言における最後でないと判断されると(ステップS209でNO)、言語処理装置は、ステップS204に進む。
<効果>
文言として訓練データが入力されると、例えば、上記(21)式及び上記(22)式のように、パラメータPARを訂正する学習が行われる。このような学習によって生成されたパラメータPARを用いると、言語処理装置は、文言が語彙に属するか否かを精度良く判定できるようになる。
すなわち、言語処理装置は、コーパスを用いたドメイン適応において、コーパスにある単語のうち、ドメインテキストには現れない単語であってもドメインの語彙に属すると判定された単語を集めた辞書を生成できる。
具体的には、インターネット上等では、使われる単語であっても、特定の会社における社内会議等ではあまり用いられない単語がある。そこで、本実施形態の構成によって、学習が行われると、言語処理装置は、インターネット上等で使用される単語が、特定の会社における社内会議等で使用される語彙に属するか否かを精度良く判定できる。したがって、言語処理装置は、インターネット上等にある単語を分類して、特定の会社における社内会議等で用いられる単語を集めた辞書を生成することができる。
また、上記のような学習で生成された辞書が、第1実施形態における第2辞書DI2として用いられるのが望ましい。すなわち、本実施形態によって生成された辞書は、特定の会社における社内会議等で使用される単語が登録された辞書である。このような辞書がある、すなわち、第1実施形態に示すように第1辞書DI1とは別の第2辞書DI2も用いる構成であると、言語処理装置は、単語ベクトルを精度良く求めることができる。
<第3実施形態>
例えば、第3実施形態における言語処理装置は、第1、2実施形態と同様のハードウェア構成の装置等によって実現される。以下、第1実施形態と異なる点を中心に説明し、重複する説明を省略する。
<全体構成例>
図16は、第3実施形態に係る言語処理装置の全体構成例を示す機能ブロック図である。例えば、言語処理装置10は、文言入力部10F1、単語列ベクトル入力部10F32、状態ベクトル計算部10F33、第2相違度計算部10F34及び学習データ訂正部10F35を備える機能構成である。
文言入力部10F1は、単語及び単語列Pを含む文言を入力する文言入力手順を行う。例えば、文言入力部10F1は、入力装置10H3又はインタフェース10H5等によって実現される。
単語列ベクトル入力部10F32は、単語と、単語ベクトルとを対応させた単語列ベクトルデータDLVを入力する単語列ベクトル入力手順を行う。さらに、単語列ベクトルデータDLVには、複数の単語で構成される単語列Pと、単語列Pをベクトル表現した「単語列ベクトル」と対応させた結果が入力される。単語列ベクトルデータDLVの詳細は後述する。例えば、単語列ベクトル入力部10F32は、入力装置10H3又はインタフェース10H5等によって実現される。
状態ベクトル計算部10F33は、状態ベクトルを計算する状態ベクトル計算手順を行う。例えば、状態ベクトル計算部10F33は、CPU10H1等によって実現される。
第2相違度計算部10F34は、状態ベクトルと、単語列ベクトルとの相違度(以下「第2相違度」という。)を計算する第2相違度計算手順を行う。例えば、第2相違度計算部10F34は、CPU10H1等によって実現される。
学習データ訂正部10F35は、第2相違度に基づいて学習データDLAを訂正する学習データ訂正手順を行う。例えば、学習データ訂正部10F35は、CPU10H1等によって実現される。学習データDLAの詳細は、後述する。
<全体処理例>
図17は、第3実施形態に係る言語処理装置による全体処理例を示すフローチャートである。
<単語列ベクトルの入力例>(ステップS301)
ステップS301では、言語処理装置は、単語列ベクトルを入力する。例えば、言語処理装置は、以下のような単語列ベクトルデータを入力する。
図18は、第3実施形態に係る単語列ベクトルデータの例を示す図である。他の実施形態における単語ベクトルデータと比較すると、単語列ベクトルデータDLVは、「BC」等のように、複数の単語から構成される「単語列」が含まれる点が異なる。なお、単語列は、3つ以上の単語で構成されてもよい。
「A」、「B」、「C」及び「E」は、他の実施形態と同様に単語であり、単語列ベクトルデータDLVには、各単語に対する単語ベクトルが入力される。同様に、「BC」といった2つの単語で構成される単語列に対しても、単語列ベクトルデータDLVには、単語と同様に、単語列ベクトルが入力される。図示するように、以下の説明では、単語ベクトルも、単語列ベクトルも、どちらも3次元であるとする。
単語ベクトル及び単語列ベクトルには、例えば、あらかじめ値が入力される。
<学習データの入力例>(ステップS302)
ステップS302では、言語処理装置は、学習データを入力する。例えば、学習データは、以下のようなデータである。
図19は、第3実施形態に係る学習データの例を示す図である。図示するように、学習データは、例えば、行列「W」、行列「U」及び「b」で構成される。具体的には、行列「W」は、M行 N列である。また、行列「U」は、M行 M列である。さらに、「b」は、M次元ベクトルである。なお、「N」は、単語ベクトル及び単語列ベクトルの次元数と同様の値である。したがって、この例では、「N=3」である。一方で、「M」は、状態ベクトルの次元数である。
状態ベクトルs(c)は、下記(30)式で計算されて求まる。

s(c+1)=tanh(W trans(x(c))+Us(c)+trans(b))・・・(30)式

なお、状態ベクトルの初期値、すなわち、状態ベクトルs(1)は、例えば、M次元の零ベクトル等である。また、上記(30)式における「trans」は、転置を示す。さらに、上記(30)式における「tanh」は、双曲線正接関数(hyperbolic tangent)を示す。さらにまた、変数「c」は、「c=1、2、3・・・」となる値であり、単語列における先頭からの単語の順番を示す。以下、同様に記載する。
したがって、「W」、「U」、「b」等の学習データと、変数「c」が1つ前の状態ベクトル(つまり、「c+1」の状態ベクトルを計算する場合には、「c」の状態ベクトルである。)とが定まると、状態ベクトルs(c+1)が特定できる。
<文言の入力例>(ステップS303)
ステップS303では、言語処理装置は、文言を入力する。以下、第1実施形態と同様に図8に示すような文言DC1が入力される例で説明する。文言DC1は、例えば、テキストデータ又はユーザの操作等によって入力される。
<「c=1」及び「L=文言に含まれる単語数+1」とする例>(ステップS304)
ステップS304では、言語処理装置は、「c=1」及び「L=文言に含まれる単語数+1」とする。なお、「c=1」は、初期値の設定例である。図示するように、変数「c」は、ステップS303で入力される文言の単語数までカウントアップされる値となる。一方で、定数「L」は、変数「c」の上限値を定める値である。
<文言から長さが「c」となる単語列の取り出し例>(ステップS305)
ステップS305では、言語処理装置は、文言から長さが「c」となる単語列を取り出す。
例えば、図8に示す文言DC1の場合には、「c=1」であると、文言DC1から単語「B」が取り出される。したがって、以降の処理対象となる単語列Pは、単語「B」で構成される単語列となる。
同様に、「c=2」であると、文言DC1から、1番目の「B」という単語100及び2番目の「C」という単語101が取り出される。したがって、以降の処理対象となる単語列Pは、「B」及び「C」の2つの単語で構成される「BC」という単語列となる。
<単語列の状態ベクトルの計算及び単語列ベクトルの特定例>(ステップS306)
ステップS306では、言語処理装置は、単語列の状態ベクトルを計算及び単語列ベクトルを特定する。
まず、状態ベクトルは、上記(30)式に基づいて、例えば、「c=1」であると、下記(31)式のように計算される。

s(2)=tanh(W trans(x(1))+Us(1)+trans(b))・・・(31)式

上記(31)式における「x(1)」は、1番目の単語、すなわち、「B」という単語100の単語ベクトルである。したがって、単語列ベクトルデータDLVに基づいて、「x(1)=(0.4,0.3,0.1)」である。また、上記(31)式における「s(1)」は、状態ベクトルの初期値である。同様に、上記(31)式における「W」、「U」及び「b」は、学習データの初期値である。
さらに、例えば、「c=2」であると、状態ベクトルは、上記(30)式に基づいて下記(32)式のように計算される。

s(3)=tanh(W trans(x(2))+Us(2)+trans(b))・・・(32)式

上記(32)式における「x(2)」は、2番目の単語、すなわち、「C」という単語101の単語ベクトルである。したがって、単語列ベクトルデータDLVに基づいて、「x(2)=(0.2,0.1,0.2)」である。また、上記(32)式における「s(2)」は、上記(31)式で計算される状態ベクトル、すなわち、「c」が1つ前の場合において計算された状態ベクトルである。同様に、上記(32)式における「W」、「U」及び「b」は、上記(31)式で計算される状態ベクトル等に基づいて後段のステップS308で訂正された後の学習データである。
さらに、ステップS306では、言語処理装置は、単語列ベクトルを特定する。単語列ベクトルは、単語列ベクトルデータDLVで特定できる。
例えば、「c=1」であると、単語列Pは、単語「B」であるため、単語列ベクトルデータDLVに基づいて、単語列Pに対応する単語列ベクトルは、「0.4,0.3,0.1」と特定される。
同様に、「c=2」であると、単語列Pは、単語「B」及び単語「C」で構成される「BC」であるため、単語列ベクトルデータDLVに基づいて、単語列Pに対応する単語列ベクトルは、「0.3,0.5,0.2」と特定される。
なお、単語列Pに対応する単語列ベクトルがない場合には、例えば、単語列ベクトルは、「N/A」と特定される。
<単語列の状態ベクトルが計算でき、かつ、単語列ベクトルが特定できたか否かの判断例>(ステップS307)
ステップS307では、言語処理装置は、単語列の状態ベクトルが計算でき、かつ、単語列ベクトルが特定できたか否かを判断する。すなわち、ステップS306で状態ベクトルが計算でき、かつ、単語列ベクトルデータDLVに単語列Pに対応する単語列ベクトルがあると、言語処理装置は、単語列の状態ベクトルが計算でき、かつ、単語列ベクトルが特定できたと判断する(ステップS307でYES)。一方で、例えば、単語列ベクトルが「N/A」であると、単語列ベクトルが特定できていないと判断する(ステップS307でNO)。
次に、単語列の状態ベクトルが計算でき、かつ、単語列ベクトルが特定できたと判断すると(ステップS307でYES)、言語処理装置は、ステップS308に進む。一方で、単語列の状態ベクトルが計算できていない、又は、単語列ベクトルが特定できていないと判断すると(ステップS307でNO)、言語処理装置は、ステップS310に進む。
<第2相違度の計算例>(ステップS308)
ステップS308では、言語処理装置は、第2相違度を計算する。例えば、第2相違度は、下記(33)式のように計算される。

第2相違度=dist(Pv,Sv)・・・(33)式

上記(33)式における「dist」は、2つのベクトル「Pv」及び「Sv」のユークリッド距離を計算する関数を示す。また、上記(33)式における「Pv」は、ステップS306で特定される単語列ベクトルである。さらに、上記(33)式における「Sv」は、ステップS306で計算される状態ベクトルである。
なお、第2相違度は、下記(34)式のように計算されてもよい。

第2相違度=dist(Pv,tanh(HSv+b2))・・・(34)式

上記(34)式における「H」は、新たに加えるM行 N列の行列である。同様に、「b2」は、新たに加えるN次元のベクトルである。上記(34)式のように計算すると、状態ベクトル「Sv」の次元数「M」と、単語列ベクトルの次元数「N」とが異なっても、第2相違度が計算できる。
<第2相違度に基づく学習データの訂正例>(ステップS309)
ステップS309では、言語処理装置は、第2相違度に基づいて学習データを訂正する。例えば、学習データDLAは、下記(35)式のように訂正される。

訂正後のW=訂正前のW-ηΔW
訂正後のU=訂正前のU-ηΔU
訂正後のb=訂正前のb-ηΔb ・・・(35)式

上記(35)式における「η」は、学習率である。すなわち、「η」は、あらかじめ設定される値である。「η」は、1度に訂正される値の大きさを示す。また、上記(35)式における「ΔW」は、行列「W」の要素w(i,j)で、関数「dist」を(Pv,Sv)において偏微分して求まる係数である。「ΔW」は、解析的に計算される係数でもよいし、又は、要素w(i,j)を微小値dだけ変化させた場合の「dist(Pv,Sv)」の差分でもよい。
また、上記(35)式における「ΔU」及び「Δb」も同様に計算される係数である。
上記(35)式は、いわゆる勾配降下法(Gradient Descent)による訂正を実現する。なお、上記(34)式による第2相違度を用いる場合には、新たに加える行列「H」及びベクトル「b2」も、勾配降下法による訂正の対象に含める。
<「c=c+1」とする例>(ステップS310)
ステップS310では、言語処理装置は、「c=c+1」とする。すなわち、言語処理装置は、変数「c」をカウントアップする。
<「c<L」であるか否かの判断例>(ステップS311)
ステップS311では、言語処理装置は、「c<L」であるか否かを判断する。すなわち、ステップS304で設定される定数「L」と、変数「c」とを比較することで、言語処理装置は、ステップS303で入力される文言に含まれる単語についてすべて処理を行うようにループさせる。
次に、「c<L」であると判断されると(ステップS311でYES)、言語処理装置は、ステップS305に進む。一方で、「c<L」でないと判断されると(ステップS311でNO)、言語処理装置は、全体処理を終了させる。
<効果>
以上のような構成であると、言語処理装置は、未知の単語列があっても、状態ベクトルを計算することで学習データを訂正し、学習することができる。そのため、言語処理装置は、未知の単語列をオンラインで精度良くベクトル表現すること等ができる。
また、第1実施形態で生成された単語ベクトルが、単語列ベクトルデータDLVに入力されて用いられるのが望ましい。すなわち、第1実施形態等によって生成された単語ベクトルは、特定の会社における社内会議等で使用される単語に対して、精度良く単語ベクトルが求められる。このような単語ベクトルが入力された単語列ベクトルデータDLVを用いる構成であると、言語処理装置は、状態ベクトルを精度良く求めることができる。
<その他の実施形態>
なお、上記実施形態において、非線形関数の例として「tanh」を用いる例を説明したが、非線形関数は、「tanh」に限られない。例えば、非線形関数は、シグモイド(sigmoid)関数等でもよい。
また、各相違度は、上記実施形態の例に限られない。すなわち、各相違度は、違いが定義できればよい。
なお、本発明に係る各処理の全部又は一部は、低水準言語又は高水準言語で記述され、コンピュータに言語処理方法を実行させるためのプログラムによって実現されてもよい。すなわち、プログラムは、情報処理装置又は複数の情報処理装置を含む情報処理システム等のコンピュータに各処理を実行させるためのコンピュータプログラムである。
したがって、プログラムに基づいて言語処理方法が実行されると、コンピュータが有する演算装置及び制御装置は、各処理を実行するため、プログラムに基づいて演算及び制御を行う。また、コンピュータが有する記憶装置は、各処理を実行するため、プログラムに基づいて、処理に用いられるデータを記憶する。
また、プログラムは、コンピュータが読み取り可能な記録媒体に記録されて頒布することができる。なお、記録媒体は、磁気テープ、フラッシュメモリ、光ディスク、光磁気ディスク又は磁気ディスク等のメディアである。さらに、プログラムは、電気通信回線を通じて頒布することができる。
なお、本発明に係る実施形態は、言語処理システムによって実現されてもよい。また、言語処理システムは、各処理を冗長、分散、並列、仮想化又はこれらを組み合わせて実行してもよい。
以上、実施形態における一例について説明したが、本発明は、上記実施形態に限定されない。すなわち、本発明の範囲内で種々の変形及び改良が可能である。
10 言語処理装置
10F1 文言入力部
10F2 第1辞書入力部
10F3 第1単語ベクトル入力部
10F4 第2辞書入力部
10F5 第2単語ベクトル入力部
10F6 計算部
10F61 内積値計算部
10F62 確率値計算部
10F63 第1相違度計算部
10F7 単語ベクトル訂正部
DI1 第1辞書
DI2 第2辞書
DV1 第1単語ベクトルデータ
DV2 第2単語ベクトルデータ
DC1 文言
10F22 パラメータ設定部
10F23 第3単語ベクトル入力部
10F24 第1判定結果データ入力部
10F25 判定部
10F26 パラメータ訂正部
PAR パラメータ
DJ1 第1判定結果データ
DJ2 第2判定結果データ
DV3 第3単語ベクトルデータ
20 直線
10F32 単語列ベクトル入力部
10F33 状態ベクトル計算部
10F34 第2相違度計算部
10F35 学習データ訂正部
P 単語列
DLV 単語列ベクトルデータ
DLA 学習データ
Tomas Mikolov、Kai Chen、Greg Corrado、Jeffrey Dean、「Efficient Estimation of Word Representations in Vector Space」、ICLR 2013

Claims (5)

  1. 文言を入力する文言入力部と、
    第1単語と、前記第1単語を識別する第1識別番号とを対応させた第1辞書を入力する第1辞書入力部と、
    前記第1識別番号に対応させて、前記第1単語をベクトル表現した第1単語ベクトルを入力する第1単語ベクトル入力部と、
    第2単語と、前記第2単語を識別する第2識別番号とを対応させた第2辞書を入力する第2辞書入力部と、
    前記第2識別番号に対応させて、前記第2単語をベクトル表現した第2単語ベクトルを入力する第2単語ベクトル入力部と、
    前記文言に対応する前記第1単語ベクトルと、前記文言に対応する前記第2単語ベクトルと、の内積値に基づいて、第1相違度を計算する計算部と、
    前記第1相違度に基づいて、前記第1単語ベクトルと近傍にある単語の第2単語ベクトルとの内積値が大きく、前記第1単語ベクトルと前記近傍にある単語以外の第2単語ベクトルとの内積値が小さくなるように、前記第1単語ベクトル及び前記第2単語ベクトルのうち、少なくともいずれか一方を訂正する単語ベクトル訂正部と
    を備える言語処理装置。
  2. 文言を入力する文言入力部と、
    単語と、前記単語をベクトル表現した単語ベクトルとを対応させた第3単語ベクトルデータを入力する第3単語ベクトル入力部と、
    前記文言が前記第3単語ベクトルデータが示す語彙に属するか否かを判定した結果を示す第1判定結果データを入力する第1判定結果データ入力部と、
    前記文言が前記語彙に属するか否かをパラメータに基づいて判定した結果を示す第2判定結果データを生成し、前記パラメータは前記判定の基準を特定するためのパラメータである、判定部と、
    前記第1判定結果データ及び前記第2判定結果データに基づいて、前記第1判定結果データと前記第2判定結果データとが一致するように、前記パラメータを訂正するパラメータ訂正部と
    を備え、
    前記パラメータ訂正部で訂正されたパラメータに基づいて、判定された単語を集めた辞書を前記第2辞書とする
    請求項1に記載の言語処理装置。
  3. 前記計算部は、前記第1単語の近くに前記第2単語が現れる確率を推定した値である確率値に基づいて、前記確率値が大きいほど、値が小さくなる前記第1相違度を計算する請求項に記載の言語処理装置。
  4. 言語処理装置が行う言語処理方法であって、
    言語処理装置が、文言を入力する文言入力手順と、
    言語処理装置が、第1単語と、前記第1単語を識別する第1識別番号とを対応させた第1辞書を入力する第1辞書入力手順と、
    言語処理装置が、前記第1識別番号に対応させて、前記第1単語をベクトル表現した第1単語ベクトルを入力する第1単語ベクトル入力手順と、
    言語処理装置が、第2単語と、前記第2単語を識別する第2識別番号とを対応させた第2辞書を入力する第2辞書入力手順と、
    言語処理装置が、前記第2識別番号に対応させて、前記第2単語をベクトル表現した第2単語ベクトルを入力する第2単語ベクトル入力手順と、
    言語処理装置が、前記文言に対応する前記第1単語ベクトルと、前記文言に対応する前記第2単語ベクトルと、の内積値に基づいて第1相違度を計算する計算手順と、
    言語処理装置が、前記第1相違度に基づいて、前記第1単語ベクトルと近傍にある単語の第2単語ベクトルとの内積値が大きく、前記第1単語ベクトルと前記近傍にある単語以外の第2単語ベクトルとの内積値が小さくなるように、前記第1単語ベクトル及び前記第2単語ベクトルのうち、少なくともいずれか一方を訂正する単語ベクトル訂正手順と
    を含む言語処理方法。
  5. コンピュータに言語処理方法を実行させるためのプログラムであって、
    コンピュータが、文言を入力する文言入力手順と、
    コンピュータが、第1単語と、前記第1単語を識別する第1識別番号とを対応させた第1辞書を入力する第1辞書入力手順と、
    コンピュータが、前記第1識別番号に対応させて、前記第1単語をベクトル表現した第1単語ベクトルを入力する第1単語ベクトル入力手順と、
    コンピュータが、第2単語と、前記第2単語を識別する第2識別番号とを対応させた第2辞書を入力する第2辞書入力手順と、
    コンピュータが、前記第2識別番号に対応させて、前記第2単語をベクトル表現した第2単語ベクトルを入力する第2単語ベクトル入力手順と、
    コンピュータが、前記文言に対応する前記第1単語ベクトルと、前記文言に対応する前記第2単語ベクトルと、の内積値に基づいて第1相違度を計算する計算手順と、
    コンピュータが、前記第1相違度に基づいて、前記第1単語ベクトルと近傍にある単語の第2単語ベクトルとの内積値が大きく、前記第1単語ベクトルと前記近傍にある単語以外の第2単語ベクトルとの内積値が小さくなるように、前記第1単語ベクトル及び前記第2単語ベクトルのうち、少なくともいずれか一方を訂正する単語ベクトル訂正手順と
    を実行させるためのプログラム。
JP2018009933A 2018-01-24 2018-01-24 言語処理装置、言語処理方法及びプログラム Active JP7073740B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018009933A JP7073740B2 (ja) 2018-01-24 2018-01-24 言語処理装置、言語処理方法及びプログラム
JP2022077851A JP2022110062A (ja) 2018-01-24 2022-05-11 言語処理装置、言語処理方法及びプログラム
JP2023183901A JP2023178459A (ja) 2018-01-24 2023-10-26 言語処理装置、言語処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018009933A JP7073740B2 (ja) 2018-01-24 2018-01-24 言語処理装置、言語処理方法及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2022077851A Division JP2022110062A (ja) 2018-01-24 2022-05-11 言語処理装置、言語処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2019128788A JP2019128788A (ja) 2019-08-01
JP7073740B2 true JP7073740B2 (ja) 2022-05-24

Family

ID=67472248

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2018009933A Active JP7073740B2 (ja) 2018-01-24 2018-01-24 言語処理装置、言語処理方法及びプログラム
JP2022077851A Pending JP2022110062A (ja) 2018-01-24 2022-05-11 言語処理装置、言語処理方法及びプログラム
JP2023183901A Pending JP2023178459A (ja) 2018-01-24 2023-10-26 言語処理装置、言語処理方法及びプログラム

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2022077851A Pending JP2022110062A (ja) 2018-01-24 2022-05-11 言語処理装置、言語処理方法及びプログラム
JP2023183901A Pending JP2023178459A (ja) 2018-01-24 2023-10-26 言語処理装置、言語処理方法及びプログラム

Country Status (1)

Country Link
JP (3) JP7073740B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001243230A (ja) 2000-02-25 2001-09-07 Nippon Telegr & Teleph Corp <Ntt> 類似性判別方法
JP2001306612A (ja) 2000-04-26 2001-11-02 Sharp Corp 情報提供装置、情報提供方法およびその方法を実現するプログラムを記録した機械読取可能な記録媒体

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5404575B2 (ja) * 2010-10-04 2014-02-05 日本電信電話株式会社 経験要因関係分析装置及び方法及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001243230A (ja) 2000-02-25 2001-09-07 Nippon Telegr & Teleph Corp <Ntt> 類似性判別方法
JP2001306612A (ja) 2000-04-26 2001-11-02 Sharp Corp 情報提供装置、情報提供方法およびその方法を実現するプログラムを記録した機械読取可能な記録媒体

Also Published As

Publication number Publication date
JP2022110062A (ja) 2022-07-28
JP2023178459A (ja) 2023-12-14
JP2019128788A (ja) 2019-08-01

Similar Documents

Publication Publication Date Title
Yao et al. Deep discriminative CNN with temporal ensembling for ambiguously-labeled image classification
CN111783474B (zh) 一种评论文本观点信息处理方法、装置及存储介质
US11010554B2 (en) Method and device for identifying specific text information
CN110633577B (zh) 文本脱敏方法以及装置
CN104933158B (zh) 数学问题求解模型的训练方法和装置、推理方法和装置
JP2020061173A (ja) 回答学習装置、回答学習方法、回答生成装置、回答生成方法、及びプログラム
JP6892606B2 (ja) 位置特定装置、位置特定方法及びコンピュータプログラム
CN109977203B (zh) 语句相似度确定方法、装置、电子设备及可读存储介质
CN109033085B (zh) 中文分词系统及中文文本的分词方法
CN111223476B (zh) 语音特征向量的提取方法、装置、计算机设备和存储介质
CN113128203A (zh) 基于注意力机制的关系抽取方法、系统、设备及存储介质
CN116432655B (zh) 基于语用知识学习的少样本命名实体识别方法和装置
CN113449084A (zh) 基于图卷积的关系抽取方法
WO2019160096A1 (ja) 関係性推定モデル学習装置、方法、及びプログラム
CN116663525A (zh) 一种文档审核方法、装置、设备及存储介质
CN112765357A (zh) 文本分类方法、装置和电子设备
CN110968725A (zh) 图像内容描述信息生成方法、电子设备及存储介质
CN113657098A (zh) 文本纠错方法、装置、设备及存储介质
CN114722958A (zh) 网络训练及目标检测方法、装置、电子设备和存储介质
CN110795942B (zh) 基于语义识别的关键词确定方法、装置和存储介质
CN111373391A (zh) 语言处理装置、语言处理系统和语言处理方法
CN114139537A (zh) 词向量的生成方法及装置
CN117473093A (zh) 一种基于llm模型获取目标事件的数据处理系统
CN113705207A (zh) 语法错误识别方法及装置
JP7073740B2 (ja) 言語処理装置、言語処理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201023

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211119

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220425

R151 Written notification of patent or utility model registration

Ref document number: 7073740

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151