IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 大日本印刷株式会社の特許一覧

特許7163618学習装置、学習方法、プログラム及び推定装置
<>
  • 特許-学習装置、学習方法、プログラム及び推定装置 図1
  • 特許-学習装置、学習方法、プログラム及び推定装置 図2
  • 特許-学習装置、学習方法、プログラム及び推定装置 図3
  • 特許-学習装置、学習方法、プログラム及び推定装置 図4
  • 特許-学習装置、学習方法、プログラム及び推定装置 図5
  • 特許-学習装置、学習方法、プログラム及び推定装置 図6
  • 特許-学習装置、学習方法、プログラム及び推定装置 図7
  • 特許-学習装置、学習方法、プログラム及び推定装置 図8
  • 特許-学習装置、学習方法、プログラム及び推定装置 図9
  • 特許-学習装置、学習方法、プログラム及び推定装置 図10
  • 特許-学習装置、学習方法、プログラム及び推定装置 図11
  • 特許-学習装置、学習方法、プログラム及び推定装置 図12
  • 特許-学習装置、学習方法、プログラム及び推定装置 図13
  • 特許-学習装置、学習方法、プログラム及び推定装置 図14
  • 特許-学習装置、学習方法、プログラム及び推定装置 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-24
(45)【発行日】2022-11-01
(54)【発明の名称】学習装置、学習方法、プログラム及び推定装置
(51)【国際特許分類】
   G06F 40/216 20200101AFI20221025BHJP
   G06F 40/20 20200101ALI20221025BHJP
   G06F 40/232 20200101ALI20221025BHJP
