TOP > 国内特許検索 > テキストコーパスの誤り検出方法及び装置 > 明細書

明細書 :テキストコーパスの誤り検出方法及び装置

発行国 日本国特許庁(JP)
公報種別 特許公報(B2)
特許番号 特許第3726125号 (P3726125)
公開番号 特開2003-058860 (P2003-058860A)
登録日 平成17年10月7日(2005.10.7)
発行日 平成17年12月14日(2005.12.14)
公開日 平成15年2月28日(2003.2.28)
発明の名称または考案の名称 テキストコーパスの誤り検出方法及び装置
国際特許分類 G06N  3/00      
G06F 17/27      
FI G06N 3/00 550Z
G06F 17/27 X
請求項の数または発明の数 4
全頁数 9
出願番号 特願2001-246643 (P2001-246643)
出願日 平成13年8月15日(2001.8.15)
審査請求日 平成13年8月15日(2001.8.15)
特許権者または実用新案権者 【識別番号】301022471
【氏名又は名称】独立行政法人情報通信研究機構
発明者または考案者 【氏名】馬 青
個別代理人の代理人 【識別番号】100130111、【弁理士】、【氏名又は名称】新保 斎
【識別番号】100090893、【弁理士】、【氏名又は名称】渡邊 敏
審査官 【審査官】久保 光宏
参考文献・文献 特開2003-58861(JP,A)
馬青・他,「モジュール型ニューラルネットによる品詞の曖昧性解消」,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2000年 6月15日,Vol.100, No.126(NC2000-9~23),pp.63-70
馬青・他,「モジュール型ニューラルネットによる品詞タグ付け」,電子情報通信学会論文誌,日本,社団法人電子情報通信学会,2001年 4月 1日,Vol.J84-D-II, No.4,pp.708-717
馬青・他,「ニューラルネットとルールベース手法を統合した品詞タグ付けシステム」,情報処理学会論文誌,日本,社団法人情報処理学会,2000年10月15日,Vol.41, No.10,pp.2827-2836
調査した分野 G06N1/00-7/08,
G06F17/27-17/28,
JSTファイル(JOIS),
CSDB(日本国特許庁)
特許請求の範囲 【請求項1】
コンピュータ上で単語情報を含む予め作成されたテキストコーパスにおける該単語情報の誤りを検出する方法であって、
該コンピュータに備えたコンピュータ演算処理手段が該単語情報の分類をクラスとして出力する際に、
コンピュータ演算処理手段におけるニューラルネットワーク学習処理部が、
モジュール型ニューラルネットを用い、該単語情報の分類である多クラス問題を、所定の学習数以下となるまで小規模な2クラス問題である複数のサブセットに繰り返し分割し、複数のモジュールを構成する演算を行う工程、
該ニューラルネットワーク学習処理部が、複数の各ネットワークモジュールがニューラルネットワークにおける学習過程において収束するか否かの演算を行う工程、
コンピュータ演算処理手段における誤り検出処理部が、該ニューラルネットワーク学習処理部の演算処理の結果収束しない場合に、該モジュールに該単語情報の誤りがあると判定し、該モジュールを抽出する工程
を含むことを特徴とするテキストコーパスの誤り検出方法。
【請求項2】
前記単語情報が、品詞に係る情報であって、
該情報をタグ形式でテキスト中に埋め込み、テキストコーパスを構成し、
該タグの誤りを検出する
請求項1に記載のテキストコーパスの誤り検出方法。
【請求項3】
単語情報を含む予め作成されたテキストコーパスにおける該単語情報の誤りを検出する検出装置であって、
該検出装置に備えたコンピュータ演算処理手段におけるニューラルネットワーク学習処理部から該各単語情報の分類をクラスとして出力する際に、
該ニューラルネットワーク学習処理部において、該単語情報について多クラスの分類を行うネットワークモジュールから、小規模な2クラス問題である複数のサブセットに所定の学習数以下となるまで繰り返し分割して複数のモジュールを構成する演算を行い、
さらに、該ニューラルネットワーク学習処理部において複数の各ネットワークモジュールがニューラルネットワークにおける学習過程において収束するか否かの演算を行い、
コンピュータ演算処理手段における誤り検出処理部が、該ニューラルネットワーク学習処理部の演算処理の結果収束しない場合に、該モジュールに該単語情報の誤りがあると判定し、該モジュールを抽出する
一連の処理を行うことによって誤りを検出可能な
ことを特徴とする検出装置。
【請求項4】
前記単語情報が、品詞に係る情報であって、
該情報をタグ形式でテキスト中に埋め込み、テキストコーパスを構成し、
該タグの誤りを検出する
請求項3に記載のテキストコーパスの誤り検出装置。
発明の詳細な説明
【0001】
【発明の属する技術分野】
本発明は、言語処理に用いられるテキストコーパスの誤りを検出する方法に関し、より詳しくは、該誤り検出の高速化、高効率化に関する技術である。
【0002】
【従来の技術】
近年、さまざまなテキストコーパスが作られ、教師有り機械学習の研究をはじめとして、言語処理技術の研究が盛んに行われている。しかし、学習に用いられるテキストコーパスは人手によって作成されるため、多くの誤りを含み、この誤りが各研究の進捗を妨げたり、言語処理精度の低下を招く場合も多い。
このため、テキストコーパス中の誤りを検出・修正することは非常に重要な課題となっている。
【0003】
従来から知られているテキストコーパス中の誤りを検出する試みとしては、形態素コーパス中での過分割の誤りを検出する方法(内山将夫、「形態素解析結果から過分割を検出する統計的尺度」、言語処理学会会誌、Vol.6、No.7、(1999))などがある。しかし、従来の手法の多くは、誤りの種類を特化し、汎用性の見えにくい手法である。
【0004】
そこで、本件出願人らによって、一般的にどの問題に対しても用いることができると考えられている用例ベース手法や、決定リスト手法を利用した、対象とするコーパスのみから間違っている確率を算出し、誤りを検出する手法が考え出された。(村田真樹、内山将夫、内元清貴、馬青、井佐原均、「決定リスト、用例ベース手法を用いたコーパス誤り検出・誤り訂正」、情報処理学会 自然言語処理研究会、2000-NL-136、pp.49-56(2000))
しかし、これら従来の手法でも、学習の前に誤りの検出を行わなければならず、いわばオフラインでの検出手法である上に、検出処理も、誤りがありそうな部分への絞り込み作業なしに、全コーパスを対象に1語ずつ調べていくため、好適な検出効率を得ることは難しかった。
このため、大規模なテキストコーパスの場合には、検出が難しく、費用コスト的にも大きくなる問題があった。
【0005】
【発明が解決しようとする課題】
本発明は、上記従来技術の有する問題点に鑑みて創出されたものであり、その目的は、高速かつ高効率でテキストコーパス中の誤りを検出する方法を創出することである。ひいては、言語処理技術の向上に寄与することを目的とする。
【0006】
【課題を解決するための手段】
本発明は、上記の課題を解決するために、次のようなテキストコーパスの誤り検出方法を創出する。
すなわち、コンピュータ上で単語情報を含む予め作成されたテキストコーパスにおける該単語情報の誤りを検出する方法を提供する。
【0007】
該コンピュータに備えたコンピュータ演算処理手段が該単語情報の分類をクラスとして出力する際に、コンピュータ演算処理手段におけるニューラルネットワーク学習処理部が、モジュール型ニューラルネットを用い、該単語情報の分類である多クラス問題を、所定の学習数以下となるまで小規模な2クラス問題である複数のサブセットに繰り返し分割し、複数のモジュールを構成する演算を行う工程、該ニューラルネットワーク学習処理部が、複数の各ネットワークモジュールがニューラルネットワークにおける学習過程において収束するか否かの演算を行う工程を備える。
【0008】
さらに、コンピュータ演算処理手段における誤り検出処理部が、該ニューラルネットワーク学習処理部の演算処理の結果収束しない場合に、該モジュールに該単語情報の誤りがあると判定し、該モジュールを抽出する工程を含むことを特徴とする。
【0009】
ここで、前記単語情報が、品詞に係る情報であって、該情報をタグ形式でテキスト中に埋め込み、テキストコーパスを構成し、該タグの誤りを検出する場合にも適用することができる。
【0010】
又、本発明は以上の処理を行うことによって、テキストコーパスの誤りを検出可能な装置として提供することもできる。
この時、誤りを検出することに特化した機能を有する装置として提供してもよいし、他の装置の一部として構成することもできる。例えば、テキストコーパスを手動、半自動、自動的に作成する装置に組み込んで、作成後のコーパスの誤りを連続的に検出することもできるし、その他、任意の言語処理を行う装置に付加することもできる。
【0011】
【発明の実施の形態】
以下、本発明の実施方法を図面に示した実施例に基づいて説明する。なお、本発明の実施形態は以下に限定されず、適宜変更可能である。以下においては、テキストコーパスの一例として、日本語によるコーパスを挙げて説述していくが、本発明の実施方法は、性質上実現出来ない場合を除き、英語、中国語、韓国語等のいかなる言語に対しても適用可能である。
また、本発明が対象とするテキストコーパスは、品詞や形態素区切り等、任意の単語情報を含むテキストコーパスであってよく、本発明はそれらの単語情報に係る誤りを効果的に検出できる方法である。
【0012】
種々の学習システムはそれぞれの用途にあわせ、大規模データベースを学習することによって必要な知識を獲得する。大規模データベースは通常、人手で作成されるため、細心な注意を払ってもエラーは存在する。データベースの品質を高めるため、そして、それを用いる学習するシステムの性能を高めるため、エラーを自動検出する技術が必要である。しかし、これまで開発されたエラー自動検出はすべてそのデータを利用する前にあらかじめ(つまり、オフライン的に)行うものであり、常に全データを対象にデータを一つずつチェックして行わなければならない。そのため、例えばテキストコーパスのような大規模データベースの場合、その計算コストは非常に高い。
【0013】
そこで、本発明において、テキストコーパスの誤りを検出する際、次の特徴を有する誤り検出方法及び装置を提供する。
(1) エラーは、そのデータを学習する最中に検出される。
(2) 検出は全データをスキャンするのではなく、エラーのあるごく小さなデータエリアに直接飛びつき、それらのエリアに絞って行う。
(3) データが修正された後の再学習は、全データを対象に行う必要がなく、修正がかかったエリアのデータのみに対し行えばよい。
(4) 学習機械としては、大規模で複雑な学習問題(データ)を多数の小規模で簡単な問題(データセット)に分割して学習が行えるモジュール型ニューラルネットが用いられる。
(5) 上記ニューラルネットを構成する個々のモジュールは、学習データにエラーがなければ必ず収束する、という前提に基づき処理を行う。
(6) 上記(1)ないし(3)を可能にしたのは上記(5)の特性を逆に利用した結果である。つまり、収束しないモジュールにエラーデータが存在すると考え、エラー検出を行う。
【0014】
図1には上記の本発明の特徴を、テキストコーパスの誤り検出に用いた場合の処理概念図を示す。
まず、大規模テキストコーパス(10)を、学習対象となる学習データセット(11)として用いる。該学習データセットは大規模で複雑な学習問題であるから、これを多数の小規模で簡単なデータサブセット(12a)(12b)(12c)(12d)(12e)・・に分割する。この分割によってモジュール型ニューラルネットが形成される。
具体的には、本発明を実施するコンピュータにおいて、周知の中央演算装置(CPU)におけるニューラルネットワーク学習処理部が、学習データセット(11)を後述する簡単な演算処理により分割し、複数のクラス分けではなく2つのクラス分けした結果を出力するためのモジュール(データサブセット)に再構成する。
【0015】
そして、中央演算装置のニューラルネットワーク学習処理部では各データサブセット(12a・・・)を用いて公知の方法により学習が行われる。その際、収束(13)すれば中央演算装置の誤り検出処理部が当該データサブセットに誤りはない(14)と判断する。
一方、例えばあるデータサブセット(12c)において学習が収束しなかった(13’)場合、中央演算装置の誤り検出処理部が当該データサブセット(12c)を抽出(15)する。本発明による検出の後は、例えば人手によって修正(16)を施す。修正方法は自動的な手法によってもよいし、任意である。
【0016】
修正(16)を施されたデータサブセット(12c)は再び、再学習(17)に用いられ、学習が収束(18)し、データに誤りはない(19)として処理される。
本発明は、以上の流れにしたがってテキストコーパスの誤り検出を行うものであり、以下に、これらの本発明が特徴とする革新的アイデアに基づいて創出された誤り検出方法を詳細に説明する。
【0017】
人手で作成されたコーパスには、単純ミス型(例えば,「動詞」を「同士」と表記してしまう場合など。)、不正確な知識による知識型(例えば,「国立」という地名もあるのに、「国立」をすべて普通名詞にしてしまう場合など。)、矛盾型(例えば、格助詞であるべき「の」をときには接続助詞にしてしまう場合など。)という三種類の誤りが考えられる。
【0018】
単純ミス型誤りは、電子辞書や品詞体系リストなどを参照すれば容易に検出可能である。一方、知識型誤りの検出は自動的な方法では困難である。
品詞タグ付けを一種の入出力マッピング問題として捉えるなら、矛盾型誤りを同じ入力を持ちながら出力が異なるデータの集合として考えることができる。このような誤りを検出する手法は従来から幾つか提案されている。しかし、それらの手法はいずれも学習の前に行わなければならないものであり、いわばオフラインで行う手法であった。
そして、検出処理は、誤りがありそうな部分への絞り作業なしに、全コーパスを対象に一語ずつ調べて行くため、計算処理に時間と費用がかかり、非効率的である。とくに、コーパスが高精度である場合には、全コーパスを検査する手法は、非常に無駄な作業が多い。
【0019】
そこで、本発明においては、次のような誤り検出方法を創出した。
まず、学習問題とされる品詞タグ付けは、任意の文
W=w12・・・ws
が与えられたとき、マッピング処理或いはクラス分け問題
p→τp
によって品詞列
T=τ1τ2・・・τs
を見つけることである。ただし、pは品詞を定めようとする目標言語のコーパスにおける位置を表し、Wpは目標単語wpを中心とした左右それぞれ(l,r)個の単語で構成される単語列である。
すなわち、
p=wp-l・・・wp・・・wp+r
となる。
ただし、p-l≧ss、p+r≦ss+s、ssは文頭単語の位置である。
【0020】
誤りの検出の一例として、例えば京大テキストコーパスからすくなくとも一箇所の誤りを持つ217文を用いる。それらの文はのべ6816個の単語(うち、異なりが2410 個)を持ち、97種類の品詞を有する。品詞をクラスとして捉えるなら,この品詞タグ付け問題は97classのクラス分け問題となる。
【0021】
この97class問題をまず—意的に4656個のtwo-class問題に分割する。そして、まだ学習データの多いtwo-class問題はその数が80以下になるように更に無作為に分割する。このようにして、この97class問題が23,231個の小規模で簡単なtwo-class問題に分割される。
【0022】
本発明で用いるM3ネットワークは、大規模で複雑な学習問題(データ)を多数の小規模で簡単な問題(データセット)に分割して学習が行えるモジュール型ニューラルネットを用いる。そして、複数のモジュールをMINMAXなどの簡単な演算で統合された構成を有する。そのため、大規模で複雑な学習問題(データ)を多数の小規模で簡単な問題(データセット)に分割して学習が行える特徴がある。
本発明では、上記のように品詞タグ付けのために、本来の97クラス問題を、2クラス問題に構成した複数のモジュールを用いる。
そして、該ニューラルネットにおける学習では、各モジュールへの入力ベクトルXとして、目標単語については単語列を、その文脈には品詞を、それぞれ2進コード化ベクトルで入力する。一方、出力に対する教師信号として目標出力Yは目標単語に付与すべき品詞の2進コード化ベクトルを与えて学習させる。
【0023】
すなわち、各モジュールヘの入力ベクトルXは単語列Wpから以下のように
構成される。
【式1】
X=(xp-l,・・・,xp,・・・,xp+r
要素xpは目標単語を符号化するω次元の2進コード化ベクトルである。一方、文脈にある単語に対応する要素xt(t≠p)はその単語に付与された品詞を符号化するτ次元の2進コード化ベクトルである。目標出力Yは目標単語に付与すべき品詞を符号化するτ次元の 2進コード化ベクトルであり、式2によって示される。
【式2】
Y=(y1,y2,・・・,yτ)
【0023】
3ネットワークは簡単で小規模な問題を扱う多数のモジュールから構成されるため、収束性の問題が基本的に生じない。言い替えれば、あるモジュールが学習において収束しなければ、このモジュールの学習データに矛盾型誤りがあると考えられる。
即ち、学習データセットに、式3の条件を満足するデータのぺア(Xi,Yi)と (Xj,Yj)が存在する。
【式3】
i=Xj,Yi≠Yj (i≠j)
ただし、XiとXjは入力であり、YiとYjはそれぞれ対応する目標出力である。従って、このタイプの誤りは学習の時に、収束しないモジュールだけを選び出すことによって検出できる。
【0024】
本発明によるこの検出方法は全データをスキャンするのではなく、誤りのあるごく小さなデータエリアにスキップし、それらのエリアに絞って行う、と見ることができる。
このような検出法は、従来のように全コーパスを調べていくよりもはるかに効率的であって、特に高精度のコーパスを用いている場合には、誤りデータが極少数のモジュールに限られているため、非常に有効である。
【0025】
そして、誤りが訂正された後の再学習は、全コーパスを対象に行う必要がなく、また全モジュールに対し行う必要もなく、修正がかけられたエリアのデータのみを用い、収束しないモジュールだけに対して行えばよい。
いうまでもなく、このような低コストの再学習は学習システムの性能向上にも寄与することができる。
【0026】
本発明では、以上の手法を用いたテキストコーパスの誤り検出装置を提供することができる。該手法は、高速な処理を行うことが可能なため、テキストコーパスによる言語処理装置に本発明の装置を付加し、学習を行うと同時に、誤りを検出し、より高精度な言語処理装置を提供することも可能となる。
また、テキストコーパスを人手によって作成する装置、手動及び自動的に作成する装置、言語固有情報を自動獲得して、自動的に作成する装置等に、本発明の装置を付加し、テキストコーパスの作成と同時に誤りを検出し、高精度なテキストコーパスを完成させることもできる。
【0027】
以下、本発明による検出方法の検出精度を示す。
単語と品詞を表すべクトルの次元ω,τはそれぞれ16と8に設定した。単語列の長さ(l,r)は(2,2)に設定した。従って、モジュールの入力層のユニット数は
[(l+r)×τ]+[1×ω]=48
であった。
【0028】
初期値としてすべてのモジュールは48-2-1の3層パーセブトロンで構成された。一回の学習は目標誤差0.05に達した時点あるいは5000ステップまで行われる。 目標誤差まで到達できないモジュールについては、中間層ユニット数を2個ずつ増やし、再度学習を最大5回まで行った。
【0029】
図2は実験結果を示している。23231個のモジュールのうち、僅か82個が収束しなかった。このうち、81個の中に矛盾なデータがあった。矛盾なデータは計97ペアであった。この97ペアの中、94ペアにそれぞれ1個ずつの誤りデータがあった。
図3は正しく検出された例を示す。左列の数字はそれぞれ検出された単語が所在する文番号と文の中の位置を示す。下線のある単語はチェックを受けている単語で、×が付いているほうがその単語に付与されている品詞が誤っていることを示す。
【0030】
一方、正しく検出されなかった残りの3ペアはすべて助詞/判定詞の「で」についてのものであった。しかし実際の文を調べた結果、これらの「で」を判定するためには文全体、すなむち構文情報を用いる必要があることが分かった。従って、本実験結果は、本発明による検出方法の精度は、構文情報を必要としない誤りの検出において実質的に100%に達したことを意味している。
【0031】
このように、ニューラルネットワークにおける収束しない現象を用いたテキストコーパスの誤り検出方法は、極めて高精度、高信頼性を有し、しかも従来の手法に比して飛躍的に高速な方法を実現している。上記実験では小規模なテキストコーパスであったが、より大規模な場合には、さらにその効果が顕著になると考えられ、本発明の有用性が証明された。
【0032】
【発明の効果】
本発明は、以上の構成を備えるので、次の効果を奏する。
請求項1に記載のテキストコーパスの誤り検出方法によると、ニューラルネットを用いるときによく悩まされる収束しない問題を逆手に取り、人手で作成したコーパスを学習しながらその中に含まれる誤りを収束しないモジュールを調べることによって高効率に検出する手法を実現することができる。
これによって、高速かつ高精度、低コストな検出方法に寄与する。
【0033】
請求項2に記載のテキストコーパスの誤り検出方法によると、テキストコーパスに広く用いられているタグを利用したテキストコーパスに本発明の方法を用いることができるので、該手法を有効に活用することができる。
【0034】
請求項3に記載のテキストコーパスの誤り検出装置によると、オンラインで高効率に誤りを検出することで、正確なテキストコーパスでの学習に寄与し、さらに誤りの訂正、訂正後のコーパスによる再学習が効率よく行える。
これによって、学習システムの性能向上を図ることができ、ひいては言語処理技術の向上に寄与する。
【0035】
請求項4に記載のテキストコーパスの誤り検出装置によると、広く普及したタグ形式のテキストコーパスを用いることができるので、有用性が高い。
【図面の簡単な説明】
【図1】 本発明の処理概要図である。
【図2】 誤り検出の実験結果である。
【図3】 誤りの検出例である。
【符号の説明】
10 大規模テキストコーパス
11 学習データセット
12aないしe データサブセット
13 学習の収束結果
13’ 学習の非収束結果
14 データに誤りなし
15 データに誤りがあった場合のサブセット抽出過程
16 修正過程
17 再学習過程
18 再学習後の収束結果
19 データに誤りなし
図面
【図1】
0
【図2】
1
【図3】
2