[1.学習システムのハードウェア構成]
以下、本発明に関わる学習システムの実施形態の例を説明する。図1は、学習システムの全体構成を示す図である。図1に示すように、学習システムSは、サーバ10及びユーザ端末20を含み、これらはネットワークNに接続される。なお、図1では、サーバ10及びユーザ端末20を1台ずつ示しているが、これらは複数台あってもよい。
サーバ10は、サーバコンピュータであり、例えば、制御部11、記憶部12、及び通信部13を含む。制御部11は、少なくとも1つのプロセッサを含む。制御部11は、記憶部12に記憶されたプログラムやデータに従って処理を実行する。記憶部12は、主記憶部及び補助記憶部を含む。例えば、主記憶部はRAMなどの揮発性メモリであり、補助記憶部は、ハードディスクやフラッシュメモリなどの不揮発性メモリである。通信部13は、有線通信又は無線通信用の通信インタフェースを含み、例えば、ネットワークを介してデータ通信を行う。
ユーザ端末20は、ユーザが操作するコンピュータであり、例えば、パーソナルコンピュータ、携帯情報端末(タブレット型コンピュータを含む)、又は携帯電話機(スマートフォンを含む)等である。ユーザ端末20は、制御部21、記憶部22、通信部23、操作部24、及び表示部25を含む。制御部21、記憶部22、及び通信部23のハードウェア構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。操作部24は、ユーザが操作を行うための入力デバイスであり、例えば、タッチパネルやマウス等のポインティングデバイスやキーボード等である。操作部24は、ユーザの操作内容を制御部21に伝達する。表示部25は、例えば、液晶表示部又は有機EL表示部等である。
なお、記憶部12,22に記憶されるものとして説明するプログラム及びデータは、ネットワークを介してこれらに供給されるようにしてもよい。また、サーバ10及びユーザ端末20のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、サーバ10及びユーザ端末20は、それぞれコンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)や外部機器と直接的に接続するための入出力部(例えば、USB端子)を含んでもよい。この場合、情報記憶媒体に記憶されたプログラムやデータが読取部又は入出力部を介して、サーバ10又はユーザ端末20に供給されるようにしてもよい。
[2.学習システムの概要]
本実施形態では、学習システムSでは、ユーザが入力した検索条件に基づいて文書が検索される。文書のファイル形式は、種々の形式を適用可能であり、例えば、HTMLファイル、XMLファイル、テキストファイル、又はリッチテキストファイルであってもよい。
本実施形態では、文書の一例として、HTMLで記述されたウェブページを説明する。このため、本実施形態でウェブページと記載した箇所については、文書と読み替えることができる。ウェブページは、種々のジャンルのページを適用可能であり、本実施形態では、宿泊施設のページを例に挙げる。例えば、サーバ10は、旅行予約サービスの運営者が管理しており、宿泊施設のウェブページを統括的に管理する。
例えば、ユーザは、ユーザ端末20から宿泊地や宿泊日といった検索条件を入力し、サーバ10は、当該検索条件に合致する宿泊施設のウェブページを検索する。サーバ10は、検索結果をユーザ端末20に送信し、ユーザ端末20は、検索でヒットした宿泊施設の一覧が表示される。ユーザが検索結果の中から宿泊施設を選択すると、当該宿泊施設のウェブページが表示部25に表示される。
図2は、ウェブページの一例を示す図である。図2に示すように、ウェブページP1には、ユーザが選択した宿泊施設の情報が表示され、例えば、宿泊施設名、部屋名、部屋の画像、及び部屋の紹介文といった情報が表示領域A10に表示される。部屋の紹介文等の情報は、検索時のインデックスとして用いられる。
本実施形態では、ウェブページP1は、半構造化されており、非構造化部分と構造化部分とを含む。
非構造化部分は、ウェブページP1の中で構造化されていない部分である。別の言い方をすれば、非構造化部分は、フォーマットが定められていない部分、レイアウトが定められていない部分、又は、どこに何の情報が記述されるか決まっていない部分ということもできる。例えば、非構造化部分は、自由に入力されるテキスト、又は、自由に添付される画像を含む。本実施形態では、宿泊施設は、自分達の好きなように非構造化部分を記述する。
構造化部分は、ウェブページP1の中で構造化された部分である。別の言い方をすれば、構造化部分は、予め定められたフォーマットで記述された部分、レイアウトが予め定められた部分、又は、どこに何の情報が記述されているか決まっている部分ということもできる。例えば、構造化部分は、テーブル、表、図、又は構造化テキストである。本実施形態では、旅行予約サービスの運営者が構造化部分のフォーマットを定めているものとする。宿泊施設は、運営者が定めたフォーマットに沿って構造化部分を記述する。
図2に示すように、ウェブページP1は、表示領域A10に表示される紹介文等の情報を非構造化部分として含み、テーブルT11を構造化部分として含む。例えば、表示領域A10には、宿泊施設が自由に入力したテキストと、宿泊施設が自由に添付した画像と、が表示される。また例えば、テーブルT11には、宿泊施設が所定のフォーマットに沿って作成した情報が表示される。ここでは、テーブルT11の1列目に属性が格納され、テーブルT11の2列目に属性値が格納される。
属性は、ウェブページに含まれる情報の種類である。別の言い方をすれば、属性は、ウェブページに含まれる情報の意味、分類、性質、又は特徴ということもできる。図2の例であれば、テーブルT11には、「広さ」、「フロア」、「ベッド幅」、及び「部屋数」といった情報が格納されているので、属性として、これらの名前が記述されている。なお、属性は、これらに限られず、ウェブページの内容に合った任意の属性を設定可能であり、例えば、宿泊施設であれば、部屋タイプや宿泊可能人数といった属性があってもよい。
属性値は、ウェブページに含まれる情報の中身である。別の言い方をすれば、属性値は、ウェブページに含まれる情報の具体的な内容である。属性値は、記号又は記号列で示される。記号は、情報を伝達する媒体であり、例えば、文字、数値、マーク、及び絵を含む意味である。記号列は、2字以上の記号の集まりである。図2の例であれば、テーブルT11には、「広さ」、「フロア」、「ベッド幅」、及び「部屋数」の各々の属性の属性値として、「60m2」、「9階」、「140cm」、及び「3部屋」が格納される。
本実施形態では、属性は、宿泊施設によって自由に入力される。このため、同じ属性でも、表記ゆれが存在することがある。例えば、「広さ」という属性でも、宿泊施設によっては「面積」や「床面積」と入力することもある。また例えば、「フロア」という属性でも、宿泊施設によっては「階」や「階数」と入力することもある。詳細は後述するが、学習システムSは、属性の表記ゆれを吸収し、表記は異なるが同じ意味を示す属性を統合する。
また、本実施形態では、属性値も、宿泊施設によって自由に入力される。このため、属性値には、種々の表記パターンが存在する。例えば、「広さ」という属性であれば、「60m2」や「70m2」のように、整数と単位の組み合わせで表現されることもあれば、「60.25m2」や「70.3m2」のように、小数点以下の情報を含む数値と単位の組み合わせで表現されることもある。また例えば、宿泊施設によっては、日本語又は中国語における漢字で数値を表現することもある。他にも例えば、宿泊施設によっては、「m2」ではなく平方フィート等の別の単位を使用することもあるし、日本語又は中国語における漢字で単位を表現することもある。詳細は後述するが、学習システムSは、頻出の表記パターンの情報を属性値として抽出し、属性値のカバー率を高めるようにしている。
学習システムSでは、ウェブページP1から属性と属性値が抽出され、検索のインデックスとして利用される。本実施形態では、テーブルT11に属性と属性値の組み合わせが格納されている。テーブルT11は構造化部分なので、比較的容易に属性と属性値の組み合わせを抽出することができる。このため、ウェブページP1のテーブルT11から属性と属性値の組み合わせが抽出され、インデックスとして利用される。
この点、ウェブページP1には、テーブルT11だけでなく、非構造化部分である表示領域A10にも、宿泊施設の情報が豊富に含まれている。このため、表示領域A10から属性値を抽出することができれば、検索の精度を高めることができる。しかし、表示領域A10の紹介文等は、宿泊施設が自由に入力しているので、その文面だけを参照しても、何の属性のどの属性値が記述されているかを特定するのは困難である。
そこで、学習システムSは、テーブルT11から抽出した属性と属性値の組み合わせに基づいて教師データを生成し、ウェブページを分類する学習器を学習させる。学習器は、ウェブページに含まれる宿泊施設の紹介文等の文言を分析し、学習済みの属性の属性値と推測される文言に対し、属性を付与する。これにより、宿泊施設の紹介文等に含まれる文言をインデックスとして利用することができ、検索の精度を高めることができる。
学習器は、教師データによって学習されるので、学習器の分類精度を高めるためには、精度の高い教師データを用意することが重要である。ただし、最初から精度の高い教師データを用意することは非常に手間がかかる。このため、学習システムSは、半教師あり学習を利用し、最初は少ない教師データによって学習器を学習させ、学習器を利用してウェブページから抽出した属性値を教師データに追加する。教師データを徐々に拡張することで、教師データを準備する手間を省くようにしている。
ただし、最初のうちは、学習器の精度があまり高くないので、本来は属性値ではないものが、誤って属性値として検出されることがある。例えば、本来は属性値ではない「*」や「;」といった記号が、「広さ」の属性の属性値として誤って検出されることがある。また例えば、本来は広さを示す情報ではない長文の文字列が、「広さ」の属性の属性値として誤って検出されることがある。半教師あり学習では、学習が繰り返し行われるため、本来は属性値ではない誤った情報が教師データにひとたび追加されると、当該誤った情報に基づいて学習された学習器によって、更に誤った情報が属性値として検出されやすくなる。即ち、学習が繰り返し行われる半教師あり学習では、精度の低下が更なる精度の低下を招くので、属性値の誤検出による学習器の精度低下を引き起こしやすい。
そこで、学習システムSは、学習器が属性値の候補として検出した記号又は記号列が所定の条件を満たすか否かを判定し、本来は属性値ではない記号情報が教師データに追加されることを防止し、学習器の精度を高めるようにしている。以降、学習システムSが有する構成の詳細を説明する。
[3.本実施形態において実現される機能]
図3は、学習システムSで実現される機能の一例を示す機能ブロック図である。図3に示すように、本実施形態では、データ記憶部100、生成部101、学習部102、取得部103、判定部104、及び追加学習制御部105が、サーバ10で実現される。データ記憶部100は、記憶部12を主として実現され、生成部101、学習部102、取得部103、判定部104、及び追加学習制御部105の各々は、制御部11を主として実現される。
[3−1.データ記憶部]
データ記憶部100は、ウェブページに関する種々のデータを記憶する。例えば、データ記憶部100は、学習器L、ウェブページデータベースDB、及び教師データDTを記憶する。
データ記憶部100には、学習器Lのプログラムが記憶されている。別の言い方をすれば、データ記憶部100には、学習器Lのアルゴリズムが記憶されている。学習器L自体は、半教師あり学習で用いられる種々の学習器Lを適用可能であり、例えば、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク、又はCRF(Conditional Random Field)であってもよい。
学習器Lは、複数のウェブページの各々に含まれる記号情報を分類する。例えば、学習器Lは、入力されたウェブページに含まれる記号情報の特徴を示す特徴ベクトルを計算する。特徴ベクトルは、記号情報が示す記号又は記号列の特徴量であり、例えば、Word2vec、Glove、又はfastText等を利用して計算してもよい。学習器Lは、当該計算した特徴ベクトルと、学習済みの各属性の属性値と、に基づいて、記号情報が各属性に属する蓋然性を計算する。
例えば、後述する学習部102によって、各属性が特徴空間のどの領域に割り当てられるかが学習器Lに学習されており、学習器Lは、記号情報の特徴ベクトルがどの方向を向いているかに基づいて、記号情報が各属性に属する蓋然性を計算する。例えば、学習器Lは、蓋然性が最も高い属性を記号情報に付与してもよいし、蓋然性が閾値以上の属性を記号情報に付与してもよい。記号情報に付与される属性は、学習器Lによる分類結果であり、学習器Lが記号情報に付与したラベルである。ラベルは、記号情報の分類であり、属性を識別可能な情報であればよい。例えば、ラベルは、属性を識別するIDであってもよいし、属性の名前が用いられてもよい。
図4は、ウェブページデータベースDBの一例を示す図である。図4に示すように、ウェブページデータベースDBには、ウェブページに関する種々の情報が格納される。例えば、ウェブページデータベースDBには、ウェブページを一意に識別するページIDに関連付けて、宿泊施設名、宿泊施設の基本情報、宿泊施設のカテゴリ、ウェブページ内の紹介文の中から抽出されたキーワード、属性、及び属性値といった情報が格納される。これらの情報は、検索時のインデックスとして用いられる。
宿泊施設の基本情報は、宿泊施設固有の情報であり、例えば、住所、電話番号、又はメールアドレスといった情報である。カテゴリは、複数のカテゴリの中で宿泊施設が属するカテゴリであり、例えば、高級宿、温泉旅館、又はビジネスホテルといったカテゴリである。キーワードは、宿泊施設の紹介文の中の任意の単語であり、予め定められた単語と一致する単語がキーワードとして抽出されてもよいし、宿泊施設が検索用に指定したキーワードが格納されてもよい。
属性と属性値は、学習器Lがウェブページから抽出した属性と属性値である。先述したように、学習器Lは、ウェブページ内の記号情報に対し、属性をラベルとして付与する。ウェブページデータベースDBには、学習器Lがウェブページ内の文字情報に付与した属性が格納される。また、ウェブページデータベースDBには、属性が付与された記号情報が属性値として格納される。本実施形態では、後述する判定部104の判定結果に基づいて、学習器Lがラベルとして付与した属性が除去されることがあるので、ウェブページデータベースDBには、属性が除去されなかった場合に、属性と属性値の組み合わせが格納される。
なお、ウェブページデータベースDBに格納されるデータは、上記の例に限られない。例えば、ウェブページデータベースDBには、ウェブページのURL、データ記憶部100におけるウェブページのデータの格納場所、ウェブページに含まれる紹介文のテキスト、画像データ、及びテーブルのデータといった種々の情報が格納されてよい。
図5は、教師データDTの一例を示す図である。図5に示すように、教師データDTには、学習器Lを学習させるためのデータが格納される。例えば、教師データDTには、属性と属性値の組み合わせが格納される。なお、図5では、属性の名前を示しているが、属性のID(ラベルのID)が格納されてもよい。
教師データDTは、後述する生成部101によって初期データが生成され、学習器Lがラベルとして属性を付与した記号情報が属性値として追加される。ただし、先述したように、判定部104の判定結果に基づいて、学習器Lが付与した属性が除去されることがあるので、教師データDTには、属性が除去されなかった記号情報が属性値として追加される。別の言い方をすれば、本来は属性値ではない記号情報の属性が除去されることがあるので、教師データDTには、属性値と判定された記号情報が追加される。
教師データDTは、学習器Lの学習に利用されるが、属性と属性値の組み合わせのリストなので、検索条件の設定に利用されてもよい。例えば、教師データDTが示す属性と属性値の組み合わせがユーザ端末20に表示され、検索条件とする属性及び属性値をユーザに選択させてもよい。この場合、ユーザが選択した属性及び属性値をクエリとし、ウェブページデータベースDBに格納された属性及び属性値をインデックスとした検索が実行される。
なお、データ記憶部100に記憶されるデータは、上記の例に限られない。データ記憶部100は、実施形態に係る処理のために必要なデータを記憶すればよい。例えば、データ記憶部100は、ウェブページの実データを記憶してもよい。
[3−2.生成部]
生成部101は、複数のウェブページの各々のうち、所定の表記パターンで記述された記号情報を属性値として抽出し、教師データDTの初期データを生成する。初期データは、1回目の学習で用いられる教師データDTである。
表記パターンは、記号情報が示す記号又は記号列の表記のパターンであり、POSタグ配列又は品詞タグ配列と呼ばれることもある。記号情報が1字の記号であれば、表記パターンは、当該1字の記号の種類である。記号情報が記号列であれば、表記パターンは、記号列における記号の並びである。
本実施形態では、表記パターンは、品詞の種類を並べた配列で表現される。例えば、「10m2」という記号情報であれば、表記パターンは、[number,noun]となる。また例えば、「15.25m2」という記号情報であれば、表記パターンは、[number,symbol,number,noun]となる。
例えば、生成部101は、ウェブページに含まれる記号情報を抽出する。本実施形態では、生成部101は、ウェブページの構造化部分から記号情報を抽出する。例えば、図2の例であれば、生成部101は、ウェブページP1のテーブルT11から記号情報を抽出する。ここでは、属性値となりうる情報は、テーブルT11の2列目に格納されているので、生成部101は、テーブルT11の2列目に格納された記号情報を抽出し、表記パターンを特定する。表記パターンは、自然言語処理における品詞分解ツールを利用して特定されるようにすればよい。品詞分解ツールは、品詞を定義した辞書データに基づいて記号情報を解析して品詞に分解する。
生成部101は、複数のウェブページの各々の中から複数の表記パターンの各々の出現頻度を取得し、所定頻度以上で出現した表記パターンで記述された記号情報を属性値として抽出し、初期データを生成する。
出現頻度とは、表記パターンが表れる頻度である。生成部101は、表記パターンの特定結果に基づいて、各表記パターンの数をカウントして出現頻度を取得する。属性に関係なく表記パターンがカウントされてもよいが、本実施形態では、生成部101は、属性ごとに、表記パターンの数をカウントして出現頻度を取得する。
所定頻度は、閾値として定められた頻度であればよく、例えば、全体の中での上位数十パーセントといった値を設定してもよいし、出現頻度の絶対数が所定数以上といった値を設定してもよい。生成部101は、各表記パターンの出現頻度が所定頻度以上であるか否かを判定し、所定頻度以上であると判定された表記パターンの記号情報を属性値として抽出し、教師データDTの初期データを生成する。
例えば、「広さ」という属性であれば、「10m2」のように[number,noun]の表記パターンと、「15.25m2」のように[number,symbol,number,noun]の表記パターンと、がよく出現し、頻出頻度が非常に高くなる。このため、これらの表記パターンは、属性値を抽出するための表記パターンとして使用される。
一方、宿泊施設が「17*]m2」のように誤入力した場合には、表記パターンは[number,symbol,symbol,noun]となる。このような表記パターンは、通常は「広さ」を表す場合に使用されず、誤入力にすぎないので、頻出頻度は非常に低くなる。このため、当該表記パターンは、属性値を抽出するための表記パターンとしては使用されない。誤入力以外にも、例えば、一部の地域でしか用いられない表記パターンについても、頻出頻度は低いので、属性値を抽出するための表記パターンとしては使用されない。
[3−3.学習部]
学習部102は、複数の属性の各々の属性値を示す教師データDTに基づいて、複数のウェブページの各々に含まれる記号情報を分類する学習器Lを学習させる。学習部102は、教師データDTに基づいて、学習器Lのアルゴリズムの係数を調整することによって、学習器Lを学習させる。
例えば、学習部102は、教師データDTに示された各属性の属性値の特徴ベクトルを計算する。特徴ベクトルの計算は、文字情報の特徴ベクトルの計算と同じであってよく、例えば、Word2vec、Glove、又はfastText等を利用してもよい。学習部102は、各属性値の特徴ベクトルに基づいて、特徴空間内に各属性に対応する領域を割り当てる。そして、学習部102は、ウェブページ内の記号情報の特徴ベクトルと、各属性に対応する領域と、に基づいて、記号情報が各属性に属する蓋然性を計算して属性をラベル付与するように学習器Lのアルゴリズムの係数を調整する。なお、上記の方法は、学習方法の一例であり、教師データDTを用いた学習は、半教師有り機械学習で用いられている種々の方法を適用可能である。
本実施形態では、学習部102は、生成部101により生成された教師データDTの初期データに基づいて、学習器Lを学習させる。初期データに基づく学習は、1回目の学習であり、後述する追加学習制御部105によって教師データDTが拡張された場合には、学習部102は、拡張後の教師データDTに基づいて、学習器Lを学習させる。別の言い方をすれば、学習部102は、拡張後の教師データDTに基づいて、学習器Lを追加で学習させる。
学習部102は、教師データDTが拡張されるたびに学習器Lを学習させてもよいし、教師データDTが複数回拡張された場合に学習器Lを学習させてもよい。他にも例えば、学習部102は、教師データDTに追加された新たな属性値の数が閾値以上になった場合に学習器Lを学習させてもよいし、所定の日時が訪れた場合に、その時点での教師データDTに基づいて学習器Lを学習させてもよい。
[3−4.取得部]
取得部103は、複数のウェブページの各々を学習器Lに入力し、学習器Lにより分類された記号情報を属性値候補として取得する。学習器Lにウェブページが入力されると、学習器Lは、ウェブページから記号情報を抽出する。例えば、学習器Lは、ウェブページの紹介文等の文章を文節に区切り、個々の文節を記号情報として抽出する。
学習器Lは、各記号情報の特徴ベクトルを計算し、当該特徴ベクトルに基づいて、記号情報に属性をラベルとして付与する。取得部103は、学習器Lがラベルとして属性を付与した記号情報を、属性値候補として取得する。なお、学習器Lは、ウェブページの非構造化部分に含まれる記号情報だけを処理対象としてもよいし、構造化部分に含まれる記号情報も処理対象としてもよい。
属性値候補は、属性値となりうる記号情報である。別の言い方をすれば、属性値候補は、学習器Lによって属性値と推測された記号情報である。先述したように、本来は属性値ではない記号情報に属性が付与されることがあるので、属性値候補は、後述する判定部104によって、本当に属性値であるか否かが判定される。判定部104によって属性値であると判定された属性値候補は、新たな属性値となる。
[3−5.判定部]
判定部104は、属性値候補が示す記号又は記号列が所定の条件を満たすか否かを判定する。
所定の条件とは、属性値候補が属性値であるか否かを判定するための条件である。別の言い方をすれば、所定の条件は、本来は属性値ではないが属性値として検出された属性値候補を特定するための条件である。所定の条件は、種々の条件を設定可能であり、例えば、属性値候補の字面に関する条件であってもよいし、属性値候補の字数に関する条件であってもよい。以下、所定の条件の一例を説明する。判定部104は、下記に説明する条件の少なくとも1つを判定すればよく、何れか1つの条件だけを判定してもよいし、複数の条件の各々を判定してもよい。
例えば、判定部104は、属性値候補が示す記号又は記号列が所定字数未満であるか否かを判定してもよい。所定字数は、閾値として定められた数であればよく、例えば、1字であってもよいし、30字であってもよい。判定部104は、属性値候補の字数をカウントし、字数が所定字数未満であるか否かを判定する。
また例えば、判定部104は、属性値候補が示す記号又は記号列が特定種類の記号又は記号列であるか否かを判定する。特定種類の記号又は記号列は、予め定められた種類であればよく、例えば、アルファベットであってもよいし、日本語や中国語における漢字であってもよい。判定部104は、属性値候補の文字コードを参照し、特定種類の記号又は記号列であるか否かを判定する。
本実施形態では、複数のウェブページの各々は、マークアップ言語で記述されているので、判定部104は、属性値候補が示す記号又は記号列がタグ部分であるか否かを判定してもよい。マークアップ言語は、文書中に特定の記法を用いて情報を埋め込むための人工言語であり、例えば、HTML、XML、TeX、又はSGMLである。タグは、マークアップ言語で定められたタグであればよく、例えば、TABLEタグ、HEADタグ、TITLEタグ、又はBODYタグである。判定部104は、「<」や「>」といった特定の記号で囲われた部分であるか否かを判定することによって、タグ部分であるか否かを判定する。
[3−6.追加学習制御部]
追加学習制御部105は、判定部104の判定結果に基づいて、属性値候補を用いた学習器Lの追加学習を制御する。
追加学習とは、学習器Lを追加で学習させることである。別の言い方をすれば、追加学習は、拡張された教師データDTに基づいて学習器Lを学習させることである。追加学習の制御とは、属性値候補を追加学習で利用するか否かを制御することである。
例えば、追加学習制御部105は、判定部104の判定結果が所定の結果であった属性値候補を新たな属性値とし、追加学習で利用する。追加学習制御部105は、判定部104の判定結果が所定の結果である属性値候補を新たな属性値として教師データDTに追加し、当該属性値候補を用いた学習器Lの追加学習を実行させる。別の言い方をすれば、追加学習制御部105は、判定部104の判定結果が所定の結果ではない属性値候補が新たな属性値として教師データDTに追加されることを制限し、当該属性値候補を用いた学習器Lの追加学習が行われることを制限する。所定の結果は、判定部104の条件に応じた結果を設定すればよく、その一例を下記に説明する。
なお、本実施形態では、追加学習制御部105は、判定部104の判定結果が所定の結果ではなかった属性値候補から属性を除去することによって、追加学習で利用しないようにする場合を説明するが、追加学習で利用しない旨を示すフラグを用意しておき、特に属性を除去することなく、フラグの値を設定することによって、追加学習で利用しないようにしてもよい。即ち、追加学習制御部105は、判定部104の判定結果が所定の結果ではなかった属性値候補から属性を除去することによって、当該属性値候補が教師データDTに追加されないようにしてもよいし、フラグの値を設定することによって、当該属性値候補が教師データDTに追加されないようにしてもよい。
他にも例えば、追加学習制御部105は、属性が付与された属性値候補を教師データDTに追加せずにそのまま放置したり、属性値候補自体を削除したりすることによって追加学習で利用しないようにしてもよい。追加学習で利用されなかった属性値候補は、属性値とはならないので、ウェブページのインデックスとしても利用されないことになる。
例えば、追加学習制御部105は、属性値候補が示す記号又は記号列が所定字数未満であると判定された場合に、属性値候補から属性を除去する。例えば、追加学習制御部105は、属性値候補の字数が1字である場合に属性値候補から属性を除去してもよいし、属性値候補の字数が3字未満である場合に属性値候補から属性を除去してもよい。
また例えば、追加学習制御部105は、属性値候補が示す記号又は記号列が所定字数以上であると判定された場合に、属性値候補から属性を除去してもよい。例えば、追加学習制御部105は、属性値候補の字数が30字以上である場合に属性値候補から属性を除去する。
また例えば、追加学習制御部105は、属性値候補が示す記号又は記号列が特定種類の記号又は記号列であると判定された場合に、属性値候補から属性を除去する。例えば、追加学習制御部105は、属性値候補が「*」や「;」といった種類の記号である場合に、属性値候補から属性を除去してもよいし、所定字数未満の属性値候補がアルファベットである場合に、属性値候補から属性を除去してもよい。
また例えば、追加学習制御部105は、属性値候補が示す記号又は記号列がタグ部分であると判定された場合に、属性値候補から属性を除去する。例えば、追加学習制御部105は、属性値候補がTABLEタグ、HEADタグ、TITLEタグ、又はBODYタグといったタグ部分である場合に、属性値候補から属性を除去する。
なお、追加学習制御部105は、複数の条件の各々の判定結果に基づいて、属性値候補から属性を除去してもよい。例えば、追加学習制御部105は、属性値候補が示す記号又は記号列が、所定字数未満であり、かつ、特定種類の記号又は記号列であると判定された場合に、属性値候補から属性を除去してもよい。例えば、属性値候補の字数が、3字未満であり、かつ、アルファベットであった場合に属性値候補から属性が除去されるようにしてもよい。このように、複数の条件の各々の判定結果を複合的に利用してもよい。
また例えば、追加学習制御部105は、判定部104の判定結果以外の情報も考慮して追加学習を制御してもよい。例えば、追加学習制御部105は、属性値候補の出現頻度に更に基づいて、属性値候補を用いた学習器Lの追加学習を制御してもよい。追加学習制御部105は、属性値候補の出現頻度が閾値以上であるか否かを判定する。追加学習制御部105は、属性値候補の出現頻度が閾値以上であると判定された場合に、属性値候補から属性を除去せず、属性値候補の出現頻度が閾値未満であると判定された場合に、属性値候補から属性を除去する。
また例えば、追加学習制御部105は、学習器Lにより計算された属性値候補の蓋然性に更に基づいて、属性値候補を用いた学習器Lの追加学習を制御してもよい。追加学習制御部105は、属性値候補の蓋然性が閾値以上であるか否かを判定する。追加学習制御部105は、属性値候補の蓋然性が閾値以上であると判定された場合に、属性値候補から属性を除去せず、属性値候補の蓋然性が閾値未満であると判定された場合に、属性値候補から属性を除去する。
なお、学習システムSでは、以上説明した学習部102、取得部103、判定部104、及び追加学習制御部105の各々の処理は、何度も繰り返し実行され、教師データDTが徐々に拡張される。
[4.本実施形態において実行される処理]
図6は、サーバ10によって実行される処理を示すフロー図である。図6に示す処理は、制御部11が記憶部12に記憶されたプログラムに基づいて動作することによって実行される。図6に示す処理は、図3に示す機能ブロックにより実行される処理の一例である。
図6に示すように、制御部11は、ウェブページデータベースDBに基づいて、候補発見処理を実行する(S1)。候補発見処理は、ウェブページの中から、属性候補と属性値候補を発見する処理である。別の言い方をすれば、候補発見処理は、ウェブページのインデックスの候補を発見する処理ということもできるし、教師データDTの構成要素の候補を発見する処理ということもできる。
なお、候補発見処理は、全てのウェブページを対象にしてもよいし、一部のウェブページだけを対象にしてもよい。一部のウェブページだけを候補発見処理の対象にする場合には、制御部11は、所定数のウェブページをランダムに選出してもよいし、テーブルを含むウェブページを特定して候補発見処理の対象にしてもよい。
S1においては、制御部11は、ウェブページデータベースDBに格納された複数のウェブページの各々にTABLEタグが存在するか否かを判定し、複数のウェブページの各々のテーブルの有無を特定する。制御部11は、テーブルを含むウェブページから、当該テーブルに格納された情報を候補として抽出する。例えば、テーブルの1列名を属性候補とし、テーブルの2列目を属性値候補として抽出する。
制御部11は、クリーニング処理を実行する(S2)。S2のクリーニング処理は、属性値候補の中から属性値として不適切なものを除外する処理である。S2においては、制御部11は、所定の除外条件を満たす属性値候補を除外する。除外条件は、任意の条件であればよく、例えば、他の属性値候補との差が閾値以上の属性値候補が除外されてもよいし、出現頻度が閾値未満の属性値候補が除外されてもよい。
制御部11は、属性統合処理を実行する(S3)。先述したように、属性の名前には表記ゆれが存在するので、属性統合処理は、属性候補として抽出された名前の表記ゆれを吸収し、属性を統合する処理である。統合とは、表記は異なるが同じ意味の名前を同じ属性としてグループ化することである。例えば、グループ化された名前の何れかは、属性の名前として利用される。グループ化された名前の中から属性の名前がランダムで選出されてもよいし、出現頻度が最も高い名前が属性の名前として利用されてもよい。
S3においては、制御部11は、属性候補の各々の意味が同じであるかを判定し、同じ意味の属性を統合する。別の言い方をすれば、制御部11は、属性の表記ゆれを吸収する。なお、ここでは、同義語を定義した同義語データが予め記憶部12に記憶されているものとする。制御部11は、同義語データを参照し、同じ意味の名前を同じ属性として統合する。
制御部11は、属性値多様化処理を実行する(S4)。属性値多様化処理は、属性値のバリエーションを増やす処理である。ここでは、特定の表記パターンだけを属性値にするのではなく、複数の表記パターンを属性値として抽出することで、属性値のバリエーションを増やすようにしている。ただし、表記パターンを増やしすぎると、本来は属性値ではないものが混じったり、マイナーな表記パターンの属性値が混じったりして教師データの精度が下がるので、下記に説明するように、表記パターンの出現頻度を考慮するようにしている。
図7は、S4において実行される属性値多様化処理の一例を示す図である。図7に示すように、制御部11は、属性値候補の表記パターンを抽出する(S40)。S40においては、制御部11は、各属性値候補が示す記号列を品詞分解して表記パターンを抽出する。
制御部11は、属性ごとに、表記パターンの出現頻度を集計する(S41)。S41においては、制御部11は、属性ごとに、各表記パターンで記述された属性値候補の数をカウントして出現頻度として取得する。制御部11は、属性と表記パターンの組み合わせごとに出現頻度を取得する。
制御部11は、S41で集計した出現頻度に基づいて、属性ごとに、属性値の表記パターン(属性値として抽出する表記パターン)を決定する(S42)。S42においては、制御部11は、S41における集計結果に基づいて、属性ごとに、出現頻度が上位k位(kは自然数)の表記パターンを、属性値の表記パターンとして決定する。なお、kの値は、任意であってよく、属性ごとにkの値が異なってもよい。
制御部11は、属性と表記パターンの組み合わせごとに、属性値候補の出現頻度を集計する(S43)。S43においては、制御部11は、各属性値候補の出現数をカウントして出現頻度として取得する。制御部11は、属性、表記パターン、及び属性値候補の組み合わせごとに、出現頻度を取得する。
制御部11は、S43で集計した出現頻度に基づいて、属性値候補の中から属性値を決定する(S44)。S44においては、制御部11は、S43における集計結果に基づいて、出現頻度が上位n位(nは自然数)の属性値候補を、属性値として決定する。なお、nの値は、任意であってよく、属性ごとにnの値が異なってもよい。
図6に戻り、制御部11は、S4の属性値多様化処理に基づいて、教師データ生成処理を実行する(S5)。教師データ生成処理は、教師データDTの初期データを生成する処理である。S5においては、制御部11は、S3で統合した属性と、S4で決定した属性値と、の組み合わせを教師データDTの初期データとして取得する。
制御部11は、S5で生成した教師データDTの初期データに基づいて、学習器Lを学習させる(S6)。S6においては、制御部11は、教師データDTに示された属性値の特徴ベクトルを計算し、当該特徴ベクトルとの類似度を示す蓋然性を計算するように、学習器L内のアルゴリズムの係数を調整する。また、制御部11は、蓋然性が閾値以上の記号情報に対して属性を付与するように、学習器L内のアルゴリズムを設定する。
制御部11は、S6で学習させた学習器Lに基づいて、ウェブページのタグ付け処理を実行する(S7)。タグ付け処理は、ウェブページ内の記号情報に対して属性を付与する処理である。S7においては、制御部11は、ウェブページデータベースDBに格納されたウェブページを学習器Lに入力し、ウェブページに含まれる記号情報の中で属性が付与された記号情報を特定する。学習器Lは、ウェブページ内の宿泊施設の紹介文等を構成する記号情報に対し、蓋然性が閾値以上の属性をラベルとして付与する。
制御部11は、所定の条件に基づいて、クリーニング処理を実行する(S8)。S8のクリーニング処理は、S7のタグ付け処理において、属性値ではない記号情報に付与された属性(ラベル)を除去する処理である。
図8は、S8において実行されるクリーニング処理の一例を示す図である。図8に示すように、制御部11は、処理対象の記号情報が1字の特定の記号であるか否かを判定する(S80)。処理対象の記号情報は、S7のタグ付け処理によって、学習器Lが属性を付与した記号情報の何れかである。
S80においては、制御部11は、処理対象の記号情報が「*」や「;」といった1字の特定の記号であるか否かを判定する。「*」や「;」といった記号は、明らかに属性値ではないため、属性が除去される。なお、特定の記号は、これらに限られず、予め定められた種類の記号であればよい。例えば、「:」や「=」といった記号が特定の記号に相当してもよい。
処理対象の記号情報が1字の特定の記号であると判定された場合(S80;Y)、制御部11は、処理対象の記号情報から属性を除去し(S81)、後述するS87の処理に移行する。S81においては、制御部11は、学習器Lが付与した属性を処理対象の記号情報から除去する。別の言い方をすれば、制御部11は、処理対象の記号情報に属性が付与された状態から、処理対象の記号情報に属性が付与されない状態に変化させる。
一方、処理対象の記号情報が1字の特定の記号であると判定されない場合(S80;N)、制御部11は、処理対象の記号情報が所定のタグであるか否かを判定する(S82)。S82においては、制御部11は、処理対象の記号情報がマークアップ言語におけるTABLEタグ等の所定のタグであるか否かを判定する。このような記号は、ウェブページの内容を示すのではなく、単なるタグを示すものであり、明らかに処理対象の記号情報ではないため、属性が除去される。
処理対象の記号情報が所定のタグであると判定された場合(S82;Y)、S81の処理に移行し、制御部11は、当該処理対象の記号情報から属性を除去する。
一方、処理対象の記号情報が所定のタグであると判定されない場合(S82;N)、制御部11は、処理対象の記号情報の出現頻度が閾値以上であるか否かを判定する(S83)。S83においては、制御部11は、処理対象の記号情報が抽出された数をカウントし、出現頻度として取得する。なお、閾値は、予め定められた値であればよく、任意の値を設定可能である。例えば、出現頻度の上位80%程度となるような閾値が設定されてもよい。出現頻度が閾値未満である記号情報は、ウェブページではあまり用いられない情報なので、属性が除去される。
処理対象の記号情報の出現頻度が閾値以上であると判定されない場合(S83;N)、S81の処理に移行し、制御部11は、当該処理対象の記号情報から属性を除去する。
一方、処理対象の記号情報の出現頻度が閾値以上であると判定された場合(S83;Y)、制御部11は、学習器Lが計算した処理対象の記号情報の蓋然性が閾値以上であるか否かを判定する(S84)。S84においては、制御部11は、学習器Lが属性を付与する過程で計算した蓋然性を参照し、閾値以上であるか否かを判定する。なお、閾値は、予め定められた値であればよく、任意の値を設定可能である。例えば、蓋然性がパーセンテージで表現される場合に、70%程度の閾値が設定されてもよい。蓋然性が閾値未満である記号情報は、付与された属性の確度が低いので、属性が除去される。
蓋然性が閾値以上であると判定されない場合(S84;N)、S81の処理に移行し、制御部11は、当該処理対象の記号情報から属性を除去する。
一方、蓋然性が閾値以上であると判定された場合(S84;Y)、制御部11は、処理対象の記号情報の字数が閾値未満であるか否かを判定する(S85)。S85においては、制御部11は、処理対象の記号情報が長文であるか否かを判定する。なお、閾値は、予め定められた値であればよく、任意の値を設定可能である。例えば、30字程度の閾値が設定されていてもよい。あまりに長文の記号情報は、属性値ではないので、属性が除去される。
字数が閾値未満であると判定されない場合(S85;N)、S81の処理に移行し、制御部11は、当該処理対象の記号情報から属性を除去する。
一方、字数が閾値未満であると判定された場合(S85;Y)、制御部11は、処理対象の記号情報が所定字数未満のアルファベットであるか否かを判定する(S86)。S86においては、制御部11は、処理対象の記号情報の字数が所定字数未満であるか否かの判定と、処理対象の記号情報の文字タイプがアルファベットであるか否かの判定と、を実行する。なお、所定字数は、予め定められた値であればよく、任意の値を設定可能である。例えば、3字程度の字数が設定されていてもよい。3字未満のアルファベットは、属性値ではないので、属性が除去される。
所定字数未満のアルファベットであると判定された場合(S86;Y)、S81の処理に移行し、制御部11は、当該処理対象の記号情報から属性を除去する。
一方、所定字数未満のアルファベットであると判定されない場合(S86;N)、処理対象の記号情報は、属性が除去されることなく属性値となり、後述するS9の処理によって教師データDTに追加され、後述するS11の処理によってウェブページデータベースDBに格納されてウェブページのインデックスとして利用される。制御部11は、全ての処理対象の記号情報の判定を終えたか否かを判定する(S87)。
判定をしていない処理対象の記号情報が存在する場合(S87;N)、S80の処理に戻り、次の処理対象の記号情報について判定が行われる。
一方、全ての属性値候補の判定を終えたと判定された場合(S87;Y)図6に戻り、制御部11は、クリーニング後の属性値候補に基づいて、教師データDTを拡張する(S9)。S9においては、制御部11は、S8のクリーニング処理によって属性が除去されなかった記号情報を、新たな属性値として教師データDTに追加する。
制御部11は、S9において拡張された教師データDTに基づいて、学習器Lを追加学習させる(S10)。S10の処理内容は、S6と同様であるが、S6では、教師データDTの初期データによって学習が実行されるのに対し、S10では、S9で拡張された教師データDTによって学習が実行される。
制御部11は、全てのウェブページのタグ付け処理が完了したかを判定する(S11)。S11においては、制御部11は、ウェブページデータベースDBに格納された全てのウェブページに対し、S7のタグ付け処理を実行したか否かを判定する。
タグ付け処理が完了していないウェブページが存在する場合(S11;N)、S7の処理に戻り、次のウェブページに対してタグ付け処理が実行される。
一方、全てのウェブページのタグ付け処理が完了した場合(S10;Y)、制御部11は、ウェブページIDに関連付けて、属性と属性値の組み合わせをウェブページデータベースDBに格納し(S11)、本処理は終了する。ウェブページデータベースDBに格納された属性と属性値の組み合わせは、ウェブページのインデックスとして利用される。
以上説明した学習システムSによれば、学習器Lにより分類された記号情報を属性値候補として取得し、属性値候補が示す記号又は記号列が所定の条件を満たすか否かの判定結果に基づいて、属性値候補を用いた学習器Lの追加学習を制御することで、本来は属性値ではない記号情報に基づいて学習が行われるといったことを防止し、半教師あり学習における学習器Lの精度を高めることができる。先述したように、学習が繰り返し行われる半教師あり学習では、精度の低下が更なる精度の低下を招くので、属性値の誤検出による学習器Lの精度低下を引き起こしやすいが、属性値の抽出精度を向上させて教師データDTの精度を高めることで、このような精度低下を防止し、学習器Lの精度を高めることができる。また、教師データDTの初期データの属性値が少なかったとしても、精度の高い教師データDTに拡張することができるので、初期データを準備する手間を効果的に省くことができる。
また、判定部104の判定結果が所定の結果ではない属性値候補が新たな属性値として教師データDTに追加されることを制限し、当該属性値候補を用いた学習器Lの追加学習が行われることを制限することで、本来は属性値ではない誤った情報が教師データDTに追加されることを防止し、学習器Lの精度を効果的に高めることができる。即ち、精度の低下が更なる精度の低下を招くといったことを、より効果的に防止することができる。
また、属性値候補が示す記号又は記号列が所定字数未満であるか否かの判定結果に基づいて、属性値候補を用いた学習器Lの追加学習を制御することで、本来は属性値ではない所定字数未満の記号情報に基づいて学習が行われたり、本来は属性値ではない所定字数以上の記号情報に基づいて学習が行われたりすることを防止し、半教師あり学習における学習器Lの精度を効果的に高めることができる。
また、属性値候補が示す記号又は記号列が特定種類の記号又は記号列であるか否かの判定結果に基づいて、属性値候補を用いた学習器Lの追加学習を制御することで、本来は属性値ではない特定種類の記号又は記号列の記号情報に基づいて学習が行われることを防止し、半教師あり学習における学習器Lの精度を効果的に高めることができる。
また、属性値候補が示す記号又は記号列がタグ部分であるか否かの判定結果に基づいて、属性値候補を用いた学習器Lの追加学習を制御することで、本来は属性値ではないタグ部分の記号情報に基づいて学習が行われることを防止し、半教師あり学習における学習器Lの精度を効果的に高めることができる。
また、属性値候補の出現頻度に基づいて属性値候補を用いた学習器Lの追加学習を制御し、各属性の特徴がより表れた属性値に基づいて追加学習を行うことで、半教師あり学習における学習器Lの精度を効果的に高めることができる。
また、学習器Lが計算した属性値候補の蓋然性に基づいて属性値候補を用いた学習器Lの追加学習を制御し、各属性の特徴が良く表れた属性値に基づいて追加学習を行うことで、半教師あり学習における学習器Lの精度を効果的に高めることができる。
また、ウェブページの構造化部分のうち、所定の表記パターンで記述された記号情報を属性値として抽出し、教師データDTの初期データを生成することで、初期データの生成処理を自動化し、初期データを生成する手間を省くことができる。また、構造化部分は、どの部分に属性と属性値が記述されているか予め特定できるので、初期データの精度を高めることができる。表記パターンに偏りがあると、ある特定パターンの属性値しか抽出できないが、表記パターンにバリエーションを持たせることで、属性値のカバー率を高めることができる。
また、複数の表記パターンの各々の出現頻度を取得し、所定頻度以上で出現した表記パターンで記述された記号情報を属性値として抽出して初期データを生成することで、各属性の特徴がより表れた属性値を初期データに含めることができ、初期データの精度を高めることができる。高頻度の表記パターンの属性値を抽出することで、属性値のカバー率を効果的に高めることができる。
[5.変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
(1)例えば、半教師あり学習では、種々の観点で属性値を抽出した方が、より多くの属性値を追加することができるので、教師データDTを拡張しやすい。このため、互いに異なる観点を持つ複数の学習器Lを利用して教師データDTを拡張してもよい。なお、観点とは、学習器L内のアルゴリズムである。観点が異なると、学習器L内のアルゴリズムの係数が異なる。互いに異なる教師データで学習をさせると、互いに観点が異なる学習器Lを用意することができる。
図9−図10は、変形例の処理の説明図である。図9に示すように、まず、生成部101は、教師データDTの初期データを生成する(S100)。学習部102は、教師データDTの初期データに基づいて、第1の学習器L1を学習させる(S101)。初期データの生成方法と、初期データに基づく学習方法とは、実施形態で説明した通りである。
取得部103は、複数のウェブページの各々を第1の学習器L1に入力し、第1の学習器L1により属性が付与された記号情報を第1の属性値候補として取得する(S102)。属性値候補の取得方法は、実施形態で説明した通りである。なお、属性値候補が取得された際にクリーニングが実行されてもよいが、本変形例では、S102の段階では、クリーニングが実行されないものとする。
学習部102は、第1の属性値候補に基づいて、第2の学習器L2を学習させる(S103)。S103においては、学習部102は、教師データDTの初期データと第1の属性値候補とに基づいて(即ち、教師データDTの初期データに第1の属性値候補を追加したデータを、新たな教師データとして)、第2の学習器L2を学習させてもよいし、第1の属性値候補だけに基づいて(即ち、第1の属性値候補だけを教師データとして)、第2の学習器L2を学習させてもよい。第1の学習器L1とは異なる観点となるように、第2の学習器L2が学習されるようにすればよい。なお、学習方法自体は、実施形態で説明した通りである。
取得部103は、複数のウェブページの各々を第2の学習器L2に入力し、第2の学習器L2により属性が付与された記号情報を第2の属性値候補として取得する(S104)。属性値候補の取得方法自体は、実施形態で説明した通りである。なお、第2の学習器L2に入力されるウェブページは、第1の学習器L1に入力されるウェブページと同じであってもよいし、異なっていてもよい。例えば、取得部103は、第1の学習器L1に入力される複数のウェブページとは異なる複数のウェブページの各々を第2の学習器L2に入力してもよい。別の言い方をすれば、取得部103は、第1の学習器L1には入力されなかった複数のウェブページを第2の学習器L2に入力する。このように、第1の学習器L1に入力されたウェブページとは異なるウェブページが第2の学習器L2に入力された方が、より多くの属性値候補を抽出できる。
判定部104は、第1の属性値候補と第2の属性値候補との各々が示す記号又は記号列が所定の条件を満たすか否かを判定し、追加学習制御部105は、判定部104の判定結果に基づいて、第1の属性値候補と第2の属性値候補との各々を用いた追加学習を制御する(S105)。判定部104の判定方法自体は、実施形態で説明した通りである。第1の属性値候補と第2の属性値候補の両方が判定対象となる。追加学習制御部105は、第1の属性値候補と第2の属性値候補のうち、属性値ではないと判定された属性値候補から属性を除去し、教師データDTに新たな属性値として追加しないようにする。これにより、1つの学習器だけを利用した場合よりも、教師データDTを拡張しやすくなる。
学習部102、取得部103、判定部104、及び追加学習制御部105は、以上説明した処理を1サイクルとし、繰り返し処理を実行することによって、教師データDTを拡張する。図10に示すように、1サイクル目が終了すると、2サイクル目の処理が実行される。
図10に示すように、2サイクル目では、1サイクル目で拡張した教師データDTが初期データとして取得され、S100〜S105と同様の処理が実行される(S200〜S205)。S205における教師データDTが示すように、1サイクル目の教師データDTよりも拡張された状態となる。なお、2サイクル目で利用されるウェブページは、1サイクル目と同じであってもよいし、異なっていてもよい。1サイクル目に入力されたウェブページとは異なるウェブページが2サイクル目で利用された方が、より多くの属性値候補を抽出できる。
変形例(1)によれば、互いに異なる観点の学習器Lを利用して、より多くの属性値候補を抽出し、学習器Lの精度を効果的に向上させることができる。
また、第1の学習器L1に入力されたウェブページとは異なるウェブページを第2の学習器L2に入力させる場合、より多くの属性値候補を抽出することができる。
(2)また例えば、実施形態では、図6のS4において属性値多様化処理が実行され、より多くの表記パターンの属性値を抽出する場合を説明した。学習システムSは、実施形態で説明したS8のクリーニング処理を実行せず、属性値ではない属性値候補から属性を除去する構成を特に有することなく、属性値多様化処理を実行してもよい。即ち、判定部104の処理と、追加学習制御部105の処理と、を省略し、属性値多様化処理が実行されてもよい。
(3)また例えば、学習システムSは、実施形態で説明したS8のクリーニング処理を実行せず、属性値ではない属性値候補から属性を除去する構成を特に有することなく、変形例(1)のように、互いに異なる観点の学習器Lを利用して、より多くの属性値候補を抽出してもよい。即ち、判定部104の処理と、追加学習制御部105の処理と、を省略し、複数の学習器Lを利用して教師データDTが拡張されてもよい。
(4)また例えば、実施形態では、ウェブページのテーブルの1列目に属性が格納され、2列目に属性値が格納される場合を説明したが、属性と属性値の各々の格納場所は、これらに限られない。属性と属性値の各々は、構造化部分の中の予め定められた場所に格納されていればよく、例えば、テーブルの2列名に属性が格納され、1列目に属性値が格納されていてもよい。他にも例えば、テーブルの所定の行に属性が格納され、他の行に属性値が格納されていてもよい。
また例えば、実施形態では、生成部101が教師データDTの初期データを生成する場合を説明したが、初期データは、学習システムSの管理者によって手動で生成されてもよい。また例えば、実施形態では、ウェブページを利用して初期データが生成される場合を説明したが、検索履歴等の他の情報を利用して初期データが生成されてもよい。検索履歴が利用される場合には、ユーザが入力した検索条件が属性値として初期データに格納されるようにしてもよい。
また例えば、実施形態では、宿泊施設のウェブページを例に挙げたが、ウェブページは、種々のタイプのウェブページであってよく、例えば、電子商取引、アプリケーション配信、音楽配信、保険サービス、又は金融サービスといったウェブページから属性と属性値の組み合わせが抽出されてもよい。また例えば、文書の一例としてウェブページを説明したが、文書は、種々のタイプの文書を適用可能である。例えば、文書は、法律文書、技術文書、会議資料、カタログ、又は電子書籍といった文書であってもよい。
また例えば、文書から抽出した属性と属性値が検索に利用される場合を説明したが、属性と属性値は、他の目的で使用されてもよい。例えば、文書の要約を作成する目的で使用されてもよい。
また例えば、テーブル形式の説明から属性と属性値の組み合わせが抽出されて教師データDTの初期データが生成される場合を説明したが、半構造化テキスト形式の説明から属性と属性値の組み合わせが抽出されて教師データDTの初期データが生成されてもよい。また例えば、同意の属性を統合する処理は必須でなく、表記の異なる文字列を互いに異なる属性としてもよい。
また例えば、各機能がサーバ10で実現される場合を説明したが、複数のコンピュータによって機能が分担されてもよい。例えば、サーバ10とユーザ端末20とで機能が分担されてもよいし、複数のサーバコンピュータで機能が分担されてもよい。この場合、ネットワークを介して処理結果が送受信されることで、機能が分担されるようにすればよい。また例えば、データ記憶部100に記憶されるものとして説明したデータは、サーバ10以外のコンピュータに記憶されていてもよい。