(57)【特許請求の範囲】
【請求項１】
文書を入力する入力手段と、
文書を解析し第一の単位ごとに分割する第一境界分割手段と、
前記第一境界分割手段によって第一の単位ごとに分割された文書を、第一の単位より長い第二の単位ごとに分割する第二境界分割手段と、
前記第二境界分割手段が分割した第二の単位ごとそれぞれの範囲内で、隣接する第一の単位を連結し列とし、連結前の第一の単位とともに第一の素性として抽出する列抽出手段と、
前記第一の素性を文書の素性として出力する素性出力手段と、
を有することを特徴とする、文書素性抽出装置。
【請求項２】
前記列抽出手段は、前記第二境界分割手段が分割した第二の単位ごとそれぞれの範囲内で隣接する第一の単位を連結するか否かを、前記第二の単位ごとそれぞれの種類に応じて決定することを特徴とする、請求項１に記載の文書素性抽出装置。
【請求項３】
前記第二境界分割手段が、前記第一境界分割手段によって第一の単位ごとに分割された文書を、第一の単位より長い第二の単位ごとに加え、第二の単位より長い第三の単位ごとにも分割することを特徴とする、請求項１又は２に記載の文書素性抽出装置。
【請求項４】
前記第二の単位ごとそれぞれの範囲内で主要な第一の単位を抽出し、抽出された主要な第一の単位を前記第三の単位の範囲内で連結し主辞列として出力する主辞列抽出手段を有し、
前記列抽出手段は、更に、前記主辞列に含まれる隣接する第一の単位を連結し第二の列として生成し、前記第一の列と前記第二の列を合わせて第一の素性として生成すること、
を特徴とする、請求項３に記載の文書素性抽出装置。
【請求項５】
前記列抽出手段は、前記第一の列と前記第二の列の間の重複を排除して第一の素性として生成することを特徴とする、請求項４に記載の文書素性抽出装置。
【請求項６】
前記第二境界分割手段が分割した第三の単位ごとそれぞれの範囲内で、前記列抽出手段が出力した第一の素性について、異なる特徴を有する第一の素性が存在するか否かを検出し、それら異なる特徴を有する第一の素性が同一の第三の単位の範囲内に存在するか否かを互いに論理演算し、論理演算した結果を第二の素性として出力する列共起検出手段を有し、
前記素性出力手段は、前記第一の素性と前記第二の素性を合わせて文書の素性として出力すること、
を特徴とする請求項３〜５のいずれか一項に記載の文書素性抽出装置。
【請求項７】
前記論理演算として、論理積(AND)、論理和(OR)、否定(NOT)、排他的論理和(ExOR)のうち、少なくともいずれか一つを含むことを特徴とする、請求項６に記載の文書素性抽出装置。
【請求項８】
前記文書が自然言語によって記述された文字列で構成される文書であることを特徴とする、請求項１〜７のいずれか一項に記載の文書素性抽出装置。
【請求項９】
前記第一の単位が単語であることを特徴とする請求項８に記載の文書素性抽出装置。
【請求項１０】
前記第二の単位が文節、句、又は、一定の文字数ごとに区切られたものであることを特徴とする請求項８又は９に記載の文書素性抽出装置。
【請求項１１】
前記文書が音声、映像又は画像を含む文書であることを特徴とする、請求項１〜７のいずれか一項に記載の文書素性抽出装置。
【請求項１２】
素性値としてｔｆｉｄｆ値を用いることを特徴とする請求項１〜１１のいずれか一項に記載の文書素性抽出装置。
【請求項１３】
請求項１〜１２のいずれか一項に記載の文書素性抽出装置によって抽出された文書の素性を用いることを特徴とする文書分類装置。
【請求項１４】
請求項１〜１２のいずれか一項に記載の文書素性抽出装置によって抽出された文書の素性を用いることを特徴とする文書検索装置。
【請求項１５】
文書を入力する入力ステップと、
文書を解析し第一の単位ごとに分割する第一境界分割ステップと、
前記第一境界分割ステップによって第一の単位ごとに分割された文書を、第一の単位より長い第二の単位ごとに分割する第二境界分割ステップと、
前記第二境界分割ステップが分割した第二の単位ごとそれぞれの範囲内で、隣接する第一の単位を連結し列とし、連結前の第一の単位とともに第一の素性として抽出する列抽出ステップと、
前記第一の素性を文書の素性として出力する素性出力ステップと、
を有することを特徴とする、文書素性抽出方法。
【請求項１６】
前記列抽出ステップは、前記第二境界分割ステップが分割した第二の単位ごとそれぞれの範囲内で隣接する第一の単位を連結するか否かを、前記第二の単位ごとそれぞれの種類に応じて決定することを特徴とする、請求項１５に記載の文書素性抽出方法。
【請求項１７】
前記第二境界分割ステップが、前記第一境界分割ステップによって第一の単位ごとに分割された文書を、第一の単位より長い第二の単位ごとに加え、第二の単位より長い第三の単位ごとにも分割することを特徴とする、請求項１５又は１６に記載の文書素性抽出方法。
【請求項１８】
前記第二の単位ごとそれぞれの範囲内で主要な第一の単位を抽出し、抽出された主要な第一の単位を前記第三の単位の範囲内で連結し主辞列として出力する主辞列抽出ステップを有し、
前記列抽出ステップは、更に、前記主辞列に含まれる隣接する第一の単位を連結し第二の列として生成し、前記第一の列と前記第二の列を合わせて第一の素性として生成すること、
を特徴とする、請求項１７に記載の文書素性抽出方法。
【請求項１９】
前記列抽出ステップは、前記第一の列と前記第二の列の間の重複を排除して第一の素性として生成することを特徴とする、請求項１８に記載の文書素性抽出方法。
【請求項２０】
前記第二境界分割ステップが分割した第三の単位ごとそれぞれの範囲内で、前記列抽出ステップが出力した第一の素性について、異なる特徴を有する第一の素性が存在するか否かを検出し、それら異なる特徴を有する第一の素性が同一の第三の単位の範囲内に存在するか否かを互いに論理演算し、論理演算した結果を第二の素性として出力する列共起検出ステップを有し、
前記素性出力ステップは、前記第一の素性と前記第二の素性を合わせて文書の素性として出力すること、
を特徴とする請求項１７〜１９のいずれか一項に記載の文書素性抽出方法。
【請求項２１】
前記論理演算として、論理積(AND)、論理和(OR)、否定(NOT)、排他的論理和(ExOR)のうち、少なくともいずれか一つを含むことを特徴とする、請求項２０に記載の文書素性抽出方法。
【請求項２２】
前記文書が自然言語によって記述された文字列で構成される文書であることを特徴とする、請求項１５〜２１のいずれか一項に記載の文書素性抽出方法。
【請求項２３】
前記第一の単位が単語であることを特徴とする請求項２２に記載の文書素性抽出方法。
【請求項２４】
前記第二の単位が文節、句、又は、一定の文字数ごとに区切られたものであることを特徴とする請求項２２又は２３に記載の文書素性抽出方法。
【請求項２５】
前記文書が音声、映像又は画像を含む文書であることを特徴とする、請求項１５〜２１のいずれか一項に記載の文書素性抽出方法。
【請求項２６】
素性値としてｔｆｉｄｆ値を用いることを特徴とする請求項１５〜２５のいずれか一項に記載の文書素性抽出方法。
【請求項２７】
請求項１５〜２６のいずれか一項に記載の文書素性抽出方法によって抽出された文書の素性を用いることを特徴とする文書分類方法。
【請求項２８】
請求項１５〜２６のいずれか一項に記載の文書素性抽出方法によって抽出された文書の素性を用いることを特徴とする文書検索方法。
【請求項２９】
請求項１５〜２８のいずれか一項に記載の方法を実行するためのプログラム。
【請求項３０】
請求項１５〜２８のいずれか一項に記載の方法を実行するためのプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習を用いて文書を分類又は検索する際に、対象となる文書の素性を抽出する文書素性抽出装置、文書素性抽出方法、および、その素性を利用して文書を分類又は検索する、文書分類装置、文書分類方法、文書検索装置、文書検索方法、コンピュータプログラム、および、コンピュータプログラムを記録した記録媒体に関する。なお、本発明でいう「文書」とは、その長さやその目的から限定されるものではなく、単なる文や検索式のようなものを含み、更には、文字列からなる文書のみならず、それ以外のデータ、例えば、音声、映像や画像、その他のデータによって構成されるものを含む。
【背景技術】
【０００２】
機械学習においては、対象となる文書の素性を要素とするベクトル（「素性ベクトル」あるいは「特徴ベクトル」）を用いて事例を表現することがしばしばある。その場合、事例間の類似度や事例の分布は、それぞれの事例を表現する素性ベクトル間の類似度や素性ベクトルの分布により与えられる。
【０００３】
たとえば、文書分類においては、分類の対象となる事例は個々の文書であり、与えられた文書カテゴリの集合の中の０個、１個あるいは複数個の文書カテゴリを各文書に対して割り当てることで文書分類が行われる。その際、それぞれの文書に対応する素性ベクトルは、文書中に含まれる単語の有無（０／１）や単語の文書中における頻度、あるいは頻度と単語の重要度から計算される単語の重み（評価値）などを要素とするベクトルで表される。実用上よく用いられる単語の評価値の１つとしてｔｆｉｄｆが挙げられる。ｔｆｉｄｆは、ｔｆ（単語の文書内出現頻度）とｉｄｆ（逆文書頻度）の二つの指標にもとづいて計算される。ｔｆｉｄｆの計算方法には、ｔｆ−ｉｄｆ−ｃｆ，ｔｆｃ，ｌｔｃ，ａｔｃ, ｎｔｃ, ａｎｎ, ｂｎｎ, ｌｎｎ, ｎｎｎなど、いくつかの種類があるが、たとえば以下のような式で求めることができる。
【０００４】
【数１】
0006303148.tif 000002
【０００５】
【数２】
0006303148.tif 000003
【０００６】
【数３】
0006303148.tif 000004
【０００７】
ここで、ni,jは単語tiの文書djにおける出現頻度、|D|は文書の総数、|{d:d∋ti}|は単語tiを含む文書の数である。
なお、ここでは「単語」という用語を用いているが、既に述べたように、本発明でいう「文書」とは、文字列からなる文書のみならず、それ以外のデータ、例えば、音声、映像や画像、その他のデータによって構成されるものを含み、それにあわせて、本発明でいう「単語」とは、自然言語における単語という意味に限定されるものではなく、その上位概念である、なんらかの意味を持つデータのまとまりという意味である。
【０００８】
文書djにおける文書ベクトルの単語tiに対するベクトル要素は、以下のとおりとなる。
【０００９】
【数４】
0006303148.tif 000005
【００１０】
単語の重みとしてｔｆｉｄｆを用いた文書分類手法の例として、非特許文献１に記載された教師付学習による手法がある。教師付学習による文書分類では、文書カテゴリが付与された文書の集合からなる学習データを用いて学習器に学習処理を施した後に、任意の文書に対して文書カテゴリの付与を行う。学習の第一ステップにおいて、各々の文書は素性と素性値のペアの集合に変換される。非特許文献１に記載された手法においては、学習器としてＳＶＭ(Support Vector Machine)が用いられ、素性として、学習データに３回以上出現した単語のうち、「and」「or」「the」などのストップワード(stop word)と呼ばれる検索の対象から除外された単語以外の単語が用いられている。素性値としてはｔｆｉｄｆの一種であるｔｆｃという指標が用いられている。非特許文献１では、Ｒｅｕｔｅｒｓコーパスを用いた文書分類実験において、ＳＶＭを含む５種類の機械学習器の分類精度比較を行った結果、ＳＶＭが最高精度を示し、ＫＮＮ法（k-nearest neighbor classifier）が次に高い精度を示したと報告されている。
【００１１】
その他にも、機械学習を用いた文書分類において、ＳＶＭやＫＮＮが高い精度を達成できたという報告がなされている。また、これらの機械学習において、膨大な数の単語の中からどのように素性として用いるべき単語を選択するかという素性選択手法についても、多くの報告がなされている。しかしながら、そもそもどのような文字列を素性とすれば高い精度が得られるか、そしてどのように素性値を求めれば高い精度が得られるかについては、まだ十分に明らかにされているとはいえない。
【００１２】
たとえば、日本語の文書分類を行う場合、素性選択の前にまず文章を単語単位に分割する必要があるが、単語の切り出し方の違いにより学習データとテストデータの間で素性の不一致が生じる場合がある。一例として、表１に示すように、学習データ中に「医療科学部」、テストデータ中に「健康医療科学部」という文字列を含む文書が存在した場合を考える。ここで両文書は相互に関連が深いものと仮定する。もしこの時、学習データ中の「医療科学部」が「医療科」＋「学部」、テストデータ中の「健康医療科学部」が「健康医療」＋「科学」＋「部」のように単語分割されたならば、両文字列間に共通の単語は存在しないことになり、その分学習データとテストデータの間の関連性が実際よりも低く見積もられることになる。
【００１３】
このように、日本語の文書分類を行う場合、決定論的解析により単語の切り出しを行い、切り出された単語をそのまま素性（あるいは素性の候補）にするという従来手法では、文書間の関連性を十分に捉えきれないという問題があった。
【００１４】
【表１】
0006303148.tif 000006
【００１５】
文書を単語の集合と捉え、文書の特徴やアイデンティティーを文書中の単語の特徴やアイデンティティーから推定することを特徴とする、文書分類、情報検索やその他様々な言語処理システムにおいては、長い単語ほど良く文書の特徴を表す傾向にあると言える。たとえば、文書Ａと文書Ｂの内容の近さや、あるいは検索式Ａと検索対象文書群中の文書Ｂの内容の近さを計ろうとしたとき、文書Ａ／検索式Ａと文書Ｂに単語「カラー画像情報処理装置」が共通して現れた場合の方が、文書Ａ／検索式Ａと文書Ｂにそれぞれ「カラー」「画像」「情報」「処理」「装置」という単語がそれぞれ共通して現れた場合よりも、文書Ａ／検索式Ａと文書Ｂの内容が近いと推定することができる。従って、素性としての識別能力を重視した場合は、特に専門用語は長めに抽出した方が、これらの言語処理システムにおいては素性として有効に働くと言える。
【００１６】
しかしながら、文書Ａ／検索式Ａのみに単語「カラー画像情報処理装置」が現れ、文書Ｂのみに単語「画像情報処理装置」が現れた場合、「カラー画像情報処理装置」と「画像情報処理装置」がそれぞれ単語として切り出されてしまうと、文書Ａ／検索式Ａと文書Ｂの間の重要な共通要素が失われてしまう。従って、取りこぼしのないように、すなわち網羅性を高めるようにしようとした場合は、文書Ａ／検索式Ａと文書Ｂそれぞれにおいて「画像」「情報」「処理」「装置」を単語として切り出すなど、短めに抽出した方が素性として有効に働くと言える。従来技術では、これらのトレードオフの関係を効果的に解消できていないという課題があった。
【００１７】
単語ベースの素性に代わる、あるいはそれを補強する従来手法として、単語ｎ−ｇｒａｍを素性として用いた文書分類手法が提案されている。特許文献１および２では、単語ｎ−ｇｒａｍを含む特徴情報を抽出してベクトルの素性とする文書分類手法を提案している。しかし文書からどのような単語ｎ−ｇｒａｍを抽出するかは示されていない。その他の従来技術においても、単語ｎ−ｇｒａｍを素性として用いる場合、「単語ｎ−ｇｒａｍ（ｎ＝１、２、３、…）」という形で指定されている。しかしながら、単に単語を並べただけの単語ｎ−ｇｒａｍでは、素性としての識別能力に大きな差が生じる。またｎの値の増加にともなって素性の数が爆発的に増加するという問題もある。このように、素性として有効な単語ｎ−ｇｒａｍを抽出するためには、単にｎの値を制限するという従来方法では不十分であった。
【００１８】
また、特許文献３および４には、文節から構成される文から、隣接する文節を組み合わせて文の一部分を文節のｎ−ｇｒａｍとして取出し素性として用いることが記載されているが、特許文献３および４に記載されるものについても、特許文献１および２に記載されるものと、同様の問題を有している。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特開２０１４−０６７１５４号公報
【特許文献２】特開２０１４−１２３２８６号公報
【特許文献３】特開２０１３−１７１５５０号公報
【特許文献４】特開２０１５−０１１４２６号公報
【特許文献５】特許第４４７８０４２号公報
【非特許文献１】T. Joachims, Text categorization with support vector machines: learning with many relevant features, in: Proceedings of 10th European Conference on Machine Learning, (ECML), Chemnitz, Germany, pp. 137-142, 1998
【非特許文献２】Yang, Yiming, and Jan O. Pedersen. "A comparative study on feature selection in text categorization." ICML. Vol. 97. 1997
【非特許文献３】Information Retrieval (Z39.50): Application Service Definition and Protocol Specification, ANSI/NISO Z39.50-2003, http://www.loc.gov/z3950/agency/Z39-50-2003.pdf
【発明の概要】
【発明が解決しようとする課題】
【００２０】
機械学習を用いて文書を分類又は検索する際に、高い精度を得ることができる、対象となる文書の素性を抽出する文書素性抽出装置、文書素性抽出方法を提供する。また、そのような素性を用いた文書分類装置、文書分類方法、文書検索装置、文書検索方法をも提供する。なお、ここでいう「文書」とは、文字列からなる文書のみならず、それ以外のデータ、例えば、音声、映像や画像、その他のデータによって構成されるものを含む。
【課題を解決するための手段】
【００２１】
従来技術において述べた、素性としての識別能力を重視した場合は単語を長めに抽出した方が良く、取りこぼしのないように、すなわち網羅性を高めるようにしようとした場合は、単語を短めに抽出した方が素性として有効に働くというトレードオフの関係を調整する手段として、以下の２つの手法を提案する。
【００２２】
最初に、特定の領域内の単語列を素性として用いるという手法である。たとえば、文書Ａ／検索式Ａのみに単語「カラー画像情報処理装置」が現れ、文書Ｂのみに単語「画像情報処理装置」が現れた場合を考える。まず、文書Ａから単語「カラー」「画像」「情報」「処理」「装置」などを抽出し、それらを連結することによって単語列「カラー画像情報処理装置」「画像情報処理装置」「情報処理装置」「画像」「情報」「処理」「装置」などを得る。次に、文書Ｂから単語「画像」「情報」「処理」「装置」などを抽出し、それらを連結することによって単語列「画像情報処理装置」「情報処理装置」「画像」「情報」「処理」「装置」などを得る。ここで、得られた単語列同士を比較すると、互いに同じ単語列が存在することとなり、それを検出することによって、文書Ａ／検索式Ａと文書Ｂが類似しているか否かを判断する。
【００２３】
なお、ここでいう「単語列」とは、上の例において、文書Ａから抽出された単語「カラー」「画像」「情報」「処理」「装置」を連結した単語列に、「画像」「情報」「処理」「装置」が含まれているように、隣接する２つ以上の単語を連結したもののみではなく、連結する前の単語そのものも含まれる。
【００２４】
更に、これに加えて、特定の領域内において、複数の単語列が共に存在すること、すなわち、共起を利用する手法も提案する。たとえば、文書Ａが特許文書であり、その特許文書に記述されている技術の技術分野を知ろうとする場合に、文書Ａのある文に「本発明は」という単語列と「自然言語処理」という単語列が共に存在した場合には、文書Ａのある文に「本発明は」という単語列が存在し文書Ａの別の文に「自然言語処理」という単語列が存在した場合に比べて、文書Ａに記述されている技術の技術分野が自然言語処理である可能性はより高いものとなる。
【００２５】
なお、ここでは、複数の単語列が共に存在すること、すなわち、共起ということを前提として説明したが、例えば、単語列αが二義的な単語列であって、単語列αと単語列βが共起した場合には一方の意味であって、単語列αがあるものの単語列βが存在しない場合には通例他方の意味となるような場合も考えられる。このような場合を包含するために、以下「共起」という言葉の意味を、単純な共起ではなく、単語列αがあるものの単語列βが存在しない、単語列αと単語列βの一方のみが存在する等に拡張して考える。なお、この「共起」の例は実施例３にて詳細に説明する。
【発明の効果】
【００２６】
このような手法を用いることによって、識別能力と網羅性を両立でき、その結果高い分類精度や検索精度を達成できる。
【図面の簡単な説明】
【００２７】
【図１】実施例１のフローチャートである。
【図２】実施例１において、処理の対象となる文字列をどのように処理するかを示す図である。
【図３】実施例１のステップＳ１０４で行われる単語列の生成処理を示す図である。
【図４】実施例２で作成される構文解析木を示す図である。
【図５】実施例２のフローチャートである。
【図６】実施例３のフローチャートである。
【図７】実施例３のステップＳ６０５で行われる単語列の共起の処理を示す図である。
【図８】実施例５の文書分類装置のブロック図である。
【図９】実施例５の文書分類装置において文書分類を行うときのフローチャートである。
【図１０】実施例５の文書分類装置で用いる素性統計を作成するときのフローチャートである。
【図１１】実施例５の文書分類装置で用いる分類モデルを作成するときのフローチャートである。
【図１２】実施例６の文書検索装置のブロック図である。
【図１３】実施例６の文書検索装置において文書検索を行うときのフローチャートである。
【図１４】実施例６の文書検索装置で用いる素性統計を作成するときのフローチャートである。
【図１５】実施例６の文書検索装置で、検索式を処理するためのフローチャートである。
【発明を実施するための形態】
【００２８】
本発明を実施するための形態について図面を参照しながら詳細に説明する。
【実施例１】
【００２９】
実施例１として説明するものは、特定の領域内の単語列を素性として用いるという手法である。
図１は、実施例１のフローチャートである。また、図２は、実施例１において、処理の対象となる文字列をどのように処理するかを示す図である。
【００３０】
まず、実施例１では、図１の読込みステップＳ１０１において、素性の抽出の対象となる文書を読み込む。
つぎに、形態素解析ステップＳ１０２において、対象言語の文法の知識や辞書を用いて、読み込んだ文書に対して形態素解析を行い、単語ごとに分割する。なお、この形態素解析ステップＳ１０２での分割の単位は必ずしも単語に限定される必要はなく、他の単位でも必ずしも問題はないので、ここでいう単語とは「第一の単位」とも呼べる程度の意味であり、形態素解析ステップＳ１０２も第一境界分割ステップとも呼べる程度の意味である。
【００３１】
そして、境界検出ステップＳ１０３では、解析された文書から文節境界を抽出する。
ここで、この抽出された文節境界は、次のステップＳ１０４で単語列を作成するときに用いるためのものであって、単語列を作成する対象となる範囲の長さをなるべく短くすることによって、次の単語列抽出ステップＳ１０４で抽出される単語列の組み合わせが非常に多くなることを防止することであることから、この境界検出ステップＳ１０３で抽出されるのは、その境界をまたぐ形の単語が存在しない境界であればよく、文節境界の代わりに、文の境界や、句読点による境界など、他の境界で代えることもできる。更に、処理の対象の言語によっては、その境界をまたぐ形の単語が存在しない境界であれば、文節、文以外の境界となることもありうる。
【００３２】
加えて、実施例１の処理を、文書全体に適用して素性を抽出することを考えると、文書のある個所における境界検出ステップＳ１０３で抽出された境界が正しくないものであって、その境界によって合成語・複合語が分断されることによって、その境界の周辺で行われる単語列抽出ステップＳ１０４の処理の結果が必ずしも正確ではないものとなったとしても、その文書における重要な記述は文書中に複数回現れるのが通例であって、一回の間違いは文書全体からみて必ずしも大きな重みをもつものではないから、境界検出ステップＳ１０３が、その境界をまたぐ形の単語が存在しない境界という前提を満たしつつ、ある一定数の文字数ごとに境界を区切るものでも、分類や検索を行うときの最終的な結果に必ずしも大きな影響を与えるものでもない。
【００３３】
すなわち、ここでいう文節とは単語より長い単位、すなわち、「第一の単位より長い第二の単位」とも呼べる程度の意味であり、境界検出ステップＳ１０３も第二境界分割ステップとも呼べる程度の意味である。
【００３４】
なお、まれに、文節境界前後の単語に意味的な関連がある場合があるため、この第二の単位として、文節より長いものを用いると、より高い分類精度や検索精度を達成できる場合がある。
【００３５】
次の単語列抽出ステップＳ１０４が実施例１において、最も重要な処理を行うステップであって、文字列の中の特定の領域内から単語列を抽出する。
図２を参照し、単語列抽出ステップＳ１０４が、素性の抽出の対象となる文書、検索式に含まれる文字列をどのように処理するかを示す。なお、この図２を用いて、単語列抽出ステップＳ１０４の前提として、単語列抽出ステップＳ１０４の前に処理を行う形態素解析ステップＳ１０２、境界検出ステップＳ１０３が、どのような処理を行うかについても説明する。
【００３６】
まず、読込みステップＳ１０１で、処理の対象の文字列として「対地作業機のローリング制御装置における対地追従性能を向上させる」という文字列を読み込む。
つぎに、形態素解析ステップＳ１０２において、形態素解析を行ない、入力した文字列を単語ごとに分割する。実施例１の形態素解析ステップＳ１０２における形態素解析では、後に単語列抽出ステップＳ１０４の処理を行うため、「カラー画像情報処理装置」や「対地作業機」のような合成語・複合語をひとまとまりの単語として単語分割をする必要はなく、図２に示すように、「対地作業機」を「対」「地」「作業」「機」、「ローリング制御装置」を「ローリング」「制御」「装置」というように、細かく分割しても問題がないので、この形態素解析に必要な対象言語の文法の知識や辞書を簡易なものとすること、更には形態素解析に必要な処理時間を短くすることができる。
【００３７】
そして、境界検出ステップＳ１０３において、文節境界を抽出する。図２では、抽出された文節境界を「／」で示す。
単語列抽出ステップＳ１０４では、境界検出ステップＳ１０３で抽出された文節境界で囲まれた領域を処理の対象とし、その領域の内で、形態素解析ステップＳ１０２での形態素解析によって得られた単語のうち隣接するものを連結し単語列として抽出するとともに、連結前の単語とあわせ、それら全体を単語列として出力する。たとえば、図２に示されるように、「対地作業機の」が文節として抽出され、この中から「対」「地」「作業」「機」「の」が単語として抽出されたので、隣接する単語を連結したものとして、「対地」「対地作業」「対地作業機」「対地作業機の」「地作業」「地作業機」「地作業機の」「作業機」「作業機の」「機の」という単語列を生成し、連結前の単語である「対」「地」「作業」「機」「の」とあわせて、これら全てを単語列として出力する。この連結処理を概略化して示したのが図３である。この図３では、αβγδという順番で４つの単語からなる文節があるときに、その文節に対して単語列抽出ステップＳ１０４に示される単語列の生成処理を行ったときに出力される単語列を示している。
【００３８】
このような単語列の生成処理を行うため、対象となる文書に含まれる可能性のある単語について、重複した形とはなるものの、ほとんどすべてが検出されることになる。
なお、既に述べたように、ここでいう単語とは「第一の単位」とも呼べる程度の意味であって、形態素解析ステップＳ１０２が単語以外の単位で分割することもありうるから、この単語列抽出ステップＳ１０４も、列抽出ステップとも呼べる程度の意味である。
【００３９】
また、単語列抽出ステップＳ１０４を設け、このような連結処理を行うため、形態素解析ステップＳ１０２における形態素解析において、「カラー画像情報処理装置」や「対地作業機」のような合成語・複合語をひとまとまりの単語として単語分割をする必要がなく、形態素解析ステップＳ１０２における形態素解析に必要な対象言語の文法の知識や辞書を簡易なものとすること、更には形態素解析に必要な処理時間を短くすることができ、実施例１全体としての処理を短くすることができる。
【００４０】
そして、素性出力ステップＳ１０５において、図２に示すような、単語列抽出ステップＳ１０４が抽出した単語列を文書の素性として出力する。
実施例１で生成される単語列を文書の素性として用い、検索や分類を行うことによって、識別能力と網羅性を両立でき、その結果高い分類精度や検索精度を達成できる。
【００４１】
なお、特許文献５には、特定の領域内の単語を重複を許す形で抽出するものが記載されており、出力だけをみると、この実施例１と類似しているといえる。
しかしながら、特許文献５に記載される形態素ラティス生成部１０で生成される形態素ラティス８０は、特許文献５の段落００４５や図２，６に記載されるように、「東」「京」「都」「東京」「京都」などがいずれも形態素解析のための辞書の中の単語として存在するという前提で形態素解析を行なうものである。これに対し、実施例１の形態素解析ステップＳ１０２で行われる形態素解析は、「東」「京」「都」のみが形態素解析のための辞書に単語として存在し、「東京」「京都」が単語として形態素解析のための辞書中に存在しない場合でも、「東」「京」「都」「東京」「京都」「東京都」などが単語列として得られるものであって、最終的に得られるものが類似しているといえるとしても、それを求めるための途中の手法が異なっているといえる。
【実施例２】
【００４２】
実施例２は、実施例１を英語に適用した例である。この実施例２では、実施例１を単に英語に適用することに加え、英語の文法に適応した処理を加えている。
図４，５は、実施例２による英文の処理を示す図である。
【００４３】
図４は、入力される文を構文解析した構文解析木を示す。図４において、ＮＰ[2]，Ｖ[4]，ＮＰ[5]，ＮＰ[7] ，Ｖ[9] ，ＮＰ[10] ，Ｐ[12] ，ＮＰ[13]等は、その句の種類を表し、これらの横にある"(congress)", "(sent)" , "(president)"は、その句の主要部である主辞(head)を示す。
【００４４】
図５は、実施例１の図１に対応するフローチャートである。
図４に示すように、"Congress sent the president an $ 18.4 billion fiscal 1990 Treasury and Postal Service bill providing $ 5.5 billion for the Internal Revenue Service"という文を入力することを例として実施例２を説明する。
【００４５】
まず、入力された文書を構文解析し、単語、句、文という単位に分割するとともに構文解析木を作成する。この処理は、読込みステップＳ５０１、構文解析ステップＳ５０２、境界検出ステップＳ５０３で行われる。実施例１と同様に、単語とは「第一の単位」とも呼べる程度の意味、句とは「第一の単位より長い第二の単位」とも呼べる程度の意味、文とは「第一の単位及び第二の単位いずれより長い第三の単位」とも呼べる程度の意味である。また、境界検出ステップＳ５０３も第二境界分割ステップとも呼べる程度の意味である。
【００４６】
なお、実施例１の境界検出ステップＳ１０３について説明したように、対象言語によっては、境界検出ステップＳ５０３で抽出する境界が句や文以外の境界となることもありうるし、境界検出ステップＳ５０３が、その境界をまたぐ形の単語が存在しない境界という前提を満たしつつ、一定数の文字数ごとに境界を区切るものでも、分類や検索を行うときの最終的な結果に、必ずしも大きな影響を与えるものでもない。
【００４７】
それと並行して、構文解析ステップＳ５０２によって、文内のすべての単語を抽出する。図４の例では、"Congress", "sent", "the", "president", "an", "$", "18.4", "billion", "fiscal", "1990", "Treasury", "and", "Postal", "Service", "bill", "providing", "$", "5.5", "billion", "for", "the", "Internal", "Revenue", "Service"を抽出することとなる。
【００４８】
そして、句処理ステップＳ５０４にて、構文解析ステップＳ５０２、境界検出ステップＳ５０３の出力にもとづき、句について、名詞句(NP)、動詞句(VP)、形容詞句(AP)、副詞句(AdvP)、前置詞句(PP)、接続詞句(ConjP)、数量詞句(QP)などに分類し、それと共に、それぞれの句の主辞(head)を抽出する。この句処理ステップＳ５０４で行われる２種類の処理は、以下で述べるように、必ずしも必須のものではない。また、主辞情報付き文脈自由文法に基づく構文解析器を用いることによってステップS502からステップS504までの処理を１つのステップで行ってもよい。
【００４９】
次に、主辞列抽出ステップＳ５０５にて、抽出された主辞(head)のうち、構文解析木の葉ノード、すなわち、一つの単語のみを有するノードを子ノードとして持つ内部ノードに付与されたもの、図４で示された構文解析木ではＮＰ[2]，Ｖ[4]，ＮＰ[5]，ＮＰ[7] ，Ｖ[9] ，ＮＰ[10] ，Ｐ[12] ，ＮＰ[13]に付与された主辞(head)を連結し"Congress sent president bill providing billion for Service"というような主辞列として抽出する。なお、文法理論によっては、前置詞(P)と名詞句(NP)とからなる前置詞句(PP)において、前置詞句(PP)の主辞は前置詞(P)であるとされるが、本実施例では名詞句(NP)を主辞として扱った。
【００５０】
更に、単語列抽出ステップＳ５０６では、入力された文のそれぞれの句と、主辞列抽出ステップＳ５０５で生成された主辞列を対象として以下のように単語列を生成する。
まず、入力された文のなかのそれぞれの名詞句(NP)について、名詞句(NP)内の隣接する単語を順次連結して単語列を生成する。例えば、名詞句(NP)である"the Internal Revenue Service"から、"the", "Internal", "Revenue", "Service", "the Internal", "the Internal Revenue", "the Internal Revenue Service", "Internal Revenue", "Internal Revenue Service", "Revenue Service"という単語列を生成する。なお、ここでは、名詞句(NP)内の隣接する単語を順次連結して単語列を生成するとしたが、もちろん、その種類に関わらず、すべての句について隣接する単語を順次連結して単語列を生成するようにしてもよい。その場合には、先に述べた、句処理ステップＳ５０４における句についての分類が必要ではないこととなる。
【００５１】
そして、主辞列内の隣接する単語を順次連結して単語列を生成する。すなわち、"Congress sent president bill providing billion for Service"というような主辞列から、"Congress", "Congress sent", "Congress sent president", "Congress sent president bill", "Congress sent president bill providing", "Congress sent president bill providing billion", "Congress sent president bill providing billion for", "Congress sent president bill providing billion for Service", "sent", "sent president", "sent president bill", "sent president bill providing", "sent president bill providing billion", "sent president bill providing billion for", "sent president bill providing billion for Service", "president”, “president bill", "president bill providing"・・・などのような単語列を生成する。
【００５２】
この結果、一つの文、"Congress sent the president an $ 18.4 billion fiscal 1990 Treasury and Postal Service bill providing $ 5.5 billion for the Internal Revenue Service"から、名詞句(NP)から生成された単語列と主辞列から生成された単語列という２つの単語列が生成されるので、必要に応じて重複を排除し、まとめて文に対する単語列とする。
【００５３】
もちろん、この主辞列から単語列を生成することを省略してもよく、その場合には、句処理ステップＳ５０４で行われる主辞(head)の抽出、主辞列抽出ステップＳ５０５、単語列抽出ステップＳ５０６で行われる主辞列からの単語列の生成、重複の排除が必要ないこととなる。
【００５４】
最後に、素性出力ステップＳ５０７において、単語列抽出ステップＳ５０６が抽出した単語列を文書の素性として出力する。
なお、実施例２は英語を例として説明したが、もちろん、日本語を含む、英語以外の言語に適用することも可能である。
【実施例３】
【００５５】
実施例３として説明するものは、実施例１，２で説明したような、素性として抽出した単語列に対して、特定の領域内において、主に、複数の単語列が共に存在すること、すなわち、共起を利用する手法である。
【００５６】
なお、ここで「共起」という用語を用いているが、それは、この実施例３で想定される代表的な例は、複数の単語列が共に存在すること、すなわち、共起ということであって、必ずしもそれに限定されるものではない。この後の実施例３の説明も、この共起を中心に説明するが、既に述べたように、例えば、単語列αが二義的な単語列であって、単語列αと単語列βが共起した場合には一方の意味であって、単語列αがあるものの単語列βが存在しない場合には通例他方の意味となるような場合も考えられるため、以下「共起」という言葉の意味を、単純な共起ではなく、単語列αがあるものの単語列βが存在しない、単語αと単語βの一方のみが存在する等に拡張して考える。
【００５７】
また、ここでいう「共起」は一種の近接演算であるともいえ、近接演算を単なる単語に適用することは、例えば、非特許文献３第９７〜９８頁"3.7.2 Proximity"に記載されるようによく知られている。しかしながら、実施例３では「共起」を単語ではなく単語列に適用することによって、相乗効果を得ることができる。
【００５８】
図６は、実施例３のフローチャートである。
まず、実施例３では、図６の読込みステップＳ６０１において、素性の抽出の対象となる文書を読み込み、つぎに、ステップＳ６０２において、対象言語の文法の知識や辞書を用いて、読み込んだ文書を、文字列として形態素解析を行い単語ごとに分割する。この読込みステップＳ６０１は、実施例１の読込みステップＳ１０１と同様のものである。実施例１と同様に、形態素解析ステップＳ６０２での分割の単位は必ずしも単語に限定される必要はなく、他の単位でも必ずしも問題はないので、ここでいう単語とは「第一の単位」とも呼べる程度の意味であり、形態素解析ステップＳ６０２も第一境界分割ステップとも呼べる程度の意味である。
【００５９】
つぎに、境界検出ステップＳ６０３で、解析された文書から文節境界と文境界を抽出する。抽出された文節境界は実施例１と同様に「第一の単位より長い第二の単位」と呼べる程度の意味のものであって、単語列抽出ステップＳ６０４で用いられる。これに対し、抽出された文境界は単語列共起検出ステップＳ６０５で共起の関係を調べるための範囲として用いられる。実施例２の境界検出ステップＳ５０３において文境界について説明したのと同様に、この文境界も単語や文節より長い単位、すなわち、「第一の単位及び第二の単位いずれより長い第三の単位」とも呼べる程度の意味である。すなわち、境界検出ステップＳ６０３も第二境界分割ステップとも呼べる程度の意味である。
【００６０】
なお、実施例１の境界検出ステップＳ１０３、実施例２の境界検出ステップＳ５０３について説明したように、対象言語によっては、境界検出ステップＳ６０３で抽出する境界が文節や文以外の境界となることもありうるし、境界検出ステップＳ６０３が、その境界をまたぐ形の単語が存在しない境界という前提を満たしつつ、一定数の文字数ごとに境界を区切るものでも、分類や検索を行うときの最終的な結果に、必ずしも大きな影響を与えるものでもない。
【００６１】
単語列抽出ステップＳ６０４は、実施例１の単語列抽出ステップＳ１０４に対応するものであって、全く同じ動作をするので説明を省略する。
単語列共起検出ステップＳ６０５が実施例３において、最も重要な処理を行うステップであって、文字列の中の特定の領域内において、複数の単語列が共起することを検出する。なお、既に述べたように、ここでいう単語とは「第一の単位」とも呼べる程度の意味であって、形態素解析ステップＳ６０２が単語以外の単位で分割することもありうるから、この単語列共起検出ステップも、列共起検出ステップとも呼べる程度の意味である。
【００６２】
図７を参照し、単語列共起検出ステップＳ６０５が検出すべき共起について、既に述べたような、単語列αがあるものの単語列βが存在しない、単語列αと単語列βの一方のみが存在する等に拡張することを含めて説明する。
【００６３】
図７(a)は、「共起」の例として、処理対象の文が「αβγ」という３つの単語列から構成されているときに、『単語列「α」と単語列「β」が共に存在する。』という単語列「α」と単語列「β」の存在が論理積(AND)の関係を有する場合、『単語列「α」は存在するが、単語列「β」は存在しない。』という単語列「α」の存在と単語列「β」の不存在が論理積(AND)の関係を有する場合、『単語列「α」、単語列「β」のいずれか一方又は両方が存在する。』という単語列「α」と単語列「β」の存在が論理和(OR)の関係を有する場合、『単語列「α」、単語列「β」のいずれか一方のみが存在する。』という単語列「α」と単語列「β」の存在が排他的論理和(ExOR)の関係を有する場合についての例を示している。単語列共起検出ステップＳ６０５の出力は、検出の対象となる単語列の組み合わせが存在するか否かを出力するだけであり、最終的に得られる値は、「０」か「１」のいずれかとなっている。したがって、図７(b)のように、処理対象の文が「αβγαβ」のように同じ単語列が複数回含まれている場合の例でも、『単語列「α」と単語列「β」が共に存在する。』は「１」を出力することとなる。このように処理する理由は、「αβγαβ」を処理対象の文とし、『単語列「α」と単語列「β」が共に存在する。』という判断をするときに、一番目の単語列の「α」に対して、二番目の単語列の「β」と五番目の単語列の「β」のいずれが共起した単語列として適切なのか、また、双方とも共起した単語列として適切なのかの判断が難しいからであるが、その反面、一つの文のなかで同じ単語列の組み合わせで共起が複数発生したことを正しく反映できなくなるという問題もある。したがって、この場合に、より近い組合せの回数を検出した「２」、全ての組合せの回数を検出した「４」を出力するように構成してもよい。
【００６４】
「０」か「１」のいずれかを出力する場合の単語列共起検出ステップＳ６０５の実際の処理は、検出の対象となる単語列、例えば、単語列「α」と単語列「β」が、処理の対象となる文字列の中の特定の領域内、例えば、「αβγ」において存在するか否かをまず検出し、その検出結果を、論理積(AND)、論理和(OR)、否定(NOT)、排他的論理和(ExOR)に代表される論理演算(Boolean演算)を行って求めることとなる。
【００６５】
なお、単語列共起検出ステップＳ６０５で検出する「共起」は、２つの単語列の間のみに起こるものではなく、図７で示す『単語列「α」、単語列「β」、単語列「γ」が共に存在する。』に代表されるような、３単語以上の間での「共起」も含んでいる。
【００６６】
最後に、素性出力ステップＳ６０６において、単語列抽出ステップＳ６０４で抽出された単語列と、単語列共起検出ステップＳ６０５で検出された「共起」を、合わせて文書の素性として出力する。このように、単語列そのものと単語列の共起を併せて素性として扱うことを、以下、「複合素性」と呼ぶ。
【００６７】
複数の単語列が近接して存在することは、単に一つの単語列が存在することに比べ、より限定された意味を表現していると考えることができるから、単語列共起検出ステップＳ６０５が出力する単語列の共起の有無を素性として用いることは、単なる単語列の有無を素性として用いることに比べより正確なものであるということができる。そして、実施例３で生成される図７に示したような単語列の共起の有無を素性として用い、検索や分類を行うことによって、識別能力と網羅性を両立でき、その結果高い分類精度や検索精度を達成できる。
【実施例４】
【００６８】
実施例１，２では図２で示したような単語列を素性として用いることによって、また、実施例３では図７に示したような単語列の共起を素性として用いることによって、検索や分類の識別能力と網羅性を両立でき、その結果高い分類精度や検索精度を達成できることについて説明した。それをふまえ、実施例４では、実施例３で説明したように、単語列を素性として用いることと、単語列の共起を素性として併用し「複合素性」とするときに、どのようにｔｆｉｄｆを用いるかの一例について説明する。
【００６９】
背景技術の式（１）〜（４）で示したのが、単語に対するｔｆｉｄｆの求め方の一例とそれに基づく文書ベクトルの定義である。実施例１，２で説明したように単語列は単語を連結したものであるから、単語列に対してｔｆｉｄｆを用いるときは、抽出された単語列それぞれをそのまま式（１）〜（４）における単語tiとして扱えばよい。
【００７０】
これに対し、実施例３で示した単語列の共起を素性として用いる部分は以下のとおりとなる。
まず、共起の対象となる単語列として単語列αと単語列βを考える。基本的には、この単語列αと単語列βを組み合わせた単語列ペアＰという概念を考え、この単語列ペアＰの共起を単語列と同様に式（１）〜（４）における単語tiとして扱えばよい。しかしながら、この単語列αと単語列βに対しての共起は図７にも示されたように、以下のように複数種類存在するから、この単語列ペアＰの共起の実際の数は、共起の検出対象となる単語列αと単語列βの組み合わせの数に対し、検出の対象となる共起の種類の数を乗じた数となる。
【００７１】
【数５】
0006303148.tif 000007
【００７２】
なお、実施例３でも説明したように、「共起」は２つの単語列の間のみに起こるものではなく、図７で示す『単語列「α」、単語列「β」、単語列「γ」が共に存在する。』に代表されるような、３単語以上の間での「共起」も含んでいるから、この単語列ペアＰも、単なる２つの単語列の組み合わせのみを指すのではなく、３つの単語列、４つの単語列等の組み合わせをも含む概念である。
【００７３】
結局、実施例１，２で示したような単語列と、実施例３で説明した単語列の共起を素性として併用する場合には、単語列、単語列ペアＰに関する単語列の共起のそれぞれを、式（１）〜（４）における単語tiとして扱い、ｔｆｉｄｆを求め最終的に文書ベクトルを求めればよいこととなる。
【実施例５】
【００７４】
実施例５として、実施例４で示した複合素性から求めた文書ベクトルを用いる文書分類装置の例を、図８〜１１を用いて説明する。
図８は、実施例５の文書分類装置のブロック図である。
【００７５】
入力文書受付部８０１は、分類対象の文書の入力を受け付ける部分である。
文書解析部８０２、出現頻度生成部８０３において、分類対象の文書に対し、実施例１，２で説明した単語列の生成、単語列の共起の処理をおこなって複合素性を得る。
【００７６】
文書ベクトル生成部８０４は、分類対象の文書に対し、実施例４で説明したような文書ベクトルを求めるもので、素性統計記憶部８１１に記憶されているｉｄｆを用いている。
素性統計生成用文書記憶部８０７は、このｉｄｆを求めるための文書を記憶している。
【００７７】
文書解析部８０８、出現頻度生成部８０９は、素性統計生成用文書記憶部８０７に記憶されたｉｄｆを求めるための文書に対し、実施例１，２で説明した単語列の生成、単語列の共起の処理をおこなって複合素性を得る。
【００７８】
素性統計算出部８１０は、素性統計生成用文書記憶部８０７に記憶された文書の総数|D|、素性統計生成用文書記憶部８０７に記憶された文書からｉｄｆを求め、素性統計記憶部８１１に記憶させる。
【００７９】
学習用文書記憶部８１２は、文書を分類するための規則を生成するための学習用文書を記憶している。
文書解析部８１３、出現頻度生成部８１４は、学習用文書記憶部８１２に記憶された文書を分類するための規則を生成するための学習用文書に対し、実施例１，２で説明した単語列の生成、単語列の共起の処理をおこなって複合素性を得て、文書ベクトル生成部８１５は、学習用文書に対し、実施例４で説明したような文書ベクトルを求めるもので、素性統計記憶部８１１に記憶されているｉｄｆを用いている。
【００８０】
学習データ生成部８１６、機械学習部８１７、学習結果記憶部８１８、分類モデル部８１９では、学習用文書を機械学習を用いて処理することによって、分類モデルを作成し記憶する。この機械学習に用いるアルゴリズムとしては、ＳＶＭやＣＲＦ(Conditional Random Fields)のような、素性の独立性を仮定しなくても使用できるアルゴリズムが望ましいが、それ以外の学習アルゴリズムを用いてもよい。
【００８１】
カテゴリランキング部８０５、カテゴリ付与部８０６では、文書ベクトル生成部８０４で求めた分類対象の文書に対する文書ベクトルを、分類モデル部８１９に記憶されている分類モデルを用いてカテゴリに分類し、そのカテゴリを出力する。
【００８２】
図９は、実施例５の文書分類装置において文書分類を行うときのフローチャートであって、図８にしめした、入力文書受付部８０１、文書解析部８０２、出現頻度生成部８０３、文書ベクトル生成部８０４、カテゴリランキング部８０５、カテゴリ付与部８０６にて実行される。
【００８３】
形態素解析ステップＳ９０２、境界検出ステップＳ９０３、単語列抽出ステップＳ９０４、単語列共起検出ステップＳ９０５、素性出力ステップＳ９０６は、分類対象文書読込みステップＳ９０１で読み込んだ分類対象の文書に対して実施例１，２で説明した処理を行う部分であって、その詳細は実施例３で説明した読込みステップＳ６０１、形態素解析ステップＳ６０２、境界検出ステップＳ６０３、単語列抽出ステップＳ６０４、単語列共起検出ステップＳ６０５、素性出力ステップＳ６０６と同じものであるので説明は省略する。
【００８４】
出現頻度生成ステップＳ９０７、素性統計読込ステップＳ９０８、文書ベクトル生成ステップＳ９０９では、素性統計記憶部８１１から素性統計読込ステップＳ９０８で読み込んだｉｄｆを用い、実施例４で説明したようにｔｆｉｄｆ値を求め、それを基にして分類対象の文書の文書ベクトルを生成する。
【００８５】
文書モデル読込ステップＳ９１０で分類モデルを読みこみ、その分類モデルと文書ベクトルに基づいて、文書分類実行ステップＳ９１１にて分類対象の文書を分類する。
図１０は、実施例５の文書分類装置の素性統計記憶部８１１が記憶する素性統計を、素性統計生成用文書記憶部８０７、文書解析部８０８、出現頻度生成部８０９、素性統計算出部８１０がどのように求めているかを示すフローチャートである。
【００８６】
形態素解析ステップＳ１００２、境界検出ステップＳ１００３、単語列抽出ステップＳ１００４、単語列共起検出ステップＳ１００５、素性出力ステップＳ１００６は、素性統計生成用文書記憶部８０７から素性統計文書読込みステップＳ１００１で読み込んだ素性統計を生成するための文書に対して実施例１，２で説明した処理を行う部分であって、その詳細は実施例３で説明した読込みステップＳ６０１、形態素解析ステップＳ６０２、境界検出ステップＳ６０３、単語列抽出ステップＳ６０４、単語列共起検出ステップＳ６０５、素性出力ステップＳ６０６と同じものであるので説明は省略する。
【００８７】
素性統計生成ステップＳ１００７は、実施例４で説明したようなｉｄｆを求めるステップであって、求めたｉｄｆは素性統計書込ステップＳ１００８で素性統計記憶部８１１に書き込まれる。
【００８８】
図１１は、実施例５の文書分類装置で用いる分類モデルを作成するときのフローチャートであって、図８にしめした、学習用文書記憶部８１２、文書解析部８１３、出現頻度生成部８１４、文書ベクトル生成部８１５、学習データ生成部８１６、機械学習部８１７、学習結果記憶部８１８、分類モデル部８１９にて実行される。
【００８９】
形態素解析ステップＳ１１０２、境界検出ステップＳ１１０３、単語列抽出ステップＳ１１０４、単語列共起検出ステップＳ１１０５、素性出力ステップＳ１１０６は、学習用文書記憶部８１２から学習用文書読込みステップＳ１１０１で読み込んだ学習用文書に対して実施例１，２で説明した処理を行う部分であって、その詳細は実施例３で説明した読込みステップＳ６０１、形態素解析ステップＳ６０２、境界検出ステップＳ６０３、単語列抽出ステップＳ６０４、単語列共起検出ステップＳ６０５、素性出力ステップＳ６０６と同じものであるので説明は省略する。
【００９０】
出現頻度生成ステップＳ１１０７、素性統計読込ステップＳ１１０８、文書ベクトル生成ステップＳ１１０９では、出現頻度生成ステップＳ９０７、素性統計読込ステップＳ９０８、文書ベクトル生成ステップＳ９０９と同様に、素性統計記憶部８１１から素性統計読込ステップＳ１１０８で読み込んだｉｄｆを用い、実施例４で説明したようにｔｆｉｄｆ値を求め、それを基にして学習用文書の文書ベクトルを生成する。
【００９１】
機械学習ステップＳ１１１０，分類モデル作成ステップＳ１１１１にて、その生成された学習用文書の文書ベクトルを用い機械学習をすることによって、分類モデルを作成する。
【００９２】
実施例５の文書分類装置では、実施例１，２で示した単語列、実施例３で示した単語列の共起にもとづいた複合素性を用いることによって、識別能力と網羅性を両立でき、その結果高い分類精度を達成できる。
【実施例６】
【００９３】
実施例６として、実施例４で示した複合素性から求めた文書ベクトルを用いる文書検索装置の例を、図１２〜１５を用いて説明する。
図１２は、実施例６の文書検索装置のブロック図である。
【００９４】
検索対象文書記憶部１２０１は、検索対象の文書を記憶する部分である。
文書解析部１２０２、出現頻度生成部１２０３において、検索対象の文書に対し、実施例１，２で説明した単語列の生成、単語列の共起の処理をおこなって複合素性を得る。文書ベクトル生成部１２０４は、検索対象の文書に対し、実施例４で説明したような文書ベクトルを求めるもので、素性統計記憶部１２１１に記憶されているｉｄｆを用いている。
【００９５】
素性統計生成用文書記憶部１２０７、文書解析部１２０８、出現頻度生成部１２０９、素性統計算出部１２１０は、実施例５の素性統計生成用文書記憶部８０７、文書解析部８０８、出現頻度生成部８０９、素性統計算出部８１０と同様のものであって、素性統計生成用文書記憶部１２０７に記憶された文書の総数|D|、素性統計生成用文書記憶部１２０７に記憶された文書中からｉｄｆを求め、素性統計記憶部１２１１に記憶させるという処理を行う。
【００９６】
検索式入力部１２１２において、検索をするための検索式を入力する。この場合、検索式として自然文を想定している。
検索式解析部１２１３、出現頻度生成部１２１４は、検索式入力部１２１２において入力された検索式に対し、実施例１，２で説明した単語列の生成、単語列の共起の処理を行い、検索ベクトル生成部１２１５は、それらの結果に基づき、実施例４で説明したような文書ベクトルを検索式に対する検索ベクトルとして求めるもので、素性統計記憶部１２１１に記憶されているｉｄｆを用いている。
【００９７】
検索部１２０５、検索結果出力部１２０６では、文書ベクトル生成部１２０４で求めた検索対象の文書に対する文書ベクトルと、検索ベクトル生成部１２１５で求めた検索ベクトルを比較することによって、類似する検索対象文書を順位づけして出力するものである。
【００９８】
図１３は、実施例６の文書検索装置において文書検索を行うときのフローチャートであって、図１２にしめした、検索対象文書記憶部１２０１、文書解析部１２０２、出現頻度生成部１２０３、文書ベクトル生成部１２０４、検索部１２０５、検索結果出力部１２０６にて実行される。
【００９９】
形態素解析ステップＳ１３０２、境界検出ステップＳ１３０３、単語列抽出ステップＳ１３０４、単語列共起検出ステップＳ１３０５、素性出力ステップＳ１３０６は、検索対象文書読込みステップＳ１３０１で読み込んだ検索対象の文書に対して実施例１，２で説明した処理を行う部分であって、その詳細は実施例３で説明した読込みステップＳ６０１、形態素解析ステップＳ６０２、境界検出ステップＳ６０３、単語列抽出ステップＳ６０４、単語列共起検出ステップＳ６０５、素性出力ステップＳ６０６と同じものであるので説明は省略する。
【０１００】
出現頻度生成ステップＳ１３０７、素性統計読込ステップＳ１３０８、文書ベクトル生成ステップＳ１３０９では、素性統計記憶部１２１１から素性統計読込ステップＳ９０８で読み込んだｉｄｆを用い、実施例４で説明したようにｔｆｉｄｆ値を求め、それを基にして検索対象の文書の文書ベクトルを生成する。
【０１０１】
検索ベクトル読込ステップＳ１３１０で検索ベクトルを読みこみ、その検索ベクトルと文書ベクトルに基づいて、検索実行ステップＳ１３１１にて検索対象の文書から、検索ベクトルに一致ないし類似する文書を選び出し、順位づけをして出力する。
【０１０２】
図１４は、実施例６の文書検索装置の素性統計記憶部１２１１が記憶する素性統計を、素性統計生成用文書記憶部１２０７、文書解析部１２０８、出現頻度生成部１２０９、素性統計算出部１２１０がどのように求めているかを示すフローチャートであるが、素性統計文書読込みステップＳ１４０１、形態素解析ステップＳ１４０２、境界検出ステップＳ１４０３、単語列抽出ステップＳ１４０４、単語列共起検出ステップＳ１４０５、素性出力ステップＳ１４０６、素性統計生成ステップＳ１４０７、素性統計書込ステップＳ１４０８は、実施例５の図１０に示した、素性統計文書読込みステップＳ１００１、形態素解析ステップＳ１００２、境界検出ステップＳ１００３、単語列抽出ステップＳ１００４、単語列共起検出ステップＳ１００５、素性出力ステップＳ１００６、素性統計生成ステップＳ１００７、素性統計書込ステップＳ１００８と全く同じ処理を行うものであるので説明は省略する。
【０１０３】
図１５は、実施例６の文書検索装置が検索式をどのように解析し検索ベクトルを求めているかを示すフローチャートであって、図１２にしめした、検索式入力部１２１２、検索式解析部１２１３、出現頻度生成部１２１４、検索ベクトル生成部１２１５にて実行される。
【０１０４】
形態素解析ステップＳ１５０２、境界検出ステップＳ１５０３、単語列抽出ステップＳ１５０４、素性出力ステップＳ１５０６、単語列共起検出ステップＳ１５０５は、検索式読込ステップＳ１５０１で読み込んだ検索式に対して実施例１，２で説明した処理を行う部分であって、その詳細は実施例３で説明した読込みステップＳ６０１、形態素解析ステップＳ６０２、境界検出ステップＳ６０３、単語列抽出ステップＳ６０４、単語列共起検出ステップＳ６０５、素性出力ステップＳ６０６と同じものであるので説明は省略する。
【０１０５】
出現頻度生成ステップＳ１５０７、素性統計読込ステップＳ１５０８、検索ベクトル生成ステップＳ１５０９では、出現頻度生成ステップＳ１３０７、素性統計読込ステップＳ１３０８、文書ベクトル生成ステップＳ１３０９と同様に、素性統計記憶部１２１１から素性統計読込ステップＳ１５０８で読み込んだｉｄｆを用い、実施例４で説明したようにｔｆｉｄｆ値を求め、それを基にして検索ベクトルを生成する。
【０１０６】
実施例６の文書検索装置では、実施例１，２で示した単語列、実施例３で示した単語列の共起にもとづいた複合素性を用いることによって、識別能力と網羅性を両立でき、その結果高い検索精度を達成できる。
【０１０７】
以上、本発明の実施形態による、データの素性抽出装置、データの分類装置、データの分類方法、データの検索装置を幾らかの実施例と共に説明した。上述した実施形態は、本発明の理解を容易にするための例示に過ぎず、本発明を限定して解釈するためのものではない。これら実施例は文字列からなる文書を対象にして説明したが、既に述べたように、本発明でいう「文書」とは、文字列からなる文書のみならず、それ以外のデータ、例えば、音声、映像や画像、その他のデータによって構成されるものを含み、本発明でいう「単語」とは、自然言語における単語という意味に限定されるものではなく、その上位概念である、なんらかの意味を持つデータのまとまりという意味であるので、本発明を、文字列以外のデータで構成される文書に対しても、そのデータの特性に合わせて必要な部分を修正して適用できることは明らかである。例えば、実施例１，２で抽出されるべき境界として、文節や文の境界の代わりに音素や音節等の境界を選択し、単語の代わりに音素、音節等を選ぶことによって、本発明を文字列からなる文書の代わりに音声からなる文書を対象とすることができることは自明である。また、実施例１，２における境界を抽出するアルゴリズムとして像域分離やシーンチェンジの検出を、単語の代わりに分離された像域やシーンを用い、それら像域やシーンから抽出される画像の特徴を用いれば、本発明を文字列からなる文書の代わりに静止画や動画から構成される文書に適用できることも自明である。
【０１０８】
その他、本発明は、その趣旨を逸脱することなく、変更、改良することができると共に、本発明にはその均等物が含まれることは言うまでもない。
【符号の説明】
【０１０９】
Ｓ１０１    読込みステップ
Ｓ１０２    形態素解析ステップ
Ｓ１０３    境界検出ステップ
Ｓ１０４    単語列抽出ステップ
Ｓ１０５    素性出力ステップ
Ｓ５０１    読込みステップ
Ｓ５０２    構文解析ステップ
Ｓ５０３    境界検出ステップ
Ｓ５０４    句処理ステップ
Ｓ５０５    主辞列抽出ステップ
Ｓ５０６    単語列抽出ステップ
Ｓ５０７    素性出力ステップ
Ｓ６０１    読込みステップ
Ｓ６０２    形態素解析ステップ
Ｓ６０３    境界検出ステップ
Ｓ６０４    単語列抽出ステップ
Ｓ６０５    単語列共起検出ステップ
Ｓ６０６    素性出力ステップ
８０１    入力文書受付部
８０２  文書解析部
８０３    出現頻度生成部
８０４    文書ベクトル生成部
８０５    カテゴリランキング部
８０６    カテゴリ付与部
８０７    素性統計生成用文書記憶部
８０８    文書解析部
８０９    出現頻度生成部
８１０    素性統計算出部
８１１    素性統計記憶部
８１２    学習用文書記憶部
８１３    文書解析部
８１４    出現頻度生成部
８１５    文書ベクトル生成部
８１６    学習データ生成部
８１７    機械学習部
８１８    学習結果記憶部
８１９    分類モデル部
Ｓ９０１    分類対象文書読込みステップ
Ｓ９０２    形態素解析ステップ
Ｓ９０３    境界検出ステップ
Ｓ９０４    単語列抽出ステップ
Ｓ９０５    単語列共起検出ステップ
Ｓ９０６    素性出力ステップ
Ｓ９０７    出現頻度生成ステップ
Ｓ９０８    素性統計読込ステップ
Ｓ９０９    文書ベクトル生成ステップ
Ｓ９１０    文書モデル読込ステップ
Ｓ９１１    文書分類実行ステップ
Ｓ１００１    素性統計文書読込みステップ
Ｓ１００２    形態素解析ステップ
Ｓ１００３    境界検出ステップ
Ｓ１００４    単語列抽出ステップ
Ｓ１００５    単語列共起検出ステップ
Ｓ１００６    素性出力ステップ
Ｓ１００７    素性統計生成ステップ
Ｓ１００８    素性統計書込ステップ
Ｓ１１０１    学習用文書読込みステップ
Ｓ１１０２    形態素解析ステップ
Ｓ１１０３    境界検出ステップ
Ｓ１１０４    単語列抽出ステップ
Ｓ１１０５    単語列共起検出ステップ
Ｓ１１０６    素性出力ステップ
Ｓ１１０７    出現頻度生成ステップ
Ｓ１１０８    素性統計読込ステップ
Ｓ１１０９    文書ベクトル生成ステップ
Ｓ１１１０    機械学習ステップ
Ｓ１１１１    分類モデル作成ステップ
１２０１    検索対象文書記憶部
１２０２  文書解析部
１２０３    出現頻度生成部
１２０４    文書ベクトル生成部
１２０５    検索部
１２０６    検索結果出力部
１２０７    素性統計生成用文書記憶部
１２０８    文書解析部
１２０９    出現頻度生成部
１２１０    素性統計算出部
１２１１    素性統計記憶部
１２１２    検索式入力部
１２１３    検索式解析部
１２１４    出現頻度生成部
１２１５    検索ベクトル生成部
Ｓ１３０１    検索対象文書読込みステップ
Ｓ１３０２    形態素解析ステップ
Ｓ１３０３    境界検出ステップ
Ｓ１３０４    単語列抽出ステップ
Ｓ１３０５    単語列共起検出ステップ
Ｓ１３０６    素性出力ステップ
Ｓ１３０７    出現頻度生成ステップ
Ｓ１３０８    素性統計読込ステップ
Ｓ１３０９    文書ベクトル生成ステップ
Ｓ１３１０    検索ベクトル読込ステップ
Ｓ１３１１    検索実行ステップ
Ｓ１４０１    素性統計文書読込みステップ
Ｓ１４０２    形態素解析ステップ
Ｓ１４０３    境界検出ステップ
Ｓ１４０４    単語列抽出ステップ
Ｓ１４０５    単語列共起検出ステップ
Ｓ１４０６    素性出力ステップ
Ｓ１４０７    素性統計生成ステップ
Ｓ１４０８    素性統計書込ステップ
Ｓ１５０１    検索式読込みステップ
Ｓ１５０２    形態素解析ステップ
Ｓ１５０３    境界検出ステップ
Ｓ１５０４    単語列抽出ステップ
Ｓ１５０５    単語列共起検出ステップ
Ｓ１５０６    素性出力ステップ
Ｓ１５０７    出現頻度生成ステップ
Ｓ１５０８    素性統計読込ステップ
Ｓ１５０９    検索ベクトル生成ステップ
【図１】
0006303148.tif 000008
【図２】
0006303148.tif 000009
【図３】
0006303148.tif 000010
【図４】
0006303148.tif 000011
【図５】
0006303148.tif 000012
【図６】
0006303148.tif 000013
【図７】
0006303148.tif 000014
【図８】
0006303148.tif 000015
【図９】
0006303148.tif 000016
【図１０】
0006303148.tif 000017
【図１１】
0006303148.tif 000018
【図１２】
0006303148.tif 000019
【図１３】
0006303148.tif 000020
【図１４】
0006303148.tif 000021
【図１５】
0006303148.tif 000022