(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6768750
(24)【登録日】2020年9月25日
(45)【発行日】2020年10月14日
(54)【発明の名称】学習方法、誤り判定方法、学習システム、誤り判定システム、およびプログラム
(51)【国際特許分類】
G06F 40/232 20200101AFI20201005BHJP
G06F 40/216 20200101ALI20201005BHJP
G06F 40/253 20200101ALI20201005BHJP
G06N 3/08 20060101ALI20201005BHJP
【FI】
G06F40/232
G06F40/216
G06F40/253
G06N3/08
【請求項の数】18
【全頁数】18
(21)【出願番号】特願2018-158681(P2018-158681)
(22)【出願日】2018年8月27日
(65)【公開番号】特開2020-35023(P2020-35023A)
(43)【公開日】2020年3月5日
【審査請求日】2018年12月20日
【新規性喪失の例外の表示】特許法第30条第2項適用 1.2018年3月5日 http://www.anlp.jp/nlp2018/proceedings/link.htmlにて発表 2.2018年3月12日〜3月16日(公開日2018年3月15日)言語処理学会第24回年次大会(NLP2018)にて発表
(73)【特許権者】
【識別番号】000153203
【氏名又は名称】株式会社日本経済新聞社
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100179062
【弁理士】
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100189913
【弁理士】
【氏名又は名称】鵜飼 健
(74)【代理人】
【識別番号】100199565
【弁理士】
【氏名又は名称】飯野 茂
(72)【発明者】
【氏名】中島 寛人
【審査官】
長 由紀子
(56)【参考文献】
【文献】
米国特許出願公開第2016/0350655(US,A1)
【文献】
特開2013−182347(JP,A)
【文献】
氏原 淳志,第2章 ディープラーニング入門 CNNで画像分類とドキュメント分類にチャレンジ!,SoftwareDesign,日本,(株)技術評論社,2017年 8月18日,第322号,p.26-34
【文献】
金子 顕之 外3名,深層学習と合議を用いた極性分類,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2017年 8月31日,第117巻第207号,pp.81-86
【文献】
竹内 孔一、松本 裕治,共起情報と統計的形態素解析によるOCR誤り訂正,情報処理学会研究報告,日本,社団法人情報処理学会 Information Processing Society of Japan,1997年 9月12日,第97巻第85号,pp.17-24
【文献】
高橋 諒,Deep Learningで始める文書解析入門(2)校正担当者必見!? 地味な誤字脱字で泣かないためのRecurrent Neural Networkのスゴイ生かし方,インターネット,@IT,2016年10月 6日,p.1-7,URL,https://atmarkit.co.jp/ait/artcles/1610/06/news015/html
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00−58
G06N 3/08
(57)【特許請求の範囲】
【請求項1】
被験文書の正誤判定をするために、ニューラル・ネットワークを学習させる方法であって、
プロセッサが、
記憶装置に記憶された正しい文書から、任意の長さの任意の文字列を切り出し、正しい学習データとする工程と、
前記正しい学習データに対して、文字の置換、並べ替え、追加、重複、及び削除のうちの何れかを実施することによって誤り学習データを作成する工程と、
前記正しい学習データである文字列と、前記誤り学習データである文字列とを、ベクトル列に変換する工程と、
前記変換されたベクトル列を、前記ニューラル・ネットワークに入力し、前記ニューラル・ネットワークを学習させる工程とを実行する、学習方法。
【請求項2】
前記プロセッサは、
前記変換する工程を実行する場合、前記文字列をベクトル列に変換する際に、前記文字列に含まれる文字を、ワン・ホット・ベクトルに置換する、請求項1に記載の学習方法。
【請求項3】
前記プロセッサは、
前記学習させる工程を実行する場合、前記変換されたベクトル列を、次元削減して、前記ニューラル・ネットワークに入力する、請求項1または2に記載の学習方法。
【請求項4】
前記ニューラル・ネットワークは、多層LSTM(Long Short Term Memory)である、請求項1乃至3のうち何れか1項に記載の学習方法。
【請求項5】
前記プロセッサは、
前記学習させる工程を実行する場合、前記変換されたベクトル列を、前記ニューラル・ネットワークに入力して得られた出力を、ソフトマックス関数に入力することによって、前記ベクトル列に対応する文字列の前記正誤判定を示すスコアに変換する、請求項1に記載の学習方法。
【請求項6】
前記プロセッサは、
前記学習させる工程を実行する場合、前記スコアに基づいて、前記ニューラル・ネットワークを学習させる、請求項5に記載の学習方法。
【請求項7】
ニューラル・ネットワークを学習させて、被験文書における誤りの有無を判定する誤り判定方法であって、
プロセッサが、
記憶装置に記憶された正しい文書から、任意の長さの任意の文字列を切り出し、正しい学習データとする工程と、
前記正しい学習データに対して、文字の置換、並べ替え、追加、重複、及び削除のうちの何れかを実施することによって誤り学習データを作成する工程と、
前記正しい学習データである文字列と、前記誤り学習データである文字列とを、ベクトル列に変換する工程と、
前記変換されたベクトル列を、前記ニューラル・ネットワークに入力し、前記ニューラル・ネットワークを学習させることによって得られた出力に基づいて、前記被験文書における誤りの有無を判定する工程とを実行する、誤り判定方法。
【請求項8】
前記切り出される文字列の長さは、ジャンルに応じて決定される、請求項7に記載の誤り判定方法。
【請求項9】
被験文書の正誤判定をするために、ニューラル・ネットワークを学習させるシステムであって、
記憶装置に記憶された正しい文書から、任意の長さの任意の文字列を切り出し、正しい学習データとする手段と、
前記正しい学習データに対して、文字の置換、並べ替え、追加、重複、及び削除のうちの何れかを実施することによって誤り学習データを作成する手段と、
前記正しい学習データである文字列と、前記誤り学習データである文字列とを、ベクトル列に変換する手段と、
前記変換されたベクトル列を、前記ニューラル・ネットワークに入力し、前記ニューラル・ネットワークを学習させる手段とを含む、学習システム。
【請求項10】
前記変換する手段は、前記文字列をベクトル列に変換する際に、前記文字列に含まれる文字を、ワン・ホット・ベクトルに置換する手段を含む、請求項9に記載の学習システム。
【請求項11】
前記学習させる手段は、前記変換されたベクトル列を、次元削減して、前記ニューラル・ネットワークに入力する手段を含む、請求項9または10に記載の学習システム。
【請求項12】
前記ニューラル・ネットワークは、多層LSTM(Long Short Term Memory)である、請求項9乃至11のうち何れか1項に記載の学習システム。
【請求項13】
前記学習させる手段は、前記変換されたベクトル列を、前記ニューラル・ネットワークに入力して得られた出力を、ソフトマックス関数に入力することによって、前記ベクトル列に対応する文字列の前記正誤判定を示すスコアに変換する手段を含む、請求項9に記載の学習システム。
【請求項14】
前記学習させる手段は、前記スコアに基づいて、前記ニューラル・ネットワークを学習する手段を含む、請求項13に記載の学習システム。
【請求項15】
ニューラル・ネットワークを学習させて、被験文書における誤りの有無を判定する誤り判定システムであって、
記憶装置に記憶された正しい文書から、任意の長さの任意の文字列を切り出し、正しい学習データとする手段と、
前記正しい学習データに対して、文字の置換、並べ替え、追加、重複、及び削除のうちの何れかを実施することによって誤り学習データを作成する手段と、
前記正しい学習データである文字列と、前記誤り学習データである文字列とを、ベクトル列に変換する手段と、
前記変換されたベクトル列を、前記ニューラル・ネットワークに入力し、前記ニューラル・ネットワークを学習させることによって得られた出力に基づいて、前記文字列における誤りの有無を判定する手段とを含む、誤り判定システム。
【請求項16】
前記文字列の長さは、ジャンルに応じて決定される、請求項15に記載の誤り判定システム。
【請求項17】
被験文書の正誤判定をするために、ニューラル・ネットワークを学習させるプログラムであって、
記憶装置に記憶された正しい文書から、任意の長さの任意の文字列を切り出し、正しい学習データとする機能、
前記正しい学習データに対して、文字の置換、並べ替え、追加、重複、及び削除のうちの何れかを実施することによって誤り学習データを作成する機能、
前記正しい学習データである文字列と、前記誤り学習データである文字列とを、ベクトル列に変換する機能、
前記変換されたベクトル列を、前記ニューラル・ネットワークに入力し、前記ニューラル・ネットワークを学習させる機能を、プロセッサに実現させるためのプログラム。
【請求項18】
ニューラル・ネットワークを学習させて、文字列における誤りの有無を判定する誤り判定プログラムであって、
記憶装置に記憶された正しい文書から、任意の長さの任意の文字列を切り出し、正しい学習データとする機能、
前記正しい学習データに対して、文字の置換、並べ替え、追加、重複、及び削除のうちの何れかを実施することによって誤り学習データを作成する機能、
前記正しい学習データである文字列と、前記誤り学習データである文字列とを、ベクトル列に変換する機能、
前記変換されたベクトル列を、前記ニューラル・ネットワークに入力し、前記ニューラル・ネットワークを学習させることによって得られた出力に基づいて、前記文字列における誤りの有無を判定する機能を、プロセッサに実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば深層学習のような機械学習のための学習方法、学習システム、および学習されたニューラル・ネットワークを使ってなされる誤り判定方法、誤り判定システム、ならびに、学習システムおよび誤り判定システムのためのプログラムに関する。
【背景技術】
【0002】
近年、コンピュータによる機械学習で、人間の脳神経回路を模したニューラル・ネットワークを多層的にすることで、コンピュータ自らがデータに含まれる潜在的な特徴をとらえ、より正確で効率的な判断を実現させる深層学習が、画像認識などのパターン認識の分野において広く利用されている。
【0003】
このような深層学習によって、コンピュータは、より人間に近い判断ができるようになった。例えば、人間が他人や動物を識別する場合、視覚や聴覚などを駆使して、対象物の体格などの全体を見た後に、目、耳、口などの顔のパーツなどを認識したり、あるいはその逆に、パーツから全体を認識したりするような階層的な過程を経る。
【0004】
従来のコンピュータでは、このような過程を経た認識は困難とされ、対象物の特徴を計算するプログラムによって識別を行っていた。しかしながら、深層学習によれば、コンピュータであっても、人間の認識過程と同じ過程を踏み、写真に写っている人の顔や動物等を認識することが可能になった。
【0005】
このような認識を可能にするために、深層学習では、大量の学習データによって、例えばニューラル・ネットワークを学習させる必要がある。例えば、ゴリラの画像であるか、キリンの画像であるかをニューラル・ネットワークに判断させるためには、ゴリラの画像を少なくとも約十万枚、キリンの画像も同様に少なくとも約十万枚それぞれを学習データとして提供し、学習させる必要がある。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】高橋諒著、「LSTMとResidual Learningでも難しい「助詞の検出精度」を改善した探索アルゴリズムとは」、www.atmarkit.co.jp/ait/articles/1611/11/news016.html(リクルートテクノロジーズ)(平成30年4月13日検索)
【非特許文献2】Yuta Hitomi, Hideaki Tamori, Naoaki Okazaki and Kentaro Inui, ‘Proofread Sentence Generation as Multi-Task Learning with Edit Operation Prediction’, In Proceedings of the 8th International Joint Conference on Natural Language Processing.
【発明の概要】
【発明が解決しようとする課題】
【0007】
深層学習は、上述したような画像認識への適用のみならず、文書における誤り判定への適用も考えられている。
【0008】
深層学習を文書における誤り判定へ適用する場合にもまた、画像認識の場合と同様に、大量の学習データを準備し、例えばニューラル・ネットワークを学習させる必要がある。
【0009】
しかしながら、誤り判定のためのニューラル・ネットワークの具体的な学習方法、すなわち、どのような学習データをどれだけ準備し、これら学習データを使って具体的にどのような処理を行うことによって学習を行うのかについては、未だに確立されたものはない。
【0010】
また、学習されたニューラル・ネットワークによって、具体的にどのような処理を行うことによって、文書における誤りを、効率的に判定できるのかについても、未だに確立されたものはない。
【0011】
本発明はこのような事情に鑑みてなされたものであり、文書の誤り判定に適用されるニューラル・ネットワークのための学習方法、学習システム、およびプログラムを提供することを目的とする。また、ニューラル・ネットワークによって文書の誤りが判定される誤り判定方法、誤り判定システム、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
上記の目的を達成するために、本発明では、以下のような手段を講じる。
【0013】
請求項1の発明は、
被験文書の正誤判定をするために、ニューラル・ネットワークを学習させる方法であって、
プロセッサが、記憶装置に記憶された正しい文書から、任意の長さの任意の文字列を切り出し、正しい学習データとする工程と、前記正しい学習データに対して、文字の置換、並べ替え、追加、重複、及び削除のうちの何れかを実施することによって誤り学習データを作成する工程と、前記正しい学習データ
である文字列
と、前記誤り学習データである文字列とを、ベクトル列に変換する工程と、前記変換されたベクトル列を、前記ニューラル・ネットワークに入力し、前記ニューラル・ネットワークを学習させる工程とを
実行する、学習方法である。
【0014】
請求項2の発明は、
前記プロセッサは、前記
変換する工程
を実行する場合、前記文字列をベクトル列に変換する際に、前記文字列に含まれる文字を、ワン・ホット・ベクトルに置換する、請求項1に記載の学習方法である。
【0015】
請求項3の発明は、
前記プロセッサは、前記
学習させる工程
を実行する場合、前記変換されたベクトル列を、次元削減して、前記ニューラル・ネットワークに入力する、請求項1または2に記載の学習方法である。
【0016】
請求項4の発明は、前記ニューラル・ネットワークは、多層LSTM(Long Short Term Memory)である、請求項1乃至3のうち何れか1項に記載の学習方法である。
【0017】
請求項5の発明は、
前記プロセッサは、前記
学習させる工程
を実行する場合、前記変換されたベクトル列を、前記ニューラル・ネットワークに入力して得られた出力を、ソフトマックス関数に入力することによって、前記ベクトル列に対応する文字列の前記正誤判定を示すスコアに変換する、請求項1に記載の学習方法である。
【0018】
請求項6の発明は、
前記プロセッサは、前記
学習させる工程
を実行する場合、前記スコアに基づいて、前記ニューラル・ネットワークを学習
させる、請求項5に記載の学習方法である。
【0019】
請求項7の発明は、ニューラル・ネットワークを
学習させて、
被験文書における誤りの有無を判定する誤り判定方法であって、
プロセッサが、記憶装置に記憶された正しい文書から、任意の長さの任意の文字列を切り出し、正しい学習データとする工程と、前記正しい学習データに対して、文字の置換、並べ替え、追加、重複、及び削除のうちの何れかを実施することによって誤り学習データを作成する工程と、前記正しい学習データ
である文字列
と、前記誤り学習データである文字列とを、ベクトル列に変換する工程と、前記変換されたベクトル列を、前記ニューラル・ネットワークに入力し、
前記ニューラル・ネットワークを学習させることによって得られた出力に基づいて、前記
被験文書における誤りの有無を判定する工程とを
実行する、誤り判定方法である。
【0020】
請求項8の発明は、前記
切り出される文字列の長さは、ジャンルに応じて決定される、請求項7に記載の誤り判定方法である。
【0021】
請求項9の発明は、
被験文書の正誤判定をするために、ニューラル・ネットワークを学習させるシステムであって、
記憶装置に記憶された正しい文書から、任意の長さの任意の文字列を切り出し、正しい学習データとする手段と、前記正しい学習データに対して、文字の置換、並べ替え、追加、重複、及び削除のうちの何れかを実施することによって誤り学習データを作成する手段と、前記正しい学習データ
である文字列
と、前記誤り学習データである文字列とを、ベクトル列に変換する手段と、前記変換されたベクトル列を、前記ニューラル・ネットワークに入力し、前記ニューラル・ネットワークを学習させる手段とを含む、学習システムである。
【0022】
請求項10の発明は、前記
変換する手段は、前記文字列をベクトル列に変換する際に、前記文字列に含まれる文字を、ワン・ホット・ベクトルに置換する手段を含む、請求項9に記載の学習システムである。
【0023】
請求項11の発明は、前記
学習させる手段は、前記変換されたベクトル列を、次元削減して、前記ニューラル・ネットワークに入力する手段を含む、請求項9または10に記載の学習システムである。
【0024】
請求項12の発明は、前記ニューラル・ネットワークは、多層LSTM(Long Short Term Memory)である、請求項9乃至11のうち何れか1項に記載の学習システムである。
【0025】
請求項13の発明は、前記
学習させる手段は、前記変換されたベクトル列を、前記ニューラル・ネットワークに入力して得られた出力を、ソフトマックス関数に入力することによって、前記ベクトル列に対応する文字列の前記正誤判定を示すスコアに変換する手段を含む、請求項9に記載の学習システムである。
【0026】
請求項14の発明は、前記
学習させる手段は、前記スコアに基づいて、前記ニューラル・ネットワークを学習する手段を含む、請求項13に記載の学習システムである。
【0027】
請求項15の発明は、ニューラル・ネットワークを
学習させて、
被験文書における誤りの有無を判定する誤り判定システムであって、
記憶装置に記憶された正しい文書から、任意の長さの任意の文字列を切り出し、正しい学習データとする手段と、前記正しい学習データに対して、文字の置換、並べ替え、追加、重複、及び削除のうちの何れかを実施することによって誤り学習データを作成する手段と、前記正しい学習データ
である文字列
と、前記誤り学習データである文字列とを、ベクトル列に変換する手段と、前記変換されたベクトル列を、前記ニューラル・ネットワークに入力し、
前記ニューラル・ネットワークを学習させることによって得られた出力に基づいて、前記文字列における誤りの有無を判定する手段とを含む、誤り判定システムである。
【0028】
請求項16の発明は、前記文字列の長さは、ジャンルに応じて決定される、請求項15に記載の誤り判定システムである。
【0029】
請求項17の発明は、
被験文書の正誤判定をするために、ニューラル・ネットワークを学習させるプログラムであって、
記憶装置に記憶された正しい文書から、任意の長さの任意の文字列を切り出し、正しい学習データとする機能、前記正しい学習データに対して、文字の置換、並べ替え、追加、重複、及び削除のうちの何れかを実施することによって誤り学習データを作成する機能、前記正しい学習データ
である文字列
と、前記誤り学習データである文字列とを、ベクトル列に変換する機能、前記変換されたベクトル列を、前記ニューラル・ネットワークに入力し、前記ニューラル・ネットワークを学習させる機能を、プロセッサに実現させるためのプログラムである。
【0030】
請求項18の発明は、ニューラル・ネットワークを
学習させて、文字列における誤りの有無を判定する誤り判定プログラムであって、
記憶装置に記憶された正しい文書から、任意の長さの任意の文字列を切り出し、正しい学習データとする機能、前記正しい学習データに対して、文字の置換、並べ替え、追加、重複、及び削除のうちの何れかを実施することによって誤り学習データを作成する機能、前記正しい学習データ
である文字列
と、前記誤り学習データである文字列とを、ベクトル列に変換する機能、前記変換されたベクトル列を、前記ニューラル・ネットワークに入力し、
前記ニューラル・ネットワークを学習させることによって得られた出力に基づいて、前記文字列における誤りの有無を判定する機能を、プロセッサに実現させるためのプログラムである。
【発明の効果】
【0031】
本発明によれば、文書の誤り判定に適用されるニューラル・ネットワークのための学習方法、学習システム、およびプログラムを実現することができる。また、ニューラル・ネットワークによって文書の誤りが判定される誤り判定方法、誤り判定システム、およびプログラムを実現することができる。
【図面の簡単な説明】
【0032】
【
図1】本発明の第1の実施形態に係る学習方法が適用された学習システムと、誤り判定方法が提供された誤り判定システムとが統合された統合システムの構成例を示すブロック図である。
【
図2】被験文書からの文字列の切り出しを説明する例を示す図である。
【
図3】ニューラル・ネットワークの学習時における動作の一例を示すフローチャートである。
【
図4】ニューラル・ネットワークの学習時における動作と、誤り判定時の動作とを概念的に示す概要図である。
【
図5】被験文書における誤りを判定する際の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【0033】
以下に、本発明の第1の実施形態に係る学習方法が適用された学習システムと、誤り判定方法が提供された誤り判定システムとが統合された統合システムを、図面を参照して説明する。
【0034】
(第1の実施形態)
図1は、本発明の第1の実施形態に係る学習方法および誤り判定方法が適用された誤り発見エンジンの構成例を示すブロック図である。
【0035】
統合システム10の電子回路は、バス11によって互いに接続されたCPU12、記録媒体読取部14、ディスプレイ15、キー入力部16、通信部17、記憶装置18、およびメモリ20を備える。
【0036】
キー入力部16は、例えばキーボード、マウス等のように、ユーザからの操作入力を受け付ける部位である。
【0037】
CPU12は、コンピュータであって、メモリ20に記憶されている学習プログラム21、および誤り判定プログラム22に従い回路各部の動作を制御し、キー入力部16から入力された操作入力に従う処理を実行する。
【0038】
学習プログラム21、および誤り判定プログラム22は、メモリ20に予め記憶されていてもよいし、あるいはメモリカード等の外部記録媒体13から記録媒体読取部14を介してメモリ20に読み込まれて記憶されたものであってもよい。
【0039】
学習プログラム21、および誤り判定プログラム22は、ユーザによるキー入力部16からの入力によって書き換えできないようになっている。
【0040】
メモリ20には、このようなユーザ書き換え不可能な情報の他に、ユーザが書き換え可能なデータを記憶するエリアとして、キー入力部16によりなされた入力に対応する情報が順次入力されるエリアである書込可能データエリア23が確保されている。
【0041】
通信部17は、例えばインターネットのような通信ネットワークに接続されており、この通信ネットワークを介して、図示しない外部の記事データベースや、図示しない誤り学習データジェネレータ等と通信する。この通信によって、例えば、ニューラル・ネットワークを学習させるための学習データ(後述する)や、被験文書等を、前述した誤り学習データジェネレータや、記事データベース等から受信した場合、受信した学習データや、被験文書等を、記憶装置18へ出力し、記憶装置18に記憶させる。
【0042】
記憶装置18は、例えばSSD(Solid State Drive)やHDD(Hard Disk Drive)等からなり、通信部17が受信した学習データおよび被験文書等や、学習プログラム21による学習の結果であるベクトル列等を記憶することができる。記憶している情報は、CPU12による制御の下、各プログラム21〜22によって使用されることができる。なお、
図1では、記憶装置18は、統合システム10の内部に備えられているが、記憶装置18は、統合システム10の外部に設けられていても良い。
【0043】
このように構成された誤り統合システム10は、CPU12が学習プログラム21、および誤り判定プログラム22に記述された命令に従い回路各部の動作を制御し、ソフトウェアとハードウェアとが協働して、以下に説明するように動作する。
【0044】
(ニューラル・ネットワークの学習)
学習プログラム21は、ニューラル・ネットワークを学習させるためのプログラムである。
【0045】
ニューラル・ネットワークを用いて、文書における誤りを発見するためには、どのような文書が正しく、どのような文書が誤りであるのかを、文字列である学習データを用いて学習させる必要がある。どのような文書が正しいのかを学習させるためには、正しい文書から作成された学習データ(以下、「正しい学習データ」と称する)を必要とし、どのような文書が誤りであるのかを学習させるためには、誤りを含む文書から作成された学習データ(以下、「誤り学習データ」と称する)を必要とする。
【0046】
ニューラル・ネットワークは、一般に、十分な学習を行うために、大量の学習データを必要とする。したがって、本実施形態では、一例として、正しい学習データと誤り学習データとを、それぞれ約10万個使用する。
【0047】
このような大量な正しい学習データおよび誤り学習データは、多くの提供者から提供される方が効率的であるので、通信ネットワークに接続された、図示しない誤り学習データジェネレータから取得するようにしても良い。この場合、前述したように、正しい学習データと誤り学習データとの両方を含む学習データを、通信部17が、通信ネットワークを介して誤り学習データジェネレータから受信して記憶装置18へ記憶させる。学習プログラム21は、このようにして記憶装置18に記憶された、正しい学習データと誤り学習データとの両方を含む学習データを、ニューラル・ネットワークの学習のために使用することができる。
【0048】
学習データの生成方法は、本願では特に限定しないが、一例を以下に説明する。
【0049】
例えば、正しい学習データは、正しい文書から、任意の長さの文字列を切り出すことによって生成して良い。また、誤り学習データは、正しい学習データに対して、(1)置換、(2)並び替え、(3)追加、(4)重複、および(5)削除のような5つの変換処理のうちの少なくとも何れかを実施することによって生成して良い。
【0050】
例えば、「インターネットによって、オンラインで商品を購入することは容易だが、誤った商品が発送されるトラブルが多く発生している。」という正しい文書があったとする。この正しい文書から、任意の長さとして、例えば10文字の長さの任意の文字列を切り出すことによって、「とは容易だが、誤った」のような文字列を切り出すことができる。このようにして正しい学習データを生成することができる。
【0051】
さらに、生成された正しい学習データ「とは容易だが、誤った」に対して、(1)置換処理を行うことによって、例えば「とは容易だむ、誤った」という誤り学習データを生成することができる。また、(2)並び替え処理を行うことによって、例えば「はと容易だが、誤った」という誤り学習データを生成することができる。さらに、(3)追加処理を行うことによって、例えば「とは容易だうが、誤った」、(4)重複処理を行うことによって、例えば「とは容易だがが、誤った」、(5)削除処理を行うことによって、例えば「とは容易だが、誤た」という具合に、誤り学習データを生成することができる。
【0052】
このように、上記(1)〜(5)の各処理は、正しい学習データに対して、最小の変換を施すことによって、誤り学習データを生成している。従って、生成された誤り学習データは、正しい学習データに類似している。実際に、人間が文書を作成する際に犯す誤りも、1つの文中の、1箇所だけが誤りであるという場合がほとんどである。また、ニューラル・ネットワークにとって、一般に、多くの誤りを含む文書よりも、1箇所しか誤りを含まない文書の方が、正誤判断はより困難である。
【0053】
以上説明したように、上記(1)〜(5)の各処理によって生成される誤り学習データは、正しい学習データに非常に類似しているという観点から、ニューラル・ネットワークのための性能向上のために好適な、良質な学習データとなる。
【0054】
学習プログラム21は、このようにして生成された各学習データ(正しい学習データと誤り学習データとの両方を含む)となる文字列を、ベクトル列に変換し、変換されたベクトル列を、ニューラル・ネットワークに入力し、ニューラル・ネットワークを学習させる。
【0055】
例えば、文字列をベクトル列に変換する際に、文字列に含まれる文字を、ワン・ホット・ベクトルに置換しても良い。
【0056】
また、変換されたベクトル列を、次元削減してから、ニューラル・ネットワークに入力しても良い。
【0057】
ニューラル・ネットワークは、多層LSTM(Long Short Term Memory)が好適である。
【0058】
また、変換されたベクトル列を、ニューラル・ネットワークに入力して得られた出力を、ソフトマックス関数に入力することによって、ベクトル列に対応する文字列の正誤判定を示すスコアに変換しても良い。
【0059】
さらには、このスコアに基づいて、ニューラル・ネットワークを学習するようにしても良い。
【0060】
ニューラル・ネットワークは、学習データである文字列のそれぞれに対応するベクトル列を生成し、生成したベクトル列を、記憶装置18に書き込む。
【0061】
これによって、記憶装置18には、学習データと同数のベクトル列が書き込まれることになる。例えば、学習データである文字列が20万個である場合、20万個のベクトル列が生成され、記憶装置18に書き込まれる。
【0067】
に正しい文字列が代入された場合、結果は、正の値となり、誤った文字列が代入された場合、結果は、負の値となるようにすれば、正誤判定が容易になるので、好ましい。
【0068】
学習プログラム21は、ニューラル・ネットワークに、学習データである文字列に対応するベクトル列を入力し、その出力に基づいて、学習する。
【0069】
(ニューラル・ネットワークによる文字列における誤り判定)
このように学習されたニューラル・ネットワークによってなされる文字列における誤り判定時の処理について、具体例を用いながら説明する。
【0070】
例えば、被験文書が「インターネットによって、オンラインで商品を購入することは容易だが、誤った商品が発送されるトラブルが多く発生している。」であったとする。このような被験文書は、オペレータ操作によって、キー入力部16から入力されることによって、または、外部記録媒体13に記録され、記録媒体読取部14によって読み取られることによって、または、通信部17によって、通信ネットワークを介して、外部の記事データベース等から送信されることによって、統合システム10へ入力される。
【0071】
このように被験文書が入力されると、誤り判定プログラム22は、被験文書から任意の長さの文字列を切り出す。この文字列の長さは、例えば、オペレータによって設定される。例えば任意の長さが、10文字である場合、誤り判定プログラム22は、
図2に示すように、被験文書Aの最初から先ず「インターネットによっ」という10文字からなる文字列a(#1)を切り出す。次に、被験文書Aにおいて1文字進めて「ンターネットによって」という10文字からなる文字列a(#2)を切り出す。次に、さらに1文字進めて「ターネットによって、」という10文字からなる文字列a(#3)を切り出すという具合に、最後の10文字からなる「が多く発生している。」という文字列a(#n)までを切り出す。
【0072】
このように、誤り判定プログラム22は、被験文書Aに含まれるすべての文字が、複数の文字列a(#1〜#n)の何れかに含まれるように、被験文書Aから、複数の文字列a(#1〜#n)を切り出す。従って、被験文書Aのうち、先頭および末尾以外の文字は、2つ以上の文字列aに含まれることになる。
【0073】
誤り判定プログラム22は、切り出された各文字列a(#1〜#n)を、記憶装置18に蓄積された各ベクトル列に、それぞれ代入する。例えば、学習済みのニューラル・ネットワークが記憶装置18に記憶されている場合、文字列a(#1)が、この学習済みのニューラル・ネットワークに代入される。同様に、文字列a(#2)、・・・・文字列a(#n)もまた、それぞれこの学習済みのニューラル・ネットワークに代入される。
【0074】
誤り判定プログラム22は、代入結果に基づいて、切り出された文字列a(#1〜#n)における誤りの有無を判定する。具体的には、文字列a(#1)が代入されたニューラル・ネットワークによる計算結果を算出する。前述したように、例えば、ニューラル・ネットワークは、正しい文字列が代入された場合、正の値を出力し、誤りを含む文字列が代入された場合、負の値を出力する。
【0075】
従って、文字列a(#1)が代入されたニューラル・ネットワークによる計算結果が正の値を示すのであれば、文字列a(#1)に誤りは含まれていないと判定することができ、逆に、負の値を示すのであれば、文字列a(#1)に誤りが含まれていると判定することができる。
【0076】
なお、誤り判定の精度を高めるために、ある正の値からなるしきい値を設け、計算結果が、しきい値を超えている場合に、文字列a(#1)に誤りは含まれないと判定し、逆に、しきい値を超えていない場合に、文字列a(#1)に誤りが含まれていると判定するようにしても良い。
【0077】
誤り判定プログラム22は、このようにして、文字列a(#1〜#n)毎に、誤りの有無をそれぞれ判定し、判定結果を、ディスプレイ15から表示させたり、あるいは、記憶装置18に記憶させる。
【0078】
なお、
図2に示す例では、被験文書Aの最初から1文字ずつ進めて文字列を切り出す例について説明したが、誤り判定プログラム22による判定結果が得られるまでの時間を短縮させたい場合には、1文字ずつ進めるのに代えて、例えば、3文字ずつ進めながら文字列を切り出すように、適宜、切り出しの分解能を調整すれば良い。ただし、分解能を下げた場合、判定精度も低下するので、切り出しの分解能は、要求する判定精度の観点から決定するものとする。
【0079】
次に、以上のように構成した統合システム10の動作について説明する。
【0080】
図3は、ニューラル・ネットワークの学習時における動作の一例を示すフローチャートであり、
図4は、ニューラル・ネットワークによる文字列における誤り判定時における動作を概念的に示す概要図である。
【0081】
学習データは、統合システム10において生成されても良いが、好適には、図示しない外部の誤り学習データジェネレータ等によって生成され、通信ネットワークや、外部記録媒体13を介して、統合システム10へ提供されても良い。
【0082】
学習データの生成方法は、本願では特に限定しないが、一例を、以下のステップS1およびステップS2において説明する。
【0083】
正しい学習データγは、例えば記事データベース30に記憶されている直近の1000本の新聞記事のような正しい文書αから、任意の長さの文字列βを切り出すことによって生成される(S1)。
【0084】
例えば、正しい文書αの中に、「インターネットによって、オンラインで商品を購入することは容易だが、誤った商品が発送されるトラブルが多く発生している。」という文書があったとする。この文書から、任意の長さとして、例えば10文字の長さの任意の文字列βを切り出すことによって、「とは容易だが、誤った」のような文字列からなる正しい学習データγが生成される。
【0085】
次に、このように生成された正しい学習γデータに対して、(1)置換、(2)並び替え、(3)追加、(4)重複、および(5)削除のような5つの変換処理のうちの少なくとも何れかが実施されることによって、誤り学習データδが生成される(S2)。
【0086】
例えば、ステップS1において生成された正しい学習データγ「とは容易だが、誤った」に対して、(1)置換処理を行うことによって、例えば「とは容易だむ、誤った」という誤り学習データδ(1)が生成される。また、(2)並び替え処理を行うことによって、例えば「はと容易だが、誤った」という誤り学習データδ(2)が生成される。さらに、(3)追加処理を行うことによって、例えば「とは容易だうが、誤った」、(4)重複処理を行うことによって、例えば「とは容易だがが、誤った」、(5)削除処理を行うことによって、例えば「とは容易だが、誤た」という具合に、誤り学習データδ(3)、δ(4)、δ(5)が生成される。
【0087】
このように、誤り学習データδは、正しい学習データγに対して、最小の変換を施すことによって生成されているために、正しい学習データγに類似している。このように正しい文字列に類似した文字列は、ニューラル・ネットワークにとって、正誤判断が困難な文字列であるので、このように生成された誤り学習データδは、ニューラル・ネットワークの性能向上のために好適な、良質な学習データとなる。
【0088】
このようにして生成された各学習データγ,δは、学習プログラム21によって、ニューラル・ネットワークに適用されることによって、ニューラル・ネットワークから正誤判定に対応する数値またはスコアが生成され、記憶装置18へ書き込まれる(S3)。ニューラル・ネットワークは、学習が進行すると、例えば、正しい文字列が代入された場合、結果として、正の値を出力し、誤った文字列が代入された場合、負の値を出力する。
【0089】
このようなニューラル・ネットワークの出力がフィードバックされることによって、学習がなされる。
【0090】
図5は、学習されたニューラル・ネットワークによって、被験文書Aにおける誤りを判定する際の動作の一例を示すフローチャートである。また、引き続き
図4を用いて、該動作を概念的に示す。
【0091】
先ず、被験文書Aが、例えばオペレータによる入力によって、または、外部記録媒体13を介して、または、通信ネットワークを介して記事データベース30から、統合システム10へ入力される(S11)。
【0092】
例えば、被験文書Aは、「インターネットによって、オンラインで商品を購入することは容易だが、誤った商品が発送されるトラブルが多く発生している。」であったとする。
【0093】
次に、誤り判定プログラム22によって、被験文書Aから任意の長さの文字列aが切り出される(S12)。
【0094】
例えば任意の長さが、10文字である場合、誤り判定プログラム22によって、
図2に示すように、被験文書Aの最初から先ず「インターネットによっ」という10文字からなる文字列a(#1)が切り出される。次に、被験文書Aにおいて1文字が進められ「ンターネットによって」という10文字からなる文字列a(#2)が切り出される。以下同様にして、最後の10文字からなる「が多く発生している。」という文字列a(#n)までが切り出される。
【0095】
なお、上記説明では、被験文書Aの最初から1文字ずつ進めて文字列を切り出す例について説明したが、例えば、3文字ずつ進めながら文字列を切り出すように、適宜、切り出しの分解能を調整することも可能である。ただし、分解能を下げた場合、誤り判定プログラム22による判定結果が得られるまでの時間を短縮することができるが、判定精度も低下するので、切り出しの分解能は、要求される判定精度の観点から決定するのが良い。
【0096】
ステップS12において切り出された各文字列a(#1〜#n)は、誤り判定プログラム22によって、記憶装置18に記憶された学習済みのニューラル・ネットワークに、それぞれ代入される(S13)。
【0097】
例えば、文字列a(#1)が、ニューラル・ネットワークに代入され、同様に、文字列a(#2)、・・・・文字列a(#n)もまた、それぞれニューラル・ネットワークに代入される。
【0098】
次に、代入結果に基づいて、誤り判定プログラム22によって、文字列a(#1〜#n)における誤りの有無がそれぞれ判定される。
【0099】
具体的には、先ず、誤り判定プログラム22によって、文字列a(#1)が代入されたニューラル・ネットワークによる計算結果が算出される(S14)。前述したように、ニューラル・ネットワークは、正しい文字列が代入された場合、正の値を出力し、誤りを含む文字列が代入された場合、負の値を出力する。
【0100】
従って、文字列a(#1)が代入されたニューラル・ネットワークによる計算結果が正の値を示すのであれば、文字列a(#1)に誤りは含まれないと判定され、逆に、負の値を示すのであれば、文字列a(#1)に誤りが含まれていると判定される。
【0101】
なお、誤り判定の精度を高めるために、ある正の値からなるしきい値を設け、計算結果が、しきい値を超えている場合に、文字列a(#1)に誤りは含まれないと判定し、逆に、しきい値を超えてない場合に、文字列a(#1)に誤りが含まれていると判定するようにしても良い。
【0102】
このようにして、誤り判定プログラム22によって、文字列a(#1〜#n)毎に、誤りの有無がそれぞれ判定され、判定結果が、ディスプレイ15から表示されたり、あるいは、記憶装置18に記憶される(S15)。
【0103】
上述したように、本実施形態によれば、文書の誤り判定に適用されるニューラル・ネットワークのために好適な学習方法および学習システムを実現することができる。また、このように学習されたニューラル・ネットワークによって文書の誤りを判定するための好適な誤り判定方法および誤り判定システムを実現することができる。
【0104】
(変形例)
次に、第1の実施形態の変形例1について説明する。
【0105】
本変形例では、学習プログラム21は、誤り判定精度を高めるために、文書のジャンル毎にニューラル・ネットワークの学習を行う。
【0106】
すなわち、第1の実施形態では、文書のジャンルを考慮していないが、本変形例では、誤り判定精度を高めるために、学習プログラム21は、ニューラル・ネットワークを、文書のジャンル(例えば、政治、経済、社会、文化、スポーツ、芸能、科学技術等)毎に学習する。
【0107】
このために、学習プログラム21は、ジャンル特有の学習データを使って、ジャンル毎にベクトル列を生成し、ニューラル・ネットワークに入力することによって、ジャンル毎に学習する。
【0108】
例えば、学習プログラム21は、ニューラル・ネットワークを、政治のジャンルについて学習する場合、政治に関連する正しい文書から作成された正しい学習データおよび誤り学習データを使って、ベクトル列を生成する。そして、これらベクトル列を、ニューラル・ネットワークに入力し、学習されたニューラル・ネットワークを、政治に関して学習されたニューラル・ネットワークであると区別して記憶装置18に記憶させる。
【0109】
学習プログラム21は同様に、ニューラル・ネットワークを、経済のジャンルについて学習する場合、経済に関連する正しい文書から作成された正しい学習データおよび誤り学習データを使って、ベクトル列を生成する。そして、これらベクトル列を、ニューラル・ネットワークに入力し、学習されたニューラル・ネットワークを、経済に関して学習されたニューラル・ネットワークであると区別して記憶装置18に記憶させる。このようにして、学習プログラム21は、ニューラル・ネットワークを、各ジャンル毎に学習することができる。
【0110】
各ジャンル毎に学習されたニューラル・ネットワークは、そのジャンルの文書の誤り判定を行う場合にのみ使用され、他のジャンルに関する文書の誤り判定を行う場合には使用されない。例えば、政治に関する文書の誤り判定を行う場合には、誤り判定プログラム23は、政治に関する被験文書から切り出された文字列を、政治に関して学習されたニューラル・ネットワークに代入する。
【0111】
誤り判定プログラム22は、各ジャンル毎に得られた計算結果から、被験文書における誤りの有無を判定する。この計算結果は、被験文書が属するジャンルに関して学習されたニューラル・ネットワークを用いて得られたものであるので、信頼性の高いものとなり、これによって、誤り判定精度の向上も図られる。
【0112】
また、第1の実施形態では、正しい文書から、任意の長さの文字列を切り出すことによって、正しい学習データを生成することについて説明した。そして、任意の長さの一例として、発明者の経験上妥当な値と思われる10文字の場合について説明した。しかしながら、適切な長さは、被験文書の内容に応じて変動し得る。例えば、同じ内容の文書であっても、大人が作成した文書よりも、子供が作成した文書のほうが長い傾向にあるので、被験文書が子供が作成した文書である場合には、10文字よりも長い文字列を切り出して正しい学習データを生成することが妥当である。
【0113】
同様なことが、被験文書のジャンルについても言える。例えば、スポーツのジャンルでは、ルールや技の名称等に、長い固有名詞が多く使用されることがあるので、長めの文字列を切り出して正しい学習データを生成することが妥当であろう。このように、学習データの長さは、ジャンル毎に最適な値とする。
【0114】
従って、学習プログラム21は、文書のジャンル毎にニューラル・ネットワークの学習を行う場合、使用する学習データの長さにも、ジャンルに応じて決定される最適な値を用いるようにすれば、誤り判定プログラム22においてなされる誤り判定精度を更に向上させることが可能となる。
【0115】
同様な理由により、被験文書から切り出す文字列の長さもまた、例えば、学習データの長さと同じにする等、ジャンルに応じて決定される最適な値を用いるようにすれば、誤り判定精度を更に向上させることが可能となる。
【0116】
以上、本発明を実施するための最良の形態について、添付図面を参照しながら説明したが、本発明はかかる構成に限定されない。特許請求の範囲の発明された技術的思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の技術的範囲に属するものと了解される。
【産業上の利用可能性】
【0117】
本発明の学習方法および学習システムは、必ずしも日本語の文書における誤り判定のためにニューラル・ネットワークを学習することに限定されず、任意の言語の文書における誤り判定のためにも同様にニューラル・ネットワークを学習することができる。
【0118】
したがって、本発明の誤り判定方法および誤り判定システムは、コンピュータプログラムのソースリストのように、人間の言語以外の文字情報における誤り判定にも適用可能であることから、プログラムのバグ取りのために利用することも可能である。
【符号の説明】
【0119】
10・・統合システム、
11・・バス、
12・・CPU、
13・・外部記録媒体、
14・・記録媒体読取部、
15・・ディスプレイ、
16・・キー入力部、
17・・通信部、
18・・記憶装置、
20・・メモリ、
21・・学習プログラム、
22・・誤り判定プログラム、
23・・書込可能データエリア、
30・・記事データベース。