図1は、本実施形態に係る情報解析装置を用いた冗長な文章の改善方法のスキームについて説明するための概念図である。
図2は、実施形態に係る情報解析装置の全体構成を説明するための機能ブロック図である。
図3は、実施形態に係る情報解析装置の修正部の詳細な構成を説明するための機能ブロック図である。
図4は、実施形態に係る情報解析装置の動作を説明するためのフローチャートである。
図5は、サポートベクトルマシン法のマージン最大化の概念を示す。図5(A)は、正例と負例の間隔が狭い場合(スモールマージン)の概念図、図5(B)は、正例と負例の間隔が広い場合(ラージマージン)の概念図である。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
[スキームの説明]
図1は、本実施形態に係る情報解析装置を用いた冗長な文章の改善方法のスキームについて説明するための概念図である。以下、本実施形態に係る情報解析装置の構成・動作について冗長な文章の改善方法に用いる場合を例に挙げて説明する。
この冗長な文章の改善方法のスキームでは、機械的な手法により冗長な文章の改善に役立つ言語的特徴を明らかにするとともに、その知見により冗長な文章の改善に役立つ支援技術を構築する。例えば、「まず初めに円高の解決に向けた解決策の検討を考えたい。」の文のように、文内で同じ単語や同義語が複数回出現する文は冗長でわかりにくい。この文は冗長な表現を削除することで「まず円高の解決策を検討したい。」と修正可能である。また、同じ内容の段落を複数含む文章も冗長である。このスキームでは、文レベルの問題から長い文章レベルの問題まで含めて、冗長な文章の改善に役立つ支援技術を構築する。このスキームでは、日本語文章を対象として冗長な文章の改善を行う。このスキームはコミュニケーションの効率化に寄与する。
本発明者は、この冗長な文章の改善方法のスキームの実現のためには、新たに、図1に示すように、冗長な個所の候補を取り出すために文章中の同一・類似箇所を検出する技術、検出した冗長な個所の候補が真に冗長かを判定する技術、冗長な個所を簡素な表現への言い換える技術があればよいと想定している。すなわち、同一・類似箇所の検出には情報検索の技術があればよく、真に冗長かを判定するためには、機械学習の技術があればよく、簡明な表現への言い換えには言い換えの技術があればよい。本発明者は、情報検索、機械学習、言い換えの技術を含む自然言語処理の分野で多くの研究実績を有しており、この冗長な文章の改善方法のスキームは、冗長な文章の改善という新しい課題に、本発明者の持つ豊富な知識・経験があわせ重なることで初めて実現可能となったものであり、従来技術に対して優れた文章の改善効果を有する。すなわち、以下のスキームは、教師あり機械学習、言い換え技術に精通し、かつ、文書校正、文章推敲にも精通している者でないと思いつきにくいものであり、従来技術に対して新規性、進歩性ともに高い。
まず、大雑把に冗長な文を収集するために、文章の冗長度を定義する。簡単には、ある一定の語数における語の異なり数の逆数を、文章の冗長度(冗長性の度合い)と定義する。このとき、同義語や類義フレーズを同じ語として扱うことにより、同じ語を使わない場合も冗長度が高くなる工夫をする。さらに、ある一定の単語数における単語の連想語の異なり数の逆数を、文章の拡張冗長度と定義して利用する。拡張冗長度は同じ単語や同義語を使わなくても同じことを意味する文により生じた冗長性を検出できる可能性がある。連想語の取得には共起語や非特許文献[Large Scale Relation Acquisition Using Class Dependent Patterns, Stijn De Saeger, Kentaro Torisawa, Jun'ichi Kazama, Kow Kuroda, and Masaki Murata, the IEEE International Conference on Data Mining series (ICDM 2009), 査読有, pp.764-769, 2009.]で獲得する因果関係知識を利用できる。また意味を持たない単語が多く出現した場合に冗長度が高くなるように、情報検索で利用されるTF・IDFの利用を検討する。同じ語が用いられても係り先が異なると必要な語の場合もあるため、単語の係り受けも冗長度の計算の際に考慮する。新聞、ウィキペディア、QAサイトの文章、学生の文章、政治家の発言の文章において、上記で定義した冗長度を計算し、冗長度の高いデータを収集する。
すなわち、一部繰り返しにはなるが、この冗長な文章の改善方法のスキームでは、上記のように文章の冗長性をまず定義し、その冗長性を利用して大雑把に冗長な文章の集合を収集する。収集したデータを、同一・類似箇所検出技術・学習に基づく冗長性判定技術・冗長な表現の簡素な表現への言い換え技術により分析することで、冗長な文章の改善に役立つ言語的特徴を明らかにするとともに、冗長な文章の改善のための支援技術を構築する。この冗長な文章の改善方法のスキームでは以下のレベルのものを扱う。
レベルA.一文内の冗長性
レベルB.一段落内の冗長性(複数の文にまたがる冗長性)
レベルC.一文書内の冗長性(複数の段落にまたがる冗長性)
この冗長な文章の改善方法のスキームでは、特にこのような冗長性の定義に限定するわけではないが、例えば、ある一定の語数における語の異なり数の逆数を、文章の冗長性(冗長性の度合い)と定義する。このとき、異なる語であっても同一の内容を示すものが複数ある場合や、意味を持たない語が多数ある場合に、冗長性を高くする工夫をする。
この冗長な文章の改善方法のスキームでは、新聞、ウィキペディア、QAサイトの文章、学生の文章、政治家の文章を解析対象のテキストデータとして用いる。これらの文章から、定義した冗長性により、レベルA,B,Cの冗長な文章の候補を取得する。取得した冗長な文章の候補において、この冗長な文章の改善方法に用いるために新たに構築する同一・類似箇所検出技術により、離れた個所にある同一・類似内容の語・文・段落同士を検出する。検出された個所を参考に、人手でどういう点が冗長であったかを考察し、冗長でない文章に書き換える作業を行う。この作業を通じて、冗長な表現と冗長でない表現を収録した冗長性判定用データベースと、冗長な表現と修正した表現の対を記載した冗長性修正文集合データベースと、をあわせて例えば1.5万文を越える規模で作成する。そして、同一・類似箇所検出技術による同一・類似内容個所の提示は冗長性の改善の支援技術としても利用する。
この冗長な文章の改善方法のスキームでは、冗長性判定用データベースを教師あり機械学習法で学習することで、真に冗長な文章の検出を行える(冗長性判定技術)。機械学習は冗長な文章の検出のみならず、検出の際の学習により冗長な文章の言語的特徴も出力できる。これは、冗長な文章の改善のための有益な知見となる。また、冗長性修正文集合データベースを機械学習することで、冗長な文章の自動修正が可能となると同時に、冗長な文章の修正に関わる言語的特徴の知見を獲得できる。冗長性修正文集合データベースに言い換え技術を利用することで、冗長性の改善のための文パターンや規則を獲得できる(簡素な表現への言い換え技術)。これらのパターンや規則も冗長性の改善に役立つ知見・支援技術の一部である。
先に背景技術の欄で述べたように、従来公知の文章の改善方法としては、主に、語の修正・適切な語の選択、語順の修正・誤った係り受け表現の修正についての研究成果が報告されている。これに対して、この冗長な文章の改善方法のスキームでは、従来公知の文章の改善方法では、ほとんど研究されていない冗長な表現の改善という新しい課題を、同一・類似箇所検出技術・学習に基づく冗長性判定技術・簡明な表現への言い換え技術により機械的に高度に扱う点が独創的である。
また、この冗長な文章の改善方法のスキームは、冗長な文章を簡潔な文章に変換する技術のため、一見すると従来公知の要約の研究に類似するようにも思える。ここで、文書要約技術は、重要文抽出技術(重要な文を抽出することで要約とする)及び自由要約(文を抽出するだけでなく、言葉を言い換えながら要約する)の2種類に分けることができる。
これらのうち、重要文抽出技術では、最初の文が重要なことが多い。また、主要なキーワードを多く含む文も重要なことが多い。重要文抽出技術では、例えば、「鳥取機械工業は十八日、系列の米子医療機器(資本金七億円、本社・鳥取市、鳥取太郎社長)を一〇〇%子会社化すると発表した。同社は鳥取機械工業が六割、倉吉プラスチックが四割出資しており、鳥取機械工業は倉吉プラスチックが所有する全株式四千株を三億円で買収する。」という文章から「鳥取機械工業は十八日、系列の米子医療機器(資本金七億円、本社・鳥取市、鳥取太郎社長)を一〇〇%子会社化すると発表した。」という文を抽出する。
これらのうち、自由要約技術では、削除・追加する規則を作成し、それにより文を言い換えて要約する(括弧内を削除等)。自由要約技術では、例えば、「鳥取機械工業は十八日、系列の米子医療機器(資本金七億円、本社・鳥取市、鳥取太郎社長)を一〇〇%子会社化すると発表した。同社は鳥取機械工業が六割、倉吉プラスチックが四割出資しており、鳥取機械工業は倉吉プラスチックが所有する全株式四千株を三億円で買収する。」という文章から「鳥取機械工業は十八日、系列の米子医療機器を一〇〇%子会社化すると発表した。」という文を抽出する。
しかし、これらの要約技術では文意が変化してもよい(すなわち、要約も冗長性をさげることに役立つが、情報に欠落がある)が、この冗長な文章の改善方法のスキームでは文意が変化してはいけない(情報の欠落を起こさずに冗長性を下げる)点が異なり、これにより要約技術よりも精密な処理が必要であり、より高度な技術の開発が必須となる。また要約技術の研究は読み手を支援する技術であるが、この冗長な文章の改善方法のスキームは書き手を支援する技術である点が異なる。
すなわち、この冗長な文章の改善方法のスキームでは、同一・類似箇所検出技術・学習に基づく冗長性判定技術・冗長な表現の簡明な表現への言い換え技術を利用した分析により、どのような言語的特徴が冗長な表現の原因となるかを明らかにすることができる。また、この冗長な文章の改善方法のスキームで用いられる冗長な文章の改善に役立つ二種類のデータベースが構築されて広く公開されれば、今後の種々の研究や技術開発に役立つ。
そして、この冗長な文章の改善方法のスキームは、従来公知の推敲システムであまり扱われていなかった冗長な表現の修正を可能にするため、従来公知の場合にくらべて推敲システムの扱える範囲が増え、推敲システムの発展に寄与する。さらに社会的に広く見れば、この冗長な文章の改善方法のスキームが会話・通信・会議にも応用されることにより、種々のコミュニケーションにおける冗長性の減少により、人間活動の大幅な効率化につながる。
[装置の構成の説明]
図2は、実施形態に係る情報解析装置1000の全体構成を説明するための機能ブロック図である。この情報解析装置1000を用いれば、上記の冗長な文章の改善方法のスキームを効率かつ精度良く実行することができる。すなわち、この情報解析装置1000を用いれば、上記のスキームで定義する冗長性を用いて、大雑把に冗長な文章の集合を取得し、こうして収集したデータを、同一・類似箇所検出技術・学習に基づく冗長性判定技術・冗長な表現の簡明な表現への言い換え技術を利用して分析することで、冗長な文章の改善に役立つ言語的特徴を明らかにすることができる。さらに、この情報解析装置1000を用いれば、その知見に基づき、冗長な文章の改善に役立つ支援技術を構築することができる。すなわち、この情報解析装置1000を用いれば、具体的には同一・類似箇所検出技術により重複して記述された冗長な個所を特定し、機械学習により真に冗長な表現を検出し、言い換え技術により冗長な表現の簡潔な表現への言い換えを実現することができる。
上記のスキームで一文内の冗長な表現の検出に関する支援技術を構築する場合を例にとって説明すれば、まず、大雑把に冗長な文を収集するために、後述する冗長性判定部113で用いるための文章の冗長性を定義する。例えば、ある一定の語数における語の異なり数の逆数を、文章の冗長性(冗長性の度合い)と定義する。このとき、後述する同一・類似箇所検出部107において、同義語や類義フレーズを同じ語として扱うことにより、同じ語を使わない場合も冗長性が高くなる工夫をする。
さらに、後述する冗長性判定部113では、ある一定の単語数における単語の連想語などの異なり数の逆数を、文章の拡張冗長性と定義して利用する。拡張冗長性は同じ単語や同義語を使わなくても同じことを意味する文により生じた冗長性を検出できる可能性がある。また、後述する冗長性判定部113では、連想語の取得には共起語や本発明者の過去の研究[Large Scale Relation Acquisition Using Class Dependent Patterns, Stijn De Saeger, Kentaro Torisawa, Jun'ichi Kazama, Kow Kuroda, and Masaki Murata, the IEEE International Conference on Data Mining series (ICDM 2009), pp.764-769, 2009.]に記載されているような従来公知の手法で獲得する因果関係知識を利用できる。
なお、本発明者の非特許文献("連想知識を用いた端的な要約の生成"、瀧川 和樹, 村田 真樹, 土田 正明, Stijn De Saeger, 山本 和英, 鳥澤 健太郎、言語処理学会第16回年次大会 PA1−7、東京大学,東京,2010年 3月.pp.298−301)での共起語の取得方法を利用して得られた共起語を連想語として用いてもよい。このようにして、複数の文、段落、テキストデータなどに存在する共起語を連想語として利用してもよい。
本非特許文献の手法では連想知識として共起情報を用いて入力文章(1文でも良い)を換言し、要約前の文章をなるべく適切に連想できる表現を良い要約とする手法を提案する。具体的には、入力から連想される語を共起語と仮定し、入力内に存在する各名詞と共起する語をそれぞれ取得する。得られた共起する語を要約の候補とし、以下の2つの基準を最も満たす候補を要約として出力する。
(i) 要約結果から十分に原文の内容を連想できる。
(ii) 要約結果から原文の内容にないものがなるべく連想されない。
本非特許文献の手法では連想知識として共起情報を用いる。共起情報には、その共起強度を示す相互情報量やダイス係数などの指標があるが、本非特許文献の手法では簡便な情報である共起頻度を用いる。具体的には、例えば、5,000万のWeb文書内に存在する各文に対し、共起関係にある2つの名詞と、その共起頻度をリスト化したものを用いることができる。リストは、「名詞W」「Wに共起する名詞」「共起頻度」の3つの要素で構成されている。本非特許文献の手法では、このリストに存在する単語Wに対しスコアが上位N語以内に入っている共起する名詞すべてをWに対する共起語と呼ぶ。たとえば、W="発生"としたとき、リストは表1のようになっている。
このとき、N=5とすれば、"発生"に対する共起語は「問題,損害,エラー,利用,地震」となる。ただし、この共起頻度は処理負担軽減のため、近似的なものとなっている。
本非特許文献の手法のおおまかな流れは以下の通りである。
1. 入力文章に存在する名詞を取得
2. 取得した各名詞の共起語を取得
3. 取得した共起語に対し、上記の基準(i),(ii)に基づく評価値を計算
4. 評価値が最も高い共起語を要約(連想語)として出力
入力文の名詞取得
入力文章から名詞を取得する。そのために、入力に対して形態素解析を行う。形態素解析にはJUMANを用いることができる。形態素解析の結果、品詞が「名詞」となった単語を抽出する。さらに複合名詞を考慮するため、隣り合う形態素の品詞が両方とも名詞であった場合、これらを1つの名詞として取得する。また、日本語の場合、カタカナで書かれた言葉は外来名詞であることが多い。よって、品詞が「未定義語−カタカナ」となった語も取得する。
出力候補の取得
要約として出力する単語の候補を取得する。その候補として、入力内の名詞に対する共起語を用いる。これは、入力にあった名詞から連想されやすい名詞ほど端的な要約としてふさわしいと考えるからである。入力から得られた各名詞をWとし、共起語を取得する。本手法ではN=50で固定してもよい。以下、ここで取得した単語を「出力候補」と呼ぶ。
評価値の算出
取得された出力候補の中から、実際に出力する語を選択する。そのために、上記のようにして述べた2つの基準を数値化し、それを評価値として用いる。入力の内容を正解の情報とすると、基準(i)は、その正解の情報をどれだけ漏らさずに取り出せるかを示していると言える。よってこれは再現率に類似する。また基準(ii)は、要約から想起されるものがどれだけ入力の内容を逸脱しないかを示しているといえる。よってこれは適合率に類似する。これらを今回の手法に当てはめると、それぞれの基準は以下のように考えることができる。
・1の基準は、出力候補の共起語(=出力から連想できる内容)が入力に含まれる名詞(=正解の情報)を多く持つほど良いと言い換えられる。
・2 基準は、出力候補の共起語が入力に含まれない名詞(=誤りの情報)をできるだけ持たないほど良いと言い換えられる。
このことから、各出力候補の共起語を取得し、それを用いて評価値を算出する。ただし、入力の名詞以外にも入力文の内容を示す名詞は存在し得る。例えば、入力にある名詞の共起語(つまり出力候補)は、入力の話題を含んでいる場合がある。これに基づくと、基準(ii)の「入力の内容を逸脱しない」という意味では、入力にある名詞の共起語も正解とする方法も考え得る。そこで、基準(ii)においては「入力内にある名詞のみを正解とする場合」と、「入力内にある名詞及びその共起語を正解とする場合」の2通りの評価値を用意した。実際の手法では、どちらかの評価値しか用いない。これらを踏まえて、出力候補をcとすると各評価値は以下の式から求められる。基準(i)を数値化した評価値をRecall(c),基準(ii)で、入力内にある名詞のみを正解とする場合の評価値をPrecision 1(c),入力内にある名詞及びその共起語を正解とする場合の評価値をPrecision 2(c),Recall(c) とPrecision 1(c)(あるいはPrecision 2(c))の調和平均をF−measure(c)とする。
ここで、Input Wordは入力から取得されたすべての名詞の集合,Related Word(x)はxから得られた共起語の集合,|U|は集合Uの要素数とする。この式により出力候補すべての評価値を算出する。
出力候補の並び替え
出力候補を、評価値の良い順に並び替える。そして、最も良い評価値を持つ出力候補を要約結果として出力する。一般的には、Recall(c)とPrecision(c)の調和平均であるF−measure(c)の値を優先的に用いて並び替えを行うのが好ましいが、Recall(c)やPrecision(c)を優先した並び替えを行っても良い。
例として、本非特許文献の手法による実行手順を示す。入力として「良い企業に内定をもらうため、面接の練習を毎日行う。」という文を与えたとする。この入力文からは「企業,内定,ため,面接,練習,毎日」という6語の名詞が得られる。次に、得られた各名詞の共起語を50語取得する。それぞれの名詞からはそれぞれ複数の共起語が得られる。この共起語が出力候補となる。評価値を求めるため、各出力候補の共起語を取得する。次に、得られた評価値の値が高い順に並び替える。例えば、出力候補をRecall(c)優先で並び替える場合、「就職活動」が最も高いスコアとなる。よって、この入力文の要約は「就職活動」となる。
また、後述する冗長性判定部113では、意味を持たない単語が多く出現した場合に冗長性が高くなるように、情報検索で利用されるTF・IDFの利用を検討してもよい。同じ語が用いられても係り先が異なると必要な語の場合もあるため、単語の係り受けも冗長性の計算の際に考慮することが好ましい。
この情報解析装置1000は、解析対象のテキストデータを取得する解析データ取得部102を備える。上記のスキームでは、この解析データ取得部102は、新聞、ウィキペディア、QAサイトの文章、学生の文章、政治家の発言の文章において、上記で定義した冗長性を計算し、冗長性の高いデータを収集する。
また、この情報解析装置1000は、単語辞書、品詞辞書、同義語辞書、類義語辞書及び連想語辞書からなる群から選ばれる1種以上の辞書を参照する辞書情報参照部104を備える。これらの単語辞書、品詞辞書、同義語辞書、類義語辞書及び連想語辞書などは、いずれも独自の辞書を構築してもよいが、最新辞書の活用及び利便性を考えれば、従来公知の辞書をインターネットをはじめとする外部のネットワーク122を介して辞書情報参照部104により参照することが容易である。
なお、後述する形態素解析部106において形態素解析ツール(Chasenなど)を用いた場合には、形態素解析ツール(Chasenなど)でも単語辞書を使うため、形態素解析部106は辞書情報参照部104との間で単語辞書データのやりとりが行えるように設計されていてもよい。この場合、形態素解析部106において形態素解析ツール(Chasenなど)を行った場合にも、やはり形態素解析ツール(Chasenなど)に付随する単語辞書などを用いることになる。
また、この情報解析装置1000は、同一テキストデータ中に同一単語を複数含む場合、又は同一テキストデータ中に特定の名詞に対応する他の品詞、又は同一テキストデータ中に同義語、類義語又は連想語を複数含む場合に、当該同一単語同士、対応品詞同士、同義語同士、類義語同士又は連想語同士を同一・類似箇所として検出する同一・類似箇所検出部107を備える。上記のスキームでは、この同一・類似箇所検出部107は、離れた個所にある同一・類似内容の語や表現を検出する同一・類似箇所検出技術として構築される。なお、この同一・類似箇所検出部107は、後述する冗長性判定部113での冗長性の計算に用いるものと同様の技術を利用することで、異なる表現でも同一の内容を示す表現対も取得できるようにしておくことが好ましい。すなわち、この同一・類似箇所検出部107は、先に解析データ取得部102で収集した冗長性の高い文において、同一・類似箇所検出技術を利用して、同一・類似箇所を検出する。この場合、後述する冗長性判定部113が、任意の領域の冗長性を同一・類似箇所検出部107による同一・類似箇所に関する検出結果に基づいて判定するように構成されていることが好ましい。
ここで、同一・類似箇所検出技術としては、以下に列挙する技術を利用可能である。
1.単語同士の同一・類似箇所の検出
同一の単語同士を、同一・類似箇所とすればよい。
例えば、
「まず初めに円高の解決に向けた解決策の検討を考えたい。」
の文の、2か所の解決同士が、同一の単語同士であり、同一・類似箇所である
なお、単語同士の同一・類似箇所を検出する際に、同義語や類義語を利用してもよい。
例えば、「まず」と「初めに」が同義語としてわかっていれば、
「まず初めに円高の解決に向けた解決策の検討を考えたい。」
の文の、「まず」と「初めに」が、同一・類似箇所である。
上記は同一文内に限らず、異なる文の同一単語(同義語や類義語)、異なる段落の同一単語(同義語や類義語)でも、同様に処理できる。
2.よく似た文同士の同一・類似箇所の検出
同じ単語を多く含む文同士を、同一・類似箇所とすればよい。
例えば、
「まず初めに円高の解決に向けた解決策の検討を考えたい。」
と
「まず円高の解決策を検討したい。」
が同じ文章中で離れた個所にあるとする。
これらは、
円高、解決策 検討
と同じ単語を多く含むため、同一・類似箇所と判断する。
より明瞭な同一・類似箇所とする判断基準としては、同じ単語のある個数が多いほどよいとする他、語数の割合、ベクトルの内積や角度、cos類似度でもとめてもよい。
語数の割合を用いる方法としては、
文1の語数をa、文2の語数をbとして、文1と文2で共通して出現する語をcとして、
2c/(a+b)としてもよいし、c*c/a/bとしてもよいし、これらに類似する式でもよい。
ベクトルを用いる方法では、単語の総数をベクトルの次元として、ベクトルの各要素に、各単語をわりあて、各要素の値はその単語が出現していれば1そうでなければ0をいれておくようにしてベクトルを構成する。これを文1と文2で行い、文1のベクトルをx、文2のベクトルをyとする。xとyの内積、cos(xとyの角度)の値を利用して、これらの大きいほど、同一・類似箇所としてもよい。また、ベクトルの要素は、0,1とせず、単語の頻度や、単語のTF・IDFなどとしてもよい。
これらの指標が大きいほど、同一・類似箇所としてよいとしてもよいし、閾値を定めて、それより大きければ同一・類似箇所とする方法、また、ある文章の範囲内の上位r個のみを同一・類似箇所とする方法でもよい。
3.よく似た段落同士の同一・類似箇所の検出
同じ単語を多く含む段落同士を、同一・類似箇所とすればよい。
例えば、
段落「まず初めに円高の解決に向けた解決策の検討を考えたい。これには政治主導が重要だ。」
と
段落「まず円高の解決策を検討したい。これには政治主導が重要だ。」
が同じ文章中で離れた個所にあるとする。
これらは、
円高 解決策 検討 政治 主導 重要
と同じ単語を多く含むため、同一・類似箇所と判断する。
より明瞭な同一・類似箇所とする判断基準としては、同じ単語のある個数が多いほどよいとする他、語数の割合、ベクトルの内積や角度、cos類似度でもとめてもよい。
語数の割合の方法としては、
段落1の語数をa、段落2の語数をbとして、段落1と段落2で共通して出現する語をcとして、
2c/(a+b)としてもよいし、c*c/a/bとしてもよいし、これらに類似する式でもよい。
ベクトルを用いる方法では、単語の総数をベクトルの次元として、ベクトルの各要素に、各単語をわりあて、各要素の値はその単語が出現していれば1、そうでなければ0をいれておくようにしてベクトルを構成する。これを段落1と段落2で行い、段落1のベクトルをx、段落2のベクトルをyとする。xとyの内積、cos(xとyの角度)の値を利用して、これらの大きいほど、同一・類似箇所としてもよい。
また、ベクトルの要素は、0,1とせず、単語の頻度や、単語のTF・IDFなどとしてもよい。
これらの指標が大きいほど、同一・類似箇所としてよいとしてもよいし、閾値を定めて、それより大きければ同一・類似箇所とする方法、また、ある文章の範囲内の上位r個のみを同一・類似箇所とする方法でもよい。
なお、上記の文同士、段落同士の処理でも、同義語や類義語を利用してもよい。例えば、同義語としてわかっている単語は同一として処理して、上記処理をしてもよい。また、類義語を利用する場合は、上記処理で類義語の類似度に応じて値が減る調整をしてもよい。例えば、共通して出現する単語の数cを上記でもとめたが、cの算出の際に、類似度がrの単語同士が出現していた場合は、cの計算の際にrを加算するという手がある(rは例えば0.3や0.5など0から1の値)。
いずれの場合にも、単語同士の類似度は別途類義語辞書で人手で定義しておくとよい。また、類義語辞書のかわりに、連想辞書や共起語辞書を用いて類似単語の効果を利用してもよい。例えば、ある語fとある語gの類似度をもとめたいとき、語fの共起語、語gの共起語をもとめて、共起語の重なり具合を類似度としてもよい。例えば、語fの共起語数をa、語gの共起語数をbとして、それらの共起語の重なった個数をcとして、類似度を、2c/(a+b)としてもよいし、c*c/a/bとしてもよいし、これらに類似する式としてもよい。
また、単語の総数をベクトルの次元として、ベクトルの各要素に、各単語をわりあて、各要素の値はその単語が共起語として出現していれば1、そうでなければ0をいれておくようにしてベクトルを構成する。これを語fと語gで行い、語fのベクトルをx、語gのベクトルをyとする。xとyの内積や、cos(xとyの角度)の値を、語fと語gの類似度としてもよい。
上記手法等により、離れた個所の類似する単語同士、文同士、段落同士を把握できる。把握した、単語同士、文同士、段落同士をわかりやすく、ユーザに提示し、これらの個所のどちらかが不要だとすれば削除することを促すという形で、冗長な文章の修正に役立てることができる。
いずれにしても、まずは、テキストデータが形態素解析部106にて品詞毎に分割される。形態素解析部106で用いる日本語の形態素解析エンジンとしては、以下のものを好適に活用できる。
KAKASI(kanji kana simple inverter)、kakasi.namazu.org
MeCab(和布蕪)、mecab.sourceforge.net
ChaSen(茶筌)、chasen.naist.jp
Juman、nlp.kuee.kyoto-u.ac.jp
Sen(MeCabのJava(登録商標)への移植)、ultimania.org、sen.dev.java.net
日本語形態素解析Webサービス(Yahoo!デベロッパーネットワーク)、developer.yahoo.co.jp
これらの中でも、例えば、公知の形態素解析ツールであるChaSenを用いることが好ましい。ChaSenを用いれば、日本語文を分割し、さらに、各単語の品詞も推定することができる。ChaSenを用いた日本語文の分割例を説明する。
例えば,「学校へ行く」を入力すると以下の結果を得る。
学校 ガッコウ 学校 名詞− 一般
へ ヘ へ 助詞−格助詞−一般
行く イク 行く 動詞−自立 五段・カ行促音便 基本形
EOS
各行に一個の単語が入るように分割され、各単語に読みや品詞の情報が付与される。
なお、英語の品詞タグつけシステムとしてはBrill(Transformation-Based Error-Driven Learning and Natural Language Processing: A Case Study in Part-of-Speech Tagging, Computational Linguistics, Vol.21, No.4, p.543-565, 1995. 参照)のものが有名であり、英語文の各単語の品詞を推定することができる。
このとき、例えば、形態素解析システムChaSenを使うと単語の分割と品詞推定ができる。そこで名詞のみを取り出すことで同一単語同士を抽出することができ、同じグループの名詞、動詞、形容詞などを取り出すことで、対応品詞同士を抽出することができる。また、既存の固有名詞抽出ソフトの利用も可能である。例えば日本語の固有名詞抽出エンジンとしては、Gensen(言選)gensen.dl.itc.u-tokyo.ac.jpを好適に活用できる。
さらに、この情報解析装置1000には、無意味語判定用データ参照部105が設けられており、無意味な用語を除去する精度を高めるために以下のTF及びIDFを用いたTF/IDF法を行う機能が搭載されていてもよい。一般にTFとIDFの積が大きい語ほど重要キーワードとして妥当なものとなる(すなわち、TFとIDFの積が小さい語ほど無意味な用語となる)。
TF−−−その文書でのその語の出現回数
IDF−−−その語があらかじめ持っている多数の文書のうち,何個の文書に出現するかのその個数の逆数
ここで、IDFを求めるためには、論文が複数必要である。そのため、例えば、複数の論文を用意して、その一つひとつを文書として扱ってIDFを求めることが好ましい。あるいは、IDFは論文のデータ以外のデータで求めて、それを本実施形態のIDFを求めるためのデータに使ってもよい。すなわち、論文に限らず文書データを集めて、それぞれの文書を一つ一つの文書と考えてIDFを求めてもよい。このようにして求めたIDFを本実施形態のIDFに使うことができる。TFについては、一つの文書での出現回数であるため、本実施形態では複数の論文の電子データ全体での出現回数とすればよい。
厳密には、TF・IDF法をカスタマイズした本実施形態の方法では、以下の計算を行う。
score(D) = Σ (tf(w,D)/(tf(w,D) + length/delta) * log(N/df(w)))
w∈Wで加算
W はユーザが入力するキーワードの集合。
tf(w,D)は文書Dでのwの出現回数。
df(w)は全文書でwが出現した文書の数。
Nは文書の総数。
score(D)が高い文書を検索結果として出力する。
lengthは記事Dの長さ。
deltaは記事の長さの平均。
記事の長さは、記事のバイト数、また、記事に含まれる単語数などを使う。
もっとも、例えばインターネット上の電子データからの連想語(この場合、共起語を連想語として扱う)の取り出しは、外部のサーバ126からネットワーク122を介して行ってもよい。例えば、自然言語処理(言語処理学会誌),2000年4月,7巻,2号,p.141〜p.160に記載されている手法を好適に用いることができる。具体的には、確立型手法の一つのRobertsonの2―ポアソンモデルを用いることができる。すなわち、TF*log(N/DF)または、後述する
score(D) = Σ (tf(w,D)/(tf(w,D) + length/delta) * log(N/df(w)))
w∈Wで加算
の式で表すΣで加算する前のものを単語wの重みとし、その単語の重みの高いものを取り出す方法である。また、電子情報通信学会、2003年12月,86巻,12号,p.959−963に記載されている手法を好適に用いることができる。具体的には、質問応答システムの一般的構成を応用したモデルを用いることができる。すなわち、解表現の推定、文書検索、解の抽出の3ステップを含む質問応答システムを応用したキーワードの抽出モデルである。また、情報処理学会、自然言語処理研究会、2004−NL−160、2004年、九州大学に記載されている手法を好適に用いることができる。
そして、上記のスキームでは、あらかじめ検出された類似個所を参考に、人手でどういう点が冗長であったかを考察し、冗長でない文に書き換えておく。そして、これを通じて、以下に示す、冗長性判定用データベース(不図示、例えばサーバ126中に格納されていてもよい)と冗長性修正文集合データベース(不図示、例えばサーバ126中に格納されていてもよい)をあらかじめ作成しておく。この冗長性判定用データベースには、冗長な文と冗長でない文が格納される。冗長性修正文集合データベースには冗長な文とそれを修正した文の対が格納される。
(例1)冗長性判定用データベース
冗長な文:「まず初めに円高の解決に向けた解決策の検討を考えたい。」
冗長でない文:「鳥取大学で鳥取の歴史についての講演があった。」
(例2)冗長性修正文集合データベース:
冗長な文:「まず初めに円高の解決に向けた解決策の検討を考えたい。」
修正後の文:「まず円高の解決策を検討したい。」
これらのデータベースをあわせて5,000万文を越える規模のものを作成することが好ましい。大雑把な冗長性による取得では冗長性大とされた文であっても、同一・類似箇所検出技術と人手のチェックにより、冗長でないと判定された文は例1の冗長性判定用データベースに格納される。例1の冗長な文は、「まず初めに円高の解決に向けた解決策の検討を考えたい。」において、「まず」と「初めに」が同義語であり、この個所が冗長とまずわかる。また、「解決」という語が二回出現しており、その個所も冗長であるとわかる。例1の冗長でない文は、「鳥取」という語を二回含み一見冗長と見えるがどちらの「鳥取」という語を削除しても可読性が下がるため、冗長ではない。
なお、冗長性修正文集合データベースの作成方法にはさらに次のような方法も好ましい。すなわち、あらかじめ元の文章とその文章を修正した文章の対のデータを別途準備し、その対において冗長性の下がっているデータをこのデータベースに追加して、冗長性修正文集合データベースを作成してもよい。また、冗長性判定用データベース、冗長性修正文集合データベースの作成では、ある程度の量のデータベースができた時点で、それを学習して得た知見による効率的なデータベース作成を行うことが好ましい。冗長性判定用データベースを、教師信号として機械学習することで、未知の文でも冗長か否かを判定できるようになる。
また、この情報解析装置1000は、検出された同一・類似箇所の情報に基づいて任意の領域の冗長性を判定する冗長性判定部113を備える。上記のスキームでは、この冗長性判定部113は、一文内の任意の表現の冗長性の判定に用いられる。すなわち、上記の冗長性判定用データベースを教師データとして利用して、教師あり機械学習[Using the Maximum Entropy Method for Natural Language Processing: Category Estimation, Feature Extraction, and Error Correction, Masaki Murata, 他7名, Cognitive Computation, pp.1-8, 2010.及びAnalysis and Improved Recognition of Protein Names Using Transductive SVM, Masaki Murata, 他2名, Journal of Computers, Volume 3, Isuue 1, pp.51-62, 2008.]により、与えられた文が真に冗長であるか否かを自動判定する冗長性判定技術を用いて冗長性判定部113を構築する。
ここで、機械学習では素性(機械学習を行う際に機械が着目する情報のこと)が重要となる。素性としては、同一・類似内容を示す二語の単語や品詞や意味や関係する係り受け情報、またその二語の距離、二語の間にある語、二語の周りにある単語、その文の構造などを用いる。機械学習を行うと、どの素性が判定に有効であるかが分析できる。この結果から、どういう言語的特徴を持っていると冗長なもの(または冗長でないもの)となるかを分析できる。この技術により、例えば同一語の一部が別の複合語の一部の場合は冗長でないという言語的特徴を取得できる。また、冗長性判定技術に加え冗長性や同一・類似箇所検出技術自体も冗長な表現の検出に役立つ。可能であれば、これらの技術の有効性を確かめる被験者実験も行った上で冗長性判定部113を構築することが好ましい。
また、この冗長性判定部113には、所定の語数における語の異なりに基づいて算出される冗長性とする冗長性計算部114が設けられている。冗長性計算部114では、ある一定の語数における語の異なり数の逆数を、文章の冗長度(冗長性の度合い)と定義して好適に用いることができる。また、特に限定するものではないが、例えば、ある一定の単語数における単語の連想語などの異なり数の逆数を、文章の拡張冗長度(拡張した冗長性の度合い)と定義して利用することができる。この場合、拡張冗長性は同じ単語や同義語を使わなくても同じことを意味する文により生じた冗長性を検出できる可能性がある。なお、本明細書において、「冗長性」又は「冗長度」と記載した場合には、文章の冗長度(冗長性の度合い)又は文章の拡張冗長度(拡張した冗長性の度合い)を含むものとする。
また、この冗長性計算部113は、上記のテキストデータを上記の1種以上の辞書を参照して解析して、同一テキストデータ中に同一単語を複数含む場合、同一テキストデータ中に特定の名詞に対応する他の品詞を複数含む場合、同一テキストデータ中に互いに対応する同義語を複数含む場合、同一テキストデータ中に互いに対応する類義語を複数含む場合、又は同一テキストデータ中に互いに対応する連想語を複数含む場合に、当該同一単語同士、対応品詞同士、同義語同士、類義語同士又は連想語同士を互いに異ならない語であると判定するように構成されていることが好ましい。この場合、冗長性計算部113による文章の拡張冗長性の計算精度がより高まることになる。
ここで、冗長性計算部113における冗長性の計算例としては、単純に所定の語数における語の異なりに基づいて算出してもよいが、特にこの算出方法に限定する趣旨ではない。他にも、例えば、ある一定の単語数における単語の連想語などの異なり数の逆数を、文章の拡張冗長性と定義して利用することができる。
あるいは、無意味語判定用データ参照部105の場合と同様に、冗長性計算部113においても、無意味な用語を除去する精度を高めるために以下のTF及びIDFを用いたTF/IDF法を行う機能が搭載されていてもよい。一般にTFとIDFの積が大きい語ほど重要キーワードとして妥当なものとなる(すなわち、TFとIDFの積が小さい語ほど無意味な用語となる)。この場合、TFとIDFの積が小さい語が多く含まれているほど、その文章は冗長性が高いと判定すれば良い(また、TFとIDFの積が小さい語は冗長性の高い箇所であると判定すれば良い)。
TF−−−その文書でのその語の出現回数
IDF−−−その語があらかじめ持っている多数の文書のうち,何個の文書に出現するかのその個数の逆数
まず、単純な例として、ある一定単語数(ここでの一定単語数は1とする)における異なり単語数の逆数を冗長性と定義した場合の計算例を示す。
例文を「まず初めに円高の解決に向けた解決策の検討を考えたい。」とする。
単語に分割すると
「まず 初め に 円高 の 解決 に 向けた 解決 策 の 検討 を 考え たい 。」
となる。単語の異なりは、
「まず 初め に 円高 の 解決 向けた 策 検討 を 考え たい 。」
であり、単語の異なり数は、13である。
のべの単語数は、17である。
1単語あたりの、単語の異なり数は、13/17となる。冗長性はこれの逆数のため、17/13となる。
また、「まず円高の解決策を検討したい。」の文でも冗長性を計算してみる。まず単語に分割する。
「まず 円高 の 解決 策 を 検討 したい 。」
単語ののべ数は、9個であり、また、単語の異なり数も9個である。1単語あたりの、単語の異なり数は、9/9=1となる。冗長性はこれの逆数のため、1となる。
これより、「まず初めに円高の解決に向けた解決策の検討を考えたい。」の冗長性が、17/13であり、「まず円高の解決策を検討したい。」の冗長性は、1であり、「まず初めに円高の解決に向けた解決策の検討を考えたい。」の方が冗長性が高いということがわかる。これは実際に、「まず初めに円高の解決に向けた解決策の検討を考えたい。」の方が、解決が複数出現しているなど、冗長性の高い文であり、上記冗長性の算出結果は人間の直感にもあう。
ここでは全単語で冗長性を算出したが、助詞、助動詞などの付属語を削除した冗長性をもとめてもよい。以下にその場合の例を示す。
例文を「まず初めに円高の解決に向けた解決策の検討を考えたい。」とする。
単語に分割すると
「まず 初め に 円高 の 解決 に 向けた 解決 策 の 検討 を 考え たい 。」
となる。付属語を削除すると
「まず 初め 円高 解決 向けた 解決 策 検討 考え」
となる。ここでは句読点も削除することとしている。単語の分割や品詞の特定は形態素解析技術により実現できる。その結果自立語(名詞や動詞など)とされた以外のものを削除すればよい。
ここで冗長性をもとめる。単語の総数は、9個であり、異なり単語の総数は、8個であり、冗長性は、9/8となる。
さらに、名詞だけを使って冗長性をもとめることも可能である。
例文を「まず初めに円高の解決に向けた解決策の検討を考えたい。」とする。
単語に分割すると
「まず 初め に 円高 の 解決 に 向けた 解決 策 の 検討 を 考え たい 。」
となる。名詞以外を削除すると
「初め 円高 解決 解決 策 検討」
となる。サ変名詞は、名詞とした。初めはここでは、名詞とした。
ここで冗長性をもとめる。単語の総数は、6個であり、異なり単語の総数は、5個であり、冗長性は、6/5となる。
ここでは、単語ごとで個数を数えるという処理としたが、文字単位、または文節単位で処理してもよい。
次に、同義語を使った冗長性の計算例を示す。同義語として、ここでは、「まず」と「初めに」は同義語であると辞書にあるとする。また、同義語は同じ単語として異なり数を計算する。またここでは自立語のみを使うことにする。
例文を「まず初めに円高の解決に向けた解決策の検討を考えたい。」とする。
単語に分割すると
「まず 初め に 円高 の 解決 に 向けた 解決 策 の 検討 を 考え たい 。」
となる。自立語以外を削除すると
「まず 初め 円高 解決 向けた 解決 策 検討 考え」
となる。ここで冗長性をもとめる。単語の総数は、9個であり、異なり単語の総数は、7個(解決と解決が同じ、また、まずと初めにも同じとするため)であり、冗長性は、9/7となる。同義語を使うことで、より適切に冗長性を計算できる。
次に、類義語を利用した冗長性の計算例を示す。
既に説明したように、冗長度計算の際には、単純な例として、ある一定単語数(ここでの一定単語数は1とする)における異なり単語数の逆数を冗長性と定義する。この場合は冗長性は下記式で表されます。
冗長性=異なり単語数/のべ単語数
(冗長性は、ある一定単語数における異なり単語数の逆数であるが、ある一定単語数を1とすれば、冗長性は、(異なり単語数/のべ単語数)の逆数となり、のべ単語数/異なり単語数となる。)
ここで、類義語を利用する際、語fと語gが出現して、語fと語gの類似度がr(rは例えば0.3や0.5など0から1の値、類似するほど大きい値)であったとする。同義語の場合はr=1、完全に意味的に異なる単語で類似しない場合はr=0とする。
語fと語gは異なる単語であるので、単純には、異なり単語数をもとめる際、これらの単語については、異なり単語数は2となるが、類義語を考慮して、異なり単語数を2−rとしておいてもよい。例えば、同義語の場合だと、異なり単語数は2−1=1となる。
単語の類似度は、類義語辞書であらかじめ各単語同士の類似度を人手で定めておいてもよいし、下記の方法を使ってもよい。
例えば、類義語辞書のかわりに、連想辞書や共起語辞書を用いて類似単語の効果を利用してもよい。具体的には、ある語fとある語gの類似度をもとめたいとき、語fの共起語、語gの共起語をもとめて、共起語の重なり具合を類似度としてもよい。例えば、語fの共起語数をa、語gの共起語数をbとして、それらの共起語の重なった個数をcとして、類似度を、2c/(a+b)としてもよいし、c*c/a/bとしてもよいし、これらに類似する式としてもよい。
また、単語の総数をベクトルの次元として、ベクトルの各要素に、各単語をわりあて、各要素の値はその単語が共起語として出現していれば1、そうでなければ0をいれておくようにしてベクトルを構成する。これを語fと語gで行い、語fのベクトルをx、語gのベクトルをyとする。xとyの内積や、cos(xとyの角度)の値を、語fと語gの類似度としてもよい。
次に連想辞書、共起語を使った処理について記載する。
例えば、名詞Aに対して名詞Bが共起語としてある場合を考える。また、この名詞Bは名詞Aの連想語としても考えることができる。すなわち、連想辞書を利用した処理は、共起語を利用した処理と同様である。そのため、ここでは、共起語を利用した処理について説明する。
ここでは、簡単のため、例文は、「まず 初めに」だけとする。「まず」の共起語として、「すべき」「とりかかる」「第一に」があったとする。「初めに」の共起語として、「すべき」「とりかかる」「言いたい」があったとする。
共起語は、同じ文中にあった単語を取り出し、同じ文中にあった個数が最も大きい3個を利用することとして、上記3個の共起語が得られたとする。共起語の取り出しは他の方法でもよい。
ここでは、ある一定の単語数(ここでは一定の単語数を1とする)における単語の共起語の異なり数の逆数を、文章の拡張冗長性と定義するものとする。
「まず 初めに」の個所の単語ののべ数は、2個である。共起語の異なり数は、「すべき」「とりかかる」「第一に」「言いたい」なので、4個である。ある一定の単語数(ここでは一定の単語数を1とする)における単語の共起語の異なり数は、4/2=2である。冗長性は、その逆数であるので、文章の拡張冗長性は、1/2となる。
次に、「まず」を例文とする。
「まず」の共起語として、「すべき」「とりかかる」「第一に」があったとする。「まず」の個所の単語ののべ数は、1個である。共起語の異なり数は、「すべき」「とりかかる」「第一に」なので、3個である。ある一定の単語数(ここでは一定の単語数を1とする)における単語の共起語の異なり数は、3/1=3である。冗長性は、その逆数であるので、文章の拡張冗長性は、1/3となる。
「まず 初めに」の拡張冗長性は1/2であり、「まず」の拡張冗長性は1/3であり、「まず 初めに」の方が、「まず」より、冗長性が大きい。これは、「まず」と「初めに」がほぼ同様の内容を意味しており、「まず 初めに」は冗長性の高い表現であり、直観にあう結果である。
この例では、共起語や連想辞書の利用により、「まず」と「初めに」が同義語であるということがわかっていなくても、「まず」と「初めに」の併用による冗長性を把握できる効果がある。すなわち、同義語辞書がなくても、共起語や連想辞書の利用により処理できる場合があることがわかる。
また、共起語を利用する別の例を示す。
例文「銃殺により殺害された。」
を考える。ここでは名詞のみを考える。
「銃殺 殺害」となる。
「銃殺」の共起語として「ピストル」「死亡」「殺す」
「殺害」の共起語として「死亡」「殺す」「犯人」
があったとする。
「銃殺 殺害」の個所の単語ののべ数は、2個である。共起語の異なり数、「ピストル」「死亡」「殺す」「犯人」なので、4個である。ある一定の単語数(ここでは一定の単語数を1とする)における単語の共起語の異なり数は、4/2=2である。冗長性は、その逆数であるので、文章の拡張冗長性は、1/2となる。
「銃殺」と「殺害」で、共起語に多くの重なりがあるため、拡張冗長性は比較的大きな値となる。すなわち、先の「まず 初めに」の場合と同様の結果になる。
「銃殺」と「殺害」は、同義語ではないが、意味的に、殺すという意味が含まれており、意味の重なりが多いという意味では、これらの表現を併用するのは冗長である。共起語や連想辞書を利用した処理は、同義語ではないが意味の重なりが多く冗長になっている個所の検出にも役立つ。
意味を持たない単語を利用した処理
付属語、向ける、検討、考える
は比較的意味を持たないと思われる。これらを意味を持たない単語と考える。
これらの意味を持たない単語は、外部のサーバ126などに格納されている無意味語判定用データベースから、インターネットなどのネットワーク122経由で無意味語判定用データ参照部105を用いて取得されてもよい。
冗長性を考える際には、意味を持たない単語は数えないこととする。ただし、一定の範囲の単語数の算出には、意味を持たない単語を数えることとする。
すなわち、
冗長性=一定範囲の単語数/単語の異なり数
という式で冗長性を表現する際に、上記式の分子では、意味を持たない単語は数えないこととし、分母では、意味を持たない単語の数えることとする。
以下に具体例を示す。
例文を「まず初めに円高の解決に向けた解決策の検討を考えたい。」とする。
単語に分割すると
「まず 初め に 円高 の 解決 に 向けた 解決 策 の 検討 を 考え たい 。」
となる。
単語ののべ数は、16となる。
単語の異なり数をもとめる。このとき、意味を持たない単語である、
付属語、向ける、検討、考える
の個数を数えずに、異なり数を数えるとすると、
「まず 初め 円高 解決 策」
となり、異なり数は5となる。
冗長性=一定範囲の単語数/単語の異なり数
の式より、冗長性が16/5となる。
また、「まず円高の解決策を検討したい。」の文でも冗長性を計算してみる。まず単語に分割する。
「まず 円高 の 解決 策 を 検討 したい 。」
単語ののべ数は、9個である。
単語の異なり数をもとめる。このとき、意味を持たない単語である、
付属語、向ける、検討、考える
の個数を数えずに、異なり数を数えるとすると、
「まず 円高 解決 策」
となり、異なり数は4となる。
冗長性=一定範囲の単語数/単語の異なり数
の式より、冗長性が9/4となる。
「まず初めに円高の解決に向けた解決策の検討を考えたい。」の冗長性は16/5、「まず円高の解決策を検討したい。」の冗長性は9/4である。「まず初めに円高の解決に向けた解決策の検討を考えたい。」の方が圧倒的に冗長性が高い。これは、「まず初めに円高の解決に向けた解決策の検討を考えたい。」の方が長々とわかりにくく発言しているような感じになっており、実際の直感にもあう。
異なる品詞の取扱に工夫をした処理
品詞は異なるが意味は同じ単語同士も、同義語や類義語の観点から同一単語と扱う処理を行ってもよい。
例えば、
「初めに」は、
「初め」 名詞
「に」 助詞
と分割することができ、
「まず」 接続詞
という単語と意味は同じであるが、品詞の構成が異なる。
それらも、「初めに」と「まず」が同義語であるという辞書を用意しておけば、同義語と判断できる。例えば、文字列的に同義語辞書に記載されている表現と一致すれば同義語とすることで判断できる。
特に共起語、連想語などを考えれば、品詞の異なる単語A,Bがあって、単語Aの共起語、連想語と、単語Bの共起語、連想語が似ていればそれでよく、単語Aと単語Bを同一単語または類似単語と扱って、冗長度大と判断してもよい。
TF・IDFを利用した処理
TF・IDFを利用した処理を次に示す。
ここでは、IDFのみを利用することとする。ある文書群を用意し、そこでIDFを各単語についてもとめる。ありふれた単語は多くの文書に出現しやすくIDFの値が小さくなる。
例えば以下の値を持ったとする。
まず のIDF: 1
初めに のIDF: 1
円高 のIDF: 2
の のIDF: 0
解決 のIDF: 1
に のIDF: 0
向けた のIDF: 0
策 のIDF: 1
検討 のIDF: 0
を のIDF: 0
考え のIDF: 0
たい のIDF: 0
。 のIDF: 0
したい のIDF: 0
ここでは、冗長性の式を以下とする。
冗長性=一定範囲の単語数/異なり単語のIDFの和
例文を「まず初めに円高の解決に向けた解決策の検討を考えたい。」とする。
単語に分割すると
「まず 初め に 円高 の 解決 に 向けた 解決 策 の 検討 を 考え たい 。」
となる。
単語ののべ数は、16となる。
異なり単語のIDFの和をもとめる。IDFの値が0でない異なり単語は
「まず 初め 円高 解決 策」
であり、これら単語のIDFの和は、円高だけがIDFが2で他の4単語のIDFが1であるので、6である。
冗長性=一定範囲の単語数/異なり単語のIDFの和
の式より、冗長性が16/6となる。
また、「まず円高の解決策を検討したい。」の文でも冗長性を計算してみる。まず単語に分割する。
「まず 円高 の 解決 策 を 検討 したい 。」
単語ののべ数は、9個である。
異なり単語のIDFの和をもとめる。IDFの値が0でない異なり単語は
「まず 円高 解決 策」
となり、これら単語のIDFの和は、円高だけがIDFが2で他の3単語のIDFが1であるので、5である。
冗長性=一定範囲の単語数/異なり単語のIDFの和
の式より、冗長性が9/5となる。
「まず初めに円高の解決に向けた解決策の検討を考えたい。」の冗長性は16/6、「まず円高の解決策を検討したい。」の冗長性は9/5である。「まず初めに円高の解決に向けた解決策の検討を考えたい。」の方が圧倒的に冗長性が高い。これは、「まず初めに円高の解決に向けた解決策の検討を考えたい。」の方が長々とわかりにくく発言しているような感じになっており、実際の直感にもあう。
このIDFを用いると、自動的に、どこの文書にも出現するありふれた単語のIDFの値が小さくなるため、自動的に、どこの文書にも出現するありふれた単語の重みを小さくできる。すなわち、あまり意味を持たない単語を少なく数える効果が、IDFの利用により生じる。すなわち、一つ前の、意味を持たない単語を利用した処理をしなくとも、IDFを利用することで、それと同様な効果を得る。
かかり受けを考慮した処理
係り先が異なる単語は、同一単語であっても異なる単語として処理する。
例文を「鳥取の大学で鳥取の歴史についての講演があった。」
とする。ここでは名詞のみを利用して冗長性をもとめるものとする。
冗長性=のべ単語/異なり単語数
とする。
(冗長性は、ある一定単語数における異なり単語数の逆数であるが、ある一定単語数を1とすれば、冗長性は、(異なり単語数/のべ単語数)の逆数となり、のべ単語数/異なり単語数となる。他の冗長性の式も同様の考え方で同様に導出できる。)
名詞のみを取り出すと
「鳥取 大学 鳥取 歴史 講演」
であり、のべ単語は5となる。
二つの鳥取は係り先が 大学と歴史で異なるため、異なる単語と考えられる。このため、異なり単語数は5となる。冗長性は5/5=1となる。
例文を「鳥取の大学で島根の歴史についての講演があった。」
とする。ここでは名詞のみを利用して冗長性をもとめるものとする。
冗長性=のべ単語/異なり単語数
とする。
(冗長性は、ある一定単語数における異なり単語数の逆数であるが、ある一定単語数を1とすれば、冗長性は、(異なり単語数/のべ単語数)の逆数となり、のべ単語数/異なり単語数となる。他の冗長性の式も同様の考え方で同様に導出できる。)
名詞のみを取り出すと
「鳥取 大学 島根 歴史 講演」
であり、のべ単語は5となる。
異なり単語数は5となる。冗長性は5/5=1となる。
「鳥取の大学で鳥取の歴史についての講演があった。」は一見、「鳥取の大学で島根の歴史についての講演があった。」よりも、鳥取という単語が二回あるため冗長に見えるが、係り先が大学と歴史で異なっており、両方の鳥取が必要であり、冗長でない。
かかり受けを考慮した処理をすることで、冗長でない「鳥取の大学で島根の歴史についての講演があった。」の文と同様の冗長性を、「鳥取の大学で鳥取の歴史についての講演があった。」が持ち、適切に「鳥取の大学で鳥取の歴史についての講演があった。」が冗長でないと判断できる。
ここで、かかり受けを考慮した処理を行う場合には、以下に説明する形のかかりうけ処理を好適に行うことができる。ここで、係り受け処理とは、文を文節にわけて各文節の係り先を特定する処理のことを意味する。例えば、鳥取の大学だと、「鳥取の」「大学」が文節となり、「鳥取の」が「大学」にかかる。ここで助詞を省略して考えれば、「鳥取」が「大学」にかかると見ることができる。かかりうけ処理をするツールとしては、knpとCaboChaがすでに開発されて公開されており、実際にかかりうけ処理を実現可能である。
KNPは日本語文の構文・格解析を行うシステムである。形態素解析システムJUMANの解析結果(形態素列)を入力とし、文節および基本句間の係り受け関係、格関係を出力する。KNPバージョン3.0では、Webから自動構築した大規模格フレームを利用する。この格フレームに基づく確率的構文・格解析により係り受け関係と格関係を決定する。具体的には、Webテキストから自動構築した大規模格フレームである京都大学格フレームバージョン1.0を用いている。ここで、格フレームとは、用言とそれに関係する名詞を用言の各用法ごとに整理したものである。この格フレームは、Web上の約16億文の日本語テキストから自動的に構築しており、約4万用言からなるものである。
CaboChaは、Support Vector Machinesに基づく日本語係り受け解析器である。2001年6月現在、統計的な日本語係り受け解析器として最も精度が高い(89.29%)システムとなっている。 また、バックトラックを行なわない決定的な解析アルゴリズム(Cascaded Chunking Model)を採用しており、比較的効率の良い解析が行なえる。
なお、この冗長性判定部113は、冗長性計算部113の計算結果である冗長性(又は拡張冗長性)の値が大きいものほど冗長であると判定することになる。この際、この冗長性判定部113は、例えば、冗長性(又は拡張冗長性)の値が所定の閾値以上のものを冗長であると判定して取り出すことが好ましい。あるいは、この冗長性判定部113は、冗長性(又は拡張冗長性)の値が大きいものを所定の値の個数以上のものを大きい順に冗長であると判定して取り出してもよい。または、この冗長性判定部113は、冗長であると判定して取り出されたものの値の最大値に対して所定の割合をかけた値を求め、その求めた値以上の値を持つものを冗長であると判定して取り出してもよい。また、この冗長性判定部113では、これら閾値、所定の値をあらかじめ定められていてもよいが、適宜ユーザが値を変更、設定した上で実行してもよい。
また、この情報解析装置1000は、複数のテキストデータを学習して所定の閾値以上に出現頻度の高い語を重要な意味を持たない無意味語として判定して得られた無意味語判定用データ(例えば、この無意味語判定用データは、インターネットなどの外部のネットワーク122を介してサーバ126などに格納されていてもよい)を参照する無意味語判定用データ参照部105をさらに備えていてもよい。そして、冗長性計算部113は、上記のテキストデータをこの無意味語判定用データを参照して解析して、無意味語の出願頻度に応じて冗長性を高く判定するように構成されていてもよい。この場合、冗長性計算部113による文章の拡張冗長性の計算精度がより高まることになる。
また、この情報解析装置1000は、テキストデータのうち上記の検出された同一・類似箇所の情報に基づいて判定された任意の領域の冗長性の判定結果を上記の複数段階の冗長性に応じて異なる状態で判定結果として出力する出力部120を備える。上記のスキームでは、この出力部120は、テキストデータのうち上記の検出された同一・類似箇所の情報に基づいて判定された任意の領域の冗長性の判定結果を以下のレベルの冗長性に応じて異なる状態(例えば画像表示する場合の色が異なるなど)で判定結果として、画像データ・数値データ・テキストデータなどのデータ形式でネットワーク138を介して画像表示部130、プリンタ132、サーバ134などに出力する。あるいは、この出力部120は、上記の解析結果をリアルタイムで情報解析装置1000に接続された画像表示部122に出力することもできる。
レベルA.一文内の冗長性
レベルB.一段落内の冗長性(複数の文にまたがる冗長性)
レベルC.一文書内の冗長性(複数の段落にまたがる冗長性)
なお、これらの冗長性の分類は、冗長性分類部118で行うことができる。
すなわち、この冗長性判定部113には、任意の領域の冗長性の判定結果を、一文内の冗長性、複数の文にまたがるが一段落内におさまる冗長性、複数の段落にまたがるが一文書内におさまる冗長性に分類する冗長性分類部118が設けられていることが好ましい。このとき、冗長性分類部118による分類に基づいた出力部120での冗長性を有すると判定された任意の個所の判定結果の表示方法としては、冗長性の値をもとめその値にしたがって色付けをかえて表示することが好ましい。すなわち、文、または、段落ごとに、冗長性をもとめ(冗長性の計算方法は上述のとおり)、その値にしたがって色付けをかえて表示することが好ましい。
他にも、出力部120での任意の領域の冗長性の判定結果の表示方法としては、同一単語を複数含む、または、同義語を複数含む文に対して、チェック印をつけて表示する形で判定結果を出力することもできる。この場合の効果として、特に冗長な個所の検出や、この個所は冗長だけれども問題がないといった判断ができる。また、出力部120での冗長個所の検出結果の表示方法としては、ある一定範囲内に多く出現する同義語や同じ語を冗長性に応じて色を変えて表示してもよい。この場合、ある一定範囲内での出現回数が多い対やグループほど冗長と考えることになる。
また、上記の冗長性判定部113が、任意の領域の冗長性の判定理由を示す情報を生成する判定理由生成部116をさらに備えてもよい。この場合、出力部120が、この判定理由を対応する判定結果と組み合わせて出力してもよい。具体的には、出力部120での冗長個所の検出結果の表示方法としては、冗長とコンピュータが検出した際の理由をうまく可視化して表示してもよい。
この場合、同時に出現した、同義語や同じ語を同じ色で示す。または、同時に出現した、同義語や同じ語を線で結んで表示する。または、規則または、教師あり機械学習の素性の分析などにより、冗長と判断した理由を認識し、その理由を表示する。文で表示したり、番号または色で、どの理由を意味するかを決めておき、番号または色付けしたりする。なお、その場合に、冗長と判断した理由の種類毎に異なる色分け(同一単語の場合:緑色、対応品詞の場合:紫色、同義語の場合:黄色、類義語の場合:赤色、連想語の場合:青色など)を行ってユーザが直感的に冗長と判断した理由を理解できるようにすることが好ましい。このとき、どのような文法的特徴により冗長と判断したかも表示する。この場合、どういう言語的文法により、冗長と判断されたかが表示されるので、この情報解析装置1000を利用している人は、冗長でない文章を書くテクニックを身につけることにもつながる。
この情報解析装置1000は、単語辞書、品詞辞書、同義語辞書、類義語辞書及び連想語辞書からなる群から選ばれる1種以上の辞書を参照して、テキストデータ中の同一・類似箇所を検出して、その同一・類似箇所の情報に基づいて任意の領域の冗長性を判定することができる。そして、この構成によれば、こうして検出した同一・類似箇所の情報に基づいて任意の領域が真に冗長かを判定し、複数段階の冗長性に応じて異なる状態で判定結果として出力することによって、冗長な個所を簡素な表現へ言い換えるために役立てることができる。
ここで、この情報解析装置1000による機械学習の手法について説明する。機械学習の手法は、問題−解の組のセットを多く用意し、それで学習を行ない、どういう問題のときにどういう解になるかを学習し、その学習結果を利用して、新しい問題のときも解を推測できるようにする方法である(例えば、下記の非特許文献を参照)。
非特許文献:村田真樹,機械学習に基づく言語処理,龍谷大学理工学部.招待講演.2004. http://www2.nict.go.jp/jt/a132/members/murata/ps/rk1-siryou.pdf
非特許文献:サポートベクトルマシンを用いたテンス・アスペクト・モダリティの日英翻訳,村田真樹,馬青,内元清貴,井佐原均,電子情報通信学会言語理解とコミュニケーション研究会 NLC2000-78 ,2001年.
非特許文献:SENSEVAL2J辞書タスクでのCRLの取り組み,村田真樹,内山将夫,内元清貴,馬青,井佐原均,電子情報通信学会言語理解とコミュニケーション研究会 NLC2001-40 ,2001年.
どういう問題のときに、という、問題の状況を機械に伝える際に、素性(解析に用いる情報で問題を構成する各要素)というものが必要になる。問題を素性によって表現するのである。例えば、日本語文末表現の時制の推定の問題において、問題:「彼が話す。」−−−解「現在」が与えられた場合に、素性の一例は、「彼が話す。」「が話す。」「話す。」「す」「。」となる。
すなわち、機械学習の手法は、素性の集合−解の組のセットを多く用意し、それで学習を行ない、どういう素性の集合のときにどういう解になるかを学習し、その学習結果を利用して、新しい問題のときもその問題から素性の集合を取り出し、その素性の場合の解を推測する方法である。このように教師あり機械学習法を行うことによって、規則を人手で作成する必要がなく、人手の手間を省ける学習データを多く準備することで、性能を向上させることができる。また、人手による規則よりも、より多くの規則のようなものを獲得したような形で高性能な処理が可能となる。
例えば、本実施形態において、あらかじめ冗長性についての正解情報付きの教師データを取得した場合、例えば機械学習機能を有する冗長性判定部113が、k近傍法、シンプルベイズ法、決定リスト法、最大エントロピー法、サポートベクトルマシン法などの手法を用いて正解情報に近い結果が得られる好適な係数を導き出す。
k近傍法は、最も類似する一つの事例のかわりに、最も類似するk個の事例を用いて、このk個の事例での多数決によって分類先(解)を求める手法である。kは、あらかじめ定める整数の数字であって、一般的に、1から9の間の奇数を用いる。
シンプルベイズ法は、ベイズの定理にもとづいて各分類になる確率を推定し、その確率値が最も大きい分類を求める分類先とする方法である。
シンプルベイズ法において、文脈bで分類aを出力する確率は、以下の式(4)で与えられる。
ただし、ここで文脈bは、あらかじめ設定しておいた素性fj(∈F,1≦j≦k)の集合である。p(b)は、文脈bの出現確率である。ここで、分類aに非依存であって定数のために計算しない。P(a)(ここでPはpの上部にチルダ)とP(fi|a)は、それぞれ教師データから推定された確率であって、分類aの出現確率、分類aのときに素性fiを持つ確率を意味する。P(fi|a)として最尤推定を行って求めた値を用いると、しばしば値がゼロとなり、式(5)の値がゼロで分類先を決定することが困難な場合が生じる。そのため、スムージングを行う。ここでは、以下の式(6)を用いてスムージングを行ったものを用いる。
ただし、freq(fi,a)は、素性fiを持ちかつ分類がaである事例の個数、freq(a)は、分類がaである事例の個数を意味する。
決定リスト法は、素性と分類先の組とを規則とし、それらをあらかじめ定めた優先順序でリストに蓄えおき、検出する対象となる入力が与えられたときに、リストで優先順位の高いところから入力のデータと規則の素性とを比較し、素性が一致した規則の分類先をその入力の分類先とする方法である。
決定リスト方法では、あらかじめ設定しておいた素性fj(∈F,1≦j≦k)のうち、いずれか一つの素性のみを文脈として各分類の確率値を求める。ある文脈bで分類aを出力する確率は以下の式によって与えられる。
p(a|b)=p(a|fmax)
ただし、fmaxは以下の式によって与えられる。
また、P(ai|fj)(ここでPはpの上部にチルダ)は、素性fjを文脈に持つ場合の分類aiの出現の割合である。
最大エントロピー法は、あらかじめ設定しておいた素性fj(1≦j≦k)の集合をFとするとき、以下所定の条件式(式(9))を満足しながらエントロピーを意味する式(10)を最大にするときの確率分布p(a,b)を求め、その確率分布にしたがって求まる各分類の確率のうち、最も大きい確率値を持つ分類を求める分類先とする方法である。
ただし、A、Bは分類と文脈の集合を意味し、gj(a,b)は文脈bに素性fjがあって、なおかつ分類がaの場合1となり、それ以外で0となる関数を意味する。また、P(ai|fj)(ここでPはpの上部にチルダ)は、既知データでの(a,b)の出現の割合を意味する。
式(9)は、確率pと出力と素性の組の出現を意味する関数gをかけることで出力と素性の組の頻度の期待値を求めることになっており、右辺の既知データにおける期待値と、左辺の求める確率分布に基づいて計算される期待値が等しいことを制約として、エントロピー最大化(確率分布の平滑化)を行なって、出力と文脈の確率分布を求めるものとなっている。最大エントロピー法の詳細については、以下の非特許文献に記載されている。
非特許文献:Eric Sven Ristad, Maximum Entropy Modeling for Natural Language,(ACL/EACL Tutorial Program, Madrid, 1997)
非特許文献:Eric Sven Ristad, Maximum Entropy Modeling Toolkit, Release 1.6beta, (http://www.mnemonic.com/software/memt,1998)
サポートベクトルマシン法は、空間を超平面で分割することにより、二つの分類からなるデータを分類する手法である。
図5にサポートベクトルマシン法のマージン最大化の概念を示す。図5において、白丸は正例、黒丸は負例を意味し、実線は空間を分割する超平面を意味し、破線はマージン領域の境界を表す面を意味する。図5(A)は、正例と負例の間隔が狭い場合(スモールマージン)の概念図、図5(B)は、正例と負例の間隔が広い場合(ラージマージン)の概念図である。
このとき、二つの分類が正例と負例からなるものとすると、学習データにおける正例と負例の間隔(マージン)が大きいものほどオープンデータで誤った分類をする可能性が低いと考えられ、図5(B)に示すように、このマージンを最大にする超平面を求めそれを用いて分類を行なう。
基本的には上記のとおりであるが、通常、学習データにおいてマージンの内部領域に少数の事例が含まれてもよいとする手法の拡張や、超平面の線形の部分を非線型にする拡張(カーネル関数の導入)がなされたものが用いられる。
この拡張された方法は、以下の識別関数を用いて分類することと等価であり、その識別関数の出力値が正か負かによって二つの分類を判別することができる。
ただし、xは識別したい事例の文脈(素性の集合)を、xiとyj(i=1,...,l,yj∈{1,−1})は学習データの文脈と分類先を意味し、関数sgnは、
sgn(x)=1(x≧0)
−1(otherwise)
であり、また、各αiは式(13)と式(14)の制約のもと式(12)を最大にする場合のものである。
また、関数Kはカーネル関数と呼ばれ、様々なものが用いられるが、本形態では以下の多項式のものを用いる。
K(x,y)=(x・y+1)d 式(15)
C、dは実験的に設定される定数である。例えば、Cはすべての処理を通して1に固定した。また、dは、1と2の二種類を試している。ここで、αi>0となるxiは、サポートベクトルと呼ばれ、通常、式(11)の和をとっている部分は、この事例のみを用いて計算される。つまり、実際の解析には学習データのうちサポートベクトルと呼ばれる事例のみしか用いられない。
なお、拡張されたサポートベクトルマシン法の詳細については、以下の非特許文献に記載されている。
非特許文献:Nello Cristianini and John Shawe-Taylor, An Introduction to Support Vector Machines and other kernel-based learning methods,(Cambridge University Press,2000)
非特許文献:Taku Kudoh, Tinysvm:Support Vector machines,(http://cl.aist-nara.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と推定する。
例えば、本発明の実施の形態において、機械学習機能が、機械学習の手法としてk近傍法を用いる場合、機械学習機能は、教師データの事例同士で、その事例から抽出された素性の集合のうち重複する素性の割合(同じ素性をいくつ持っているかの割合)にもとづく事例同士の類似度を定義して、前記定義した類似度と事例とを学習結果情報として記憶しておく。
また、機械学習手法として、シンプルベイズ法を用いる場合には、機械学習機能は、教師データの事例について、上記の事例の解と素性の集合との組を学習結果情報として記憶する。そして、新しい解の候補が抽出されたときに、記憶された学習結果情報の解と素性の集合との組をもとに、ベイズの定理にもとづいて取得した解の候補の素性の集合の場合の各分類になる確率を算出して、その確率の値が最も大きい分類を、その解の候補の素性の分類(解)と推定する。すなわち、表現対の候補の素性の集合の場合にある解となりやすさの度合いを、各分類になる確率、ここでは「抽出するべき」という分類になる確率とする。
また、機械学習手法として決定リスト法を用いる場合には、機械学習機能は、教師データの事例について、素性と分類先との規則を所定の優先順序で並べたリストを記憶する。そして、新しい解の候補が抽出されたときに、リストの優先順位の高い順に、抽出された解の候補の素性と規則の素性とを比較し、素性が一致した規則の分類先をその候補の分類先(解)として推定する。すなわち、解の候補の素性の集合の場合にある解となりやすさの度合いを、所定の優先順位またはそれに相当する数値、尺度、ここでは「抽出するべき」という分類になる確率のリストにおける優先順位とする。
また、機械学習手法として最大エントロピー法を使用する場合には、機械学習機能は、教師データの事例から解となりうる分類を特定し、所定の条件式を満足しかつエントロピーを示す式を最大にするときの素性の集合と解となりうる分類の二項からなる確率分布を求めて記憶する。そして、新しい解の候補が抽出されたときに、記憶された確率分布を利用して、抽出された表現対の候補の素性の集合についてその解となりうる分類の確率を求めて、最も大きい確率値を持つ解となりうる分類を特定し、その特定した分類をその候補の解と推定する。すなわち、解の候補の素性の集合の場合にある解となりやすさの度合いを、各分類になる確率、ここでは「抽出するべき」という分類になる確率とする。
また、機械学習手法としてサポートベクトルマシン法を使用する場合には、機械学習機能は、教師データの事例から解となりうる分類を特定し、分類を正例と負例に分割して、カーネル関数を用いた所定の実行関数にしたがって事例の素性の集合を次元とする空間上で、その事例の正例と負例の間隔を最大にし、かつ正例と負例を超平面で分割する超平面を求めて記憶する。そして新しい解の候補が抽出されたときに、記憶された超平面を利用して、抽出された表現対の候補の素性の集合が超平面で分割された空間において正例側か負例側のどちらにあるかを特定し、その特定された結果にもとづいて定まる分類を、その候補の解と推定する。すなわち、解の候補の素性の集合の場合にある解となりやすさの度合いを、分離平面からの正例(抽出するべき表現対)の空間への距離の大きさとする。より詳しくは、抽出するべき表現対を正例、抽出するべきではない表現対を負例とする場合に、分離平面に対して正例側の空間に位置する事例が「抽出するべき事例」と判断され、その事例の分離平面からの距離をその事例の度合いとする。
いずれの機械学習法を用いる場合であっても、冗長性判定部113が乱数表を活用してランダムな係数を発生するので、冗長性判定部113がk近傍法、シンプルベイズ法、決定リスト法、最大エントロピー法、サポートベクトルマシン法などの適切な機械学習エンジンを選択して、それらのランダムな係数による冗長性の解析が行われる。そしてその解析結果は冗長性判定部113の機械学習機能にフィードバックされて正解情報と照らし合わされることによって、冗長性判定部113はランダムな係数の中から好適な係数を選択する。こうして選択された好適な係数が冗長性判定部113内の記憶領域に格納される。こうして得られた好適な係数は後に正解が未知のテキストデータを用いて冗長性の解析を行う場合に呼び出されて解析に用いられる。なお、このような機械学習の機能については、冗長性判定部113だけが有するわけではなく、他の機能ブロックについても同様に有していても良い。
図3は、実施形態に係る情報解析装置1000の修正部119の詳細な構成を説明するための機能ブロック図である。この情報解析装置1000は、解析対象のテキストデータの表現を修正するための修正部119を備える。また、この修正部119には、解析対象のテキストデータの冗長な表現を簡潔に修正するための冗長性修正部202が設けられている。上記のスキームでは、この冗長性修正部202は、例えば、一文内の冗長な表現の修正支援を行う。
この冗長性修正部202には、あらかじめ用意された冗長性判定用データに含まれる冗長な表現および当該冗長な表現を修正した表現の対を複数含む冗長性修正文集合データ、又はあらかじめ用意された冗長性判定用データに含まれる冗長な表現と当該冗長な表現を修正した表現との対を機械学習して得られる修正候補判定器を参照する冗長性修正文集合データ参照部204が設けられている。上記のスキームでは、この冗長性修正文集合データ参照部204は、冗長性修正文集合データベース中の冗長な文とその修正文の対を照合し、修正用の文パターンや語順変更の規則を取得する。すなわち、この冗長性修正文集合データ参照部204は、冗長性修正文集合データベースから以下のようなデータを取得してくる。
冗長な文:「まず初めに円高の解決に向けた解決策の検討を考えたい。」
修正後の文:「まず円高の解決策を検討したい。」
また、この冗長性修正部202には、これらの冗長な表現と対になる冗長な表現を修正した表現又は修正候補判定器で冗長な表現から生成した冗長な表現を修正した表現を、冗長な表現の修正候補として判定する修正候補判定部210が設けられている。上記のスキームでは、この修正候補判定部210は、これら文パターンや規則を利用して、あるいは機械学習して得られる修正候補判定器を利用して、冗長な文の修正案を提示する簡素な表現への言い換えを行う。
なお、この冗長性修正文集合データ自体も、冗長個所の訂正自体を教師あり機械学習で作られたものであってもよい。例えば、下記の冗長な文を教師あり機械学習によって下記の修正後の文に修正し、この対を冗長性修正文集合データとして用いることもできる。
冗長な文:「まず初めに円高の解決に向けた解決策の検討を考えたい。」
修正後の文:「まず円高の解決策を検討したい。」
この冗長性修正文集合データの作成方法についても、いろいろなバリエーションが考えられる。
バリエーション1
後述する言い換え規則と併用
「初めに」を削除する規則があったとする。
この規則による言い換えをするか否かを機械学習でもとめる。
例えば、
冗長な文:「まず初めに円高の解決に向けた解決策の検討を考えたい。」
修正後の文:「まず円高の解決策を検討したい。」
という場合は、言い換えを実行する(つまり冗長性修正文集合データベースに正例として登録する)。
すなわち、
冗長な文:「初めに円高の解決に向けた解決策の検討を考えたい。」
修正後の文:「初めに円高の解決策を検討したい。」
のような場合は言い換えをしない(つまり冗長性修正文集合データベースに負例として登録する)。
そして、こういった学習データを大量に集めておき、冗長性修正文集合データベース、書換規則集合データベース、順序規則集合データベースなどに登録しておけばよい。すなわち、以下のような形で情報処理を行う。
入力は、言い換えるか否か判定する、言い換え前の文
出力は、その言い換え規則で言い換えを行うか、否か
素性は、言い換え個所のまわりの単語
例えば、冗長性修正部202は、書換部212と協働して、この場合だと「言い換え個所のまわりに、まずがある」という素性を想定し、その素性の場合には、言い換えをし、そうでない場合は、言い換えしないといったことを学習して、後述する書換規則集合データベースに登録する。そして、冗長性修正部202は、その学習結果に基づき、後述する書換部212と組み合わせて適切に言い換え規則の適用を行うことができる。
バリエーション2
固有表現抽出的な考え方の利用
固有表現抽出の技術については、例えば、特許公開2008−287388に記載の技術を参考にして行うことができる。
固有表現とは、人名、地名、組織名などの固有名詞、金額などの数値表現といった、特定の事物数量を意味する言語表現のことである。例えば、固有表現の種類として、組織を示す「ORGANIZATION」、人物を示す「PERSON」、場所を示す「LOCATION」、人工物を示す「ARTIFACT」、日付を示す「DATE」、時間を示す「TIME」、金額を示す「MONEY」、割合を示す「PERCENT」がある。
固有表現抽出技術とは、上記のような固有表現の種類と該固有表現に属する固有表現を文章中から計算機で自動で抽出する技術である。例えば、「日本の首相は小泉純一郎である」という文に対して固有表現抽出を行なうと、固有表現の種類(例えば、「PERSON」、「LOCATION」)と該固有表現の種類に属する固有表現(例えば、「PERSON」に属する固有表現「小泉純一郎」、「LOCATION」に属する固有表現「日本」)とが抽出される。
以下に、固有表現抽出の一般的な手法の例について説明する。
(1)機械学習を用いる手法
機械学習を用いて固有表現を抽出する手法がある(例えば、以下の非特許文献参照)。
非特許文献 浅原正幸,松本裕治,日本言吾固有表現抽出における冗長的な形態素解析の利用情報処理学会自然言言吾処理研究会NL155−72002
まず、例えば、「日本の首相は小泉さんです。」という文を、各文字に分割し、分割した文字について、以下のように、B−LOCATION、I−LOCATION等の正解タグを付与することによって、正解を設定する。以下の一列目は、分割された各文字であり、各文字の正解タグは二列目である。
日B−LOCATION
本I−LOCATION
の0
首0
相0
は0
小B−PERSON
泉I−PERSON
さ0
ん0
で0
す0
。0
上記において、B−???は、ハイフン以下の固有表現の種類の始まりを意味するタグである。
例えば、B−LOCATIONは、場所を示す固有表現の始まりを意味しており、B−PERSONは、人名を示す固有表現の始まりを意味している。また、I−???は、ハイフン以下の固有表現の種類の始まり以外を意味するタグであり、0はこれら以外である。従って、例えば、文字「日」は、場所を示す固有表現の始まりに該当する文字であり、文字「本」までが場所を示す固有表現である。
このように、各文字の正解を設定しておき、このようなデータから学習し、新しいデータでこの正解を推定し、この正解のタグから、各固有表現の始まりと、どこまでがその固有表現かを認識して、固有表現を推定する。
この各文字に設定された正解のデータから学習するときには、システムによってさまざまな情報を素性という形で利用する。例えば、
日B−LOCATION
の部分は、
日本−B 名詞−B
などの情報を用いる。日本−Bは、日本という単語の先頭を意味すし、名詞−Bは、名詞の先頭を意味する。単語や品詞の認定には、例えは前述したChaSenによる形態素解析を用いる。ChaSenを用いれば、入力された日本語を単語に分割することができる。例えば、ChaSenは、前述したように、日本語文を分割し、さらに、各単語の品詞も推定してくれる。例えば、「学校へ行く」を入力すると以下の結果を得ることができる。
例えば,「学校へ行く」を入力すると以下の結果を得る。
学校 ガッコウ 学校 名詞− 一般
へ ヘ へ 助詞−格助詞−一般
行く イク 行く 動詞−自立 五段・カ行促音便 基本形
EOS
各行に一個の単語が入るように分割され、各単語に読みや品詞の情報が付与される。
なお、例えば、上記の非特許文献では、素性として、入力文を構成する文字の、文字自体(例えは、「小」という文字)、字種(例えば、ひらがなやカタカナ等)、品詞情報、タグ情報(例えは、「B−PERSON」等)を利用している。
これら素性を利用して学習する。タグを推定する文字やその周辺の文字にどういう素性が出現するかを調べ、どういう素性が出現しているときにどういうタグになりやすいかを学習し、その学習結果を利用して新しいデータでのタグの推定を行なう。機械学習には、例えはサポートベクトルマシンを用いる。
固有表現抽出には、上記の手法の他にも種々の手法がある。例えは、最大エントロピーモデルと書き換え規則を用いて固有表現を抽出する手法がある(非特許文献参照)。
非特許文献 内元清音,馬青,村田真樹,小作浩美,内山将夫,井佐原均,最大エントロピーモテルと書き換え規則に基つく固有表現抽出,言語処理学会誌,Vo17,No2,2000
また、例えば、以下の非特許文献に、サポートベクトルマシンを用いて日本語固有表現抽出を行う手法について記載されている。
非特許文献 山田寛康,工藤拓,松本裕治,SupportVectorMachlneを用いた日本語固有表現抽出,情報処理学会非特許文献誌,Vo145,No1",2002
(2)作成したルールを用いる手法
人手でルールを作って固有表現を取り出すという方法もある。
例えば、
名詞+「さん」だと人名とする
名詞+「首相」だと人名とする
名詞+「町」だと場所とする
名詞+「市」だと場所とする
などである。
具体的には、冗長性修正部202は、書換部212と協働して、削除してよい文字を機械学習によりあらかじめもとめておいて書換規則集合データベースに登録しておくことを考える。
冗長な文:「まず初めに円高の解決策を検討したい。」
修正後の文:「まず円高の解決策を検討したい。」
で考えると、
文:「まず初めに円高の解決策を検討したい。」
の「初めに」の個所を削除するということさえ学習できればよい。このような問題は、文を単語や文字に分割して処理するとわかりやすい。ここでは文字で分割して処理する方法を示す。単語に分割する方法でもよい。
各文字 分類先
ま そのまま
ず そのまま
初 削除
め 削除
に 削除
円 そのまま
高 そのまま
の そのまま
解 そのまま
決 そのまま
策 そのまま
を そのまま
検 そのまま
討 そのまま
し そのまま
た そのまま
い そのまま
。 そのまま
すなわち、入力が各文字、出力(分類先)が、削除かそのままか、となる問題設定となる。素性は、現在対象とする文字とその前後の文字(前5文字、後5文字まで)、一文字前の文字の出力(分類先)などとすることができる(もちろん、特に限定する趣旨ではなく、特許公開2008−287388に記載の固有表現抽出の素性も参考にして、もっと多くの素性を用いてよい)。
例えば、
初 削除
だと、
2文字前:ま
1文字前:ず
現在の文字:初
1文字後:め
2文字後:に
なら削除といった規則を、冗長性修正部202が、書換部212と協働して、学習して書換規則集合データベースに登録しておくことで適切に削除処理が可能となる。
一方、この修正部119には、冗長な表現を所定の規則に基づいて簡潔な表現に書き換える書換部212が設けられている。この書換部212には、あらかじめ用意された冗長な表現を簡潔な表現に書き換える複数の書換規則を含む書換規則集合データ又はあらかじめ用意された冗長な表現を簡潔な表現に書き換える複数の書換規則を機械学習して得られる書換候補生成器を参照する書換規則集合データ参照部214が設けられている。そして、この書換部212には、これらの書換規則又は書換候補生成器を、冗長な表現に適用して冗長な表現に対応する簡潔な表現を書換候補として生成する書換候補生成部220が設けられている。上記のスキームでは、書換規則集合データ参照部214は、例えば、例1の冗長な文と修正後の文の対より、「まず初めに」を「まず」に変換する規則、「の検討を考えたい。」を「を検討する。」に変化する規則を獲得し、書換候補生成部220がこの規則を冗長な表現の修正に役立てる。
ここで、書換規則集合データ参照部214による書き換え規則の獲得方法としては、例えば以下のような具体例が挙げられる。
(例)冗長性修正文集合データベース:
冗長な文:「まず初めに円高の解決に向けた解決策の検討を考えたい。」
修正後の文:「まず円高の解決策を検討したい。」
冗長性修正文集合データベース中に上記のような具体的なデータがある場合に、この対になったデータに対して、一致部分と差分部分をチェックする。これには、いわゆるdiffコマンドやいろいろな従来公知の方法を使うことができる。すると、例えば以下のような結果が得られる。
左一致部分:まず
不一致部分:左「初めに」、右「」
右一致部分:円高
その結果、書き換え規則として、
不一致部分:左「初めに」、右「」
から、「初めに」を「」に書き換える規則が考えられる。
また、不一致部分の同義語が一致部分にある場合は、その同義語も書き換え規則に含めることにしてもよい。この場合、「初めに」と「まず」が同義語であり、それにより、「初めに」を「」に書き換える規則が、「まず初めに」を「まず」に書き換える規則に変換される。
また以下の、一致不一致部分も見つかる。
左一致部分:円高の解決
不一致部分:左「に向けた解決策の検討を考え」、右「検討」
右一致部分:たい
左一致部分:円高の解決
不一致部分:左「に向けた解決策の」、右「」
右一致部分:検討
左一致部分:検討
不一致部分:左「を考え」、右「し」
右一致部分:たい
それぞれから、
「に向けた解決策の検討を考え」を「検討」に書き換える規則、
「に向けた解決策の」を削除する規則
「を考え」を「し」に変換する規則を
獲得して利用してもよい。
このようにして得られた書換規則又は書換候補生成器を、書換候補生成部220が冗長な表現に適用して、冗長な表現に対応する簡潔な表現を書換候補として生成する。
規則の獲得、言い換えの実現は、本発明者の非特許文献("言い換えの統一的モデル−尺度に基づく変形の利用−"、村田真樹, 井佐原均、自然言語処理、vol. 2, No. 3, July 1995, p. 3-24)におけるp.4 の文としての正当性のチェックの箇条書き、及び本発明者の非特許文献("複数の辞書の定義文の照合に基づく同義表現の自動獲得", 村田真樹,金丸 敏幸,井佐原 均, 自然言語処理(言語処理学会誌), 11巻,5号,p.135-149, 2004年 10月.)の方法を利用することができる。
また、この修正部119には、混乱した表現(例えば、表記順が不適切な表現)を所定の規則に基づいて並べ替えて整然とした表現に書き換える整列部222が設けられている。この整列部222には、あらかじめ用意された文同士又は段落同士の順序についての複数の順序規則を含む順序規則集合データ又はあらかじめ用意された文同士又は段落同士の順序についての複数の順序規則を機械学習して得られる順序判定器を参照する順序規則集合データ参照部224も設けられている。そして、この整列部222には、これらの順序規則又は順序判定器を、冗長な表現に適用して冗長な表現に対応する整列した表現を整列候補として生成する整列候補生成部226が設けられている。上記のスキームでは、順序規則集合データ参照部224は、このとき語順を変更した規則を取得し、整列候補生成部226がその規則を混乱した表現(例えば、表記順が不適切な表現)にあてはめて順番を変更する修正を行う。
あらかじめ用意された文同士又は段落同士の順序についての複数の順序規則を含む順序規則集合データの具体例としては、特に限定するものではないが、以下のような例が挙げられる。例えば、『二文に同時に出現している単語があり、そのまわりの単語として、左の文には「が」、右の文では、「は」が出現している』場合に、左の文の方が先とする規則を人手であらかじめつくり、こういった規則をあらかじめ人手で多く作成し、その規則に基づき順序を定める。こうしてあらかじめ用意された文同士又は段落同士の順序についての複数の順序規則を含む順序規則集合データ又はこれらの順序規則を機械学習して得られる順序判定器を用いることによって、混乱した表現(例えば、表記順が不適切な表現)を所定の規則に基づいて並べ替えて整然とした表現に書き換えることができる。
本発明者は、文節の表記順序を求めるための先行研究として、過去に適切な語順を機械学習により推定する研究に関する非特許文献(例えば"コーパスからの語順の獲得"内元 清貴,村田 真樹,馬 青,関根 聡,井佐原 均, 自然言語処理(言語処理学会誌), 2000年 10月,7巻,4号,p.163-180)を既に発表しており、この研究手法を拡張し、文、段落に応用することができる。すなわち、この手法によって、文や段落の適切な順序関係を機械学習により推定すれば、文・段落・文書レベルでの研究で語順の情報を利用することができる。具体的には、整列部222において、機械学習の素性を分析することにより、文章のつながりを良くするために注意すべき言語的特徴を取得できる。なお、整列部222において、よく似た内容の離れた個所の文同士や段落同士をユーザに提示し、ユーザがそれらの文章を統合して簡潔な文章に修正する際、文や段落の順序が変化するため、それにあわせた文の修正もすることが好ましい。このときに、整列部222において、学習により取得した文章のつながりに関する言語的特徴も提示する支援も行ってもよい。
例えば、5文からなる1段落の文章があったとする。
文1、文2、文3、文4、文5
機械学習の分類問題に落とそうとするといくつかのバリエーションが考えられる。
バリエーション1
二文対のどちらを先に書くべきかを求める。
二文対は連続しないものでもよい。
すなわち、入力:二文、出力:二文のうちどちらを先に書くべきかの情報とする。
この場合、もともとある文章を正解データとする。そして、
文1、文2、文3、文4、文5
の順に出現する5文からなる段落で考えれば、
入力:文1・文2 出力:左の文が先
入力:文1・文3 出力:左の文が先
入力:文4・文2 出力:右の文が先
というデータが正解データ(学習データ)となる。
これを整列部222において、教師あり機械学習が学習し、その学習結果を利用すれば、新しい文対を入力すると、どちらの文を先に書くべきかを整列部222で自動判定できるようになる。
素性としては、二文に出現している単語、二文に同時に出現している単語、二文に同時に出現している単語のまわりの単語(まわりの単語の方は二文それぞれで異なる単語でもよい)などを用いる。
例えば、
おじいさんがいました。
おじいさんは芝刈りに行きました。
だと、
二文に同時に出現している単語とそのまわりの単語の素性として、「おじいさん」が二文に同時に出現している単語であり、そのまわりの単語として、左の文には「が」、右の文では、「は」が出現しており、『二文に同時に出現している単語があり、そのまわりの単語として、左の文には「が」、右の文では、「は」が出現している』というものが素性となる。この事例で、出力が、左の文が先というものだと、整列部222において、機械学習がこういった文章を分析して、『二文に同時に出現している単語があり、そのまわりの単語として、左の文には「が」、右の文では、「は」が出現している』の素性があると、学習データで、左の文の方が先というのが多いということがあると、この素性は重要となり、この素性がある場合は左の文の方が先と判断するといった規則を学習するようになる。実際、初出の単語に「が」を使いやすく、二回目以降の単語は「は」を使いやすいため、上記素性の場合に左の文の方が先にするというのは、言語学的にも正しい。そういった規則を学習し、整列部222において、機械学習は、新しい文対が入ってきた際に、そういった規則を利用して、正しく、記述順を推定していくことができるようになる。
バリエーション2
二文対のどちらが先に書くべきかを求める。
ただし、二文対は連続した二文対のみが入るとする。
すなわち、入力:二文、出力:二文のうちどちらを先に書くべきかの情報とする。
この場合、もともとある文章を正解データとする。そして、
文1、文2、文3、文4、文5
の順に出現する5文からなる段落で考えれば、
入力:文1・文2 出力:左の文が先
入力:文2・文3 出力:左の文が先
入力:文4・文3 出力:右の文が先
というデータが正解データ(学習データ)となる。
その後は、バリエーション1と同様である。
バリエーション3
二文対とどちらが先かというものが入力され、そのどちらが先と言う判定が正しいかを推定する方法である。
すなわち、入力:二文、二文のうちどちらを先に書くべきかの情報 出力:入力にあるどちらが先かというものが正しいかどうか、とする。
この場合、もともとある文章を正解データとする。そして、
文1、文2、文3、文4、文5
の順に出現する5文からなる段落で考えれば、
入力:文1・文2、左の文が先 出力:正(正しいことを意味する)
入力:文4・文2、左の文が先 出力:負(正しくないことを意味する)
というデータが正解データ(学習データ)となる。
素性としては、左と右の文のどちらが先かの情報、二文に出現している単語、二文に同時に出現している単語、二文に同時に出現している単語のまわりの単語(まわりの単語の方は二文それぞれで異なる単語でもよい)、二文に同時に出現している単語のまわりの単語(まわりの単語の方は二文それぞれで異なる単語でもよい)と左の文が先など、が素性となる。この場合は、『二文に同時に出現している単語があり、そのまわりの単語として、左の文には「が」、右の文では、「は」が出現しており、かつ、左の文が先』といった素性が用いられる。また、この素性の場合は、出力が正となることを学習する。その結果、整列部222において、この学習結果に基づき、入力が正か負かを判断できるようになる。バリエーション3も連接した2文しか入力されないとしたり、はなれた2文対が入ってもよいとしたりすることは適宜可能である。
バリエーション4
まず、バリエーション1−3などの機械学習をする。
文1、文2、文3、文4、文5
の文章の順番を修正したいとする。
上記の文の順番をランダムにいれかた文章を多数作る。
それぞれの文章に対して、文対をいくつか取り出し、それらを、整列部222において、バリエーション1−3などの機械学習で判定し、実際の文の順番と機械学習の出力する文の順番の一致率を調べる。一致率の高い文章を、良い順番の文章と判断し、その順番の文章に修正する。また、整列部222において、単に一致率だけを用いるのではなく、機械学習の出力は、出力の確信度も出すことができる。この場合、整列部222において、確信度も考慮して、機械学習の出力の確信度が高くかつユーザと機械の一致している順番をよりよいと考えて、上記の良い順番の文章を判断することも可能である。
なお、上記の説明では、バリエーション1〜4のいずれについても文の順番の説明をしたが、同様に段落の順番の学習も可能である。
ここで、整列部222において、文、段落の文章の順序を修正する場合には、文、段落の文章の結束性の利用も可能である。例えば、冗長性の指摘により、文章をユーザが書き直したとする。そのあとで、整列部222において、上記の文、段落の表記順序の修正を行う技術を使うことで、各文対を、機械学習にかけてチェックして、表記順が機械学習と異なる場合はなんらかの問題があることをユーザに通知することもできる。この場合、ユーザは、機械学習の指摘した順番に文の順序を修正することができる。また、この文、段落の文章の結束性を利用する技術は、他の用途にも利用可能である。
この文、段落の文章の結束性を利用する技術を用いる場合には、整列部222において、機械学習は、学習の際に、素性の重みを学習することになる。そして、ユーザの記載した文章について、整列部222において、機械学習が文章の表記順が異なるという判定をした場合、その判定に利用された素性のうち、重みの高い素性をユーザに提示することができる。すなわち、それらの素性があったために、機械学習は表記順が異なると判定したことになる。そのため、重みの高い素性をユーザに見せると、なぜ機械学習がユーザの文順が間違っていると考えたかがわかることになる。例えば、重みの高い素性として、『二文に同時に出現している単語があり、そのまわりの単語として、左の文には「は」、右の文では、「が」が出現している』が考えられ、機械学習は、右が先と判定し、ユーザは左の文を先に書いていたとする。その場合、上記素性ともに、機械学習は右が先という判定結果も表示する。ユーザはこれを見ると、文の順番を機械学習の判定結果のようになおすこともありるし、文の順番は直さずに、つけている助詞の「は」「が」の誤りに気付き、文の順番はそのままで助詞の記載を修正するという対応をとることもありえる。
すなわち、整列部222において、文、段落の文章の順序を修正する場合には、文、段落の文章の結束性を利用することによって、例えば、複数の離れた段落でよく似たことを書いている場合、それらを近くで書いた方がよいが、その場合、機械学習が、段落の表記順を変えるべきであると判定することができる。その場合、表記順を変更するとともに接続詞や参照表現などの訂正も同時に行った方がよいため、整列部222において、機械学習が、それらに関する情報もユーザに提示し、冗長な個所の改善支援をすることができる。
いずれの場合にも、これらの修正を行う場合、文を修正した後に文がおかしくならないようにする工夫をすることが好ましい。1つ目の方法としては、言い換え規則を構築する際に、間違いのない言い換え規則のみにする。例えば、本発明者の非特許文献("複数の辞書の定義文の照合に基づく同義表現の自動獲得", 村田真樹,金丸 敏幸,井佐原 均, 自然言語処理(言語処理学会誌), 11巻,5号,p.135-149, 2004年 10月.)の方法を利用することができる。この非特許文献の手法における基本的な考え方は以下の二点である。
珍しい(出現頻度の低い)文字列に囲まれた差分部分ほど、同義表現としては確からしい。
複数箇所に出現した差分部分ほど、同義表現としては確からしい。
この非特許文献では、具体的には、複数の辞書の照合に基づく同義表現の抽出方法を行う際に、以下のような手法を用いている。
この非特許文献では、複数の辞書を用意して、それらにおける同じ項目の定義文を照合することにより、同義表現を抽出することを試みている。この辞書としては、岩主と大辞林を使用している。同義テキスト対としては、二つの辞書の各見出し語の定義文同士を組にすればよいが、場合によっては一つの見出し語が複数の項目をもっている場合がある。これの対処法として、本稿ではそれぞれの定義文が、岩波国語辞典と大辞林とで一対一に対応すると仮定して、照合の度合いが良いもの同士、定義文を結び付けることにしている。
まず照合のとりかたであるが、これは各定義文をJUMAN(黒橋長尾1998)を使って形態素列に分解する。各行に形態素が来るようにしてUNIX(登録商標)のdiffコマンドを使って、一致、不一致箇所を検出する(村田井佐原2002)。照合の度合いを計る式としては、以下のものを用いている。
ここで、一致文字数は、diffの結果一致部分と判断された部分の文字数を意味し、全文字数は、diffに与えた岩波国語辞典と大辞林の双方の定義文を合わせた文字数を意味する。この式は、0から1の値をとり、一致部分が大きいほど大きな値を持つものとなっている。
実際に上記の照合を行なった。照合は57,643個の定義文の対で行なうことができた。辞書定義文の照合結果の例を表1に示す。表中で"<",">"で囲まれた部分は、大辞林にだけ出現したものを、また、"≦","≧"で囲まれた部分は、岩波国語辞典にだけ出現したものを意味する。
表をみると、「互いに」と「たがいに」や、「惜しい」と「もったいない」や、「あべこべ」の「さかさまに入れかわって」と「ひっくり返って」といった同義表現が得られていることがわかる。しかし、「急な」と「包み隠さないで、はっきり表す」や、「数量が非常に多い」と「あわただしく動作を急ぐ」といった誤った対応のものも見受けられ、この結果をそのまま用いるのは精度が悪そうである。
そこで、次に、diffの結果から、ある程度良さそうな同義表現を抽出することを試みる。ここでは以下の二つの特徴を利用することにする。
珍しい(出現頻度の低い)文字列に囲まれた差分部分ほど、同義表現としては確からしい。
複数箇所に出現した差分部分ほど、同義表現としては確からしい。
まず、一つ目の「珍しい文字列に囲まれた差分部分ほど、同義表現としては確からしい」という特徴の方を考える。ここでは,差分部分が下記のように、一致部分である文字列Sl,S2に挟まれていて、SlとS2の間がd文字だけ離れているとする。本非特許文献では、このdとしては,差分部分の長い方の文字数を採用する。このとき、S2およびSlからみて、d文字以内に下記のようにS1およびS2が現れる確率を、P(S1)、P(S2)とすると、P(S1)、P(S2)はd文字以内の各箇所でSlまたはS2が出現しない事象の余事象の確率となり、以下のように表される。
このときの差分部分が確からしい確率をP(差分,Sl,S2)とすると、P(差分,Sl,S2)はSl,S2がともに上記のような形で現れにくい確率であると仮定すると、以下のようになる(SlとS2が独立であることを仮定している)。
次に、二つ目の「複数箇所に出現した差分部分ほど、同義表現としては確からしい」を考える。これは、複数箇所での確率をうまく組み合わせればよい。複数箇所のうち1か所でも正しければ、その差分部分は正しいものとし抽出できると考える。つまり、差分部分が正しい事象は、任意のSl,S2に対してSl,S2に囲まれる差分部分がすべて確からしくない場合の余事象なので、差分部分が確からしい確率をP(差分)とすると、それは以下の式で表される(各差分部分が独立であることを仮定している)。
この値を尺度としてデータをソートし、この値が大きい差分ほど同義表現として確からしいと判断する。便宜上、この値でデータをソートする方法を村田法と呼ぶことにする。
この非特許文献の技術を適用すれば、言い換え規則を構築する際に、間違いのない言い換え規則のみにすることができるため、文を修正した後に文がおかしくならないようにすることができる。
2つ目の方法としては、言い換え規則により修正した表現が正しいかどうかをチェックする枠組みを設け、言い換え規則が少々間違っていても正しく修正する方法を用いることが好ましい。具体的には、本発明者の非特許文献("言い換えの統一的モデル−尺度に基づく変形の利用−"、村田真樹, 井佐原均、自然言語処理、11巻,5号,p.113-133, 2004年 10月)における、p.4 の文としての正当性のチェックの箇条書きを利用するとよい。
すなわち、文としての正当性のチェックに用いられる尺度の具体列として以下のものがえられる。
類似度
例えば、AとBの類似度を調べたいとする。このとき、変形規則がすべて同義性を満足するものだとする。この場合、AとBの類似度が大きくなるように、変形規則でA,Bを変形し,A,Bが良く似た状態にしてから類似度を求めると、意味が同じなのに異なる表現で記述されているような場合でも正しく類似度を計算することができる。
長さ
例えば、要約の一つの分野の文内圧縮のように、なるべく意味を変えずに文を圧縮したいとする。このとき、変形規則はすべて意味をほとんど変えずに変形するものであるとする。この場合、長さを尺度とし、この長さが短くなるように変形を繰り返すと文内圧縮が実現される。
頻度(または、生起確率)
例えば、推蔽システムをえる。このとき、変形規則がすべて同義性を満足するものだとする。この場合、推敲したいデータを、そのデータの生起確率が高くなるように変形すると非常に洗練された文章となる。もう少し簡単な例でこれを説明すると、例えば、入力したデータに「データー」とあったとしよう。また、変形規則に「データー」を「データ」とする規則があったとしよう。このとき、毎日新聞(毎日新聞社1998)などで「データー」と「データ」の数を数え、「データ」の方が数が多い場合、「データー」を「データ」と直すといったことである。
また、頻度(または、生成確率)を調べるコーパスを種々のものに変更することで、様々な効果を生む。例えば、入力データが書き言葉のときに、コーパスとして話し言葉を用いると書き言葉の話し言葉への変形が実現される(村田 井佐原 2001C)。また、入力データが法律関係の文のときに、コーパスとして平易な文章の集合を与えておくと、法律関係の難解な文章が平易な文章に変形されることだろう。また、ここで入力データとして適当に誰かが書いた小説をいれて、コーパスとしてシェークスピアの小説をいれると、シェークスピアの文体の小説が新たに完成することになる。また、入力データを芥川の小説として、コーパスとして漱石の小説を用いると、芥川の小説を漱石の文などということもできるだろう。
文としての正当性のチェック
上記の生起確率に基づく尺度は、本実施形態のシステムでも文の正当性のチェックに使うことができる。しかし、生起確率だと尺度として強すぎる場合は以下のような尺度を用いるとよい。
(1)対象としている表現が、コーパスで1回以上出現しているか否か(これは表記誤りの検出など(竹内 松本 1999;Murata and lsahara 2002a)によく使われる尺度である。
(2)コーパスでの生起確率がある程度以上か否か。
(3)コーパスでの生起確率が、環境なしでの生起確率よりも大きいか否か。
ここで、(1)の場合に、対象としている表現は、1文まるごとでもよいが、3単語連続、4単語連続、5単語連続や5文字連続、6文字連続、7文字連続などの任意の長さの対象を用いることができる。また、(2)及び(3)においてコーパスでの生起確率を求める場合も、対象としている表現は、1文まるごとでもよいが、3単語連続、4単語連続、5単語連続や5文字連続、6文字連続、7文字連続などの任意の長さの対象を用いて生起確率を求めても良い。また、生起確率は、ある表現の出現数/すべての表現の出現数である。そのため、例えば4単語連続で考える場合は、ある4単語連続の出現数/すべての4単語連続の出現数が生起確率になる。このような処理をして、上記の(1)〜(3)のような基準で、1回でも出現していれば、OKな表現、また、生起確率が大きければ、OKな表現とすることができる。
ここで示したものは、尺度というよりは条件のようなもので、他の尺度と組み合わせて用いるとよい。他の尺度のところで、もしその変形において、文としての正当性が保証されない場合は、ここで示した尺度を同時に用いるとよい。
変形の前後での意味の等価性
変形規則が完全に同義性を満足するということがわからない場合は、この尺度を用いることが好ましい。あるいは、この代わりに、変形規則を完全に同義性を満足するものだけにするか、同義性を満足しない言い換えをしてしまう可能性があることを覚悟するかのいずれかであってもよい。(とはいえ、変形規則に同義性を満足しないものが少々ある状況で変形の前後での意味の等価性を調べる尺度を用いなかったとしても、上述の「文としての正当性のチェック」を用いれば多くの不適切な言い換えを取り除くことができるので、工学的見地ではある程度利用可能な言い換えシステムを構築できると思われる。)また、この項目の尺度も一つ上の「文としての正当性のチェック」と同様に、尺度というよりは条件のようなもので、他の尺度とともに用いられる。
ここにあげたもの以外にも様々な尺度が考えられる。
英語文でRやLなどを含む日本人にとって発言しにくい(垣田 小篠 1983; 小池 1994)単語をあまり使わないという尺度も考えられる。また、丁寧な表現もしくはわかりやすさの計量的研究が十分なされれば、それも尺度とすることで丁寧な表現もしくはわかりやすい表現−の自動言い換えが可能となる。ただし、これは丁寧な表現もしくはわかりやすい表現のみを使ったコーパスを生起確率の算出に用いることができる事を意味しており、先の生起確率の尺度でも扱えることである。
また、上記の条件のような尺度には、「21世紀」など特定の語を使うことを条件として言い換えることや、起承転結を満足する文章構成を条件として言い換えることや係り先未決定文節数を7程度以下とすること(村田,内元,馬,井佐原(1999)を条件として言いえることなど、様々なものが想定できる。
簡単な考え方としては、言い換えた後の表現が、既存の文章に出現しているかで文としておかしくないかを評価する。既存の文章に出ている表現であれば日本語としておかしくないだろうと考える。このとき、文まるごとだと、既存の文章に出現していないかもしれない。その場合は、文字列や、単語列レベルで、既存の日本語文に出現しているかを調べて、言葉としておかしくないかを調べる。
あわせて、本発明者の特許文献(特開2003−196094)に記載の技術を利用することもできる。この技術によれば、日本語として不適切な表現を抽出できる。この技術で不適切と判断されないように言い換えればよい。
特許文献(特開2003−196094)に記載の技術では、まず、正の例か負の例か判定すべき未知の事例Xの一般的な出現確率p(x)を算出する。次に、この出現確率p(x)で既知の正の例データDに出現しないことが不自然である場合に、すなわち、一般的な出現確率が高く当然正の例データDに出現するであろう状態にも関わらず既知の正の例データDに出現しない場合には、事例Xの負の例の度合いが高いと推測する。この技術は、日本語文の表記誤りや日本語構文解析における椙関係の判断等に応用することができる。特に、この技術は、実際の日本語文の表記誤りの検出に役に立ち、日本語ワードプロセッサシステムやOCR読み取りシステムへ適用することができる。
いずれの場合にも、冗長性修正文集合データベースを学習データとした教師あり機械学習によって修正を行うことができる。少なくとも冗長な範囲を学習により特定して削除する技術は固有表現抽出技術などと同様な手法を採用することで可能である。上記で得られる文パターンや機械学習における素性分析により修正支援に役立つ言語的特徴を明らかにするともに、これらの修正支援技術の効果を確かめる被験者実験をあらかじめ遂行して有効であることを確認しておくことが好ましい。
なお、いずれの場合にも、出力部120での冗長個所の修正結果の表示方法としては、ワードでの校閲表示のように、修正により削除したものを、横線で消し、追加したものに下線をいれることが好ましい。さらに、それらを色分けしてもよい。または、出力部120での冗長個所の修正結果の表示方法としては、どのような言い換え規則を利用して修正したかを表示してもよい。また、冗長個所の修正結果の表示方法としては、修正すべき箇所に対して修正内容をバルーン表示してもよい。
あるいは、出力部120での冗長個所の修正結果の表示方法としては、検出結果の表示と同様に、なぜそのように冗長な表現を修正したかの理由も示してもよい。また、規則または、教師あり機械学習の素性の分析などにより、冗長なところを修正した理由を認識し、その理由を表示してもよい。文で表示したり、番号または色で、どの理由を意味するかを決めておき、番号または色付したりしてもよい。このとき、どのような文法的特徴により冗長なところを修正したかも表示してもよい。この場合、どういう言語的文法により、冗長なところを修正したかが表示されるので、この情報解析装置1000のシステムを利用している人は、冗長でない文章を書くテクニックを身につけることにもつながる。
この情報解析装置1000は、これらの冗長な表現を修正する機能を有する修正部119を搭載しているため、文書作成の支援に好適に活用できる。すなわち、WORDなどの文書作成ソフトで、冗長な文の検出や修正を行うために用いることができる。そのため、文書の作成者にとって便利である。
また、この情報解析装置1000は、これらの冗長な表現を修正する機能を有する修正部119を搭載しているため、翻訳ソフトとの併用を行うことができる。すなわち、翻訳ソフトにより生成された冗長な文を、この情報解析装置1000により、検出・修正を行うことができる。そのため、翻訳ソフトの利用者にとって便利である。例えば、上記の情報解析装置1000に、言語横断の翻訳機能を付加しても良い。この言語横断的な翻訳機能を盛り込むにあたって、翻訳方法としては、訳語辞書で翻訳する方法と、既存の翻訳システム(各種翻訳ソフト、オンライン翻訳サービスなど)で翻訳する方法と、の両方を好ましく用いることができる。
ここで、訳語辞書とは、
car−−車
house−−家
のように訳語が対になって表記されているものであり、単語マッチで変換して利用することができる。
具体的には、上記の情報解析装置1000に、言語横断の翻訳機能を付加した場合、英語の文章を、日本語に翻訳すると同時に、冗長な表現を本技術により修正または検出することができる。一般的に、機械翻訳を行った場合には、訳語辞書で翻訳する方法ででも、既存の翻訳システム(各種翻訳ソフト、オンライン翻訳サービスなど)で翻訳する方法でも、翻訳文は冗長な変な文になる場合がある。その冗長な変な翻訳文を、上記の情報解析装置1000により修正することができる。
翻訳例:
英語文: We write our names for our applications.
翻訳結果: 我々は我々の申し込みのために我々の名前を書く。
このように、「我々」が多く出現しており、冗長である。上記の情報解析装置1000を利用することで、下記のような簡潔な文に変更できる。
冗長でない文: 申し込みのために名前を書く。
冗長でない文: 我々は申し込みのために名前を書く。
また、この情報解析装置1000は、これらの冗長な表現を修正する機能を有する修正部119を搭載しているため、(外国の方の)日本語学習者、(日本人の方の)日本語文章を書くテクニックの学習のために活用できる。すなわち、この情報解析装置1000により、学習者は自分が書いた冗長な文の検出・修正ができる。また単に、冗長な文の検出・修正のみならず、冗長な文と判断された理由を、文法的特徴として表示できる。そのため、学習者は、文法的特徴の提示により、学習効率があがる。
また、この情報解析装置1000は、これらの冗長な表現を修正する機能を有する修正部119を搭載しているため、音声認識ソフトとの併用をすることによって、会議の音声を認識しテキスト化して、冗長個所を検出することができる。すなわち、上記の情報解析装置1000に音声信号をテキスト化する機能を付加すれば、会議などで、話が堂々巡りしていることも検出できる。会議の堂々巡りを検出できる。また、会議のどの点が冗長であり、会議の冗長さを改善するにはどのようにするとよいかの参考にもなる。そして、冗長と判断された理由も表示することもできる。そのため、会議の進め方の改善につながる。なお、上記の情報解析装置1000に音声信号をテキスト化する機能を付加すれば、会議に関わらず、電話での顧客と会社の問答にも利用可能である。すなわち、クレーム処理、また、顧客への配慮(顧客の時間をあまり使わずに重要な情報のコミュニケーションを成立させる)にも役立つ。
また、この情報解析装置1000は、これらの冗長な表現を修正する機能を有する修正部119を搭載しているため、Webページ作成にも活用できる。すなわち、上記の情報解析装置1000により、Webページも端的に重要な情報が記述されるようになる。そのため、わかりやすいWebページになり、そのWebページへのアクセス件数の向上が期待される。なお、Webページのみならず、新聞、テレビ、論文、書籍での情報伝達の場面も同様である。
[装置の動作の説明]
図4は、実施形態に係る情報解析装置1000の動作を説明するためのフローチャートである。この情報解析装置1000の冗長な表現を抽出、修正するため一連の動作がスタートすると、解析データ取得部102が、例えば、「まず初めに円高の解決に向けた解決策の検討を考えたい。」の文を解析対象のテキストデータとして取得する(S102)。
次いで、辞書情報参照部104が、インターネットなどの外部のネットワーク122を介して、サーバ126内などに格納されている辞書を参照する(S104)。そして、同一・類似箇所検出部107が、文内で同じ単語や同義語が複数回出現する同一・類似箇所を検出する(S106)。
そして、冗長性判定用データ参照部103が、インターネットなどの外部のネットワーク122を介して、サーバ126内などに格納されている冗長性判定用データベース内のデータを参照する(S108)。続いて、冗長性判定部113が、冗長性判定用データベースから参照したデータに基づいて「まず初めに円高の解決に向けた解決策の検討を考えたい。」のような文内で同じ単語や同義語が複数回出現する文は冗長であると判定し(S110)、このような文はわかりにくいとことが明らかになる。そして、出力部112が、「まず初めに円高の解決に向けた解決策の検討を考えたい。」のような文の冗長性の段階に応じて異なる状態で判定結果を外部に出力して(S112)、一連の動作が終了する。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
例えば、上記実施の形態では文レベルの冗長性の検出・修正の方法について説明したが、文レベルの冗長性の検出・修正の研究の方法を段落・文書レベルのものに拡張してもよい。例えば、同じ内容の段落を複数含む文章も冗長である。上記実施の形態で説明した技術は、文レベルの問題から長い文章レベルの問題まで含めて、冗長な文章の改善に役立つ。この場合、その手法を利用して、段落・文書レベルの冗長性判定用データベースと冗長性修正文集合データベースをあわせて例えば1万文を超える規模で作成するとともに、一段落内及び一文書内における冗長性の改善支援に役立てることができる。もっとも、段落、文書レベルになると分レベルの場合にくらべて自動修正はかなり困難になる可能性がある。しかしながら、冗長性の検出に重点をおいた場合には、少なくとも検出については、冗長性判定用データベースを利用することで、機械学習を利用した冗長個所の検出が可能であり、これにより、段落、文書レベルにおける冗長性を生む言語的特徴を検出可能になる。また、上記の同一・類似箇所検出技術を文書レベルに拡張し、この技術を利用した段落、文書レベルの冗長性の検出も行うことも可能である。なお、文レベルの冗長性の検出・修正の研究の方法を段落・文書レベルのものに拡張する場合には、これらの冗長性の判定技術が作文支援に有効かどうかを確かめる被験者実験をあらかじめ遂行しておくことが好ましい。
また、上記実施の形態では、出力部112が、「まず初めに円高の解決に向けた解決策の検討を考えたい。」のような文の冗長性の段階に応じて異なる状態で判定結果を外部に出力して(S112)、一連の動作が終了することとしたが、特にこの時点で動作をしなくてもよい。例えば、この後、修正部119が、この文からさらに冗長な表現を削除することで「まず円高の解決策を検討したい。」と修正することも可能である。具体的な手法としては、同一・類似箇所検出部107が、同義語辞書を利用することで、同等の内容が複数現れる同一・類似箇所を検出する。また、冗長性判定部113が、教師あり機械学習を用いることで、すでに冗長とわかっている文章などを教師信号として、自動で未知の文章が冗長か否かを判定する。そして、修正部119が、文章の言い換えの技術を利用して、冗長な文章を簡潔な文章に変換することができる。
また、上記実施の形態では、文節又は文同士の類似度を使って関連した箇所を抽出する構成としたが、特に限定する趣旨ではなく、段落同士の類似度を使って、類似した段落同士を抽出する構成とすることもできる。この場合、cos類似度や、単語の重複数の高い段落同士をとることによって、類似した段落同士を抽出することも可能である。
なお、繰り返しになるが、上記の実施形態では情報解析装置1000の構成、動作などについて説明したが、同様の構成の方法、システム、コンピュータプログラム、記録媒体なども、同様の作用効果を有する。この場合に、上記プログラムは、記録媒体に記憶させてもよい。この記録媒体を用いれば、例えば上記コンピュータに上記プログラムをインストールすることが できる。ここで、上記プログラムを記憶した記録媒体は、非一過性の記録媒体であっても良い。非一過性の記録媒体は特に限定されないが、例えば CD−ROM等の記録媒体であっても良い。