以下、異表記取得装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、編集距離が1または2以上の用語対から、異なる文字の字種に関する素性、用語辞書を用いて取得された素性、2つの用語の類似度のうちの1以上の素性を含む複数の素性を取り出し、当該複数の素性を用いて、用語対が異表記の用語対であるか否かを、教師あり機械学習法により判断する異表記取得装置について説明する。
図1は、本実施の形態における異表記取得装置1のブロック図である。
異表記取得装置1は、用語対格納部11、学習データ格納部12、用語辞書13、受付部14、素性取得部15、機械学習部16、出力部17を備える。素性取得部15は、差分文字取得手段151、素性取得手段152を備える。出力部17は、閾値格納手段171、閾値判断手段172、出力手段173を備える。
用語対格納部11は、編集距離が1または2以上の用語対を1以上格納し得る。編集距離とは、異なる文字の数である。また、用語対とは、2つの用語である。編集距離が2の用語対は、異なる文字数が2つの用語である。なお、用語とは、通常、名詞や名詞句であるが、形容詞等の他の品詞の用語でも良い。
学習データ格納部12は、2以上の学習データを格納し得る。学習データは、用語対の複数の素性と正負情報とを有する。学習データは、用語対を有しても良い。用語対の複数の素性は、ここでは、字種関連素性、辞書関連素性、類似度素性のうちの一以上の素性を含む、とする。なお、素性とは、異表記取得装置1が学習する際に手掛かりとする情報のことである。
字種関連素性とは、用語対の異なる文字である編集箇所の字種に関する素性である。字種関連素性は、例えば、用語対が有する2つの用語の編集箇所の字種が異なり、かつ、2つの用語の編集箇所が同じ値の数字であるか否かを示す情報である。また、字種関連素性は、例えば、用語対が有する2つの用語の文字数が同数であり、かつ、2つの用語の編集箇所の字種が異なり、かつ、2つの用語の編集箇所が同じ値の数字であるか否かを示す情報である。また、字種関連素性は、例えば、用語対が有する2つの用語の編集箇所の字種がローマ字であり、かつ、2つの用語の編集箇所が大文字と小文字の違いであるか否かを示す情報である。また、字種関連素性は、例えば、用語対が有する2つの用語の文字数が同数であり、かつ、2つの用語の編集箇所の字種がローマ字であり、かつ、2つの用語の編集箇所が大文字と小文字の違いであるか否かを示す情報である。
また、辞書関連素性とは、用語辞書13を用いて取得された素性である。辞書関連素性は、例えば、スタッキングアルゴリズムを使用して、機械学習部16が利用する教師あり機械学習法とは異なる分類方法、または同一の分類方法であるが学習データが異なる分類方法により、用語対が異表記の用語対であるか否かを判断した結果である。ここで、「学習データが異なる」とは、学習データの元になる用語対の集合が異なる場合、学習データが有する素性が異なる場合などがある。また、辞書関連素性は、例えば、用語対が有する2つの用語の代表表記が同一であるか否かを示す情報である。また、辞書関連素性は、例えば、用語対が有する2つの用語の読みが一致するか否かを示す情報である。また、辞書関連素性は、例えば、用語対が有する2つの用語の文字数が同数であり、かつ、2つの用語の読みが一致するか否かを示す情報である。なお、分類方法とは、異表記の用語対であるか否かの分類の方法である。また、教師あり機械学習法とは異なる分類方法とは、分類のやり方、アルゴリズムが教師あり機械学習法とは異なることである。
また、類似度素性とは、用語対を構成する2つの用語の類似度を示す素性である。二つの用語の類似度は、それらの用語がWeb上でよく似た文脈に出現するかどうかの情報を利用して求める。なお、用語の類似度を取得する技術は、「風間淳一, De Saeger, Stijn, 鳥澤健太郎, 村田真樹「係り受けの確率的クラスタリングを用いた大規模類似語リストの作成」言語処理学会第15回年次大会(NLP2009)」等に記載されている。つまり、2つの用語の類似度の取得方法は公知技術である。2つの用語の類似度の算出方法は問わない。
また、正負情報とは、用語対が異表記の用語対であるか否かを示す情報である。正負情報は、異表記の用語対であれば正例(例えば「1」)、異表記の用語対でなければ負例(例えば「0」)である。
また、用語辞書とは、異表記の用語の情報を含む情報群である。用語辞書の例やデータ構造の例については後述する。
また、他の素性として、編集箇所の文字または編集箇所の文字の周辺の文字の情報である編集箇所文字素性がある。
用語辞書13は、1以上の用語情報を格納し得る。用語辞書13は、例えば、異表記の用語の情報を含む情報群である。用語辞書13は、異表記の2つの用語が、陽に対応付けられている必要はない。用語情報は、例えば、用語と用語の代表表記とを有する。用語情報は、例えば、用語と、用語の読みとを有する。
受付部14は、ユーザからの入力を受け付ける。この入力とは、例えば、異表記取得装置1を動作させるための動作指示である。受付部14は、異表記であるか否かを判断する対象の用語対を受け付けても良い。動作指示などの入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。受付部14は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
素性取得部15は、用語対格納部11の用語対ごとに、字種関連素性、辞書関連素性、類似度素性のうちの一以上を含む複数の素性を取得する。複数の素性とは、例えば、後述する68の素性である。
素性取得部15は、用語対格納部11の用語対ごとに、用語対が有する2つの用語の編集箇所の字種が異なり、かつ、2つの用語の編集箇所が同じ値の数字であるという条件に合致するか否かを判断し、判断結果を字種関連素性として取得する。なお、素性取得部15は、例えば、用語対「3者会談」「三者会談」に対して、編集箇所が「3」「三」であるので、上記条件に合致する、と判断する。また、素性取得部15は、例えば、用語対「125件」「百二十五件」に対して、編集箇所が「125」「百二十五」であるので、用語の文字数は同数ではないが、上記条件に合致する、と判断する。
素性取得部15は、例えば、用語対格納部11の用語対ごとに、用語対が有する2つの用語の編集箇所の字種がローマ字であり、かつ、2つの用語の編集箇所が大文字と小文字の違いであるという条件に合致するか否かを判断し、判断結果を字種関連素性として取得する。なお、素性取得部15は、例えば、編集箇所が「A」と「a」の用語対に対して合致すると判断し、編集箇所が「A」と「b」の用語対に対して合致しないと判断する。
素性取得部15は、例えば、用語対格納部11の用語対ごとに、機械学習部16が利用する教師あり機械学習法とは異なる分類方法、または同一の分類方法であるが学習データが異なる分類方法により、用語対が異表記の用語対であるか否かを判断し、判断結果を辞書関連素性として取得する。かかる辞書関連素性を利用する機械学習法を、スタッキングアルゴリズムによる方法という。機械学習部16が利用する教師あり機械学習法とは異なる分類方法とは、上記の機械学習法がSVMである場合、SVMとは異なる決定木などの機械学習法、後述するルールに基づく分類方法等である。
スタッキングアルゴリズムは、詳細には、例えば、以下の手順による分類方法である。まず、JUMAN辞書を使って教師データを作成する。つまり、JUMAN辞書の単語の集合から、編集距離が1文字の単語対を取り出す。ここで、編集距離が1文字の単語対は、904612組、取り出せる。そのうち、代表表記が等しい単語対(25934組)を取り出す。次に、JUMAN辞書で、代表表記が等しい単語対を正例、そうでないものを負例とする。以上により、教師データを作成する。
次に、その教師データを学習データとした機械学習を行う。なお、教師データは、上述した教師データに限らず、他の教師データを用いてもよい。また、機械学習の際に利用する素性は、本発明の全素性(S1からS68の素性)のうち、S54の素性を取り除いた素性を利用する。なお、機械学習の際に利用する素性は、他の素性を用いてもよい。
そして、実際に、S54の素性を付与したいデータを、上記学習結果を利用して、分類する。分類結果において正例となったか、負例となったかの情報をS54の素性として、そのデータに付与する。
そして、S54の素性が付与された学習データ(68の素性を有する)を用いて、問題となる用語対に対して、機械学習を行うことで、問題となる用語対が異表記対であるか否かを判断していく。
スタッキングアルゴリズムによる方法では、JUMAN辞書で、代表表記が一致するか否かについて学習した結果を素性として付与できるので、実際にJUMAN辞書に記載されていない用語対に対しても、JUMAN辞書で、代表表記が一致するとされる傾向のある用語対か否かの情報を付与できることとなる。
素性取得部15は、例えば、用語対格納部11の用語対ごとに、用語対が有する2つの用語の代表表記を、用語辞書13から取得し、取得した2つの代表表記が同一であるか否かを判断し、判断結果を辞書関連素性として取得する。
素性取得部15は、例えば、用語対格納部11の用語対ごとに、用語辞書13から2つの用語の読みを取得し、2つの用語の読みが一致するか否かを判断し、判断結果を辞書関連素性として取得する。また、素性取得部15は、例えば、用語対格納部11の用語対ごとに、用語対が有する2つの用語の文字数が同数であり、かつ、用語辞書13から2つの用語の読みを取得し、2つの用語の読みが一致するか否かを判断し、判断結果を辞書関連素性として取得しても良い。
なお、上述した判断結果とは、例えば、上記条件に合致する場合の判断結果は「1」、その他の場合の判断結果は「0」などである。
差分文字取得手段151は、編集距離が2つの用語対について、2つの差分文字の組を、それぞれ取得する。例えば、編集距離が2つの用語対が、(1)「できる」「出来る」(2)「理解できる」「できる」(3)「IX(ローマ数字の9)」「9」である場合を考える。(1)は両方の用語対が同じ文字数である場合である。(2)はどちらか一方の用語の文字数がもう片方の用語の文字数より2つ多いまたは、少ない場合である。(3)はどちらか一方の用語の文字数がもう片方の用語の文字数より1つ多いまたは、少ない場合である。(1)の場合、差分文字取得手段151は、「できる」および「出来る」の用語に対して、前方から後方に1,2,3・・・と文字に番号をつけ、それぞれの用語で同じ文字番号を持ち、違う文字である「で」「出」と「き」「来」が差分文字であるとして、「で」「出」と「き」「来」の2組の差分文字の組を取得する。(2)の場合、差分文字取得手段151は、「理」「」と「解」「」(「」はNULLである)の2組の差分文字の組を取得する。(3)の場合、差分文字取得手段151は、「I」「9」と「X」「」の2組の差分文字、または「I」「」と「X」「9」の2組の差分文字を取得する。
また、差分文字取得手段151は、編集距離が1の用語対について、差分文字の組を1組取得する。例えば、編集距離が1の用語対が、(1)「ご苦労」「御苦労」(2)「Firefox」「FireFox」(3)「肝炎ウイルス」「肝炎ウィルス」(4)「文学史上」「文学史」(5)「咲き分け」「咲分け」(6)「クロゼット」「クローゼット」(7)「大人・子供」「大人子供」(8)「第1位」「第一位」である場合、差分文字取得手段151は、それぞれ(1)「ご」「御」(2)「f」「F」(3)「イ」「ィ」(4)「上」「」(5)「き」「」(6)「」「ー」(7)「・」「」(8)「1」「一」を取得する。
さらに、差分文字取得手段151は、編集距離が3以上の用語対について、3組以上の差分文字の組を取得する。例えば、編集距離が4の用語対が、「1025位」「千二十五位」である場合、差分文字取得手段151は、「1」「千」、「0」「二」、「2」「十」「5」「五」という4組の差分文字を取得する。ここで、差分文字とは、2つの用語の異なる文字である。
素性取得手段152は、差分文字取得手段151が取得した2つの差分文字を、独立に対象として、字種関連素性、辞書関連素性、類似度素性のうちの一以上を含む複数の素性を、2組取得する。例えば、編集距離が2つの用語対が、(1)「できる」「出来る」(2)「理解できる」「できる」(3)「IX」「9」である場合を考える。(1)の用語対について、素性取得手段152は、「で」「出」と「き」「来」の2組の差分文字の組のそれぞれを対象に素性の抽出を行い、それぞれ差分文字から抽出した素性は、別のものと考え、2種類のテストデータを作成する。素性取得手段152は、例えば、用語対が有する2つの用語の編集箇所の字種が異なり、かつ、2つの用語の編集箇所が同じ値の数字であるか否かを示す字種関連素性について、「で」「出」の編集箇所が同じ値の数字でないと判断し、当該字種関連素性「0」を取得する。また、素性取得手段152は、例えば、用語辞書13から2つの用語の読みを取得し、2つの用語の読みが一致するか否かを示す辞書関連素性「1」を取得する。素性取得手段152は、用語辞書13から「出」の読み「で」を取得し、「で」と「出」の読みが一致すると判断する。また、素性取得手段152は、例えば、差分文字「で」「出」に対して、差分文字(編集箇所)の前後の文字という素性について、前の文字の素性「」(なし)、後の文字の素性「き」と「来」を取得する。また素性取得手段152は、例えば、差分文字「き」「来」に対して、差分文字の前後の文字という素性について、前の文字の素性「出」と「で」、後の文字の素性「る」を取得する。かかる処理により、別の差分文字も素性に含めることとなる。
また、(2)の用語対について、素性取得手段152は、(1)と同様に、「理」「」と「解」「」の2組の差分文字の組のそれぞれを対象に素性の抽出を行い、それぞれ差分文字から抽出した素性は、別のものと考え、2種類のテストデータを作成する。
さらに、(3)の用語対について、素性取得手段152は、(1)(2)と同様に、例えば、「I」「9」と「X」「」の2組の差分文字の組のそれぞれを対象に素性の抽出を行い、それぞれ差分文字から抽出した素性は、別のものと考え、2種類のテストデータを作成する。
また、素性取得手段152は、差分文字取得手段151が取得した1組以上の差分文字を用いて、字種関連素性、辞書関連素性、類似度素性のうちの一以上を含む複数の素性を取得する。なお、字種関連素性、辞書関連素性、類似度素性などの素性を取得する具体的な方法は後述する。
機械学習部16は、各用語対に対して、学習データ格納部12の2以上の学習データと、素性取得部15が取得した複数の素性とを用いて、教師あり機械学習法により、用語対格納部11の各用語対が異表記の用語対であるか否かを判断する。
機械学習部16は、用語対格納部11の各用語対が異表記の用語対であるか否かを判断するとともに、異表記の用語対である確度を示すスコアも取得しても良い。
機械学習部16は、素性取得手段152が取得した2組の複数の素性のうちの組ごとに、各組の複数の素性と、学習データ格納部12の2以上の学習データとを用いて、教師あり機械学習法により、用語対格納部11の各組の複数の素性が異表記の用語対に対応する素性の組であるか否かを判断し、2つの判断結果を用いて、編集距離が2である用語対が異表記の用語対であるか否かを判断する。
教師あり機械学習法のアルゴリズムは問わない。教師あり機械学習法とは、例えば、サポートベクターマシン(SVM)などである。SVMは、「http://chasen.org/~taku/software/TinySVM/」「http://ja.wikipedia.org/wiki/%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%83%99%E3%82%AF%E3%82%BF%E3%83%BC%E3%83%9E%E3%82%B7%E3%83%B3」(平成21年12月12日検索)などに記載されている。なお、教師あり機械学習法の詳細は、後述する。
また、上記の、2つの判断結果を用いてとは、2つとも正例とされた場合に異表記の用語対としても良いし、2つとも負例とされた場合に異表記の用語対ではないとしても良いし、2つのスコアのうちのスコアが0に近い方のスコアを採用して、採用したスコアが正の場合は正例(異表記の用語)、負の場合は負例(異表記の用語でない)と判断しても良いし、スコアの絶対値が大きい方のスコアを採用して、採用したスコアが正の場合は正例(異表記の用語)、負の場合は負例(異表記の用語でない)と判断しても良い。また、2つのスコアのうち、小さい方のスコアを取得し、当該小さい方のスコアが正の場合は正例、負の場合は負例と判断しても良い。つまり、2つの判断結果の用い方は問わない。なお、上記の(2)の場合(どちらか一方の用語の文字数がもう片方の用語の文字数より2つ多いまたは、少ない場合)、大規模類似語リストの中から、約1万5千のタグ付けを行った結果、このパターンの2文字差分データには、異表記対であると判定する用語対はなかった。
さらに、2組の差分文字の組(例えば、「I」「9」と「X」「」、または「I」「」と「X」「9」)、つまり2つの問題(問題1、問題2)ができる場合、それぞれの差分文字を対象に素性の抽出を行い、それぞれ差分文字から抽出した素性は、別のものと考え、4種類のテストデータを作成する。そして、2つの問題ごとに、算出したスコアが0に近い方を取得し、問題ごとのスコアのうちの、絶対値が高いスコアを当該問題のスコアとし、スコアが正の場合は正例、負の場合は負例と判断しても良い。例えば、編集距離が2の用語対が(3)「IX」「9」である場合、問題「I」「9」と「X」「」、および「I」「」と「X」ができる。そして、機械学習部16は、「I」「9」と「X」「」のスコアの小さい方を取得し、また、「I」「」と「X」「9」のスコアの小さい方を取得し、2つの取得されたスコアのうち、値が大きい方を「IX」「9」の用語対におけるスコアとする。そして、機械学習部16は、当該スコアが正の場合は正例、負の場合は負例と判断しても良い。なお、例えば、機械学習部16は、「I」「9」と「X」「」のスコアが0に近い方を取得し、また、「I」「」と「X」「9」のスコアが0に近い方を取得し、2つの取得されたスコアのうち、絶対値が大きい方を「IX」「9」の用語対におけるスコアとしても良い。つまり、4種類のテストデータの判断結果を如何に用いてスコアを算出するかは問わない。
出力部17は、機械学習部16における判断結果を出力する。また、出力部17は、機械学習部16が取得したスコアを出力しても良い。判断結果とは、各用語対が異表記の用語対であるか否かを示す情報、または異表記の1以上の用語対、または異表記でない1以上の用語対などである。また、出力部17は、判断結果とスコアの両方を出力しても良いし、一方を出力しても良い。
また、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
閾値格納手段171は、スコアの閾値を格納している。
閾値判断手段172は、機械学習部16が取得したスコアが閾値以上または閾値より大きいか否かを判断する。
出力手段173は、閾値判断手段172が閾値以上または閾値より大きいと判断したスコアに対応する用語対を、異表記の用語対であるとの判断結果とし、判断結果または異表記の用語対または異表記でない用語対のいずれか1以上を出力する。
用語対格納部11、学習データ格納部12、用語辞書13、および閾値格納手段171は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
用語対格納部11、学習データ格納部12、および用語辞書13に格納されている情報が記憶される過程は問わない。
素性取得部15、機械学習部16、閾値判断手段172は、通常、MPUやメモリ等から実現され得る。素性取得部15等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力部17は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部17は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、異表記取得装置1の動作について図2のフローチャートを用いて説明する。ここでは、異表記取得装置1は、編集距離が1の用語対に対して、異表記の用語対であるか否かを判断することとする。
(ステップS201)受付部14は、動作開始の指示を受け付けたか否かを判断する。指示を受け付ければステップS202に行き、受け付けなければステップS201に戻る。
(ステップS202)素性取得部15は、カウンタiに1を代入する。
(ステップS203)素性取得部15は、i番目の用語対が用語対格納部11に存在するか否かを判断する。i番目の用語対が存在すればステップS204に行き、存在しなければ処理を終了する。
(ステップS204)素性取得部15は、用語対格納部11から、i番目の用語対を読み出す。
(ステップS205)素性取得部15は、i番目の用語対の素性を取得する処理を行う。素性取得処理について、図3のフローチャートを用いて説明する。
(ステップS206)機械学習部16は、ステップS205で取得された複数の素性と、学習データ格納部12の2以上の学習データとを用いて、教師あり機械学習を行い、スコアを取得する。
(ステップS207)出力部17は、ステップS206で取得されたスコアを用いて、i番目の用語対は異表記の用語対であるか否かを判断する。例えば、出力部17を構成する閾値判断手段172は、閾値格納手段171から閾値を読み出し、ステップS206で取得されたスコアが閾値より大きいまたは閾値以上であれば、i番目の用語対は異表記の用語対であると判断し、スコアが閾値以下または閾値より小さい場合は、i番目の用語対は異表記の用語対でない、と判断する。
(ステップS208)出力部17は、ステップS208での判断結果が、異表記の用語対であればステップS209に行き、異表記の用語対でなければステップS210に行く。
(ステップS209)出力部17は、i番目の用語対を異表記の用語対であるとして出力する。
(ステップS210)素性取得部15は、カウンタiを1,インクリメントする。ステップS203に戻る。
次に、ステップS205の素性取得処理について、図3のフローチャートを用いて説明する。
(ステップS301)素性取得部15を構成する差分文字取得手段151は、2つの用語の編集箇所を取得する。
(ステップS302)素性取得部15の素性取得手段152は、ステップS301で取得された編集箇所を用いて、字種関連素性を取得する。字種関連素性の具体的な取得方法については後述する。
(ステップS303)素性取得手段152は、用語辞書13を用いて、辞書関連素性を取得する。辞書関連素性の具体的な取得方法については後述する。
(ステップS304)素性取得手段152は、2つの用語の類似度を取得する。この類似度は、類似度素性である。
(ステップS305)素性取得手段152は、その他、予め決められた素性を取得する。その他の予め決められた素性の例は、後述する。
(ステップS306)素性取得手段152は、スタッキングアルゴリズムを使用して、ステップS302からステップS305において取得した複数の素性を用いて、ステップS206における教師あり機械学習法とは異なる分類方法により、用語対が異表記の用語対であるか否かを判断し、その判断結果を取得する。
以下、本実施の形態における異表記取得装置1の具体的な動作について説明する。
今、用語辞書13は、例えば、図4に示すような構造を有する、とする。図4において、一用語の情報は、一レコードになっている。各レコードは、「用語」「読み」「品詞」「代表表記」「カテゴリ」「ドメイン」の属性値を有する。用語辞書13は、例えば、JUMAN辞書(「http://nlp.kuee.kyoto-u.ac.jp/nl-resource/juman.html」参照[平成21年12月13日検索])である。また、用語辞書13は、例えば、日本語ワードネット辞書(http://nlpwww.nict.go.jp/wn-ja/index.ja.html参照[平成21年12月13日検索])や、異体字辞書や、EDR電子化辞書(http://www2.nict.go.jp/r/r312/EDR/J_index.html参照[平成21年12月13日検索])である。なお、異体字辞書とは、異体字の対を有する辞書である。異体字とは、読み方や用い方が同じでも字形に異なる部分のある字体のことである。旧字体と新字体がある漢字などに多く見られ、例えば「沢」と「澤」は異体字の関係にある。なお、異体字辞書は、異体字ではないが、異体字のように代替可能な漢字の対を有しても良い。さらに、用語辞書13は、異体字辞書とは別に、異体字のように代替可能な漢字の対を有する辞書を有しても良い。
また、学習データ格納部12に格納されている学習データが有する複数の素性、および素性取得部15が取得する複数の素性は、ここでは、68種類である、とする。以下に、68の素性(S1からS68)について説明する。また、以下、用語対の具体例として、用語対「ショウウインドウ」「ショーウインドウ」を用いて、素性を例示する。
S1は、「一つ目の表記の編集箇所」であり、上記具体例では、「ウ」である。素性S1を取得する場合、差分文字取得手段151は、用語対の構成する2つの用語を1文字ずつずらしながら文字を比較し、編集箇所を得る。例えば、差分文字取得手段151は、「ショウウインドウ」の1文字目「シ」と、「ショーウインドウ」の1文字目「シ」とから比較し、同一と判断し、2文字目も同一と判断し、3文字目「ウ」と「ー」とが異なると判断し、一つ目の表記の編集箇所「ウ」と二つ目の表記の編集箇所「ー」とを取得する。
S2は、「二つ目の表記の編集箇所」であり、上記具体例では、「ー」である。一つ目の表記とは用語対を構成する一つ目の用語(例えば、「ショウウインドウ」)であり、二つ目の表記とは用語対を構成する二つ目の用語(例えば、「ショーウインドウ」)である。
S3は「編集箇所の前方の1文字」であり、上記具体例では、「ョ」である。
S4は「編集箇所の後方の1文字」であり、上記具体例では、「ウ」である。
S5は、「編集箇所の前方の連続する2文字」であり、上記具体例では、「ショ」である。
S6は、「編集箇所の前方の連続する3文字」であり、上記具体例では、「ショ」である。
S7は、「編集箇所の前方2文字目の文字」であり、上記具体例では、「シ」である。
S8は「編集箇所の前方3文字目の文字」であり、上記具体例では、「(del)」である。(del)とは、文字が無いことを示す。
S9は「編集箇所の後方の2文字」であり、上記具体例では、「ウイ」である。
S10は「編集箇所の後方の3文字」であり、上記具体例では、「ウイン」である。
S11は「編集箇所の後方2文字目の文字」であり、上記具体例では、「イ」である。
S12は「編集箇所の後方3文字目の文字」であり、上記具体例では、「ン」である。
S13は「'S1の情報−S2の情報'とした文字列」であり、上記具体例では、「ウ−ー」である。
S14は「'S3の情報−S13の情報'とした文字列」であり、上記具体例では、「ョ−ウ−ー」である。
S15は「'S5の情報−S13の情報'とした文字列」であり、上記具体例では、「ショ−ウ−ー」である。
S16は「'S6の情報−S13の情報'とした文字列」であり、上記具体例では、「ショ−ウ−ー」である。
S17は「'S13の情報−S4の情報'」であり、上記具体例では、「ウ−ー−ウ」である。
S18は「'S3の情報−S13の情報−S4の情報'」であり、上記具体例では、「ョ−ウ−ー−ウ」である。
S19は「'S5の情報−S13の情報−S4の情報'とした文字列」であり、上記具体例では、「ショ−ウ−ー−ウ」である。
S20は「'S6の情報−S13の情報−S4の情報'とした文字列」であり、上記具体例では、「ショ−ウ−ー−ウ」である。
S21は「'S13の情報−S7の情報'とした文字列」であり、上記具体例では、「ウ−ー−シ」である。
S22は「'S3の情報−S13の情報−S7の情報'とした文字列」であり、上記具体例では、「ョ−ウ−ー−シ」である。
S23は「'S5の情報−S13の情報−S7の情報'とした文字列」であり、上記具体例では、「ショ−ウ−ー−シ」である。
S24は「'S6の情報−S13の情報−S7の情報'とした文字列」であり、上記具体例では、「ショ−ウ−ー−シ」である。
S25は「'S13の情報−S8の情報'とした文字列」であり、上記具体例では、「ウ−ー−(del)」である。
S26は「'S3の情報−S13の情報−S8の情報'とした文字列」であり、上記具体例では、「ョ−ウ−ー−(del)」である。
S27は「'S5の情報−S13の情報−S8の情報'とした文字列」であり、上記具体例では、「ショ−ウ−ー−(del)」である。
S28は「'S6 の情報−S13の情報−S8の情報'とした文字列」であり、上記具体例では、「ショ−ウ−ー−(del)」である。なお、2つの用語が与えられ、編集箇所が判断できれば、単なる文字列の処理(操作)により、素性取得手段152は、S3からS28の素性を取得できる。
S29は「S1の字種」であり、上記具体例では、「カタカナ」である。文字を与えられた場合、当該文字の字種(漢字、ひらがな、かたかな、アルファベット等)を取得する技術は公知技術である。
S30は「S2の字種」であり、上記具体例では、「カタカナ」である。
S31は「S3の字種」であり、上記具体例では、「カタカナ」である。
S32は「S4の字種」であり、上記具体例では、「カタカナ」である。
S33は「S13の字種」であり、上記具体例では、「カタカナ」である。
S34は「S14の字種」であり、上記具体例では、「カタカナ」である。
S35は「S17の字種」であり、上記具体例では、「カタカナ」である。
S36は「S18の字種」であり、上記具体例では、「カタカナ」である。
S37は「S1の品詞」であり、上記具体例では、「名詞」である。ここで、文字の品詞は、その文字(ここではS1)が属している用語の品詞である。例えば、用語に対して、形態素解析をかけ、用語を単語に区切り、品詞情報を取得する。そして、文字の品詞は、当該取得した品詞情報が示す品詞である。
S38は「S2の品詞」であり、上記具体例では、「名詞」である。
S39は「S3の品詞」であり、上記具体例では、「名詞」である。
S40は「S4の品詞」であり、上記具体例では、「名詞」である。
S41は「S13の品詞」であり、上記具体例では、「名詞」である。
S42は「S14の品詞」であり、上記具体例では、「名詞」である。
S43は「S17の品詞」であり、上記具体例では、「名詞」である。
S44は「S18の品詞」であり、上記具体例では、「名詞」である。
S45は「S1の品詞と位置情報」であり、上記具体例では、「名詞,3」である。ここで「3」は、3文字目であることを示す。
S46は「S2の品詞と位置情報」であり、上記具体例では、「名詞,3」である。
S47は「S3の品詞と位置情報」であり、上記具体例では、「名詞,2」である。
S48は「S4の品詞と位置情報」であり、上記具体例では、「名詞,4」である。
S49は「S13の品詞と位置情報」であり、上記具体例では、「名詞,3」である。
S50は「S14の品詞と位置情報」であり、上記具体例では、「名詞,2」である。
S51は「S17の品詞と位置情報」であり、上記具体例では、「名詞,6」である。
S52は「S18の品詞と位置情報」であり、上記具体例では、「名詞,3」である。
S53は「日本語用語対の類似度」であり、上記具体例では、例えば、0.9である。
S54は「スタッキングアルゴリズムを使用して、日本語用語対のJUMAN辞書の代表表記が一致するかどうか」を示す情報であり、上記具体例では、「1」である。つまり、ここでは、機械学習部16が利用する教師あり機械学習法とは異なる分類方法は、用語対を構成する2つの用語の、JUMAN辞書における代表表記が一致するか否かにより分類する以下の方法である。まず、JUMAN辞書の単語の集合から、編集距離が1文字の単語対を取り出す。ここで、編集距離が1文字の単語対は、904612組、取り出せる。そのうち、代表表記が等しい単語対(25934組)を取り出す。次に、JUMAN辞書で、代表表記が等しい単語対を正例、そうでないものを負例とする。以上により、教師データを作成する。次に、その教師データを学習データとした機械学習を行う。なお、教師データは、上述した教師データに限らず、他の教師データを用いてもよい。また、機械学習の際に利用する素性は、本発明の全素性(S1からS68の素性)のうち、S54の素性を取り除いた素性を利用する。なお、機械学習の際に利用する素性は、他の素性を用いてもよい。そして、実際に、S54の素性を付与したいデータを、上記学習結果を利用して、分類する。分類結果において正例となったか、負例となったかの情報をS54の素性として、そのデータに付与する。スタッキングアルゴリズムによる方法では、JUMAN辞書で、代表表記が一致するか否かについて学習した結果を素性として付与できるので、実際にJUMAN辞書に記載されていない用語対に対しても、JUMAN辞書で、代表表記が一致するとされる傾向のある用語対か否かの情報を付与できることとなる。
S55は「日本語用語対の文字数が同数で編集箇所が両方とも数字の場合であり、同じ値か違う値かどうか」であり、上記具体例では、「0」である。なお、「2次キャッシュ」と「二次キャッシュ」の用語対の場合、「一週間あたり」「1週間あたり」の用語対の場合は、S55の素性は「1」となる。なお、文字数が同数である条件をはずし、S55は、「日本語用語対の編集箇所が両方とも数字の場合であり、同じ値か違う値かどうか」が好適である。
S56は「日本語用語対の文字数が同数で編集箇所が両方ともひらがなの場合であり、同じ音声か違う音声かどうか」であり、上記具体例では、「0」である。なお、「おかぁちゃん」「おかあちゃん」の用語対の場合は、S56の素性は「1」となる。なお、文字数が同数である条件をはずし、S56は、「日本語用語対の編集箇所が両方ともひらがなの場合であり、同じ音声か違う音声かどうか」が好適である。
S57は「日本語用語対の文字数が同数で編集箇所が両方ともカタカナの場合であり、同じ音声か違う音声かどうか」であり、上記具体例では、「1」である。なお、「オリーブ・オイル」「オリーヴ・オイル」の用語対の場合、「ウインドウ」「ウィンドウ」の用語対の場合も、S57の素性は「1」となる。なお、文字数が同数である条件をはずし、S57は、「日本語用語対の編集箇所が両方ともカタカナの場合であり、同じ音声か違う音声かどうか」が好適である。
S58は「日本語用語対の文字数が同数で編集箇所が両方ともローマ字の場合であり、大文字と小文字の違いだけかどうか」であり、上記具体例では、「0」である。なお、「300kbps」「300Kbps」の用語対の場合、「Windows上」「windows上」の用語対の場合は、S58の素性は「1」となる。なお、文字数が同数である条件をはずし、S58は、「日本語用語対の編集箇所が両方ともローマ字の場合であり、大文字と小文字の違いだけかどうか」が好適である。また、「Windows」は登録商標です。
S59は「日本語用語対の文字数が同数で一方の編集箇所に濁点をつけるともう一方の編集箇所になるかどうか」であり、上記具体例では、「0」である。なお、「触れるくらい」「触れるぐらい」の用語対の場合、「飲むぐらい」「飲むくらい」の用語対の場合は、S59の素性は「1」となる。なお、S59は、文字数が同数である条件をはずし、「日本語用語対の一方の編集箇所に濁点をつけるともう一方の編集箇所になるかどうか」が好適である。
S60は「日本語用語対の文字数が同数で一方の編集箇所に半濁点をつけるともう一方の編集箇所になるかどうか」であり、上記具体例では、「0」である。なお、S60は、文字数が同数である条件をはずし、「日本語用語対の一方の編集箇所に半濁点をつけるともう一方の編集箇所になるかどうか」が好適である。
S61は「編集箇所が日本語用語対の一方にしかなく、その編集箇所が'化'、'系'、'類'、'型'、'形'、'氏'、'ー'、'・'かどうか」であり、上記具体例では、「0」である。なお、「サーバ」「サーバー」の用語対の場合、「ハンセン病患者」「ハンセン氏病患者」の用語対の場合、「日本語パッチ」「日本語化パッチ」の用語対の場合、「30種類ほど」「30種ほど」の用語対の場合は、S61の素性は「1」となる。
S62は「編集箇所が日本語用語対の一方にしかなく、その編集箇所の用語が日本語用語対の最後の文字と一致するかどうか」であり、上記具体例では、「0」である。なお、「妊娠・授乳中」「妊娠中・授乳中」の用語対の場合、「国産・輸入車」「国産車・輸入車」の用語対の場合は、S62の素性は「1」となる。
S63は「編集箇所が日本語用語対の一方にしかなく、その編集箇所が桁数をあらわす用語かどうか(例えば、"千""万"など)」であり、上記具体例では、「0」である。なお、「2万5000人」「25000人」の用語対の場合、「1万6500円」「16500円」の用語対の場合は、S63の素性は「1」となる。
S64は「日本語用語対のJUMAN辞書の定義されている代表表記が一致するかどうか」であり、上記具体例(用語対「ショウウインドウ」「ショーウインドウ」)では、例えば、「1」である。なお、素性取得手段152は、用語対を構成する各用語の代表表記を、用語辞書13から取得し、比較することにより、素性を取得する。
S65は「日本語用語対が日本語ワードネット辞書に類義語対として定義されているかどうか」であり、上記具体例(用語対「ショウウインドウ」「ショーウインドウ」)では、例えば、「1」である。素性取得手段152は、用語対を構成する各用語をキーとして、日本語ワードネット辞書を検索し、類義語対として定義されているか否かを判断する。本処理は、通常の検索処理である。
S66は「日本語用語対の編集箇所が異体字辞書に異体字として定義されているかどうか」であり、上記具体例(用語対「ショウウインドウ」「ショーウインドウ」)では、例えば、「0」である。異体字辞書は、2つの異体字の対の情報を有する。
S67は「日本語用語対の文字数が同数で編集箇所が漢字とひらがなの場合であり、JUMAN辞書の読みが一致するかどうか」であり、上記具体例(用語対「ショウウインドウ」「ショーウインドウ」)では、「0」である。
S68は「日本語用語対の文字数が同数で編集箇所が両方とも漢字の場合であり、JUMAN辞書の読みが一致するかどうか」であり、上記具体例(用語対「ショウウインドウ」「ショーウインドウ」)では、「0」である。
また、上記の68の素性は、上述したように、字種関連素性、辞書関連素性、類似度素性、編集箇所文字素性などが含まれる。
また、上記の68の素性をグループ化すると、例えば、以下のG1からG7のグループに分かれる、と考えられる。
G1は、S1からS52の素性であり、編集箇所とその周辺の文字列に関する情報である編集箇所文字素性である。
G2は、S53の素性であり、類似度素性である。
G3は、S54の素性であり、スタッキングアルゴリズムを使用した情報である素性である。
G4は、S55からS60の素性であり、編集箇所に関する情報である編集箇所関連素性である。
G5は、S61からS63の素性であり、用語対のパターンに関する情報である用語対パターン素性である。
G6は、S64からS66の素性であり、種々の辞書による情報である辞書関連素性である。
G7は、S67からS68の素性であり、読みに関する情報である読み関連素性である。
そして、まず、異表記取得装置1において、予め正しい異表記の用語対のデータ(正例)を人手で構築しておき、正例の用語対と、正例であることを示す正負情報(例えば、「1」)とを対応付けて、学習データ格納部12に格納しておく。また、異表記取得装置1において、予め異表記でない用語対のデータ(負例)を人手で構築しておき、負例の用語対と、負例であることを示す正負情報(例えば、「0」)とを対応付けて、学習データ格納部12に格納しておく。
次に、異表記取得装置1の素性取得部15により、各用語対の、上述した68の素性を取得し、正負情報または用語対と対応付けて、68の素性を学習データ格納部12に蓄積する。
以上の処理により、学習データ格納部12の学習データが構築された。
次に、異表記の用語対であるか否かを判断したい1以上の用語対を用語対格納部11に格納する。
そして、ユーザは、異表記取得装置1に、動作開始の指示を入力する。すると、受付部14は、動作開始の指示を受け付ける。
次に、用語対格納部11に格納されている用語対を順に、以下のように処理する。つまり、素性取得部15は、各用語対の素性を取得する処理を行う。かかる素性取得処理については説明済みである。
次に、機械学習部16は、取得された68の素性と、学習データ格納部12の学習データとを用いて、教師あり機械学習を行い、スコアを取得する。
次に、出力部17は、取得された各用語対のスコアを用いて、各用語対は異表記の用語対であるか否かを判断する。
次に、出力部17は、異表記の用語対であると判断した用語対のみ出力する。ここで、出力とは、たとえば、予め決められた記憶媒体への蓄積である。
(機械学習について)
以下、機械学習部16が行う機械学習、および機械学習部16が行う教師あり機械学習法とは異なる分類方法(スタッキングアルゴリズムで利用)について説明する。
まず、機械学習法とは、問題-解の組のセットを多く用意し、それで学習を行ない、どういう問題のときにどういう解になるかを学習し、その学習結果を利用して、新しい問題のときも解を推測できるようにする方法である(例えば、非特許文献2〜非特許文献4参照)。
どういう問題のときにどういう解になるかという、問題の状況を機械に伝える際に、素性(解析に用いる情報で問題を構成する各要素)が必要になる。問題を素性によって表現するのである。
すなわち、機械学習の手法は、素性の集合-解の組のセットを多く用意し、それで学習を行ない、どういう素性の集合のときにどういう解になるかを学習し、その学習結果を利用して、新しい問題のときもその問題から素性の集合を取り出し、その素性の場合の解を推測する方法である。
機械学習の手法として、例えば、k近傍法、シンプルベイズ法、決定リスト法、最大エントロピー法、サポートベクトルマシン法などの手法を用いることができる。
k近傍法は、最も類似する一つの事例のかわりに、最も類似するk個の事例を用いて、このk個の事例での多数決によって分類先(解)を求める手法である。kは、あらかじめ定める整数の数字であって、一般的に、1から9の間の奇数を用いる。
シンプルベイズ法は、ベイズの定理にもとづいて各分類になる確率を推定し、その確率値が最も大きい分類を求める分類先とする方法である。
シンプルベイズ法において、文脈bで分類aを出力する確率は、以下の数式1で与えられる。
ただし、ここで文脈bは、あらかじめ設定しておいた素性fj(∈F,1≦j≦k)の集合である。p(b)は、文脈bの出現確率である。ここで、分類aに非依存であって定数のために計算しない。P(a)(ここでPはpの上部にチルダ)とP(fi|a)は、それぞれ教師データ(判断情報と同意義)から推定された確率であって、分類aの出現確率、分類aのときに素性fiを持つ確率を意味する。P(fi|a)として最尤推定を行って求めた値を用いると、しばしば値がゼロとなり、数式2の2行目の式の値がゼロで分類先を決定することが困難な場合が生じる。そのため、スームージングを行う。ここでは、以下の数式2を用いてスームージングを行ったものを用いる。
ただし、freq(fi,a)は、素性fiを持ちかつ分類がaである事例の個数、freq(a)は、分類がaである事例の個数を意味する。
決定リスト法は、素性と分類先の組とを規則とし、それらをあらかじめ定めた優先順序でリストに蓄えおき、検出する対象となる入力が与えられたときに、リストで優先順位の高いところから入力のデータと規則の素性とを比較し、素性が一致した規則の分類先をその入力の分類先とする方法である。
決定リスト方法では、あらかじめ設定しておいた素性fj(∈F,1≦j≦k)のうち、いずれか一つの素性のみを文脈として各分類の確率値を求める。ある文脈bで分類aを出力する確率は以下の数式3によって与えられる。
ただし、fmaxは以下の数式4によって与えられる。
また、P(ai|fj)(ここでPはpの上部にチルダ)は、素性fjを文脈に持つ場合の分類aiの出現の割合である。
最大エントロピー法は、あらかじめ設定しておいた素性fj(1≦j≦k)の集合をFとするとき、以下の所定の条件式(数式5)を満足しながらエントロピーを意味する式(数式6)を最大にするときの確率分布p(a,b)を求め、その確率分布にしたがって求まる各分類の確率のうち、最も大きい確率値を持つ分類を求める分類先とする方法である。
ただし、A、Bは分類と文脈の集合を意味し、gj(a,b)は文脈bに素性fjがあって、なおかつ分類がaの場合1となり、それ以外で0となる関数を意味する。また、P(ai|fj)(ここでPはpの上部にチルダ)は、既知データでの(a,b)の出現の割合を意味する。
数式5は、確率pと出力と素性の組の出現を意味する関数gをかけることで出力と素性の組の頻度の期待値を求めることになっており、右辺の既知データにおける期待値と、左辺の求める確率分布に基づいて計算される期待値が等しいことを制約として、エントロピー最大化(確率分布の平滑化)を行なって、出力と文脈の確率分布を求めるものとなっている。最大エントロピー法の詳細については、以下の参考文献(1)および参考文献(2)に記載されている。
参考文献(1):Eric Sven Ristad, Maximum Entropy Modeling for Natural Language,(ACL/EACL Tutorial Program, Madrid, 1997
参考文献(2):Eric Sven Ristad, Maximum Entropy Modeling Toolkit, Release1.6beta, (http://www.mnemonic.com/software/memt,1998) )
サポートベクトルマシン法は、空間を超平面で分割することにより、二つの分類からなるデータを分類する手法である。
図5にサポートベクトルマシン法のマージン最大化の概念を示す。図5において、白丸は正例、黒丸は負例を意味し、実線は空間を分割する超平面を意味し、破線はマージン領域の境界を表す面を意味する。図5(A)は、正例と負例の間隔が狭い場合(スモールマージン)の概念図、図5(B)は、正例と負例の間隔が広い場合(ラージマージン)の概念図である。
このとき、二つの分類が正例と負例からなるものとすると、学習データにおける正例と負例の間隔(マージン)が大きいものほどオープンデータで誤った分類をする可能性が低いと考えられ、図5(B)に示すように、このマージンを最大にする超平面を求めそれを用いて分類を行なう。
基本的には上記のとおりであるが、通常、学習データにおいてマージンの内部領域に少数の事例が含まれてもよいとする手法の拡張や、超平面の線形の部分を非線型にする拡張(カーネル関数の導入)がなされたものが用いられる。
この拡張された方法は、以下の識別関数(f(x))を用いて分類することと等価であり、その識別関数の出力値が正か負かによって二つの分類を判別することができる。
ただし、xは識別したい事例の文脈(素性の集合)を、xiとyj(i=1,…,l,yj∈{1,−1})は学習データの文脈と分類先を意味し、関数sgnは、
sgn(x)=1(x≧0)
−1(otherwise)
であり、また、各αiは数式8の式(8−2)と式(8−3)の制約のもと、式(8−1)を最大にする場合のものである。
また、関数Kはカーネル関数と呼ばれ、様々なものが用いられるが、本形態では、例えば、以下の多項式(数式9)のものを用いる。
数式8、数式9において、C、dは実験的に設定される定数である。例えば、Cはすべての処理を通して1に固定した。また、dは、1と2の二種類を試している。ここで、αi>0となるxiは、サポートベクトルと呼ばれ、通常、数式7の和をとっている部分は、この事例のみを用いて計算される。つまり、実際の解析には学習データのうちサポートベクトルと呼ばれる事例のみしか用いられない。
なお、拡張されたサポートベクトルマシン法の詳細については、以下の参考文献(3)および参考文献(4)に記載されている。
参考文献(3):Nello Cristianini and John Shawe-Taylor, An Introduction to Support Vector Machines and other kernel-based learning methods,(Cambridge University Press,2000)
参考文献(4):Taku Kudoh, Tinysvm:Support Vector machines,(http://cl.aistnara.ac.jp/taku-ku//software/Tiny SVM/index.html,2000)
サポートベクトルマシン法は、分類の数が2個のデータを扱うものである。したがって、分類の数が3個以上の事例を扱う場合には、通常、これにペアワイズ法またはワンVSレスト法などの手法を組み合わせて用いることになる。
ペアワイズ法は、n個の分類を持つデータの場合に、異なる二つの分類先のあらゆるペア(n(n−1)/2個)を生成し、各ペアごとにどちらがよいかを二値分類器、すなわちサポートベクトルマシン法処理モジュールで求めて、最終的に、n(n−1)/2個の二値分類による分類先の多数決によって、分類先を求める方法である。
ワンVSレスト法は、例えば、a、b、cという三つの分類先があるときは、分類先aとその他、分類先bとその他、分類先cとその他、という三つの組を生成し、それぞれの組についてサポートベクトルマシン法で学習処理する。そして、学習結果による推定処理において、その三つの組のサポートベクトルマシンの学習結果を利用する。推定するべき問題が、その三つのサポートベクトルマシンではどのように推定されるかを見て、その三つのサポートベクトルマシンのうち、その他でないほうの分類先であって、かつサポートベクトルマシンの分離平面から最も離れた場合のものの分類先を求める解とする方法である。例えば、ある解くべき問題が、「分類先aとその他」の組の学習処理で作成したサポートベクトルマシンにおいて分離平面から最も離れた場合には、その解くべき問題の分類先は、aと推定する。
機械学習部16が推定する、解くべき問題についての、どのような解(分類先)になりやすいかの度合いの求め方は、機械学習部16が機械学習の手法として用いる様々な方法によって異なる。
例えば、本発明の実施の形態において、機械学習部16が、機械学習の手法としてk近傍法を用いる場合、機械学習部16は、教師データの事例同士で、その事例から抽出された素性の集合のうち重複する素性の割合(同じ素性をいくつ持っているかの割合)にもとづく事例同士の類似度を定義して、前記定義した類似度と事例とを学習結果情報として学習データ格納部12に記憶しておく。
そして、機械学習部16は、素性取得部15によって解くべき問題の素性が抽出されたときに、記憶された類似度と事例を参照して、素性取得部15によって抽出された解くべき問題の素性について、その解くべき問題の素性の類似度が高い順にk個の事例を選択し、選択したk個の事例での多数決によって決まった分類先を、解くべき問題の分類先(解)として推定する。すなわち、機械学習部16では、解くべき問題についての、どのような解(分類先)になりやすいかの度合いを、選択したk個の事例での多数決の票数とする。
また、機械学習手法として、シンプルベイズ法を用いる場合には、教師データの事例について、前記事例の解と素性の集合との組を学習データとして学習データ格納部12に記憶する。そして、機械学習部16は、素性取得部15によって解くべき問題の素性が抽出されたときに、学習データ格納部12の判断情報の解と素性の集合との組をもとに、ベイズの定理にもとづいて素性取得部15で取得した解くべき問題の素性の集合の場合の各分類になる確率を算出して、その確率の値が最も大きい分類を、その解くべき問題の素性の分類(解)と推定する。すなわち、機械学習部16では、解くべき問題の素性の集合の場合にある解となりやすさの度合いを、各分類になる確率とする。
また、機械学習手法として決定リスト法を用いる場合には、教師データの事例について、素性と分類先との規則を所定の優先順序で並べたリストを、予め、何らかの手段により、学習データ格納部12に記憶させる。そして、素性取得部15によって解くべき問題の素性が抽出されたときに、機械学習部16は、学習データ格納部12のリストの優先順位の高い順に、抽出された解くべき問題の素性と規則の素性とを比較し、素性が一致した規則の分類先をその解くべき問題の分類先(解)として推定する。
また、機械学習手法として最大エントロピー法を使用する場合には、教師データの事例から解となりうる分類を特定し、所定の条件式を満足し、かつエントロピーを示す式を最大にするときの素性の集合と解となりうる分類の二項からなる確率分布を求めて、学習データ格納部12に記憶する。そして、素性取得部15によって解くべき問題の素性が抽出されたときに、機械学習部16は、学習データ格納部12の確率分布を利用して、抽出された解くべき問題の素性の集合についてその解となりうる分類の確率を求めて、最も大きい確率値を持つ解となりうる分類を特定し、その特定した分類をその解くべき問題の解と推定する。すなわち、機械学習部16では、解くべき問題の素性の集合の場合にある解となりやすさの度合いを、各分類になる確率とする。
また、機械学習手法としてサポートベクトルマシン法を使用する場合には、教師データの事例から解となりうる分類を特定し、分類を正例と負例に分割して、カーネル関数を用いた所定の実行関数にしたがって事例の素性の集合を次元とする空間上で、その事例の正例と負例の間隔を最大にし、かつ正例と負例を超平面で分割する超平面を求めて学習データ格納部12に記憶する。そして、素性取得部15によって解くべき問題の素性が抽出されたときに、機械学習部16は、学習データ格納部12の超平面を利用して、解くべき問題の素性の集合が超平面で分割された空間において正例側か負例側のどちらにあるかを特定し、その特定された結果にもとづいて定まる分類を、その解くべき問題の解と推定する。すなわち、機械学習部16では、解くべき問題の素性の集合の場合にある解となりやすさの度合いを、分離平面からのその解くべき問題の事例への距離の大きさとする。
(実験結果1)
以下、異表記取得装置1の実験結果について説明する。まず、実験に利用するデータについて説明する。
実験で用いるデータは、大規模類似語リストである。大規模類似語リストとは、検索エンジン研究基盤TSUBAKI(http://tsubaki.ixnlp.nii.ac.jp/se/index.cgi参照[平成21年12月13日検索])の約1億ページ・60億文のデータから100万語を抽出し、その100万語の各々の語に対して最大500個の類義語を類似度付きで生成したものである。この大規模類似語リストに含まれる100万語の日本語用語と、その日本語用語の各々の類義語の日本語用語を日本語用語対とする。
そして、大規模類似語リストから、編集距離が1の日本語用語対をランダムに14185組取り出した。その取り出した日本語用語対が日本語異表記対であるか、日本語異表記対でないかのタグ付けを3人の評定者の多数決により行った。3人の評定者のタグ付けがどれくらい一致しているのか、カッパ統計量Kを用いて判定する。
右の用語と左の用語の2つの用語を有する日本語用語対の組み合わせが左にあるか、右にあるかにより、異なる情報になる素性がある。その素性に対応し、情報量を増やすために、日本語用語対の組み合わせを左右入れ替えたデータも用いる。つまり、本実験では、大規模類似リストから取り出した14185組に加え、合計28370組の実験データを用いる。
また、28370組の実験データを1つのまとまったデータであるとすると、実験の公正性が失われるのではないかと考え、28470組ある実験データの半分を素性の考案を行うデータとして用いる。残り半分の実験データをクローズドデータで考案された素性が、他のデータにおいても有効であるかどうかの検討を行うデータとして用いる。素性の考案を行うデータをクローズドデータと呼ぶ。検討を行うデータをオープンデータと呼ぶ。クローズドデータは10分割クロスバリデーションによる学習により精度の測定を行う。なお、10分割クロスバリデーションとは、実験対象のデータを、第一から第十の10に分割し、以下の(1)から(10)の学習を行う。(1)第一をテストデータとし、第二から第十を学習データとして、学習を行う。(2)第二をテストデータとし、第一、第三から第十を学習データとして、学習を行う。(3)第三をテストデータとし、第一、第二、第四から第十を学習データとして、学習を行う。(4)第四をテストデータとし、他を学習データとして、学習を行う。(5)第五をテストデータとし、他を学習データとして、学習を行う。(6)第六をテストデータとし、他を学習データとして、学習を行う。(7)第七をテストデータとし、他を学習データとして、学習を行う。(8)第八をテストデータとし、他を学習データとして、学習を行う。(9)第九をテストデータとし、他を学習データとして、学習を行う。(10)第十をテストデータとし、他を学習データとして、学習を行う。なお、10分割クロスバリデーションは、公知技術である。
また、クローズドデータを学習データ(学習データ格納部12に格納されるデータ)、オープンデータをテストデータ(異表記の用語対であるか否かを判断されるデータ)とし、オープンクローズによる学習により精度の測定を行う。
図6に、実験で用いた編集距離が1の日本語用語対の中に、多数決により日本語異表記対であるか日本語異表記対でないかを判定した内訳を示す。
なお、カッパ統計量Kとは、K人評定者のカテゴリ評定における一致度を表す数値のことである。カッパ統計量Kの算出方法は公知であるので、説明を省略する。
評定者の間に完全な一致があればKの値は1になる。チャンスレベルでの一致であればKの値は0である。一致度が高くなればKの値は0から1に近づく。図7に、Landisらによる一致度の評価方法を示す。本実験では、14185組の日本語用語対を対象に、3人で日本語異表記対であるか日本語異表記対でないかの2カテゴリでカッパ統計量Kを求めたところ、一致度は0.84であった。これは0.8以上の一致度であるため、ほぼ完全な一致であると評価できる。
次に、異表記取得装置1における異表記の用語対であるか否かの判断手法が優れていることを示すために、異表記取得装置1の判断手法と比較対照となるベースライン手法について説明する。
編集距離の小さい(例えば、編集距離が1)日本語異表記対の抽出を行う対象の日本語用語対に対して、ベースライン手法では、以下のルールを適用し、機械的に日本語異表記対であるか日本語異表記対でないかについて判定を行う。
(ルール1)文字数が同じ日本語用語対の編集箇所が同じ値の数字を表す場合、日本語異表記対であると判定する。
(ルール2)文字数が同じ日本語用語対の編集箇所が同じ意味のアルファベットを表す場合、日本語異表記対であると判定する。
(ルール3)文字数が同じ日本語用語対がJUMANを使い読み方を調べることでき、読み方が一致する場合、日本語異表記対であると判定する。
(ルール4)ルール1、ルール2、ルール3と一致しなかった場合、日本語異表記対でないと判定する。
上記のルール1からルール4を適用するベースライン手法において、日本語用語対「第2版」「第二版」については、以下のように判断される。この日本語用語対における編集箇所は、「2」と「二」であり数字を表している。ルール1を適用し、同じ値を表しているため、ベースライン手法では、この日本語用語対は日本語異表記対であると判定される。
日本語用語対「Tea」「tea」については、以下のように判断される。この日本語用語対における編集箇所は、「T」と「t」でありアルファベットを表している。そして、ルール2が適用され、この日本語用語対は、同じ意味の語であるためこの日本語用語対は日本語異表記対であると判定される。
日本語用語対「誉める」「褒める」については、以下のように判断される。この日本語用語対は、「ほめる」と「ほめる」にJUMANを使い読み方を調べることできる。そして、ルール3が適用され、読み方が一致し、この日本語用語対は日本語異表記対であると判定される。
日本語用語対「シルキーホワイト」「ミルキーホワイト」については、以下のように判断される。この日本語用語対における編集箇所は、「シ」と「ミ」でありカタカナを表している。シルキーホワイトとミルキーホワイトはJUMAN辞書において未定義であるため、読み方を調べることができない。よってルール4が適用され、日本語異表記対でないと判定される。
次に、本実験で用いた機械学習部16の機械学習手法について、詳細に説明する。本機械学習手法は、サポートベクトルマシン法である。サポートベクトルマシン法は、上述したように、空間を超平面で分割することにより、2つの分類からなるデータを分類する手法である。このとき2つの分類が正例と負例からなるとすると、学習データにおいてこの2つの間隔が大きいものほど誤った分類をする可能性が低いと判断される。この間隔を最大にする超平面を求め、それを求めて分類を行うことが基本とされる。しかし、ここでは、学習データにおいて間隔の内部領域に少数の事例を含んでもよいとする手法や超平面の線形の部分を非線形にするなどの拡張がされたものを用いる。これらの拡張された方法は、識別関数を用いて分類することと等価となり、識別関数の出力値が正か負かによって2つに分類を判別することができる。また、3つ以上からなるデータを扱う場合にはペアワイズ手法というのを並行して用いる。ペアワイズ手法はN個の分類をもつデータの場合、異なる2つの分類先のあらゆるペアを作り、各ペアごとにどちらがよいかを2値分類器(サポートベクトルマシン法)で求め最終的に分類先の多数決により求める方法である。以降、サポートベクトルマシン法はSVMと、適宜、表記する。
SVMによって編集距離の小さい(例えば、編集距離が1)日本語異表記対を抽出するために用いる素性は、上述したS1からS68の素性である。これらの素性は、大規模類似語リストからランダムで取り出した編集距離の小さい日本語用語対から取り出す。素性によってそれぞれの機械学習は、日本語用語対が日本語異表記対であるか日本語異表記対でないかを判定をする。日本語用語対からできるだけ多くの情報を得るために、種々の素性を用いた。また、それぞれの素性について、上述したように、G1あらG7に分類できる。G1、G2、G3は、すべての編集距離の小さい日本語用語対に対応できる素性である。字種は対象の文字がひらがな、カタカナ、数字、アルファベット、その他のどの種類を表しているかの情報である。品詞は用語にJUMANを用いて形態素解析をかけ、用語を単語に区切り、品詞情報を取得する。そして、対象の文字がどの品詞に属しているかの情報である。位置情報は、対象の文字が品詞に属している中でさらに、その品詞の先頭、最後尾、それ以外のどの位置を示しているかの情報である。類似度は、大規模類似語リストを生成する際に用いた類似度の情報である。
スタッキングアルゴリズムとは、上述したように、実験データを本来の目的とは別の分類方法で分類させたデータを機械学習で学習させ、学習結果の分類情報を素性に加えることである。本実験において、スタッキングアルゴリズムに使用するデータは、実験で用いる28370組の日本語用語対以外の、大規模類似語リストから得られたJUMANの代表表記が判別できる904612組の日本語用語対を用いる。904612組の中で、正例は25934組、負例は878678組である。これにより、JUMAN辞書において未定義の日本語用語対にも、近似的ではあるがS64の素性の情報を付与することができる。また、G4、G5は、特徴がある編集距離の小さい日本語用語対に特化した素性である。G4は置換によって等しい文字列で、G5は削除によって等しい文字列になる日本語用語対が対象である。G6、G7は、JUMAN辞書、日本語ワードネット辞書、EDR辞書を用いた素性である。JUMAN辞書については、未定義とされている用語が出てくる日本語用語対に対して、素性の情報は付与しないこととする。
上述したS1からS68の素性がどれくらい有効であるのかを有意差の分析により検討する。有意の検討はブートストラップ法を用いて求める。ブートストラップ法とは分類手法によって二つに分類されたデータを用いる。分類された二つのデータをそれぞれ、データ数(例えば、問いの数は1400)は変えずに重複を許しランダムに取り出す(例えば、取り出したデータ数は1400)。取り出したデータでそれぞれのF値を求め、それぞれのF値を比較する。取り出しとF値の比較をする工程を10000回繰り返す。F値とは以下の数式2で定義される。すなわち再現率と適合率の調和平均である。
工程を10000回繰り返し比較した結果が、どちらかの手法のF値よりも、もう一方の手法のF値の方が高い回数が9500回(95%)以上の場合、有意水準5%によりF値が高い方の手法は有意であるといえる。どちらも9500回(95%)以上ない場合、有意水準5%により有意かどうかの判定はできない。なお、ここでは、有意水準5%を適用するが、例えば、有意水準10%を適用しても良い。
また、本実験では全素性と全素性から1種類の素性だけを取り除いたデータを、SVMの学習結果により比較する。上述した68個すべて組み合わせた素性を全素性とし、取り除く素性はS1からS68におけるすべての素性でおこなう。この有意差の検討を、クローズドデータを10分割クロスバリデーション(10CV)でSVMによる学習結果と、クローズドデータとオープンデータを使いオープンクローズ(OC)でSVMによる学習結果で行う。なお、オープンクローズとは、クローズドデータを学習データとして、オープンデータをテストデータとして実験することをいう。以降は、10分割クロスバリデーションによるSVMの実験は10CVと表記し、オープンクローズによるSVMの実験はOCと表記する。
次に、ベースライン手法と機械学習を利用した手法について実験を行った結果について報告する。
本実験において、上述した大規模類似語リストに含まれる28370組の編集距離の小さい日本語用語対が、日本語異表記対であるか、日本語異表記対でないかについて判定を行った。図8に、用意したクローズドデータとオープンデータに対して、ベースラインの手法を適用した結果を示す。また、図8には、10CVとOCの結果も示す。実験で用いるSVMの実装としてTinySVMを採用し、1次の多項式カーネルでソフトマージンパラメータCを1に設定して利用した。それぞれの表での「全素性」はS1からS68のすべての素性を利用した実験を示し、「素性選択」は省いた素性以外の全素性を利用した実験を示す。
図8における正解率は、それぞれの実験データに対して、編集距離が1の日本語異表記対であるのか、編集距離が1の日本語異表記対でないのかを、正しく判定した割合である。図8のF値は、それぞれの実験データに対して、編集距離が1の日本語異表記対を抽出する場合のF値である。10CV、OCに対して、全素性を利用したSVMの正解率、F値ともにベースラインの手法よりも高いことがわかる。編集距離1の日本語用語対から日本語異表記対を抽出する場合のF値は、ベースラインと比較して全素性を利用したSVMの方が、10CVでは0.433高く、オープンデータでは0.460高かった。ベースラインの結果より、編集距離が1の日本語用語対から日本語異表記対を抽出することは難しいといえるが、本報告で提案している種々の素性と機械学習を用いた手法は、ベースライン手法よりも多くの日本語異表記対が抽出できることがわかる。
次に、上述したブートストラップ法を用いて素性が有効であるかどうかの検討をした結果を図9に示す。なお、S1からS68の素性を図10に示す。図9において、省いた素性は、ブートストラップ法により有意かどうかの判定が行われる素性である。全素性は本実験で扱った素性による手法であり、素性選択は省いた素性を全素性から省いた素性による手法である。それぞれの値は、全素性が素性選択よりF値が高かった回数あるいは、素性選択が全素性よりF値が高かった回数である。この実験では、全素性が素性選択よりF値が高い回数が9500回(95%)以上あれば、省いた素性は精度向上に役立っているということになり、省いた素性は有効であるといえる。全素性が素性選択よりF値が高い回数が9500回(95%)以上であった素性は、10CVの場合はS47、S55、S58、S67であり、OCの場合はS52、S54、S55、S58、S67であった。10CVとOCの両方で、全素性が素性選択よりF値が高い回数が9500回(95%)以上であった素性は、S55、S58、S67であった。この結果からS55、S58、S67の素性は、どのような編集距離の小さい日本語異表記対を抽出するデータにも、有効である素性といえる。S47とS52の素性はそれぞれの実験で使われたデータには有効である素性といえるが、編集距離の小さい日本語用語対のデータが変われば、有効でなくなる可能性がある素性といえる。そのためS47とS52は、どのような編集距離の小さい日本語異表記対を抽出するデータにも、有効であるとはいえない。
次に、本異表記取得装置1の提案手法(以下、単に提案手法とも言う)が、編集距離が1の日本語異表記対を抽出できたのかを、種々の同義語辞書を用いて比較を行った結果について説明する。種々の同義語辞書は、EDR辞書、日本語ワードネット辞書、JUMAN辞書である。編集距離が1の日本語用語対は、EDR辞書には21224779組、日本語ワードネット辞書には890616組、JUMAN辞書には23348組あることがわかった。EDR辞書には人名に関する単語がある。本実験では人名は同義語でないと判断し、取り除いた。その結果、EDR辞書に含まれている編集距離が1の日本語用語対は933037組であった。JUMAN辞書は同じ代表表記をもつ単語対を日本語用語対として扱った。
提案手法を用い、大規模類似語リストから編集距離が1の日本語異表記対と分類された用語対が、種々の辞書にどの程度の割合で含まれているかの検討結果を図11に示す。以降は大規模類似語リストにおける編集距離が1の日本語用語対すべてを、日本語用語対データベースとし、用語対DBと表記する。さらに、用語対DBにおいて、日本語異表記対であると提案手法が分類した日本語用語対すべてを、日本語異表記対データベースとし、異表記DBと表記する。用語対DBにおいて、日本語異表記対でないと提案手法が分類した非日本語用語対すべてを、非日本語異表記対データベースとし、非異表記DBと表記する。EDR辞書は20.45%、日本語ワードネットは1.71%、JUMAN辞書は6.52%の割合で異表記DBの日本語異表記対が含まれていた。どの辞書においても、異表記DBの日本語用語対を含んでいる割合は高くない。これらの結果より、本明細書で記載した異表記取得装置により得られた異表記と既存辞書は重なりが小さいので、異表記取得装置により、既存辞書に対して多くの異表記を追加できることが分かる。また、例えば、EDR辞書では、約2割のカバー率であるが、相当な程度のカバー率である、と言える。
また、種々の辞書に含まれる編集距離が1の日本語用語対を、提案手法により編集距離が1の日本語異表記対であるか、編集距離が1の日本語異表記対でないか分類した。SVMの分類における正解率を図12に示す。
また、種々の辞書と用語対DBにおいて、編集距離が1の日本語異表記対であると分類された日本語用語対と、分類されなかった日本語用語対をそれぞれランダムに、5組ずつ取り出した結果を図13に示す。学習データはオープンデータとクローズデータを組み合わせたデータとし、テストデータを用語対DB、種々の辞書のそれぞれでOCにより、用語対DBと種々の辞書を分類した。
図12において、日本語ワードネットにおいて分類の正解率が低かったのは、図13のように、日本語異表記対ではなく、日本語類義語対が多く含まれているからである。図12に示すように、JUMAN辞書の場合は8割という高い正解率で分類できている。また、JUMAN辞書には、日本語異表記対でないものが含まれるという問題が少なく、また、本提案手法により適切に異表記を抽出できるために、8割という高い正解率を達成できたものと考えられる。
次に、編集距離が1の日本語異表記対抽出の評価について述べる。SVMは識別関数の出力値(機械学習部16が出力するスコア)が正か負かによって、データを分類することも可能であるが、ここでは、識別関数の出力値が正か負かによって、データを分類するのではなく、任意の値(閾値)によって正か負のデータを分類し、編集距離が1の日本語異表記対抽出の評価を行う。つまり、閾値判断手段172が、機械学習部16が取得したスコアが閾値格納手段171に格納されている閾値以上または閾値より大きいか否かを判断するものとする。正のデータを編集距離が1の日本語異表記対であると分類し、負のデータを編集距離が1の日本語異表記対でないと分類する手法では、精度が100%ではないため、誤って編集距離が1の日本語異表記対でない日本語用語対を、日本語異表記対であると判断し、抽出することがある。そのため、少量であっても確実に抽出を行いたい場合は、閾値を高く設定することで、日本語異表記対を確実に抽出できる。また、誤ったデータが含まれていても、網羅的に抽出を行いたい場合は、閾値を低く設定することで、可能となる。図14に、閾値の評価基準を示す。図14に示すように、閾値を−0.2に設定することで、F値0.9323と最も高い値を得られることがわかった。また、再現率と適合率の比率を図15に示す。図15によれば、再現率が高くしようとすると、カバー率を上げなくてはならなくなり、適合率は低くなる。そして、適合率が高くしようとすると、カバー率を下げなくてはならなくなり、再現率は低くなる。
(実験結果2)
第2番目の実験において、正例(例えば、「スパゲティ」と「スパゲッティ」との対)745個、負例(正例に該当しない対)13,440個を持つ学習データから、正例725個、負例13,460個のテストデータの抽出が行なわれ、そのF値は、0.93であった。なお、実験結果2において、実験結果1で利用した素性や学習データが完全に一致するものではないが、本提案手法の有効性を示すために足りる、素性や学習データの重複がある。
すべてを正例と判断する、即ちどんなものでも正例とするベースラインの方法であると、F値は0.0972程度であった。異表記かどうかを判定する対象の用語対において、編集箇所の文字また、編集箇所の文字の周辺の文字だけの素性を用いる従来の方法でも、F値は0.85であった。つまり、提案手法のように、多数の素性(ここでは、68)を用いた方法の効果は顕著であることが分かる。
また、既存の異表記辞書に基づく素性、また、スタッキング手法に基づく素性(上記の辞書関連素性)を利用しなかった方法よりも、これらの方法を利用した方が有意にF値が高いことも確かめており、これらの手法の有効性も確認している。
また、ルールベース的手法として、編集箇所の文字の字種が漢数字かアラビア数字であること、または、同じアルファベットであること、また、既存の異表記辞書を利用することで異表記と判定できるものを、異表記と決定的に推定する方法も試した。この場合のF値は、0.4202であり、ルールベース的手法でなく教師あり機械学習を利用する方が良いことがわかる。
正しい異表記の対の差分データから、異表記になりやすい差分パターンを学習し、ある用語Aに対して、異表記の候補Bを上記差分パターンより生成し、用語Aと用語Bが異表記の対であるかを判定する操作を利用することにより、取得できる異表記が格段に増えるという効果がある。かかる操作については、実施の形態2で説明する。
(実験結果3)
第3番目の実験において、10万語の単語とそれの類似する100語の単語を用いた。10万語の単語とそれの類似する100語の単語のすべての対のうち、1文字のみ変化している用語対は170万個あった。なお、実験結果3において、実験結果1で利用した素性や学習データが完全に一致するものではないが、本提案手法の有効性を示すために足りる、素性や学習データの重複がある。そして、異表記取得装置1の技術を利用して、そこから7万対の異表記を取り出せる。以下に構築できる異表記の例を示す。
? BusinessWeek Business Week
? JAVAScript JAVA Script
? 書いてた頃 書いていた頃
? アイリッシュトラッド アイリッシュ・トラッド
? 自サーバ 自サーバー
? でない場合 出ない場合
? WWWサーバ上 WWWサーバー上
? 日光彫 日光彫り
? 隣同士 隣り同士
なお、EDR(Electric Dictionary Research)電子化辞書に含まれる差分が1文字の異表記は24,185語である。また、日本語WordNetに含まれる差分が1文字の異表記のようなものは82,270語ある。ただし、日本語WordNetには、異表記でないもの(類義語)も多く含まれており、適切に異表記を取り出すことが困難である。さらに、JUMANの辞書に含まれる差分が1文字の異表記は23,348語である。これらと比較しても本提案手法の技術の有効性がわかる。また、「JAVA」は登録商標です。
(実験結果4)
第4番目の実験において、上記したベースライン手法(上記のルール1からルール4を適用した方法)による精度を算出する。ベースライン手法では、有意差が高かった素性(S55、S58、S67)がyesと判定されたものを正例、すべてnoと判定されたものを負例としてF値を求める。
図16は、ベースライン手法で、オープンデータとクローズドデータの全部を用いて10分割クロスバリデーションによる実験をおこなった場合の結果である。図16において、「0」は負例、「1」は正例である。また、図16において、最も左側の列の「0」「1」は、正しい分類を示す。最も上の第一行の「0」「1」は、実験対象の手法(図16では、ベースライン手法)での出力結果を示す。つまり、正しい分類が「0」であり実験結果が「0」であったデータの数が26892、正しい分類が「0」であり実験結果が「1」であったデータの数が1018、正しい分類が「1」であり実験結果が「0」であったデータの数が8、正しい分類が「1」であり実験結果が「1」であったデータの数が452であった。また、負例(「0」)の再現率は99.97%、適合率は96.35%であった。また、正例(「1」)の再現率は30.75%、適合率は98.26%であった。また、すべてのデータの再現率は96.38%、適合率は96.38%であった。さらに、「総数」は、実験データの数である。以上の再現率、適合率を、数式10に代入して、算出した負例のF値は0.9813、正例のF値は0.4684であった。なお、図17から図21の各データの意味は、図16と同様であるので説明を省略する。
図17は、ベースライン手法で、クローズドデータのみを用いて10分割クロスバリデーションによる実験をおこなった場合の結果である。図17において、負例のF値は0.9814、正例のF値は0.4833であった。
図18は、ベースライン手法で、オープンクローズを用いた場合の結果である。図18において、負例のF値は0.9812、正例のF値は0.4529であった。
実験結果4において、ベースライン手法は、正例のF値が、提案手法におけるF値(例えば、実験結果1の0.912)と比較して極めて小さく、提案手法の有効性が極めて高い、と言える。
(実験結果5)
第5番目の実験において、すべてを正例としたベースライン手法の場合による精度を算出した。すべて正例としたベースライン手法の場合、再現率は「100%」、適合率は「0.0525%」であった。そして、かかる再現率および適合率を、数式10に代入し、算出された、正例(「1」)のF値は「0.0998」であった。すべてを正例としたベースライン手法の正例のF値は、提案手法におけるF値と比較して極めて小さく、提案手法の有効性が極めて高い、と言える。なお、提案手法において、正解率「99.12%」、再現率「99.07%」、適合率「92.29%」、F値「0.912」を得ている。なお、本実験で利用した素性や学習データは、提案手法の評価において利用した素性や学習データと完全に一致するものではないが、本提案手法の有効性を示すために足りる、素性や学習データの重複がある。
(応用例)
以下、異表記取得装置1の応用例について説明する。応用例とは、異表記取得装置1を組み込んだ情報検索装置である。情報検索装置は、異表記取得装置1と検索部とを具備する。つまり、受付部14は、キーワード(KW1)を受け付ける。そして、異表記取得装置1は、受け付けたKW1の異表記の用語(KW2)を取得する。そして、検索部は、KW1+KW2(+はOR)の検索式により、情報検索を行う。なお、情報検索の検索対象は問わないことは言うまでもない。また、検索部は、いわゆるWebの検索エンジンを起動するだけの処理でも良い。
本情報検索装置を利用して、情報をキーワード検索する際に、ユーザが、「スパゲティ」と入力した場合に、情報検索装置は、「スパゲティ」の異表記である「スパゲッティ」を取得する。そして、情報検索装置は、これらの「スパゲティ」と「スパゲッティ」との双方をキーワードとして情報検索する。その結果、「スパゲティ」と「スパゲッティ」のいずれの表現が為されている情報もヒットするので、検索漏れの少ない情報検索が実現できる。
特に情報検索装置は、検索漏れが許されない特許情報の検索に大きな効果をもたらす。例えば、情報検索装置が特許検索システムにおいて利用されることを考える。特許の明細書や特許請求の範囲や要約書等の特許の書類には、例えば、「コンピュータ」も「コンピューター」も存在するので、キーワードとして「コンピュータ+コンピューター」を入力しなければ、検索漏れが生じる。従って、検索者は検索時には細心の注意を払って検索しようとするキーワードの異表記を考える必要があった。「デジタル」と「ディジタル」となど、同義語であるにも拘わらず、異表記の文言は特に特許公報においては多い。しかしながら、本情報検索装置を採用することによってこのような配慮をすることなく、検索漏れのない特許情報の検索が可能となる。
以上、本実施の形態によれば、用語対の分野を問わず、精度の高い異表記の用語対の抽出が可能となる。
なお、本実施の形態によれば、主として、編集距離が1の用語対について、異表記の用語対であるか否かの判断手法について説明した。しかし、上述したとおり、異表記取得装置1は、編集距離が2の用語対についても、異表記の用語対であるか否かを判断できる。
つまり、素性取得部15の差分文字取得手段151は、編集距離が2つの用語対について、2つの差分文字の組を、それぞれ取得する。例えば、以下の3つの具体的な用語対を考える。(1)「できる」「出来る」(2)「理解できる」「できる」(3)「IX(ローマ数字の9)」「9」を考える。かかる場合、差分文字取得手段151は、(1)の用語対について、「で」「出」と「き」「来」の2組の差分文字の組を取得する。また、差分文字取得手段151は、(2)の用語対について、「理」「」と「解」「」(「」はNULLである)の2組の差分文字の組を取得する。また、差分文字取得手段151は、(3)の用語対について、「I」「9」と「X」「」の2組の差分文字の組、または「I」「」と「X」「9」の2組の差分文字の組を取得する。
そして、素性取得手段152は、差分文字取得手段151が取得した2つの差分文字を、独立に対象として、字種関連素性、辞書関連素性、類似度素性のうちの一以上を含む複数の素性を、2組取得する。つまり、(1)の用語対について、素性取得手段152は、「で」「出」と「き」「来」の2組の差分文字の組のそれぞれを対象に素性の抽出を行い、それぞれ差分文字から抽出した素性は、別のものと考え、2種類のテストデータを作成する。素性取得手段152は、例えば、用語対が有する2つの用語の編集箇所の字種が異なり、かつ、2つの用語の編集箇所が同じ値の数字であるか否かを示す字種関連素性について、「で」「出」の編集箇所が同じ値の数字でないと判断し、当該字種関連素性「0」を取得する。また、素性取得手段152は、例えば、「で」「出」について、2つの用語の読みが一致するか否かを示す辞書関連素性「1」を取得する。素性取得手段152は、用語辞書13から「出」の読み「で」を取得し、「で」と「出」の読みが一致すると判断する。また、素性取得手段152は、例えば、差分文字「で」「出」に対して、差分文字(編集箇所)の前後の文字という素性について、前の文字の素性「」(なし)、後の文字の素性「き」と「来」を取得する。また素性取得手段152は、例えば、差分文字「き」「来」に対して、差分文字の前後の文字という素性について、前の文字の素性「出」と「で」、後の文字の素性「る」を取得する。かかる処理により、別の差分文字も素性に含めることとなる。
また、(2)の用語対について、素性取得手段152は、(1)と同様に、「理」「」と「解」「」の2組の差分文字の組のそれぞれを対象に素性の抽出を行い、それぞれ差分文字から抽出した素性は、別のものと考え、2種類のテストデータを作成する。さらに、(3)の用語対について、素性取得手段152は、(1)(2)と同様に、例えば、「I」「9」と「X」「」の2組の差分文字の組のそれぞれを対象に素性の抽出を行い、それぞれ差分文字から抽出した素性は、別のものと考え、2種類のテストデータを作成する。
次に、機械学習部16は、(1)(2)(3)について、2種類のテストデータをそれぞれ、異表記の用語対であるか否かを判定する。そして、判定の結果、例えば、2種類のテストデータともに異表記の用語対であると判定された場合、元の用語対(例えば、「できる」「出来る」)は、異表記の用語対であるとして、出力部17は、判断結果を出力する。なお、出力部17は、上述したように、2種類のテストデータに対する2つのスコアのうちのスコアが0に近い方のスコアを採用して、採用したスコアが正の場合は正例(異表記の用語)、負の場合は負例(異表記の用語でない)と判断しても良いし、スコアの絶対値が大きい方のスコアを採用して、採用したスコアが正の場合は正例(異表記の用語)、負の場合は負例(異表記の用語でない)と判断しても良いし、2つのスコアのうち、小さい方のスコアを取得し、当該小さい方のスコアが正の場合は正例(異表記の用語)、負の場合は負例(異表記の用語でない)と判断しても良い。
また、(3)の2組の差分文字の組(例えば、「I」「9」と「X」「」、または「I」「」と「X」「9」)、つまり2つの問題(問題1、問題2)ができる場合、それぞれの差分文字を対象に素性の抽出を行い、それぞれ差分文字から抽出した素性は、別のものと考え、4種類のテストデータを作成する。そして、2つの問題ごとに、算出したスコアが0に近い方を取得し、問題ごとのスコアのうちの、絶対値が高いスコアを当該問題のスコアとし、スコアが正の場合は正例、負の場合は負例と判断しても良い。また、例えば、用語対が(3)「IX」「9」である場合、問題「I」「9」と「X」「」、および「I」「」と「X」ができる。そして、機械学習部16は、「I」「9」と「X」「」のスコアの小さい方を取得し、また、「I」「」と「X」「9」のスコアの小さい方を取得し、2つの取得されたスコアのうち、値が大きい方を「IX」「9」の用語対におけるスコアとする。そして、機械学習部16は、当該スコアが正の場合は正例、負の場合は負例と判断しても良い。なお、例えば、機械学習部16は、「I」「9」と「X」「」のスコアが0に近い方を取得し、また、「I」「」と「X」「9」のスコアが0に近い方を取得し、2つの取得されたスコアのうち、絶対値が大きい方を「IX」「9」の用語対におけるスコアとしても良い。そして、機械学習部16は、当該スコアが正の場合は正例、負の場合は負例と判断しても良い。
また、本実施の形態において、編集距離が3以上の用語対についても、編集距離が2つの用語対と同様に、3以上のテストデータを作成し、3以上のテストデータの判断結果を用いて、元の用語対が異表記の用語対であるか否かを判定しても良い。かかる場合、例えば、3以上の差分文字のうちの1文字や2文字などを素性として用いるなど、新しい素性を機械学習手法に導入しても良い。
また、本実施の形態において、異表記取得装置1は、例えば、「あなた」「あんた」という日本語の用語対が異表記の用語対であると判断できたが、日本語以外の言語(例えば、英語)の用語対(例えば、「colour」「color」)も、異表記の用語対であると判断できる。
また、本実施の形態において、異表記取得装置1は、用語対を構成する2つの用語の編集箇所の文字が2文字以上である場合、1文字ずつの対応とせずに、編集箇所をまとめ、当該まとめた文字列をそのまま機械学習しても良い。つまり、用語対「123組」「百二十三組」について、編集箇所を「123」「百二十三」とまとめて、処理しても良い。用語対「123組」「百二十三組」に対して、例えば、S1「一つ目の表記の編集箇所」"123"、S2「二つ目の表記の編集箇所」"百二十三"、S3「編集箇所の前方の1文字」""(なし)、S4「編集箇所の後方の1文字」"組"、S55「編集箇所が両方とも数字の場合であり、同じ値か違う値かどうか」"1"(同じ値)、S56「日本語用語対の編集箇所が両方ともひらがなの場合であり、同じ音声か違う音声かどうか」"0"等が得られる。そして、用語対「123組」「百二十三組」に対する学習データが構成され、学習データ格納部12に蓄積されて、利用されても良い。また、異表記取得装置1の素性取得部15は、編集箇所の文字が2文字以上の用語対のテストデータに対して、編集箇所をまとめて処理し、例えば、上述した68の素性を取得し、機械学習部16が、テストデータが異表記対か否かを判断しても良い。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、編集距離が1以上の用語対、および、用語対の異なる文字である編集箇所の字種に関する素性である字種関連素性、用語辞書を用いて取得された素性である辞書関連素性、前記用語対を構成する2つの用語の類似度を示す素性である類似度素性のうちの一以上の素性を含む複数の素性と、前記用語対が異表記の用語対であるかを示す情報である正負情報とを対応付けた学習データを2以上格納しており、コンピュータを、前記記憶媒体の用語対ごとに、字種関連素性、辞書関連素性、類似度素性のうちの一以上を含む複数の素性を取得する素性取得部と、前記各用語対に対して、前記記憶媒体の2以上の学習データと、前記素性取得部が取得した複数の素性とを用いて、教師あり機械学習法により、前記記憶媒体の各用語対が異表記の用語対であるか否かを判断する機械学習部と、前記機械学習部における判断結果を出力する出力部として機能させるためのプログラム、である。
(実施の形態2)
本実施の形態において、置き換え文字対を保持し、置き換え文字対を用いて、用語から用語対を生成し、その用語対に対して、機械学習により異表記用語対を生成する異表記取得装置2について説明する。異表記取得装置2は、異表記取得装置1の機能に加えて、パターンを使った異表記用語対の生成機能を有する機能を有する。
図19は、本実施の形態における異表記取得装置2のブロック図である。
異表記取得装置2は、用語対格納部11、異表記用語対格納部21、学習データ格納部12、用語辞書13、異表記パターン格納部22、受付部23、編集箇所取得部24、異表記パターン取得部25、異表記パターン蓄積部26、用語対生成部27、素性取得部15、機械学習部16、出力部17を備える。
異表記用語対格納部21は、編集距離が1の異表記の用語対を1以上格納し得る。
異表記パターン格納部22は、異表記のパターンを示す第一文字列と第二文字列とを対に有する異表記パターンを1以上格納し得る。
受付部23は、ユーザからの入力を受け付ける。また、受付部23は、1以上の用語を受け付ける。この用語とは、用語対を生成する元となる用語である。受付部23が用語を受け付けるのは、ユーザからの入力でも良いし、記憶媒体からの読み込みや、通信手段を用いた受信でも良い。
編集箇所取得部24は、異表記用語対格納部21に格納されている1以上の異表記の用語対の編集箇所を取得する。
異表記パターン取得部25は、編集箇所取得部24が取得した編集箇所から、第一文字列と第二文字列とを対に有する異表記パターンを取得する。異表記パターン取得部25は、例えば、用語対「2番目」「二番目」から第一文字列「2」と第二文字列「二」とを対に有する異表記パターン「2」「二」を取得する。また、異表記パターン取得部25は、例えば、用語対「自サーバ」「自サーバー」から異表記パターン「del」「ー」を取得する。
異表記パターン蓄積部26は、異表記パターン取得部25が取得した異表記パターンを、異表記パターン格納部22に蓄積する。
用語対生成部27は、受付部23が受け付けた1以上の各用語に対して、異表記パターン格納部22の1以上の各異表記パターンを適用し、1以上の用語を生成し、1以上の各用語と生成した用語とを有する1以上の異表記の候補の用語対である異表記候補用語対を生成する。
異表記用語対格納部21、異表記パターン格納部22は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
異表記用語対格納部21に異表記用語対が記憶される過程は問わない。
編集箇所取得部24、異表記パターン取得部25、異表記パターン蓄積部26、および用語対生成部27は、通常、MPUやメモリ等から実現され得る。編集箇所取得部24等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、異表記取得装置2の動作について図20のフローチャートを用いて説明する。図20のフローチャートにおいて、異表記パターンを蓄積する処理、用語対を生成する処理について説明する。異表記取得装置2の動作について、異表記取得装置1の動作と同じである異表記用語対の判断処理、および判断結果の出力処理については、説明しない。
(ステップS2001)受付部23は、異表記パターンの生成指示を受け付けたか否かを判断する。異表記パターンの生成指示を受け付ければステップS2002に行き、受け付けなければステップS2009に行く。
(ステップS2002)編集箇所取得部24は、カウンタiに1を代入する。
(ステップS2003)編集箇所取得部24は、異表記パターン格納部22にi番目の用語対が存在するか否かを判断する。i番目の用語対が存在すればステップS2004に行き、i番目の用語対が存在しなければステップS2001に戻る。
(ステップS2004)編集箇所取得部24は、i番目の用語対の差分文字(編集箇所)を取得する。
(ステップS2005)異表記パターン取得部25は、ステップS2004で取得した差分文字(編集箇所)から、異表記パターンを構成する。
(ステップS2006)異表記パターン蓄積部26は、ステップS2005で取得された異表記パターンが、異表記パターン格納部22に存在するか否かを判断する。存在すればステップS2007に行き、存在しなければステップS2008に行く。
(ステップS2007)異表記パターン蓄積部26は、ステップS2005で取得された異表記パターンを、異表記パターン格納部22に蓄積する。
(ステップS2008)編集箇所取得部24は、カウンタiを1、インクリメントする。ステップS2003に戻る。
(ステップS2009)受付部23は、用語を受け付けたか否かを判断する。用語を受け付ければステップS2010に行き、受け付けなければステップS2001に戻る。
(ステップS2010)用語対生成部27は、カウンタiに1を代入する。
(ステップS2011)用語対生成部27は、i番目の異表記パターンが、異表記パターン格納部22に存在するか否かを判断する。存在すればステップS2012に行き、存在しなければ処理を終了する。
(ステップS2012)用語対生成部27は、ステップS2009で受け付けられた用語が、i番目の異表記パターンに合致するか否かを判断する。合致すればステップS2013に行き、合致しなければステップS2016に行く。なお、用語「WWWサーバ」に対して、異表記パターン「2」「二」は合致しない。異表記パターンは両方とも文字であり、当該いずれの文字も用語「WWWサーバ」が含まないからである。また、用語「WWWサーバ」に対して、異表記パターン「del」「ー」は合致する。異表記パターンに「del」が含まれる場合は、すべての用語が異表記パターンに合致することとなる。
(ステップS2013)用語対生成部27は、ステップS2009で受け付けられた用語に対して、i番目の異表記パターンを適用し、1以上の異表記の用語を取得する。用語が「アイトラッキング」であり、i番目の異表記パターンが「del」「・」である場合、用語対生成部27は、用語「アイトラッキング」に異表記パターン「del」「・」を適用し、「・」を各文字間に挿入し、7つの異表記の用語「ア・イトラッキング」「アイ・トラッキング」「アイト・ラッキング」「アイトラ・ッキング」「アイトラッ・キング」「アイトラッキ・ング」「アイトラッキン・グ」を生成する。また、用語が「一番目」であり、i番目の異表記パターンが「一」「1」である場合、用語対生成部27は、用語「一番目」に異表記パターン「一」「1」を適用し、「1番目」を生成する。
(ステップS2014)用語対生成部27は、ステップS2009で受け付けられた用語と、ステップS2013で生成した1以上の異表記の用語を用いて、1以上の用語対を生成する。例えば、用語が「アイトラッキング」であり、i番目の異表記パターンが「del」「・」である場合、用語対生成部27は、用語対「アイトラッキング」「ア・イトラッキング」、「アイトラッキング」「アイ・トラッキング」、「アイトラッキング」、「アイトラッキング」「アイト・ラッキング」、「アイトラッキング」「アイトラ・ッキング」、「アイトラッキング」「アイトラッ・キング」、「アイトラッキング」「アイトラッキ・ング」、「アイトラッキング」「アイトラッキン・グ」の7つの用語対を生成する。また、用語が「一番目」であり、i番目の異表記パターンが「一」「1」である場合、用語対生成部27は、用語対「一番目」「1番目」を生成する。
(ステップS2015)用語対生成部27は、ステップS2013で生成した1以上の用語対を、用語対格納部11に蓄積する。
(ステップS2016)用語対生成部27は、カウンタiを1、インクリメントする。ステップS2011に戻る。
以下、本実施の形態における異表記取得装置2の具体的な動作について説明する。
異表記パターン取得部25が取得し、異表記パターン蓄積部26が異表記パターン格納部22に蓄積した異表記パターンの例を、図21に示す。図21において、「del」は、もう一方のパターン文字を削除することを示す。つまり、異表記パターン取得部25は、delのもう一方のパターン文字について、すべての大規模類似語リストに用いた用語を対象とし、用語対を生成する。
かかる状況において、上述したように、用語対生成部27は、受け付けられた用語「アイトラッキング」が、1番目の異表記パターン「del」「・」に合致する、と判断する。そして、用語が「アイトラッキング」が入力された場合、1番目の異表記パターン「del」「・」が適用され、用語対生成部27は、用語「アイトラッキング」は、「・」を各文字間に挿入し、7つの異表記の用語「ア・イトラッキング」「アイ・トラッキング」「アイト・ラッキング」「アイトラ・ッキング」「アイトラッ・キング」「アイトラッキ・ング」「アイトラッキン・グ」を生成する。次に、用語対生成部27は、用語対「アイトラッキング」「ア・イトラッキング」、「アイトラッキング」「アイ・トラッキング」、「アイトラッキング」、「アイトラッキング」「アイト・ラッキング」、「アイトラッキング」「アイトラ・ッキング」、「アイトラッキング」「アイトラッ・キング」、「アイトラッキング」「アイトラッキ・ング」、「アイトラッキング」「アイトラッキン・グ」の7つの用語対を生成する。そして、異表記パターン蓄積部26は、7つの用語対を異表記パターン格納部22に蓄積する。
次に、用語対生成部27は、受け付けられた用語「アイトラッキング」が、2番目の異表記パターン「del」「−」に合致する、と判断する。次に、用語「アイトラッキング」に対して、2番目の異表記パターン「del」「−」が適用され、用語対生成部27は、「ア−イトラッキング」「アイ−トラッキング」「アイト−ラッキング」「アイトラ−ッキング」「アイトラッ−キング」「アイトラッキ−ング」「アイトラッキン−グ」を生成する。次に、用語対生成部27は、用語対「アイトラッキング」「ア−イトラッキング」、「アイトラッキング」「アイ−トラッキング」、「アイトラッキング」「アイト−ラッキング」、「アイトラッキング」「アイトラ−ッキング」、「アイトラッキング」「アイトラッ−キング」、「アイトラッキング」「アイトラッキ−ング」、「アイトラッキング」「アイトラッキン−グ」の7つの用語対を生成する。そして、異表記パターン蓄積部26は、7つの用語対を異表記パターン格納部22に蓄積する。
次に、用語対生成部27は、受け付けられた用語「アイトラッキング」が、3番目の異表記パターン「del」「い」に合致する、と判断する。そして、次に、用語「アイトラッキング」に対して、3番目の異表記パターン「del」「い」が適用され、用語対生成部27は、「アいイトラッキング」「アイいトラッキング」「アイトいラッキング」「アイトラいッキング」「アイトラッいキング」「アイトラッキいング」「アイトラッキンいグ」を生成する。次に、用語対生成部27は、用語対「アイトラッキング」「アいイトラッキング」、「アイトラッキング」「アイいトラッキング」、「アイトラッキング」「アイトいラッキング」、「アイトラッキング」「アイトラいッキング」、「アイトラッキング」「アイトラッいキング」、「アイトラッキング」「アイトラッキいング」、「アイトラッキング」「アイトラッキンいグ」の7つの用語対を生成する。そして、異表記パターン蓄積部26は、7つの用語対を異表記パターン格納部22に蓄積する。
次に、用語対生成部27は、受け付けられた用語「アイトラッキング」が、4番目の異表記パターン「−」「1」を構成する文字を含まないので、この異表記パターンに合致しない、と判断する。
次に、用語対生成部27は、受け付けられた用語「アイトラッキング」が、5番目の異表記パターン「イ」「ィ」を構成する文字「イ」を含むので、この異表記パターンに合致する、と判断する。そして、次に、用語「アイトラッキング」に対して、5番目の異表記パターン「イ」「ィ」が適用され、用語対生成部27は、「アィトラッキング」を生成する。次に、用語対生成部27は、用語対「アイトラッキング」「アィトラッキング」の1つの用語対を生成する。そして、異表記パターン蓄積部26は、1つの用語対を異表記パターン格納部22に蓄積する。
次に、同様に、用語対生成部27は、6番目以降の異表記パターンを適用して、処理していく。
そして、用語対生成部27は、新たな用語対を用語対格納部11に蓄積する。
以上、本実施の形態によれば、異表記の用語対の候補を自動生成できる。また、本実施の形態によれば、異表記の用語対の候補を自動生成するための異表記パターンを自動的に取得できる。
なお、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、用語対の異なる文字である編集箇所の字種に関する素性である字種関連素性、用語辞書を用いて取得された素性である辞書関連素性、前記用語対を構成する2つの用語の類似度を示す素性である類似度素性のうちの一以上の素性を含む複数の素性と、前記用語対が異表記の用語対であるかを示す情報である正負情報とを対応付けた学習データを2以上格納しており、記憶媒体に、異表記のパターンを示す第一文字列と第二文字列とを対に有する異表記パターンを1以上格納しており、コンピュータを、1以上の用語を受け付ける受付部と、前記受付部が受け付けた1以上の各用語に対して、前記記憶媒体の1以上の各異表記パターンを適用し、1以上の用語を生成し、前記1以上の各用語と前記生成した用語とを有する1以上の異表記の候補の用語対である異表記候補用語対を生成する用語対生成部と、前記用語対生成部が生成した1以上の異表記候補用語対ごとに、字種関連素性、辞書関連素性、類似度素性のうちの一以上の素性を含む複数の素性を取得する素性取得部と、前記用語対生成部が生成した各異表記候補用語対に対して、前記記憶媒体の2以上の学習データと、前記素性取得部が取得した複数の素性とを用いて、教師あり機械学習法により、前記用語対格納部の各異表記候補用語対が異表記の用語対であるか否かを判断する機械学習部と、前記機械学習部における判断結果を出力する出力部として機能させるためのプログラム、である。
また、図22は、本明細書で述べたプログラムを実行して、上述した実施の形態の異表記取得装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図22は、このコンピュータシステム340の概観図であり、図23は、コンピュータシステム340のブロック図である。
図22において、コンピュータシステム340は、FDドライブ、CD−ROMドライブを含むコンピュータ341と、キーボード342と、マウス343と、モニタ344とを含む。
図23において、コンピュータ341は、FDドライブ3411、CD−ROMドライブ3412に加えて、MPU3413と、CD−ROMドライブ3412及びFDドライブ3411に接続されたバス3414と、ブートアッププログラム等のプログラムを記憶するためのROM3415とに接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3416と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3417とを含む。ここでは、図示しないが、コンピュータ341は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム340に、上述した実施の形態の異表記取得装置等の機能を実行させるプログラムは、CD−ROM3501、またはFD3502に記憶されて、CD−ROMドライブ3412またはFDドライブ3411に挿入され、さらにハードディスク3417に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ341に送信され、ハードディスク3417に記憶されても良い。プログラムは実行の際にRAM3416にロードされる。プログラムは、CD−ROM3501、FD3502またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ341に、上述した実施の形態の異表記取得装置等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム340がどのように動作するかは周知であり、詳細な説明は省略する。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。