(57)【要約】【課題】文章を適切に評価することができる情報処理装置等を提供する。【解決手段】情報処理装置１は、対象文を取得する取得部と、前記対象文を単位文字列に分割する分割部と、複数の文章における前記単位文字列の順序を学習済みの文章モデルを用いて、前記分割部により分割した前記対象文の各単位文字列の生起確率を算出する算出部と、前記対象文の各単位文字列の前記文章モデルにおける学習回数を判断し、判断した前記単位文字列の学習回数が閾値を超えているか否かを判定する判定部とを備えることを特徴とする。【選択図】図１
2020052818.tif 000002
【特許請求の範囲】
【請求項１】
対象文を取得する取得部と、
前記対象文を単位文字列に分割する分割部と、
複数の文章における前記単位文字列の順序を学習済みの文章モデルを用いて、前記分割部により分割した前記対象文の各単位文字列の生起確率を算出する算出部と、
前記対象文の各単位文字列の前記文章モデルにおける学習回数を判断し、判断した前記単位文字列の学習回数が閾値を超えているか否かを判定する判定部と
を備えることを特徴とする情報処理装置。
【請求項２】
単位文字列を分類ごとに変換する変換部と、
複数の文章における前記単位文字列を変換した分類の順序を学習済みの分類モデルを用いて、前記変換部で変換した前記対象文の分類の生起確率を算出する第２算出部と
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２算出部は、前記判定部による判定結果に応じて、前記単位文字列の生起確率と、前記分類の生起確率とを合成した合成生起確率を算出する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記第２算出部は、
前記単位文字列の学習回数と前記閾値との比較結果に応じて、前記単位文字列及び分類の生起確率の合成比率を決定し、
決定した合成比率に基づき前記合成生起確率を算出する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第２算出部は、前記複数の文章において先頭から末尾に亘る正順序で前記分類の順序を学習済みの第１分類モデルと、前記複数の文章において先頭から末尾までを逆順序に並び替えて前記分類の順序を学習済みの第２分類モデルとを用いて、前記分類の生起確率を算出する
ことを特徴とする請求項２〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記算出部は、前記複数の文章において先頭から末尾に亘る正順序で前記単位文字列の順序を学習済みの第１文章モデルと、前記複数の文章において先頭から末尾までを逆順序に並び替えて前記単位文字列の順序を学習済みの第２文章モデルとを用いて、前記単位文字列の生起確率を算出する
ことを特徴とする請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
対象文を取得し、
前記対象文を単位文字列に分割し、
複数の文章における前記単位文字列の順序を学習済みの文章モデルを用いて、分割した前記対象文の各単位文字列の生起確率を算出し、
前記対象文の各単位文字列の前記文章モデルにおける学習回数を判断し、判断した前記単位文字列の学習回数が閾値を超えているか否かを判定する
処理をコンピュータに実行させることを特徴とする情報処理方法。
【請求項８】
対象文を取得し、
前記対象文を単位文字列に分割し、
複数の文章における前記単位文字列の順序を学習済みの文章モデルを用いて、分割した前記対象文の各単位文字列の生起確率を算出し、
前記対象文の各単位文字列の前記文章モデルにおける学習回数を判断し、判断した前記単位文字列の学習回数が閾値を超えているか否かを判定する
処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
誤字、脱字、助詞の誤用のような、文章内の誤りを指摘する種々の方法がある。例えば特許文献１では、誤り検出対象文書に対する形態素解析を行って単語単位に分割し、所定の正誤対照表を参照して単語の表記の正誤を判定する装置であって、単語の表記にゆらぎがあるため正誤を判定することができない場合に、Ｔｒｉｇｒａｍに基づく言語モデルを参照して正誤を判定する誤り表記検出装置等が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−６６９５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に係る発明は単語の表記、すなわち表層形に基づいて正誤を判定しているため、言語としては正しい文章であっても、使用頻度が低い単語は誤りであるものとして誤検出される虞がある。
【０００５】
一つの側面では、文章を適切に評価することができる情報処理装置等を提供することを目的とする。
【課題を解決するための手段】
【０００６】
一つの側面では、情報処理装置は、対象文を取得する取得部と、前記対象文を単位文字列に分割する分割部と、複数の文章における前記単位文字列の順序を学習済みの文章モデルを用いて、前記分割部により分割した前記対象文の各単位文字列の生起確率を算出する算出部と、前記対象文の各単位文字列の前記文章モデルにおける学習回数を判断し、判断した前記単位文字列の学習回数が閾値を超えているか否かを判定する判定部とを備えることを特徴とする。
【発明の効果】
【０００７】
一つの側面では、文章を適切に評価することができる。
【図面の簡単な説明】
【０００８】
【図１】文書検査システムの構成例を示す模式図である。
【図２】サーバの構成例を示すブロック図である。
【図３】文章学習処理に関する説明図である。
【図４】誤り検出処理に関する説明図である。
【図５】文章学習処理の処理手順の一例を示すフローチャートである。
【図６】誤り検出処理の処理手順の一例を示すフローチャートである。
【図７】実施の形態２に係る文章学習処理に関する説明図である。
【図８】実施の形態２に係る誤り検出処理に関する説明図である。
【図９】実施の形態２に係る文章学習処理の処理手順の一例を示すフローチャートである。
【図１０】実施の形態２に係る誤り検出処理の処理手順の一例を示すフローチャートである。
【図１１】上述した形態のサーバの動作を示す機能ブロック図である。
【発明を実施するための形態】
【０００９】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
（実施の形態１）
図１は、文書検査システムの構成例を示す模式図である。本実施の形態では、文章（文書）内の誤り箇所を検出する文書検査システムについて説明する。文書検査システムは、情報処理装置１、端末２等を含む。各装置は、インターネット等のネットワークＮを介して通信接続されている。
【００１０】
情報処理装置１は、種々の情報処理、情報の送受信が可能な情報処理装置であり、例えばサーバ装置、パーソナルコンピュータ等である。本実施の形態では情報処理装置１がサーバ装置であるものとし、以下の説明では簡潔のためサーバ１と読み替える。サーバ１は、学習用の文章群を用いて、文章内に出現する単位文字列（例えば形態素）を学習する機械学習を行い、文章内の任意の箇所に出現する単位文字列を、直前までに出現する単位文字列から推定可能な言語モデルを生成する。言語モデルは、自然言語の文章が生成される確率をモデル化したものであり、例えばＮ−ｇｒａｍモデル、隠れマルコフモデルなどがある。本実施の形態においてサーバ１は、学習用に与えられる文章群からＲＮＮ（Recurrent Neural Network；再帰型ニューラルネットワーク）を言語モデルとして構築する。
【００１１】
後述するように、サーバ１は、学習用の文章に対する形態素解析を行って形態素（表層形）毎に分割し、形態素の出現順序を学習した言語モデル（以下、「形態素モデル」と呼ぶ）を構築する。さらにサーバ１は、形態素解析によって形態素の品詞を特定し、文章内に出現する形態素の品詞（分類）を学習する機械学習を行うことで、文章内の任意の箇所に出現する形態素の品詞を、直前までに出現する形態素の品詞から推定可能な言語モデル（以下、「品詞モデル」と呼ぶ）を構築する。サーバ１は、形態素モデル及び品詞モデルの双方を用いて検査対象の文章を検査し、文章内の誤り箇所を検出する。後述するように、サーバ１は形態素モデルだけでなく品詞モデルも用いて検査を行うことで、正しい文章であるにも関わらず誤り箇所を誤検出してしまうような事態を防止する。
【００１２】
端末２は、本システムを利用する各ユーザが使用する端末装置であり、例えばパーソナルコンピュータ、多機能端末等である。サーバ１は端末２から検査対象の文章を取得し、上記の形態素モデル及び品詞モデルを用いて文章内から誤り箇所を検出する処理を行って、検出結果を端末２に出力する。
【００１３】
図２は、サーバ１の構成例を示すブロック図である。サーバ１は、制御部１１、主記憶部１２、通信部１３、補助記憶部１４を備える。
制御部１１は、一又は複数のＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro-Processing Unit）、ＧＰＵ（Graphics Processing Unit）等の演算処理装置を有し、補助記憶部１４に記憶されたプログラムＰを読み出して実行することにより、サーバ１に係る種々の情報処理、制御処理等を行う。主記憶部１２は、ＳＲＡＭ（Static Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）、フラッシュメモリ等の一時記憶領域であり、制御部１１が演算処理を実行するために必要なデータを一時的に記憶する。通信部１３は、通信に関する処理を行うための処理回路等を含み、外部と情報の送受信を行う。
【００１４】
補助記憶部１４は大容量メモリ、ハードディスク等であり、制御部１１が処理を実行するために必要なプログラムＰ、その他のデータを記憶している。また、補助記憶部１４は、形態素モデル１４１及び品詞モデル１４２を記憶している。上述の如く、形態素モデル１４１は、学習用の文章群から生成される言語モデルであり、文章内に出現する形態素の出現順序を学習した学習済みモデル（文章モデル）である。品詞モデル１４２は、形態素モデル１４１と同じく学習用の文章群から生成される言語モデルであり、文書内に出現する品詞の順序を学習した学習済みモデル（分類モデル）である。
【００１５】
なお、補助記憶部１４はサーバ１に接続された外部記憶装置であってもよい。また、サーバ１は複数のコンピュータからなるマルチコンピュータであってもよく、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。
【００１６】
また、本実施の形態においてサーバ１は上記の構成に限られず、例えば可搬型記憶媒体に記憶された情報を読み取る読取部、操作入力を受け付ける入力部、画像を表示する表示部等を含んでもよい。
【００１７】
図３は、文章学習処理に関する説明図である。図３では、学習用の文章から形態素モデル１４１及び品詞モデル１４２を生成する処理を概念的に図示している。以下では本実施の形態の概要を説明する。
まずサーバ１は、学習用の文章群を外部から取得し、各文章に対する形態素解析を行う。なお、本明細書で「文章」と言う場合、文章は一文（センテンス）に限定されず、複数の文から成る文章、又は一文よりも短い文章も含まれ得る。図３の下側に示すように、サーバ１は、形態素解析により文章を形態素（単位文字列）に分割すると共に、各形態素の品詞（分類）を特定する。
【００１８】
サーバ１は、形態素単位で分割した各文章を学習する機械学習を行い、形態素モデル１４１（文章モデル）としてＲＮＮを構築する。例えばサーバ１は、ＲＮＮの一種であるＬＳＴＭ（Long Short-Term Memory）を構築する。
【００１９】
具体的には、サーバ１は、学習用文章から分割した各形態素をＲＮＮに係る入力層に入力し、機械学習を行う。図３左上に、形態素モデル１４１に対応するＲＮＮの構成を概念的に図示する。図３に示すように、ＲＮＮは、入力層、中間層（隠れ層）、及び出力層を有する。入力層は、文章の先頭から末尾に亘って順に出現する各形態素の入力をそれぞれ受け付ける複数のニューロンを有する。出力層は、入力層の各ニューロンに対応して、各ニューロンに入力される形態素の次に出現する形態素をそれぞれ推定して出力する複数のニューロンを有する。そして中間層は、入力層の各ニューロンへの入力値に対して出力層の各ニューロンにおける出力値を演算するための複数のニューロンを有する。中間層の各ニューロンは、過去の入力値に関する中間層での演算結果を用いて次の入力値に関する演算を行うことで、直前までに出現する一又は複数の形態素から次の形態素を推定する。
【００２０】
なお、図３に示すＲＮＮの構成は一例であって、本実施の形態はこれに限定されるものではない。例えば中間層は一層に限定されず、二層以上であってもよい。また、入力層及び出力層のニューロンの数は同数に限定されず、例えば入力に対して出力の数は少なくともよい。
【００２１】
また、本実施の形態でサーバ１はＲＮＮのアルゴリズムに従って学習を行うが、例えばその他のニューラルネットワーク、Ｎ−ｇｒａｍモデル、ＳＶＭ（Support Vector Machine）、ベイジアンネットワーク、決定木など、他のアルゴリズムに従って学習を行い、形態素モデル１４１を生成してもよい。
【００２２】
サーバ１は、学習用文章の各形態素を、文章内での並び順に従って入力層の各ニューロンに入力し、出力層の各ニューロンから出力値を得る。図３の例では、サーバ１は学習用文章の各形態素「昨日」、「は」、「電車」、…を、文章内での順序に従い、対応する入力層の各ニューロンに入力する。サーバ１は、中間層を経て出力層の各ニューロンでの演算を行い、文章内の任意の位置に出現する形態素の生起確率を、直前までに出現する形態素に基づいて算出し、次に出現する形態素を推定する。図３の例では、サーバ１は１番目の形態素「昨日」に基づき、２番目に出現する形態素の生起確率を算出して推定を行う。また、サーバ１は１番目、２番目の形態素「昨日」、「は」に基づき、３番目の形態素の生起確率を算出して推定を行う。以下同様にして、サーバ１は各形態素を推定する。
【００２３】
サーバ１は、推定した形態素を実際の形態素（正解値）と比較し、出力層の各ニューロンからの出力値が正解値に近似するよう各ニューロンのパラメータを調整し、ＲＮＮを構築する。例えばサーバ１は、「昨日」に続く形態素として推定した形態素が、実際の語句「は」となるように、各ニューロンでの重み等を調整する。これによりサーバ１は、学習用文章内の各形態素の並び順を学習した形態素モデル１４１を生成する。
【００２４】
次にサーバ１は、ＲＮＮに入力するパラメータを形態素から品詞（形態素の分類）に変換し、文章内の各形態素に対応する品詞をＲＮＮに入力して、文章内の品詞の並び順を学習した品詞モデル１４２（分類モデル）を生成する。図３右上に、品詞モデル１４２に対応するＲＮＮの構成を概念的に図示する。例えばサーバ１は、形態素モデル１４１と同じネットワーク構造を有する品詞モデル１４２を構築する。なお、形態素モデル１４１及び品詞モデル１４２はネットワーク構造が異なっていてもよい。
【００２５】
サーバ１は形態素モデル１４１の生成時と同じく、各形態素に対応する品詞を文章内での並び順に従って入力層の各ニューロンに入力する。そしてサーバ１は、文章の先頭から順に出現する一又は複数の形態素それぞれに対応する品詞を入力として、当該一又は複数の形態素に続く形態素の品詞を出力として取得する。図３の例では、サーバ１は、１番目の形態素「昨日」に対応する品詞「名詞−副詞接続」に基づき、２番目に出現する形態素に対応する品詞を推定する。また、サーバ１は１番目、２番目の形態素「昨日」、「は」に対応する品詞「名詞−副詞接続」、「助詞−係助詞」に基づき、３番目の形態素の品詞を推定する。以下同様にして、サーバ１は各形態素の品詞を推定する。サーバ１は、推定した品詞を実際の品詞（正解値）と比較し、出力層の各ニューロンからの出力値が正解値に近似するよう各ニューロンのパラメータを調整して、ＲＮＮを構築する。
【００２６】
上述の如く、サーバ１は、形態素（表層形）を入出力パラメータとする形態素モデル１４１と、品詞を入出力パラメータとする品詞モデル１４２とを生成する。サーバ１は、形態素モデル１４１及び品詞モデル１４２を補助記憶部１４に格納する。サーバ１は、文章の誤り検出を行う場合、上記の２つの学習済みモデルを用いて誤り箇所を推定する。
【００２７】
図４は、誤り検出処理に関する説明図である。図４に基づき、誤り検出対象である対象文から誤り箇所を推定する処理について説明する。
【００２８】
まずサーバ１は、誤り検出対象である対象文を端末２から取得し、取得した対象文に対する形態素解析を行う。サーバ１は、形態素解析により対象文を形態素（単位文字列）毎に分割すると共に、各形態素の品詞（分類）を特定する。
【００２９】
サーバ１は、形態素解析を行った対象文から、誤り箇所を検出（推定）する処理を行う。この場合にサーバ１は、上述の如く形態素モデル１４１及び品詞モデル１４２の双方を用いて誤り箇所を検出するが、ここではまず、形態素モデル１４１のみを用いて誤り箇所を検出する場合について説明する。
【００３０】
図４上側では、形態素モデル１４１のみを用いて誤り箇所を検出する場合を図示している。形態素モデル１４１を用いる場合、サーバ１は、対象文から分割した各形態素を形態素モデル１４１に入力し、対象文における各形態素の生起確率を、直前までに出現する形態素から算出する。例えばサーバ１は、３番目の形態素「液状」について生起確率を算出する場合、１番目、２番目の形態素「内部」「の」から生起確率を算出する。例えばサーバ１は、算出した生起確率を所定の閾値と比較し、生起確率が閾値以下の形態素を誤り箇所と推定する。
【００３１】
しかしながら、学習用文章においてあまり使われない語句、つまり低頻度の形態素が対象文に含まれる場合、自然言語として正しい文章であっても、誤り箇所として誤検出される虞がある。例えば図４に示す対象文は日本語として正しい文章であるが、「液状」は使用頻度が低い語句であり、学習用の文章群において出現する頻度が低頻度であったものとする。この場合において、サーバ１が形態素モデル１４１を用いて各形態素の生起確率を算出した場合、「液状」の生起確率が低く算出される。これにより、サーバ１は、日本語として正しい文章であるにも関わらず、「液状」が誤り箇所であると推定してしまう。
【００３２】
そこでサーバ１は、形態素モデル１４１のほかに品詞モデル１４２を用いて誤り箇所を検出する。図４下側では形態素モデル１４１及び品詞モデル１４２の双方を用いて誤り箇所を検出する場合を図示している。
【００３３】
まずサーバ１は、上記で説明したように形態素モデル１４１を用いて各形態素の生起確率を算出する。また、サーバ１は形態素モデル１４１を参照して、対象文から分割した各形態素を学習用文章から学習した学習回数、例えば対象文に含まれる形態素が学習用文章において出現した頻度（出現回数）を判断する。サーバ１は、判断した各形態素の頻度を所定の閾値と比較し、頻度が閾値を超えているか否かを判定する。
【００３４】
形態素の頻度が閾値を超えていないと判定した場合、すなわち低頻度である場合、サーバ１は、品詞モデル１４２を用いて誤り箇所を推定する。具体的には、サーバ１は、形態素モデル１４１への入力パラメータであった各形態素を、形態素解析により特定した品詞に変換する。サーバ１は、各形態素に対応する品詞を品詞モデル１４２に入力し、対象文における各形態素の品詞の生起確率を、直前までに出現する一又は複数の形態素それぞれの品詞から算出する。図４の例では、サーバ１は、１番目、２番目の形態素「内部」、「の」に対応する品詞「名詞−一般」、「助詞−連体化」に基づき、３番目の形態素「液状」に対応する品詞「名詞−一般」の生起確率を算出する。
【００３５】
例えばサーバ１は、算出した品詞の生起確率を所定の閾値と比較し、品詞の生起確率が閾値以下である場合に誤り箇所と推定する。一方で、品詞の生起確率が閾値を超える場合、サーバ１は、形態素モデル１４１から算出した生起確率が閾値以下であっても誤りと判定しない。これにより、形態素（表層形）が低頻度である場合でも、自然言語の文章として正しい場合には誤検出されなくなる。
【００３６】
形態素の頻度が閾値を超えている場合、サーバ１は、形態素の生起確率と、品詞の生起確率とを合成した合成生起確率を算出して閾値と比較することにより、誤り箇所を推定する。なお、以下では簡潔のため、合成生起確率を「合成値」と記す。
【００３７】
サーバ１は、形態素の頻度が閾値以下の場合と同じく形態素を品詞に変換して品詞モデル１４２に入力し、各形態素に対応する品詞の生起確率を算出する。そしてサーバ１は、形態素の生起確率と、品詞の生起確率との積（乗算値）を合成値として算出する。なお、合成値は乗算値に限定されず、例えば平均値、合計値等であってもよい。サーバ１は、算出した合成値を所定の閾値と比較し、合成値が閾値以下である場合、対応する形態素が誤り箇所であるものと推定する。
【００３８】
形態素の頻度が閾値を超えている場合、すなわち低頻度でない場合、該当する形態素は誤りでないものと自動的に分類してもよい。しかし、上記のように品詞モデル１４２から算出した生起確率との合成値を算出することで、文章としての確からしさを考慮しながら誤り箇所を検出することができる。
【００３９】
なお、上記では合成値の一例として形態素の生起確率と品詞の生起確率との単純な積を用いたが、本実施の形態はこれに限定されるものではない。例えばサーバ１は、形態素の頻度と閾値との比較結果（判定結果）に応じて両者の合成比率を変更してもよい。具体的には、サーバ１は、形態素の頻度が閾値を大きく超えるほど形態素の生起確率を重み付けし、形態素の頻度が閾値を大きく下回るほど品詞の生起確率を重み付けした合成値を算出する。すなわちサーバ１は、閾値を超えるか否かに応じてステップ関数的に処理するのではなく、閾値との近似度合いに応じてシグモイド関数的に確率値を計算する。これにより、サーバ１は、閾値を超えたか否かについて判定を緩やかに行うことができ、誤り箇所をより適切に検出することができる。
【００４０】
また、上記では文章の分割単位を形態素として説明したが、本実施の形態はこれに限定されるものではなく、分割単位は句、節などの単位であってもよい。すなわち、サーバ１は対象文を所定の単位文字列に分割し、学習用文章における単位文字列の順序を学習済みの文章モデル（形態素モデル１４１）を用いて生起確率を算出可能であればよく、その分割単位は形態素に限定されない。
【００４１】
また、上記では形態素の品詞を文章の誤り推定に用いたが、本実施の形態はこれに限定されるものではなく、例えば形態素の読み、活用形などを用いてもよい。すなわち、サーバ１は対象文から分割した形態素を、当該形態素の分類を表す情報に変換し、学習用文章における各形態素の分類の順序を学習済みの分類モデル（品詞モデル１４２）を用いて生起確率を算出可能であればよく、変換後の分類は品詞に限定されない。
【００４２】
図５は、文章学習処理の処理手順の一例を示すフローチャートである。図５に基づき、文書学習処理の処理内容について説明する。
サーバ１の制御部１１は、学習用の文章群を取得する（ステップＳ１１）。制御部１１は、取得した文章群に対する形態素解析を行い、各文章を形態素（単位文字列）毎に分割すると共に、各形態素の品詞（分類）を特定する（ステップＳ１２）。
【００４３】
制御部１１は、分割した各形態素を、文章における並び順に従って学習する機械学習処理を行い、形態素モデル１４１（文章モデル）を生成する（ステップＳ１３）。例えば制御部１１は、ＲＮＮ（ＬＳＴＭ）のアルゴリズムに基づく機械学習を行い、文章の先頭から順に出現する一又は複数の形態素をその並び順に従って入力した場合に、当該一又は複数の形態素に続いて出現する次の形態素を出力する形態素モデル１４１を生成する。制御部１１は、生成した形態素モデル１４１を補助記憶部１４に格納する。
【００４４】
また、制御部１１は、各形態素を品詞に変換し、文章内に出現する各形態素の品詞を、文章における並び順に従って学習する機械学習処理を行って品詞モデル１４２（分類モデル）を生成する（ステップＳ１４）。例えば制御部１１は、ステップＳ１３と同様のＲＮＮに係る機械学習であって、文章の先頭から順に出現する一又は複数の形態素それぞれに対応する各品詞をその並び順に従って入力した場合に、当該一又は複数の形態素に続いて出現する次の形態素の品詞を出力する品詞モデル１４２を生成する。制御部１１は、生成した品詞モデル１４２を補助記憶部１４に格納する。制御部１１は、一連の処理を終了する。
【００４５】
図６は、誤り検出処理の処理手順の一例を示すフローチャートである。図６に基づき、誤り検出処理の処理内容について説明する。
サーバ１の制御部１１は、誤り検出対象である対象文を端末２から取得する（ステップＳ３１）。制御部１１は、対象文に対する形態素解析を行い、対象文を形態素（単位文字列）毎に分割すると共に、各形態素の品詞（分類）を特定する（ステップＳ３２）。
【００４６】
制御部１１は形態素モデル１４１（文章モデル）を用いて、対象文から分割した各形態素の生起確率を算出する（ステップＳ３３）。具体的には、制御部１１は、対象文の先頭から順に出現する一又は複数の形態素を形態素モデル１４１に入力し、当該一又は複数の形態素に続く形態素の生起確率を出力値として取得する。
【００４７】
制御部１１は、対象文から分割した各形態素の形態素モデル１４１における学習回数を判断し、判断した形態素の頻度が閾値を超えているか否かを判定する（ステップＳ３４）。閾値を超えていないと判定した場合（Ｓ３４：ＮＯ）、制御部１１は、対象文から分割した各形態素を品詞に変換しながら、品詞モデル１４２を用いて、変換した各品詞の生起確率を算出する（ステップＳ３５）。具体的には、制御部１１は、学習済みモデルに入力するパラメータを形態素（表層形）から品詞に変換し、対象文の先頭から順に出現する一又は複数の形態素それぞれに対応する品詞を品詞モデル１４２に入力して、当該一又は複数の形態素に続く次の形態素に対応する品詞の生起確率を出力値として取得する。
【００４８】
頻度が閾値を超えていると判定した場合（Ｓ３４：ＹＥＳ）、制御部１１は、ステップＳ３５と同様にして各形態素に対応する品詞の生起確率を算出し、算出した品詞の生起確率と、ステップＳ３３で算出した形態素の生起確率とを合成した合成値を算出する（ステップＳ３６）。例えば制御部１１は、形態素及び品詞それぞれの生起確率の積を合成値として算出する。また、例えば制御部１１は、ステップＳ３４における形態素の頻度と閾値との比較結果に応じて合成比率を決定してもよい。制御部１１は、ステップＳ３５で算出した品詞の生起確率、あるいはステップＳ３６で算出した合成値に基づき、対象文における誤り箇所を推定する（ステップＳ３７）。例えば制御部１１は、ステップＳ３５、Ｓ３６で算出した値を所定の閾値と比較し、閾値以下の形態素を誤りであるものと判定する。制御部１１は、誤り箇所の推定結果を端末２に出力し（ステップＳ３８）、一連の処理を終了する。
【００４９】
なお、本実施の形態では形態素モデル１４１及び品詞モデル１４２を既存の文章の誤り検出を行う処理に用いたが、例えば自然言語の文章を自動生成する際に、生成した文章の確からしさを判断する処理に用いてもよい。すなわち、サーバ１は形態素モデル１４１及び品詞モデル１４２を用いて自然言語の文章を評価することができればよく、その処理内容は文章の誤り検出に限定されない。
【００５０】
また、本実施の形態では自然言語の一例として日本語を挙げたが、例えば英語、中国語に応用してもよいことは勿論である。
【００５１】
以上より、本実施の形態１によれば、形態素（単位文字列）だけでなく形態素の品詞（分類）も考慮することで、文章内の誤りを適切に検出することができる。
【００５２】
また、本実施の形態１によれば、形態素及び品詞の生起確率の合成値に基づき誤り箇所を推定することで、文章内の誤りをより適切に検出することができる。
【００５３】
また、本実施の形態１によれば、形態素の生起確率と閾値との比較結果に応じて合成値を算出する際の合成比率を決定することで、文章内の誤りをより適切に検出することができる。
【００５４】
（実施の形態２）
本実施の形態では、学習用文章を先頭から末尾に亘って正順序で学習した言語モデルだけでなく、末尾から先頭に亘って逆順序で学習した言語モデルを生成し、両方の言語モデルを組み合わせて対象文の誤り箇所を検出する形態について述べる。なお、実施の形態１と重複する内容については同一の符号を付して説明を省略する。
図７は、実施の形態２に係る文章学習処理に関する説明図である。図７では、学習用文章に含まれる各形態素の順序を、文章の先頭から末尾に亘る正順序で学習した形態素モデル１４１（第１文章モデル）と、文章の先頭から末尾までを並び替えた逆順序で学習した形態素モデル１４１（第２文章モデル）とを生成する様子を図示している。図７に基づき、本実施の形態の概要について説明する。
【００５５】
サーバ１は、実施の形態１と同様に、学習用文章に対する形態素解析を行って形態素毎に分割し、各形態素を先頭から末尾まで順に学習して形態素モデル１４１を生成する。さらに本実施の形態では、サーバ１は、形態素の並び順を逆順序に並び替え、末尾から先頭まで順に学習して別の形態素モデル１４１を生成する。
【００５６】
誤り箇所を検出する際に、実施の形態１のように先頭から順に各形態素を形態素モデル１４１に入力して生起確率を算出していく場合、該当する形態素よりも前に出現する形態素の情報のみを使って生起確率を算出する。従って、該当する形態素よりも前に出現する形態素（語句）の並びによっては、正しい語句の生起確率が低く算出される場合や、逆に不適切な語句の生起確率が高く算出される場合も生じ得る。
【００５７】
そこで本実施の形態では、学習用文章に出現する各形態素を逆順序で学習した形態素モデル１４１も用意（生成）しておき、逆順序用の形態素モデル１４１を用いて、対象文に出現する各形態素の生起確率を、末尾から順に算出する。このように、サーバ１は２つの形態素モデル１４１を用いて、対象文の各形態素を双方向で検査し、誤り箇所がないかチェックする。
【００５８】
逆順序での文章学習処理について説明する。サーバ１は、上記で分割した学習用文章の各形態素の並び順を、文章の先頭から末尾までを並び替えた逆順序に変換する。例えば図７で示すように、正順序では「昨日」、「は」、「電車」、…、「行っ」、「た」と続く学習用文章の並び順を、「た」、「行っ」、…、「電車」、「は」、「昨日」という逆順序に変換する。
【００５９】
サーバ１は、逆順序に変換した各形態素を、変換後の並び順に従ってＲＮＮに入力し、機械学習を行う。これにより、サーバ１は、学習用文章の各形態素を末尾から先頭に亘る逆順序で学習した形態素モデル１４１を生成する。
【００６０】
サーバ１は形態素モデル１４１と同様に、品詞モデル１４２についても正順序及び逆順序の２通りの学習済みモデルを構築する。すなわち、サーバ１は、学習用文章の各形態素を先頭から末尾に亘る正順序で学習した品詞モデル１４２（第１分類モデル）を生成すると共に、形態素の並び順を逆順序に変換し、各形態素を末尾から先頭に亘る逆順序で学習した品詞モデル１４２（第２分類モデル）を生成する。
【００６１】
図８は、実施の形態２に係る誤り検出処理に関する説明図である。サーバ１は、形態素及び品詞のそれぞれについて、正順序及び逆順序の２通りの学習済みモデルを用いて生起確率を算出する。図８では図示の簡潔のため、形態素について正順序及び逆順序の生起確率を算出する様子のみ図示している。
【００６２】
実施の形態１と同様に、サーバ１はまず、対象文に対する形態素解析を行って形態素毎に分割する。そしてサーバ１は、分割した各形態素を対象文の先頭から順に正順序用の形態素モデル１４１に入力し、正順序の場合の生起確率を算出する。
【００６３】
その後、サーバ１は各形態素の並び順を逆順序に変換する。そしてサーバ１は、変換後の並び順に従って各形態素を対象文の末尾から順に逆順序用の形態素モデル１４１に入力し、逆順序の場合の生起確率を算出する。
【００６４】
サーバ１は形態素モデル１４１を参照して、学習用文章における各形態素の頻度が閾値以下であるか否かを判定する。形態素の頻度が閾値以下であると判定した場合、実施の形態１と同様に、サーバ１は品詞モデル１４２を用いて各形態素に対応する品詞の生起確率を算出する。図示は省略するが、サーバ１は形態素モデル１４１と同様に、対象文の先頭から順に各形態素に対応する品詞を正順序用の品詞モデル１４２に入力して生起確率を算出すると共に、品詞の並び順を逆順序に変換し、対象文の末尾から順に各形態素に対応する品詞を逆順序用の品詞モデル１４２に入力して生起確率を算出する。
【００６５】
サーバ１は、正順序の品詞モデル１４２から算出した生起確率と、逆順序の品詞モデル１４２から算出した生起確率とを閾値と比較し、対象文の誤り箇所を推定する。例えばサーバ１は、正順序及び逆順序の双方又は一方の生起確率が閾値以下であるか否かに応じて誤り箇所を推定してもよく、正順序及び逆順序の生起確率を合成した値が閾値以下であるか否かに応じて誤り箇所を推定してもよい。
【００６６】
形態素の頻度が閾値を超えていると判定した場合、実施の形態１と同様に、サーバ１は形態素の生起確率と品詞の生起確率との合成値を算出して誤り箇所を推定する。この場合、例えばサーバ１は、品詞について正順序及び逆順序それぞれの生起確率を算出し、形態素、品詞についてそれぞれ算出した正順序及び逆順序の生起確率を全て乗算するなどして合成値を算出する。また、例えばサーバ１は、正順序の場合の形態素及び品詞の生起確率の合成値と、逆順序の場合の形態素及び品詞の生起確率の合成値とを別々に算出して閾値と比較し、誤り箇所を推定してもよい。
【００６７】
上述の如く、サーバ１は、正順序用の学習済みモデル（形態素モデル１４１、品詞モデル１４２）と、逆順序用の学習済みモデルとを用いて誤り箇所の検出を行う。これにより、誤り箇所の検出精度をさらに向上させることができる。
【００６８】
図９は、実施の形態２に係る文章学習処理の処理手順の一例を示すフローチャートである。
学習用文章から分割した各形態素の順序を正順序で学習した形態素モデル１４１（第１文章モデル）を生成し（ステップＳ１３）、各形態素に対応する各品詞の順序を正順序で学習した品詞モデル１４２（第１分類モデル）を生成した後（ステップＳ１４）、サーバ１の制御部１１は、以下の処理を実行する。制御部１１は、学習用文章の先頭から末尾までを並び替え、各形態素の並び順を逆順序に変換する（ステップＳ２０１）。
【００６９】
制御部１１は、学習用文章から分割した各形態素の順序を逆順序で学習した形態素モデル１４１（第２文章モデル）を生成する（ステップＳ２０２）。すなわち、制御部１１は、元の文章において末尾から先頭に向かって順に出現する一又は複数の形態素を入力した場合に、当該一又は複数の形態素の直前に出現する形態素を出力する形態素モデル１４１を生成する。
【００７０】
制御部１１は、各形態素を品詞に変換し、変換した各品詞を逆順序で学習した品詞モデル１４２（第２分類モデル）を生成する（ステップＳ２０３）。すなわち、制御部１１は、元の文章において末尾から先頭に向かって順に出現する一又は複数の形態素それぞれに対応する品詞を入力した場合に、当該一又は複数の形態素の直前に出現する形態素に対応する品詞を出力する品詞モデル１４２を生成する。制御部１１は、一連の処理を終了する。
【００７１】
図１０は、実施の形態２に係る誤り検出処理の処理手順の一例を示すフローチャートである。
対象文に対する形態素解析を行い、対象文を形態素毎に分割すると共に各形態素の品詞を特定した後（ステップＳ３２）、サーバ１の制御部１１は、以下の処理を実行する。制御部１１は、学習用文章における各形態素の順序を正順序で学習済みの形態素モデル１４１（第１文章モデル）を用いて、対象文から分割した各形態素の生起確率を算出する（ステップＳ２２１）。制御部１１は、対象文の先頭から末尾までを並び替え、各形態素の並び順を逆順序に変換する（ステップＳ２２２）。
【００７２】
制御部１１は、学習用文章における各形態素を逆順序で学習済みの形態素モデル１４１（第２文章モデル）を用いて、逆順序に変換した対象文の各形態素の生起確率を算出する（ステップＳ２２３）。すなわち、制御部１１は、元の学習用文章において末尾から先頭に向かって順に出現する一又は複数の形態素を形態素モデル１４１に入力し、当該一又は複数の形態素の直前に出現する形態素の生起確率を出力値として取得する。
【００７３】
制御部１１は、形態素の頻度が閾値を超えているか否かを判定する（ステップＳ２２４）。閾値を超えていないと判定した場合（Ｓ２２４：ＮＯ）、制御部１１は、対象文から分割した形態素を品詞に変換しながら、学習用文章における各形態素の品詞の順序を正順序で学習済みの品詞モデル１４２（第１分類モデル）と、逆順序で学習済みの品詞モデル１４２（第２分類モデル）とを用いて、正順序及び逆順序それぞれの場合の品詞の生起確率を算出する（ステップＳ２２５）。すなわち、制御部１１は、対象文の各形態素に対応する各品詞を正順序で品詞モデル１４２に入力して生起確率を算出すると共に、各品詞を逆順序で品詞モデル１４２に入力して生起確率を算出する。制御部１１は、処理をステップＳ３７に移行する。
【００７４】
閾値を超えていると判定した場合（Ｓ２２４：ＹＥＳ）、制御部１１は、ステップＳ２２５と同様に正順序及び逆順序それぞれの場合の品詞の生起確率を算出し、算出した品詞の生起確率と、ステップＳ２２３で算出した形態素の生起確率とを合成した合成値を算出する（ステップＳ２２６）。例えば制御部１１は、正順序及び逆順序それぞれの場合に分けて形態素及び品詞の生起確率を合成してもよく、正順序及び逆順序の双方の場合の生起確率を全て合成してもよい。制御部１１は、処理をステップＳ３７に移行する。
【００７５】
以上より、本実施の形態２によれば、形態素の並び順を正順序で学習済みの形態素モデル１４１（第１文章モデル）と、逆順序で学習済みの形態素モデル１４１（第２文章モデル）とを用いることで、文章内の誤り箇所をより適切に検出することができる。
【００７６】
また、本実施の形態２によれば、品詞の並び順を正順序で学習済みの品詞モデル１４２（第１分類モデル）と、逆順序で学習済みの品詞モデル１４２（第２分類モデル）とを用いることで、文章内の誤り箇所をより適切に検出することができる。
【００７７】
（実施の形態３）
図１１は、上述した形態のサーバ１の動作を示す機能ブロック図である。制御部１１がプログラムＰを実行することにより、サーバ１は以下のように動作する。
取得部１１１は、対象文を取得する。分割部１１２は、前記対象文を単位文字列に分割する。算出部１１３は、複数の文章における前記単位文字列の順序を学習済みの文章モデルを用いて、前記分割部１１２により分割した前記対象文の各単位文字列の生起確率を算出する。判定部１１４は、前記対象文の各単位文字列の前記文章モデルにおける学習回数を判断し、判断した前記単位文字列の学習回数が閾値を超えているか否かを判定する。
【００７８】
本実施の形態３は以上の如きであり、その他は実施の形態１及び２と同様であるので、対応する部分には同一の符号を付してその詳細な説明を省略する。
【００７９】
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００８０】
１  サーバ（情報処理装置）
１１  制御部
１２  主記憶部
１３  通信部
１４  補助記憶部
Ｐ  プログラム
１４１  形態素モデル（文章モデル）
１４２  品詞モデル（分類モデル）
２  端末
【図１】
2020052818.tif 000003
【図２】
2020052818.tif 000004
【図３】
2020052818.tif 000005
【図４】
2020052818.tif 000006
【図５】
2020052818.tif 000007
【図６】
2020052818.tif 000008
【図７】
2020052818.tif 000009
【図８】
2020052818.tif 000010
【図９】
2020052818.tif 000011
【図１０】
2020052818.tif 000012
【図１１】
2020052818.tif 000013