(57)【特許請求の範囲】
【請求項１】
複数の記号列、及び前記各記号列から抽出したい属性情報を入力する入力部と、
前記入力部により入力された記号列に対してＮ−ｇｒａｍ解析を実行し、当該記号列に出現するＮ−ｇｒａｍの出現頻度を測定するＮ−ｇｒａｍ解析部と、
記号列を数値に変換する関数を含む所定の関数群から複数の関数を選択し、当該複数の関数を組み合わせ、前記Ｎ−ｇｒａｍ解析部による解析により得られたＮ−ｇｒａｍ及び当該Ｎ−ｇｒａｍの出現頻度を利用して、前記記号列から特徴量を出力する複数の特徴量関数を生成する特徴量関数生成部と、
前記特徴量関数生成部により生成された各特徴量関数に、前記入力部により入力された各記号列を入力し、当該各記号列に対応する特徴量を算出する特徴量算出部と、
前記入力部により入力された各記号列に対応する属性情報と、前記特徴量算出部により算出された当該各記号列に対応する特徴量とを用いて機械学習を実行し、前記特徴量から前記属性情報を推定する推定関数を生成する推定関数生成部と、
前記特徴量関数生成部により生成された特徴量関数、及び前記推定関数生成部により生成された推定関数を出力する出力部と、
を備える、
情報処理装置。
【請求項２】
前記記号列は、文字列である、
請求項１に記載の情報処理装置。
【請求項３】
前記推定関数生成部は、
前記属性情報の推定に有効な特徴量を選択する有効特徴量選択部と、
前記有効特徴量選択部により選択された有効な特徴量及び当該有効な特徴量に対応する属性情報を用いて機械学習を実行し、当該有効な特徴量から前記属性情報を推定する推定関数を生成する機械学習部と、
を含む、
請求項２に記載の情報処理装置。
【請求項４】
前記特徴量関数を個体に見立て、個体の選択、個体間の交叉、個体の突然変異を実行して次世代の特徴量関数を生成する世代交代部をさらに備え、
前記世代交代部により次世代の特徴量関数が生成された場合、前記特徴量算出部は、当該次世代の特徴量関数を用いて特徴量を算出し、前記推定関数生成部は、前記特徴量算出部により前記次世代の特徴量関数を用いて算出された特徴量を用いて推定関数を生成し、
前記世代交代部による次世代の特徴量関数の生成、前記特徴量算出部による特徴量の算出、前記推定関数生成部による推定関数の生成は、繰り返し実行される、
請求項３に記載の情報処理装置。
【請求項５】
複数の記号列、及び前記各記号列から抽出したい属性情報を入力する入力ステップと、
入力された記号列に対してＮ−ｇｒａｍ解析を実行し、当該記号列に出現するＮ−ｇｒａｍの出現頻度を測定するＮ−ｇｒａｍ解析ステップと、
記号列を数値に変換する関数を含む所定の関数群から複数の関数を選択し、当該複数の関数を組み合わせ、前記Ｎ−ｇｒａｍ解析ステップによる解析により得られたＮ−ｇｒａｍ及び当該Ｎ−ｇｒａｍの出現頻度を利用して、前記記号列から特徴量を出力する複数の特徴量関数を生成する特徴量関数生成ステップと、
前記特徴量関数生成ステップで生成された各特徴量関数に、前記入力ステップで入力された各記号列を入力し、当該各記号列に対応する特徴量を算出する特徴量算出ステップと、
前記入力ステップで入力された各記号列に対応する属性情報と、前記特徴量算出ステップで算出された当該各記号列に対応する特徴量とを用いて機械学習を実行し、前記特徴量から前記属性情報を推定する推定関数を生成する推定関数生成ステップと、
前記特徴量関数生成ステップで生成された特徴量関数、及び前記推定関数生成ステップで生成された推定関数を出力する出力ステップと、
を含む、
情報処理方法。
【請求項６】
複数の記号列、及び前記各記号列から抽出したい属性情報を入力する入力機能と、
入力された記号列に対してＮ−ｇｒａｍ解析を実行し、当該記号列に出現するＮ−ｇｒａｍの出現頻度を測定するＮ−ｇｒａｍ解析機能と、
記号列を数値に変換する関数を含む所定の関数群から複数の関数を選択し、当該複数の関数を組み合わせ、前記Ｎ−ｇｒａｍ解析機能による解析により得られたＮ−ｇｒａｍ及び当該Ｎ−ｇｒａｍの出現頻度を利用して、前記記号列から特徴量を出力する複数の特徴量関数を生成する特徴量関数生成機能と、
前記特徴量関数生成機能により生成された各特徴量関数に、前記入力機能により入力された各記号列を入力し、当該各記号列に対応する特徴量を算出する特徴量算出機能と、
前記入力機能により入力された各記号列に対応する属性情報と、前記特徴量算出機能により算出された当該各記号列に対応する特徴量とを用いて機械学習を実行し、前記特徴量から前記属性情報を推定する推定関数を生成する推定関数生成機能と、
前記特徴量関数生成機能により生成された特徴量関数、及び前記推定関数生成機能により生成された推定関数を出力する出力機能と、
をコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、定量的に特徴を決定づけることが難しい任意のデータ群から、そのデータ群の特徴量を機械的に抽出する手法に注目が集まっている。例えば、任意の音楽データを入力とし、その音楽データが属する音楽のジャンルを機械的に抽出するアルゴリズムを自動構築する手法が知られている。ジャズ、クラシック、ポップス等、音楽のジャンルは、楽器の種類や演奏形態に応じて定量的に決まるものではない。そのため、これまでは任意の音楽データが与えられたときに、その音楽データから機械的に音楽のジャンルを抽出することは一般的に難しいと考えられていた。
【０００３】
しかし、実際には、音楽データに含まれる音程の組み合わせ、音程の組み合わせ方、楽器の種類の組み合わせ、メロディラインやベースラインの構造等、様々な情報の組み合わせの中に、音楽のジャンルを分ける特徴が潜在的に含まれている。そのため、この特徴を抽出するアルゴリズム（以下、特徴量抽出機）を機械学習により自動構築できないか、という観点から特徴量抽出機の研究が行われた。その研究成果の一つとして、例えば、下記の特許文献１に記載された遺伝アルゴリズムに基づく特徴量抽出機の自動構築方法を挙げることができる。遺伝アルゴリズムとは、生物の進化過程に倣い、機械学習の過程で、選択、交差、突然変異の要素を考慮したものを言う。
【０００４】
同文献に記載の特徴量抽出機自動構築アルゴリズムを利用することにより、任意の音楽データから、その音楽データが属する音楽のジャンルを抽出する特徴量抽出機を自動構築することができる。また、同文献に記載の特徴量抽出機自動構築アルゴリズムは、非常に汎用性が高く、音楽データに限らず、任意のデータ群から、そのデータ群の特徴量を抽出する特徴量抽出機を自動構築することができる。そのため、同文献に記載の特徴量抽出機自動構築アルゴリズムは、音楽データや映像データのような人工的なデータの特徴量解析や自然界に存在する様々な観測量の特徴量解析などへの応用が期待されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−０４８２６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
いま、上記の特徴量抽出機自動構築アルゴリズムを利用して言語解析アルゴリズムを自動構築したいという要望がある。言語解析アルゴリズムとは、入力された文字列を解析し、その文字列が持つ特徴を表現した属性情報を推定するアルゴリズムのことである。従来の言語解析アルゴリズムは、人手により構築されていたため、その開発に多大な時間とコストがかかっていた。さらに、言語解析アルゴリズムを構築するには言語処理に関する専門知識が不可欠であり、言語解析アルゴリズムを構築できる人材が限られていた。また、従来の言語解析技術は形態素解析技術や、辞書を利用した特徴量抽出技術を応用したものであったため、従来の言語解析アルゴリズムは、言語の種類に依存していた。
【０００７】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、言語の種類に依存しない言語解析アルゴリズムを自動構築することが可能な、新規かつ改良された情報処理装置、情報処理方法、及びプログラムを提供することにある。さらに、本発明は、任意の記号列を入力とし、その記号列が持つ特徴を表現した属性情報を推定する解析アルゴリズムを自動構築することが可能な情報処理装置、情報処理方法、及びプログラムを提供することを更なる目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある観点によれば、複数の記号列、及び前記各記号列から抽出したい属性情報を入力する入力部と、記号列を数値に変換する関数を含む所定の関数群から複数の関数を選択し、当該複数の関数を組み合わせて、前記記号列から特徴量を出力する複数の特徴量関数を生成する特徴量関数生成部と、前記特徴量関数生成部により生成された各特徴量関数に、前記入力部により入力された各記号列を入力し、当該各記号列に対応する特徴量を算出する特徴量算出部と、前記入力部により入力された各記号列に対応する属性情報と、前記特徴量算出部により算出された当該各記号列に対応する特徴量とを用いて機械学習を実行し、前記特徴量から前記属性情報を推定する推定関数を生成する推定関数生成部と、前記特徴量関数生成部により生成された特徴量関数、及び前記推定関数生成部により生成された推定関数を出力する出力部と、を備える、情報処理装置が提供される。
【０００９】
また、前記記号列は、文字列であってもよい。
【００１０】
また、前記推定関数生成部は、前記属性情報の推定に有効な特徴量を選択する有効特徴量選択部と、前記有効特徴量選択部により選択された有効な特徴量及び当該有効な特徴量に対応する属性情報を用いて機械学習を実行し、当該有効な特徴量から前記属性情報を推定する推定関数を生成する機械学習部と、を含むように構成されていてもよい。
【００１１】
また、上記の情報処理装置は、前記特徴量関数を個体に見立て、個体の選択、個体間の交叉、個体の突然変異を実行して次世代の特徴量関数を生成する世代交代部をさらに備えていてもよい。なお、前記世代交代部により次世代の特徴量関数が生成された場合、前記特徴量算出部は、当該次世代の特徴量関数を用いて特徴量を算出し、前記推定関数生成部は、前記特徴量算出部により前記次世代の特徴量関数を用いて算出された特徴量を用いて推定関数を生成し、前記世代交代部による次世代の特徴量関数の生成、前記特徴量算出部による特徴量の算出、前記推定関数生成部による推定関数の生成は、繰り返し実行される。
【００１２】
また、上記の情報処理装置は、前記入力部により入力された記号列に対してＮ−ｇｒａｍ解析を実行し、当該記号列に出現するＮ−ｇｒａｍの出現頻度を測定するＮ−ｇｒａｍ解析部をさらに備えていてもよい。この場合、前記特徴量関数生成部は、前記Ｎ−ｇｒａｍ解析部による解析により得られたＮ−ｇｒａｍ及び当該Ｎ−ｇｒａｍの出現頻度を利用して前記特徴量関数を生成する。
【００１３】
また、上記課題を解決するために、本発明の別の観点によれば、複数の記号列、及び前記各記号列から抽出したい属性情報を入力する入力ステップと、記号列を数値に変換する関数を含む所定の関数群から複数の関数を選択し、当該複数の関数を組み合わせて、前記記号列から特徴量を出力する複数の特徴量関数を生成する特徴量関数生成ステップと、前記特徴量関数生成ステップで生成された各特徴量関数に、前記入力ステップで入力された各記号列を入力し、当該各記号列に対応する特徴量を算出する特徴量算出ステップと、前記入力ステップで入力された各記号列に対応する属性情報と、前記特徴量算出ステップで算出された当該各記号列に対応する特徴量とを用いて機械学習を実行し、前記特徴量から前記属性情報を推定する推定関数を生成する推定関数生成ステップと、前記特徴量関数生成ステップで生成された特徴量関数、及び前記推定関数生成ステップで生成された推定関数を出力する出力ステップと、を含む、情報処理方法が提供される。
【００１４】
また、上記課題を解決するために、本発明の別の観点によれば、複数の記号列、及び前記各記号列から抽出したい属性情報を入力する入力機能と、記号列を数値に変換する関数を含む所定の関数群から複数の関数を選択し、当該複数の関数を組み合わせて、前記記号列から特徴量を出力する複数の特徴量関数を生成する特徴量関数生成機能と、前記特徴量関数生成機能により生成された各特徴量関数に、前記入力機能により入力された各記号列を入力し、当該各記号列に対応する特徴量を算出する特徴量算出機能と、前記入力機能により入力された各記号列に対応する属性情報と、前記特徴量算出機能により算出された当該各記号列に対応する特徴量とを用いて機械学習を実行し、前記特徴量から前記属性情報を推定する推定関数を生成する推定関数生成機能と、前記特徴量関数生成機能により生成された特徴量関数、及び前記推定関数生成機能により生成された推定関数を出力する出力機能と、をコンピュータに実現させるためのプログラムが提供される。
【００１５】
また、上記課題を解決するために、本発明の別の観点によれば、上記のプログラムが記録された、コンピュータにより読み取り可能な記録媒体が提供される。
【発明の効果】
【００１６】
以上説明したように本発明によれば、言語の種類に依存しない言語解析アルゴリズムを自動構築することが可能になる。さらには、任意の記号列を入力とし、その記号列が持つ特徴を表現した属性情報を推定する解析アルゴリズムを自動構築することが可能になる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態に係るアルゴリズム自動構築方法の概要について説明するための説明図である。
【図２】同実施形態に係るアルゴリズム自動構築方法の概要について説明するための説明図である。
【図３】同実施形態に係る情報処理装置（学習器）の機能構成について説明するための説明図である。
【図４】同実施形態に係るアルゴリズム自動構築方法において利用される学習データの構成について説明するための説明図である。
【図５】同実施形態に係るＮ−ｇｒａｍ解析方法について説明するための説明図である。
【図６】同実施形態に係る特徴量関数の計算方法について説明するための説明図である。
【図７】同実施形態に係る推定関数の計算方法について説明するための説明図である。
【図８】同実施形態に係る有効な特徴量関数の選択方法について説明するための説明図である。
【図９】同実施形態に係るアルゴリズム自動構築方法の全体構成について説明するための説明図である。
【図１０】同実施形態に係るＮ−ｇｒａｍ解析方法について説明するための説明図である。
【図１１】同実施形態に係る特徴量関数の生成方法（全体構成）について説明するための説明図である。
【図１２】同実施形態に係る特徴量関数の生成方法（ランダム生成）について説明するための説明図である。
【図１３】同実施形態に係る特徴量関数の生成方法（ランダム生成）について説明するための説明図である。
【図１４】同実施形態に係る特徴量関数の生成方法（進化的生成）について説明するための説明図である。
【図１５】同実施形態に係る特徴量関数の生成方法（進化的生成；選択）について説明するための説明図である。
【図１６】同実施形態に係る特徴量関数の生成方法（進化的生成；交差）について説明するための説明図である。
【図１７】同実施形態に係る特徴量関数の生成方法（進化的生成；突然変異）について説明するための説明図である。
【図１８】同実施形態に係る特徴量関数の生成方法（進化的生成；ランダム生成）について説明するための説明図である。
【図１９】同実施形態に係る特徴量関数の計算方法について説明するための説明図である。
【図２０】同実施形態に係る推定関数の計算方法について説明するための説明図である。
【図２１】同実施形態に係る情報処理装置（推定器）の機能構成について説明するための説明図である。
【図２２】同実施形態に係る属性情報の推定方法について説明するための説明図である。
【図２３】同実施形態に係る情報処理装置（学習器、推定器）のハードウェア構成について説明するための説明図である。
【発明を実施するための形態】
【００１８】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１９】
［説明の流れについて］
ここで、以下に記載する本発明の実施形態に関する説明の流れについて簡単に述べる。まず、図１、図２を参照しながら、本発明の一実施形態に係るアルゴリズム自動構築方法の概要について説明する。次いで、図３を参照しながら、同実施形態に係る情報処理装置１００（学習器）の機能構成について説明する。この中で、図４〜図８を参照しながら、学習データの構成、Ｎ−ｇｒａｍ解析方法、特徴量関数の計算方法、推定関数の計算方法、有効な特徴量関数の選択方法などについても説明する。
【００２０】
次いで、図９を参照しながら、同実施形態のアルゴリズム自動構築方法に係る処理の全体的な流れについて説明する。次いで、図１０を参照しながら、同実施形態のＮ−ｇｒａｍ解析方法に係る処理の流れについて説明する。次いで、図１１〜図１８を参照しながら、同実施形態に係る特徴量関数の生成方法に関する処理の全体的な流れについて説明する。次いで、図１９を参照しながら、同実施形態に係る特徴量関数の計算方法に関する処理の流れについて説明する。次いで、図２０を参照しながら、同実施形態に係る推定関数の計算方法に関する処理の流れについて説明する。
【００２１】
次いで、図２１を参照しながら、同実施形態に係る情報処理装置２００（推定器）の機能構成について説明する。次いで、図２２を参照しながら、同実施形態に係る属性情報の推定方法に関する処理の流れについて説明する。次いで、図２３を参照しながら、同実施形態に係る情報処理装置１００、２００の機能を実現することが可能なハードウェア構成について説明する。最後に、同実施形態の技術的思想について纏め、当該技術的思想から得られる作用効果について簡単に説明する。
【００２２】
（説明項目）
１：実施形態
１−１：概要
１−２：情報処理装置１００（学習器）の機能構成
１−３：アルゴリズム自動構築方法
１−３−１：全体的な処理の流れ
１−３−２：Ｎ−ｇｒａｍ解析
１−３−３：特徴量関数の生成
１−３−４：特徴量関数の計算
１−３−５：推定関数の生成
１−４：情報処理装置２００（推定器）の機能構成
１−５：属性情報の推定方法
１−６：ハードウェア構成
２：まとめ
【００２３】
＜１：実施形態＞
本発明の一実施形態について説明する。本実施形態は、任意の記号列を解析し、その記号列が持つ特徴を表現した属性情報を推定することが可能な解析アルゴリズムを自動構築するアルゴリズム自動構築方法に関する。
【００２４】
［１−１：概要］
まず、図１を参照しながら、本実施形態に係るアルゴリズム自動構築方法の概要について簡単に説明する。
【００２５】
上記の通り、本実施形態に係るアルゴリズム自動構築方法は、任意の記号列（例えば、文字列や遺伝子配列など）を入力とし、その記号列が持つ特徴を表現した属性情報を推定することが可能な解析アルゴリズムを自動構築する方法である。この方法によれば、例えば、図１に示すように、「すごくいい曲！」という文字列が入力された場合に、「その文字列が意見文である」「その文字列が好意的である」という属性情報を出力する解析アルゴリズムを自動構築することができる。
【００２６】
例えば、本実施形態の方法は、メール本文を入力とし、そのメールが迷惑メールであるか、通常のメールであるかを自動分類する解析アルゴリズムの自動構築に応用できる。また、本実施形態の方法は、メール本文を入力とし、そのメールを予め用途毎に分類されたフォルダに自動仕分けする解析アルゴリズムの自動構築に応用できる。その他にも、本実施形態の方法は、ネットワーク上にある掲示板に書き込まれた文章を入力とし、その書き込み内容が客観的内容か主観的内容かを自動判別する解析アルゴリズムの自動構築に応用できる。また、本実施形態の方法は、ネットワーク上にある掲示板に書き込まれた文章を入力とし、その書き込み内容が好意的な書き込みか否定的な書き込みかを自動分類する解析アルゴリズムの自動構築に応用できる。
【００２７】
さらに、本実施形態の方法は、ニュースの文章を入力とし、そのニュースがどのカテゴリ（例えば、政治、経済、芸能、技術、国際など）に分類されるかを自動判別する解析アルゴリズムの自動構築に応用することができる。また、本実施形態の方法は、任意の文章を入力とし、その文章が何語（例えば、英語、日本語、ドイツ語など）で記述されたものかを自動判別する解析アルゴリズムの自動構築に応用することができる。その他にも、本実施形態の方法は、コンテンツに関する文章（例えば、ニュースや小説などの文章コンテンツ、音楽や映像などに対するレビューや紹介文）を入力とし、そのコンテンツに対する嗜好を抽出する解析アルゴリズムの自動構築に応用することができる。
【００２８】
また、本実施形態の方法により自動構築することが可能な解析アルゴリズムは、任意の記号列を対象とすることができる。例えば、本実施形態の方法は、顔文字を入力とし、その顔文字が属するカテゴリ（例えば、笑い、泣き、怒りなど）を自動分類する解析アルゴリズムの自動構築に応用することができる。さらに、本実施形態の方法は、名前をローマ字に変換した記号列を入力とし、その名前の音韻が持つ雰囲気から、その名前が西洋風か和風か、新しい響きか古めかしい響きかを自動分類する解析アルゴリズムの自動構築に応用することができる。
【００２９】
また、本実施形態の方法は、音楽のコード進行を示す文字列や、ＭＭＬで記述したメロディの文字列を入力とし、その音楽のムード（例えば、明るい、暗い、穏やか、ノリノリなど）を自動判別する解析アルゴリズムの自動構築に応用することができる。なお、上記のＭＭＬは、Ｍｕｓｉｃ  Ｍａｃｒｏ  Ｌａｎｇｕａｇｅの略である。その他にも、本実施形態の方法は、小説の文章を入力とし、その小説が属するカテゴリ（例えば、現代、恋愛、歴史、ファンタジー、ホラーなど）を自動判別する解析アルゴリズムの自動構築に応用することができる。
【００３０】
なお、本実施形態の方法により自動構築することが可能な解析アルゴリズムは、入力された記号列が持つ既存の特徴を抽出するものだけに限定されない。例えば、本実施形態の方法は、経済ニュースの本文を入力とし、景気の先行き（例えば、株価の上昇／下落など）を推定する解析アルゴリズムの自動構築に応用することができる。また、本実施形態の方法は、放送番組や映画の字幕データを入力とし、その放送番組や映画のシーンやムードを自動推定し、その推定結果をメタデータとして放送番組や映画に付与する解析アルゴリズムの自動構築に応用することができる。シーンとしては、例えば、ニュース、スポーツ、バラエティ、ＣＭなどがある。また、ムードとしては、例えば、軽い、まじめ、ロマンチックなどがある。
【００３１】
また、本実施形態の方法は、ブログなどの書き込み文章を入力とし、書き込みした人の年齢や性格（例えば、明るい、暗い、活発、控えめなど）を自動推定する解析アルゴリズムの自動構築に応用することができる。さらに、本実施形態の方法は、病気の自覚症状を記述した文章を入力とし、病名を自動推定したり、その推定結果に応じたアドバイスを表示する解析アルゴリズムの自動構築に応用することができる。その他にも、本実施形態の方法は、入社試験の際に受験者が提出した資料の文章を入力とし、その受験者が入社５年後にどのような人事評価を受けるかを推定する解析アルゴリズムの自動構築に応用することができる。
【００３２】
また、本実施形態の方法は、遺伝子の塩基配列を表現した記号列を入力とし、その遺伝子を持つ人や動物が将来煩うであろう病気を推定する解析アルゴリズムの自動構築に応用することができる。本実施形態の方法は、遺伝子の塩基配列を表現した記号列を入力とし、その遺伝子を持つ人や動物の性格を推定する解析アルゴリズムの自動構築に応用することができる。このように、本実施形態の方法は、任意の記号列を対象とする解析アルゴリズムの自動構築に応用できるため、その適用範囲は非常に広い。
【００３３】
ところで、本実施形態の方法により自動構築された解析アルゴリズムは、図２のような構成となる。図２に示すように、まず、記号列Ｘが入力されると、解析アルゴリズムは、入力された記号列Ｘを特徴量関数ＦＥＦに入力して特徴量を算出し、その特徴量を推定関数ｆに入力して属性情報ｙを算出する。これら特徴量関数ＦＥＦと推定関数ｆは、本実施形態の方法により予め自動生成されたものである。逆に言えば、属性情報を精度良く推定することが可能な特徴量関数ＦＥＦと推定関数ｆの組を自動生成する仕組みこそが、本実施形態に係るアルゴリズムの自動構築方法である。
【００３４】
以上、本実施形態に係るアルゴリズム自動構築方法の概要について説明した。
【００３５】
［１−２：情報処理装置１００（学習器）の機能構成］
次に、図３を参照しながら、本実施形態に係るアルゴリズムの自動構築方法を実現可能な情報処理装置１００（学習器）の機能構成について説明する。図３は、本実施形態に係る情報処理装置１００の機能構成について説明するための説明図である。
【００３６】
図３に示すように、情報処理装置１００は、データ入力部１０１と、Ｎ−ｇｒａｍ解析部１０２と、特徴量関数生成部１０３と、記憶部１０４と、特徴量算出部１０５と、推定関数生成部１０６と、関数出力部１０７とを有する。また、推定関数生成部１０６は、機械学習部１０６１と、有効特徴量選択部１０６２とを含む。
【００３７】
まず、学習データとして、記号列と属性情報の組がデータ入力部１０１に入力される。例えば、図４に示すような記号列Ｘと属性情報ｔの組がデータ入力部１０１に入力される。なお、図４の例において、記号列Ｘは文字列であり、属性情報ｔは意見文であるか否かを示す指標である。例えば、「もっと早くやればよかった…。」という文字列は、人の意見を表現したものである。そのため、この文字列に対しては、意見文であることを示す値１が属性情報ｔとして与えられている。一方、「今日はいい天気。」という文字列は、人の意見を表現したものではない。そのため、この文字列に対しては、意見文ではないことを示す値０が属性情報ｔとして与えられている。
【００３８】
このように、データ入力部１０１には、記号列と属性情報の組が入力される。記号列と属性情報の組が入力されると、データ入力部１０１は、入力された記号列をＮ−ｇｒａｍ解析部１０２及び特徴量算出部１０５に入力する。また、データ入力部１０１は、属性情報を推定関数生成部１０６に含まれる機械学習部１０６１に入力する。記号列が入力されると、Ｎ−ｇｒａｍ解析部１０２は、図５に示すように、入力された記号列からＮ−ｇｒａｍ（Ｎ個の記号で構成される記号単位）を抽出し、各Ｎ−ｇｒａｍの出現頻度を検出する。なお、１個の記号で構成される記号単位をｕｎｉ−ｇｒａｍ、２個の記号で構成される記号単位をｂｉ−ｇｒａｍと呼ぶ。
【００３９】
例えば、文字列「ａｂｃａｂａｂｃｄｅｄｅｆ」が入力された場合、Ｎ−ｇｒａｍ解析部１０２は、ｕｎｉ−ｇｒａｍの組み合わせとして｛ａ，ｂ，ｃ，ａ，ｂ，ａ，ｂ，ｃ，ｄ，ｅ，ｄ，ｅ，ｆ｝を抽出する。また、Ｎ−ｇｒａｍ解析部１０２は、ｂｉ−ｇｒａｍの組み合わせとして｛ａｂ，ｂｃ，ｃａ，ａｂ，ｂａ，ａｂ，ｂｃ，ｃｄ，ｄｅ，ｅｄ，ｄｅ，ｅｆ｝を抽出する。同様にして、Ｎ−ｇｒａｍ解析部１０２は、入力された文字列からｍ−ｇｒａｍ（ｍ＝３〜１３）の組み合わせを抽出する。なお、文字列の長さがＬの場合、Ｌ−ｍ＋１個のｍ−ｇｒａｍの組み合わせが抽出される。
【００４０】
次いで、Ｎ−ｇｒａｍ解析部１０２は、抽出したｎ−ｇｒａｍ（ｎ＝１〜１３）の組み合わせを記号インデックス（例えば、文字コード）の順にソートする。例えば、ｕｎｉ−ｇｒａｍの組み合わせ｛ａ，ｂ，ｃ，ａ，ｂ，ａ，ｂ，ｃ，ｄ，ｅ，ｄ，ｅ，ｆ｝は、Ｎ−ｇｒａｍ解析部１０２により｛ａ，ａ，ａ，ｂ，ｂ，ｂ，ｃ，ｃ，ｄ，ｄ，ｅ，ｅ，ｆ｝にソートされる。また、ｂｉ−ｇｒａｍの組み合わせ｛ａｂ，ｂｃ，ｃａ，ａｂ，ｂａ，ａｂ，ｂｃ，ｃｄ，ｄｅ，ｅｄ，ｄｅ，ｅｆ｝は、Ｎ−ｇｒａｍ解析部１０２により｛ａｂ，ａｂ，ａｂ，ｂａ，ｂｃ，ｂｃ，ｃａ，ｃｄ，ｄｅ，ｄｅ，ｅｄ，ｅｆ｝にソートされる。同様にして、ｍ−ｇｒａｍ（ｍ＝３〜１３）の組み合わせもソートされる。
【００４１】
次いで、Ｎ−ｇｒａｍ解析部１０２は、ソート後の各ｎ−ｇｒａｍの組み合わせに基づいて各ｎ−ｇｒａｍの出現頻度を検出し、出現頻度情報を生成する。例えば、Ｎ−ｇｒａｍ解析部１０２は、ソート後のｕｎｉ−ｇｒａｍの組み合わせ｛ａ，ａ，ａ，ｂ，ｂ，ｂ，ｃ，ｃ，ｄ，ｄ，ｅ，ｅ，ｆ｝から出現頻度情報｛ａ：３，ｂ：３，ｃ：２，ｄ：２，ｅ：２，ｆ：１｝を生成する。この出現頻度情報は、ａが３回、ｂが３回、ｃが２回、ｄが２回、ｅが２回、ｆが１回出現したことを表している。また、Ｎ−ｇｒａｍ解析部１０２は、ソート後のｂｉ−ｇｒａｍの組み合わせ｛ａｂ，ａｂ，ａｂ，ｂａ，ｂｃ，ｂｃ，ｃａ，ｃｄ，ｄｅ，ｄｅ，ｅｄ，ｅｆ｝から出現頻度情報｛ａｂ：３，ｂａ：１，ｂｃ：２，ｃａ：１，ｃｄ：１，ｄｅ：２，ｅｄ：１，ｅｆ：１｝を生成する。同様にして、ｍ−ｇｒａｍの組み合わせについても出現頻度情報が生成される。
【００４２】
次いで、Ｎ−ｇｒａｍ解析部１０２は、ｎ−ｇｒａｍ（ｎ＝１〜１３）の出現頻度情報を１つに纏めて出現頻度順にソートする。例えば、ｕｎｉ−ｇｒａｍの出現頻度情報｛ａ：３，ｂ：３，ｃ：２，ｄ：２，ｅ：２，ｆ：１｝とｂｉ−ｇｒａｍの出現頻度情報｛ａｂ：３，ｂａ：１，ｂｃ：２，ｃａ：１，ｃｄ：１，ｄｅ：２，ｅｄ：１，ｅｆ：１｝を纏めて出現頻度の多い順にソートすると、｛ａ：３，ｂ：３，ａｂ：３，ｃ：２，ｄ：２，ｅ：２，ｂｃ：２，ｄｅ：２，ｆ：１，ｂａ：１，ｃａ：１，ｃｄ：１，ｅｄ：１，ｅｆ：１｝が得られる。これらの処理を図４に例示した記号列Ｘに対して適用すると、図５に示すような各ｎ−ｇｒａｍの出現頻度を示す出現頻度情報が得られる。
【００４３】
このようにしてＮ−ｇｒａｍ解析部１０２により生成された出現頻度情報は、特徴量関数生成部１０３に入力される。上記のように、特徴量関数生成部１０３には、データ入力部１０１から記号列が入力され、Ｎ−ｇｒａｍ解析部１０２から出現頻度情報が入力されている。記号列が入力されると、特徴量関数生成部１０３は、記憶部１０４に予め用意された基本関数を組み合わせて特徴量関数ＦＥＦを生成する。基本関数としては、例えば、Ｃｕｔ、Ｆｉｎｄ、Ｍｅａｎ、Ｖａｒｉａｎｃｅ、Ｍｅｄｉａｎ、Ｌｅｎｇｔｈ、Ｖａｒｉａｔｉｏｎ、Ａｐｐｅａｒａｎｃｅ、ＣｏＯｃｃｕｒｅｎｃｅ、Ｐｏｗなどがある。
【００４４】
ここで、上記の基本関数の例について説明を補足する。
【００４５】
上記の基本関数Ｃｕｔは、記号列を入力として記号列を出力する関数である。基本関数Ｃｕｔは、Ｃｕｔ（記号列Ｘ，開始位置Ｓ，長さＬ）と表現され、指定された記号列Ｘの指定された開始位置Ｓから、指定された長さＬの記号列を抽出する関数である。例えば、記号列ＸがＸ＝“ＡＢＣＤＡＢＡＢＣＡ”の場合、Ｃｕｔ（Ｘ，０．２，０．５）＝“ＣＤＡＢＡ”となる。なお、この例では、記号列Ｘの長さを１．０と表現して、０．２に相当する位置から長さ０．５の記号列を抽出している。
【００４６】
上記の基本関数Ｆｉｎｄは、記号列を入力としてベクトルを出力する関数である。基本関数Ｆｉｎｄは、Ｆｉｎｄ（記号列Ｘ，記号列Ｘ’）と表現され、指定された記号列Ｘの中から、指定された記号列Ｘ’の出現する位置を検出し、その位置を示すベクトルを出力する関数である。例えば、記号列ＸがＸ＝“ＣＤＡＢＡ”の場合、Ｆｉｎｄ（Ｘ，“Ａ”）＝｛０．４，０．８｝となる。なお、この例では、記号列Ｘの長さを１．０と表現して、０．４に相当する位置と０．８に相当する位置で記号列“Ａ”が検出されている。
【００４７】
上記の基本関数Ｍｅａｎ、Ｖａｒｉａｎｃｅ、Ｍｅｄｉａｎは、ベクトルを入力としてスカラを出力する関数である。基本関数Ｍｅａｎは、入力されたベクトルの全要素に関する平均を算出する関数である。また、基本関数Ｖａｒｉａｎｃｅは、入力されたベクトルの全要素に関する分散を算出する関数である。そして、基本関数Ｍｅｄｉａｎは、入力されたベクトルの全要素に関する中央値を算出する関数である。例えば、ベクトルＶ＝｛０．４，０．８｝の場合、Ｍｅａｎ（Ｖ）＝０．６となる。
【００４８】
上記の基本関数Ｌｅｎｇｔｈ、Ｖａｒｉａｔｉｏｎ、Ａｐｐｅａｒａｎｃｅ、ＣｏＯｃｃｕｒｅｎｃｅは、記号列を入力としてスカラを出力する関数である。基本関数Ｌｅｎｇｔｈは、入力された記号列の長さを出力する関数である。また、基本関数Ｖａｒｉａｔｉｏｎは、入力された記号列に含まれる記号の種類を数え、その種類数を出力する関数である。そして、基本関数Ａｐｐｅａｒａｎｃｅは、Ａｐｐｅａｒａｎｃｅ（記号列Ｘ，記号列Ｘ’）と表現され、指定された記号列Ｘの中に、指定された記号列Ｘ’が出現する回数を出力する関数である。さらに、基本関数ＣｏＯｃｃｕｒｅｎｃｅは、ＣｏＯｃｃｕｒｅｎｃｅ（記号列Ｘ，記号列Ｘ１，記号列Ｘ２）と表現され、記号列Ｘの中に、記号列Ｘ１と記号列Ｘ２が共起する回数を出力する関数である。
【００４９】
上記の基本関数Ｐｏｗは、スカラを入力としてスカラを出力する関数である。基本関数Ｐｏｗは、Ｐｏｗ（数ｑ，数ｎ）と表現され、指定された数ｑをｎ乗する関数である。例えば、数ｑがｑ＝０．６の場合、Ｐｏｗ（ｑ，２）＝０．３６となる。
【００５０】
このように、特徴量関数生成部１０３は、特徴量関数ＦＥＦを生成するために様々な基本関数を利用することができる。
【００５１】
さて、特徴量関数生成部１０３は、上記のような基本関数を組み合わせ、複数の特徴量関数ＦＥＦを生成する。まず、特徴量関数生成部１０３は、記号列を入力可能な基本関数をランダムに選択する。また、ランダムに選択した基本関数に入力すべきパラメータがある場合、特徴量関数生成部１０３は、入力すべきパラメータをランダムに決定する。
【００５２】
その後、特徴量関数生成部１０３は、ランダムに選択した基本関数の出力がスカラであるか否かを確認する。さらに、特徴量関数生成部１０３は、基本関数の選択に関する終了条件を満たしたか否かを確認する。基本関数の選択に関する終了条件としては、例えば、生成した乱数が所定値以上である場合に終了するという条件が考えられる。もし、ランダムに選択した基本関数の出力がスカラであり、かつ、基本関数の選択に関する終了条件を満たしたならば、特徴量関数生成部１０３は、基本関数の選択を終了する。
【００５３】
一方、ランダムに選択した基本関数の出力がスカラでない場合や、基本関数の選択に関する終了条件を満たしていない場合、特徴量関数生成部１０３は、次の基本関数をランダムに選択する。このとき、特徴量関数生成部１０３は、前に選択した基本関数の出力形態（例えば、記号列、スカラ、ベクトルなど）に応じた基本関数の中から、ランダムに基本関数を選択する。例えば、前に選択した基本関数の出力がベクトルの場合、特徴量関数生成部１０３は、ベクトルを入力可能な基本関数の中から、ランダムに次の基本関数を選択する。また、ランダムに選択した基本関数に入力すべきパラメータがある場合、特徴量関数生成部１０３は、入力すべきパラメータをランダムに決定する。
【００５４】
その後、特徴量関数生成部１０３は、ランダムに選択した次の基本関数の出力がスカラであるか否かを確認する。さらに、特徴量関数生成部１０３は、基本関数の選択に関する終了条件を満たしたか否かを確認する。もし、ランダムに選択した次の基本関数の出力がスカラであり、かつ、基本関数の選択に関する終了条件を満たしたならば、特徴量関数生成部１０３は、基本関数の選択を終了する。一方、ランダムに選択した基本関数の出力がスカラでない場合や、基本関数の選択に関する終了条件を満たしていない場合、特徴量関数生成部１０３は、次の基本関数をランダムに選択する。
【００５５】
このようにして特徴量関数生成部１０３により逐次的に基本関数が選択される。そして、最後に選択された基本関数の出力がスカラになり、かつ、基本関数の選択に関する終了条件を満たした場合に、特徴量関数生成部１０３による基本関数の選択が終了する。基本関数の選択を終了すると、特徴量関数生成部１０３は、選択した基本関数を選択順に組み合わせて特徴量関数ＦＥＦを生成する。
【００５６】
例えば、基本関数Ｃｕｔ、Ｆｉｎｄ、Ｍｅａｎ、Ｐｏｗを順に選択した場合、特徴量関数生成部１０３は、記号列Ｘを入力可能な特徴量関数ＦＥＦ（Ｘ）＝Ｐｏｗ（Ｍｅａｎ（Ｆｉｎｄ（Ｃｕｔ（Ｘ，０．２，０．５），“Ａ”）），２）を生成する。例えば、この特徴量関数ＦＥＦ（Ｘ）に記号列Ｘ＝“ＡＢＣＤＡＢＡＢＣＡ”を入力すると、Ｙ＝ＦＥＦ（Ｘ）＝０．３６が得られる。なお、基本関数Ｃｕｔのパラメータ「０．２」「０．５」、基本関数Ｆｉｎｄのパラメータ“Ａ”、基本関数Ｐｏｗのパラメータ「２」は、特徴量関数生成部１０３によりランダムに選択されたパラメータである。
【００５７】
基本関数の記号列パラメータ（例えば、上記の基本関数Ｆｉｎｄのパラメータ“Ａ”など）を決定する際、特徴量関数生成部１０３は、Ｎ−ｇｒａｍ解析部１０２により入力されたｎ−ｇｒａｍの出現頻度情報を利用する。具体的には、特徴量関数生成部１０３が記号列パラメータを決定する際、Ｎ−ｇｒａｍ解析部１０２により入力された出現頻度情報に基づき、出現頻度の高いｎ−ｇｒａｍほど選ばれる確率が高くなるような乱数を利用して記号列パラメータを決定する。特徴量関数生成部１０３は、上記のようにして複数の特徴量関数ＦＥＦを生成する。そして、特徴量関数生成部１０３により生成された複数の特徴量関数ＦＥＦは、特徴量算出部１０５及び関数出力部１０７に入力される。
【００５８】
複数の特徴量関数ＦＥＦが入力されると、特徴量算出部１０５は、入力された各特徴量関数ＦＥＦに対し、データ入力部１０１により入力された記号列を入力して、その記号列の特徴量を算出する。例えば、特徴量関数ＦＥＦｊ（ｊ＝１〜Ｎ）と記号列Ｘが入力された場合、特徴量算出部１０５は、図６に示すように、特徴量関数ＦＥＦｊに記号列Ｘを入力して特徴量ｘｊ＝ＦＥＦｊ（Ｘ）を算出する。例えば、特徴量関数ＦＥＦ１（Ｘ）＝Ａｐｐｅａｒａｎｃｅ（Ｃｕｔ（Ｘ，０．０，０．３），“○○”）の場合、ｘ１＝ＦＥＦ１（“もっと早くやればよかった…。”）＝０となる。同様に、特徴量関数ＦＥＦＮ（Ｘ）＝Ａｐｐｅａｒａｎｃｅ（Ｘ，“。”）の場合、ｘＮ＝ＦＥＦＮ（“今日はいい天気。”）＝１となる。
【００５９】
このようにして特徴量算出部１０５により算出された特徴量は、推定関数生成部１０６に入力される。特徴量が入力されると、推定関数生成部１０６は、機械学習部１０６１が持つ機械学習の機能により、入力された特徴量から属性情報を推定する推定関数を生成する。例えば、図７に示すように、機械学習部１０６１には、記号列Ｘに対応する属性情報ｔ、特徴量ｘｊ＝ＦＥＦｊ（Ｘ）（ｊ＝１〜Ｎ）が入力される。そこで、機械学習部１０６１は、機械学習により、特徴量ベクトルｘ＝｛ｘ１，…，ｘＮ｝を入力した場合に属性情報ｔを出力する推定関数ｆ（ｘ）＝ｗＴｘを生成する。つまり、機械学習部１０６１は、機械学習によりｔ＝ｗＴｘとなるｗ（線形結合重み）を算出する。
【００６０】
なお、推定関数ｆ（ｘ）の算出方法はこれに限定されず、例えば、特開２００９−０４８２６６号公報に記載された方法を利用することも可能である。その他にも、複数次元の従属変数（特徴量ベクトルｘに相当）から目的変数（属性情報ｔに相当）を推定する推定関数ｆ（ｘ）を算出可能な方法であれば、機械学習部１０６１による推定関数ｆ（ｘ）の算出方法として利用可能である。なお、ここでは説明の都合上、上記の線形結合重みｗを算出するタイプの方法が利用されるものとする。
【００６１】
さて、このようにして機械学習部１０６１により算出された推定関数ｆは、有効特徴量選択部１０６２に入力される。推定関数ｆが入力されると、有効特徴量選択部１０６２は、入力された推定関数ｆを構成する線形結合重みｗを参照し、特徴量ｘ１〜ｘＮの中から有効な特徴量を選択する。ここで言う有効な特徴量とは、推定関数ｆを計算する際に、その計算結果に寄与する特徴量のことである。例えば、線形結合重みｗ＝｛ｗ１，…，ｗＮ｝の要素ｗｋが０の場合、特徴量ｘｋの値に関わらず同じ計算結果ｔ＝ｗＴｘが得られる。そこで、有効特徴量選択部１０６２は、所定値よりも小さい値又は０となっている線形結合重みｗの要素を検出し、検出した要素以外の要素に対応する特徴量を選択する。
【００６２】
このようにして有効特徴量選択部１０６２により選択された有効な特徴量の情報は、特徴量関数生成部１０３に通知され、特徴量関数の選択に利用される。例えば、図８に示すように、特徴量関数ＦＥＦｋ（Ｘ）＝Ａｐｐｅａｒａｎｃｅ（Ｃｕｔ（Ｘ，０．０，０．３），“○○”）により算出された特徴量ｘｋが推定関数ｆ（ｘ）の計算結果に寄与する場合、この特徴量関数ＦＥＦｋは、有効な特徴量関数として選択される。同様に、特徴量関数ＦＥＦｑ（Ｘ）＝Ｐｏｗ（Ｍｅｄｉａｎ（Ｆｉｎｄ（Ｃｕｔ（Ｘ，０．１，０．３），“Ａ”）），２）により算出された特徴量ｘｑが推定関数ｆ（ｘ）の計算結果に寄与しない場合、この特徴量関数ＦＥＦｑは、有効な特徴量関数として選択されない。
【００６３】
有効な特徴量が通知されると、特徴量関数生成部１０３は、その通知内容に基づいて有効な特徴量関数を選択し、選択した特徴量関数を次世代の特徴量関数として残す。さらに、特徴量関数生成部１０３は、選択した特徴量関数（以下、前世代の特徴量関数）を利用して次世代の特徴量関数を生成する。まず、特徴量関数生成部１０３は、ランダムに選択した基本関数を組み合わせて所定数の特徴量関数を生成する。このとき、特徴量関数生成部１０３は、必要に応じて基本関数のパラメータをランダムに決定する。
【００６４】
次いで、特徴量関数生成部１０３は、前世代の特徴量関数の一部を変更して次世代の特徴量関数を生成する（突然変異）。
【００６５】
例えば、特徴量関数生成部１０３は、前世代の特徴量関数ＦＥＦ（Ｘ）＝Ｐｏｗ（Ｍｅｄｉａｎ（Ｆｉｎｄ（Ｘ，“Ｂ”）），２）に対して基本関数Ｃｕｔを追加し、次世代の特徴量関数ＦＥＦ（Ｘ）＝Ｐｏｗ（Ｍｅｄｉａｎ（Ｆｉｎｄ（Ｃｕｔ（Ｘ，０．１，０．３），“Ｂ”）），２）を生成する（基本関数の追加）。
【００６６】
また、特徴量関数生成部１０３は、前世代の特徴量関数ＦＥＦ（Ｘ）＝Ｐｏｗ（Ｍｅｄｉａｎ（Ｆｉｎｄ（Ｘ，“Ｂ”）），２）に対し、基本関数Ｍｅｄｉａｎを基本関数Ｖａｒｉａｎｃｅに変更して次世代の特徴量関数ＦＥＦ（Ｘ）＝Ｐｏｗ（Ｖａｒｉａｎｃｅ（Ｆｉｎｄ（Ｘ，“Ｂ”）），２）を生成する（基本関数の変更）。
【００６７】
また、特徴量関数生成部１０３は、前世代の特徴量関数ＦＥＦ（Ｘ）＝Ｐｏｗ（Ｍｅｄｉａｎ（Ｆｉｎｄ（Ｘ，“Ｂ”）），２）に含まれる基本関数Ｐｏｗを削除し、次世代の特徴量関数ＦＥＦ（Ｘ）＝Ｍｅｄｉａｎ（Ｆｉｎｄ（Ｘ，“Ｂ”））を生成する（基本関数の削除）。
【００６８】
また、特徴量関数生成部１０３は、前世代の特徴量関数ＦＥＦ（Ｘ）＝Ｐｏｗ（Ｍｅｄｉａｎ（Ｆｉｎｄ（Ｘ，“Ｂ”）），２）に含まれる基本関数Ｆｉｎｄのパラメータを所定の確率でランダムに変更し、次世代の特徴量関数ＦＥＦ（Ｘ）＝Ｐｏｗ（Ｍｅｄｉａｎ（Ｆｉｎｄ（Ｘ，“ＢＬ”）），２）を生成する（基本関数のパラメータ変更）。なお、記号列パラメータの変更には、Ｎ−ｇｒａｍ解析部１０２による解析結果を利用してもよい。例えば、記号列パラメータの変更は、現在の記号列パラメータの記号列を含むｎ−ｇｒａｍや、その記号列の一部を含むｎ−ｇｒａｍに変更されるようにしてもよい。
【００６９】
また、特徴量関数生成部１０３は、上記の「基本関数の追加」「基本関数の変更」「基本関数の削除」「基本関数のパラメータ変更」を組み合わせて次世代の特徴量関数ＦＥＦを生成するように構成されていてもよい。
【００７０】
次いで、特徴量関数生成部１０３は、２つの前世代の特徴量関数を交差させて次世代の特徴量関数を生成する（交差）。
【００７１】
まず、特徴量関数生成部１０３は、前世代の特徴量関数を２つ選択し、出力形態（記号列、ベクトル、スカラ）が共通する部分を検出する。例えば、前世代の特徴量関数からＦＥＦ１（Ｘ）＝Ｐｏｗ（Ｍｅｄｉａｎ（Ｆｉｎｄ（Ｃｕｔ（Ｘ，０．１，０．３）、“Ｂ”）），２）とＦＥＦ２（Ｘ）＝Ｖａｒｉａｎｃｅ（Ｆｉｎｄ（Ｘ，“Ｆｏｏ”））が選択された場合について考える。これら２つの特徴量関数ＦＥＦ１、ＦＥＦ２は、出力形態がベクトルの部分Ｆｉｎｄ（…）を共通して含んでいる。そこで、特徴量関数生成部１０３は、Ｆｉｎｄ（…）の部分を交差させ、次世代の特徴量関数ＦＥＦ（Ｘ）＝Ｐｏｗ（Ｍｅｄｉａｎ（Ｆｉｎｄ（Ｘ，“Ｆｏｏ”）），２）を生成する。
【００７２】
このようにして進化的手法（選択、ランダム生成、突然変異、交差）により生成された次世代の特徴量関数は、特徴量算出部１０５に入力される。次世代の特徴量関数が入力されると、特徴量算出部１０５は、入力された次世代の特徴量関数に記号列を入力して特徴量を算出する。そして、特徴量算出部１０５により算出された特徴量は、推定関数生成部１０６に入力される。次世代の特徴量関数を利用して算出された特徴量が入力されると、推定関数生成部１０６は、機械学習部１０６１の機能により推定関数ｆを推定し、有効特徴量選択部１０６２の機能により有効な特徴量を選択する。そして、有効特徴量選択部１０６２により選択された有効な特徴量の情報が特徴量関数生成部１０３に通知される。
【００７３】
有効な特徴量の情報が通知されると、特徴量関数生成部１０３は、通知された有効な特徴量の情報に基づいて有効な特徴量関数を選択し、選択した特徴量関数を次世代の特徴量関数として残す。次いで、特徴量関数生成部１０３は、選択した特徴量関数を利用して次世代の特徴量関数を生成する。特徴量関数生成部１０３により生成された次世代の特徴量関数は、特徴量算出部１０５に入力される。次世代の特徴量関数が入力されると、特徴量算出部１０５は、入力された次世代の特徴量関数に記号列を入力して特徴量を算出する。そして、特徴量算出部１０５により算出された特徴量は、推定関数生成部１０６に入力される。特徴量算出部１０５により特徴量が入力されると、推定関数生成部１０６は、入力された特徴量に基づいて推定関数を生成する。
【００７４】
このように、情報処理装置１００においては、特徴量関数に対する世代交代が繰り返し実行され、次々と特徴量関数の組及び推定関数が生成される。この繰り返し処理は、所定の終了条件（例えば、ユーザによる終了操作の有無など）を満たすまで実行される。所定の終了条件を満たした場合、推定関数生成部１０６は、現世代の推定関数を関数出力部１０７に入力する。また、特徴量関数生成部１０３は、現世代の特徴量関数の組を関数出力部１０７に入力する。推定関数及び特徴量関数の組が入力されると、関数出力部１０７は、入力された推定関数及び特徴量関数の組を出力する。
【００７５】
以上、本実施形態に係る情報処理装置１００の機能構成について説明した。上記のように、情報処理装置１００は、特徴量関数の生成、特徴量の算出、推定関数の生成、有効な特徴量の選択などの処理を繰り返し実行する。また、情報処理装置１００は、特徴量関数生成部１０３の機能により進化的手法に基づいて特徴量関数を世代交代させる。このように、進化的手法に基づいて特徴量関数を繰り返し最適化していくことで、与えられた記号列から属性情報を精度良く算出することが可能な推定関数と特徴量関数の組が得られる。つまり、記号列から属性情報を精度良く推定するアルゴリズムが自動構築される。
【００７６】
［１−３：アルゴリズム自動構築方法］
次に、本実施形態のアルゴリズム自動構築方法に係る処理の流れについて説明する。
【００７７】
（１−３−１：全体的な処理の流れ）
まず、図９を参照しながら、本実施形態のアルゴリズム自動構築方法に係る処理の全体的な流れについて説明する。図９は、本実施形態のアルゴリズム自動構築方法に係る処理の全体的な流れについて説明するための説明図である。
【００７８】
図９に示すように、まず、情報処理装置１００に学習用データ（記号列Ｘと属性情報ｔ）が入力される（Ｓ１０１）。学習用データが入力されると、情報処理装置１００は、Ｎ−ｇｒａｍ解析部１０２の機能により、入力された記号列Ｘに対するＮ−ｇｒａｍ解析を実行する（Ｓ１０２）。次いで、情報処理装置１００は、特徴量関数生成部１０３の機能により複数の特徴量関数を生成する（Ｓ１０３）。次いで、情報処理装置１００は、特徴量算出部１０５の機能により、各特徴量関数に記号列Ｘを入力して特徴量を算出する（Ｓ１０４）。次いで、情報処理装置１００は、推定関数生成部１０６の機能により、算出した特徴量と属性情報ｔを利用して推定関数を生成する（Ｓ１０５）。
【００７９】
次いで、情報処理装置１００は、所定の終了条件（例えば、ユーザによる終了操作の有無など）に基づいて学習処理（特徴量関数と推定関数の更新処理）を終了するか否かを判定する（Ｓ１０６）。学習処理を終了する場合、情報処理装置１００は、処理をステップＳ１０７に進める。一方、学習処理を終了しない場合、情報処理装置１００は、処理をステップＳ１０３に戻す。処理をステップＳ１０７に進めた場合、情報処理装置１００は、関数出力部１０７の機能により、特徴量関数と推定関数を出力する（Ｓ１０７）。
【００８０】
以上、全体的な処理の流れについて説明した。以下では、Ｎ−ｇｒａｍ解析処理、特徴量関数の生成処理、特徴量の算出処理、推定関数の生成処理について、処理の流れをより詳細に説明する。
【００８１】
（１−３−２：Ｎ−ｇｒａｍ解析）
まず、図１０を参照しながら、Ｎ−ｇｒａｍ解析処理の流れについて、より詳細に説明する。図１０は、Ｎ−ｇｒａｍ解析処理の流れについて説明するための説明図である。なお、Ｎ−ｇｒａｍ解析処理は、主にＮ−ｇｒａｍ解析部１０２により実行される。
【００８２】
図１０に示すように、Ｎ−ｇｒａｍ解析部１０２は、Ｎ−ｇｒａｍに関する処理ループ（ｎ＝１〜Ｎのループ）を開始する（Ｓ１１１）。Ｎ−ｇｒａｍに関する処理ループが開始されると、まず、Ｎ−ｇｒａｍ解析部１０２は、ｎ＝１に設定し、学習用データに含まれる記号列Ｘの中から１個の記号の組み合わせ（ｕｎｉ−ｇｒａｍ）を全て抽出する（Ｓ１１２）。例えば、記号列Ｘとして「ａｂｃａｂａｂｃｄｅｄｅｆ」が与えられた場合、Ｎ−ｇｒａｍ解析部１０２は、記号列Ｘの中から全てのｕｎｉ−ｇｒａｍ｛ａ，ｂ，ｃ，ａ，ｂ，ａ，ｂ，ｃ，ｄ，ｅ，ｄ，ｅ，ｆ｝を抽出する。
【００８３】
次いで、Ｎ−ｇｒａｍ解析部１０２は、抽出したｕｎｉ−ｇｒａｍを記号インデックス（例えば、文字コード）の順にソートする（Ｓ１１３）。例えば、抽出したｕｎｉ−ｇｒａｍの組が｛ａ，ｂ，ｃ，ａ，ｂ，ａ，ｂ，ｃ，ｄ，ｅ，ｄ，ｅ，ｆ｝である場合、Ｎ−ｇｒａｍ解析部１０２は、このｕｎｉ−ｇｒａｍの組を｛ａ，ａ，ａ，ｂ，ｂ，ｂ，ｃ，ｃ，ｄ，ｄ，ｅ，ｅ，ｆ｝にソートする。次いで、Ｎ−ｇｒａｍ解析部１０２は、ソートされたｕｎｉ−ｇｒａｍの組に基づいて各ｕｎｉ−ｇｒａｍの出現頻度を検出し、その出現頻度を示すｎ−ｇｒａｍ情報（出現頻度情報）を生成する（Ｓ１１４）。例えば、ソートされたｕｎｉ−ｇｒａｍの組が｛ａ，ａ，ａ，ｂ，ｂ，ｂ，ｃ，ｃ，ｄ，ｄ，ｅ，ｅ，ｆ｝の場合、Ｎ−ｇｒａｍ解析部１０２は、ｕｎｉ−ｇｒａｍの出現頻度情報として｛ａ：３，ｂ：３，ｃ：２，ｄ：２，ｅ：２，ｆ：１｝を生成する。
【００８４】
次いで、Ｎ−ｇｒａｍ解析部１０２は、ｎを１だけインクリメントし（Ｓ１１５）、ステップＳ１１２〜Ｓ１１４の処理ステップを再び実行する。ｎ＝１〜ＮについてステップＳ１１２〜Ｓ１１４の処理が完了すると、Ｎ−ｇｒａｍ解析部１０２は、Ｎ−ｇｒａｍに関する処理ループを終了し、処理をステップＳ１１６に進める（Ｓ１１５）。処理をステップＳ１１６に進めた場合、Ｎ−ｇｒａｍ解析部１０２は、ｕｎｉ−ｇｒａｍ〜Ｎ−ｇｒａｍの出現頻度情報を１つにまとめ、出現頻度が多い順にソートする（Ｓ１１６）。そして、ステップＳ１１６にてソートされた出現頻度情報が特徴量関数生成部１０３に入力され、Ｎ−ｇｒａｍ解析に関する一連の処理が終了する。
【００８５】
以上、Ｎ−ｇｒａｍ解析処理の流れについて説明した。
【００８６】
（１−３−３：特徴量関数の生成）
次に、図１１〜図１８を参照しながら、特徴量関数の生成に係る処理の流れについて、より詳細に説明する。図１１〜図１８は、特徴量関数の生成に係る処理について、より詳細に説明するための説明図である。なお、特徴量関数の生成に係る処理は、特徴量関数生成部１０３により実行される。
【００８７】
まず、図１１を参照する。図１１に示すように、特徴量関数生成部１０３は、生成すべき特徴量関数が２世代目以降であるか否かを判定する（Ｓ１２１）。つまり、特徴量関数生成部１０３は、学習用データの入力に対して初めて特徴量関数を生成するのか否かを判定する。生成すべき特徴量関数が２世代目以降でない場合（初めて特徴量関数を生成する場合）、特徴量関数生成部１０３は、処理をステップＳ１２２に進める。一方、生成すべき特徴量関数が２世代目以降である場合、特徴量関数生成部１０３は、処理をステップＳ１２３に進める。
【００８８】
処理をステップＳ１２２に進めた場合、特徴量関数生成部１０３は、基本関数をランダムに組み合わせて所定数の特徴量関数（以下、特徴量関数のリスト）を生成する（Ｓ１２２）。一方、処理をステップＳ１２３に進めた場合、特徴量関数生成部１０３は、進化的手法を用いて特徴量関数のリストを更新する（Ｓ１２３）。
【００８９】
（ステップＳ１２２の詳細：特徴量関数のランダム生成）
ここで、図１２を参照しながら、ステップＳ１２２（図１１を参照）の処理について、より詳細に説明する。
【００９０】
図１２に示すように、特徴量関数生成部１０３は、まず、特徴量関数のリストに関する処理ループ（Ｍ＝０〜ｍのループ）を開始する（Ｓ１３１）。但し、ｍは、特徴量関数のリストに含める特徴量関数の数である。処理ループを開始すると、特徴量関数生成部１０３は、基本関数をランダムに組み合わせて特徴量関数を生成する（Ｓ１３２）。次いで、特徴量関数生成部１０３は、ランダムに生成した特徴量関数を特徴量関数のリストに追加する（Ｓ１３３）。次いで、特徴量関数生成部１０３は、Ｍを１だけインクリメントし（Ｓ１３４）、再びステップＳ１３２〜Ｓ１３３の処理を実行する。但し、Ｍ＝ｍ−１についてステップＳ１３２〜Ｓ１３３の処理が完了した場合、特徴量関数生成部１０３は、ステップＳ１２２に係る一連の処理を終了する。
【００９１】
（ステップＳ１３２の詳細）
次に、図１３を参照しながら、ステップＳ１３２（図１２を参照）の処理について、より詳細に説明する。
【００９２】
図１３に示すように、まず、特徴量関数生成部１０３は、現在のデータ形態（記号列、ベクトル、スカラなど）を「記号列」に設定する（Ｓ１４１）。次いで、特徴量関数生成部１０３は、予め用意された複数の基本関数の中から、現在のデータ形態に設定された形態のデータを入力することが可能な基本関数を抽出する（Ｓ１４２）。例えば、現在のデータ形態が「記号列」の場合、基本関数Ｃｕｔ、Ｆｉｎｄなどが抽出される。次いで、特徴量関数生成部１０３は、ステップＳ１４２で抽出した基本関数の中から１つの基本関数をランダムに選択して特徴量関数に追加する（Ｓ１４３）。
【００９３】
次いで、特徴量関数生成部１０３は、基本関数のパラメータをランダムに決定する（Ｓ１４４）。次いで、特徴量関数生成部１０３は、特徴量関数に追加した基本関数の出力形態を現在のデータ形態に設定する（Ｓ１４５）。例えば、特徴量関数に追加した基本関数がＦｉｎｄの場合、Ｆｉｎｄの出力形態「ベクトル」が現在のデータ形態に設定される。次いで、特徴量関数生成部１０３は、現在のデータ形態が「スカラ」であるか否か、及び所定の終了条件に達したか否かを判定する（Ｓ１４６）。
【００９４】
所定の終了条件としては、例えば、ランダムに決めた数の基本関数が特徴量関数に追加された場合に終了するという条件や、ステップＳ１４６において発生させた乱数が所定値以下の場合に終了するという条件などが考えられる。現在のデータ形態が「スカラ」でないか、又は、所定の終了条件に達していない場合、特徴量関数生成部１０３は、再びステップＳ１４２に処理を進める。一方、現在のデータ形態が「スカラ」であり、かつ、所定の終了条件に達した場合、特徴量関数生成部１０３は、ステップＳ１３２に関する一連の処理を終了する。
【００９５】
（ステップＳ１２３の詳細：進化的手法による特徴量関数の生成）
次に、図１４を参照しながら、ステップＳ１２３（図１１を参照）の処理について、より詳細に説明する。
【００９６】
図１４に示すように、まず、特徴量関数生成部１０３は、交差数ｍｘ、突然変異数ｍｍ、ランダム生成数ｍｒを決定する（Ｓ１５１）。但し、前世代の特徴量関数の中から次世代に残す特徴量関数の数をｍｓとした場合に、ｍｓ＋ｍｘ＋ｍｍ＋ｍｒ＝ｍを満たすようにｍｘ、ｍｍ、ｍｒが決定される。
【００９７】
次いで、特徴量関数生成部１０３は、前世代の特徴量関数から残すべきｍｓ個の特徴量関数を選択する（Ｓ１５２）。次いで、特徴量関数生成部１０３は、ステップＳ１５２で選択した特徴量関数の中から２つの特徴量関数を選択し、これら２つの特徴量関数を交差させて新たな特徴量関数を生成する（Ｓ１５３）。次いで、特徴量関数生成部１０３は、ステップＳ１５２で選択した特徴量関数を突然変異させて新たな特徴量関数を生成する（Ｓ１５４）。次いで、特徴量関数生成部１０３は、ランダムに基本関数を組み合わせて新たな特徴量関数を生成する（Ｓ１５５）。
【００９８】
以下、選択（Ｓ１５２）、交差（Ｓ１５３）、突然変異（Ｓ１５４）、ランダム生成（Ｓ１５５）の各処理ステップについて、より詳細に説明する。
【００９９】
（ステップＳ１５２の詳細：選択）
まず、図１５を参照しながら、ステップＳ１５２（図１４を参照）の処理について、より詳細に説明する。図１５に示すように、特徴量関数生成部１０３は、前世代の特徴量関数のリスト中から有効な特徴量関数を選択して次世代の特徴量関数のリストに追加する（Ｓ１６１）。有効な特徴量関数は、前世代の推定関数を生成する際に得られる有効な特徴量の情報に基づいて決定される。
【０１００】
（ステップＳ１５３の詳細：交差）
次に、図１６を参照しながら、ステップＳ１５３（図１４を参照）の処理について、より詳細に説明する。
【０１０１】
図１６に示すように、まず、特徴量関数生成部１０３は、インデックスＭＸ（ＭＸ＝０〜ｍｘ−１）に関する処理ループを開始する（Ｓ１７１）。次いで、特徴量関数生成部１０３は、ステップＳ１５２で選択された前世代の特徴量関数からランダムに１つの特徴量関数を選択する（Ｓ１７２）。なお、ステップＳ１７２で選択された特徴量関数を（式Ａ）と表記する。次いで、特徴量関数生成部１０３は、ステップＳ１５２で選択された前世代の特徴量関数から（式Ａ）とは異なる特徴量関数をランダムに１つ選択する（Ｓ１７３）。なお、ステップＳ１７３で選択された特徴量関数を（式Ｂ）と表記する。
【０１０２】
次いで、特徴量関数生成部１０３は、（式Ａ）と（式Ｂ）の一部要素を組み替えて新しい特徴量関数を生成する（Ｓ１７４）。次いで、特徴量関数生成部１０３は、ステップＳ１７４で生成した新しい特徴量関数を次世代の特徴量関数のリストに追加する（Ｓ１７５）。次いで、特徴量関数生成部１０３は、インデックスＭＸを１だけインクリメントして処理をステップＳ１７２に戻す（Ｓ１７６）。但し、インデックスＭＸ＝０〜ｍｘ−１についてステップＳ１７２〜Ｓ１７５の処理が完了した場合、特徴量関数生成部１０３は、交差に関する一連の処理を終了する。
【０１０３】
（ステップＳ１５４の詳細：突然変異）
次に、図１７を参照しながら、ステップＳ１５４（図１４を参照）の処理について、より詳細に説明する。
【０１０４】
図１７に示すように、まず、特徴量関数生成部１０３は、インデックスＭＭ（ＭＭ＝０〜ｍｍ−１）に関する処理ループを開始する（Ｓ１８１）。次いで、特徴量関数生成部１０３は、ステップＳ１５２で選択された前世代の特徴量関数からランダムに１つの特徴量関数を選択する（Ｓ１８２）。次いで、特徴量関数生成部１０３は、ステップＳ１８２で選択した特徴量関数の一部要素をランダムに変更して新しい特徴量関数を生成する（Ｓ１８３）。次いで、特徴量関数生成部１０３は、ステップＳ１８３で生成した新しい特徴量関数を次世代の特徴量関数のリストに追加する（Ｓ１８４）。次いで、特徴量関数生成部１０３は、インデックスＭＭを１だけインクリメントして処理をステップＳ１８２に戻す（Ｓ１８５）。但し、インデックスＭＭ＝０〜ｍｍ−１についてステップＳ１８２〜Ｓ１８４の処理が完了した場合、特徴量関数生成部１０３は、突然変異に関する一連の処理を終了する。
【０１０５】
（ステップＳ１５５の詳細：ランダム生成）
次に、図１８を参照しながら、ステップＳ１５５（図１４を参照）の処理について、より詳細に説明する。
【０１０６】
図１８に示すように、まず、特徴量関数生成部１０３は、インデックスＭＲ（ＭＲ＝０〜ｍｒ−１）に関する処理ループを開始する（Ｓ１９１）。次いで、特徴量関数生成部１０３は、基本関数をランダムに組み合わせて新たな特徴量関数を生成する（Ｓ１９２）。なお、ステップＳ１９２の処理は、図１３に示したステップＳ１３２の処理と実質的に同じである。次いで、特徴量関数生成部１０３は、ステップＳ１９２で生成した新たな特徴量関数を次世代の特徴量関数のリストに追加する（Ｓ１９３）。次いで、特徴量関数生成部１０３は、インデックスＭＲを１だけインクリメントして処理をステップＳ１９２に戻す（Ｓ１９４）。但し、インデックスＭＲ＝０〜ｍｒ−１についてステップＳ１９２〜Ｓ１９３の処理が完了した場合、特徴量関数生成部１０３は、ランダム生成に関する一連の処理を終了する。
【０１０７】
以上、特徴量関数の生成に係る処理の流れについて説明した。上記の通り、第１世代の特徴量関数のリストはランダム生成され、第２世代以降の特徴量関数のリストは進化的手法により生成される。
【０１０８】
（１−３−４：特徴量関数の計算）
次に、図１９を参照しながら、特徴量関数の計算に係る処理の流れについて、より詳細に説明する。図１９は、特徴量関数の計算に係る処理の流れについて、より詳細に説明するための説明図である。なお、特徴量関数の計算に係る処理は、主に特徴量算出部１０５により実行される。
【０１０９】
図１９に示すように、まず、特徴量算出部１０５は、学習データに含まれる記号列｛Ｘ（ｉ）｝に関する処理ループ（記号列ループ）を開始する（Ｓ２０１）。例えば、学習データにｑ個の記号列Ｘ（１），…，Ｘ（ｑ）が含まれている場合、特徴量算出部１０５は、インデックスｉ＝１〜ｑについて記号列ループ内の処理を実行する。次いで、特徴量算出部１０５は、特徴量関数のリストに含まれる特徴量関数｛ＦＥＦｊ｝に関する処理ループ（特徴量関数ループ）を開始する（Ｓ２０２）。例えば、特徴量関数のリストに特徴量関数ＦＥＦ１，…，ＦＥＦｍが含まれている場合、特徴量算出部１０５は、インデックスｊ＝１〜ｍについて特徴量関数ループ内の処理を実行する。
【０１１０】
次いで、特徴量算出部１０５は、記号列Ｘ（ｊ）について特徴量関数ＦＥＦｊを計算し、特徴量ｘ（ｉ）ｊ＝ＦＥＦｊ（Ｘ（ｉ））を算出する（Ｓ２０３）。次いで、特徴量算出部１０５は、インデックスｊを１だけインクリメントし、ステップＳ２０３の処理を再び実行する（Ｓ２０４）。但し、ｊ＝ｍについてステップＳ２０３が実行された後、特徴量算出部１０５は、インデックスｊを１に初期化してステップＳ２０５に処理を進める。
【０１１１】
ステップＳ２０５に処理を進めた場合、特徴量算出部１０５は、インデックスｉを１だけインクリメントし、ステップＳ２０２〜Ｓ２０４の特徴量関数ループを再び実行する（Ｓ２０５）。但し、インデックスｉ＝１〜ｑについてステップＳ２０２〜Ｓ２０４の処理が完了した場合、特徴量算出部１０５は、特徴量の算出に関する一連の処理を終了する。
【０１１２】
以上、特徴量の算出に係る処理の流れについて説明した。
【０１１３】
（１−３−５：推定関数の生成）
次に、図２０を参照しながら、推定関数の生成に係る処理の流れについて、より詳細に説明する。図２０は、推定関数の生成に係る処理の流れについて、より詳細に説明するための説明図である。なお、推定関数の生成に係る処理は、主に推定関数生成部１０６により実行される。
【０１１４】
図１０に示すように、推定関数生成部１０６は、機械学習部１０６１の機能により、特徴量から属性情報を推定する推定関数ｆを機械学習により生成する（Ｓ２１１）。次いで、推定関数生成部１０６は、有効特徴量選択部１０６２の機能により、推定関数の生成に利用された特徴量の組を選択し、選択した特徴量の組に関する情報（有効な特徴量の情報）を特徴量関数生成部１０３に入力する（Ｓ２１２）。有効な特徴量の情報が入力されると、特徴量関数生成部１０３は、入力された有効な特徴量の組に対応する特徴量関数の組を選択し、その情報を保存する（Ｓ２１２）。なお、有効な特徴量の組に対応する特徴量関数の選択及び保存に関する処理は、有効特徴量選択部１０６２が実行してもよい。
【０１１５】
以上、推定関数の生成に係る処理の流れについて説明した。
【０１１６】
［１−４：情報処理装置２００（推定器）の機能構成］
次に、図２１を参照しながら、本実施形態に係る情報処理装置２００（推定器）の機能構成について説明する。図２１は、本実施形態に係る情報処理装置２００（推定器）の機能構成について説明するための説明図である。なお、この情報処理装置２００は、先に説明した情報処理装置１００により生成された特徴量関数と推定関数を利用して任意の記号列から、その記号列の特徴を表す属性情報を推定する推定器である。
【０１１７】
図２１に示すように、情報処理装置２００は、主に、データ入力部２０１と、属性推定部２０２と、記憶部２０３とにより構成される。
【０１１８】
まず、データ入力部２０１に記号列が入力される。なお、ここで入力される記号列は、学習用データとして与えられるものではなく、任意の記号列である。データ入力部２０１に入力された記号列は、属性推定部２０２に入力される。記号列が入力されると、属性推定部２０２は、記憶部２０３に予め格納された特徴量関数と推定関数を取得する。次いで、属性推定部２０２は、取得した特徴量関数に記号列を入力して特徴量を算出する。さらに、属性推定部２０２は、算出した特徴量を推定関数に入力して属性情報を算出し、算出した属性情報を出力する。
【０１１９】
以上、情報処理装置２００の機能構成について説明した。なお、上記説明においては情報処理装置１００、２００を別体で表現したが、一体であってもよい。
【０１２０】
［１−５：属性情報の推定方法］
次に、図２２を参照しながら、本実施形態に係る属性情報の推定方法に関する処理の流れについて説明する。図２２は、本実施形態に係る属性情報の推定方法に関する処理の流れについて説明するための説明図である。なお、本実施形態に係る属性情報の推定方法は、情報処理装置２００の機能により実現される。
【０１２１】
図２２に示すように、まず、記号列Ｘが情報処理装置２００に入力される（Ｓ２２１）。次いで、情報処理装置２００は、属性推定部２０２の機能により、入力された記号列Ｘを特徴量関数ＦＥＦに入力して特徴量ｘを算出する（Ｓ２２２）。次いで、情報処理装置２００は、属性推定部２０２の機能により、算出した特徴量ｘを推定関数ｆに入力して属性情報ｙ＝ｆ（ｘ）を算出する（Ｓ２２３）。次いで、情報処理装置２００は、算出した属性情報ｙを出力する（Ｓ２２４）。
【０１２２】
以上、本実施形態に係る属性情報の推定方法に関する処理の流れについて説明した。
【０１２３】
［１−６：ハードウェア構成］
上記の情報処理装置１００、２００が有する各構成要素の機能は、例えば、図２３に示すハードウェア構成を用いて実現することが可能である。つまり、当該各構成要素の機能は、コンピュータプログラムを用いて図２３に示すハードウェアを制御することにより実現される。なお、このハードウェアの形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、ＰＨＳ、ＰＤＡ等の携帯情報端末、ゲーム機、又は種々の情報家電がこれに含まれる。但し、上記のＰＨＳは、Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙ−ｐｈｏｎｅ  Ｓｙｓｔｅｍの略である。また、上記のＰＤＡは、Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔの略である。
【０１２４】
図２３に示すように、このハードウェアは、主に、ＣＰＵ９０２と、ＲＯＭ９０４と、ＲＡＭ９０６と、ホストバス９０８と、ブリッジ９１０と、を有する。さらに、このハードウェアは、外部バス９１２と、インターフェース９１４と、入力部９１６と、出力部９１８と、記憶部９２０と、ドライブ９２２と、接続ポート９２４と、通信部９２６と、を有する。但し、上記のＣＰＵは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略である。また、上記のＲＯＭは、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略である。そして、上記のＲＡＭは、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略である。
【０１２５】
ＣＰＵ９０２は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ９０４、ＲＡＭ９０６、記憶部９２０、又はリムーバブル記録媒体９２８に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ９０４は、ＣＰＵ９０２に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。ＲＡＭ９０６には、例えば、ＣＰＵ９０２に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
【０１２６】
これらの構成要素は、例えば、高速なデータ伝送が可能なホストバス９０８を介して相互に接続される。一方、ホストバス９０８は、例えば、ブリッジ９１０を介して比較的データ伝送速度が低速な外部バス９１２に接続される。また、入力部９１６としては、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力部９１６としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ（以下、リモコン）が用いられることもある。
【０１２７】
出力部９１８としては、例えば、ＣＲＴ、ＬＣＤ、ＰＤＰ、又はＥＬＤ等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。但し、上記のＣＲＴは、Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅの略である。また、上記のＬＣＤは、Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙの略である。そして、上記のＰＤＰは、Ｐｌａｓｍａ  ＤｉｓｐｌａｙＰａｎｅｌの略である。さらに、上記のＥＬＤは、Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙの略である。
【０１２８】
記憶部９２０は、各種のデータを格納するための装置である。記憶部９２０としては、例えば、ハードディスクドライブ（ＨＤＤ）等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。但し、上記のＨＤＤは、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略である。
【０１２９】
ドライブ９２２は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体９２８に記録された情報を読み出し、又はリムーバブル記録媒体９２８に情報を書き込む装置である。リムーバブル記録媒体９２８は、例えば、ＤＶＤメディア、Ｂｌｕ−ｒａｙメディア、ＨＤ  ＤＶＤメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体９２８は、例えば、非接触型ＩＣチップを搭載したＩＣカード、又は電子機器等であってもよい。但し、上記のＩＣは、Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略である。
【０１３０】
接続ポート９２４は、例えば、ＵＳＢポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ、ＲＳ−２３２Ｃポート、又は光オーディオ端子等のような外部接続機器９３０を接続するためのポートである。外部接続機器９３０は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はＩＣレコーダ等である。但し、上記のＵＳＢは、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略である。また、上記のＳＣＳＩは、Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅの略である。
【０１３１】
通信部９２６は、ネットワーク９３２に接続するための通信デバイスであり、例えば、有線又は無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、又はＷＵＳＢ用の通信カード、光通信用のルータ、ＡＤＳＬ用のルータ、又は各種通信用のモデム等である。また、通信部９２６に接続されるネットワーク９３２は、有線又は無線により接続されたネットワークにより構成され、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、可視光通信、放送、又は衛星通信等である。但し、上記のＬＡＮは、Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略である。また、上記のＷＵＳＢは、Ｗｉｒｅｌｅｓｓ  ＵＳＢの略である。そして、上記のＡＤＳＬは、Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅの略である。
【０１３２】
＜２：まとめ＞
最後に、本発明の実施形態に係る技術内容について簡単に纏める。ここで述べる技術内容は、例えば、ＰＣ、携帯電話、携帯ゲーム機、携帯情報端末、情報家電、カーナビゲーションシステム等、種々の情報処理装置に対して適用することができる。
【０１３３】
上記の情報処理装置の機能構成は次のように表現することができる。当該情報処理装置は、次のような入力部、特徴量関数生成部、特徴量算出部、推定関数生成部、及び出力部を有する。上記の入力部は、複数の記号列、及び前記各記号列から抽出したい属性情報を入力するための入力手段である。なお、この属性情報は、各記号列の特徴を表す情報である。また、上記の特徴量関数生成部は、記号列を数値に変換する関数を含む所定の関数群から複数の関数を選択し、当該複数の関数を組み合わせて、前記記号列から特徴量を出力する複数の特徴量関数を生成する手段である。
【０１３４】
また、上記の特徴量算出部は、前記特徴量関数生成部により生成された各特徴量関数に、前記入力部により入力された各記号列を入力し、当該各記号列に対応する特徴量を算出する手段である。そして、上記の推定関数生成部は、前記入力部により入力された各記号列に対応する属性情報と、前記特徴量算出部により算出された当該各記号列に対応する特徴量とを用いて機械学習を実行し、前記特徴量から前記属性情報を推定する推定関数を生成する手段である。また、上記の出力部は、前記特徴量関数生成部により生成された特徴量関数、及び前記推定関数生成部により生成された推定関数を出力する手段である。
【０１３５】
上記のように、本実施形態に係る情報処理装置は、記号列を特徴量に変換する特徴量関数と、その特徴量から属性情報を推定する推定関数を生成する。このとき、記号列から属性情報を推定する推定関数を機械学習により求めるのではなく、記号列を特徴量に変換し、その特徴量から属性情報を推定する推定関数を機械学習により求める。このように、記号列から特徴量を求める工程を含めることにより、任意の記号列から属性情報を推定可能な推定関数を得ることが可能になる。また、推定関数による推定精度を向上させることが可能になる。
【０１３６】
（備考）
上記のデータ入力部１０１は、入力部の一例である。また、上記の特徴量関数生成部１０３は、世代交代部の一例である。
【０１３７】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１３８】
１００    情報処理装置
１０１    データ入力部
１０２    Ｎ−ｇｒａｍ解析部
１０３    特徴量関数生成部
１０４    記憶部
１０５    特徴量算出部
１０６    推定関数生成部
１０６１  機械学習部
１０６２  有効特徴量選択部
１０７    関数出力部
２００    情報処理装置
２０１    データ入力部
２０２    属性推定部
２０３    記憶部
【図１】
0005581864.tif 000002
【図２】
0005581864.tif 000003
【図３】
0005581864.tif 000004
【図４】
0005581864.tif 000005
【図５】
0005581864.tif 000006
【図６】
0005581864.tif 000007
【図７】
0005581864.tif 000008
【図８】
0005581864.tif 000009
【図９】
0005581864.tif 000010
【図１０】
0005581864.tif 000011
【図１１】
0005581864.tif 000012
【図１２】
0005581864.tif 000013
【図１３】
0005581864.tif 000014
【図１４】
0005581864.tif 000015
【図１５】
0005581864.tif 000016
【図１６】
0005581864.tif 000017
【図１７】
0005581864.tif 000018
【図１８】
0005581864.tif 000019
【図１９】
0005581864.tif 000020
【図２０】
0005581864.tif 000021
【図２１】
0005581864.tif 000022
【図２２】
0005581864.tif 000023
【図２３】
0005581864.tif 000024