(57)【特許請求の範囲】
【請求項１】
学習データを用いて、特定の情報を含む文字列である対象文字列をデータから抽出するためのパーサルールを生成する学習手段と、
前記パーサルールを用いて、前記対象文字列をデータから抽出する抽出手段と、
処理ルールに従って、前記抽出された対象文字列に基づいて、所定の処理を行う処理手段と
を備え、
前記処理手段は、前記処理ルールに従って、前記抽出された対象文字列に基づき、新たな学習データを決定し、
前記学習手段は、さらに、前記決定された新たな学習データを用いて、前記パーサルールを生成する、
情報収集システム。
【請求項２】
前記処理手段は、前記抽出された対象文字列において指定されている他のデータを前記
新たな学習データに決定する、
請求項１に記載の情報収集システム。
【請求項３】
前記学習手段は、前記学習データに係るサービスに関連付けて、前記生成したパーサルールをパーサルール記憶手段に保存し、
前記抽出手段は、前記データに係るサービスに関連付けられた前記パーサルールを用いて、前記対象文字列を当該データから抽出する、
請求項１または２に記載の情報収集システム。
【請求項４】
前記データは、所定のデータ記述言語により記述され、
前記学習手段は、前記学習データにおいて、指定されたキーワードを含む文字列を特定可能な、前記所定のデータ記述言語による記述のパターンを、前記パーサルールとして生成する、
請求項１乃至３のいずれかに記載の情報収集システム。
【請求項５】
さらに、１以上の処理ルールを記憶する、処理ルール記憶手段を備え、
前記処理手段は、前記１以上の処理ルールの内、指定された処理ルールに従って、前記所定の処理を行う、
請求項１または２に記載の情報収集システム。
【請求項６】
コンピュータに具備された学習手段が、学習データを用いて、特定の情報を含む文字列である対象文字列をデータから抽出するためのパーサルールを生成し、
前記コンピュータに具備された抽出手段が、前記パーサルールを用いて、前記対象文字列をデータから抽出し、
前記コンピュータに具備された処理手段が、処理ルールに従って、前記抽出された対象文字列に基づいて、所定の処理を行う
情報収集方法であって、
前記処理手段は、前記処理ルールに従って、前記抽出された対象文字列に基づき、新たな学習データを決定し、
前記学習手段は、さらに、前記決定された新たな学習データを用いて、前記パーサルールを生成する、
情報収集方法。
【請求項７】
コンピュータに、
学習データを用いて、特定の情報を含む文字列である対象文字列をデータから抽出するためのパーサルールを生成するステップと、
前記パーサルールを用いて、前記対象文字列をデータから抽出するステップと、
処理ルールに従って、前記抽出された対象文字列に基づいて、所定の処理を行うステップと
を実行させる、プログラムであって、
前記所定の処理を行うステップにおいて、前記処理ルールに従って、前記抽出された対象文字列に基づき、新たな学習データを決定し、
さらに、前記決定された新たな学習データを用いて、前記パーサルールを生成するステップを実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報収集システム、情報収集方法、及び、記録媒体に関する。
【背景技術】
【０００２】
ＳＮＳ（Social Networking Service）やブログ、ホームページ等、インターネット上の様々なサービスで提供されるＷｅｂコンテンツから、必要な情報を収集し、各種の分析、制御を行うことが行われている。このようなＷｅｂコンテンツは膨大であるため、プログラムに基づいたクローリング等による情報収集、及び、収集した情報に対する分析、制御の自動化が必要とされている。【０００３】
Ｗｅｂコンテンツは、一般に、ＨＴＭＬ（HyperText Markup Language）により記述されているが、コンテンツ上で収集すべき必要な情報（例えば、ＳＮＳにおけるユーザのメッセージ部分）が記述されている位置は、サービスにより異なる。また、これらの位置は、サービス提供者より明確な仕様として公開されていないことが多い。このため、Ｗｅｂコンテンツからの情報収集を行うためには、開発者が、サービス毎にコンテンツを解析し、必要な情報を抽出するためのパーサプログラムを開発する必要がある。また、この場合、コンテンツの仕様が変わる度にパーサプログラムも変更する必要があり、プログラミングコストも大きくなる。このように、Ｗｅｂコンテンツからの情報収集では、膨大な量の様々な形式のコンテンツに対して、目的の情報を効率よく収集できないという課題がある。【０００４】
Ｗｅｂコンテンツからの情報収集に係る関連技術として、例えば、特許文献１には、マイクロブログメッセージを分類ルールに従って分類する技術が開示されている。特許文献２には、ユーザが作成した文書からユーザの趣味嗜好を学習し、他のユーザやブログの推奨、広告の送信に用いる技術が開示されている。特許文献３には、ニュース等の記事から抽出条件に応じて記事を抽出し、記事へのコメント量に応じて抽出条件を更新する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１２−５２９７１７号公報
【特許文献２】特開２００９−０９８９６４号公報
【特許文献３】特開２０１４−０４９０９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述の先行技術文献のいずれにも、膨大な量の様々な形式のデータから、目的の情報を効率よく収集するための技術は開示されていない。【０００７】
本発明の目的は、上述の課題を解決し、膨大な量の様々な形式のデータから、目的の情報を効率よく収集できる、情報収集システム、情報収集方法、及び、記録媒体を提供することである。
【課題を解決するための手段】
【０００８】
本発明の一態様における情報収集システムは、学習データを用いて、特定の情報を含む文字列である対象文字列をデータから抽出するためのパーサルールを生成する学習手段と、前記パーサルールを用いて、前記対象文字列をデータから抽出する抽出手段と、を備える。【０００９】
本発明の一態様における情報収集方法は、学習データを用いて、特定の情報を含む文字列である対象文字列をデータから抽出するためのパーサルールを生成し、前記パーサルールを用いて、前記対象文字列をデータから抽出する。【００１０】
本発明の一態様におけるコンピュータが読み取り可能な記録媒体は、コンピュータに、学習データを用いて、特定の情報を含む文字列である対象文字列をデータから抽出するためのパーサルールを生成し、前記パーサルールを用いて、前記対象文字列をデータから抽出する処理を実行させるプログラムを格納する。
【発明の効果】
【００１１】
本発明の効果は、膨大な量の様々な形式のコンテンツから、目的の情報を効率よく収集できることである。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態の特徴的な構成を示すブロック図である。
【図２】第１の実施形態の構成を示すブロック図である。
【図３】第１の実施形態における、コンピュータにより実現された情報収集システム１００の構成を示すブロック図である。
【図４】第１の実施形態における、学習処理を示すフローチャートである。
【図５】第１の実施形態における、学習処理の具体例を示す図である。
【図６】第１の実施形態における、パーサルール記憶部１２０に記憶されるパーサルールの例を示す図である。
【図７】第１の実施形態における、抽出処理を示すフローチャートである。
【図８】第１の実施形態における、抽出処理の具体例を示す図である。
【図９】第１の実施形態における、文字列記憶部１４０に記憶されるテーブルの例を示す図である。
【図１０】第１の実施形態における、処理ルール入力画面の例を示す図である。
【図１１】第１の実施形態における、分析、制御処理を示すフローチャートである。
【図１２】第１の実施形態における、分析、制御処理の具体例を示す図である。
【図１３】第１の実施形態における、分析結果画面の例を示す図である。
【図１４】第１の実施形態における、警報メールの例を示す図である。
【図１５】第１の実施形態の他の構成を示すブロック図である。
【図１６】第１の実施形態のさらに他の構成を示すブロック図である。
【図１７】第２の実施形態における、処理ルールの例を示す図である。
【図１８】第２の実施形態における、文字列記憶部１４０に記憶されるテーブルの例を示す図である。
【図１９】第２の実施形態における、分析、制御処理の具体例を示す図である。
【図２０】第２の実施形態における、学習処理の具体例を示す図である。
【発明を実施するための形態】
【００１３】
発明を実施するための形態について図面を参照して詳細に説明する。なお、各図面、及び、明細書記載の各実施形態において、同様の構成要素には同一の符号を付与し、説明を適宜省略する。
【００１４】
（第１の実施形態）
はじめに、第１の実施形態の構成について説明する。図２は、第１の実施形態の構成を示すブロック図である。情報収集システム１００は、インターネットワーク等のネットワーク４００を通じて、サーバ装置２００や、端末装置３００に接続される。サーバ装置２００は、例えば、ＳＮＳ等のサービスにおいて、コンテンツデータ（以下、単にデータとも記載）を提供するサーバである。データは、例えば、ＨＴＭＬ等、所定のデータ記述言語を用いて記述される。
【００１５】
情報収集システム１００は、サーバ装置２００から得られるデータから、各種分析、制御の処理を行う対象の文字列である、「対象文字列」を抽出する。対象文字列は、例えば、ＳＮＳにおいてユーザが発信したメッセージや、当該ユーザのユーザ名、当該メッセージの発信日時等の「特定の情報」を含む文字列である。ここで、データにおけるメッセージや、ユーザ名、発信日時等の格納方法を定義するデータの形式（format）は、サービスを提供する事業者によって異なる。情報収集システム１００は、サービスに応じたパーサルールを用いて、対象文字列を抽出する。情報収集システム１００は、抽出した対象文字列に基づいて、分析、制御処理を行う。
【００１６】
図２を参照すると、第１の実施形態における情報収集システム１００は、学習部１１０、パーサルール記憶部１２０、抽出部１３０、文字列記憶部１４０、処理部１５０、処理ルール入力部１６０、及び、処理ルール記憶部１７０を含む。
【００１７】
学習部１１０は、サーバ装置２００から学習対象のデータ（以下、学習データとも記載する）を取得し、当該学習データを用いてパーサルール（Parser Rule）を生成する。パーサルールは、データから上述の対象文字列を抽出するためのルールである。学習部１１０は、例えば、サービス毎に、１以上の学習データを用いてパーサルールを生成する。サービスは、例えば、ＵＲＬ（Uniform Resource Locator）に含まれるドメイン名により識別される。
【００１８】
パーサルールは、例えば、データ記述言語による記述のパターンにより指定される。学習部１１０は、学習データにおいて、学習データとともに指定されたキーワードを含む文字列を特定可能な、データ記述言語による記述のパターンを、パーサルールとして生成する。例えば、データがＨＴＭＬにより記載されている場合、学習部１１０は、対象文字列を特定可能な（対象文字列を囲む）タグのパターンを、パーサルールとして生成する。
【００１９】
パーサルール記憶部１２０は、学習部１１０により生成されたパーサルールをサービスに関連付けて記憶する。
【００２０】
抽出部１３０は、サーバ装置２００から対象文字列の抽出対象のデータ（以下、処理データ、または、単に、データとも記載する）を取得し、当該データに係るサービスに関連付けられたパーサルールを用いて、データから対象文字列を抽出する。
【００２１】
文字列記憶部１４０は、抽出部１３０により抽出された対象文字列を記憶する。対象文字列は、例えば、ＫＶＳ（Key-Value Store）等のテーブル形式で記憶される。
【００２２】
処理部１５０は、管理者等により指定された処理ルール（Processing Rule）に従って、抽出した対象文字列に基づいて、分析、制御処理を行う。処理ルールは、分析、制御の方法を定義する。
【００２３】
処理ルール入力部１６０は、管理者等から、処理ルールの入力を受け付ける。
【００２４】
処理ルール記憶部１７０は、入力された１以上の処理ルールを記憶する。
【００２５】
情報収集システム１００は、ＣＰＵ（Central Processing Unit）とプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。
【００２６】
図３は、第１の実施形態における、コンピュータにより実現された情報収集システム１００の構成を示すブロック図である。
【００２７】
この場合、情報収集システム１００は、ＣＰＵ１０１、ハードディスクやメモリ等の記憶デバイス１０２（記憶媒体）、キーボード、ディスプレイ等を含む入出力デバイス１０３、及び、他の装置等と通信を行う通信デバイス１０４を含む。ＣＰＵ１０１は、学習部１１０、抽出部１３０、処理部１５０、及び、処理ルール入力部１６０を実現するためのプログラムを実行する。記憶デバイス１０２は、パーサルール記憶部１２０、文字列記憶部１４０、及び、処理ルール記憶部１７０の情報を記憶する。入出力デバイス１０３は、管理者等から、学習データや処理データ、処理ルールの指定を受け付ける。また、通信デバイス１０４が、他の装置から、学習データや処理データ、処理ルールの指定を受け付けてもよい。
【００２８】
また、情報収集システム１００の各構成要素の一部、または、全部は、汎用または専用の回路（circuitry）やプロセッサ、これらの組み合わせによって実現されてもよい。これらの回路やプロセッサは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。また、情報収集システム１００の各構成要素の一部、または、全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【００２９】
情報収集システム１００の各構成要素の一部、または、全部が、複数の情報処理装置や回路等により実現される場合、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【００３０】
次に、第１の実施形態の動作を説明する。
【００３１】
ここでは、学習処理において、ＳＮＳのデータから対象文字列を抽出するパーサルールを生成し、分析、制御処理において、対象文字列に含まれる所定のキーワードを分析し、その結果を通知する場合を例に説明する。
【００３２】
＜学習処理＞
図４は、第１の実施形態における、学習処理を示すフローチャートである。図５は、第１の実施形態における、学習処理の具体例を示す図である。
【００３３】
はじめに、学習部１１０は、管理者等から、学習データの指定を受け付ける（ステップＳ１０１）。
【００３４】
例えば、学習部１１０は、図５に示すように、サービス「SNS1」について、３つの学習データの指定をＵＲＬ「URL1」、「URL2」、「URL3」により受け付ける。また、各学習データとともに、キーワード「Keyword1」、「Keyword2」、「Keyword3」が指定される。キーワードには、各学習データにおける、ユーザのメッセージ部分（以下、ユーザメッセージとも記載）の文字列が指定される。さらに、これらの学習データとともに、後述する抽出処理において、処理データから抽出された対象文字列を記憶するテーブルのテーブル名「SNS1」、当該テーブルにおいて、ユーザメッセージが格納される列の列名として用いられるデータラベル「Post」が指定される。
【００３５】
学習部１１０は、サーバ装置２００から、指定された学習データを取得する（ステップＳ１０２）。
【００３６】
例えば、学習部１１０は、図５に示すように、サーバ装置２００から、ＵＲＬ「URL1」、「URL2」、「URL3」で指定された学習データを取得する。
【００３７】
学習部１１０は、取得した学習データを用いて、パーサルールを生成する（ステップＳ１０３）。
【００３８】
例えば、学習部１１０は、学習データの各々において、指定されたキーワードを含む文字列を抽出するためのタグパターン「<a><b Class="post" id=xx><c name="userx">Keywordx</c></b></a>」を特定する。そして、学習部１１０は、図５に示すように、各学習データに対して特定したタグパターン間で、タグ、及び、タグの属性を比較し、共通のタグ、及び、当該共通のタグにおける共通の値を有する属性を抽出することで、パーサルール「<a><b Class="post"><c>Value</c></b></a>」を生成する。ここで、Valueは抽出される対象文字列を示す。
【００３９】
さらに、学習部１１０は、図５のように、テーブル名「SNS1」、データラベル「Post」、ＵＲＬ「http://hoge.com」、及び、生成したパーサルール「<a><b Class="post"><c>Value</c></b></a>」を関連付ける。ここで、ＵＲＬ「http://hoge.com」は、サービス「SNS1」に対応するＵＲＬであり、例えば、上述のＵＲＬ「URL1」、「URL2」、「URL3」に共通に含まれるドメイン名である。
【００４０】
また、学習部１１０は、ユーザメッセージ以外に、ユーザ名（データラベル「User」）、メッセージの発信日時（データラベル「Date」）についても、同様に学習処理を行う。なお、図５の学習データでは、タグ「c」の属性「name」により、ユーザ名が指定される。また、図５の学習データでは、発信日時は省略されている。
【００４１】
学習部１１０は、生成したパーサルールをパーサルール記憶部１２０に保存する（ステップＳ１０４）。
【００４２】
図６は、第１の実施形態における、パーサルール記憶部１２０に記憶されるパーサルールの例を示す図である。
【００４３】
例えば、学習部１１０は、図６のように、サービス「SNS1」のユーザメッセージ（データラベル「Post」）、ユーザ名（データラベル「User」）、発信日時（データラベル「Date」）について、生成したパーサルールをパーサルール記憶部１２０に保存する。
【００４４】
さらに、学習部１１０は、他のサービス「SNS2」、「SNS3」についても、同様に学習処理を行う。この結果、パーサルール記憶部１２０には、図６のように、各サービスのユーザメッセージ、ユーザ名、発信日時について、パーサルールが記憶される。
【００４５】
なお、学習部１１０は、さらに、パーサルールに従ってデータから対象文字列を抽出するスクリプトやプログラムモジュール、これらのソースコードを生成して、パーサルール記憶部１２０に保存してもよい。
【００４６】
＜抽出処理＞
図７は、第１の実施形態における、抽出処理を示すフローチャートである。図８は、第１の実施形態における、抽出処理の具体例を示す図である。抽出処理は、学習処理によりパーサルールが生成された後に実行される。
【００４７】
はじめに、抽出部１３０は、管理者等から、データの指定を受け付ける（ステップＳ２０１）。
【００４８】
例えば、抽出部１３０は、図８に示すように、サービス「SNS1」について、データの指定をＵＲＬ「http://hoge.com/index.html」により受け付ける。
【００４９】
抽出部１３０は、サーバ装置２００から、指定されたデータを取得する（ステップＳ２０２）。
【００５０】
例えば、抽出部１３０は、図８に示すように、サーバ装置２００から、ＵＲＬ「http://hoge.com/index.html」で指定されたデータを取得する。
【００５１】
抽出部１３０は、パーサルール記憶部１２０から、データのサービスに関連付けられたパーサルールを取得する（ステップＳ２０３）。
【００５２】
例えば、抽出部１３０は、図６のパーサルールから、図８に示すように、データを指定するＵＲＬのドメイン名から得られるＵＲＬ「http://hoge.com」、データラベル「Post」に関連付けられた、パーサルール「<a><b Class="post"><c>Value</c></b></a>」を取得する。
【００５３】
抽出部１３０は、取得したパーサルールを用いて、データから、対象文字列を抽出する（ステップＳ２０４）。
【００５４】
例えば、抽出部１３０は、図８に示すように、データから、パーサルールのタグパターン「<a><b Class="post"><c>Value</c></b></a>」で特定される、ユーザメッセージに対応する文字列を、対象文字列として抽出する。なお、抽出部１３０は、対象文字列とともに、関連する対象文字列の組を識別するための、所定のタグの属性の値を、Object IDとして抽出してもよい。図８の例では、ユーザメッセージ、ユーザ名、発信日時の組が、タグ「b」の属性「id」により識別可能であると仮定する。この場合、抽出部１３０は、図８に示すように、ユーザメッセージとともに、タグ「b」の属性「id」の値を、Object IDとして抽出する。
【００５５】
また抽出部１３０は、ユーザメッセージ以外に、ユーザ名（データラベル「User」）、メッセージの発信日時（データラベル「Date」）についても、同様に対象文字列を抽出する。
【００５６】
抽出部１３０は、抽出した対象文字列を文字列記憶部１４０に保存する（ステップＳ２０５）。
【００５７】
図９は、第１の実施形態における、文字列記憶部１４０に記憶されるテーブルの例を示す図である。
【００５８】
例えば、抽出部１３０は、図９のように、テーブル「SNS1」に、対象文字列として抽出したユーザメッセージ（データラベル「Post」）、ユーザ名（データラベル「User」）、発信日時（データラベル「Date」）を設定し、文字列記憶部１４０に保存する。ここで、抽出部１３０は、テーブルの各行に、同じObject IDを有するユーザメッセージ、ユーザ名、発信日時を設定する。
【００５９】
さらに、抽出部１３０は、他のサービス「SNS2」、「SNS3」についても、同様に抽出処理を行う。この結果、文字列記憶部１４０には、図９のように、テーブル「SNS1」、「SNS2」、「SNS3」が記憶される。
【００６０】
＜分析、制御処理＞
図１０は、第１の実施形態における、処理ルール入力画面の例を示す図である。図１０の入力画面では、処理ルールを構成するための部品と処理ルールの編集領域が表示されている。管理者等は、例えば、表示された部品から部品を選択して編集領域に配置し、パラメータを設定することで、処理ルールを編集する。図１０の例では、処理ルール「Rule1」が入力されている。処理ルール「Rule1」では、テーブル「SNS1」、「SNS2」、「SNS3」において、キーワード「地震」、「揺れ」を含む対象文字列の数が閾値「２０」以上の場合に、当該対象文字列に種別「災害」を付与し、警報メールを送信する処理が記述されている。
【００６１】
ここでは、処理ルール入力部１６０が、予め、入出力デバイス１０３を通して、管理者等から図１０のような処理ルール「Rule1」の入力を受け付け、処理ルール記憶部１７０に保存していると仮定する。
【００６２】
なお、処理ルール入力部１６０は、さらに、処理ルールに従って分析、制御処理を行うスクリプトやプログラムモジュール、これらのソースコードを生成して、処理ルール記憶部１７０に保存してもよい。
【００６３】
図１１は、第１の実施形態における、分析、制御処理を示すフローチャートである。図１２は、第１の実施形態における、分析、制御処理の具体例を示す図である。分析、制御処理は、抽出処理により対象文字列が抽出された後で実行される。
【００６４】
はじめに、処理部１５０は、管理者等から、分析、制御処理を行う対象文字列の条件、及び、利用する処理ルールの指定を受け付ける（ステップＳ３０１）。
【００６５】
図１３は、第１の実施形態における、分析結果画面の例を示す図である。
【００６６】
処理部１５０は、例えば、図１３のような分析結果画面を、入出力デバイス１０３を通して管理者等に出力し、対象文字列の条件（発信日時「date>="2015/12/15"」）、及び、処理ルール「Rule1」の指定を受け付ける。
【００６７】
処理部１５０は、文字列記憶部１４０から、指定された条件に合致する対象文字列を取得する（ステップＳ３０２）。
【００６８】
例えば、処理部１５０は、図９におけるテーブル「SNS1」、「SNS2」、「SNS3」から、取得日時「date>="2015/12/15"」の条件に合致する対象文字列を取得する。
【００６９】
処理部１５０は、処理ルール記憶部１７０から、指定された処理ルールを取得する（ステップＳ３０３）。
【００７０】
例えば、処理部１５０は、図１０のような処理ルール「Rule1」を取得する。
【００７１】
処理部１５０は、取得した処理ルールに従って、取得した対象文字列に基づいて、分析、制御処理を行う（ステップＳ３０４）。
【００７２】
例えば、処理部１５０は、図１０の処理ルール「Rule1」に従って、各テーブルの対象文字列の内、キーワード「地震」、「揺れ」を含む対象文字列の数を、図１２のようにカウントする。カウントした結果が「２０」以上の場合、処理部１５０は、図１２のように、当該キーワード「地震」、「揺れ」を含む対象文字列に、種別（データラベル「Type」）として「災害」を付与する。
【００７３】
処理部１５０は、図１３のように、分析結果画面の分析結果に、種別「災害」を付与した対象文字列を設定し、管理者等に出力する。さらに、処理部１５０は、種別「災害」を付与した対象文字列について、文字列記憶部１４０に記憶されているテーブルを更新してもよい。
【００７４】
図１４は、第１の実施形態における、警報メールの例を示す図である。
【００７５】
さらに、処理部１５０は、災害（地震）が発生したことを示す、図１４のような警報メールを、ネットワーク４００を介して、予め通知先として登録されている端末装置３００に送信する。ここで、処理部１５０は、例えば、処理ルールに従って、メールの内容を設定する。この場合、処理部１５０は、処理ルールにより指定された他の装置からメールの内容を取得し、設定してもよい。
【００７６】
このように、ＳＮＳのデータにおけるユーザメッセージ等がサービス毎に様々な形式のデータで提供される場合であっても、メッセージを効率的に収集し、分析できる。
【００７７】
以上により、第１の実施形態の動作が完了する。
【００７８】
なお、上述の実施形態では、データがＨＴＭＬにより記載されている場合を例に説明したが、データ記述言語による記述を解析することで、特定の情報を対象文字列として抽出できれば、データは、他のデータ記述言語で記述されていてもよい。例えば、データは、ＸＭＬ（Extensible Markup Language）等の他のマークアップ言語で記述されていてもよいし、ＪＳＯＮ（JAVA（登録商標） Script Object Notation）等のマークアップ言語以外の言語で記述されていてもよい。
【００７９】
また、上述の実施形態では、抽出部１３０は、処理データとして、管理者等から指定されたＵＲＬで示されるデータを取得した。しかしながら、これに限らず、抽出部１３０は、ネットワーク４００を介したクローリングにより、データを取得してもよい。この場合、抽出部１３０は、ある起点のＵＲＬで示されたデータから、所定数のリンクを辿ることによりデータを取得して用いてもよい。また、抽出部１３０は、検索エンジンの検索結果により得られた所定数のＵＲＬにより得られるデータを取得して用いてもよい。
【００８０】
また、抽出部１３０は、処理データとして、ネットワーク４００を介して送受信されるデータをプロキシサーバ等のネットワーク装置を用いて取得してもよい。
【００８１】
また、上述の実施形態では、抽出部１３０により抽出された複数の対象文字列に基づいて、処理部１５０により分析、制御処理が実行された。しかしながら、これに限らず、抽出部１３０が処理データを取得し、対象文字列を抽出する度に、処理部１５０が、当該対象文字列に基づいて、分析、制御処理を実行してもよい。
【００８２】
また、上述の実施形態では、学習処理において、ＳＮＳのデータからユーザメッセージやユーザ名、発信日時等を対象文字列として抽出するためのパーサルールを生成した。また、分析、制御処理において、対象文字列に含まれる所定のキーワードの数を算出し、その結果を通知した。
【００８３】
しかしながら、これに限らず、パーサルールにより対象文字列として抽出される情報は、データ記述言語による記述を解析することで得られる情報であれば、どのような情報でもよい。また、分析、制御処理は、抽出された対象文字列に基づいて行う処理であれば、どのような処理でもよい。
【００８４】
例えば、対象文字列として、改ざんされている可能性や脆弱性が高いＩＰ（Internet Protocol）アドレスやドメイン名のリスト（ブラックリスト）を提供するためのデータから、ブラックリストを抽出してもよい。また、対象文字列として、マルウェアのファイル名やＵＲＬ（マルウェアリスト）を提供するためのデータから、マルウェアリストを抽出してもよい。この場合、分析、制御処理において、当該ブラックリストやマルウェアリストに係る通信を遮断するようなポリシーを設定してもよい。
【００８５】
図１５は、第１の実施形態の他の構成を示すブロック図である。図１５における情報収集システム１００は、図２の情報収集システム１００と同一の構成要素を含む。
【００８６】
図１５では、サーバ装置２００が、上述のブラックリストやマルウェアリストを提供するサービスのサーバである。情報収集システム１００は、ＩＰＳ（Intrusion Prevention System）装置５００と接続されている。ＩＰＳ装置５００は、ネットワーク４００とローカルネットワーク６００に接続された端末装置６０１との間の通信を、ポリシーに従って制御する。
【００８７】
例えば、図１５の学習部１１０は、サーバ装置２００から取得した学習データと、キーワードとして指定された、当該学習データに含まれるブラックリストやマルウェアリストと、を用いて、パーサルールを生成する。
【００８８】
抽出部１３０は、パーサルールを用いて、サーバ装置２００から取得したデータから、対象文字列（ブラックリストや、マルウェアリスト）を抽出する。
【００８９】
処理部１５０は、処理ルールに従って、対象文字列から、ブラックリストに含まれるＩＰアドレスやドメイン名、マルウェアリストに含まれるファイル名やＵＲＬを抽出する。そして、処理部１５０は、抽出したＩＰアドレスやドメイン名との通信、あるいは、抽出したファイル名やＵＲＬを含むメッセージの通信を遮断するようなポリシーを、ＩＰＳ装置５００に設定する。
【００９０】
これにより、ブラックリストやマルウェアリストがサービス毎に様々な形式のデータで提供される場合であっても、サービスに応じてブラックリストやマルウェアリストを効率的に収集し、通信ポリシーに反映できる。
【００９１】
また、例えば、対象文字列として、ブログページに対するユーザコメントを抽出してもよい。この場合、分析、制御処理において、ユーザコメントに含まれる不適切な表現を検出し、当該ユーザコメントの書き込みのブロックや、ログを取得してもよい。
【００９２】
図１６は、第１の実施形態のさらに他の構成を示すブロック図である。図１６における情報収集システム１００も、図２の情報収集システム１００と同一の構成要素を含む。
【００９３】
図１６では、サーバ装置２００が、ブログを提供するサービスのサーバである。情報収集システム１００は、プロキシサーバ７００と接続されている。プロキシサーバ７００は、ネットワーク４００とローカルネットワーク８００に接続された端末装置８０１との通信を制御する。
【００９４】
例えば、図１６の学習部１１０は、端末装置８０１からサーバ装置２００へ送信される、ブログへのユーザコメントを含む学習データと、キーワードとして指定された当該データに含まれるユーザコメントとを用いて、パーサルールを生成する。
【００９５】
抽出部１３０は、プロキシサーバ７００を通じて、端末装置８０１からサーバ装置２００へ送信されるデータを取得する。抽出部１３０は、パーサルールを用いて、取得したデータから、対象文字列（ユーザコメント）を抽出する。
【００９６】
処理部１５０は、処理ルールに従って、対象文字列から誹謗や中傷に相当する表現等、不適切な表現を抽出する。そして、処理部１５０は、不適切な表現が抽出されたデータのサーバ装置２００への送信をブロックするように、プロキシサーバ７００を制御する。また、処理部１５０は、さらに、不適切な表現が検出されたデータの送信元の端末装置８０１のＩＰアドレス等を示すログを、ログ記憶部（図示せず）に保存してもよい。
【００９７】
これにより、ＳＮＳやブログへの書き込みがサービス毎に様々な形式のコンテンツで行われる場合であっても、サービスに応じて書き込みを効率的に収集し、不適切な書き込みを検出できる。
【００９８】
また、例えば、対象文字列として、ニュースサイトのコンテンツデータから、記事や、天気予報、番組情報等を抽出してもよい。また、対象文字列として、人同士のつながりや人の興味等、インターネット上の情報を分析して提供するサイトのコンテンツデータから、分析結果等を抽出してもよい。
【００９９】
また、例えば、分析、制御処理において、対象文字列として得られたＳＮＳのメッセージからマルウェアのファイル名を検出し、当該マルウェアを他の分析装置等に分析させてもよい。また、分析、制御処理において、対象文字列としてとして得られた人同士のつながりや人の興味の分析結果から、特定の人のつながりや興味を抽出、あるいは、特定の興味を有する人を抽出してもよい。
【０１００】
次に、第１の実施形態の特徴的な構成を説明する。図１は、第１の実施形態の特徴的な構成を示すブロック図である。
【０１０１】
図１を参照すると、情報収集システム１００は、学習部１１０、及び、抽出部１３０を含む。学習部１１０は、学習データを用いて、特定の情報を含む文字列である対象文字列をデータから抽出するためのパーサルールを生成する。抽出部１３０は、パーサルールを用いて、対象文字列をデータから抽出する。
【０１０２】
次に、第１の実施形態の効果について説明する。
【０１０３】
第１の実施形態によれば、膨大な量の様々な形式のコンテンツから、目的の情報を効率よく収集できる。その理由は、学習部１１０が、学習データを用いて、特定の情報を含む文字列である対象文字列をデータから抽出するためのパーサルールを生成し、抽出部１３０が、生成したパーサルールを用いて、対象文字列をデータから抽出するためである。
【０１０４】
これにより、様々な形式のコンテンツに対して、必要な情報を抽出するためのパーサプログラムを、開発者がコンテンツを解析することなく、短時間で生成できる。また、コンテンツの仕様が変更されても、パーサプログラムの再プログラミングを低コストで実行できる。さらに、様々な形式のコンテンツに対して、パーサプログラムの記法が統一化されるため、可読性や再利用性が向上する。
【０１０５】
また、第１の実施形態によれば、膨大な量の様々な形式のコンテンツから抽出された情報に基づいて、各種分析、制御を効率的に実行できる。その理由は、処理部１５０が、処理ルールに従って、抽出部１３０により抽出された対象文字列に基づいて、分析、制御処理を行うためである。
【０１０６】
また、第１の実施形態によれば、様々な方法の分析、制御を効率的に実行できる。その理由は、処理ルール記憶部１７０が１以上の処理ルールを記憶し、処理部１５０が、管理者等により指定された処理ルールに従って、分析、制御処理を行うためである。
【０１０７】
（第２の実施形態）
次に、第２の実施形態について説明する。
【０１０８】
第２の実施形態においては、処理部１５０が、抽出した対象文字列に基づき新たな学習データを決定する点において、第１の実施形態と異なる。
【０１０９】
処理部１５０は、処理ルールに従って、抽出した対象文字列に基づいて、新たな学習データを決定する。ここで、処理部１５０は、対象文字列に特定のキーワードとＵＲＬが含まれている場合、当該ＵＲＬにより示されるデータを新たな学習データに決定する。
【０１１０】
学習部１１０は、新たな学習データを用いてパーサルールを生成する。
【０１１１】
図１７は、第２の実施形態における、処理ルールの例を示す図である。図１７の例では、処理ルール「Rule2」が定義されている。処理ルール「Rule2」では、テーブル「SNS1」において、特定のキーワード「地震」、及び、共通のドメイン名のＵＲＬを含む対象文字列が複数検出された場合に、学習部１１０に対して、新たな学習データを指定する処理が記述されている。新たな学習データは、検出されたＵＲＬで指定されている。また、抽出すべき文字列として、キーワード「地震」が指定されている。
【０１１２】
ここでは、処理ルール入力部１６０が、予め、管理者等から図１７のような処理ルール「Rule2」の入力を受け付け、処理ルール記憶部１７０に保存していると仮定する。
【０１１３】
図１８は、第２の実施形態における、文字列記憶部１４０に記憶されるテーブルの例を示す図である。
【０１１４】
また、パーサルール記憶部１２０には、第１の実施形態と同様に図６のようなパーサルールが記憶されており、文字列記憶部１４０には、抽出処理により、図１８のようなテーブル「SNS1」が記憶されていると仮定する。
【０１１５】
図１９は、第２の実施形態における、分析、制御処理の具体例を示す図である。
【０１１６】
処理部１５０は、図１７の処理ルール「Rule2」に従って、図１８のテーブルの対象文字列から、キーワード「地震」、及び、共通のドメイン名「news.com」のＵＲＬを含む対象文字列を、図１９のように検出する。処理部１５０は、検出した対象文字列のＵＲＬ「http://news.com/news1.html」、「http://news.com/news2.html」を新たな学習データを示すＵＲＬとして、キーワード「地震」とともに、学習部１１０に入力する。
【０１１７】
図２０は、第２の実施形態における、学習処理の具体例を示す図である。
【０１１８】
学習部１１０は、各ＵＲＬで指定された学習データを取得し、パーサルールを生成する。ここで、学習部１１０は、学習データが指定されたキーワード「地震」を含んでいれば、当該キーワードを含む文字列を抽出するためのタグパターンを特定し、図２０のように、新たなパーサルール「<x><y>Value</y></x>」を生成する。学習部１１０は、図２０のように、ＵＲＬ「http://news.com」、及び、新たなパーサルール「<x><y>Value</y></x>」を関連付けて、パーサルール記憶部１２０に保存する。
【０１１９】
以降、抽出部１３０による、新たなパーサルールを用いた対象文字列の抽出、処理部１５０による、新たな学習データの決定、及び、学習部１１０による、新たなパーサルールの生成が繰り返される。
【０１２０】
これにより、特定のキーワードに係る情報について、最初に学習データとして指定されたサービスに加えて、様々なサービスから対象文字列を抽出するためのパーサルールが、管理者が学習データを指定することなく、効率的に生成される。
【０１２１】
次に、本発明の第２の実施形態の効果を説明する。
【０１２２】
本発明の第２の実施形態によれば、第１の実施の形態の効果に加えて、様々なサービスから対象文字列を抽出するためのパーサルールを、さらに、効率的に生成できる。その理由は、処理部１５０が、処理ルールに従って、抽出された対象文字列に基づき、新たな学習データを決定し、学習部１１０が、決定された新たな学習データを用いて、パーサルールを生成するためである。
【０１２３】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細に対しては、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１２４】
この出願は、２０１６年９月２６日に出願された日本出願特願２０１６−１８７０６４を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１２５】
１００    情報収集システム
１０１    ＣＰＵ
１０２    記憶デバイス
１０３    入出力デバイス
１０４    通信デバイス
１１０    学習部
１２０    パーサルール記憶部
１３０    抽出部
１４０    文字列記憶部
１５０    処理部
１６０    処理ルール入力部
１７０    処理ルール記憶部
２００    サーバ装置
３００    端末装置
４００    ネットワーク
５００    ＩＰＳ装置
６００    ローカルネットワーク
６０１    端末装置
７００    プロキシサーバ
８００    ローカルネットワーク
８０１    端末装置
【図１】
0006763433.tif 000002
【図２】
0006763433.tif 000003
【図３】
0006763433.tif 000004
【図４】
0006763433.tif 000005
【図５】
0006763433.tif 000006
【図６】
0006763433.tif 000007
【図７】
0006763433.tif 000008
【図８】
0006763433.tif 000009
【図９】
0006763433.tif 000010
【図１０】
0006763433.tif 000011
【図１１】
0006763433.tif 000012
【図１２】
0006763433.tif 000013
【図１３】
0006763433.tif 000014
【図１４】
0006763433.tif 000015
【図１５】
0006763433.tif 000016
【図１６】
0006763433.tif 000017
【図１７】
0006763433.tif 000018
【図１８】
0006763433.tif 000019
【図１９】
0006763433.tif 000020
【図２０】
0006763433.tif 000021