(57)【要約】      （修正有）【課題】文章内の誤り部分を適切に指摘することができる情報処理装置等を提供する。【解決手段】情報処理装置１は、複数の文書を学習して生成された語彙リストを記憶する記憶部１１１と、対象文を取得する取得部１１２と、前記対象文を、前記語彙リストに登録されている語彙毎に分割する対象文分割部１１３と、前記対象文において分割された連続する複数の前記語彙の文字数及び／又は文字種のパターンに応じて、前記複数の語彙を誤り部分と推定する推定部１１４と、推定結果を出力する出力部１１５とを備えることを特徴とする。【選択図】図１１
2019159814.tif 000002
【特許請求の範囲】
【請求項１】
複数の文書を学習して生成された語彙リストを記憶する記憶部と、
対象文を取得する取得部と、
前記対象文を、前記語彙リストに登録されている語彙毎に分割する対象文分割部と、
前記対象文において分割された連続する複数の前記語彙の文字数及び／又は文字種のパターンに応じて、前記複数の語彙を誤り部分と推定する推定部と、
推定結果を出力する出力部と
を備えることを特徴とする情報処理装置。
【請求項２】
前記文書を、所定単位の文字又は文字列毎に分割する文書分割部と、
前記文書における前記文字又は文字列の出現頻度に応じて、該文字又は文字列を前記語彙リストに登録する登録部と
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記文書分割部は、前記文書を文字毎に分割し、
前記登録部は、
分割した前記文字を前記語彙リストに登録し、
前記文書において隣り合う二文字の前記文字を連結した文字列を、前記出現頻度に応じて前記語彙リストに登録し、
前記語彙リストに登録済みの前記文字又は文字列のうち、隣り合う二つの前記文字又は文字列を連結した文字列を、前記出現頻度に応じて前記語彙リストに登録する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記登録部は、前記文字又は文字列と対応付けて、前記出現頻度に応じたパラメータを前記語彙リストに登録し、
前記対象文分割部は、前記語彙リストを参照して、前記対象文全体において前記文字又は文字列夫々の前記パラメータの総和が最大化するように前記対象文を分割する
ことを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
前記登録部は、前記文書の属性に応じて複数の前記語彙リストを生成し、
前記対象文分割部は、前記対象文の属性に応じた前記語彙リストを参照して、前記対象文を分割する
ことを特徴とする請求項２〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記推定部は、前記語彙が連続して出現する回数に応じて、前記誤り部分を推定する
ことを特徴とする請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
ユーザから、前記推定結果が適正であったか否かを示す応答を受け付ける受付部と、
前記推定結果が適正でない旨の応答を受け付けた場合、前記誤り部分に相当する文字列を前記語彙リストに登録する第２登録部と
を備えることを特徴とする請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項８】
対象文を取得し、
複数の文書を学習して生成された語彙リストを参照して、前記対象文を、前記語彙リストに登録されている語彙毎に分割し、
前記対象文において分割された連続する複数の前記語彙の文字数及び／又は文字種のパターンに応じて、前記複数の語彙を誤り部分と推定し、
推定結果を出力する
処理をコンピュータに実行させることを特徴とする情報処理方法。
【請求項９】
対象文を取得し、
複数の文書を学習して生成された語彙リストを参照して、前記対象文を、前記語彙リストに登録されている語彙毎に分割し、
前記対象文において分割された連続する複数の前記語彙の文字数及び／又は文字種のパターンに応じて、前記複数の語彙を誤り部分と推定し、
推定結果を出力する
処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
文字の入力ミス、変換ミス、助詞の誤用のような、文章内の誤りを指摘する種々の方法がある。例えば特許文献１では、単語辞書を参照して日本語文書を単語単位で分割し、誤りと推定される部分を種々のルールに従って判定する文書校正装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３３８６８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に係る発明は、単語辞書を用いて文書内の単語の意味、用法等を認識することを前提としている。従って、例えば専門書のように、一般的な辞書に含まれない未知語が多い文章の誤りを指摘することが難しい。
【０００５】
一つの側面では、文章内の誤り部分を適切に指摘することができる情報処理装置等を提供することを目的とする。
【課題を解決するための手段】
【０００６】
一つの側面では、情報処理装置は、複数の文書を学習して生成された語彙リストを記憶する記憶部と、対象文を取得する取得部と、前記対象文を、前記語彙リストに登録されている語彙毎に分割する対象文分割部と、前記対象文において分割された連続する複数の前記語彙の文字数及び／又は文字種のパターンに応じて、前記複数の語彙を誤り部分と推定する推定部と、推定結果を出力する出力部とを備えることを特徴とする。
【発明の効果】
【０００７】
一つの側面では、文章内の誤り部分を適切に指摘することができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理システムの構成例を示す模式図である。
【図２】サーバの構成例を示すブロック図である。
【図３】語彙リストのレコードレイアウトの一例を示す説明図である。
【図４】サブワード学習処理を説明するための説明図である。
【図５】誤り検出処理を説明するための説明図である。
【図６】サブワード学習処理の処理手順の一例を示すフローチャートである。
【図７】誤り検出処理の処理手順の一例を示すフローチャートである。
【図８】実施の形態２に係るサーバの構成例を示すブロック図である。
【図９】ユーザＤＢのレコードレイアウトの一例を示す説明図である。
【図１０】実施の形態２に係る誤り検出処理の処理手順の一例を示すフローチャートである。
【図１１】上述した形態のサーバの動作を示す機能ブロック図である。
【発明を実施するための形態】
【０００９】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
（実施の形態１）
図１は、情報処理システムの構成例を示す模式図である。本実施の形態では、検出対象である文章（対象文）から、ユーザが誤って入力したと推定される誤り部分の候補を検出する情報処理システムについて説明する。情報処理システムは、情報処理装置１及び端末２を含む。各装置は、インターネット等のネットワークＮを介して通信接続されている。
【００１０】
情報処理装置１は、種々の情報処理、情報の送受信が可能な情報処理装置であり、例えばサーバ装置、パーソナルコンピュータ等である。本実施の形態で情報処理装置１はサーバ装置であるものとし、以下では簡潔のためサーバ１と読み替える。サーバ１は、ユーザから誤り検出対象の文章を取得し、当該文章の中から、誤りと推定される部分を検出（推定）し、検出結果（推定結果）をユーザに提示する。詳しくは後述するように、サーバ１は、学習用のサンプル文書群から、サブワード（部分語）と呼ばれる単位の語彙を学習する処理を事前に行い、学習したサブワード単位で対象文を分割し、分割後のサブワードの並びから文章内の誤り候補を検出する。
【００１１】
端末２は、各ユーザが使用する情報処理端末であり、例えばパーソナルコンピュータ、多機能端末等である。端末２は、ユーザによる操作に基づいて検出対象文をサーバ１に送信し、誤り候補の検出を要求する。端末２は、誤り候補の検出結果をサーバ１から取得し、該当箇所を色分け表示等によって明示した検出対象文を表示する。
【００１２】
図２は、サーバ１の構成例を示すブロック図である。サーバ１は、制御部１１、主記憶部１２、通信部１３、及び補助記憶部１４を備える。
制御部１１は、一又は複数のＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro-Processing Unit）、ＧＰＵ（Graphics Processing Unit）等の演算処理装置を有し、補助記憶部１４に記憶されたプログラムＰを読み出して実行することにより、サーバ１に係る種々の情報処理、制御処理等を行う。主記憶部１２は、ＳＲＡＭ（Static Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）、フラッシュメモリ等の一時記憶領域であり、制御部１１が演算処理を実行するために必要なデータを一時的に記憶する。通信部１３は、通信に関する処理を行うための処理回路等を含み、端末２等と情報の送受信を行う。
【００１３】
補助記憶部１４は大容量メモリ、ハードディスク等であり、制御部１１が処理を実行するために必要なプログラムＰ、その他のデータを記憶している。また、補助記憶部１４は、語彙リスト１４１を記憶している。語彙リスト１４１は、学習用のサンプル文書から抽出した複数のサブワードを記憶するデータベースである。
【００１４】
なお、補助記憶部１４はサーバ１に接続された外部記憶装置であってもよい。また、サーバ１は複数のコンピュータからなるマルチコンピュータであってもよく、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。
【００１５】
また、本実施の形態においてサーバ１は上記の構成に限られず、例えば可搬型記憶媒体に記憶された情報を読み取る読取部等を含んでもよい。
【００１６】
図３は、語彙リスト１４１のレコードレイアウトの一例を示す説明図である。語彙リスト１４１は、語彙列、スコア列を有する。語彙列は、サンプル文書から抽出（分割）したサブワードである語彙（文字又は文字列）を記憶している。スコア列は、サブワードと対応付けて、サンプル文書において各サブワードが出現した頻度を元に計算したスコア（パラメータ）を記憶している。
【００１７】
図４は、サブワード学習処理を説明するための説明図である。サーバ１は、例えば端末２から学習用のサンプル文書を多数取得し、各サンプル文書からサブワードを抽出して語彙リスト１４１を生成する。図４では、サンプル文書からサブワードを抽出し、語彙リスト１４１に登録していく過程を図示している。
【００１８】
サブワード（部分語）は、通常の分かち書きとは異なり、文章中に出現する頻度に応じて文章を区分した語彙（文字又は文字列）の単位である。一般的に文章の最小構成単位として用いられる「単語」は、文章中の文字又は文字列を意味、文法等の観点から最小化した単位であるが、サブワードは意味、文法等による単位ではなく、文章中で用いられる頻度に応じて最小化した単位である。サブワードの概念によれば、低頻度の語句（文字列）は、語句を構成する文字や部分文字列といった、語句そのものよりも短い単位でまとめられる。
【００１９】
以下、サンプル文書からサブワードを学習する処理について説明する。本実施の形態でサーバ１は、ＢＰＥ（Byte Pair Encoding）の手法を用いてサンプル文書からサブワードを抽出する。
【００２０】
サーバ１はまず、サンプル文書を文字単位で分割する。図４の最上段に示す例では、サーバ１は、「腫大したリンパ節を認めない」という文章を、「腫」、「大」、「し」、「た」…の各文字に分割している。
【００２１】
サーバ１は、図４の二段目に示すように、分割した全ての文字をサブワードとして語彙リスト１４１に登録する。この場合にサーバ１は、サンプル文書における各サブワード（文字）の出現頻度を元にサブワードのスコア（パラメータ）を計算し、計算したスコアを語彙リスト１４１のスコア列に登録しておく。スコアは、例えば出現頻度を正規化することによって計算される。図４の例では、「腫」よりも「大」の方が文章中で出現する頻度が高いため、「大」のスコアは「腫」のスコア０．０１よりも大きい０．０５となっている。
なお、正規化する際に用いる重みなどの値は、場合によって適宜変更される。また、以下の説明では出現頻度を正規化したスコア（パラメータ）に基づき一連の処理を行うものとするが、例えばサーバ１は正規化していない出現頻度そのものをスコアとして用いても良く、出現頻度に応じたパラメータに基づいて一連の処理を行うことができれば良い。
【００２２】
次にサーバ１は、サンプル文書において隣り合う文字を連結した二文字の文字列を、当該文字列の出現頻度に応じて語彙リスト１４１に登録する。具体的には、サーバ１は、文章中で最もスコアが高い二文字を語彙リスト１４１に登録する。
【００２３】
例えばサーバ１は、文章の先頭から末尾に至るまで二文字ずつ文字列を取り出し、各文字列のスコアを計算していく。図４の例では、サーバ１はまず「腫大」のスコアを計算し、続いて「大し」のスコアを、「した」のスコアを…というように計算を行う。そしてサーバ１は、二文字から成る各文字列のうち、スコアが最も高い文字列を語彙リスト１４１に登録する。図４の三段目に示す例では、「転移」の文字列のスコアが最も高かったため、サーバ１は「転移」をサブワードとして語彙リスト１４１に登録する。なお、サーバ１は併せて当該文字列の出現頻度を元に計算したスコアを語彙リスト１４１に登録する。
【００２４】
続いてサーバ１は、再度サンプル文書を探索し、スコアが最も高い二文字を語彙リスト１４１に登録する。この場合にサーバ１は、サブワードとして語彙リスト１４１に登録済みの文字列は一文字とみなし、新たなサブワードを探索する。上記の例では、語彙リスト１４１に「転移」を登録済みであるため、この「転移」の文字列が一つの文字とみなされる。このように、サーバ１はＢＰＥの手法を用いて、隣り合う文字同士を一つの情報（文字列）に圧縮する。サーバ１は、「転移」に跨る部分についてスコアを計算する場合、「転移」の前に位置する「骨」と「転移」とを連結した「骨転移」と、「転移」の後に位置する「が」と「転移」とを連結した「転移が」とを二文字の文字列とみなし、スコアを計算する。
【００２５】
このように、サーバ１は、語彙リスト１４１に登録済みの二つのサブワード（文字又は文字列）を連結して新たなサブワード（文字列）を特定し、当該新たなサブワードを出現頻度に応じて語彙リスト１４１に追加する。図４の四段目に示す例では、一文字のサブワード「骨」と二文字のサブワード「転移」とを連結した文字列「骨転移」のスコアが最も高かったため、サーバ１は、文字列「骨転移」をサブワードとして新たに語彙リスト１４１に追加する。
【００２６】
以下同様にして、サーバ１は、サンプル文書内で隣り合う二つのサブワード（文字又は文字列）を連結し、二つのサブワードから成る文字列を、その出現頻度に応じて語彙リスト１４１に登録する処理を順に行っていく。サーバ１は、複数のサンプル文書に対して当該処理を行い、語彙リスト１４１に登録されたサブワードが予め定められた最大数（例えば８０００語）に達するまで処理を繰り返す。これによりサーバ１は、図３で例示した語彙リスト１４１を生成する。このようにしてサーバ１は、文章内で現れやすい文字列のパターン（サブワード）を学習する。
【００２７】
なお、上記でサーバ１は、文章内で出現頻度に応じたスコアが最も高い文字列を語彙リスト１４１に登録することとしているが、例えばスコアの閾値を定め、閾値以上のスコアを有する文字列を全てサブワードとして登録するようにしてもよい。つまり、サーバ１は出現頻度に応じてサブワードを登録可能であればよく、出現頻度に係る判定基準は特に限定されない。
【００２８】
図５は、誤り検出処理を説明するための説明図である。図５に基づき、語彙リスト１４１を用いて、検出対象である対象文から誤り候補を検出する処理について説明する。
例えばサーバ１は、端末２を介してユーザから対象文を取得する。対象文を取得した場合、サーバ１は語彙リスト１４１を参照して、対象文をサブワード単位に分割する。図５の上段に示す例では、サーバ１は、「骨転移を認めない」という文章を、「骨転移」及び「を認めない」の二つのサブワードに分割している。例えばサーバ１は、語彙リスト１４１にサブワードと対応付けて格納されているスコアを参照して、対象文全体でのスコアの総和が最大化するように対象文を分割する。例えば上記の文章では、「骨転移」の文字列を「骨」及び「転移」に分割することも考えられるが、「骨」及び「転移」とした場合よりも「骨転移」とした場合にスコアが高いため、サーバ１は、「骨転移」の文字列単位で対象文を分割する。なお、サーバ１は、語彙リスト１４１に登録されていない未登録語に関しては、一文字ずつ分割する。
【００２９】
なお、上記でサーバ１は、学習時に計算したサブワードのスコアを基準に対象文を分割しているが、本実施の形態はこれに限定されるものではない。例えばサーバ１は、サブワードに係る文字列の長さ（文字数）に応じて分割を行い、出来るだけ長いサブワードによって対象文を分割するようにしてもよい。
【００３０】
サーバ１は、分割したサブワードの並びから、対象文における誤り候補を検出する。具体的には、サーバ１は、対象文において分割された連続する複数のサブワードの文字数のパターン、及び／又は複数のサブワードの文字種のパターンに応じて誤り候補を検出する。
【００３１】
例えばサーバ１は、一文字のサブワードが所定回数連続して出現する部分を、誤り候補として検出する。図５の下段に示す例では、サブワード単位で分割した対象文において、「り」から「つ」までの「りんぱせつ」の部分は、一文字のサブワードが５回連続で出現している。上述の如く、サブワードは文章中の出現頻度に応じてまとめられた語句（文字又は文字列）であり、低頻度の語句ほど少ない文字数にまとめられる。すなわち、一文字のサブワードは出現頻度が低いはずであるため、一文字という短いサブワードが所定回数連続する箇所は、誤って入力された可能性が高い。そこでサーバ１は、当該箇所を誤り候補として検出する。このようにサーバ１は、連続する複数のサブワードの文字数のパターンに応じて、誤り候補を検出する。
【００３２】
また、サーバ１は、連続する複数のサブワードの文字数のパターンだけでなく、複数のサブワードの文字種のパターンに応じて誤り候補を検出してもよい。例えばサーバ１は、平仮名のみ、あるいは片仮名のみのサブワードが連続する箇所を、誤り候補として検出する。図５の例では、「りんぱせつ」の部分は平仮名のみとなっている。サーバ１は、「りんぱせつ」が正しく変換されていない可能性が高いものと判断し、当該部分を誤り候補として検出する。
【００３３】
サーバ１は、検出した誤り候補をユーザに提示（出力）する。例えばサーバ１は、誤り候補に該当する部分を色分け表示した対象文を出力し、ユーザに提示する。なお、図５では図示の便宜上、該当箇所を下線付きの太字で表している。これによりユーザは誤り候補を認識し、対象文を校正することができる。
【００３４】
図６は、サブワード学習処理の処理手順の一例を示すフローチャートである。図６に基づき、サンプル文書からサブワードを学習する学習処理について説明する。
サーバ１の制御部１１は、学習用のサンプル文書群を取得する（ステップＳ１１）。制御部１１は、取得したサンプル文書を文字単位に分割する（ステップＳ１２）。制御部１１は、分割した全ての文字をサブワードとして語彙リスト１４１に登録する（ステップＳ１３）。
【００３５】
制御部１１は、語彙リスト１４１に登録済みのサブワード（文字又は文字列）のうち、サンプル文書において隣り合う二つのサブワードを連結した文字列の、サンプル文書内での出現頻度に応じたスコア（パラメータ）を算出する（ステップＳ１４）。例えば制御部１１は、文章の先頭から末尾に至るまで二つずつサブワードを取り出して一つの文字列とし、各文字列の出現頻度に基づくスコアを順に計算する。
【００３６】
制御部１１は、ステップＳ１４で算出したスコアに応じて、二つのサブワードを連結した文字列を新たなサブワードとして語彙リスト１４１に登録する（ステップＳ１５）。具体的には、制御部１１は、ステップＳ１４においてスコアを計算した全ての文字列のうち、スコアが最も高い文字列を語彙リスト１４１に登録する。この場合に制御部１１は、ステップＳ１４で算出された出現頻度を元にしたスコアを併せて語彙リスト１４１に登録する。
【００３７】
制御部１１は、予め定められた最大数のサブワードが語彙リスト１４１に登録されたか否かを判定する（ステップＳ１６）。最大数のサブワードが登録されていないと判定した場合（Ｓ１６：ＮＯ）、制御部１１は処理をステップＳ１４に戻す。最大数のサブワードが登録されたと判定した場合（Ｓ１６：ＹＥＳ）、制御部１１は一連の処理を終了する。
【００３８】
図７は、誤り検出処理の処理手順の一例を示すフローチャートである。図７に基づき、誤りの検出対象の文章である対象文から誤り候補を検出する処理について説明する。
サーバ１の制御部１１は、端末２から対象文を取得する（ステップＳ３１）。制御部１１は語彙リスト１４１を参照して、語彙リスト１４１に格納されているサブワード毎に対象文を分割する（ステップＳ３２）。具体的には、制御部１１は、語彙リスト１４１に格納されている各サブワードのスコアを参照して、各サブワードの出現頻度に係るスコアの総和が対象文全体で最大化するように対象文を分割する。
【００３９】
制御部１１は、対象文において複数のサブワードが連続する部分を、その複数のサブワードの文字数及び／又は文字種のパターンに応じて、誤り候補として検出（推定）する（ステップＳ３３）。例えば制御部１１は、一文字のサブワードが所定回数以上連続する部分を誤り候補として検出する。また、例えば制御部１１は、平仮名のみ、片仮名のみのサブワードが所定回数以上連続する部分を誤り候補として検出する。
【００４０】
制御部１１は、誤り候補が検出されたか否かを判定する（ステップＳ３４）。誤り候補が検出されたと判定した場合（Ｓ３４：ＹＥＳ）、制御部１１は、検出された誤り候補をユーザに対して提示（出力）する（ステップＳ３５）。例えば制御部１１は、対象文における該当箇所（文字列）を色分け等の方法で明示した対象文を出力する。誤り候補が検出されなかったと判定した場合（Ｓ３４：ＮＯ）、制御部１１は対象文をそのままユーザに提示する（ステップＳ３６）。制御部１１は一連の処理を終了する。
【００４１】
なお、上記でサーバ１は、一文字のサブワードが連続するか否かに応じて誤り候補を検出しているが、本実施の形態はこれに限定されるものではない。例えばサーバ１は、二文字以下のサブワードが所定回数以上連続する部分を誤り候補として検出してもよい。このように、サーバ１は、一文字の場合だけでなく、所定の文字数以下のサブワードが連続して現れる箇所（パターン）を誤り候補として検出してもよい。
【００４２】
また、上記でサーバ１は、サンプル文書を一文字ずつに分割し、分割した文字同士を連結していくことでサブワードを特定しているが、本実施の形態はこれに限定されるものではない。例えばサーバ１は、サンプル文書を二文字ずつの文字列に分割した後、出現頻度に応じて各文字列を一文字に分割、あるいは文字列同士を連結して、任意の文字数のサブワードを特定するようにしてもよい。また、例えばサーバ１は、単語辞書を用いてサンプル文書を単語単位で分割した後、出現頻度に応じて単語を文字、部分文字等に分割、あるいは単語同士を連結して、任意の文字数のサブワードを特定してもよい。このように、サーバ１はサンプル文書を所定単位の文字又は文字列毎に分割し、分割した文字又は文字列を出現頻度に応じて語彙リスト１４１に登録可能であればよく、どのようにサンプル文書を分割してサブワードを特定するか、特に限定されない。
【００４３】
以上より、本実施の形態１によれば、意味、文法等のような一般的な基準ではなく、出現頻度に応じて区分されるサブワードによって対象文を分割し、誤り部分を検出（推定）する。これにより、人手で作成された辞書を用いる必要がなく、未知語の多い文章であっても対応することができる。また、文字数のパターン又は文字種を基準とすることによって、意味、文法等が定義されていないサブワードからでも適切に誤り部分を検出することができる。以上より、文章内の誤り部分を適切に指摘することができる。
【００４４】
また、本実施の形態１によれば、ＢＰＥの技術を応用してサンプル文書内の文字を文字列単位に圧縮していくことで、適切にサブワードをリスト化することができる。
【００４５】
また、本実施の形態１によれば、学習時に計算した出現頻度を元にしたスコアの総和が最大化するように対象文をサブワード毎に分割することで、低頻度のサブワードが少なくなるように対象文が分割され、誤り部分をより適切に推定することができる。
【００４６】
また、本実施の形態１によれば、一文字のサブワード、すなわち頻度が低い語が連続する箇所を誤り候補として検出することで、より正確に誤りを指摘することができる。
【００４７】
（実施の形態２）
本実施の形態では、サーバ１が文章の属性に応じて複数の語彙リスト１４１を生成しておき、対象文の属性に応じて異なる語彙リスト１４１を用いて誤り候補を検出する形態について述べる。なお、実施の形態１と重複する内容については同一の符号を付して説明を省略する。
図８は、実施の形態２に係るサーバ１の構成例を示すブロック図である。本実施の形態においてサーバ１の補助記憶部１４は、ユーザＤＢ１４２を記憶している。ユーザＤＢ１４２は、各ユーザの情報を記憶したデータベースである。
【００４８】
また、詳細な図示及び説明は省略するが、サーバ１は、文章の属性に応じた複数の語彙リスト１４１、１４１、１４１…を補助記憶部１４に記憶している。本実施の形態では、病院等の医療機関で扱われる書類（診断記録等）を扱う場合を想定して、サーバ１は、各医療分野の文章用の語彙リスト１４１を生成してあるものとする。
【００４９】
図９は、ユーザＤＢ１４２のレコードレイアウトの一例を示す説明図である。ユーザＤＢ１４２は、ユーザＩＤ列、氏名列、所属列、アカウント列を含む。ユーザＩＤ列は、各ユーザを識別するための識別情報を記憶している。氏名列は、ユーザＩＤと対応付けて、ユーザの氏名を記憶している。所属列は、ユーザＩＤと対応付けて、各ユーザの所属を記憶している。本実施の形態では、医療機関に従事する職員（医師等）がユーザである場合を想定し、所属列には、各ユーザが所属する病院名、診療科名等が記憶されている。アカウント列は、ユーザＩＤと対応付けて、端末２からサーバ１にアクセス（ログイン）する際のアカウント情報を記憶している。
【００５０】
上述の如く、本実施の形態では医療機関の文章を取り扱う場合を想定し、サーバ１は、各医療分野、例えば診療科毎の語彙リスト１４１を生成しておく。例えばサーバ１は、各ユーザから既存の診断記録の電子ファイルを取得し、これをサンプル文書として用いて、診療科毎のサブワードを学習する。このようにしてサーバ１は、文章の記載内容、すなわち文章の属性に応じた複数の語彙リスト１４１を生成する。
【００５１】
なお、文章の属性は記載内容に基づく分類に限定されず、例えば文章の形式（社内文書であるか、社外文書であるか等）などに応じて分類してもよい。
【００５２】
図１０は、実施の形態２に係る誤り検出処理の処理手順の一例を示すフローチャートである。図１０に基づき、実施の形態２に係る誤り検出処理について説明する。なお、サーバ１は各属性のサンプル文書を用いてサブワードの学習を行い、各属性の語彙リスト１４１を生成済みであるものとして説明する。
サーバ１の制御部１１は、端末２を介してユーザから対象文を取得する（ステップＳ２０１）。制御部１１は、取得した対象文の属性を判定し、判定した属性に応じて語彙リスト１４１を選択する（ステップＳ２０２）。例えば制御部１１は、ステップＳ２０１で端末２と通信を行った場合のユーザのアカウント情報からユーザの所属を判別し、対象文の属性を判定する。また、例えば制御部１１は、取得した対象文に対して形態素解析を行い、記載されている語句から文章の属性を判定するようにしてもよい。このように、対象文の属性を判定する方法は特に限定されない。
【００５３】
制御部１１は、選択した語彙リスト１４１を参照して、対象文をサブワード毎に分割する（ステップＳ２０３）。そして制御部１１は、分割後の対象文から誤り候補を検出し（ステップＳ２０４）、処理をステップＳ３４に移行する。
【００５４】
誤り候補をユーザに提示（出力）した後（ステップＳ３５）、制御部１１は、誤り候補として提示した文字列が実際に誤りであったか否かをユーザ自身に確認させ、誤りでない場合、当該文字列を語彙リスト１４１に追加することで、語彙リスト１４１を更新する処理を行う。具体的には、制御部１１は端末２を介して、ステップＳ３５で提示した誤り候補に対し、当該誤り候補が適正であったか否かを示す応答をユーザから受け付ける（ステップＳ２０５）。例えば端末２は、誤り候補に該当する部分を色分け等によって表示した対象文に対し、該当部分の記載をそのまま承認するか否かの操作入力を受け付け、サーバ１に応答を送信する。また、例えば端末２は、誤り候補として表示した部分に対する校正の有無に基づき、誤りでなかったか否かを判定してサーバ１に応答を送信してもよい。
【００５５】
制御部１１は、誤り候補として提示した部分が適正でない旨の応答を受け付けたか否かを判定する（ステップＳ２０６）。適正でない旨の応答を受け付けていないと判定した場合（Ｓ２０６：ＮＯ）、制御部１１は一連の処理を終了する。適正でない旨の応答を受け付けたと判定した場合（Ｓ２０６：ＹＥＳ）、制御部１１は、誤り候補として提示した文字列を語彙リスト１４１に新たに登録し、語彙リスト１４１を更新する（ステップＳ２０７）。制御部１１は一連の処理を終了する。
【００５６】
以上より、本実施の形態２によれば、文章の属性に応じて複数の語彙リスト１４１を生成しておき、誤り検出時には文章の属性に応じた語彙リスト１４１を用いて検出を行う。これにより、文章内の誤りをより正確に検出することができる。
【００５７】
また、本実施の形態２によれば、ユーザから誤り候補が適正であったか否かの応答を受け付け、誤りでなかった場合、誤り候補として提示した文字列を新たなサブワードとして語彙リスト１４１に追加する。これによって語彙リスト１４１が更新され、さらに精度を向上することができる。
【００５８】
（実施の形態３）
図１１は、上述した形態のサーバ１の動作を示す機能ブロック図である。制御部１１がプログラムＰを実行することにより、サーバ１は以下のように動作する。
記憶部１１１は、複数の文書を学習して生成された語彙リスト１４１を記憶する。取得部１１２は、対象文を取得する。対象文分割部１１３は、前記対象文を、前記語彙リスト１４１に登録されている語彙毎に分割する。推定部１１４は、前記対象文において分割された連続する複数の前記語彙の文字数及び／又は文字種のパターンに応じて、前記複数の語彙を誤り部分と推定する。出力部１１５は、推定結果を出力する。
【００５９】
本実施の形態３は以上の如きであり、その他は実施の形態１及び２と同様であるので、対応する部分には同一の符号を付してその詳細な説明を省略する。
【００６０】
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００６１】
１  サーバ（情報処理装置）
１１  制御部
１２  主記憶部
１３  通信部
１４  補助記憶部
Ｐ  プログラム
１４１  語彙リスト
１４２  ユーザＤＢ
【図１】
2019159814.tif 000003
【図２】
2019159814.tif 000004
【図３】
2019159814.tif 000005
【図４】
2019159814.tif 000006
【図５】
2019159814.tif 000007
【図６】
2019159814.tif 000008
【図７】
2019159814.tif 000009
【図８】
2019159814.tif 000010
【図９】
2019159814.tif 000011
【図１０】
2019159814.tif 000012
【図１１】
2019159814.tif 000013