(57)【特許請求の範囲】
【請求項１】
複数の属性の各々の属性値を示す教師データに基づいて、複数の文書の各々に含まれる記号情報を分類する学習器を学習させる学習手段と、
前記複数の文書の各々を前記学習器に入力し、前記学習器により分類された記号情報を属性値候補として取得する取得手段と、
前記属性値候補が示す記号又は記号列が所定の条件を満たすか否かを判定する判定手段と、
前記判定手段の判定結果に基づいて、前記属性値候補を用いた前記学習器の追加学習を制御する追加学習制御手段と、
を含むことを特徴とする学習システム。
【請求項２】
前記追加学習制御手段は、前記判定手段の判定結果が所定の結果ではない属性値候補が新たな属性値として前記教師データに追加されることを制限し、当該属性値候補を用いた前記学習器の追加学習が行われることを制限する、
ことを特徴とする請求項１に記載の学習システム。
【請求項３】
前記判定手段は、前記属性値候補が示す記号又は記号列が所定字数未満であるか否かを判定する、
ことを特徴とする請求項１又は２に記載の学習システム。
【請求項４】
前記判定手段は、前記属性値候補が示す記号又は記号列が特定種類の記号又は記号列であるか否かを判定する、
ことを特徴とする請求項１〜３の何れかに記載の学習システム。
【請求項５】
前記複数の文書の各々は、マークアップ言語で記述されており、
前記判定手段は、前記属性値候補が示す記号又は記号列がタグ部分であるか否かを判定する、
ことを特徴とする請求項１〜４の何れかに記載の学習システム。
【請求項６】
前記追加学習制御手段は、前記属性値候補の出現頻度に更に基づいて、前記属性値候補を用いた前記学習器の追加学習を制御する、
ことを特徴とする請求項１〜５の何れかに記載の学習システム。
【請求項７】
前記追加学習制御手段は、前記学習器により計算された前記属性値候補の蓋然性に更に基づいて、前記属性値候補を用いた前記学習器の追加学習を制御する、
ことを特徴とする請求項１〜６の何れかに記載の学習システム。
【請求項８】
前記学習システムは、前記複数の文書の各々のうち、所定の表記パターンで記述された記号情報を属性値として抽出し、前記教師データの初期データを生成する生成手段を更に含む、
ことを特徴とする請求項１〜７の何れかに記載の学習システム。
【請求項９】
前記生成手段は、前記複数の文書の各々の中から複数の表記パターンの各々の出現頻度を取得し、所定頻度以上で出現した表記パターンで記述された記号情報を属性値として抽出し、前記初期データを生成する、
ことを特徴とする請求項８に記載の学習システム。
【請求項１０】
前記学習手段は、前記教師データに基づいて、第１の学習器を学習させ、
前記取得手段は、前記複数の文書の各々を前記第１の学習器に入力し、前記第１の学習器により属性が付与された記号情報を第１の属性値候補として取得し、
前記学習手段は、前記第１の属性値候補に基づいて、第２の学習器を学習させ、
前記取得手段は、複数の文書の各々を前記第２の学習器に入力し、前記第２の学習器により属性が付与された記号情報を第２の属性値候補として取得し、
前記判定手段は、前記第１の属性値候補と前記第２の属性値候補との各々が示す記号又は記号列が前記所定の条件を満たすか否かを判定し、
前記追加学習制御手段は、前記判定手段の判定結果に基づいて、前記第１の属性値候補と前記第２の属性値候補との各々を用いた追加学習を制御する、
ことを特徴とする請求項１〜９の何れかに記載の学習システム。
【請求項１１】
前記取得手段は、前記第１の学習器に入力される前記複数の文書とは異なる複数の文書の各々を前記第２の学習器に入力する、
ことを特徴とする請求項１０に記載の学習システム。
【請求項１２】
複数の属性の各々の属性値を示す教師データに基づいて、複数の文書の各々に含まれる記号情報を分類する学習器を学習させる学習ステップと、
前記複数の文書の各々を前記学習器に入力し、前記学習器により分類された記号情報を属性値候補として取得する取得ステップと、
前記属性値候補が示す記号又は記号列が所定の条件を満たすか否かを判定する判定ステップと、
前記判定ステップの判定結果に基づいて、前記属性値候補を用いた前記学習器の追加学習を制御する追加学習制御ステップと、
を含むことを特徴とする学習方法。
【請求項１３】
複数の属性の各々の属性値を示す教師データに基づいて、複数の文書の各々に含まれる記号情報を分類する学習器を学習させる学習手段、
前記複数の文書の各々を前記学習器に入力し、前記学習器により分類された記号情報を属性値候補として取得する取得手段、
前記属性値候補が示す記号又は記号列が所定の条件を満たすか否かを判定する判定手段、
前記判定手段の判定結果に基づいて、前記属性値候補を用いた前記学習器の追加学習を制御する追加学習制御手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習システム、学習方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、ウェブページ等の文書を分類する学習器が知られている。学習器の精度を高めるには、教師データの精度を高めることが重要であるが、最初から精度の高い教師データを準備しようとすると非常に手間がかかる。このため、最初は少ない教師データで学習器を学習させ、学習器が属性を付与した記号情報を、新たな属性値として教師データに追加する半教師あり学習という手法がある。半教師あり学習では、学習器の学習と、属性値の追加と、を繰り返すことで、教師データが徐々に拡張される。【０００３】
半教師あり学習では、本来は属性値ではない記号情報に属性が付与されてしまい、学習器の精度を十分に高めることができないことがある。このため、記号情報が属性値である蓋然性が閾値以上の記号情報だけを教師データに追加することが検討されている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１１／１４８５７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１のように、蓋然性が閾値以上の記号情報を教師データに追加したとしても、本来は属性値ではない記号情報を排除可能な閾値を設定するのは非常に困難である。このため、従来の半教師あり学習では、学習器の精度を十分に高めることができなかった。【０００６】
本発明は上記課題に鑑みてなされたものであって、その目的は、半教師あり学習において学習器の精度を高めることが可能な学習システム、学習方法、及びプログラムを提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係る学習システムは、複数の属性の各々の属性値を示す教師データに基づいて、複数の文書の各々に含まれる記号情報を分類する学習器を学習させる学習手段と、前記複数の文書の各々を前記学習器に入力し、前記学習器により分類された記号情報を属性値候補として取得する取得手段と、前記属性値候補が示す記号又は記号列が所定の条件を満たすか否かを判定する判定手段と、前記判定手段の判定結果に基づいて、前記属性値候補を用いた前記学習器の追加学習を制御する追加学習制御手段と、を含むことを特徴とする。【０００８】
本発明に係る学習方法は、複数の属性の各々の属性値を示す教師データに基づいて、複数の文書の各々に含まれる記号情報を分類する学習器を学習させる学習ステップと、前記複数の文書の各々を前記学習器に入力し、前記学習器により分類された記号情報を属性値候補として取得する取得ステップと、前記属性値候補が示す記号又は記号列が所定の条件を満たすか否かを判定する判定ステップと、前記判定ステップの判定結果に基づいて、前記属性値候補を用いた前記学習器の追加学習を制御する追加学習制御ステップと、を含むことを特徴とする。【０００９】
本発明に係るプログラムは、複数の属性の各々の属性値を示す教師データに基づいて、複数の文書の各々に含まれる記号情報を分類する学習器を学習させる学習手段、前記複数の文書の各々を前記学習器に入力し、前記学習器により分類された記号情報を属性値候補として取得する取得手段、前記属性値候補が示す記号又は記号列が所定の条件を満たすか否かを判定する判定手段、前記判定手段の判定結果に基づいて、前記属性値候補を用いた前記学習器の追加学習を制御する追加学習制御手段、としてコンピュータを機能させる。【００１０】
また、本発明の一態様では、前記追加学習制御手段は、前記判定手段の判定結果が所定の結果ではない属性値候補が新たな属性値として前記教師データに追加されることを制限し、当該属性値候補を用いた前記学習器の追加学習が行われることを制限する、ことを特徴とする。【００１１】
また、本発明の一態様では、前記判定手段は、前記属性値候補が示す記号又は記号列が所定字数未満であるか否かを判定する、ことを特徴とする。【００１２】
また、本発明の一態様では、前記判定手段は、前記属性値候補が示す記号又は記号列が特定種類の記号又は記号列であるか否かを判定する、ことを特徴とする。【００１３】
また、本発明の一態様では、前記複数の文書の各々は、マークアップ言語で記述されており、前記判定手段は、前記属性値候補が示す記号又は記号列がタグ部分であるか否かを判定する、ことを特徴とする。【００１４】
また、本発明の一態様では、前記追加学習制御手段は、前記属性値候補の出現頻度に更に基づいて、前記属性値候補を用いた前記学習器の追加学習を制御する、ことを特徴とする。【００１５】
また、本発明の一態様では、前記追加学習制御手段は、前記学習器により計算された前記属性値候補の蓋然性に更に基づいて、前記属性値候補を用いた前記学習器の追加学習を制御する、ことを特徴とする。【００１６】
また、本発明の一態様では、前記学習システムは、前記複数の文書の各々のうち、所定の表記パターンで記述された記号情報を属性値として抽出し、前記教師データの初期データを生成する生成手段を更に含む、ことを特徴とする。【００１７】
また、本発明の一態様では、前記生成手段は、前記複数の文書の各々の中から複数の表記パターンの各々の出現頻度を取得し、所定頻度以上で出現した表記パターンで記述された記号情報を属性値として抽出し、前記初期データを生成する、ことを特徴とする。【００１８】
また、本発明の一態様では、前記学習手段は、前記教師データに基づいて、第１の学習器を学習させ、前記取得手段は、前記複数の文書の各々を前記第１の学習器に入力し、前記第１の学習器により属性が付与された記号情報を第１の属性値候補として取得し、前記学習手段は、前記第１の属性値候補に基づいて、第２の学習器を学習させ、前記取得手段は、複数の文書の各々を前記第２の学習器に入力し、前記第２の学習器により属性が付与された記号情報を第２の属性値候補として取得し、前記判定手段は、前記第１の属性値候補と前記第２の属性値候補との各々が示す記号又は記号列が前記所定の条件を満たすか否かを判定し、前記追加学習制御手段は、前記判定手段の判定結果に基づいて、前記第１の属性値候補と前記第２の属性値候補との各々を用いた追加学習を制御する、ことを特徴とする。【００１９】
また、本発明の一態様では、前記取得手段は、前記第１の学習器に入力される前記複数の文書とは異なる複数の文書の各々を前記第２の学習器に入力する、ことを特徴とする。
【発明の効果】
【００２０】
本発明によれば、半教師あり学習において学習器の精度を高めることである。
【図面の簡単な説明】
【００２１】
【図１】学習システムの全体構成を示す図である。
【図２】ウェブページの一例を示す図である。
【図３】学習システムで実現される機能の一例を示す機能ブロック図である。
【図４】ウェブページデータベースの一例を示す図である。
【図５】教師データの一例を示す図である。
【図６】サーバによって実行される処理を示すフロー図である。
【図７】Ｓ４において実行される属性値多様化処理の一例を示す図である。
【図８】Ｓ８において実行されるクリーニング処理の一例を示す図である。
【図９】変形例の処理の説明図である。
【図１０】変形例の処理の説明図である。
【発明を実施するための形態】
【００２２】
［１．学習システムのハードウェア構成］
以下、本発明に関わる学習システムの実施形態の例を説明する。図１は、学習システムの全体構成を示す図である。図１に示すように、学習システムＳは、サーバ１０及びユーザ端末２０を含み、これらはネットワークＮに接続される。なお、図１では、サーバ１０及びユーザ端末２０を１台ずつ示しているが、これらは複数台あってもよい。
【００２３】
サーバ１０は、サーバコンピュータであり、例えば、制御部１１、記憶部１２、及び通信部１３を含む。制御部１１は、少なくとも１つのプロセッサを含む。制御部１１は、記憶部１２に記憶されたプログラムやデータに従って処理を実行する。記憶部１２は、主記憶部及び補助記憶部を含む。例えば、主記憶部はＲＡＭなどの揮発性メモリであり、補助記憶部は、ハードディスクやフラッシュメモリなどの不揮発性メモリである。通信部１３は、有線通信又は無線通信用の通信インタフェースを含み、例えば、ネットワークを介してデータ通信を行う。
【００２４】
ユーザ端末２０は、ユーザが操作するコンピュータであり、例えば、パーソナルコンピュータ、携帯情報端末（タブレット型コンピュータを含む）、又は携帯電話機（スマートフォンを含む）等である。ユーザ端末２０は、制御部２１、記憶部２２、通信部２３、操作部２４、及び表示部２５を含む。制御部２１、記憶部２２、及び通信部２３のハードウェア構成は、それぞれ制御部１１、記憶部１２、及び通信部１３と同様であってよい。操作部２４は、ユーザが操作を行うための入力デバイスであり、例えば、タッチパネルやマウス等のポインティングデバイスやキーボード等である。操作部２４は、ユーザの操作内容を制御部２１に伝達する。表示部２５は、例えば、液晶表示部又は有機ＥＬ表示部等である。
【００２５】
なお、記憶部１２，２２に記憶されるものとして説明するプログラム及びデータは、ネットワークを介してこれらに供給されるようにしてもよい。また、サーバ１０及びユーザ端末２０のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、サーバ１０及びユーザ端末２０は、それぞれコンピュータ読み取り可能な情報記憶媒体を読み取る読取部（例えば、光ディスクドライブやメモリカードスロット）や外部機器と直接的に接続するための入出力部（例えば、ＵＳＢ端子）を含んでもよい。この場合、情報記憶媒体に記憶されたプログラムやデータが読取部又は入出力部を介して、サーバ１０又はユーザ端末２０に供給されるようにしてもよい。
【００２６】
［２．学習システムの概要］
本実施形態では、学習システムＳでは、ユーザが入力した検索条件に基づいて文書が検索される。文書のファイル形式は、種々の形式を適用可能であり、例えば、ＨＴＭＬファイル、ＸＭＬファイル、テキストファイル、又はリッチテキストファイルであってもよい。
【００２７】
本実施形態では、文書の一例として、ＨＴＭＬで記述されたウェブページを説明する。このため、本実施形態でウェブページと記載した箇所については、文書と読み替えることができる。ウェブページは、種々のジャンルのページを適用可能であり、本実施形態では、宿泊施設のページを例に挙げる。例えば、サーバ１０は、旅行予約サービスの運営者が管理しており、宿泊施設のウェブページを統括的に管理する。
【００２８】
例えば、ユーザは、ユーザ端末２０から宿泊地や宿泊日といった検索条件を入力し、サーバ１０は、当該検索条件に合致する宿泊施設のウェブページを検索する。サーバ１０は、検索結果をユーザ端末２０に送信し、ユーザ端末２０は、検索でヒットした宿泊施設の一覧が表示される。ユーザが検索結果の中から宿泊施設を選択すると、当該宿泊施設のウェブページが表示部２５に表示される。
【００２９】
図２は、ウェブページの一例を示す図である。図２に示すように、ウェブページＰ１には、ユーザが選択した宿泊施設の情報が表示され、例えば、宿泊施設名、部屋名、部屋の画像、及び部屋の紹介文といった情報が表示領域Ａ１０に表示される。部屋の紹介文等の情報は、検索時のインデックスとして用いられる。
【００３０】
本実施形態では、ウェブページＰ１は、半構造化されており、非構造化部分と構造化部分とを含む。
【００３１】
非構造化部分は、ウェブページＰ１の中で構造化されていない部分である。別の言い方をすれば、非構造化部分は、フォーマットが定められていない部分、レイアウトが定められていない部分、又は、どこに何の情報が記述されるか決まっていない部分ということもできる。例えば、非構造化部分は、自由に入力されるテキスト、又は、自由に添付される画像を含む。本実施形態では、宿泊施設は、自分達の好きなように非構造化部分を記述する。
【００３２】
構造化部分は、ウェブページＰ１の中で構造化された部分である。別の言い方をすれば、構造化部分は、予め定められたフォーマットで記述された部分、レイアウトが予め定められた部分、又は、どこに何の情報が記述されているか決まっている部分ということもできる。例えば、構造化部分は、テーブル、表、図、又は構造化テキストである。本実施形態では、旅行予約サービスの運営者が構造化部分のフォーマットを定めているものとする。宿泊施設は、運営者が定めたフォーマットに沿って構造化部分を記述する。
【００３３】
図２に示すように、ウェブページＰ１は、表示領域Ａ１０に表示される紹介文等の情報を非構造化部分として含み、テーブルＴ１１を構造化部分として含む。例えば、表示領域Ａ１０には、宿泊施設が自由に入力したテキストと、宿泊施設が自由に添付した画像と、が表示される。また例えば、テーブルＴ１１には、宿泊施設が所定のフォーマットに沿って作成した情報が表示される。ここでは、テーブルＴ１１の１列目に属性が格納され、テーブルＴ１１の２列目に属性値が格納される。
【００３４】
属性は、ウェブページに含まれる情報の種類である。別の言い方をすれば、属性は、ウェブページに含まれる情報の意味、分類、性質、又は特徴ということもできる。図２の例であれば、テーブルＴ１１には、「広さ」、「フロア」、「ベッド幅」、及び「部屋数」といった情報が格納されているので、属性として、これらの名前が記述されている。なお、属性は、これらに限られず、ウェブページの内容に合った任意の属性を設定可能であり、例えば、宿泊施設であれば、部屋タイプや宿泊可能人数といった属性があってもよい。
【００３５】
属性値は、ウェブページに含まれる情報の中身である。別の言い方をすれば、属性値は、ウェブページに含まれる情報の具体的な内容である。属性値は、記号又は記号列で示される。記号は、情報を伝達する媒体であり、例えば、文字、数値、マーク、及び絵を含む意味である。記号列は、２字以上の記号の集まりである。図２の例であれば、テーブルＴ１１には、「広さ」、「フロア」、「ベッド幅」、及び「部屋数」の各々の属性の属性値として、「６０m2」、「９階」、「１４０ｃｍ」、及び「３部屋」が格納される。
【００３６】
本実施形態では、属性は、宿泊施設によって自由に入力される。このため、同じ属性でも、表記ゆれが存在することがある。例えば、「広さ」という属性でも、宿泊施設によっては「面積」や「床面積」と入力することもある。また例えば、「フロア」という属性でも、宿泊施設によっては「階」や「階数」と入力することもある。詳細は後述するが、学習システムＳは、属性の表記ゆれを吸収し、表記は異なるが同じ意味を示す属性を統合する。
【００３７】
また、本実施形態では、属性値も、宿泊施設によって自由に入力される。このため、属性値には、種々の表記パターンが存在する。例えば、「広さ」という属性であれば、「６０m2」や「７０m2」のように、整数と単位の組み合わせで表現されることもあれば、「６０．２５m2」や「７０．３m2」のように、小数点以下の情報を含む数値と単位の組み合わせで表現されることもある。また例えば、宿泊施設によっては、日本語又は中国語における漢字で数値を表現することもある。他にも例えば、宿泊施設によっては、「m2」ではなく平方フィート等の別の単位を使用することもあるし、日本語又は中国語における漢字で単位を表現することもある。詳細は後述するが、学習システムＳは、頻出の表記パターンの情報を属性値として抽出し、属性値のカバー率を高めるようにしている。
【００３８】
学習システムＳでは、ウェブページＰ１から属性と属性値が抽出され、検索のインデックスとして利用される。本実施形態では、テーブルＴ１１に属性と属性値の組み合わせが格納されている。テーブルＴ１１は構造化部分なので、比較的容易に属性と属性値の組み合わせを抽出することができる。このため、ウェブページＰ１のテーブルＴ１１から属性と属性値の組み合わせが抽出され、インデックスとして利用される。
【００３９】
この点、ウェブページＰ１には、テーブルＴ１１だけでなく、非構造化部分である表示領域Ａ１０にも、宿泊施設の情報が豊富に含まれている。このため、表示領域Ａ１０から属性値を抽出することができれば、検索の精度を高めることができる。しかし、表示領域Ａ１０の紹介文等は、宿泊施設が自由に入力しているので、その文面だけを参照しても、何の属性のどの属性値が記述されているかを特定するのは困難である。
【００４０】
そこで、学習システムＳは、テーブルＴ１１から抽出した属性と属性値の組み合わせに基づいて教師データを生成し、ウェブページを分類する学習器を学習させる。学習器は、ウェブページに含まれる宿泊施設の紹介文等の文言を分析し、学習済みの属性の属性値と推測される文言に対し、属性を付与する。これにより、宿泊施設の紹介文等に含まれる文言をインデックスとして利用することができ、検索の精度を高めることができる。
【００４１】
学習器は、教師データによって学習されるので、学習器の分類精度を高めるためには、精度の高い教師データを用意することが重要である。ただし、最初から精度の高い教師データを用意することは非常に手間がかかる。このため、学習システムＳは、半教師あり学習を利用し、最初は少ない教師データによって学習器を学習させ、学習器を利用してウェブページから抽出した属性値を教師データに追加する。教師データを徐々に拡張することで、教師データを準備する手間を省くようにしている。
【００４２】
ただし、最初のうちは、学習器の精度があまり高くないので、本来は属性値ではないものが、誤って属性値として検出されることがある。例えば、本来は属性値ではない「＊」や「；」といった記号が、「広さ」の属性の属性値として誤って検出されることがある。また例えば、本来は広さを示す情報ではない長文の文字列が、「広さ」の属性の属性値として誤って検出されることがある。半教師あり学習では、学習が繰り返し行われるため、本来は属性値ではない誤った情報が教師データにひとたび追加されると、当該誤った情報に基づいて学習された学習器によって、更に誤った情報が属性値として検出されやすくなる。即ち、学習が繰り返し行われる半教師あり学習では、精度の低下が更なる精度の低下を招くので、属性値の誤検出による学習器の精度低下を引き起こしやすい。
【００４３】
そこで、学習システムＳは、学習器が属性値の候補として検出した記号又は記号列が所定の条件を満たすか否かを判定し、本来は属性値ではない記号情報が教師データに追加されることを防止し、学習器の精度を高めるようにしている。以降、学習システムＳが有する構成の詳細を説明する。
【００４４】
［３．本実施形態において実現される機能］
図３は、学習システムＳで実現される機能の一例を示す機能ブロック図である。図３に示すように、本実施形態では、データ記憶部１００、生成部１０１、学習部１０２、取得部１０３、判定部１０４、及び追加学習制御部１０５が、サーバ１０で実現される。データ記憶部１００は、記憶部１２を主として実現され、生成部１０１、学習部１０２、取得部１０３、判定部１０４、及び追加学習制御部１０５の各々は、制御部１１を主として実現される。
【００４５】
［３−１．データ記憶部］
データ記憶部１００は、ウェブページに関する種々のデータを記憶する。例えば、データ記憶部１００は、学習器Ｌ、ウェブページデータベースＤＢ、及び教師データＤＴを記憶する。
【００４６】
データ記憶部１００には、学習器Ｌのプログラムが記憶されている。別の言い方をすれば、データ記憶部１００には、学習器Ｌのアルゴリズムが記憶されている。学習器Ｌ自体は、半教師あり学習で用いられる種々の学習器Ｌを適用可能であり、例えば、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク、又はＣＲＦ（Ｃｏｎｄｉｔｉｏｎａｌ  Ｒａｎｄｏｍ  Ｆｉｅｌｄ）であってもよい。
【００４７】
学習器Ｌは、複数のウェブページの各々に含まれる記号情報を分類する。例えば、学習器Ｌは、入力されたウェブページに含まれる記号情報の特徴を示す特徴ベクトルを計算する。特徴ベクトルは、記号情報が示す記号又は記号列の特徴量であり、例えば、Ｗｏｒｄ２ｖｅｃ、Ｇｌｏｖｅ、又はｆａｓｔＴｅｘｔ等を利用して計算してもよい。学習器Ｌは、当該計算した特徴ベクトルと、学習済みの各属性の属性値と、に基づいて、記号情報が各属性に属する蓋然性を計算する。
【００４８】
例えば、後述する学習部１０２によって、各属性が特徴空間のどの領域に割り当てられるかが学習器Ｌに学習されており、学習器Ｌは、記号情報の特徴ベクトルがどの方向を向いているかに基づいて、記号情報が各属性に属する蓋然性を計算する。例えば、学習器Ｌは、蓋然性が最も高い属性を記号情報に付与してもよいし、蓋然性が閾値以上の属性を記号情報に付与してもよい。記号情報に付与される属性は、学習器Ｌによる分類結果であり、学習器Ｌが記号情報に付与したラベルである。ラベルは、記号情報の分類であり、属性を識別可能な情報であればよい。例えば、ラベルは、属性を識別するＩＤであってもよいし、属性の名前が用いられてもよい。
【００４９】
図４は、ウェブページデータベースＤＢの一例を示す図である。図４に示すように、ウェブページデータベースＤＢには、ウェブページに関する種々の情報が格納される。例えば、ウェブページデータベースＤＢには、ウェブページを一意に識別するページＩＤに関連付けて、宿泊施設名、宿泊施設の基本情報、宿泊施設のカテゴリ、ウェブページ内の紹介文の中から抽出されたキーワード、属性、及び属性値といった情報が格納される。これらの情報は、検索時のインデックスとして用いられる。
【００５０】
宿泊施設の基本情報は、宿泊施設固有の情報であり、例えば、住所、電話番号、又はメールアドレスといった情報である。カテゴリは、複数のカテゴリの中で宿泊施設が属するカテゴリであり、例えば、高級宿、温泉旅館、又はビジネスホテルといったカテゴリである。キーワードは、宿泊施設の紹介文の中の任意の単語であり、予め定められた単語と一致する単語がキーワードとして抽出されてもよいし、宿泊施設が検索用に指定したキーワードが格納されてもよい。
【００５１】
属性と属性値は、学習器Ｌがウェブページから抽出した属性と属性値である。先述したように、学習器Ｌは、ウェブページ内の記号情報に対し、属性をラベルとして付与する。ウェブページデータベースＤＢには、学習器Ｌがウェブページ内の文字情報に付与した属性が格納される。また、ウェブページデータベースＤＢには、属性が付与された記号情報が属性値として格納される。本実施形態では、後述する判定部１０４の判定結果に基づいて、学習器Ｌがラベルとして付与した属性が除去されることがあるので、ウェブページデータベースＤＢには、属性が除去されなかった場合に、属性と属性値の組み合わせが格納される。
【００５２】
なお、ウェブページデータベースＤＢに格納されるデータは、上記の例に限られない。例えば、ウェブページデータベースＤＢには、ウェブページのＵＲＬ、データ記憶部１００におけるウェブページのデータの格納場所、ウェブページに含まれる紹介文のテキスト、画像データ、及びテーブルのデータといった種々の情報が格納されてよい。
【００５３】
図５は、教師データＤＴの一例を示す図である。図５に示すように、教師データＤＴには、学習器Ｌを学習させるためのデータが格納される。例えば、教師データＤＴには、属性と属性値の組み合わせが格納される。なお、図５では、属性の名前を示しているが、属性のＩＤ（ラベルのＩＤ）が格納されてもよい。
【００５４】
教師データＤＴは、後述する生成部１０１によって初期データが生成され、学習器Ｌがラベルとして属性を付与した記号情報が属性値として追加される。ただし、先述したように、判定部１０４の判定結果に基づいて、学習器Ｌが付与した属性が除去されることがあるので、教師データＤＴには、属性が除去されなかった記号情報が属性値として追加される。別の言い方をすれば、本来は属性値ではない記号情報の属性が除去されることがあるので、教師データＤＴには、属性値と判定された記号情報が追加される。
【００５５】
教師データＤＴは、学習器Ｌの学習に利用されるが、属性と属性値の組み合わせのリストなので、検索条件の設定に利用されてもよい。例えば、教師データＤＴが示す属性と属性値の組み合わせがユーザ端末２０に表示され、検索条件とする属性及び属性値をユーザに選択させてもよい。この場合、ユーザが選択した属性及び属性値をクエリとし、ウェブページデータベースＤＢに格納された属性及び属性値をインデックスとした検索が実行される。
【００５６】
なお、データ記憶部１００に記憶されるデータは、上記の例に限られない。データ記憶部１００は、実施形態に係る処理のために必要なデータを記憶すればよい。例えば、データ記憶部１００は、ウェブページの実データを記憶してもよい。
【００５７】
［３−２．生成部］
生成部１０１は、複数のウェブページの各々のうち、所定の表記パターンで記述された記号情報を属性値として抽出し、教師データＤＴの初期データを生成する。初期データは、１回目の学習で用いられる教師データＤＴである。
【００５８】
表記パターンは、記号情報が示す記号又は記号列の表記のパターンであり、ＰＯＳタグ配列又は品詞タグ配列と呼ばれることもある。記号情報が１字の記号であれば、表記パターンは、当該１字の記号の種類である。記号情報が記号列であれば、表記パターンは、記号列における記号の並びである。
【００５９】
本実施形態では、表記パターンは、品詞の種類を並べた配列で表現される。例えば、「１０m2」という記号情報であれば、表記パターンは、［ｎｕｍｂｅｒ，ｎｏｕｎ］となる。また例えば、「１５．２５m2」という記号情報であれば、表記パターンは、［ｎｕｍｂｅｒ，ｓｙｍｂｏｌ，ｎｕｍｂｅｒ，ｎｏｕｎ］となる。
【００６０】
例えば、生成部１０１は、ウェブページに含まれる記号情報を抽出する。本実施形態では、生成部１０１は、ウェブページの構造化部分から記号情報を抽出する。例えば、図２の例であれば、生成部１０１は、ウェブページＰ１のテーブルＴ１１から記号情報を抽出する。ここでは、属性値となりうる情報は、テーブルＴ１１の２列目に格納されているので、生成部１０１は、テーブルＴ１１の２列目に格納された記号情報を抽出し、表記パターンを特定する。表記パターンは、自然言語処理における品詞分解ツールを利用して特定されるようにすればよい。品詞分解ツールは、品詞を定義した辞書データに基づいて記号情報を解析して品詞に分解する。
【００６１】
生成部１０１は、複数のウェブページの各々の中から複数の表記パターンの各々の出現頻度を取得し、所定頻度以上で出現した表記パターンで記述された記号情報を属性値として抽出し、初期データを生成する。
【００６２】
出現頻度とは、表記パターンが表れる頻度である。生成部１０１は、表記パターンの特定結果に基づいて、各表記パターンの数をカウントして出現頻度を取得する。属性に関係なく表記パターンがカウントされてもよいが、本実施形態では、生成部１０１は、属性ごとに、表記パターンの数をカウントして出現頻度を取得する。
【００６３】
所定頻度は、閾値として定められた頻度であればよく、例えば、全体の中での上位数十パーセントといった値を設定してもよいし、出現頻度の絶対数が所定数以上といった値を設定してもよい。生成部１０１は、各表記パターンの出現頻度が所定頻度以上であるか否かを判定し、所定頻度以上であると判定された表記パターンの記号情報を属性値として抽出し、教師データＤＴの初期データを生成する。
【００６４】
例えば、「広さ」という属性であれば、「１０m2」のように［ｎｕｍｂｅｒ，ｎｏｕｎ］の表記パターンと、「１５．２５m2」のように［ｎｕｍｂｅｒ，ｓｙｍｂｏｌ，ｎｕｍｂｅｒ，ｎｏｕｎ］の表記パターンと、がよく出現し、頻出頻度が非常に高くなる。このため、これらの表記パターンは、属性値を抽出するための表記パターンとして使用される。
【００６５】
一方、宿泊施設が「１７＊]m2」のように誤入力した場合には、表記パターンは［ｎｕｍｂｅｒ，ｓｙｍｂｏｌ，ｓｙｍｂｏｌ，ｎｏｕｎ］となる。このような表記パターンは、通常は「広さ」を表す場合に使用されず、誤入力にすぎないので、頻出頻度は非常に低くなる。このため、当該表記パターンは、属性値を抽出するための表記パターンとしては使用されない。誤入力以外にも、例えば、一部の地域でしか用いられない表記パターンについても、頻出頻度は低いので、属性値を抽出するための表記パターンとしては使用されない。
【００６６】
［３−３．学習部］
学習部１０２は、複数の属性の各々の属性値を示す教師データＤＴに基づいて、複数のウェブページの各々に含まれる記号情報を分類する学習器Ｌを学習させる。学習部１０２は、教師データＤＴに基づいて、学習器Ｌのアルゴリズムの係数を調整することによって、学習器Ｌを学習させる。
【００６７】
例えば、学習部１０２は、教師データＤＴに示された各属性の属性値の特徴ベクトルを計算する。特徴ベクトルの計算は、文字情報の特徴ベクトルの計算と同じであってよく、例えば、Ｗｏｒｄ２ｖｅｃ、Ｇｌｏｖｅ、又はｆａｓｔＴｅｘｔ等を利用してもよい。学習部１０２は、各属性値の特徴ベクトルに基づいて、特徴空間内に各属性に対応する領域を割り当てる。そして、学習部１０２は、ウェブページ内の記号情報の特徴ベクトルと、各属性に対応する領域と、に基づいて、記号情報が各属性に属する蓋然性を計算して属性をラベル付与するように学習器Ｌのアルゴリズムの係数を調整する。なお、上記の方法は、学習方法の一例であり、教師データＤＴを用いた学習は、半教師有り機械学習で用いられている種々の方法を適用可能である。
【００６８】
本実施形態では、学習部１０２は、生成部１０１により生成された教師データＤＴの初期データに基づいて、学習器Ｌを学習させる。初期データに基づく学習は、１回目の学習であり、後述する追加学習制御部１０５によって教師データＤＴが拡張された場合には、学習部１０２は、拡張後の教師データＤＴに基づいて、学習器Ｌを学習させる。別の言い方をすれば、学習部１０２は、拡張後の教師データＤＴに基づいて、学習器Ｌを追加で学習させる。
【００６９】
学習部１０２は、教師データＤＴが拡張されるたびに学習器Ｌを学習させてもよいし、教師データＤＴが複数回拡張された場合に学習器Ｌを学習させてもよい。他にも例えば、学習部１０２は、教師データＤＴに追加された新たな属性値の数が閾値以上になった場合に学習器Ｌを学習させてもよいし、所定の日時が訪れた場合に、その時点での教師データＤＴに基づいて学習器Ｌを学習させてもよい。
【００７０】
［３−４．取得部］
取得部１０３は、複数のウェブページの各々を学習器Ｌに入力し、学習器Ｌにより分類された記号情報を属性値候補として取得する。学習器Ｌにウェブページが入力されると、学習器Ｌは、ウェブページから記号情報を抽出する。例えば、学習器Ｌは、ウェブページの紹介文等の文章を文節に区切り、個々の文節を記号情報として抽出する。
【００７１】
学習器Ｌは、各記号情報の特徴ベクトルを計算し、当該特徴ベクトルに基づいて、記号情報に属性をラベルとして付与する。取得部１０３は、学習器Ｌがラベルとして属性を付与した記号情報を、属性値候補として取得する。なお、学習器Ｌは、ウェブページの非構造化部分に含まれる記号情報だけを処理対象としてもよいし、構造化部分に含まれる記号情報も処理対象としてもよい。
【００７２】
属性値候補は、属性値となりうる記号情報である。別の言い方をすれば、属性値候補は、学習器Ｌによって属性値と推測された記号情報である。先述したように、本来は属性値ではない記号情報に属性が付与されることがあるので、属性値候補は、後述する判定部１０４によって、本当に属性値であるか否かが判定される。判定部１０４によって属性値であると判定された属性値候補は、新たな属性値となる。
【００７３】
［３−５．判定部］
判定部１０４は、属性値候補が示す記号又は記号列が所定の条件を満たすか否かを判定する。
【００７４】
所定の条件とは、属性値候補が属性値であるか否かを判定するための条件である。別の言い方をすれば、所定の条件は、本来は属性値ではないが属性値として検出された属性値候補を特定するための条件である。所定の条件は、種々の条件を設定可能であり、例えば、属性値候補の字面に関する条件であってもよいし、属性値候補の字数に関する条件であってもよい。以下、所定の条件の一例を説明する。判定部１０４は、下記に説明する条件の少なくとも１つを判定すればよく、何れか１つの条件だけを判定してもよいし、複数の条件の各々を判定してもよい。
【００７５】
例えば、判定部１０４は、属性値候補が示す記号又は記号列が所定字数未満であるか否かを判定してもよい。所定字数は、閾値として定められた数であればよく、例えば、１字であってもよいし、３０字であってもよい。判定部１０４は、属性値候補の字数をカウントし、字数が所定字数未満であるか否かを判定する。
【００７６】
また例えば、判定部１０４は、属性値候補が示す記号又は記号列が特定種類の記号又は記号列であるか否かを判定する。特定種類の記号又は記号列は、予め定められた種類であればよく、例えば、アルファベットであってもよいし、日本語や中国語における漢字であってもよい。判定部１０４は、属性値候補の文字コードを参照し、特定種類の記号又は記号列であるか否かを判定する。
【００７７】
本実施形態では、複数のウェブページの各々は、マークアップ言語で記述されているので、判定部１０４は、属性値候補が示す記号又は記号列がタグ部分であるか否かを判定してもよい。マークアップ言語は、文書中に特定の記法を用いて情報を埋め込むための人工言語であり、例えば、ＨＴＭＬ、ＸＭＬ、ＴｅＸ、又はＳＧＭＬである。タグは、マークアップ言語で定められたタグであればよく、例えば、ＴＡＢＬＥタグ、ＨＥＡＤタグ、ＴＩＴＬＥタグ、又はＢＯＤＹタグである。判定部１０４は、「＜」や「＞」といった特定の記号で囲われた部分であるか否かを判定することによって、タグ部分であるか否かを判定する。
【００７８】
［３−６．追加学習制御部］
追加学習制御部１０５は、判定部１０４の判定結果に基づいて、属性値候補を用いた学習器Ｌの追加学習を制御する。
【００７９】
追加学習とは、学習器Ｌを追加で学習させることである。別の言い方をすれば、追加学習は、拡張された教師データＤＴに基づいて学習器Ｌを学習させることである。追加学習の制御とは、属性値候補を追加学習で利用するか否かを制御することである。
【００８０】
例えば、追加学習制御部１０５は、判定部１０４の判定結果が所定の結果であった属性値候補を新たな属性値とし、追加学習で利用する。追加学習制御部１０５は、判定部１０４の判定結果が所定の結果である属性値候補を新たな属性値として教師データＤＴに追加し、当該属性値候補を用いた学習器Ｌの追加学習を実行させる。別の言い方をすれば、追加学習制御部１０５は、判定部１０４の判定結果が所定の結果ではない属性値候補が新たな属性値として教師データＤＴに追加されることを制限し、当該属性値候補を用いた学習器Ｌの追加学習が行われることを制限する。所定の結果は、判定部１０４の条件に応じた結果を設定すればよく、その一例を下記に説明する。
【００８１】
なお、本実施形態では、追加学習制御部１０５は、判定部１０４の判定結果が所定の結果ではなかった属性値候補から属性を除去することによって、追加学習で利用しないようにする場合を説明するが、追加学習で利用しない旨を示すフラグを用意しておき、特に属性を除去することなく、フラグの値を設定することによって、追加学習で利用しないようにしてもよい。即ち、追加学習制御部１０５は、判定部１０４の判定結果が所定の結果ではなかった属性値候補から属性を除去することによって、当該属性値候補が教師データＤＴに追加されないようにしてもよいし、フラグの値を設定することによって、当該属性値候補が教師データＤＴに追加されないようにしてもよい。
【００８２】
他にも例えば、追加学習制御部１０５は、属性が付与された属性値候補を教師データＤＴに追加せずにそのまま放置したり、属性値候補自体を削除したりすることによって追加学習で利用しないようにしてもよい。追加学習で利用されなかった属性値候補は、属性値とはならないので、ウェブページのインデックスとしても利用されないことになる。
【００８３】
例えば、追加学習制御部１０５は、属性値候補が示す記号又は記号列が所定字数未満であると判定された場合に、属性値候補から属性を除去する。例えば、追加学習制御部１０５は、属性値候補の字数が１字である場合に属性値候補から属性を除去してもよいし、属性値候補の字数が３字未満である場合に属性値候補から属性を除去してもよい。
【００８４】
また例えば、追加学習制御部１０５は、属性値候補が示す記号又は記号列が所定字数以上であると判定された場合に、属性値候補から属性を除去してもよい。例えば、追加学習制御部１０５は、属性値候補の字数が３０字以上である場合に属性値候補から属性を除去する。
【００８５】
また例えば、追加学習制御部１０５は、属性値候補が示す記号又は記号列が特定種類の記号又は記号列であると判定された場合に、属性値候補から属性を除去する。例えば、追加学習制御部１０５は、属性値候補が「＊」や「；」といった種類の記号である場合に、属性値候補から属性を除去してもよいし、所定字数未満の属性値候補がアルファベットである場合に、属性値候補から属性を除去してもよい。
【００８６】
また例えば、追加学習制御部１０５は、属性値候補が示す記号又は記号列がタグ部分であると判定された場合に、属性値候補から属性を除去する。例えば、追加学習制御部１０５は、属性値候補がＴＡＢＬＥタグ、ＨＥＡＤタグ、ＴＩＴＬＥタグ、又はＢＯＤＹタグといったタグ部分である場合に、属性値候補から属性を除去する。
【００８７】
なお、追加学習制御部１０５は、複数の条件の各々の判定結果に基づいて、属性値候補から属性を除去してもよい。例えば、追加学習制御部１０５は、属性値候補が示す記号又は記号列が、所定字数未満であり、かつ、特定種類の記号又は記号列であると判定された場合に、属性値候補から属性を除去してもよい。例えば、属性値候補の字数が、３字未満であり、かつ、アルファベットであった場合に属性値候補から属性が除去されるようにしてもよい。このように、複数の条件の各々の判定結果を複合的に利用してもよい。
【００８８】
また例えば、追加学習制御部１０５は、判定部１０４の判定結果以外の情報も考慮して追加学習を制御してもよい。例えば、追加学習制御部１０５は、属性値候補の出現頻度に更に基づいて、属性値候補を用いた学習器Ｌの追加学習を制御してもよい。追加学習制御部１０５は、属性値候補の出現頻度が閾値以上であるか否かを判定する。追加学習制御部１０５は、属性値候補の出現頻度が閾値以上であると判定された場合に、属性値候補から属性を除去せず、属性値候補の出現頻度が閾値未満であると判定された場合に、属性値候補から属性を除去する。
【００８９】
また例えば、追加学習制御部１０５は、学習器Ｌにより計算された属性値候補の蓋然性に更に基づいて、属性値候補を用いた学習器Ｌの追加学習を制御してもよい。追加学習制御部１０５は、属性値候補の蓋然性が閾値以上であるか否かを判定する。追加学習制御部１０５は、属性値候補の蓋然性が閾値以上であると判定された場合に、属性値候補から属性を除去せず、属性値候補の蓋然性が閾値未満であると判定された場合に、属性値候補から属性を除去する。
【００９０】
なお、学習システムＳでは、以上説明した学習部１０２、取得部１０３、判定部１０４、及び追加学習制御部１０５の各々の処理は、何度も繰り返し実行され、教師データＤＴが徐々に拡張される。
【００９１】
［４．本実施形態において実行される処理］
図６は、サーバ１０によって実行される処理を示すフロー図である。図６に示す処理は、制御部１１が記憶部１２に記憶されたプログラムに基づいて動作することによって実行される。図６に示す処理は、図３に示す機能ブロックにより実行される処理の一例である。
【００９２】
図６に示すように、制御部１１は、ウェブページデータベースＤＢに基づいて、候補発見処理を実行する（Ｓ１）。候補発見処理は、ウェブページの中から、属性候補と属性値候補を発見する処理である。別の言い方をすれば、候補発見処理は、ウェブページのインデックスの候補を発見する処理ということもできるし、教師データＤＴの構成要素の候補を発見する処理ということもできる。
【００９３】
なお、候補発見処理は、全てのウェブページを対象にしてもよいし、一部のウェブページだけを対象にしてもよい。一部のウェブページだけを候補発見処理の対象にする場合には、制御部１１は、所定数のウェブページをランダムに選出してもよいし、テーブルを含むウェブページを特定して候補発見処理の対象にしてもよい。
【００９４】
Ｓ１においては、制御部１１は、ウェブページデータベースＤＢに格納された複数のウェブページの各々にＴＡＢＬＥタグが存在するか否かを判定し、複数のウェブページの各々のテーブルの有無を特定する。制御部１１は、テーブルを含むウェブページから、当該テーブルに格納された情報を候補として抽出する。例えば、テーブルの１列名を属性候補とし、テーブルの２列目を属性値候補として抽出する。
【００９５】
制御部１１は、クリーニング処理を実行する（Ｓ２）。Ｓ２のクリーニング処理は、属性値候補の中から属性値として不適切なものを除外する処理である。Ｓ２においては、制御部１１は、所定の除外条件を満たす属性値候補を除外する。除外条件は、任意の条件であればよく、例えば、他の属性値候補との差が閾値以上の属性値候補が除外されてもよいし、出現頻度が閾値未満の属性値候補が除外されてもよい。
【００９６】
制御部１１は、属性統合処理を実行する（Ｓ３）。先述したように、属性の名前には表記ゆれが存在するので、属性統合処理は、属性候補として抽出された名前の表記ゆれを吸収し、属性を統合する処理である。統合とは、表記は異なるが同じ意味の名前を同じ属性としてグループ化することである。例えば、グループ化された名前の何れかは、属性の名前として利用される。グループ化された名前の中から属性の名前がランダムで選出されてもよいし、出現頻度が最も高い名前が属性の名前として利用されてもよい。
【００９７】
Ｓ３においては、制御部１１は、属性候補の各々の意味が同じであるかを判定し、同じ意味の属性を統合する。別の言い方をすれば、制御部１１は、属性の表記ゆれを吸収する。なお、ここでは、同義語を定義した同義語データが予め記憶部１２に記憶されているものとする。制御部１１は、同義語データを参照し、同じ意味の名前を同じ属性として統合する。
【００９８】
制御部１１は、属性値多様化処理を実行する（Ｓ４）。属性値多様化処理は、属性値のバリエーションを増やす処理である。ここでは、特定の表記パターンだけを属性値にするのではなく、複数の表記パターンを属性値として抽出することで、属性値のバリエーションを増やすようにしている。ただし、表記パターンを増やしすぎると、本来は属性値ではないものが混じったり、マイナーな表記パターンの属性値が混じったりして教師データの精度が下がるので、下記に説明するように、表記パターンの出現頻度を考慮するようにしている。
【００９９】
図７は、Ｓ４において実行される属性値多様化処理の一例を示す図である。図７に示すように、制御部１１は、属性値候補の表記パターンを抽出する（Ｓ４０）。Ｓ４０においては、制御部１１は、各属性値候補が示す記号列を品詞分解して表記パターンを抽出する。
【０１００】
制御部１１は、属性ごとに、表記パターンの出現頻度を集計する（Ｓ４１）。Ｓ４１においては、制御部１１は、属性ごとに、各表記パターンで記述された属性値候補の数をカウントして出現頻度として取得する。制御部１１は、属性と表記パターンの組み合わせごとに出現頻度を取得する。
【０１０１】
制御部１１は、Ｓ４１で集計した出現頻度に基づいて、属性ごとに、属性値の表記パターン（属性値として抽出する表記パターン）を決定する（Ｓ４２）。Ｓ４２においては、制御部１１は、Ｓ４１における集計結果に基づいて、属性ごとに、出現頻度が上位ｋ位（ｋは自然数）の表記パターンを、属性値の表記パターンとして決定する。なお、ｋの値は、任意であってよく、属性ごとにｋの値が異なってもよい。
【０１０２】
制御部１１は、属性と表記パターンの組み合わせごとに、属性値候補の出現頻度を集計する（Ｓ４３）。Ｓ４３においては、制御部１１は、各属性値候補の出現数をカウントして出現頻度として取得する。制御部１１は、属性、表記パターン、及び属性値候補の組み合わせごとに、出現頻度を取得する。
【０１０３】
制御部１１は、Ｓ４３で集計した出現頻度に基づいて、属性値候補の中から属性値を決定する（Ｓ４４）。Ｓ４４においては、制御部１１は、Ｓ４３における集計結果に基づいて、出現頻度が上位ｎ位（ｎは自然数）の属性値候補を、属性値として決定する。なお、ｎの値は、任意であってよく、属性ごとにｎの値が異なってもよい。
【０１０４】
図６に戻り、制御部１１は、Ｓ４の属性値多様化処理に基づいて、教師データ生成処理を実行する（Ｓ５）。教師データ生成処理は、教師データＤＴの初期データを生成する処理である。Ｓ５においては、制御部１１は、Ｓ３で統合した属性と、Ｓ４で決定した属性値と、の組み合わせを教師データＤＴの初期データとして取得する。
【０１０５】
制御部１１は、Ｓ５で生成した教師データＤＴの初期データに基づいて、学習器Ｌを学習させる（Ｓ６）。Ｓ６においては、制御部１１は、教師データＤＴに示された属性値の特徴ベクトルを計算し、当該特徴ベクトルとの類似度を示す蓋然性を計算するように、学習器Ｌ内のアルゴリズムの係数を調整する。また、制御部１１は、蓋然性が閾値以上の記号情報に対して属性を付与するように、学習器Ｌ内のアルゴリズムを設定する。
【０１０６】
制御部１１は、Ｓ６で学習させた学習器Ｌに基づいて、ウェブページのタグ付け処理を実行する（Ｓ７）。タグ付け処理は、ウェブページ内の記号情報に対して属性を付与する処理である。Ｓ７においては、制御部１１は、ウェブページデータベースＤＢに格納されたウェブページを学習器Ｌに入力し、ウェブページに含まれる記号情報の中で属性が付与された記号情報を特定する。学習器Ｌは、ウェブページ内の宿泊施設の紹介文等を構成する記号情報に対し、蓋然性が閾値以上の属性をラベルとして付与する。
【０１０７】
制御部１１は、所定の条件に基づいて、クリーニング処理を実行する（Ｓ８）。Ｓ８のクリーニング処理は、Ｓ７のタグ付け処理において、属性値ではない記号情報に付与された属性（ラベル）を除去する処理である。
【０１０８】
図８は、Ｓ８において実行されるクリーニング処理の一例を示す図である。図８に示すように、制御部１１は、処理対象の記号情報が１字の特定の記号であるか否かを判定する（Ｓ８０）。処理対象の記号情報は、Ｓ７のタグ付け処理によって、学習器Ｌが属性を付与した記号情報の何れかである。
【０１０９】
Ｓ８０においては、制御部１１は、処理対象の記号情報が「＊」や「；」といった１字の特定の記号であるか否かを判定する。「＊」や「；」といった記号は、明らかに属性値ではないため、属性が除去される。なお、特定の記号は、これらに限られず、予め定められた種類の記号であればよい。例えば、「：」や「＝」といった記号が特定の記号に相当してもよい。
【０１１０】
処理対象の記号情報が１字の特定の記号であると判定された場合（Ｓ８０；Ｙ）、制御部１１は、処理対象の記号情報から属性を除去し（Ｓ８１）、後述するＳ８７の処理に移行する。Ｓ８１においては、制御部１１は、学習器Ｌが付与した属性を処理対象の記号情報から除去する。別の言い方をすれば、制御部１１は、処理対象の記号情報に属性が付与された状態から、処理対象の記号情報に属性が付与されない状態に変化させる。
【０１１１】
一方、処理対象の記号情報が１字の特定の記号であると判定されない場合（Ｓ８０；Ｎ）、制御部１１は、処理対象の記号情報が所定のタグであるか否かを判定する（Ｓ８２）。Ｓ８２においては、制御部１１は、処理対象の記号情報がマークアップ言語におけるＴＡＢＬＥタグ等の所定のタグであるか否かを判定する。このような記号は、ウェブページの内容を示すのではなく、単なるタグを示すものであり、明らかに処理対象の記号情報ではないため、属性が除去される。
【０１１２】
処理対象の記号情報が所定のタグであると判定された場合（Ｓ８２；Ｙ）、Ｓ８１の処理に移行し、制御部１１は、当該処理対象の記号情報から属性を除去する。
【０１１３】
一方、処理対象の記号情報が所定のタグであると判定されない場合（Ｓ８２；Ｎ）、制御部１１は、処理対象の記号情報の出現頻度が閾値以上であるか否かを判定する（Ｓ８３）。Ｓ８３においては、制御部１１は、処理対象の記号情報が抽出された数をカウントし、出現頻度として取得する。なお、閾値は、予め定められた値であればよく、任意の値を設定可能である。例えば、出現頻度の上位８０％程度となるような閾値が設定されてもよい。出現頻度が閾値未満である記号情報は、ウェブページではあまり用いられない情報なので、属性が除去される。
【０１１４】
処理対象の記号情報の出現頻度が閾値以上であると判定されない場合（Ｓ８３；Ｎ）、Ｓ８１の処理に移行し、制御部１１は、当該処理対象の記号情報から属性を除去する。
【０１１５】
一方、処理対象の記号情報の出現頻度が閾値以上であると判定された場合（Ｓ８３；Ｙ）、制御部１１は、学習器Ｌが計算した処理対象の記号情報の蓋然性が閾値以上であるか否かを判定する（Ｓ８４）。Ｓ８４においては、制御部１１は、学習器Ｌが属性を付与する過程で計算した蓋然性を参照し、閾値以上であるか否かを判定する。なお、閾値は、予め定められた値であればよく、任意の値を設定可能である。例えば、蓋然性がパーセンテージで表現される場合に、７０％程度の閾値が設定されてもよい。蓋然性が閾値未満である記号情報は、付与された属性の確度が低いので、属性が除去される。
【０１１６】
蓋然性が閾値以上であると判定されない場合（Ｓ８４；Ｎ）、Ｓ８１の処理に移行し、制御部１１は、当該処理対象の記号情報から属性を除去する。
【０１１７】
一方、蓋然性が閾値以上であると判定された場合（Ｓ８４；Ｙ）、制御部１１は、処理対象の記号情報の字数が閾値未満であるか否かを判定する（Ｓ８５）。Ｓ８５においては、制御部１１は、処理対象の記号情報が長文であるか否かを判定する。なお、閾値は、予め定められた値であればよく、任意の値を設定可能である。例えば、３０字程度の閾値が設定されていてもよい。あまりに長文の記号情報は、属性値ではないので、属性が除去される。
【０１１８】
字数が閾値未満であると判定されない場合（Ｓ８５；Ｎ）、Ｓ８１の処理に移行し、制御部１１は、当該処理対象の記号情報から属性を除去する。
【０１１９】
一方、字数が閾値未満であると判定された場合（Ｓ８５；Ｙ）、制御部１１は、処理対象の記号情報が所定字数未満のアルファベットであるか否かを判定する（Ｓ８６）。Ｓ８６においては、制御部１１は、処理対象の記号情報の字数が所定字数未満であるか否かの判定と、処理対象の記号情報の文字タイプがアルファベットであるか否かの判定と、を実行する。なお、所定字数は、予め定められた値であればよく、任意の値を設定可能である。例えば、３字程度の字数が設定されていてもよい。３字未満のアルファベットは、属性値ではないので、属性が除去される。
【０１２０】
所定字数未満のアルファベットであると判定された場合（Ｓ８６；Ｙ）、Ｓ８１の処理に移行し、制御部１１は、当該処理対象の記号情報から属性を除去する。
【０１２１】
一方、所定字数未満のアルファベットであると判定されない場合（Ｓ８６；Ｎ）、処理対象の記号情報は、属性が除去されることなく属性値となり、後述するＳ９の処理によって教師データＤＴに追加され、後述するＳ１１の処理によってウェブページデータベースＤＢに格納されてウェブページのインデックスとして利用される。制御部１１は、全ての処理対象の記号情報の判定を終えたか否かを判定する（Ｓ８７）。
【０１２２】
判定をしていない処理対象の記号情報が存在する場合（Ｓ８７；Ｎ）、Ｓ８０の処理に戻り、次の処理対象の記号情報について判定が行われる。
【０１２３】
一方、全ての属性値候補の判定を終えたと判定された場合（Ｓ８７；Ｙ）図６に戻り、制御部１１は、クリーニング後の属性値候補に基づいて、教師データＤＴを拡張する（Ｓ９）。Ｓ９においては、制御部１１は、Ｓ８のクリーニング処理によって属性が除去されなかった記号情報を、新たな属性値として教師データＤＴに追加する。
【０１２４】
制御部１１は、Ｓ９において拡張された教師データＤＴに基づいて、学習器Ｌを追加学習させる（Ｓ１０）。Ｓ１０の処理内容は、Ｓ６と同様であるが、Ｓ６では、教師データＤＴの初期データによって学習が実行されるのに対し、Ｓ１０では、Ｓ９で拡張された教師データＤＴによって学習が実行される。
【０１２５】
制御部１１は、全てのウェブページのタグ付け処理が完了したかを判定する（Ｓ１１）。Ｓ１１においては、制御部１１は、ウェブページデータベースＤＢに格納された全てのウェブページに対し、Ｓ７のタグ付け処理を実行したか否かを判定する。
【０１２６】
タグ付け処理が完了していないウェブページが存在する場合（Ｓ１１；Ｎ）、Ｓ７の処理に戻り、次のウェブページに対してタグ付け処理が実行される。
【０１２７】
一方、全てのウェブページのタグ付け処理が完了した場合（Ｓ１０；Ｙ）、制御部１１は、ウェブページＩＤに関連付けて、属性と属性値の組み合わせをウェブページデータベースＤＢに格納し（Ｓ１１）、本処理は終了する。ウェブページデータベースＤＢに格納された属性と属性値の組み合わせは、ウェブページのインデックスとして利用される。
【０１２８】
以上説明した学習システムＳによれば、学習器Ｌにより分類された記号情報を属性値候補として取得し、属性値候補が示す記号又は記号列が所定の条件を満たすか否かの判定結果に基づいて、属性値候補を用いた学習器Ｌの追加学習を制御することで、本来は属性値ではない記号情報に基づいて学習が行われるといったことを防止し、半教師あり学習における学習器Ｌの精度を高めることができる。先述したように、学習が繰り返し行われる半教師あり学習では、精度の低下が更なる精度の低下を招くので、属性値の誤検出による学習器Ｌの精度低下を引き起こしやすいが、属性値の抽出精度を向上させて教師データＤＴの精度を高めることで、このような精度低下を防止し、学習器Ｌの精度を高めることができる。また、教師データＤＴの初期データの属性値が少なかったとしても、精度の高い教師データＤＴに拡張することができるので、初期データを準備する手間を効果的に省くことができる。
【０１２９】
また、判定部１０４の判定結果が所定の結果ではない属性値候補が新たな属性値として教師データＤＴに追加されることを制限し、当該属性値候補を用いた学習器Ｌの追加学習が行われることを制限することで、本来は属性値ではない誤った情報が教師データＤＴに追加されることを防止し、学習器Ｌの精度を効果的に高めることができる。即ち、精度の低下が更なる精度の低下を招くといったことを、より効果的に防止することができる。
【０１３０】
また、属性値候補が示す記号又は記号列が所定字数未満であるか否かの判定結果に基づいて、属性値候補を用いた学習器Ｌの追加学習を制御することで、本来は属性値ではない所定字数未満の記号情報に基づいて学習が行われたり、本来は属性値ではない所定字数以上の記号情報に基づいて学習が行われたりすることを防止し、半教師あり学習における学習器Ｌの精度を効果的に高めることができる。
【０１３１】
また、属性値候補が示す記号又は記号列が特定種類の記号又は記号列であるか否かの判定結果に基づいて、属性値候補を用いた学習器Ｌの追加学習を制御することで、本来は属性値ではない特定種類の記号又は記号列の記号情報に基づいて学習が行われることを防止し、半教師あり学習における学習器Ｌの精度を効果的に高めることができる。
【０１３２】
また、属性値候補が示す記号又は記号列がタグ部分であるか否かの判定結果に基づいて、属性値候補を用いた学習器Ｌの追加学習を制御することで、本来は属性値ではないタグ部分の記号情報に基づいて学習が行われることを防止し、半教師あり学習における学習器Ｌの精度を効果的に高めることができる。
【０１３３】
また、属性値候補の出現頻度に基づいて属性値候補を用いた学習器Ｌの追加学習を制御し、各属性の特徴がより表れた属性値に基づいて追加学習を行うことで、半教師あり学習における学習器Ｌの精度を効果的に高めることができる。
【０１３４】
また、学習器Ｌが計算した属性値候補の蓋然性に基づいて属性値候補を用いた学習器Ｌの追加学習を制御し、各属性の特徴が良く表れた属性値に基づいて追加学習を行うことで、半教師あり学習における学習器Ｌの精度を効果的に高めることができる。
【０１３５】
また、ウェブページの構造化部分のうち、所定の表記パターンで記述された記号情報を属性値として抽出し、教師データＤＴの初期データを生成することで、初期データの生成処理を自動化し、初期データを生成する手間を省くことができる。また、構造化部分は、どの部分に属性と属性値が記述されているか予め特定できるので、初期データの精度を高めることができる。表記パターンに偏りがあると、ある特定パターンの属性値しか抽出できないが、表記パターンにバリエーションを持たせることで、属性値のカバー率を高めることができる。
【０１３６】
また、複数の表記パターンの各々の出現頻度を取得し、所定頻度以上で出現した表記パターンで記述された記号情報を属性値として抽出して初期データを生成することで、各属性の特徴がより表れた属性値を初期データに含めることができ、初期データの精度を高めることができる。高頻度の表記パターンの属性値を抽出することで、属性値のカバー率を効果的に高めることができる。
【０１３７】
［５．変形例］
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【０１３８】
（１）例えば、半教師あり学習では、種々の観点で属性値を抽出した方が、より多くの属性値を追加することができるので、教師データＤＴを拡張しやすい。このため、互いに異なる観点を持つ複数の学習器Ｌを利用して教師データＤＴを拡張してもよい。なお、観点とは、学習器Ｌ内のアルゴリズムである。観点が異なると、学習器Ｌ内のアルゴリズムの係数が異なる。互いに異なる教師データで学習をさせると、互いに観点が異なる学習器Ｌを用意することができる。
【０１３９】
図９−図１０は、変形例の処理の説明図である。図９に示すように、まず、生成部１０１は、教師データＤＴの初期データを生成する（Ｓ１００）。学習部１０２は、教師データＤＴの初期データに基づいて、第１の学習器Ｌ１を学習させる（Ｓ１０１）。初期データの生成方法と、初期データに基づく学習方法とは、実施形態で説明した通りである。
【０１４０】
取得部１０３は、複数のウェブページの各々を第１の学習器Ｌ１に入力し、第１の学習器Ｌ１により属性が付与された記号情報を第１の属性値候補として取得する（Ｓ１０２）。属性値候補の取得方法は、実施形態で説明した通りである。なお、属性値候補が取得された際にクリーニングが実行されてもよいが、本変形例では、Ｓ１０２の段階では、クリーニングが実行されないものとする。
【０１４１】
学習部１０２は、第１の属性値候補に基づいて、第２の学習器Ｌ２を学習させる（Ｓ１０３）。Ｓ１０３においては、学習部１０２は、教師データＤＴの初期データと第１の属性値候補とに基づいて（即ち、教師データＤＴの初期データに第１の属性値候補を追加したデータを、新たな教師データとして）、第２の学習器Ｌ２を学習させてもよいし、第１の属性値候補だけに基づいて（即ち、第１の属性値候補だけを教師データとして）、第２の学習器Ｌ２を学習させてもよい。第１の学習器Ｌ１とは異なる観点となるように、第２の学習器Ｌ２が学習されるようにすればよい。なお、学習方法自体は、実施形態で説明した通りである。
【０１４２】
取得部１０３は、複数のウェブページの各々を第２の学習器Ｌ２に入力し、第２の学習器Ｌ２により属性が付与された記号情報を第２の属性値候補として取得する（Ｓ１０４）。属性値候補の取得方法自体は、実施形態で説明した通りである。なお、第２の学習器Ｌ２に入力されるウェブページは、第１の学習器Ｌ１に入力されるウェブページと同じであってもよいし、異なっていてもよい。例えば、取得部１０３は、第１の学習器Ｌ１に入力される複数のウェブページとは異なる複数のウェブページの各々を第２の学習器Ｌ２に入力してもよい。別の言い方をすれば、取得部１０３は、第１の学習器Ｌ１には入力されなかった複数のウェブページを第２の学習器Ｌ２に入力する。このように、第１の学習器Ｌ１に入力されたウェブページとは異なるウェブページが第２の学習器Ｌ２に入力された方が、より多くの属性値候補を抽出できる。
【０１４３】
判定部１０４は、第１の属性値候補と第２の属性値候補との各々が示す記号又は記号列が所定の条件を満たすか否かを判定し、追加学習制御部１０５は、判定部１０４の判定結果に基づいて、第１の属性値候補と第２の属性値候補との各々を用いた追加学習を制御する（Ｓ１０５）。判定部１０４の判定方法自体は、実施形態で説明した通りである。第１の属性値候補と第２の属性値候補の両方が判定対象となる。追加学習制御部１０５は、第１の属性値候補と第２の属性値候補のうち、属性値ではないと判定された属性値候補から属性を除去し、教師データＤＴに新たな属性値として追加しないようにする。これにより、１つの学習器だけを利用した場合よりも、教師データＤＴを拡張しやすくなる。
【０１４４】
学習部１０２、取得部１０３、判定部１０４、及び追加学習制御部１０５は、以上説明した処理を１サイクルとし、繰り返し処理を実行することによって、教師データＤＴを拡張する。図１０に示すように、１サイクル目が終了すると、２サイクル目の処理が実行される。
【０１４５】
図１０に示すように、２サイクル目では、１サイクル目で拡張した教師データＤＴが初期データとして取得され、Ｓ１００〜Ｓ１０５と同様の処理が実行される（Ｓ２００〜Ｓ２０５）。Ｓ２０５における教師データＤＴが示すように、１サイクル目の教師データＤＴよりも拡張された状態となる。なお、２サイクル目で利用されるウェブページは、１サイクル目と同じであってもよいし、異なっていてもよい。１サイクル目に入力されたウェブページとは異なるウェブページが２サイクル目で利用された方が、より多くの属性値候補を抽出できる。
【０１４６】
変形例（１）によれば、互いに異なる観点の学習器Ｌを利用して、より多くの属性値候補を抽出し、学習器Ｌの精度を効果的に向上させることができる。
【０１４７】
また、第１の学習器Ｌ１に入力されたウェブページとは異なるウェブページを第２の学習器Ｌ２に入力させる場合、より多くの属性値候補を抽出することができる。
【０１４８】
（２）また例えば、実施形態では、図６のＳ４において属性値多様化処理が実行され、より多くの表記パターンの属性値を抽出する場合を説明した。学習システムＳは、実施形態で説明したＳ８のクリーニング処理を実行せず、属性値ではない属性値候補から属性を除去する構成を特に有することなく、属性値多様化処理を実行してもよい。即ち、判定部１０４の処理と、追加学習制御部１０５の処理と、を省略し、属性値多様化処理が実行されてもよい。
【０１４９】
（３）また例えば、学習システムＳは、実施形態で説明したＳ８のクリーニング処理を実行せず、属性値ではない属性値候補から属性を除去する構成を特に有することなく、変形例（１）のように、互いに異なる観点の学習器Ｌを利用して、より多くの属性値候補を抽出してもよい。即ち、判定部１０４の処理と、追加学習制御部１０５の処理と、を省略し、複数の学習器Ｌを利用して教師データＤＴが拡張されてもよい。
【０１５０】
（４）また例えば、実施形態では、ウェブページのテーブルの１列目に属性が格納され、２列目に属性値が格納される場合を説明したが、属性と属性値の各々の格納場所は、これらに限られない。属性と属性値の各々は、構造化部分の中の予め定められた場所に格納されていればよく、例えば、テーブルの２列名に属性が格納され、１列目に属性値が格納されていてもよい。他にも例えば、テーブルの所定の行に属性が格納され、他の行に属性値が格納されていてもよい。
【０１５１】
また例えば、実施形態では、生成部１０１が教師データＤＴの初期データを生成する場合を説明したが、初期データは、学習システムＳの管理者によって手動で生成されてもよい。また例えば、実施形態では、ウェブページを利用して初期データが生成される場合を説明したが、検索履歴等の他の情報を利用して初期データが生成されてもよい。検索履歴が利用される場合には、ユーザが入力した検索条件が属性値として初期データに格納されるようにしてもよい。
【０１５２】
また例えば、実施形態では、宿泊施設のウェブページを例に挙げたが、ウェブページは、種々のタイプのウェブページであってよく、例えば、電子商取引、アプリケーション配信、音楽配信、保険サービス、又は金融サービスといったウェブページから属性と属性値の組み合わせが抽出されてもよい。また例えば、文書の一例としてウェブページを説明したが、文書は、種々のタイプの文書を適用可能である。例えば、文書は、法律文書、技術文書、会議資料、カタログ、又は電子書籍といった文書であってもよい。
【０１５３】
また例えば、文書から抽出した属性と属性値が検索に利用される場合を説明したが、属性と属性値は、他の目的で使用されてもよい。例えば、文書の要約を作成する目的で使用されてもよい。
【０１５４】
また例えば、テーブル形式の説明から属性と属性値の組み合わせが抽出されて教師データＤＴの初期データが生成される場合を説明したが、半構造化テキスト形式の説明から属性と属性値の組み合わせが抽出されて教師データＤＴの初期データが生成されてもよい。また例えば、同意の属性を統合する処理は必須でなく、表記の異なる文字列を互いに異なる属性としてもよい。
【０１５５】
また例えば、各機能がサーバ１０で実現される場合を説明したが、複数のコンピュータによって機能が分担されてもよい。例えば、サーバ１０とユーザ端末２０とで機能が分担されてもよいし、複数のサーバコンピュータで機能が分担されてもよい。この場合、ネットワークを介して処理結果が送受信されることで、機能が分担されるようにすればよい。また例えば、データ記憶部１００に記憶されるものとして説明したデータは、サーバ１０以外のコンピュータに記憶されていてもよい。
【要約】
半教師あり学習において学習器の精度を高める。学習システム（Ｓ）の学習手段（１０３）は、複数の属性の各々の属性値を示す教師データに基づいて、複数の文書の各々に含まれる記号情報を分類する学習器を学習させる。取得手段（１０２）は、複数の文書の各々を学習器に入力し、学習器により分類された記号情報を属性値候補として取得する。判定手段（１０４）は、属性値候補が示す記号又は記号列が所定の条件を満たすか否かを判定する。追加学習制御手段（１０５）は、判定手段（１０４）の判定結果に基づいて、属性値候補を用いた学習器の追加学習を制御する。【図１】
0006577692.tif 000002
【図２】
0006577692.tif 000003
【図３】
0006577692.tif 000004
【図４】
0006577692.tif 000005
【図５】
0006577692.tif 000006
【図６】
0006577692.tif 000007
【図７】
0006577692.tif 000008
【図８】
0006577692.tif 000009
【図９】
0006577692.tif 000010
【図１０】
0006577692.tif 000011