(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-12
(45)【発行日】2022-12-20
(54)【発明の名称】情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
G06F 40/253 20200101AFI20221213BHJP
G06F 40/216 20200101ALI20221213BHJP
【FI】
G06F40/253
G06F40/216
(21)【出願番号】P 2018182650
(22)【出願日】2018-09-27
【審査請求日】2021-07-27
(73)【特許権者】
【識別番号】000002897
【氏名又は名称】大日本印刷株式会社
(74)【代理人】
【識別番号】100114557
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】大野 和久
(72)【発明者】
【氏名】伊藤 直之
【審査官】長 由紀子
(56)【参考文献】
【文献】特開2013-134753(JP,A)
【文献】特開2016-134169(JP,A)
【文献】米国特許出願公開第2016/0196257(US,A1)
【文献】永田 亮、外5名,前置詞情報を利用した冠詞誤り検出,電子情報通信学会論文誌,第J88-D-I巻 第4号,日本,電子情報通信学会,2005年04月01日,pp.873-881
【文献】竹内 孔一、外1名,統計的言語モデルを用いたOCR誤り訂正システムの構築,情報処理学会論文誌,第40巻 第6号,日本,情報処理学会,1999年06月15日,pp.2679-2689
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-58
(57)【特許請求の範囲】
【請求項1】
対象文を取得する取得部と、
前記対象文を単位文字列に分割する分割部と、
複数の文章における前記単位文字列の順序を学習済みの文章モデルを用いて、前記分割部により分割した前記対象文の各単位文字列の生起確率を算出する算出部と、
算出した前記単位文字列の生起確率に基づいて、前記対象文における誤りの単位文字列を推定する推定部と、
前記対象文の各単位文字列の前記文
章における
出現回数を判断し、判断した前記単位文字列の
出現回数が閾値を超えているか否かを判定する判定部と
、
前記単位文字列を、前記単位文字列の品詞、読みまたは活用形である分類ごとに変換する変換部と、
複数の文章における前記単位文字列を変換した分類を、前記文章における前記単位文字列の順序で学習済みの分類モデルを用いて、前記変換部で前記対象文の各単位文字列を変換した各分類の生起確率を算出する第2算出部とを備え、
前記推定部は、前記出現回数が閾値を超えていないと判定した場合、前記第2算出部が算出した前記単位文字列を変換した前記分類の生起確率に基づいて、前記対象文における誤りの単位文字列を推定する
ことを特徴とする情報処理装置。
【請求項2】
前記出現回数が閾値を超えていると判定した場合、前記単位文字列の生起確率と、
前記単位文字列の分類の生起確率とを合成した合成生起確率を算出する
第3算出部を更に備え、
前記推定部は、前記出現回数が閾値を超えていると判定した場合、前記合成生起確率に基づいて、前記対象文における誤りの単位文字列を推定する
ことを特徴とする請求項
1に記載の情報処理装置。
【請求項3】
前記単位文字列の
出現回数と前記閾値との
差異の大きさに応じて、前記単位文字列
の生起確率及び
前記単位文字列の分類の生起確率の合成比率を決定し、決定した合成比率に基づき
、前記単位文字列の生起確率と、前記単位文字列の分類の生起確率とを合成した合成生起確率を算出する
第3算出部を更に備え、
前記推定部は、前記合成生起確率に基づいて、前記対象文における誤りの単位文字列を推定する
ことを特徴とする請求項
1に記載の情報処理装置。
【請求項4】
前記第2算出部は、
前記単位文字列を変換した分類を、前記複数の文章において先頭から末尾に亘る正順序
で学習済みの第1分類モデルと、
前記単位文字列を変換した分類を、前記複数の文章において先頭から末尾までを逆順序に並び替え
た順序で学習済みの第2分類モデルとを用いて、前記
対象文の各単位文字列を変換した各分類の生起確率を算出する
ことを特徴とする請求項
1~
3のいずれか1項に記載の情報処理装置。
【請求項5】
前記算出部は、前記複数の文章において先頭から末尾に亘る正順序で前記単位文字列の順序を学習済みの第1文章モデルと、前記複数の文章において先頭から末尾までを逆順序に並び替えて前記単位文字列の順序を学習済みの第2文章モデルとを用いて、前記
対象文の各単位文字列の生起確率を算出する
ことを特徴とする請求項1~
4のいずれか1項に記載の情報処理装置。
【請求項6】
対象文を取得し、
前記対象文を単位文字列に分割し、
複数の文章における前記単位文字列の順序を学習済みの文章モデルを用いて、分割した前記対象文の各単位文字列の生起確率を算出し、
算出した前記単位文字列の生起確率に基づいて、前記対象文における誤りの単位文字列を推定し、
前記対象文の各単位文字列の前記文
章における
出現回数を判断し、判断した前記単位文字列の
出現回数が閾値を超えているか否かを判定
し、
前記単位文字列を、前記単位文字列の品詞、読みまたは活用形である分類ごとに変換し、
複数の文章における前記単位文字列を変換した分類を、前記文章における前記単位文字列の順序で学習済みの分類モデルを用いて、前記対象文の各単位文字列を変換した各分類の生起確率を算出し、
前記出現回数が閾値を超えていないと判定した場合、算出した前記単位文字列を変換した前記分類の生起確率に基づいて、前記対象文における誤りの単位文字列を推定する
処理をコンピュータ
が実行
することを特徴とする情報処理方法。
【請求項7】
対象文を取得し、
前記対象文を単位文字列に分割し、
複数の文章における前記単位文字列の順序を学習済みの文章モデルを用いて、分割した前記対象文の各単位文字列の生起確率を算出し、
算出した前記単位文字列の生起確率に基づいて、前記対象文における誤りの単位文字列を推定し、
前記対象文の各単位文字列の前記文
章における
出現回数を判断し、判断した前記単位文字列の
出現回数が閾値を超えているか否かを判定
し、
前記単位文字列を、前記単位文字列の品詞、読みまたは活用形である分類ごとに変換し、
複数の文章における前記単位文字列を変換した分類を、前記文章における前記単位文字列の順序で学習済みの分類モデルを用いて、前記対象文の各単位文字列を変換した各分類の生起確率を算出し、
前記出現回数が閾値を超えていないと判定した場合、算出した前記単位文字列を変換した前記分類の生起確率に基づいて、前記対象文における誤りの単位文字列を推定する
処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
誤字、脱字、助詞の誤用のような、文章内の誤りを指摘する種々の方法がある。例えば特許文献1では、誤り検出対象文書に対する形態素解析を行って単語単位に分割し、所定の正誤対照表を参照して単語の表記の正誤を判定する装置であって、単語の表記にゆらぎがあるため正誤を判定することができない場合に、Trigramに基づく言語モデルを参照して正誤を判定する誤り表記検出装置等が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に係る発明は単語の表記、すなわち表層形に基づいて正誤を判定しているため、言語としては正しい文章であっても、使用頻度が低い単語は誤りであるものとして誤検出される虞がある。
【0005】
一つの側面では、文章を適切に評価することができる情報処理装置等を提供することを目的とする。
【課題を解決するための手段】
【0006】
一つの側面では、情報処理装置は、対象文を取得する取得部と、前記対象文を単位文字列に分割する分割部と、複数の文章における前記単位文字列の順序を学習済みの文章モデルを用いて、前記分割部により分割した前記対象文の各単位文字列の生起確率を算出する算出部と、算出した前記単位文字列の生起確率に基づいて、前記対象文における誤りの単位文字列を推定する推定部と、前記対象文の各単位文字列の前記文章における出現回数を判断し、判断した前記単位文字列の出現回数が閾値を超えているか否かを判定する判定部と、前記単位文字列を、前記単位文字列の品詞、読みまたは活用形である分類ごとに変換する変換部と、複数の文章における前記単位文字列を変換した分類を、前記文章における前記単位文字列の順序で学習済みの分類モデルを用いて、前記変換部で前記対象文の各単位文字列を変換した各分類の生起確率を算出する第2算出部とを備え、前記推定部は、前記出現回数が閾値を超えていないと判定した場合、前記第2算出部が算出した前記単位文字列を変換した前記分類の生起確率に基づいて、前記対象文における誤りの単位文字列を推定することを特徴とする。
【発明の効果】
【0007】
一つの側面では、文章を適切に評価することができる。
【図面の簡単な説明】
【0008】
【
図1】文書検査システムの構成例を示す模式図である。
【
図5】文章学習処理の処理手順の一例を示すフローチャートである。
【
図6】誤り検出処理の処理手順の一例を示すフローチャートである。
【
図7】実施の形態2に係る文章学習処理に関する説明図である。
【
図8】実施の形態2に係る誤り検出処理に関する説明図である。
【
図9】実施の形態2に係る文章学習処理の処理手順の一例を示すフローチャートである。
【
図10】実施の形態2に係る誤り検出処理の処理手順の一例を示すフローチャートである。
【
図11】上述した形態のサーバの動作を示す機能ブロック図である。
【発明を実施するための形態】
【0009】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
(実施の形態1)
図1は、文書検査システムの構成例を示す模式図である。本実施の形態では、文章(文書)内の誤り箇所を検出する文書検査システムについて説明する。文書検査システムは、情報処理装置1、端末2等を含む。各装置は、インターネット等のネットワークNを介して通信接続されている。
【0010】
情報処理装置1は、種々の情報処理、情報の送受信が可能な情報処理装置であり、例えばサーバ装置、パーソナルコンピュータ等である。本実施の形態では情報処理装置1がサーバ装置であるものとし、以下の説明では簡潔のためサーバ1と読み替える。サーバ1は、学習用の文章群を用いて、文章内に出現する単位文字列(例えば形態素)を学習する機械学習を行い、文章内の任意の箇所に出現する単位文字列を、直前までに出現する単位文字列から推定可能な言語モデルを生成する。言語モデルは、自然言語の文章が生成される確率をモデル化したものであり、例えばN-gramモデル、隠れマルコフモデルなどがある。本実施の形態においてサーバ1は、学習用に与えられる文章群からRNN(Recurrent Neural Network;再帰型ニューラルネットワーク)を言語モデルとして構築する。
【0011】
後述するように、サーバ1は、学習用の文章に対する形態素解析を行って形態素(表層形)毎に分割し、形態素の出現順序を学習した言語モデル(以下、「形態素モデル」と呼ぶ)を構築する。さらにサーバ1は、形態素解析によって形態素の品詞を特定し、文章内に出現する形態素の品詞(分類)を学習する機械学習を行うことで、文章内の任意の箇所に出現する形態素の品詞を、直前までに出現する形態素の品詞から推定可能な言語モデル(以下、「品詞モデル」と呼ぶ)を構築する。サーバ1は、形態素モデル及び品詞モデルの双方を用いて検査対象の文章を検査し、文章内の誤り箇所を検出する。後述するように、サーバ1は形態素モデルだけでなく品詞モデルも用いて検査を行うことで、正しい文章であるにも関わらず誤り箇所を誤検出してしまうような事態を防止する。
【0012】
端末2は、本システムを利用する各ユーザが使用する端末装置であり、例えばパーソナルコンピュータ、多機能端末等である。サーバ1は端末2から検査対象の文章を取得し、上記の形態素モデル及び品詞モデルを用いて文章内から誤り箇所を検出する処理を行って、検出結果を端末2に出力する。
【0013】
図2は、サーバ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及び品詞モデル142を記憶している。上述の如く、形態素モデル141は、学習用の文章群から生成される言語モデルであり、文章内に出現する形態素の出現順序を学習した学習済みモデル(文章モデル)である。品詞モデル142は、形態素モデル141と同じく学習用の文章群から生成される言語モデルであり、文書内に出現する品詞の順序を学習した学習済みモデル(分類モデル)である。
【0015】
なお、補助記憶部14はサーバ1に接続された外部記憶装置であってもよい。また、サーバ1は複数のコンピュータからなるマルチコンピュータであってもよく、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。
【0016】
また、本実施の形態においてサーバ1は上記の構成に限られず、例えば可搬型記憶媒体に記憶された情報を読み取る読取部、操作入力を受け付ける入力部、画像を表示する表示部等を含んでもよい。
【0017】
図3は、文章学習処理に関する説明図である。
図3では、学習用の文章から形態素モデル141及び品詞モデル142を生成する処理を概念的に図示している。以下では本実施の形態の概要を説明する。
まずサーバ1は、学習用の文章群を外部から取得し、各文章に対する形態素解析を行う。なお、本明細書で「文章」と言う場合、文章は一文(センテンス)に限定されず、複数の文から成る文章、又は一文よりも短い文章も含まれ得る。
図3の下側に示すように、サーバ1は、形態素解析により文章を形態素(単位文字列)に分割すると共に、各形態素の品詞(分類)を特定する。
【0018】
サーバ1は、形態素単位で分割した各文章を学習する機械学習を行い、形態素モデル141(文章モデル)としてRNNを構築する。例えばサーバ1は、RNNの一種であるLSTM(Long Short-Term Memory)を構築する。
【0019】
具体的には、サーバ1は、学習用文章から分割した各形態素をRNNに係る入力層に入力し、機械学習を行う。
図3左上に、形態素モデル141に対応するRNNの構成を概念的に図示する。
図3に示すように、RNNは、入力層、中間層(隠れ層)、及び出力層を有する。入力層は、文章の先頭から末尾に亘って順に出現する各形態素の入力をそれぞれ受け付ける複数のニューロンを有する。出力層は、入力層の各ニューロンに対応して、各ニューロンに入力される形態素の次に出現する形態素をそれぞれ推定して出力する複数のニューロンを有する。そして中間層は、入力層の各ニューロンへの入力値に対して出力層の各ニューロンにおける出力値を演算するための複数のニューロンを有する。中間層の各ニューロンは、過去の入力値に関する中間層での演算結果を用いて次の入力値に関する演算を行うことで、直前までに出現する一又は複数の形態素から次の形態素を推定する。
【0020】
なお、
図3に示すRNNの構成は一例であって、本実施の形態はこれに限定されるものではない。例えば中間層は一層に限定されず、二層以上であってもよい。また、入力層及び出力層のニューロンの数は同数に限定されず、例えば入力に対して出力の数は少なくともよい。
【0021】
また、本実施の形態でサーバ1はRNNのアルゴリズムに従って学習を行うが、例えばその他のニューラルネットワーク、N-gramモデル、SVM(Support Vector Machine)、ベイジアンネットワーク、決定木など、他のアルゴリズムに従って学習を行い、形態素モデル141を生成してもよい。
【0022】
サーバ1は、学習用文章の各形態素を、文章内での並び順に従って入力層の各ニューロンに入力し、出力層の各ニューロンから出力値を得る。
図3の例では、サーバ1は学習用文章の各形態素「昨日」、「は」、「電車」、…を、文章内での順序に従い、対応する入力層の各ニューロンに入力する。サーバ1は、中間層を経て出力層の各ニューロンでの演算を行い、文章内の任意の位置に出現する形態素の生起確率を、直前までに出現する形態素に基づいて算出し、次に出現する形態素を推定する。
図3の例では、サーバ1は1番目の形態素「昨日」に基づき、2番目に出現する形態素の生起確率を算出して推定を行う。また、サーバ1は1番目、2番目の形態素「昨日」、「は」に基づき、3番目の形態素の生起確率を算出して推定を行う。以下同様にして、サーバ1は各形態素を推定する。
【0023】
サーバ1は、推定した形態素を実際の形態素(正解値)と比較し、出力層の各ニューロンからの出力値が正解値に近似するよう各ニューロンのパラメータを調整し、RNNを構築する。例えばサーバ1は、「昨日」に続く形態素として推定した形態素が、実際の語句「は」となるように、各ニューロンでの重み等を調整する。これによりサーバ1は、学習用文章内の各形態素の並び順を学習した形態素モデル141を生成する。
【0024】
次にサーバ1は、RNNに入力するパラメータを形態素から品詞(形態素の分類)に変換し、文章内の各形態素に対応する品詞をRNNに入力して、文章内の品詞の並び順を学習した品詞モデル142(分類モデル)を生成する。
図3右上に、品詞モデル142に対応するRNNの構成を概念的に図示する。例えばサーバ1は、形態素モデル141と同じネットワーク構造を有する品詞モデル142を構築する。なお、形態素モデル141及び品詞モデル142はネットワーク構造が異なっていてもよい。
【0025】
サーバ1は形態素モデル141の生成時と同じく、各形態素に対応する品詞を文章内での並び順に従って入力層の各ニューロンに入力する。そしてサーバ1は、文章の先頭から順に出現する一又は複数の形態素それぞれに対応する品詞を入力として、当該一又は複数の形態素に続く形態素の品詞を出力として取得する。
図3の例では、サーバ1は、1番目の形態素「昨日」に対応する品詞「名詞-副詞接続」に基づき、2番目に出現する形態素に対応する品詞を推定する。また、サーバ1は1番目、2番目の形態素「昨日」、「は」に対応する品詞「名詞-副詞接続」、「助詞-係助詞」に基づき、3番目の形態素の品詞を推定する。以下同様にして、サーバ1は各形態素の品詞を推定する。サーバ1は、推定した品詞を実際の品詞(正解値)と比較し、出力層の各ニューロンからの出力値が正解値に近似するよう各ニューロンのパラメータを調整して、RNNを構築する。
【0026】
上述の如く、サーバ1は、形態素(表層形)を入出力パラメータとする形態素モデル141と、品詞を入出力パラメータとする品詞モデル142とを生成する。サーバ1は、形態素モデル141及び品詞モデル142を補助記憶部14に格納する。サーバ1は、文章の誤り検出を行う場合、上記の2つの学習済みモデルを用いて誤り箇所を推定する。
【0027】
図4は、誤り検出処理に関する説明図である。
図4に基づき、誤り検出対象である対象文から誤り箇所を推定する処理について説明する。
【0028】
まずサーバ1は、誤り検出対象である対象文を端末2から取得し、取得した対象文に対する形態素解析を行う。サーバ1は、形態素解析により対象文を形態素(単位文字列)毎に分割すると共に、各形態素の品詞(分類)を特定する。
【0029】
サーバ1は、形態素解析を行った対象文から、誤り箇所を検出(推定)する処理を行う。この場合にサーバ1は、上述の如く形態素モデル141及び品詞モデル142の双方を用いて誤り箇所を検出するが、ここではまず、形態素モデル141のみを用いて誤り箇所を検出する場合について説明する。
【0030】
図4上側では、形態素モデル141のみを用いて誤り箇所を検出する場合を図示している。形態素モデル141を用いる場合、サーバ1は、対象文から分割した各形態素を形態素モデル141に入力し、対象文における各形態素の生起確率を、直前までに出現する形態素から算出する。例えばサーバ1は、3番目の形態素「液状」について生起確率を算出する場合、1番目、2番目の形態素「内部」「の」から生起確率を算出する。例えばサーバ1は、算出した生起確率を所定の閾値と比較し、生起確率が閾値以下の形態素を誤り箇所と推定する。
【0031】
しかしながら、学習用文章においてあまり使われない語句、つまり低頻度の形態素が対象文に含まれる場合、自然言語として正しい文章であっても、誤り箇所として誤検出される虞がある。例えば
図4に示す対象文は日本語として正しい文章であるが、「液状」は使用頻度が低い語句であり、学習用の文章群において出現する頻度が低頻度であったものとする。この場合において、サーバ1が形態素モデル141を用いて各形態素の生起確率を算出した場合、「液状」の生起確率が低く算出される。これにより、サーバ1は、日本語として正しい文章であるにも関わらず、「液状」が誤り箇所であると推定してしまう。
【0032】
そこでサーバ1は、形態素モデル141のほかに品詞モデル142を用いて誤り箇所を検出する。
図4下側では形態素モデル141及び品詞モデル142の双方を用いて誤り箇所を検出する場合を図示している。
【0033】
まずサーバ1は、上記で説明したように形態素モデル141を用いて各形態素の生起確率を算出する。また、サーバ1は形態素モデル141を参照して、対象文から分割した各形態素を学習用文章から学習した学習回数、例えば対象文に含まれる形態素が学習用文章において出現した頻度(出現回数)を判断する。サーバ1は、判断した各形態素の頻度を所定の閾値と比較し、頻度が閾値を超えているか否かを判定する。
【0034】
形態素の頻度が閾値を超えていないと判定した場合、すなわち低頻度である場合、サーバ1は、品詞モデル142を用いて誤り箇所を推定する。具体的には、サーバ1は、形態素モデル141への入力パラメータであった各形態素を、形態素解析により特定した品詞に変換する。サーバ1は、各形態素に対応する品詞を品詞モデル142に入力し、対象文における各形態素の品詞の生起確率を、直前までに出現する一又は複数の形態素それぞれの品詞から算出する。
図4の例では、サーバ1は、1番目、2番目の形態素「内部」、「の」に対応する品詞「名詞-一般」、「助詞-連体化」に基づき、3番目の形態素「液状」に対応する品詞「名詞-一般」の生起確率を算出する。
【0035】
例えばサーバ1は、算出した品詞の生起確率を所定の閾値と比較し、品詞の生起確率が閾値以下である場合に誤り箇所と推定する。一方で、品詞の生起確率が閾値を超える場合、サーバ1は、形態素モデル141から算出した生起確率が閾値以下であっても誤りと判定しない。これにより、形態素(表層形)が低頻度である場合でも、自然言語の文章として正しい場合には誤検出されなくなる。
【0036】
形態素の頻度が閾値を超えている場合、サーバ1は、形態素の生起確率と、品詞の生起確率とを合成した合成生起確率を算出して閾値と比較することにより、誤り箇所を推定する。なお、以下では簡潔のため、合成生起確率を「合成値」と記す。
【0037】
サーバ1は、形態素の頻度が閾値以下の場合と同じく形態素を品詞に変換して品詞モデル142に入力し、各形態素に対応する品詞の生起確率を算出する。そしてサーバ1は、形態素の生起確率と、品詞の生起確率との積(乗算値)を合成値として算出する。なお、合成値は乗算値に限定されず、例えば平均値、合計値等であってもよい。サーバ1は、算出した合成値を所定の閾値と比較し、合成値が閾値以下である場合、対応する形態素が誤り箇所であるものと推定する。
【0038】
形態素の頻度が閾値を超えている場合、すなわち低頻度でない場合、該当する形態素は誤りでないものと自動的に分類してもよい。しかし、上記のように品詞モデル142から算出した生起確率との合成値を算出することで、文章としての確からしさを考慮しながら誤り箇所を検出することができる。
【0039】
なお、上記では合成値の一例として形態素の生起確率と品詞の生起確率との単純な積を用いたが、本実施の形態はこれに限定されるものではない。例えばサーバ1は、形態素の頻度と閾値との比較結果(判定結果)に応じて両者の合成比率を変更してもよい。具体的には、サーバ1は、形態素の頻度が閾値を大きく超えるほど形態素の生起確率を重み付けし、形態素の頻度が閾値を大きく下回るほど品詞の生起確率を重み付けした合成値を算出する。すなわちサーバ1は、閾値を超えるか否かに応じてステップ関数的に処理するのではなく、閾値との近似度合いに応じてシグモイド関数的に確率値を計算する。これにより、サーバ1は、閾値を超えたか否かについて判定を緩やかに行うことができ、誤り箇所をより適切に検出することができる。
【0040】
また、上記では文章の分割単位を形態素として説明したが、本実施の形態はこれに限定されるものではなく、分割単位は句、節などの単位であってもよい。すなわち、サーバ1は対象文を所定の単位文字列に分割し、学習用文章における単位文字列の順序を学習済みの文章モデル(形態素モデル141)を用いて生起確率を算出可能であればよく、その分割単位は形態素に限定されない。
【0041】
また、上記では形態素の品詞を文章の誤り推定に用いたが、本実施の形態はこれに限定されるものではなく、例えば形態素の読み、活用形などを用いてもよい。すなわち、サーバ1は対象文から分割した形態素を、当該形態素の分類を表す情報に変換し、学習用文章における各形態素の分類の順序を学習済みの分類モデル(品詞モデル142)を用いて生起確率を算出可能であればよく、変換後の分類は品詞に限定されない。
【0042】
図5は、文章学習処理の処理手順の一例を示すフローチャートである。
図5に基づき、文書学習処理の処理内容について説明する。
サーバ1の制御部11は、学習用の文章群を取得する(ステップS11)。制御部11は、取得した文章群に対する形態素解析を行い、各文章を形態素(単位文字列)毎に分割すると共に、各形態素の品詞(分類)を特定する(ステップS12)。
【0043】
制御部11は、分割した各形態素を、文章における並び順に従って学習する機械学習処理を行い、形態素モデル141(文章モデル)を生成する(ステップS13)。例えば制御部11は、RNN(LSTM)のアルゴリズムに基づく機械学習を行い、文章の先頭から順に出現する一又は複数の形態素をその並び順に従って入力した場合に、当該一又は複数の形態素に続いて出現する次の形態素を出力する形態素モデル141を生成する。制御部11は、生成した形態素モデル141を補助記憶部14に格納する。
【0044】
また、制御部11は、各形態素を品詞に変換し、文章内に出現する各形態素の品詞を、文章における並び順に従って学習する機械学習処理を行って品詞モデル142(分類モデル)を生成する(ステップS14)。例えば制御部11は、ステップS13と同様のRNNに係る機械学習であって、文章の先頭から順に出現する一又は複数の形態素それぞれに対応する各品詞をその並び順に従って入力した場合に、当該一又は複数の形態素に続いて出現する次の形態素の品詞を出力する品詞モデル142を生成する。制御部11は、生成した品詞モデル142を補助記憶部14に格納する。制御部11は、一連の処理を終了する。
【0045】
図6は、誤り検出処理の処理手順の一例を示すフローチャートである。
図6に基づき、誤り検出処理の処理内容について説明する。
サーバ1の制御部11は、誤り検出対象である対象文を端末2から取得する(ステップS31)。制御部11は、対象文に対する形態素解析を行い、対象文を形態素(単位文字列)毎に分割すると共に、各形態素の品詞(分類)を特定する(ステップS32)。
【0046】
制御部11は形態素モデル141(文章モデル)を用いて、対象文から分割した各形態素の生起確率を算出する(ステップS33)。具体的には、制御部11は、対象文の先頭から順に出現する一又は複数の形態素を形態素モデル141に入力し、当該一又は複数の形態素に続く形態素の生起確率を出力値として取得する。
【0047】
制御部11は、対象文から分割した各形態素の形態素モデル141における学習回数を判断し、判断した形態素の頻度が閾値を超えているか否かを判定する(ステップS34)。閾値を超えていないと判定した場合(S34:NO)、制御部11は、対象文から分割した各形態素を品詞に変換しながら、品詞モデル142を用いて、変換した各品詞の生起確率を算出する(ステップS35)。具体的には、制御部11は、学習済みモデルに入力するパラメータを形態素(表層形)から品詞に変換し、対象文の先頭から順に出現する一又は複数の形態素それぞれに対応する品詞を品詞モデル142に入力して、当該一又は複数の形態素に続く次の形態素に対応する品詞の生起確率を出力値として取得する。
【0048】
頻度が閾値を超えていると判定した場合(S34:YES)、制御部11は、ステップS35と同様にして各形態素に対応する品詞の生起確率を算出し、算出した品詞の生起確率と、ステップS33で算出した形態素の生起確率とを合成した合成値を算出する(ステップS36)。例えば制御部11は、形態素及び品詞それぞれの生起確率の積を合成値として算出する。また、例えば制御部11は、ステップS34における形態素の頻度と閾値との比較結果に応じて合成比率を決定してもよい。制御部11は、ステップS35で算出した品詞の生起確率、あるいはステップS36で算出した合成値に基づき、対象文における誤り箇所を推定する(ステップS37)。例えば制御部11は、ステップS35、S36で算出した値を所定の閾値と比較し、閾値以下の形態素を誤りであるものと判定する。制御部11は、誤り箇所の推定結果を端末2に出力し(ステップS38)、一連の処理を終了する。
【0049】
なお、本実施の形態では形態素モデル141及び品詞モデル142を既存の文章の誤り検出を行う処理に用いたが、例えば自然言語の文章を自動生成する際に、生成した文章の確からしさを判断する処理に用いてもよい。すなわち、サーバ1は形態素モデル141及び品詞モデル142を用いて自然言語の文章を評価することができればよく、その処理内容は文章の誤り検出に限定されない。
【0050】
また、本実施の形態では自然言語の一例として日本語を挙げたが、例えば英語、中国語に応用してもよいことは勿論である。
【0051】
以上より、本実施の形態1によれば、形態素(単位文字列)だけでなく形態素の品詞(分類)も考慮することで、文章内の誤りを適切に検出することができる。
【0052】
また、本実施の形態1によれば、形態素及び品詞の生起確率の合成値に基づき誤り箇所を推定することで、文章内の誤りをより適切に検出することができる。
【0053】
また、本実施の形態1によれば、形態素の生起確率と閾値との比較結果に応じて合成値を算出する際の合成比率を決定することで、文章内の誤りをより適切に検出することができる。
【0054】
(実施の形態2)
本実施の形態では、学習用文章を先頭から末尾に亘って正順序で学習した言語モデルだけでなく、末尾から先頭に亘って逆順序で学習した言語モデルを生成し、両方の言語モデルを組み合わせて対象文の誤り箇所を検出する形態について述べる。なお、実施の形態1と重複する内容については同一の符号を付して説明を省略する。
図7は、実施の形態2に係る文章学習処理に関する説明図である。
図7では、学習用文章に含まれる各形態素の順序を、文章の先頭から末尾に亘る正順序で学習した形態素モデル141(第1文章モデル)と、文章の先頭から末尾までを並び替えた逆順序で学習した形態素モデル141(第2文章モデル)とを生成する様子を図示している。
図7に基づき、本実施の形態の概要について説明する。
【0055】
サーバ1は、実施の形態1と同様に、学習用文章に対する形態素解析を行って形態素毎に分割し、各形態素を先頭から末尾まで順に学習して形態素モデル141を生成する。さらに本実施の形態では、サーバ1は、形態素の並び順を逆順序に並び替え、末尾から先頭まで順に学習して別の形態素モデル141を生成する。
【0056】
誤り箇所を検出する際に、実施の形態1のように先頭から順に各形態素を形態素モデル141に入力して生起確率を算出していく場合、該当する形態素よりも前に出現する形態素の情報のみを使って生起確率を算出する。従って、該当する形態素よりも前に出現する形態素(語句)の並びによっては、正しい語句の生起確率が低く算出される場合や、逆に不適切な語句の生起確率が高く算出される場合も生じ得る。
【0057】
そこで本実施の形態では、学習用文章に出現する各形態素を逆順序で学習した形態素モデル141も用意(生成)しておき、逆順序用の形態素モデル141を用いて、対象文に出現する各形態素の生起確率を、末尾から順に算出する。このように、サーバ1は2つの形態素モデル141を用いて、対象文の各形態素を双方向で検査し、誤り箇所がないかチェックする。
【0058】
逆順序での文章学習処理について説明する。サーバ1は、上記で分割した学習用文章の各形態素の並び順を、文章の先頭から末尾までを並び替えた逆順序に変換する。例えば
図7で示すように、正順序では「昨日」、「は」、「電車」、…、「行っ」、「た」と続く学習用文章の並び順を、「た」、「行っ」、…、「電車」、「は」、「昨日」という逆順序に変換する。
【0059】
サーバ1は、逆順序に変換した各形態素を、変換後の並び順に従ってRNNに入力し、機械学習を行う。これにより、サーバ1は、学習用文章の各形態素を末尾から先頭に亘る逆順序で学習した形態素モデル141を生成する。
【0060】
サーバ1は形態素モデル141と同様に、品詞モデル142についても正順序及び逆順序の2通りの学習済みモデルを構築する。すなわち、サーバ1は、学習用文章の各形態素を先頭から末尾に亘る正順序で学習した品詞モデル142(第1分類モデル)を生成すると共に、形態素の並び順を逆順序に変換し、各形態素を末尾から先頭に亘る逆順序で学習した品詞モデル142(第2分類モデル)を生成する。
【0061】
図8は、実施の形態2に係る誤り検出処理に関する説明図である。サーバ1は、形態素及び品詞のそれぞれについて、正順序及び逆順序の2通りの学習済みモデルを用いて生起確率を算出する。
図8では図示の簡潔のため、形態素について正順序及び逆順序の生起確率を算出する様子のみ図示している。
【0062】
実施の形態1と同様に、サーバ1はまず、対象文に対する形態素解析を行って形態素毎に分割する。そしてサーバ1は、分割した各形態素を対象文の先頭から順に正順序用の形態素モデル141に入力し、正順序の場合の生起確率を算出する。
【0063】
その後、サーバ1は各形態素の並び順を逆順序に変換する。そしてサーバ1は、変換後の並び順に従って各形態素を対象文の末尾から順に逆順序用の形態素モデル141に入力し、逆順序の場合の生起確率を算出する。
【0064】
サーバ1は形態素モデル141を参照して、学習用文章における各形態素の頻度が閾値以下であるか否かを判定する。形態素の頻度が閾値以下であると判定した場合、実施の形態1と同様に、サーバ1は品詞モデル142を用いて各形態素に対応する品詞の生起確率を算出する。図示は省略するが、サーバ1は形態素モデル141と同様に、対象文の先頭から順に各形態素に対応する品詞を正順序用の品詞モデル142に入力して生起確率を算出すると共に、品詞の並び順を逆順序に変換し、対象文の末尾から順に各形態素に対応する品詞を逆順序用の品詞モデル142に入力して生起確率を算出する。
【0065】
サーバ1は、正順序の品詞モデル142から算出した生起確率と、逆順序の品詞モデル142から算出した生起確率とを閾値と比較し、対象文の誤り箇所を推定する。例えばサーバ1は、正順序及び逆順序の双方又は一方の生起確率が閾値以下であるか否かに応じて誤り箇所を推定してもよく、正順序及び逆順序の生起確率を合成した値が閾値以下であるか否かに応じて誤り箇所を推定してもよい。
【0066】
形態素の頻度が閾値を超えていると判定した場合、実施の形態1と同様に、サーバ1は形態素の生起確率と品詞の生起確率との合成値を算出して誤り箇所を推定する。この場合、例えばサーバ1は、品詞について正順序及び逆順序それぞれの生起確率を算出し、形態素、品詞についてそれぞれ算出した正順序及び逆順序の生起確率を全て乗算するなどして合成値を算出する。また、例えばサーバ1は、正順序の場合の形態素及び品詞の生起確率の合成値と、逆順序の場合の形態素及び品詞の生起確率の合成値とを別々に算出して閾値と比較し、誤り箇所を推定してもよい。
【0067】
上述の如く、サーバ1は、正順序用の学習済みモデル(形態素モデル141、品詞モデル142)と、逆順序用の学習済みモデルとを用いて誤り箇所の検出を行う。これにより、誤り箇所の検出精度をさらに向上させることができる。
【0068】
図9は、実施の形態2に係る文章学習処理の処理手順の一例を示すフローチャートである。
学習用文章から分割した各形態素の順序を正順序で学習した形態素モデル141(第1文章モデル)を生成し(ステップS13)、各形態素に対応する各品詞の順序を正順序で学習した品詞モデル142(第1分類モデル)を生成した後(ステップS14)、サーバ1の制御部11は、以下の処理を実行する。制御部11は、学習用文章の先頭から末尾までを並び替え、各形態素の並び順を逆順序に変換する(ステップS201)。
【0069】
制御部11は、学習用文章から分割した各形態素の順序を逆順序で学習した形態素モデル141(第2文章モデル)を生成する(ステップS202)。すなわち、制御部11は、元の文章において末尾から先頭に向かって順に出現する一又は複数の形態素を入力した場合に、当該一又は複数の形態素の直前に出現する形態素を出力する形態素モデル141を生成する。
【0070】
制御部11は、各形態素を品詞に変換し、変換した各品詞を逆順序で学習した品詞モデル142(第2分類モデル)を生成する(ステップS203)。すなわち、制御部11は、元の文章において末尾から先頭に向かって順に出現する一又は複数の形態素それぞれに対応する品詞を入力した場合に、当該一又は複数の形態素の直前に出現する形態素に対応する品詞を出力する品詞モデル142を生成する。制御部11は、一連の処理を終了する。
【0071】
図10は、実施の形態2に係る誤り検出処理の処理手順の一例を示すフローチャートである。
対象文に対する形態素解析を行い、対象文を形態素毎に分割すると共に各形態素の品詞を特定した後(ステップS32)、サーバ1の制御部11は、以下の処理を実行する。制御部11は、学習用文章における各形態素の順序を正順序で学習済みの形態素モデル141(第1文章モデル)を用いて、対象文から分割した各形態素の生起確率を算出する(ステップS221)。制御部11は、対象文の先頭から末尾までを並び替え、各形態素の並び順を逆順序に変換する(ステップS222)。
【0072】
制御部11は、学習用文章における各形態素を逆順序で学習済みの形態素モデル141(第2文章モデル)を用いて、逆順序に変換した対象文の各形態素の生起確率を算出する(ステップS223)。すなわち、制御部11は、元の学習用文章において末尾から先頭に向かって順に出現する一又は複数の形態素を形態素モデル141に入力し、当該一又は複数の形態素の直前に出現する形態素の生起確率を出力値として取得する。
【0073】
制御部11は、形態素の頻度が閾値を超えているか否かを判定する(ステップS224)。閾値を超えていないと判定した場合(S224:NO)、制御部11は、対象文から分割した形態素を品詞に変換しながら、学習用文章における各形態素の品詞の順序を正順序で学習済みの品詞モデル142(第1分類モデル)と、逆順序で学習済みの品詞モデル142(第2分類モデル)とを用いて、正順序及び逆順序それぞれの場合の品詞の生起確率を算出する(ステップS225)。すなわち、制御部11は、対象文の各形態素に対応する各品詞を正順序で品詞モデル142に入力して生起確率を算出すると共に、各品詞を逆順序で品詞モデル142に入力して生起確率を算出する。制御部11は、処理をステップS37に移行する。
【0074】
閾値を超えていると判定した場合(S224:YES)、制御部11は、ステップS225と同様に正順序及び逆順序それぞれの場合の品詞の生起確率を算出し、算出した品詞の生起確率と、ステップS223で算出した形態素の生起確率とを合成した合成値を算出する(ステップS226)。例えば制御部11は、正順序及び逆順序それぞれの場合に分けて形態素及び品詞の生起確率を合成してもよく、正順序及び逆順序の双方の場合の生起確率を全て合成してもよい。制御部11は、処理をステップS37に移行する。
【0075】
以上より、本実施の形態2によれば、形態素の並び順を正順序で学習済みの形態素モデル141(第1文章モデル)と、逆順序で学習済みの形態素モデル141(第2文章モデル)とを用いることで、文章内の誤り箇所をより適切に検出することができる。
【0076】
また、本実施の形態2によれば、品詞の並び順を正順序で学習済みの品詞モデル142(第1分類モデル)と、逆順序で学習済みの品詞モデル142(第2分類モデル)とを用いることで、文章内の誤り箇所をより適切に検出することができる。
【0077】
(実施の形態3)
図11は、上述した形態のサーバ1の動作を示す機能ブロック図である。制御部11がプログラムPを実行することにより、サーバ1は以下のように動作する。
取得部111は、対象文を取得する。分割部112は、前記対象文を単位文字列に分割する。算出部113は、複数の文章における前記単位文字列の順序を学習済みの文章モデルを用いて、前記分割部112により分割した前記対象文の各単位文字列の生起確率を算出する。判定部114は、前記対象文の各単位文字列の前記文章モデルにおける学習回数を判断し、判断した前記単位文字列の学習回数が閾値を超えているか否かを判定する。
【0078】
本実施の形態3は以上の如きであり、その他は実施の形態1及び2と同様であるので、対応する部分には同一の符号を付してその詳細な説明を省略する。
【0079】
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0080】
1 サーバ(情報処理装置)
11 制御部
12 主記憶部
13 通信部
14 補助記憶部
P プログラム
141 形態素モデル(文章モデル)
142 品詞モデル(分類モデル)
2 端末