(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6568968
(24)【登録日】2019年8月9日
(45)【発行日】2019年8月28日
(54)【発明の名称】文書校閲装置およびプログラム
(51)【国際特許分類】
G06F 17/27 20060101AFI20190819BHJP
【FI】
G06F17/27 640
G06F17/27 615
G06F17/27 630
【請求項の数】4
【全頁数】10
(21)【出願番号】特願2018-31035(P2018-31035)
(22)【出願日】2018年2月23日
(65)【公開番号】特開2019-145023(P2019-145023A)
(43)【公開日】2019年8月29日
【審査請求日】2018年11月29日
【早期審査対象出願】
(73)【特許権者】
【識別番号】518135412
【氏名又は名称】株式会社リクルート
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100139066
【弁理士】
【氏名又は名称】伊藤 健太郎
(72)【発明者】
【氏名】高橋 諒
(72)【発明者】
【氏名】蓑田 和麻
(72)【発明者】
【氏名】石川 信行
【審査官】
長 由紀子
(56)【参考文献】
【文献】
特開2003−196636(JP,A)
【文献】
特開2005−352888(JP,A)
【文献】
中国特許出願公開第107357775(CN,A)
【文献】
米国特許出願公開第2016/0063094(US,A1)
【文献】
特開昭63−058570(JP,A)
【文献】
しだみえ,ソフト買いたい新書 第1回,YOMIURI PC,日本,読売新聞東京本社,2006年 2月 1日,第11巻第2号,p.76-79
【文献】
河田 岳大 外3名,両方向N−gram確率を用いた誤り文字検出法,電子情報通信学会論文誌 (J88−D−II),日本,社団法人電子情報通信学会,2005年 3月 1日,第J88-D-II巻第3号,p.629-635
【文献】
佐藤 政伸 外3名,マルコフ連鎖モデルを用いた日本語文誤り検出法の改善,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2000年10月20日,第100巻第401号,p.1-7
【文献】
荒牧 英治 外2名,TYPO Writer ヒトはどのように打ち間違えるのか?,言語処理学会第16回年次大会発表論文集,日本,言語処理学会,2010年 3月 8日,p.966-969
【文献】
仙田 明広,ワープロステップアップ講座 校正機能を使えば文書のチェックも簡単に,日経PC21,日本,日経BP社,2000年12月 1日,第5巻第23号,p.167
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/27
(57)【特許請求の範囲】
【請求項1】
対象文書の校閲を行う文書校閲装置であって、
機械学習によって、文章中の誤字を検出するための誤字検出モデルを構築するモデル構築部と、
前記誤字検出モデルを用いて、前記対象文書に含まれる誤字脱字の情報を抽出する誤字脱字抽出部と、
前記対象文書に含まれる複数の単語間の関連性を解析し、文書内不一致を抽出する文書内不一致抽出部と、を備え、
前記文書内不一致抽出部は、
前記対象文書に含まれる2つの固有名詞間の編集距離を算出し、算出した編集距離がゼロではなく、且つ所定の閾値以内の場合には、2つの固有名詞を文書内不一致として抽出し、
前記対象文書に含まれる読み方が一致する2つの一般名詞間の類似度を、機械学習によって構築した文書内不一致検出モデルを用いて算出し、算出した類似度が所定の閾値以上の場合には、当該2つの単語を文書内不一致として抽出する、文書校閲装置。
【請求項2】
前記誤字脱字抽出部は、
前記対象文書の各文字の出現確率を、前後の文脈に基づいて計算し、出現確率が一定値以下の文字を誤字と判定して抽出する、請求項1に記載の文書校閲装置。
【請求項3】
誤字と判定された前記文字について、より出願確率の高い文字を修正候補として提示する修正候補提示部を備えた請求項2に記載の文書校閲装置。
【請求項4】
対象文書の校閲を行うコンピュータを、
機械学習によって、文章中の誤字を検出するための誤字検出モデルを構築するモデル構築部と、
前記誤字検出モデルを用いて、前記対象文書に含まれる誤字脱字の情報を抽出する誤字脱字抽出部と、
前記対象文書に含まれる複数の単語間の関連性を解析し、文書内不一致を抽出する文書内不一致抽出部と、して機能させ、
前記文書内不一致抽出部は、
前記対象文書に含まれる2つの固有名詞間の編集距離を算出し、算出した編集距離がゼロではなく、且つ所定の閾値以内の場合には、2つの固有名詞を文書内不一致として抽出し、
前記対象文書に含まれる読み方が一致する2つの一般名詞間の類似度を、機械学習によって構築した文書内不一致検出モデルを用いて算出し、算出した類似度が所定の閾値以上の場合には、当該2つの単語を文書内不一致として抽出する、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書校閲装置およびプログラムに関する。
【背景技術】
【0002】
文章中の誤字脱字や原稿内不一致(矛盾や表記ゆれ)を検出するシステムが活用されている。例えば、特許文献1には、予め記憶されている誤字脱字のパターンに基づいて、文書中から誤字脱字の情報を抽出するシステムが記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2015−130102号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来のシステムでは、予め設定されたルールに基づいて、文書の校閲が行われていた。このため、ルールベースでは検出が難しい誤字脱字や原稿内不一致に適切に対応することができなかった。
【0005】
本発明は、以上説明した事情を鑑みてなされたものであり、予め設定されたルールに基づく検出が難しい誤字脱字や原稿内不一致の検出を行うことを目的の一つとする。
【課題を解決するための手段】
【0006】
本発明の一実施形態に係る文書校閲装置は、対象文書の校閲を行う文書校閲装置であって、
機械学習によって、文章中の誤字を検出するための誤字検出モデルを構築するモデル構築部と、
前記誤字検出モデルを用いて、前記対象文書に含まれる誤字脱字の情報を抽出する誤字脱字抽出部と、
前記対象文書に含まれる複数の単語間の関連性を解析し、文書内不一致を抽出する文書内不一致抽出部と、を備えたものである。
【0007】
また、前記誤字脱字抽出部は、前記対象文書の各文字の出現確率を、前後の文脈に基づいて計算し、出現確率が一定値以下の文字を誤字と判定して抽出するようにしてもよい。
【0008】
また、誤字と判定された前記文字について、より出願確率の高い文字を修正候補として提示する修正候補提示部を備えるようにしてもよい。
【0009】
また、前記文書内不一致抽出部は、前記対象文書に含まれる2つの単語間の類似度を算出し、算出した類似度が所定の閾値以上の場合には、当該2つの単語を文書内不一致として抽出するようにしてもよい。
【0010】
また、前記文書内不一致抽出部は、前記対象文書に含まれる2つの固有名詞間の編集距離を算出し、算出した編集距離がゼロではなく、且つ所定の閾値以内の場合には、2つの固有名詞を文書内不一致として抽出し、前記対象文書に含まれる読み方が一致する2つの一般名詞間の類似度を、前記文書内不一致検出モデルを用いて算出し、算出した類似度が所定の閾値以上の場合には、当該2つの一般名詞を文書内不一致として抽出するようにしてもよい。
【発明の効果】
【0011】
本発明によれば、予め設定されたルールに基づく検出が難しい誤字脱字や原稿内不一致の検出を行うことができる。
【図面の簡単な説明】
【0012】
【
図1】本発明の実施形態に係る文書校閲システム1の構成を示す図。
【
図2】本発明の実施形態に係る誤字検出モデル構築処理のフローチャート。
【
図3】本発明の実施形態に係る誤字検出モデルを説明する図。
【
図4】本発明の実施形態に係る誤字脱字の検出処理のフローチャート。
【
図5】本発明の実施形態に係る修正候補の表示方法を例示する図。
【
図6】本発明の実施形態に係る文書内不一致の検出処理のフローチャート。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態について図面を参照しつつ詳細に説明する。なお、同一の要素には同一の符号を付し、重複する説明を省略する。
【0014】
実施の形態
図1は、本実施形態に係る文書校閲システム1の構成を示す図である。
図1に示すように、文書校閲システム1は、文書校閲サーバ(文書校閲装置)10と、端末20を含んでいる。文書校閲サーバ10と端末20は、通信ネットワークNを介して接続される。通信ネットワークNは、例えば、インターネット、LAN、専用線、電話回線、企業内ネットワーク、移動体通信網、ブルートゥース(登録商標)、WiFi(Wireless Fidelity)、その他の通信回線、それらの組み合わせ等のいずれであってもよく、有線であるか無線であるかを問わない。また、端末20は複数含まれていてもよい。
【0015】
文書校閲サーバ10は、利用者が端末20を介して入力する文書の校閲を行う。文書校閲サーバ10は、汎用的なコンピュータであり、1台のコンピュータで構成されていてもよいし、通信ネットワークN上に分散する複数のコンピュータから構成されてもよい。文書校閲サーバ10は、制御装置11(モデル構築部、誤字脱字抽出部、文書内不一致抽出部、修正候補提示部)と、外部記憶装置12を備えている。制御装置11は、ハードウェアとして、CPU、ROMやRAM等のメモリ、入力インタフェース、出力インタフェース、通信インタフェース及びこれらを結ぶバス等を備えている。制御装置11は、CPUがROM等に格納されたプログラムを実行することにより各種機能を実現する。外部記憶装置12は、ハードディスクドライブ等である。
【0016】
端末20は、通信ネットワークNを介して文書校閲サーバ10とデータの授受が可能なあらゆる端末装置を利用することができる。例えば、タブレット端末やスマートフォン、パーソナルコンピュータ(PC)、ノートPC、携帯電話機、携帯情報端末(PDA)などであってもよい。端末20は、プロセッサ201、各種操作ボタンやタッチパネルなどの入力装置202、液晶ディスプレイなどの表示装置203、通信ネットワークNに接続するための通信インタフェース204、ディスクドライブまたは半導体メモリ(ROM、RAMなど)などの記憶資源205を備えている。
【0017】
(誤字検出モデルの構築)
次に、本実施形態による誤字検出モデルの構築について、
図2のフローチャートを用いて説明する。
【0018】
まず、文書校閲サーバ10は、モデル構築のための機械学習に用いる学習用データを取得する(ステップS101)。学習用データは、文章のサンプルデータであり、誤字脱字を含まない大量の文章(OKデータ、例「私は犬と散歩する。」)と、誤字脱字を含む文章と、誤っている箇所の情報(NGデータ、例「私は犬に散歩する。(に)」)が含まれる。学習用データは、外部記憶装置12に記憶されていてもよいし、通信ネットワークNを介して外部のサーバ等から取得するようにしてもよい。なお、学習用データとして用いる文書のサンプルは、校閲対象の文書と形式や内容ができるだけ類似しているものを用いることが望ましい。
【0019】
次に、文書校閲サーバ10は、学習用データを用いて機械学習を行うためのネットワークを構築する(ステップS102)。
図3は、誤字検出モデルを図式化したものである。
図3に示す誤字検出モデルは、双方向LSTM(Bidirectional Long Short-Term Memory)をもとに構成した言語モデルであり、文章中の対象箇所にあてはまる文字の出現確率を、前後の文言に基づいて算出し、当該文字の出現確率が低ければ誤字と判定する。具体的には、前方層(Forward Layer)と後方層(Backward Layer)からなる双方向LSTMにおいて、前方層及び後方層を構成する各LSTMに、文章を構成する各文字を入力する。そして、誤字判定をする文字が入力される対象箇所に位置するLSTM(図中のL)に対して、前方層において1つ前方に位置するLSTM(図中のLf)の出力と、後方層において1つ後方に位置するLSTM(図中のLb)の出力とに基づいて、当該対象箇所に出現する文字候補とその出願確率を出力する。
【0020】
図3に示す例では、「数億円単位(A)金額の商談となる。」という文章の対象箇所(A)に入る文字として、「が」、「の」、「を」の出現確率はそれぞれ0.1、0.5、0.05と算出される。この場合、誤字検出モデルは、「数億円単位の金額の商談となる。」という文章に対しては、誤字なしと判定し、「数億円単位が金額の商談となる。」または「数億円単位を金額の商談となる。」という文章に対しては、「が」、「の」をそれぞれ誤字と判定する。
【0021】
文書校閲サーバ10は、まず、誤字検出モデルを構築するための学習ネットワークを構築する。具体的には、双方向LSTMにより、文章中の対象箇所にある文字が出現する尤度(もっともらしさ)と出現確率を、前後の文言の並びに基づいて算出するネットワークを構築する。
【0022】
次に、文書校閲サーバ10は、大量のOKデータとNGデータを含む学習用データを入力として学習ネットワークの機械学習を行う(ステップS103)。例えば、「私は犬と散歩する。」のようなOKデータが大量に入力され、これに対して「私は犬に散歩する。(に)」のようなNGデータが入力されることにより、「私は犬」と「散歩する。」の間に入る文字としては「と」が尤度と出現確率が高く、「に」は低いということが学習される。
【0023】
次に、文書校閲サーバ10は、ステップS103で得られた尤度と出現確率に基づいて、文章中に誤字が含まれるか否かを判定するディープネットワークを構築する(ステップS104)。
【0024】
さらに、文書校閲サーバ10は、ステップS104で構築したディープネットワークの機械学習を行い、対象文書に誤字が含まれるか否かを判定する誤字検出モデルを構築する(ステップS105)。
【0025】
(誤字脱字の検出)
次に、本実施形態による誤字脱字の検出処理について、
図4のフローチャートを用いて説明する。
【0026】
文書校閲サーバ10は、校閲対象の文書を取得する(ステップS201)。校閲対象の文書は、利用者が端末20を介して文章を入力したり、文書校閲サーバ10に文書ファイルを送信することにより文書校閲サーバ10に提供するようにしてもよい。また、文書は外部記憶装置12に記憶しておいてもよいし、通信ネットワークNを介して外部のサーバ等から取得するようにしてもよい。
【0027】
文書校閲サーバ10は、学習済の誤字検出モデルを用いて、対象文書を解析する(ステップS202)。誤字検出モデルは、対象運所の中に出現確率が所定の閾値以下の文字が検出された場合には出力「1」(誤字有り)を、検出されなかった場合には出力「0」(誤字無し)を返す。誤字検出モデルによる出力が「0」(の場合(ステップS203:NO)、処理を終了する。
【0028】
一方、誤字検出モデルによる出力が「1」の場合(ステップS203:YES)、文書校閲サーバ10は、
図2のステップS103で機械学習を行ったモデルに問い合わせを行い、誤字として検出された箇所(出現確率が所定の閾値以下の文字)の情報と、修正候補の文字の情報を取得する(ステップS204)。修正候補の文字としては、当該誤り箇所において最も尤度の高い文字が提示される。また、尤度が一定値以上の複数の文字を候補として提示するようにしてもよい。修正候補の文字は、端末20の表示装置203に表示される。例えば、
図5に示すように、「私は犬に散歩する。」という元の文書が入力された場合に、「に」の修正候補として「と」を表示する。
【0029】
予め定義された辞書に基づく誤字検出のようなルールベースでの誤字検出の場合、上記の「私は犬に散歩する。」のような例では、各単語が辞書に存在するため、誤字として検出することは難しい。しかし、本実施形態のように、大量の文書サンプルを用いて機械学習を行った誤字検出モデルを用いることにより、ルールベースでは検出が難しい前後の文脈を考慮した誤字の判定を実現することができる。
【0030】
(文書内不一致の検出)
次に、本実施形態による文書内不一致の検出処理について、
図6のフローチャートを用いて説明する。
【0031】
文書校閲サーバ10は、校閲対象の文書を単語単位に分割する(ステップS301)。文書校閲サーバ10は、分割した単語の中から固有名詞を抽出し、各固有名詞間の距離を算出する(ステップS302)。固有名詞間の距離は、例えば、レーベンシュタイン距離のような編集距離を利用することができる。レーベンシュタイン距離は、一方の文字列を他方の文字列に変換するのに必要な編集の回数(文字の削除、挿入、置換などの手順の回数)を表している。例えば、「ウエディング」という文字列を「ウェディング」という文字列に変換するためには、「エ」を「ェ」に変換する、という1つの手順が必要になるので、「ウエディング」と「ウェディング」のレーベンシュタイン距離は「1」となる。
【0032】
文書校閲サーバ10は、算出した距離が所定の閾値以内(距離がゼロは含まない。)の場合(ステップS303:YES)、それらの単語を文書内不一致として抽出する(ステップS304)。すなわち、文字列同士が同一(距離がゼロ)ではないものの、ある程度近い(距離が閾値以内)であれば、不一致の可能性が高いと判断される。
【0033】
次に、文書校閲サーバ10は、分割した単語の中から、読み方が一致する一般名詞の組を抽出する(ステップS305)。例えば、「街並み」(マチナミ)と「街並」(マチナミ)、「式」(シキ)と「四季」(シキ)のように、表記が異なっていても読み方が一致する単語の組み合わせが抽出される。
【0034】
さらに、文書校閲サーバ10は、抽出したそれぞれの単語間の類似度を算出する(ステップS306)。具体的には、まず、Word2Vec等のニューラルネットワークモデル(文書内不一致検出モデル)を利用してそれぞれの単語をベクトルで表現する。Word2Vecは、大量のサンプル文書データを用いて、ある単語の周辺に高い頻度で出現する単語(例えば、「リンゴ」の周辺に「食べる」、「赤い」、「おいしい」等)を学習し、その結果を反映したベクトルを出力する。したがって、同じような文脈で使用される意味の似た単語のベクトルは同じような値のベクトル(ベクトル間の距離が近い)となる。
【0035】
文書校閲サーバ10は、出力されたそれぞれのベクトル間の距離を、単語間の類似度として算出する。例えば、「街並み」(マチナミ)と「街並」(マチナミ)については、意味がほぼ同じなので、類似度は高い値となる。一方、「式」(シキ)と「四季」(シキ)については、意味は全く異なるため類似度は低くなる。
【0036】
文書校閲サーバ10は、算出した類似度が所定の閾値以上の場合(ステップS307:YES)、それらの単語を文書内不一致として抽出する(ステップS308)。
【0037】
例えば、上記の例では、「街並み」と「街並」の組み合わせは文書内不一致と判定されるが、「式」と「四季」については文書内不一致とは判定されない。このように、ニューラルネットワークモデルを用いて文書内不一致の判定を行うことにより、表記ゆれの検出精度を向上させることができる。
【0038】
次に、文書校閲サーバ10は、日付、人数、距離等の主に数値についての表記の矛盾の検出を行う(ステップS309)。具体的には、予め設定したルールにしたがって、文書内の矛盾した表記を抽出する。例えば、文書中に「200人まで収容可能」という記載と「300人まで貸切OK」という記載が含まれている場合、「200人」と「300人」が矛盾した表記として抽出される。
【0039】
以上のように、本実施形態によれば、機械学習によって構築した誤字検出モデルを用いて、文書中に含まれる誤字脱字を抽出するようにしたので、予め設定されたルールに基づく検出が難しい誤字脱字や原稿内不一致の検出を行うことができる。なお、本実施形態では、機械学習により構築した誤字検出モデルを用いて誤字脱字の検出を行っているが、既存のルールベースでの誤字検出(予め作成した辞書に基づく判定等)と組み合わせて誤字脱字の検出を行うようにしてもよい。
【0040】
また、誤字検出モデルは、文書中の各文字の出現確率を前後の文脈に基づいて計算し、出現確率が一定値以下の文字を誤字と判定して抽出するので、誤字の判定の精度を向上させることができる。
【0041】
また、誤字と判定された文字については、より出願確率の高い文字を代替案として提示するようにしたので、利用者が効率的に文書の修正を行うことができる。
【0042】
また、対象文書に含まれる2つの単語間の類似度を機械学習によって構築した文書内不一致検出モデルを用いて算出し、算出した類似度が所定の閾値以上の場合には、当該2つの単語を文書内不一致として抽出するようにしたので、文書内の表記ゆれを高い精度で抽出することができる。
【0043】
また、対象文書に含まれる2つの固有名詞間の編集距離を算出し、算出した編集距離が所定の閾値以内の場合には、2つの固有名詞を文書内不一致として抽出するとともに、対象文書に含まれる読み方が一致する2つの一般名詞間の類似度を、文書内不一致検出モデルを用いて算出し、算出した類似度が所定の閾値以上の場合には、当該2つの一般名詞を文書内不一致として抽出するようにした。これにより、単語の種類を考慮して、より精度の高い表記ゆれの判定を行うことができる。
【0044】
なお、本発明は、上述した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において、他の様々な形で実施することができる。このため、上記実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。例えば、上述した各処理ステップは処理内容に矛盾を生じない範囲で任意に順番を変更し、または並列に実行することができる。
【符号の説明】
【0045】
1…文書校閲システム
10…文書校閲サーバ
11…制御装置
12…外部記憶装置
20…端末
201…プロセッサ
202…入力装置
203…表示装置
204…通信インタフェース
205…記憶資源
N…通信ネットワーク