【FI】
G06F40/216
G06F40/20
G06F40/232
【請求項の数】 4
(21)【出願番号】P 2018097926
(22)【出願日】2018-05-22
(65)【公開番号】P2019204214
(43)【公開日】2019-11-28
【審査請求日】2021-03-23
(73)【特許権者】
【識別番号】000002897
【氏名又は名称】大日本印刷株式会社
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】伊藤 直之
(72)【発明者】
【氏名】大野 和久
【審査官】滝谷 亮一
(56)【参考文献】
【文献】特開2016-134169(JP,A)
【文献】河田 岳大 他3名,両方向N-gram確率を用いた誤り文字検出法,電子情報通信学会論文誌,日本,社団法人電子情報通信学会,2005年03月01日,第J88-D-II巻,p.629-635
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/216
G06F 40/232
G06F 40/20
(57)【特許請求の範囲】
【請求項1】
誤り推定対象である対象文を取得する取得部と、
取得した前記対象文を、所定単位の文字又は文字列である複数の要素に分割する分割部と、
学習用の文章を元に、該文章に含まれる各要素の次の前記要素を前記文章の順に学習済みの第1の言語モデルを参照して、前記対象文に含まれる前記要素夫々の生起確率を算出する第1算出部と、
前記対象文における前記複数の要素の並び順を、前記対象文の先頭から末尾までを逆順序に並び替える順序変換部と、
前記学習用の文章を元に、逆順序で前記各要素の次の前記要素を学習済みの第2の言語モデルを参照して、並び替えた前記対象文の前記要素夫々の生起確率を算出する第2算出部と、
前記第1及び第2算出部が夫々算出した前記要素の生起確率に基づき、該要素を誤り箇所と推定する推定部と
を備えることを特徴とする推定装置。
【請求項2】
前記推定部は、前記要素の生起確率と、該要素の文字種及び/又は文字数とに基づき、該要素を誤り箇所と推定する
ことを特徴とする請求項に記載の推定装置。
【請求項3】
前記推定部は、生起確率が閾値以下の前記要素が所定数以上連続する場合に、連続する複数の前記要素を誤り箇所と推定する
ことを特徴とする請求項又はに記載の推定装置。
【請求項4】
前記第1又は第2の言語モデルを参照して、誤り箇所と推定された前記要素に対し、生起確率が最も大きくなる要素を修正候補として出力する出力部を備える
ことを特徴とする請求項のいずれか1項に記載の推定装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、学習方法、プログラム及び推定装置に関する。
【背景技術】
【0002】
文章内に出現する語句の共起関係を学習することで、入力されたテキストに続くテキストの推定、テキスト内の誤りの推定等を行う技術がある。例えば特許文献1では、文章中に各単語が出現する順序と、各単語の係り受け等の関係とを学習した再帰型ニューラルネットワーク(Recurrent Neural Network、以下では「RNN」と記載)を構築し、構築したRNNを用いて、入力されたテキストに続くテキストを推定し、適切な構造の文章を出力する学習装置等が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-45656号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に係る発明では、文章中に出現する単語の順序を、文章の先頭から順に学習しているため、例えば文章の先頭に位置する単語、読点に続く単語等を適切に推定することが難しい。
【0005】
一つの側面では、文章中の位置に関わらず適切な語であるか否かを識別することができる学習装置等を提供することを目的とする。
【課題を解決するための手段】
【0006】
一つの側面では、学習装置は、文章を取得する取得部と、取得した前記文章を、所定単位の文字又は文字列である複数の要素に分割する分割部と、各要素の次に出現する前記要素を、取得した前記文章の順に学習する第1学習部と、前記複数の要素の並び順を、前記文章の先頭から末尾までを逆順序に並び替える順序変換部と、並び替えた前記文章の順に、前記各要素の次に出現する前記要素を学習する第2学習部とを備えることを特徴とする。
【発明の効果】
【0007】
一つの側面では、文章中の位置に関わらず適切な語であるか否かを識別することができる。
【図面の簡単な説明】
【0008】
図1】学習装置の構成例を示すブロック図である。
図2】言語モデルについて説明するための説明図である。
図3】テキスト学習処理について説明するための説明図である。
図4】順方向のみでのテキストの並び順に基づく誤り推定処理の説明図である。
図5】逆順序のテキスト学習処理について説明するための説明図である。
図6】誤り推定処理の説明図である。
図7】テキスト学習処理の処理手順の一例を示すフローチャートである。
図8】誤り推定処理の処理手順の一例を示すフローチャートである。
図9】実施の形態2に係る誤り推定処理の説明図である。
図10】実施の形態2に係る誤り推定処理の処理手順の一例を示すフローチャートである。
図11】実施の形態3に係る学習装置の構成例を示すブロック図である。
図12】語句リストのレコードレイアウトの一例を示す説明図である。
図13】サブワード学習処理を説明するための説明図である。
図14】サブワード学習処理の処理手順の一例を示すフローチャートである。
図15】上述した形態の学習装置の動作を示す機能ブロック図である。
【発明を実施するための形態】
【0009】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
(実施の形態1)
図1は、学習装置1の構成例を示すブロック図である。本実施の形態では、文章内に出現する各語句を、その文章の並び順に従って学習した言語モデル141を生成し、生成した言語モデル141を用いて、文章内の誤り箇所を推定する学習装置1について説明する。
【0010】
学習装置1は、種々の情報処理が可能な情報処理装置であり、例えばサーバ装置、パーソナルコンピュータ、多機能端末等である。学習装置1は、学習用の文章を所定単位の語句(要素)毎に分割し、分割した各語句を、当該文章の並び順に従って学習する。これにより学習装置1は、直前までの語句から次の語句の出現確率(生起確率)を予測する言語モデル141を生成する。
【0011】
図2は、言語モデル141について説明するための説明図である。言語モデル141は、自然言語の文章が生成される確率をモデル化したものである。一般的な言語モデル141では、文章内で先頭から順に出現する一又は複数の語句から、当該一又は複数の語句に続いて出現する語句の生起確率を算出し、次の語句を推定する。図2の例では、文章の先頭から順次出現する語句「私」、「は」、「学校」、「に」に基づき、次に出現する語句の生起確率を算出する様子を図示している。図2に示すように、一般的な言語モデル141では「私」等の語句を入力して次の語句の候補「行く」、「いる」等の生起確率を算出し、生起確率が最も高い候補「行く」を次の語句として予測する。このように、一般的な言語モデル141では、直前までの語句から次の語句を予測する。
【0012】
本実施の形態ではさらに、学習装置1は文章の先頭及び末尾を入れ替え、文章内の語句を逆順序にした場合の語句の順序を学習し、文章の末尾から順に出現する一又は複数の語句から、直前の語句を予測する言語モデル141を生成する。すなわち学習装置1は、文章内の順方向における語句の並び順と、逆方向における並び順とを学習して2つの言語モデル141を生成する。学習装置1は当該2つの言語モデル141を用いて、誤り推定対象である文章から、誤字等と推定される誤り箇所を推定する。
【0013】
図1に戻って説明を続ける。学習装置1は、制御部11、主記憶部12、通信部13、補助記憶部14を備える。
制御部11は、一又は複数のCPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)等の演算処理装置を有し、補助記憶部14に記憶されたプログラムPを読み出して実行することにより、学習装置1に係る種々の情報処理、制御処理等を行う。主記憶部12は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等の一時記憶領域であり、制御部11が演算処理を実行するために必要なデータを一時的に記憶する。通信部13は、通信に関する処理を行うための処理回路等を含み、外部と情報の送受信を行う。
【0014】
補助記憶部14は大容量メモリ、ハードディスク等であり、制御部11が処理を実行するために必要なプログラムP、その他のデータを記憶している。また、補助記憶部14は、上述の如く学習用の文章から生成された言語モデル141を記憶している。
【0015】
なお、補助記憶部14は学習装置1に接続された外部記憶装置であってもよい。また、学習装置1は複数のコンピュータからなるマルチコンピュータであってもよく、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。
【0016】
また、本実施の形態において学習装置1は上記の構成に限られず、例えば可搬型記憶媒体に記憶された情報を読み取る読取部、操作入力を受け付ける入力部、画像を表示する表示部等を含んでもよい。
【0017】
図3は、テキスト学習処理について説明するための説明図である。図3では、学習装置1が学習用の文章において順方向に並んだ各語句を学習して、RNNの一種であるLSTM(Long Short-Term Memory)による言語モデル141を構築する様子を図示している。以下では学習装置1が実行する処理の概要について説明する。
【0018】
学習装置1は、例えば通信部13を介して外部から複数の学習用の文章を取得する。そして学習装置1はまず、取得した学習用の文章に対して形態素解析等の自然言語処理を行い、所定単位の文字又は文字列である語句(要素)毎に分割する。この分割単位は、例えば単語、文節等の単位であるが、特に限定されない。例えば学習装置1は、複数の語句を格納した辞書(不図示)を予め記憶しておき、当該辞書に格納された語句に従って文章を分割すればよい。
【0019】
なお、後述する実施の形態3のように、学習装置1は単語、文節等の単位ではなく、その他の単位で文章を分割してもよい。つまり学習装置1は、所定単位の文字又は文字列である要素毎に学習用文章を分割可能であればよく、分割単位とする要素は単語、文節等の単位に限定されない。
【0020】
学習装置1は、分割した各語句をRNNに係る入力層に入力し、機械学習を行う。図3に、RNNの構成を概念的に図示する。図3に示すように、RNNは、入力層、中間層(隠れ層)、及び出力層を有する。入力層は、文章の先頭から順に出現する各語句の入力をそれぞれ受け付ける複数のニューロンを有する。出力層は、入力層の各ニューロンに対応して、各ニューロンに入力される語句に続く語句をそれぞれ推定して出力する複数のニューロンを有する。そして中間層は、入力層の各ニューロンへの入力値(語句)に対して出力層の各ニューロンにおける出力値(語句)を演算するための複数のニューロンを有する。中間層の各ニューロンは、過去の入力値に関する中間層での演算結果を用いて(図3では右向きの矢印で図示)次の入力値に関する演算を行うことで、直前までの語句から次の語句を推定する。
【0021】
なお、図3に示すRNNの構成は一例であって、本実施の形態はこれに限定されるものではない。例えば中間層は一層に限定されず、二層以上であってもよい。また、入力層及び出力層のニューロンの数は同数に限定されず、例えば入力に対して出力の数は少なくともよい。
【0022】
また、本実施の形態で学習装置1はRNNのアルゴリズムに従って学習を行うが、例えばその他の深層学習、N-gramモデル、SVM(Support Vector Machine)、ベイジアンネットワーク、決定木など、他のアルゴリズムに従って学習を行い、言語モデル141を生成してもよい。
【0023】
学習装置1は、学習用文章の各語句を、当該文章内での並び順に従って入力層の各ニューロンに入力し、出力層の各ニューロンから出力値を得る。図3の例では、学習装置1は学習用文章の各語句「昨日」、「は」、「電車」、「に」…を、文章内での順番に従い、対応する入力層の各ニューロンに入力する。学習装置1は、中間層を経て出力層の各ニューロンでの演算を行い、文章内の任意の位置(順番)に出現する語句の生起確率を、直前までに出現する語句に基づいて算出し、次に出現する語句を推定する。図3の例では、学習装置1は1番目の語句「昨日」に基づき、2番目に出現する語句の生起確率を算出して推定を行う。また、学習装置1は1番目及び2番目の語句「昨日」及び「は」に基づき、3番目の語句の生起確率を算出して推定を行う。以下同様にして、学習装置1は各語句を推定する。
【0024】
学習装置1は、推定した語句を実際の語句(正解値)と比較し、出力層の各ニューロンからの出力値が正解値に近似するよう各ニューロンのパラメータを調整し、RNNを構築する。例えば学習装置1は、「昨日」に続く語句として推定した語句が、実際の語句「は」となるように、各ネットワーク層のニューロンの重み等を調整する。これにより学習装置1は、学習用文章の順方向において、直前までに出現した語句から、当該語句の次に出現する語句を学習した言語モデル141を生成する。
【0025】
図4は、順方向のみでのテキストの並び順に基づく誤り推定処理の説明図である。図4では、文章内の誤り箇所を検出するため、順方向の言語モデル141のみに基づいて各語句の生起確率を算出した場合を概念的に図示している。
【0026】
学習装置1は、例えば通信部13を介して、誤り箇所の検出(推定)対象である対象文を取得する。学習装置1は学習時と同様に、対象文を所定単位の語句に分割する。そして学習装置1は、生成済みの言語モデル141を参照して、各語句の生起確率を、直前までに出現する語句に基づいて算出する。図4に示す例では、学習装置1は、3番目に出現する語句「昨日」の生起確率を算出する場合、上述のRNNを用いて、1番目及び2番目の語句「私」及び「は」から「昨日」の生起確率を算出する。そして学習装置1は、算出した生起確率に基づき、当該語句が誤り箇所であるか否かを判定する。例えば学習装置1は、生起確率を所定の閾値と比較し、閾値以下である場合、つまり生起確率が低い場合に誤り箇所であるものと判定する。
【0027】
しかしながら、順方向のみの学習結果から誤り箇所を推定した場合、文章内における該当語句の位置によっては、適切に誤り箇所と推定できない虞がある。例えば日本語の文章の場合、文章の先頭、読点の直後、あるいは助詞の直後などには様々な語句が出現し得るため、多くの語句の生起確率が低くなる。例えば図4に示す文章は正しい文章であるにも関わらず、先頭に位置する語句「私」、及び読点の直後に位置する「学校」は、生起確率が低くなっている。この場合、学習装置1は正しい語句「私」及び「学校」を誤り箇所と推定する虞がある。
【0028】
そこで本実施の形態では、学習装置1はさらに各語句を逆順序に並び替えた場合の文章を学習して言語モデル141を生成し、順方向及び逆方向それぞれの学習結果を組み合わせて誤り箇所を推定することで、上記の問題を解決する。
【0029】
図5は、逆順序のテキスト学習処理について説明するための説明図である。図5では、学習用文章の各語句を逆順序に並び替え、文章の末尾からの順に各語句を学習していく様子を図示している。
【0030】
例えば学習装置1は、順方向について学習処理を完了後、学習用文章の先頭から末尾までを入れ替え、末尾の語句を先頭にした逆順序に並び替える。すなわち、図5に示すように、学習装置1は「昨日」、「は」、「電車」、「に」、…「行っ」、「た」と続く語句を、「た」、「行っ」、「に」、「京都」、…「は」、「昨日」という順序に並び替える。学習装置1は、図3で示したRNNと同様の構成を有する逆順序学習用のRNNの入力層に、並び替えた各語句を入力する。そして学習装置1は、文章の末尾から逆順序で出現する一又は複数の語句に基づき、当該一又は複数の語句の直前に出現する語句を推定するRNNを構築する。つまり学習装置1は、文章内の任意の位置の語句を、当該語句に続く後続の語句から推定するRNNを構築する。
【0031】
図6は、誤り推定処理の説明図である。図6では、順方向及び逆方向それぞれの言語モデル141に基づいて各語句の生起確率を算出する様子を図示している。
学習装置1は、図4でも説明したように、誤り推定対象の対象文を所定単位の語句に分割する。そして学習装置1は、対象文の各語句を順方向及び逆方向それぞれに係るRNNの入力層に入力し、順方向及び逆方向それぞれについて生起確率を算出する。
【0032】
順方向について計算を行う場合、学習装置1は、順方向について学習したRNNの入力層に対して各語句を入力し、先頭から順に出現する一又は複数の語句から、当該一又は複数の語句に続く語句の生起確率を算出する。つまり学習装置1は、直前までの語句から次に出現する語句の生起確率を算出する。
【0033】
逆方向について計算を行う場合、学習装置1はまず、対象文の各語句を逆順序に並び替える。そして学習装置1は、逆順序について学習したRNNに対し、並び替えた各語句をその逆順序で入力し、末尾から順に出現する一又は複数の語句、つまり後続の語句から、当該一又は複数の語句の直前に出現する語句の生起確率を算出する。これにより、図6に示すように、順方向の場合に生起確率が低くなっていた語句「私」及び「学校」は、逆方向の場合には生起確率が高くなっている。
【0034】
学習装置1は、順方向及び逆方向それぞれについて算出した各語句の生起確率に基づき、各語句が誤りであるか否かを判定する。例えば学習装置1は、順方向及び逆方向それぞれの生起確率が共に所定の閾値以下である場合、誤り箇所と推定する。学習装置1は、例えば誤り箇所と推定した語句を色分け表示するなどして、誤り箇所の表示態様をその他の箇所の表示態様と異ならせた対象文を出力することで、推定結果を出力する。
【0035】
さらに学習装置1は、誤り箇所を検知した場合、誤りと推定した語句に代わる正しい語句を推定して提示(出力)してもよい。すなわち学習装置1は、誤り箇所と推定された語句に対し、修正候補とする語句を出力する。図2で説明したように、学習装置1は、言語モデル141を用いることで、生起確率が高い語句を前後の語句から予測可能である。例えば学習装置1は、誤り推定のために用いた言語モデル141(学習結果)を参照して、誤り箇所と推定された語句の位置(順序)において、生起確率が最も高い語句を修正候補として出力すればよい。この場合、学習装置1は順方向及び逆方向の2つの言語モデル141を用いて双方向から修正候補を推定してもよく、順方向又は逆方向のいずれかの言語モデル141のみから修正候補を推定してもよい。
【0036】
以上より、学習装置1は、順方向及び逆方向それぞれの並び順で各語句を学習した言語モデル141を用いることで、文章内の誤り箇所を適切に推定することができる。
【0037】
なお、学習装置1は言語モデル141をBi‐directional RNNとして、順方向及び逆方向の並び順を同時に学習し、上記の2つのRNNを1つに統合してもよい。ただし、単方向のRNNの方がチューニングを容易に行えるため、上記のように2つのRNNを生成した方が好適である。
【0038】
図7は、テキスト学習処理の処理手順の一例を示すフローチャートである。図7に基づき、学習装置1が実行するテキスト学習処理の処理内容について説明する。
学習装置1の制御部11は、例えば通信部13を介して学習用の複数の文章を取得する(ステップS11)。制御部11は、取得した文章を、所定単位の文字又は文字列である複数の語句(要素)に分割する(ステップS12)。例えば制御部11は、単語、文節等の単位で文章を分割するが、分割する語句(要素)の単位は特に限定されない。
【0039】
制御部11は、文章の先頭から末尾に亘る順に、各語句の次に出現する語句を学習し、順方向の言語モデル141を生成する(ステップS13)。例えば制御部11は、上述の如く、文章の先頭から順に出現する一又は複数の語句を入力として、当該一又は複数の語句に続く語句の生起確率を出力するRNNを構築する。
【0040】
制御部11は、各語句の並び順を、文章の先頭から末尾までを入れ替えた逆順序に並び替える(ステップS14)。制御部11は、並び替えた文章の順に、各語句の次に出現する語句を学習して、逆方向の言語モデル141を生成する(ステップS15)。例えば制御部11は、文章の末尾から順に出現する一又は複数の語句を入力として、当該一又は複数の語句の直前に位置する語句の生起確率を出力するRNNを構築する。制御部11は、一連の処理を終了する。
【0041】
図8は、誤り推定処理の処理手順の一例を示すフローチャートである。図8に基づき、学習装置1が実行する誤り推定処理の処理内容について説明する。
学習装置1の制御部11は、例えば通信部13を介して、誤り推定対象である対象文を取得する(ステップS31)。制御部11は、取得した対象文を、所定単位の文字又は文字列である複数の語句(要素)に分割する(ステップS32)。
【0042】
制御部11は、順方向について生成した言語モデル141を参照して、対象文に出現する各語句の生起確率を算出する(ステップS33)。すなわち制御部11は、言語モデル141として構築済みのRNNの入力層に対し、対象文の先頭から順に出現する一又は複数の語句を入力して、当該一又は複数の語句に続く語句の生起確率を算出する。
【0043】
制御部11は、対象文の各語句の並び順を逆順序に並び替える(ステップS34)。そして制御部11は、逆方向について生成した言語モデル141を参照して、対象文に出現する各語句の生起確率を算出する(ステップS35)。すなわち制御部11は、逆方向について構築したRNNの入力層に対し、対象文の末尾から順に出現する一又は複数の語句を入力して、当該一又は複数の語句の直前に出現する語句の生起確率を算出する。
【0044】
制御部11は、順方向及び逆方向それぞれについて算出した各語句の生起確率に基づき、対象文における誤り箇所を推定する(ステップS36)。例えば制御部11は、順方向及び逆方向それぞれの生起確率が共に閾値以下である語句を誤り箇所と推定する。制御部11は推定結果を出力する(ステップS37)。例えば制御部11は、色分け表示等により、誤り箇所と推定された語句の表示態様をその他の語句の表示態様とは異ならせた対象文を出力する。また、制御部11はステップS37と併せて、誤り箇所と推定された語句に対し、修正候補を推定して出力するようにしてもよい。例えば制御部11は、順方向及び/又は逆方向の言語モデル141を参照して、誤り箇所と推定された語句の位置(順序)において、生起確率が最も高い語句を修正候補として出力する。制御部11は、一連の処理を終了する。
【0045】
なお、上記では同一の学習装置1がテキストの学習及び誤り推定を行うものとして説明したが、本実施の形態はこれに限定するものではない。学習装置1は文章の学習のみを行い、他の装置に学習結果(言語モデル141)をインストールして推定装置として構成し、当該推定装置が誤り推定を行うものとしてもよい。
【0046】
以上より、本実施の形態1によれば、文章中の各語句の並び順について、順方向だけでなく逆方向の順序も学習する。これにより、学習装置1は、文章中の位置に関わらず適切な語であるか否かを識別することができる言語モデル141を生成する。
【0047】
また、本実施の形態1によれば、言語モデル141としてRNNを生成することで、N-gramモデル等の他の学習アルゴリズムと比較して、より精度の高い言語モデル141を生成することができる。
【0048】
また、本実施の形態1によれば、順方向及び逆方向それぞれの言語モデル141を用いて対象文の各語句の生起確率を算出することで、対象文における誤り箇所を適切に指摘することができる。
【0049】
また、本実施の形態1によれば、言語モデル141を用いて、誤り箇所と推定された語句の修正候補を出力することもできる。これにより、利便性を向上させることができる。
【0050】
(実施の形態2)
本実施の形態では、各語句の生起確率に加えて、各語句の文字種及び/又は文字数を誤り推定の判定基準に用いる形態について述べる。なお、実施の形態1と重複する内容については同一の符号を付して説明を省略する。
図9は、実施の形態2に係る誤り推定処理の説明図である。図9では、誤り推定対象の対象文に含まれる各語句について、順方向及び逆方向それぞれの言語モデル141から算出した生起確率のほか、各語句の文字種及び文字数を図示している。
【0051】
本実施の形態で学習装置1は、該当語句の順方向及び逆方向それぞれに係る生起確率が閾値以下であり、かつ、該当語句の文字種及び/又は文字数が特定の条件を満たす場合、該当語句が誤り箇所であるものと推定する。例えば学習装置1は、文字種に関する条件として、該当語句が平仮名のみの文字又は文字列である場合、未変換の可能性が高いことから、誤り箇所と判定する。また、例えば学習装置1は、文字数に関する条件として、該当語句が所定の文字数以下である場合、誤入力の可能性が高いことから、誤り箇所と判定する。
【0052】
また、学習装置1は文字種及び文字数のほかに、他の条件を誤り推定の判定条件に加えてもよい。例えば学習装置1は、生起確率が閾値以下の語句が所定回数連続する箇所を誤りと推定してもよい。これにより、例えば漢字に変換すべき文字列を誤って未変換とした場合など、生起確率が閾値以下になる語句が連続して出現する箇所を適切に誤り箇所と推定することができる。
【0053】
図10は、実施の形態2に係る誤り推定処理の処理手順の一例を示すフローチャートである。図10に基づき、本実施の形態に係る誤り推定処理の処理内容について説明する。
ステップS35の処理を実行後、学習装置1の制御部11は、順方向及び逆方向それぞれについて算出した各語句の生起確率に加え、各語句の文字種及び/又は文字数に基づいて誤り箇所を推定する(ステップS201)。例えば制御部11は、順方向及び逆方向ともに生起確率が閾値以下であり、かつ、該当語句が特定の文字種又は文字数であるか否かを判定する。例えば制御部11は、文字種に関する条件として、該当語句が平仮名であるか否かを判定する。また、例えば制御部11は、文字数に関する条件として、該当語句が所定の文字数以下であるか否かを判定する。なお、制御部11は上記の条件に加えて、さらに順方向及び逆方向それぞれに係る生起確率が閾値以下の語句が所定数以上連続する箇所を誤り箇所と推定してもよい。制御部11は、処理をステップS37に移行する。
【0054】
以上より、本実施の形態2によれば、言語モデル141を用いて算出された生起確率だけでなく、該当語句の文字種及び/又は文字数を判定基準とすることで、誤り箇所をより適切に推定することができる。
【0055】
また、本実施の形態2によれば、生起確率が閾値以下の語句が連続する箇所を誤り箇所と推定することで、さらに適切に誤りを推定することができる。
【0056】
(実施の形態3)
本実施の形態では、文章を分割する単位として、サブワードと呼ばれる単位を用いることで、例えば専門書のように、一般的な辞書に収録されていない未知語が多い文章を扱う場合でも適切に対応することができる形態について述べる。
図11は、実施の形態3に係る学習装置1の構成例を示すブロック図である。本実施の形態に係る学習装置1の補助記憶部14は、語句リスト142を記憶している。語句リスト142は、所定のサンプル文書から抽出した、サブワードと呼ばれる語句を記憶するデータベースである。本実施の形態では、学習装置1が取り扱う文書(文章)として医療診断書を想定し、診断書をサブワード単位で分割して誤り推定を行う形態について述べる。
【0057】
図12は、語句リスト142のレコードレイアウトの一例を示す説明図である。語句リスト142は、語句列、スコア列を有する。語句列は、サンプル文書から抽出(分割)したサブワードである語句(文字又は文字列)を記憶している。スコア列は、サブワードと対応付けて、サンプル文書において各サブワードが出現した頻度を元に計算したスコア(パラメータ)を記憶している。
【0058】
図13は、サブワード学習処理を説明するための説明図である。学習装置1は、所定のサンプル文書を多数取得し、各サンプル文書からサブワードを抽出して語句リスト142を生成する。図13では、サンプル文書からサブワードを抽出し、語句リスト142に登録していく過程を図示している。
【0059】
サブワード(部分語)は、通常の分かち書きとは異なり、文章中に出現する頻度に応じて文章を区分した語句(文字又は文字列)の単位である。一般的に文章の最小構成単位として用いられる「単語」は、文章中の文字又は文字列を意味、文法等の観点から最小化した単位であるが、サブワードは意味、文法等による単位ではなく、文章中で用いられる頻度に応じて最小化した単位である。サブワードの概念によれば、低頻度の語句(文字列)は、語句を構成する文字や部分文字列といった、語句そのものよりも短い単位でまとめられる。
【0060】
以下、サンプル文書からサブワードを学習する処理について説明する。本実施の形態で学習装置1は、BPE(Byte Pair Encoding)の手法を用いてサンプル文書からサブワードを抽出する。
【0061】
学習装置1はまず、サンプル文書を文字単位で分割する。図4の最上段に示す例では、学習装置1は、「腫大したリンパ節を認めない」という文章を、「腫」、「大」、「し」、「た」…の各文字に分割している。
【0062】
学習装置1は、図13の二段目に示すように、分割した全ての文字をサブワードとして語句リスト142に登録する。この場合に学習装置1は、サンプル文書における各サブワード(文字)の出現頻度を元にサブワードのスコア(パラメータ)を計算し、計算したスコアを語句リスト142のスコア列に登録しておく。スコアは、例えば出現頻度を正規化することによって計算される。図4の例では、「腫」よりも「大」の方が文章中で出現する頻度が高いため、「大」のスコアは「腫」のスコア0.01よりも大きい0.05となっている。
【0063】
なお、正規化する際に用いる重みなどの値は、場合によって適宜変更される。また、以下の説明では出現頻度を正規化したスコア(パラメータ)に基づき一連の処理を行うものとするが、例えば学習装置1は正規化していない出現頻度そのものをスコアとして用いても良く、出現頻度に応じたパラメータに基づいて一連の処理を行うことができれば良い。
【0064】
次に学習装置1は、サンプル文書において隣り合う文字を連結した二文字の文字列を、当該文字列の出現頻度に応じて語句リスト142に登録する。具体的には、学習装置1は、文章中で最もスコアが高い二文字を語句リスト142に登録する。
【0065】
例えば学習装置1は、文章の先頭から末尾に至るまで二文字ずつ文字列を取り出し、各文字列のスコアを計算していく。図13の例では、学習装置1はまず「腫大」のスコアを計算し、続いて「大し」のスコアを、「した」のスコアを…というように計算を行う。そして学習装置1は、二文字から成る各文字列のうち、スコアが最も高い文字列を語句リスト142に登録する。図13の三段目に示す例では、「転移」の文字列のスコアが最も高かったため、学習装置1は「転移」をサブワードとして語句リスト142に登録する。なお、学習装置1は併せて、当該文字列の出現頻度を元に計算したスコアを語句リスト142に登録する。
【0066】
続いて学習装置1は、再度サンプル文書を探索し、スコアが最も高い二文字を語句リスト142に登録する。この場合に学習装置1は、サブワードとして語句リスト142に登録済みの文字列は一文字とみなし、新たなサブワードを探索する。上記の例では、語句リスト142に「転移」を登録済みであるため、この「転移」の文字列が一つの文字とみなされる。このように、学習装置1はBPEの手法を用いて、隣り合う文字同士を一つの情報(文字列)に圧縮する。学習装置1は、「転移」に跨る部分についてスコアを計算する場合、「転移」の前に位置する「骨」と「転移」とを連結した「骨転移」と、「転移」の後に位置する「が」と「転移」とを連結した「転移が」とを二文字の文字列とみなし、スコアを計算する。
【0067】
このように、学習装置1は、語句リスト142に登録済みの二つのサブワード(文字又は文字列)を連結して新たなサブワード(文字列)を特定し、当該新たなサブワードを出現頻度に応じて語句リスト142に追加する。図13の四段目に示す例では、一文字のサブワード「骨」と二文字のサブワード「転移」とを連結した文字列「骨転移」のスコアが最も高かったため、学習装置1は、文字列「骨転移」をサブワードとして新たに語句リスト142に追加する。
【0068】
以下同様にして、学習装置1は、サンプル文書内で隣り合う二つのサブワード(文字又は文字列)を連結し、二つのサブワードから成る文字列を、その出現頻度に応じて語句リスト142に登録する処理を順に行っていく。学習装置1は、複数のサンプル文書に対して当該処理を行い、語句リスト142に登録されたサブワードが予め定められた最大数(例えば8000語)に達するまで処理を繰り返す。これにより学習装置1は、図12で例示した語句リスト142を生成する。このようにして学習装置1は、文章内で現れやすい文字列のパターン(サブワード)を学習する。
【0069】
なお、上記で学習装置1は、文章内で出現頻度に応じたスコアが最も高い文字列を語句リスト142に登録することとしているが、例えばスコアの閾値を定め、閾値以上のスコアを有する文字列を全てサブワードとして登録するようにしてもよい。つまり、学習装置1は出現頻度に応じてサブワードを登録可能であればよく、出現頻度に係る判定基準は特に限定されない。
【0070】
学習装置1は、上記の語句リスト142を参照して学習用の文章(上述の例では既存の診断書)をサブワード単位で分割し、言語モデル141を生成する。例えば学習装置1は、分割後の全てのサブワードのスコアの合計値が最大化するように文章を分割する。同様に、学習装置1は誤り推定対象の対象文(診断書)をサブワード単位で分割し、言語モデル141を用いて誤り箇所を推定する。
【0071】
上記のように、学習装置1は意味、文法等のような一般的な基準ではなく、出現頻度に応じて区分されるサブワードによって対象文を分割し、誤り部分を検出(推定)する。これにより、人手で作成された辞書を用いる必要がなく、未知語の多い文章であっても対応することができる。
【0072】
図14は、サブワード学習処理の処理手順の一例を示すフローチャートである。図14に基づき、学習装置1が実行する誤り推定処理の処理内容について説明する。
学習装置1の制御部11は、学習用の複数のサンプル文書を取得する(ステップS301)。制御部11は、取得したサンプル文書を文字単位に分割する(ステップS302)。制御部11は、分割した全ての文字をサブワードとして語句リスト142に登録する(ステップS303)。
【0073】
制御部11は、語句リスト142に登録済みのサブワード(文字又は文字列)のうち、サンプル文書において隣り合う二つのサブワードを連結した文字列の、サンプル文書内での出現頻度に応じたスコア(パラメータ)を算出する(ステップS304)。例えば制御部11は、文章の先頭から末尾に至るまで二つずつサブワードを取り出して一つの文字列とし、各文字列の出現頻度に基づくスコアを順に計算する。
【0074】
制御部11は、ステップS304で算出したスコアに応じて、二つのサブワードを連結した文字列を新たなサブワードとして語句リスト142に登録する(ステップS305)。具体的には、制御部11は、ステップS304においてスコアを計算した全ての文字列のうち、スコアが最も高い文字列を語句リスト142に登録する。この場合に制御部11は、ステップS304で算出された出現頻度を元にしたスコアを併せて語句リスト142に登録する。
【0075】
制御部11は、予め定められた最大数のサブワードが語句リスト142に登録されたか否かを判定する(ステップS306)。最大数のサブワードが登録されていないと判定した場合(S306:NO)、制御部11は処理をステップS304に戻す。最大数のサブワードが登録されたと判定した場合(S306:YES)、制御部11は一連の処理を終了する。
【0076】
以上より、本実施の形態3によれば、文章を分割する要素(語句)として、意味、文法等を基準とした単語、文節等ではなく、出現頻度に応じて区分されるサブワードを分割単位として用いる。これにより、人手で作成された辞書を用いる必要がなく、未知語の多い文章であっても対応することができる。特にサブワード単位で分割することで、低頻度の語句は短い文字数で分割されるため、実施の形態2(文字種及び/又は文字数に基づく誤り推定、生起確率が閾値以下の語句の連続性に基づく誤り推定)と本実施の形態を組み合わせることで、一層の精度向上を期待することができる。
【0077】
(実施の形態4)
図15は、上述した形態の学習装置1の動作を示す機能ブロック図である。制御部11がプログラムPを実行することにより、学習装置1は以下のように動作する。
取得部151は、複数の文章を取得する。分割部152は、取得した前記文章夫々を、所定単位の文字又は文字列である複数の要素に分割する。第1学習部153は、各要素の次に出現する前記要素を、取得した前記文章の順に学習する。順序変換部154は、前記複数の要素の並び順を、前記文章の先頭から末尾までを逆順序に並び替える。第2学習部155は、並び替えた前記文章の順に、前記各要素の次に出現する前記要素を学習する。
【0078】
本実施の形態4は以上の如きであり、その他は実施の形態1から3と同様であるので、対応する部分には同一の符号を付してその詳細な説明を省略する。
【0079】
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0080】
1 学習装置
11 制御部
12 主記憶部
13 通信部
14 補助記憶部
P プログラム
141 言語モデル
142 語句リスト
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15