(57)【要約】【課題】データのリアルタイム性と完全性とを両立して、ネットワーク上のデータを効率よく収集すること。【解決手段】データ収集装置１００は、検索条件を記憶する検索条件記憶部１１０と、ネットワーク上のデータベース（ＤＢ）サーバを、検索条件に基づいて全検索を実行する長周期検索部１２０と、ＤＢサーバを、検索条件に基づいて、高頻度に最新のデータを優先する検索を実行する短周期検索部１３０と、検索結果と、検索結果を取得した検索部および取得した時間とを記憶する検索付随情報記憶部１４１と、重複を排除して検索結果を記憶する検索結果記憶部１４２と、検索付随情報記憶部１４１をデータに基づいて、短周期検索部１３０の検索周期を決定する短周期調整部１５０と、検索付随情報記憶部１４１のデータに基づいて、長周期検索部１２０の検索周期を調整する長周期調整部１６０と、を備える。【選択図】図１
2015026103.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上のデータを収集するデータ収集装置であって、
ユーザにより設定された検索条件を記憶する検索条件記憶手段と、
前記ネットワーク上のデータベースサーバを、前記検索条件に基づいて、全検索を実行する長周期検索手段と、
前記データベースサーバを、前記検索条件に基づいて、前記長周期検索手段より高頻度に、最新のデータを優先する検索を実行する短周期検索手段と、
前記長周期検索手段および前記短周期検索手段で取得された検索結果に、当該検索結果を取得した検索手段と当該検索結果が取得された時間とを対応付けて記憶する検索付随情報記憶手段と、
前記長周期検索手段および前記短周期検索手段で取得された検索結果を、重複を排除して記憶する検索結果記憶手段と、
前記検索付随情報記憶手段を参照し、前記長周期検索手段で単位時間当たりに取得する検索結果の件数として求められる、前記データベースサーバにおいて前記検索条件に一致するデータの単位時間当たりの平均増加数と、前記短周期検索手段で単位時間当たりに取得した検索結果数とに基づいて、当該短周期検索手段が行う検索の周期を決定する短周期調整手段と、
前記検索付随情報記憶手段を参照し、前記短周期検索手段で取得された検索結果に対する、前記長周期検索手段で取得された検索結果の重複度合に基づいて、前記長周期検索手段が実行する検索の周期を調整する長周期調整手段と、
を備えるデータ収集装置。
【請求項２】
前記長周期調整手段が、前記検索付随情報記憶手段を参照し、前記長周期検索手段において、前後の検索により取得された検索結果の重複度合に基づいて、前記長周期検索手段が実行する検索の周期を調整する請求項１に記載のデータ収集装置。
【請求項３】
前記短周期調整手段が、前記検索付随情報記憶手段を参照し、前記長周期検索手段で取得された検索結果に対する、前記短周期検索手段で取得された検索結果の重複度合に基づいて、前記短周期検索手段が実行する検索の周期を調整する請求項１または請求項２に記載のデータ収集装置。
【請求項４】
前記短周期調整手段が、前記検索付随情報記憶手段を参照し、前記短周期検索手段において、前後の検索により取得された検索結果の重複度合に基づいて、前記短周期検索手段が実行する検索の周期を調整する請求項１から請求項３のいずれかに記載のデータ収集装置。
【請求項５】
前記検索条件記憶手段が、前記検索条件を複数記憶している際に、
前記検索付随情報記憶手段を参照し、前記検索条件記憶手段に記憶されている各検索条件の検索結果の取得率と取得量とに基づいて、当該各検索条件へのリソースの配分割合を決定するリソース配分決定手段と、
前記短周期検索手段および前記長周期検索手段における、前記各検索条件の検索を実行するプロセスに、前記各検索条件へのリソースの配分割合に基づいてリソースを割り当てるリソース制御手段と、を備える請求項１から請求項４のいずれかに記載のデータ収集装置。
【請求項６】
前記短周期検索手段が、前記長周期検索手段による検索が実行開始された以降に前記データベースサーバに蓄積されたデータを検索対象とすることを特徴とする請求項１から請求項５のいずれかに記載のデータ収集装置。
【請求項７】
前記ユーザから検索条件を受け付けたことに応じて、前記ネットワーク上のデータベースサーバに対し、当該受け付けた検索条件に基づいて検索を行うオンデマンド検索手段を備え、
前記検索結果記憶手段が、前記オンデマンド検索手段で取得された検索結果を、重複を排除して記憶することを特徴とする請求項１から請求項６のいずれかに記載のデータ収集装置。
【請求項８】
ユーザにより設定された検索条件を記憶する検索条件記憶手段、長周期検索手段、短周期検索手段、検索付随情報記憶手段、検索結果記憶手段、短周期調整手段、および長周期調整手段を備えるデータ収集装置におけるデータ収集方法であって、
前記長周期検索手段が、ネットワーク上のデータベースサーバを、前記検索条件に基づいて、全検索を実行する第１のステップと、
前記短周期検索手段が、前記ネットワーク上のデータベースサーバを、前記検索条件に基づいて、前記長周期検索手段より高頻度に、最新のデータを優先する検索を実行する第２のステップと、
前記検索付随情報記憶手段が、前記第１のステップおよび前記第２のステップで取得された検索結果に、当該検索結果を取得した検索手段と当該検索結果が取得された時間とを対応付けて記憶する第３のステップと、
前記検索結果記憶手段が、前記第１のステップおよび前記第２のステップで取得された検索結果を、重複を排除して記憶する第４のステップと、
前記短周期調整手段が、前記検索付随情報記憶手段を参照し、前記長周期検索手段で単位時間当たりに取得する検索結果の件数として求められる、前記データベースサーバにおいて前記検索条件に一致するデータの単位時間当たりの平均増加数と、前記短周期検索手段で単位時間当たりに取得した検索結果数とに基づいて、当該短周期検索手段が実行する検索の周期を決定する第５のステップと、
前記長周期調整手段が、前記検索付随情報記憶手段を参照し、前記短周期検索手段で取得された検索結果に対する、前記長周期検索手段で取得された検索結果の重複度合に基づいて、前記長周期検索手段が実行する検索の周期を調整する第６のステップと、
を含むデータ収集方法。
【請求項９】
ユーザにより設定された検索条件を記憶する検索条件記憶手段、長周期検索手段、短周期検索手段、検索付随情報記憶手段、検索結果記憶手段、短周期調整手段、および長周期調整手段を備えるデータ収集装置におけるデータ収集方法をコンピュータに実行させるためのプログラムであって、
前記長周期検索手段が、ネットワーク上のデータベースサーバを、前記検索条件に基づいて、全検索を実行する第１のステップと、
前記短周期検索手段が、前記ネットワーク上のデータベースサーバを、前記検索条件に基づいて、前記長周期検索手段より高頻度に、最新のデータを優先する検索を実行する第２のステップと、
前記検索付随情報記憶手段が、前記第１のステップおよび前記第２のステップで取得された検索結果に、当該検索結果を取得した検索手段と当該検索結果が取得された時間とを対応付けて記憶する第３のステップと、
前記検索結果記憶手段が、前記第１のステップおよび前記第２のステップで取得された検索結果を、重複を排除して記憶する第４のステップと、
前記短周期調整手段が、前記検索付随情報記憶手段を参照し、前記長周期検索手段で単位時間当たりに取得する検索結果の件数として求められる、前記データベースサーバにおいて前記検索条件に一致するデータの単位時間当たりの平均増加数と、前記短周期検索手段で単位時間当たりに取得した検索結果数とに基づいて、当該短周期検索手段が実行する検索の周期を決定する第５のステップと、
前記長周期調整手段が、前記検索付随情報記憶手段を参照し、前記短周期検索手段で取得された検索結果に対する、前記長周期検索手段で取得された検索結果の重複度合に基づいて、前記長周期検索手段が実行する検索の周期を調整する第６のステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上のデータを効率よく収集するデータ収集装置、データ収集方法、およびプログラムに関する。
【背景技術】
【０００２】
ネットワーク上に存在するＳＮＳ（ｓｏｃｉａｌ  ｎｅｔｗｏｒｋｉｎｇ  ｓｅｒｖｉｃｅ）や掲示板等のデータをマーケティング等に利用しようとした場合、システム内に一度データを蓄積し、蓄積したデータに対し検索等を行う必要がある。なぜなら、ネットワーク上の情報は永続性が保証されていないため、ＳＮＳや掲示板等において、古いデータは削除されていってしまうからである。
【０００３】
そこで、データをＳＮＳや掲示板等から収集し蓄積する方法として先ず考えられるのは、ＳＮＳや掲示板等上の全データを収集し、検索用ＤＢ（ＤａｔａＢａｓｅ）に蓄積することである。例えば、非特許文献１に示されるＴｗｉｔｔｅｒ等のサービスは、これらの要望に応えるため、ＳＮＳや掲示板等から収集し蓄積するシステム側に、サーバ側がリアルタイムでデータ配信を行うＳｔｒｅａｍＡＰＩを提供している。さらに、データをＳＮＳや掲示板等から収集し蓄積するシステムの検索用ＤＢが、ＳＮＳや掲示板等のサーバと間でデータベース間連携が可能であれば、非特許文献２に示されるような既存のレプリケーション技術を用いて、全データを高速にコピーすることが可能である。
【０００４】
上述したＳｔｒｅａｍＡＰＩは、ＳＮＳや掲示板等のデータが更新されたこと、すなわち、ユーザから新しい書き込みがあったことに応じて即座にデータを送信することにより、完全なデータをリアルタイムにシステム側に送信することが可能であった。しかしながら、多くのサービスは商業上・パフォーマンス上の見地からこれらの全データのコピーは許可しておらず、また、ＳＮＳや掲示板等からデータを収集し蓄積するシステムにとっても、ユーザが使用しない大量のデータを保持することになり、膨大なコストが発生するという問題点があった。
【０００５】
そのため、特許文献１や特許文献２に示すように、キーワードを指定することでユーザが必要とするデータのみを収集するといった方法が提案されている。特許文献１では、該当するキーワードを持ったページのリンクを巡回しデータを収集する技術が、特許文献２では助詞に着目することで日本語のデータのみを効率よく収集する技術が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−３４６５９８号公報
【特許文献２】特開２０１２−０３２９０３号公報
【非特許文献】
【０００７】
【非特許文献１】Ｔｗｉｔｔｅｒ、［２０１３年５月１５日検索  インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｔｗｉｔｔｅｒ．ｃｏｍ／＞］
【非特許文献２】三島健，中村宏，“ｅａｇｅｒ  レプリケーションミドルウェアの並行制御方法”，電子情報通信学会論文誌分冊Ｄ，Ｖｏｌ．Ｊ９３−Ｄ，Ｎｏ．３，ｐｐ．２３２−２４０，２０１０
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１や特許文献２に示す方法では、未取得のデータがないように時間をかけてデータを全検索するが、ＳＮＳ・掲示板等はユーザの書き込みにより新しいデータが逐次発生するため、検索開始後に発生したデータを取得することはできなかった。そのため、特許文献１や特許文献２に示す方法では、データのリアルタイム性と完全性とを両立することができないといった問題点があった。
【０００９】
そこで本発明は、上記課題に鑑みて、データのリアルタイム性と完全性とを両立して、ネットワーク上のデータを効率よく収集するデータ収集装置、およびデータ収集方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
【００１１】
（１）  本発明は、ネットワーク上のデータを収集するデータ収集装置であって、ユーザにより設定された検索条件を記憶する検索条件記憶手段（例えば、図１の検索条件記憶部１１０）と、前記ネットワーク上のデータサーバを、前記検索条件に基づいて、全検索を実行する長周期検索手段（例えば、図１の長周期検索部１２０）と、前記ネットワーク上のデータサーバを、前記検索条件に基づいて、前記長周期検索手段より高頻度に、最新のデータを優先する検索を実行する短周期検索手段（例えば、図１の短周期検索部１３０）と、前記長周期検索手段および前記短周期検索手段で取得された検索結果に、当該検索結果を取得した検索手段と当該検索結果が取得された時間とを対応付けて記憶する検索付随情報記憶手段（例えば、図１の検索付随情報記憶部１４１）と、前記長周期検索手段および前記短周期検索手段で取得された検索結果を、重複を排除して記憶する検索結果記憶手段（例えば、図１の検索結果記憶部１４２）と、前記検索付随情報記憶手段を参照し、前記長周期検索手段で単位時間当たりに取得する検索結果の件数として求められる、前記データベースサーバにおいて前記検索条件に一致するデータの単位時間当たりの平均増加数と、前記短周期検索手段で単位時間当たりに取得した検索結果数とに基づいて、当該短周期検索手段が行う検索の周期を決定する短周期調整手段（例えば、図１の短周期調整部１５０）と、前記検索付随情報記憶手段を参照し、前記短周期検索手段で取得された検索結果に対する、前記長周期検索手段で取得された検索結果の重複度合に基づいて、前記長周期検索手段が実行する検索の周期を調整する長周期調整手段（例えば、図１の長周期調整部１６０）と、を備えるデータ収集装置を提案している。
【００１２】
（２）  本発明は、（１）のデータ収集装置について、前記長周期調整手段が、前記検索付随情報記憶手段を参照し、前記長周期検索手段において、前後の検索により取得された検索結果の重複度合に基づいて、前記長周期検索手段が実行する検索の周期を調整するデータ収集装置を提案している。
【００１３】
（３）  本発明は、（１）または（２）のデータ収集装置について、前記短周期調整手段が、前記検索付随情報記憶手段を参照し、前記長周期検索手段で取得された検索結果に対する、前記短周期検索手段で取得された検索結果の重複度合に基づいて、前記短周期検索手段が実行する検索の周期を調整するデータ収集装置を提案している。
【００１４】
（４）  本発明は、（１）から（３）のデータ収集装置について、前記短周期調整手段が、前記検索付随情報記憶手段を参照し、前記短周期検索手段において、前後の検索により取得された検索結果の重複度合に基づいて、前記短周期検索手段が実行する検索の周期を調整するデータ収集装置を提案している。
【００１５】
（５）  本発明は、（１）から（４）のデータ収集装置について、前記検索条件記憶手段が、前記検索条件を複数記憶している際に、前記検索付随情報記憶手段を参照し、前記検索条件記憶手段に記憶されている各検索条件の検索結果の取得率と取得量とに基づいて、当該各検索条件へのリソースの配分割合を決定するリソース配分決定手段（例えば、図３のリソース配分決定部１８０）と、前記短周期検索手段および前記長周期検索手段における、前記各検索条件の検索を実行するプロセスに、前記各検索条件へのリソースの配分割合に基づいてリソースを割り当てるリソース制御手段（例えば、図３のリソース制御部１９０）と、を備えるデータ収集装置を提案している。
【００１６】
（６）  本発明は、（１）から（５）のデータ収集装置について、前記短周期検索手段が、前記長周期検索手段による検索が実行開始された以降に前記データベースサーバに蓄積されたデータを検索対象とすることを特徴とするデータ収集装置を提案している。
【００１７】
（７）  本発明は、（１）から（６）のデータ収集装置について、前記ユーザから検索条件を受け付けたことに応じて、前記ネットワーク上のデータサーバに対し、当該受け付けた検索条件に基づいて検索を行うオンデマンド検索手段（例えば、図１のオンデマンド検索部１７０）を備え、前記検索結果記憶手段が、前記オンデマンド検索手段で取得された検索結果を、重複を排除して記憶することを特徴とするデータ収集装置を提案している。
【００１８】
（８）  本発明は、ユーザにより設定された検索条件を記憶する検索条件記憶手段、長周期検索手段、短周期検索手段、検索付随情報記憶手段、検索結果記憶手段、短周期調整手段、および長周期調整手段を備えるデータ収集装置におけるデータ収集方法であって、前記長周期検索手段が、ネットワーク上のデータベースサーバを、前記検索条件に基づいて、全検索を実行する第１のステップ（例えば、図２のステップＳ１）と、前記短周期検索手段が、前記ネットワーク上のデータベースサーバを、前記検索条件に基づいて、前記長周期検索手段より高頻度に、最新のデータを優先する検索を実行する第２のステップ（例えば、図２のステップＳ２）と、前記検索付随情報記憶手段が、前記第１のステップおよび前記第２のステップで取得された検索結果に、当該検索結果を取得した検索手段と当該検索結果が取得された時間とを対応付けて記憶する第３のステップ（例えば、図２のステップＳ３）と、前記検索結果記憶手段が、前記第１のステップおよび前記第２のステップで取得された検索結果を、重複を排除して記憶する第４のステップ（例えば、図２のステップＳ４）と、前記短周期調整手段が、前記検索付随情報記憶手段を参照し、前記長周期検索手段で単位時間当たりに取得する検索結果の件数として求められる、前記データベースサーバにおいて前記検索条件に一致するデータの単位時間当たりの平均増加数と、前記短周期検索手段で単位時間当たりに取得した検索結果数とに基づいて、当該短周期検索手段が行う検索の周期を決定する第５のステップ（例えば、図２のステップＳ６）と、前記長周期調整手段が、前記検索付随情報記憶手段を参照し、前記短周期検索手段で取得された検索結果に対する、前記長周期検索手段で取得された検索結果の重複度合に基づいて、前記長周期検索手段が実行する検索の周期を調整する第６のステップ（例えば、図２のステップＳ７）と、を含むデータ収集方法を提案している。
【００１９】
（９）  本発明は、ユーザにより設定された検索条件を記憶する検索条件記憶手段、長周期検索手段、短周期検索手段、検索付随情報記憶手段、検索結果記憶手段、短周期調整手段、および長周期調整手段を備えるデータ収集装置におけるデータ収集方法をコンピュータに実行させるためのプログラムであって、前記長周期検索手段が、ネットワーク上のデータベースサーバを、前記検索条件に基づいて、全検索を実行する第１のステップ（例えば、図２のステップＳ１）と、前記短周期検索手段が、前記ネットワーク上のデータベースサーバを、前記検索条件に基づいて、前記長周期検索手段より高頻度に、最新のデータを優先する検索を実行する第２のステップ（例えば、図２のステップＳ２）と、前記検索付随情報記憶手段が、前記第１のステップおよび前記第２のステップで取得された検索結果に、当該検索結果を取得した検索手段と当該検索結果が取得された時間とを対応付けて記憶する第３のステップ（例えば、図２のステップＳ３）と、前記検索結果記憶手段が、前記第１のステップおよび前記第２のステップで取得された検索結果を、重複を排除して記憶する第４のステップ（例えば、図２のステップＳ４）と、前記短周期調整手段が、前記検索付随情報記憶手段を参照し、前記長周期検索手段で単位時間当たりに取得する検索結果の件数として求められる、前記データベースサーバにおいて前記検索条件に一致するデータの単位時間当たりの平均増加数と、前記短周期検索手段で単位時間当たりに取得した検索結果数とに基づいて、当該短周期検索手段が行う検索の周期を決定する第５のステップ（例えば、図２のステップＳ６）と、前記長周期調整手段が、前記検索付随情報記憶手段を参照し、前記短周期検索手段で取得された検索結果に対する、前記長周期検索手段で取得された検索結果の重複度合に基づいて、前記長周期検索手段が実行する検索の周期を調整する第６のステップ（例えば、図２のステップＳ７）と、をコンピュータに実行させるためのプログラムを提案している。
【発明の効果】
【００２０】
本発明によれば、データのリアルタイム性と完全性とを両立して、ネットワーク上のデータを効率よく収集することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１の実施形態に係るデータ収集装置の構成を示す図である。
【図２】本発明の第１の実施形態に係るデータ収集装置における、データ収集処理のフローチャートを示す図である。
【図３】本発明の第２の実施形態に係るデータ収集装置の構成を示す図である。
【図４】データベースサーバにおける、ワードＡ、Ｂ、Ｃのデータ集合の一例を示す図である。
【図５】Ｔｗｉｔｔｅｒに適用した本発明のデータ収集装置の構成を示す図である。
【発明を実施するための形態】
【００２２】
以下、図面を用いて、本発明の実施形態について詳細に説明する。なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【００２３】
＜第１の実施形態＞
＜データ収集装置の構成＞
図１は、本発明の第１の実施形態に係るデータ収集装置１００の構成を示す図である。ここで、データ収集装置１００は、ネットワーク上のデータベースサーバ、例えば、ＳＮＳや掲示板等のデータを記憶しているデータベースサーバから、データを効率よく収集する装置である。図１に示すように、データ収集装置１００は、検索条件記憶部１１０、長周期検索部１２０、短周期検索部１３０、データ記憶部１４０、短周期調整部１５０、長周期調整部１６０、およびオンデマンド検索部１７０から構成される。
【００２４】
検索条件記憶部１１０は、ネットワーク上のデータベースサーバから、ユーザが収集したいデータの検索条件を記憶する。
【００２５】
長周期検索部１２０は、短周期検索部１３０の検索周期と比較して長い周期で、ネットワーク上のデータベースサーバを、検索条件記憶部１１０に記憶されている検索条件に基づいて全検索する。なお、長周期検索部１２０は、検索対象のデータ数や検索対象の期間が予め設定されている場合には、設定された検索対象のデータ数や検索対象の期間の範囲で全検索を実行する。なお、長周期検索部１２０は、最初はユーザ等によって設定された検索周期により検索を実行し、長周期調整部１６０によって検索周期が調整されると、調整された検索周期で検索を実行する。
【００２６】
ここで、本実施形態において、長周期検索部１２０は、ウェブページ中のリンクを辿り、別のウェブページを収集するという動作を繰り返すことで検索結果を得る、リンクを辿る検索方式、または、ＨＴＴＰのＧＥＴコマンドを用いてキーワードによりウェブページを検索し、キーワードに一致するウェブページを検索結果として得る、キーワード検索方式のいずれかにより検索を行う。キーワード検索方式の場合には、例えば、Ｔｗｉｔｔｅｒ（登録商標）が提供しているＡＰＩを利用することができる。
【００２７】
短周期検索部１３０は、秒単位といった短い周期で、高頻度に、ネットワーク上のデータベースサーバを、検索条件記憶部１１０に記憶されている検索条件に基づいて、最新のデータを優先する検索を実行する。短周期検索部１３０も長周期検索部１２０と同様に、リンクを辿る検索方式またはキーワード検索方式により検索を実行する。なお、短周期検索部１３０も長周期検索部１２０と同様に、最初はユーザ等によって設定された検索周期により検索を実行し、短周期調整部１５０によって検索周期が調整されると、調整された検索周期で検索を実行する。
【００２８】
短周期検索部１３０は、データベースサーバの全データを検索対象としてもよいし、長周期検索部１２０による検索が実行開始された以降にデータベースサーバに蓄積されたデータを検索対象としてもよい。長周期検索部１２０による検索が実行開始された以降にデータベースサーバに蓄積されたデータを検索対象とすると、データ収集装置１００のリソースが限られている場合に、効率的に長周期検索部１２０による検索と短周期検索部１３０による検索とが実行できる。
【００２９】
データ記憶部１４０は、検索付随情報記憶部１４１、および検索結果記憶部１４２を備える。
【００３０】
検索付随情報記憶部１４１は、長周期調整部１６０および短周期調整部１５０で周期を調整する際に用いる情報を記憶する。具体的には、検索付随情報記憶部１４１は、長周期検索部１２０および短周期検索部１３０で取得された検索結果を、検索結果を取得した検索部を特定する情報および検索結果を取得した時間と、対応付けて記憶する。検索付随情報記憶部１４１のデータは、長周期調整部１６０および短周期調整部１５０で周期が調整された後や、予め設定された間隔や、容量がオーバーした際に削除される。
【００３１】
検索結果記憶部１４２は、長周期検索部１２０および短周期検索部１３０で取得された検索結果を、重複を排除して記憶する。検索結果記憶部１４２には、例えば、入出力が高速なインメモリＤＢを用いる。検索結果記憶部１４２に記憶されているデータはリアルタイム性と完全性とが兼ね備えているので、マーケティングやビジネス計画に有効に利用することができる。
【００３２】
短周期調整部１５０は、検索付随情報記憶部１４１に記憶されている短周期検索部１３０で取得された検索結果を参照し、単位時間当たりの検索条件の出現頻度［回／ｓ］と、１回の検索で取得する平均検索結果の件数［件数／回］とを算出する。そして、短周期調整部１５０は、検索条件の単位時間当たりの出現頻度［回／ｓ］を、１回の検索で取得する平均検索結果の件数［件数／回］で割り、短周期検索部１３０で単位時間当たりに取得する検索結果の件数（以下、短周期取得件数）［件数／ｓ］を算出する。
【００３３】
また、短周期調整部１５０は、検索付随情報記憶部１４１に記憶されている長周期検索部１２０で取得された検索結果を参照し、単位時間当たりの検索条件の出現頻度［回／ｓ］と、１回の検索で取得する平均検索結果の件数［件数／回］とを算出する。そして、短周期調整部１５０は、検索条件の単位時間当たりの出現頻度［回／ｓ］を、１回の検索で取得する平均検索結果の件数［件数／回］で割り、長周期検索部１２０で単位時間当たりに取得する検索結果の件数［件数／ｓ］を算出する。このようにして算出される、長周期検索部１２０で単位時間当たりに取得する検索結果の件数は、データベースサーバにおいて、検索条件に一致するデータの単位時間当たりの平均増加件数に当たる。
【００３４】
そして、短周期調整部１５０は、短周期取得件数と平均増加件数とが、同じになるように、短周期検索部１３０の周期を調整する。具体的には、短周期取得件数が平均増加件数よりも大きい場合には、周期を短くし、一方、短周期取得件数が平均増加件数よりも小さい場合には、検索周期を長くする。それにより、短周期検索部１３０の周期を、取得された検索結果の件数から決定することにより、最適な周期にすることができる。
【００３５】
また、短周期調整部１５０は、検索付随情報記憶部１４１を参照し、長周期検索部１２０で取得された検索結果に対する、短周期検索部１３０で取得された検索結果の重複度合に基づいて、短周期検索部１３０が実行する検索周期を調整する。具体的には、短周期検索部１３０で取得された検索結果と重複しない長周期検索部１２０で取得された検索結果、すなわち、長周期検索部１２０では取得されているが、短周期検索部１３０で取得できていない検索結果がある場合には、短周期検索部１３０の検索周期を短くする。それにより、検索結果漏れが生じない検索周期に調整することができる。
【００３６】
さらに、短周期調整部１５０は、検索付随情報記憶部１４１を参照し、短周期検索部１３０において、前後の検索により取得された検索結果の重複度合に基づいて、短周期検索部１３０が実行する検索周期を調整する。具体的には、短周期検索部１３０において、前の検索で取得された検索結果と、後の検索で取得された検索結果とが重複している場合には、短周期検索部１３０の検索周期を長くする。なお、前の検索で取得された検索結果と後の検索で取得された検索結果との重複が多い程、検索周期を長くする。それにより、リソースを効率的に使用できる、適切な検索周期に調整することができる。
【００３７】
このようにして、短周期検索部１３０の検索周期を短周期調整部１５０で調整することにより、曜日や時刻、内容によって生じる、データベースサーバのデータ量や検索条件の出現頻度の変動に対応可能に、短周期検索部１３０の検索周期に調整することができる。
【００３８】
長周期調整部１６０は、検索付随情報記憶部１４１を参照し、短周期検索部１３０で取得された検索結果に対する、長周期検索部１２０で取得された検索結果の重複度合に基づいて、長周期検索部１２０が実行する検索の周期を調整する。具体的には、長周期検索部１２０で取得された検索結果と重複しない短周期検索部１３０で取得された検索結果、すなわち、短周期検索部１３０では取得されているが、長周期検索部１２０で取得できていない検索結果がある場合には、長周期検索部１２０の検索周期を短くする。それにより、時間経過によりデータベースサーバから削除されてしまったために、長周期検索部１２０で取得できなかったデータを発見することができ、データの完全性を保つことができる。
【００３９】
また、長周期調整部１６０は、検索付随情報記憶部１４１を参照し、長周期検索部１２０において、前後の検索により取得された検索結果の重複度合に基づいて、長周期検索部１２０が実行する検索周期を調整する。具体的には、長周期検索部１２０において、後の検索で取得された検索結果に、前の検索で取得された検索結果が全て含まれる場合には、検索周期を長くする。それにより、リソースを効率的に使用できる、適切な検索周期に調整することができる。
【００４０】
なお、短周期調整部１５０および長周期調整部１６０は、予め設定された曜日や日時、間隔によって、検索周期の調整を行う。
【００４１】
オンデマンド検索部１７０は、ユーザから入力された検索条件を受け付けたことに応じて、ネットワーク上のデータベースサーバに対し、受け付けた検索条件に基づいて検索を行う。そして、オンデマンド検索部１７０は、検索結果を検索結果記憶部１４２に記憶させる。それにより、検索条件記憶部１１０に記憶されていない検索条件についても、検索を行うことができる。なお、オンデマンド検索部１７０は、データ収集装置１００に備えられなくてもよい。
【００４２】
図２を用いて、本発明の第１の実施形態に係るデータ収集装置１００における、データ収集処理のフローチャートについて説明する。なお、ステップＳ１とステップＳ２とは互いに独立しており、検索開始の指示を受け付けるとそれぞれ開始する。
【００４３】
まず、ステップＳ１において、長周期検索部１２０が、短周期検索部１３０の検索周期と比較して長い周期で、ネットワーク上のデータサーバを、検索条件記憶部１１０に記憶されている検索条件に基づいて全検索する。
【００４４】
次に、ステップＳ２において、短周期検索部１３０が、秒単位といった短い周期で、高頻度に、ネットワーク上のデータサーバを、検索条件記憶部１１０に記憶されている検索条件に基づいて、最新のデータを優先して検索する。
【００４５】
次に、ステップＳ３において、検索付随情報記憶部１４１は、長周期検索部１２０および短周期検索部１３０で取得された検索結果を、検索結果を取得した検索部を特定する情報および検索結果を取得した時間情報と、対応付けて記憶する。
【００４６】
次に、ステップＳ４において、検索結果記憶部１４２は、長周期検索部１２０および短周期検索部１３０で取得された検索結果を、重複を排除して記憶する。なお、ステップＳ３とステップＳ４の順は逆であってもよいし、同時であってもよい。
【００４７】
次に、ステップＳ５において、短周期調整部１５０および長周期調整部１６０は、検索周期の調整を行うか否かを判断する。検索周期の調整を行うと判断した場合（ＹＥＳ）には、ステップＳ６に処理を進め、一方、検索周期の調整を行わないと判断した場合（ＮＯ）には、ステップＳ８に処理を進める。
【００４８】
次に、ステップＳ６において、短周期調整部１５０が、検索付随情報記憶部１４１に記憶されている検索結果を参照し、短周期検索部１３０の検索周期を調整する。
【００４９】
次に、ステップＳ７において、長周期調整部１６０が、検索付随情報記憶部１４１に記憶されている検索結果を参照し、長周期検索部１２０の検索周期を調整する。なお、ステップＳ６とステップＳ７の順は逆であってもよいし、同時であってもよい。
【００５０】
次に、ステップＳ８において、長周期検索部１２０および短周期検索部１３０は、終了指示があったか否か判断する。終了指示があったと判断した場合（ＹＥＳ）には、処理を終了し、一方、終了指示がなかったと判断した場合（ＮＯ）には、ステップＳ１およびＳ２に処理を戻す。
【００５１】
以上、説明したように、本実施形態によれば、長周期検索部１２０による全検索と合わせて、短周期検索部１３０により短い周期で高頻度に最新データを検索することにより、従来取得できなかった、長周期検索部１２０で検索が開始された後にデータベースサーバに蓄積されたデータを取得することができる。それにより、データのリアルタイム性と完全性とを両立して、ネットワーク上のデータを効率よく収集することができる。また、収集した検索結果に基づいて、長周期検索部１２０および短周期検索部１３０の検索周期を調整することにより、よりデータのリアルタイム性と完全性とを両立して、ネットワーク上のデータを効率よく収集することができる。
【００５２】
＜第２の実施形態＞
図３を用いて、本発明の第２の実施形態について説明する。なお、本実施形態におけるデータ収集装置は、検索条件が複数の場合に、各検索条件に割り当てるリソースを制御して、ネットワーク上のデータベースサーバ、例えば、ＳＮＳや掲示板等のデータを記憶しているデータベースサーバから、データを効率よく収集する装置である。なお、第１の実施形態と同一の符号を付す構成要素については、同一の機能を有することから、その詳細な説明は省略する。
【００５３】
＜データ収集装置の構成＞
図３は、本発明の第２の実施形態に係るデータ収集装置１０１の構成を示す図である。図３に示すように、データ収集装置１０１は、検索条件記憶部１１０、長周期検索部１２１、短周期検索部１３１、データ記憶部１４０、長周期調整部１６０、短周期調整部１５０、リソース配分決定部１８０、およびリソース制御部１９０から構成される。
【００５４】
長周期検索部１２１および短周期検索部１３１は、検索条件記憶部１１０に記憶されている検索条件が複数である場合に、各検索条件の検索プロセスを並列に実行する。なお、長周期検索部１２１および短周期検索部１３１は、第１の実施形態に記述した機能を備えている。
【００５５】
リソース配分決定部１８０は、検索条件記憶部１１０に記憶されている検索条件が複数である場合に、検索付随情報記憶部１４１を参照し、各検索条件の検索結果の取得率と取得量とに基づいて、各検索条件へのリソースの配分割合を決定する。具体的には、リソース配分決定部１８０は、各検索条件の検索結果の取得率Ｔｉが同じになるように、下記の（１）式と（２）式によりＮ個のｒを変数とするＮ次連立方程式を解くことにより、各検索条件へのリソース配分を決定する。
【００５６】
【数１】
2015026103.tif 000003
【００５７】
リソース制御部１９０は、各検索条件の検索を実行するプロセスに、リソース配分決定部１８０で決定された各検索条件へのリソース配分に基づいてリソースを割り当てる。具体的には、リソース制御部１９０は、各検索条件の検索プロセスは割り当てられたリソースに基づいて、検索プロセスの数や検索頻度を調整する。
【００５８】
ところで、検索条件が複数の場合に、各検索条件に同じリソースを配分すると効率的でないことがある。例えば、ワードＡ、Ｂ、Ｃが図４に示すようなデータ集合をもつデータベースサーバを検索対象とする場合に、ワードＡ、Ｂ、Ｃにリソースを等分で割り当てるとワードＡ、Ｂについては十分にデータを得ることができたにも関わらず、ワードＣについては、リソース不足で十分にデータを得ることができないことがあった。
【００５９】
本実施形態においては、上述したリソース配分決定部１８０およびリソース制御部１９０をデータ収集装置１００に備えることにより、検索条件が複数の場合に、各検索条件により得られる検索結果の件数が同じになるように、リソースを配分することができる。その結果、検索条件が複数の場合にも効率的に、データを収集することができる。
【００６０】
＜実施例＞
本実施形態のデータ収集装置１０１をＴｗｉｔｔｅｒに適用した例について説明する。なお、第１の実施形態および第２の実施形態と同一の符号を付す構成要素については、同一の機能を有することから、その詳細な説明は省略する。
【００６１】
本例において、図５に示すように、データ収集装置２００は、検索条件記憶部１１０、検索部２１０、データ記憶部１４０、Ｓｒｒｅａｍ処理部２２０、検索エンジン２３０、および高度解析器２４０から構成される。なお、Ｓｒｒｅａｍ処理部２２０、検索エンジン２３０、および高度解析器２４０は、データ記憶部１４０に記憶されているデータをマーケティング等のための解析を行う処理部であって、別装置に備えられてもよい。
【００６２】
検索部２１０は、キーワード指定の検索を行うキーワード検索部２１１と、ユーザ指定の検索を行うユーザ検索部２１２とを備える。Ｔｗｉｔｔｅｒの全Ｔｗｅｅｔに対して、マーケティング等に利用するＴｗｅｅｔは、主にキーワードやユーザによって収集することができるので、本例においては、キーワード検索とユーザ検索との２つの検索方法によりデータ収集を行う。
【００６３】
検索部２１０の各処理部は、それぞれ最低１プロセスずつ並列に動作し、例えば、Ｔｗｉｔｔｅｒ  ＲＥＳＴ  ＡＰＩを利用してＴｗｉｔｔｅｒのデータベースサーバからＴｗｅｅｔを収集する。ユーザの要望により複数のキーワードやユーザについてデータを取得する場合には、必要に応じて、各処理部のプロセス数を増加する。
【００６４】
キーワード検索部２１１は、キーワード長周期検索部２１１ａ、キーワード短周期検索部２１１ｂ、ひらがな検索部２１１ｃ、およびキーワードオンデマンド検索部２１１ｄを備える。
【００６５】
キーワード長周期検索部２１１ａは、Ｔｗｉｔｔｅｒのデータベースサーバから、検索条件記憶部１１０に記憶されているキーワードを含むＴｗｅｅｔを全検索する。キーワード長周期検索部２１１ａが検索する範囲を、検索対象数や検索期間を限定してもよい。キーワード短周期検索部２１１ｂは、秒単位といった短い周期で、高頻度に、Ｔｗｉｔｔｅｒのデータベースサーバから、検索条件記憶部１１０に記憶されている検索条件に基づいて、最新のＴｗｅｅｔを優先して検索する。
【００６６】
ひらがな検索部２１１ｃは、特許文献２に記載の技術を用いて、ひらがなをキーワードに、日本語のＴｗｅｅｔを検索する。キーワードオンデマンド検索部２１１ｄは、検索条件記憶部１１０に記憶されていないキーワードに関するＴｗｅｅｔをユーザが収集したい場合に、Ｔｗｉｔｔｅｒのデータベースサーバから、ユーザから入力を受け付けたキーワードに基づいてＴｗｅｅｔを検索する。
【００６７】
ユーザ検索部２１２は、既存ユーザ検索部２１２ａ、新規ユーザ検出部２１２ｂ、およびユーザオンデマンド検索部２１２ｃを備える。
【００６８】
既存ユーザ検索部２１２ａは、Ｔｗｉｔｔｅｒのデータベースサーバから、検索条件記憶部１１０に記憶されているユーザＩＤに基づいて、Ｔｗｅｅｔを全検索する。また、新規ユーザ検出部２１２ｂで検出されたユーザのユーザＩＤに基づいて、Ｔｗｅｅｔを全検索する。この場合、特許文献３（特開２０１２−２１６１６８号公報）の方法によりユーザの優先度に応じて、Ｔｗｅｅｔを検索してもよい。このようにして、ユーザがＴｗｅｅｔの収集を要求している、Ｔｗｉｔｔｅｒのユーザについて、日単位でリアルタイム性を保証することができる。
【００６９】
新規ユーザ検出部２１２ｂは、キーワード検索部２１１で取得したＴｗｅｅｔを投稿したユーザであって、検索条件記憶部１１０に記憶されていないユーザを検出し、ユーザＩＤを取得する。新規ユーザ検出部２１２ｂで取得されたユーザＩＤに基づいて、上述した既存ユーザ検索部２１２ａが、Ｔｗｉｔｔｅｒのデータベースサーバから、Ｔｗｅｅｔを検索する。
【００７０】
ユーザオンデマンド検索部２１２ｃは、Ｔｗｉｔｔｅｒのデータベースサーバから、ユーザから入力を受け付けたユーザＩＤに基づいて、Ｔｗｅｅｔを検索する。
【００７１】
インメモリＤＢ１４２は、検索結果記憶部１４２に該当し、検索部２１０の各検索部２１１ａ〜ｄ、２１２ａ〜ｃの検索結果を記憶する。インメモリＤＢ１４２としては、例えば、Ｒｅｄｉｓ［２０１３年５月１５日検索、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｒｅｄｉｓ．ｉｏｈｔｔｐ：／／＞］が挙げられる。なお、インメモリＤＢ１４２は、並列化可能である。
【００７２】
各検索部２１１ａ〜ｄ、２１２ａ〜ｃはデータの完全性とリアルタイム性を実現するため、並列に動作し、また、検索条件が複数である場合に、各検索部２１１ａ〜ｄ、２１２ａ〜ｃはそれぞれ複数並列のプロセスを持つ。Ｔｗｉｔｔｅｒのように、個々は小さなデータであっても、データベースに非同期並列で挿入すると、データベースの挿入性能が大きく低下してしまう。さらには、各検索部２１１ａ〜ｄ、２１２ａ〜ｃの検索結果には、重複するＴｗｅｅｔが含まれるため、挿入パフォーマンスの低下を招きやすい。これらの問題を解消するために、検索結果記憶部１４２に入出力が高速なインメモリＤＢを用いることで、データを一度ストアすることで、重複したＴｗｅｅｔの除去とデータの１ストリーム化を行うことができる。
【００７３】
Ｓｔｒｅａｍ処理部２２０は、インメモリＤＢ１４２を参照し、件数のカウント等１件のＴｗｅｅｔ毎に処理可能な解析処理を実施する。なお、Ｓｔｒｅａｍ処理部２２０も並列化が可能である。
【００７４】
検索エンジン２３０は、高度解析器２４０からの指示に基づいて、インメモリＤＢ１４２を検索し、検索結果を高度解析器２４０に検索結果を渡す。検索エンジン２３０には、例えば、Ａｐａｔｃｈ  Ｓｏｌｒ［２０１３年５月１５日検索  インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｌｕｃｅｎｅ．ａｐａｃｈｅ．ｏｒｇ／ｓｏｌｒ／＞］が挙げられる。
【００７５】
高度解析器２４０は、Ｔｗｉｔｔｅｒのデータベースサーバから収集したＴｗｅｅｔを記憶しているインメモリＤＢ１４２から検索エンジン２３０を介して必要なＴｗｅｅｔを取得し、マーケティング等のための解析を行う。高度解析器２４０には、例えば、非特許文献５［池田和史，服部元，小野智弘，東野輝夫，”マーケット分析のためのＴｗｉｔｔｅｒ投稿者プロフィール推定手法”，情処研報  ＩＰＳＪ−ＣＤＳ  Ｖｏｌ．２，Ｎｏ．１，ｐｐ．８２−９３（２０１２）］、非特許文献６［池田和史，服部元，小野智弘，麻生英樹，”Ｔｗｉｔｔｅｒ解析による通信品質低下傾向の早期検出手法の提案”，ＦＩＴ２０１２］に示されるような高度な解析処理が実装される。
【００７６】
このようにして、データ収集装置をＴｗｉｔｔｅｒのＴｗｅｅｔの収集に用いると、Ｔｗｅｅｔを、リアルタイム性と完全性とを両立した上で、効率よく収集することができる。それにより、収集したＴｗｅｅｔを利用してマーケティング等のための解析を行うことができる。
【００７７】
以上、説明したように、本実施形態によれば、複数の検索条件がある場合に、各検索条件に割り当てるリソースの配分を決定し、決定された配分に各検索条件のリソースを制御することにより、検索条件が複数の場合にも効率的に、データを収集することができる。
【００７８】
なお、データ収集装置の処理をコンピュータシステムが読み取り可能な記録媒体に記録し、この記録媒体に記録されたデータ収集装置に読み込ませ、実行することによって本発明のデータ収集装置を実現することができる。ここでいうコンピュータシステムとは、ＯＳや周辺装置等のハードウェアを含む。
【００７９】
また、「コンピュータシステム」は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００８０】
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００８１】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００８２】
１００  データ収集装置
１１０  検索条件記憶部
１２０  長周期検索部
１３０  短周期検索部
１４０  データ記憶部
１４１  検索付随情報記憶部
１４２  検索結果記憶部
１５０  短周期調整部
１６０  長周期調整部
１７０  画像データ管理部
【図１】
2015026103.tif 000004
【図２】
2015026103.tif 000005
【図３】
2015026103.tif 000006
【図４】
2015026103.tif 000007
【図５】
2015026103.tif 000008