(57)【要約】【課題】サーバでの分析負荷を抑えつつ、端末それぞれに関する分析を行うこと。【解決手段】実施形態の分析システム１は、端末１０とサーバ２０とを有する。端末１０は、収集部１５ａと、符号化部１５ｂとを有する。収集部１５ａは、該端末１０の操作のログまたは端末１０で取得可能なセンシング情報のログを収集する。符号化部１５ｂは、ログを符号化した符号化情報または符号化情報を用いたログに含まれる単語の該ログにおける出現位置を示す転置インデックスを作成する。サーバ２０は、取得部２５ａと、分析部２５ｂとを有する。取得部２５ａは、端末１０から符号化情報または転置インデックスを取得し、符号化情報を取得した場合には転置インデックスを作成する。分析部２５ｂは、転置インデックスを用いて端末１０に関する情報を分析する。【選択図】図２
2018195027.tif 000002
【特許請求の範囲】
【請求項１】
端末とサーバとを有し、
前記端末は、
該端末の操作のログまたは該端末で取得可能なセンシング情報のログを収集する収集部と、
前記ログを符号化した符号化情報または前記符号化情報を用いた前記ログに含まれる単語の該ログにおける出現位置を示すインデックス情報を作成する符号化部と、を有し、
前記サーバは、
前記端末から前記符号化情報または前記インデックス情報を取得し、前記符号化情報を取得した場合には前記インデックス情報を作成する取得部と、
前記インデックス情報を用いて前記端末に関する情報を分析する分析部と、
を有することを特徴とする分析システム。
【請求項２】
前記サーバの取得部は、前記インデックス情報を取得した場合に、取得した前記インデックス情報を用いて、前記サーバに蓄積されている前記インデックス情報を更新することを特徴とする請求項１に記載の分析システム。
【請求項３】
前記端末の前記符号化部は、該端末のネットワークへの接続状態またはリソースの状況に応じて、前記インデックス情報を作成するか否かを切り替えることを特徴とする請求項１または２に記載の分析システム。
【請求項４】
端末が、
該端末の操作のログまたは該端末で取得可能なセンシング情報のログを収集し、
前記ログを符号化した符号化情報または前記符号化情報を用いた前記ログに含まれる単語の該ログにおける出現位置を示すインデックス情報を作成する処理と、
サーバが、
前記端末から前記符号化情報または前記インデックス情報を取得し、前記符号化情報を取得した場合には前記インデックス情報を作成し、
前記インデックス情報を用いて前記端末に関する情報を分析する処理と
を実行することを特徴とする分析方法。
【請求項５】
端末に、
該端末の操作のログまたは該端末で取得可能なセンシング情報のログを収集し、
前記ログを符号化した符号化情報または前記符号化情報を用いた前記ログに含まれる単語の該ログにおける出現位置を示すインデックス情報を作成する処理と、
サーバに、
前記端末から前記符号化情報または前記インデックス情報を取得し、前記符号化情報を取得した場合には前記インデックス情報を作成し、
前記インデックス情報を用いて前記端末に関する情報を分析する処理と
を実行させることを特徴とする分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分析システム、分析方法及び分析プログラムに関する。
【背景技術】
【０００２】
従来から、モバイル端末におけるアプリケーション操作等のログをサーバで収集し分析することにより、モバイル端末を使用するユーザの趣味や趣向を特定し、このユーザに特化したおすすめ情報を作成して配信するシステムが知られている。このようなおすすめ情報は頻繁に更新される。
【０００３】
例えば、ユーザがパソコンのＷｅｂ通販サービスにおいて様々な商品を参照した場合に、デスクトップあるいはノート等の本体の選択結果をもとに、関連するソフトウェア、周辺機器等を含むおすすめ情報を表示する。
【０００４】
近年では、モバイル端末が転送負荷を軽減するためにログを圧縮してサーバに送信し、サーバが圧縮されたログをもとに分析する技術が期待されている。例えば、圧縮されたファイルを部分的に解凍する技術や、効率よくログを検索する技術が開示されている。
【０００５】
また、サーバは、ログを分析する際にログを検索するために、ＭａｐＲｅｄｕｃｅ等のプログラミングモデルを用いて、ログに含まれる単語と各単語を含む文書ＩＤとその単語の位置とを示す転置インデックスを作成する。具体的に、図１３を参照してＭａｐＲｅｄｕｃｅによる転置インデックスの作成について説明する。図１３は、従来の転置インデックスの作成を説明するための説明図である。サーバは、図１３に例示するように、単語ごとに区切られた文書に含まれる単語をリストアップし、各単語について含まれている文書の文書ＩＤとその文書内での位置とを対応づけて、転置インデックスを作成する。その際、図１３に例示するように、転置インデックスは、文書を単語に区切り（パス１）、単語リストを作成し（パス２）、重複を統合する（パス３）という３パス処理で作成される。図１３に示す例では、例えば、「Ｔｈｉｓ」という単語が文書Ａの０番目と文書Ｂの０番目との２箇所に出現したことが示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１４１８３０号公報
【特許文献２】国際公開第２０１３／１３６４１８号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、モバイル端末において、収集したログを圧縮する場合、従来のＺＩＰ等の圧縮フォーマットでは、一度に大量のログを圧縮しなければ、圧縮率を安定して高めることができない。また、モバイル端末において圧縮対象のログを一度に大量に圧縮すると、モバイル端末のメモリやストレージ資源を圧迫してしまう。また、サーバで受信したログの検索および分析に必要な転置インデックスを作成するためには、従来のフォーマットで圧縮されたログを伸長しなければならず、処理コストが高くなってしまう。
【０００８】
１つの側面では、本発明は、サーバでの分析負荷を抑えつつ、端末それぞれに関する分析を行うことができる分析システム、分析方法及び分析プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
一態様では、分析システムは、端末とサーバとを有する。端末は、収集部と、符号化部とを有する。収集部は、該端末の操作のログまたは該端末で取得可能なセンシング情報のログを収集する。符号化部は、前記ログを符号化した符号化情報または前記符号化情報を用いた前記ログに含まれる単語の該ログにおける出現位置を示すインデックス情報を作成する。サーバは、取得部と、分析部とを有する。取得部は、前記端末から前記符号化情報または前記インデックス情報を取得し、前記符号化情報を取得した場合には前記インデックス情報を作成する。分析部は、前記インデックス情報を用いて前記端末に関する情報を分析する。
【発明の効果】
【００１０】
一実施形態によれば、サーバでの分析負荷を抑えつつ、端末それぞれに関する分析を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１の分析処理を説明するための説明図である。
【図２】図２は、実施例１に係る分析システムの構成を示す機能ブロック図である。
【図３】図３は、ログを例示する図である。
【図４】図４は、実施例１に係る符号化部の処理を説明するための説明図である。
【図５】図５は、実施例１に係る符号化部の処理を説明するための説明図である。
【図６】図６は、分析部の処理を説明するための説明図である。
【図７】図７は、実施例１に係る分析処理の流れを示す図である。
【図８】図８は、従来の分析処理の流れを示す図である。
【図９】図９は、実施例２に係る分析処理の流れを示す図である。
【図１０】図１０は、実施例３に係る分析処理の流れを示す図である。
【図１１】図１１は、応用例に係る転置インデックスを説明するための説明図である。
【図１２】図１２は、分析プログラムを実行するコンピュータのハードウェア構成例を示す図である。
【図１３】図１３は、従来の転置インデックスの作成を説明するための説明図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して本願に係る分析システム、分析方法及び分析プログラムについて説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
［分析処理の説明］
図１は、実施例１の分析処理を説明するための説明図である。図１に示すように、本実施例において、端末は、ユーザによる操作や、端末で取得可能なセンシング情報等のログを収集して蓄積し、一定間隔で蓄積したログを圧縮してサーバに送信する。また、端末は、ログを圧縮する際にあわせて１パスの処理でインデックス情報の一例である転置インデックスを作成し、サーバに送信する。サーバは、受信した圧縮ログを蓄積し、受信した転置インデックスを用いて、蓄積した圧縮ログを伸長せずに検索し分析することにより、負荷を抑えてユーザに対するおすすめ情報を作成する。
【００１４】
［システム構成］
図２は、実施例１に係る分析システム１の構成を示す機能ブロック図である。図２に示すように、分析システム１は、端末１０と、サーバ２０とを有し、ＬＡＮ（Local  Area  Network）やインターネット等のネットワーク３０を介して相互に通信可能に接続されている。
【００１５】
端末１０は、例えば、ネットワーク３０に無線で接続されるモバイル端末で実現され、図示を省略するが複数存在し、それぞれが異なるユーザに使用される。この端末１０は、後述する分析処理により、ユーザによるアプリケーション等の操作入力を受け付けて、操作のログを収集して蓄積し、蓄積したログを圧縮してサーバ２０に送信する。また、端末１０は、サーバ２０が作成したおすすめ情報をユーザに対して提示する。なお、端末１０は、ネットワーク３０を介さずに、サーバ２０とＢｌｕｅｔｏｏｔｈ（登録商標）等の無線通信により直接通信してもよい。また、端末１０はモバイル端末に限定されず、ネットワーク３０に有線で接続されてもよい。
【００１６】
サーバ２０は、ユーザによる端末１０の操作等のログを取得し、これを分析してログのユーザに対するおすすめ情報を作成して該当の端末１０に配信するサーバ装置である。本実施例のサーバ２０は、後述する分析処理によって、端末１０から圧縮されたログを取得して、ログを分析する際の検索に利用する転置インデックスを作成する。
【００１７】
［端末の構成］
一実施形態として、端末１０は、上記の分析処理がパッケージソフトウェアやオンラインソフトウェアとして提供される分析プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、端末１０は、ユーザが使用する情報処理装置に上記の分析プログラムをインストールさせることにより実装することができる。この他、端末１０は、上記のユーザが使用する情報処理装置などをクライアント端末として収容するサーバ装置に上記の分析プログラムをインストールさせることにより実装することができる。この場合、端末１０は、売上管理等の業務システムの一部として実装されることとしてもよいし、上記の分析処理により実現されるサービスをアウトソーシングによって提供するクラウドとして実装することとしてもかまわない。
【００１８】
図２には、符号１１〜符号１５に対応する機能部が示されているが、これはあくまで一例に過ぎず、図示された機能部の一部を省略、あるいは、図示以外の機能部が端末１０に備わることを妨げない。例えば、ユーザが使用する情報処理装置が端末１０として実装される場合、パーソナルコンピュータや携帯端末装置などが標準装備する機能部、例えば入力デバイス、画像または音声の出力デバイス、通信インタフェースなどの他、スキャナ等の読取部などの機能部を有することとしてもかまわない。また、上記の業務システムの一部として端末１０が実装される場合、後述する単語コード割り当て部１４ａ、圧縮ログ１４ｂおよび転置インデックス１４ｃ以外のデータを管理するデータベースが端末１０の記憶部１４、例えば主記憶装置や補助記憶装置などに記憶されることとしてもよい。
【００１９】
図２に示すように、端末１０は、あくまで一例として、通信部１１と、入力部１２と、出力部１３と、記憶部１４と、制御部１５とを有する。なお、図２には、データの入出力の関係を表す実線が示されているが、説明の便宜上、最小限の部分について示されているに過ぎない。すなわち、各処理部に関するデータの入出力は、図示の例に限定されず、図示以外のデータの入出力、例えば処理部及び処理部の間、処理部及びデータの間、または、処理部及び外部装置の間のデータの入出力が行われることとしてもかまわない。
【００２０】
通信部１１は、ネットワーク３０を介して、サーバ２０等の外部装置と制御部１５とのデータ通信を制御する処理部である。通信部１１は、例えば、ＮＩＣ（Network  Interface  Card）等の通信装置に対応する。
【００２１】
入力部１２は、端末１０に各種の情報を入力するための入力装置である。例えば、入力部１２は、マウスやキーボード、タッチパネル、入力ボタン等に対応する。
【００２２】
出力部１３は、各種情報を表示する表示デバイスである。例えば、出力部１３は、ＬＣＤ（Liquid  Crystal  Display）やＣＲＴ（Cathode  Ray  Tube）等の表示デバイスに対応する。
【００２３】
記憶部１４は、制御部１５で実行されるＯＳ（Operating  System）やアプリケーションプログラム等の各種プログラムに用いられるデータを記憶するデバイスである。例えば、記憶部１４は、端末１０における主記憶装置として実装される。例えば、記憶部１４には、各種の半導体メモリ素子、例えばＲＡＭ（Random  Access  Memory）やフラッシュメモリを採用できる。また、記憶部１４は、補助記憶装置として実装することもできる。この場合、ＨＤＤ（Hard  Disk  Drive）、光ディスクやＳＳＤ（Solid  State  Drive）等を採用できる。
【００２４】
記憶部１４は、制御部１５で実行されるプログラムに用いられるデータの一例として、後述する単語コード割り当て部１４ａ、圧縮ログ１４ｂおよび転置インデックス１４ｃを記憶する。このデータ以外にも、記憶部１４には、他の電子データを併せて記憶することもできる。
【００２５】
制御部１５は、各種のプログラムや制御データを格納する内部メモリを有し、これらによって種々の処理を実行するものである。
【００２６】
例えば、制御部１５は、中央処理装置、いわゆるＣＰＵ（Central  Processing  Unit）として実装される。制御部１５は、必ずしも中央処理装置として実装されずともよく、ＭＰＵ（Micro  Processing  Unit）やＤＳＰ（Digital  Signal  Processor）として実装されることとしてもよい。このように、制御部１５は、プロセッサとして実装されればよく、その種別が汎用型か特化型であるかは問われない。また、制御部１５は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等のハードワイヤードロジックによっても実現できる。
【００２７】
制御部１５は、各種のプログラムを実行することによって下記の処理部を仮想的に実現する。例えば、制御部１５は、図２に示すように、収集部１５ａと、符号化部１５ｂとを有する。
【００２８】
収集部１５ａは、端末１０の操作のログや端末１０で取得可能なセンシング情報のログを収集する処理部である。例えば、収集部１５ａは、ユーザごとに商品の購入やサイトの閲覧等のログを収集する。図３は、収集部１５ａが収集するログを例示する図である。図３には、例えば、ユーザを識別するユーザＩＤが「ｕｓｅｒＢ」であるユーザが、２０１６年２月１日１０時１０分に商品を識別するコンテンツＩＤが「ｃ１２３」である商品を「購入」する操作を行ったというログが例示されている。このように、本実施例において収集されるログは、端末操作日時、ユーザＩＤ、コンテンツＩＤ、および操作等の項目ごとに区切られ、各項目に対応する内容を表す単語が記述されたものである。
【００２９】
符号化部１５ｂは、収集部１５ａが収集したログを符号化した符号化情報を作成する処理部である。例えば、符号化部１５ｂは、符号化情報として、後述する単語コード割り当て部１４ａを用いてログを圧縮する。また、符号化部１５ｂは、単語コード割り当て部１４ａと圧縮したログとを用いて、転置インデックスを作成する。なお、符号化部１５ｂは、圧縮したログを記憶部１４の圧縮ログ１４ｂに格納する。また、符号化部１５ｂは、作成した転置インデックスを記憶部１４の転置インデックス１４ｃに格納する。
【００３０】
図４および図５は、符号化部１５ｂの処理を説明するための説明図である。まず、符号化部１５ｂは、図４に例示するように、ログの項目ごとに区切られている単語のそれぞれを、記憶部１４に格納されている単語コード割り当て部１４ａを用いて符号化する。ここで、単語コード割り当て部１４ａは、図４に例示するように、単語と各単語に割り当てるバイト数の小さいコードとを対応付けた情報である。単語コード割り当て部１４ａは、予め登録されている静的コード辞書と逐次登録される動的コード辞書とで構成される。すなわち、ログ中に出現する頻度が高い単語に対しては、予め１〜２バイトのコードが割り当てられ、静的コード辞書に登録される。一方、ログへの出現頻度の低い単語に対しては、出現した際に２〜３バイトのコードが割り当てられ、動的コード辞書に登録される。図４には、例えば「購入」という単語に対して、「２５ｈ」というコードが予め静的コード辞書に登録されていることが示されている。
【００３１】
また、本実施例において、符号化情報は、ログに含まれる単語の該ログにおける出現位置を示す転置インデックスを含む。すなわち、符号化部１５ｂは、図５に例示するように、単語コード割り当て部１４ａと圧縮ログ１４ｂとを用いて、単語と各単語のログ中の出現位置とを対応づけたビットマップ型転置インデックスを作成する。図５に例示する転置インデックスにおいては、縦軸方向は単語コード割り当て部１４ａの縦軸方向の位置に対応する各単語と同一の単語を示し、縦軸方向の各位置に対応する各単語のログ中の出現位置を示すビットマップが記述されている。すなわち、転置インデックスは、単語コード割り当て部１４ａの静的コード辞書に対応した静的コードインデックスと、動的コード辞書に対応した動的コードインデックスとで構成される。なお、出現位置は、１ログ中の出現位置で表されてもよいし、複数のログ群中の出現位置で表されてもよい。
【００３２】
このように、本実施例において、符号化部１５ｂは、ログの圧縮を行う処理と同時に、１パス処理で転置インデックスを作成することができる。また、ログが追加された場合に、符号化部１５ｂは、転置インデックスを再作成する必要がないので、容易に転置インデックスを追加できる。
【００３３】
［サーバの構成］
一実施形態として、サーバ２０は、上記の分析処理がパッケージソフトウェアやオンラインソフトウェアとして提供される分析プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、サーバ２０は、通販サイトの管理者が使用する情報処理装置に上記の分析プログラムをインストールさせることにより実装することができる。この他、サーバ２０は、上記の通販サイトの管理者が使用する情報処理装置などをクライアント端末として収容するサーバ装置に上記の分析プログラムをインストールさせることにより実装することができる。この場合、サーバ２０は、売上管理などの業務システムの一部として実装されることとしてもよいし、上記の分析処理により実現されるサービスをアウトソーシングによって提供するクラウドとして実装することとしてもかまわない。
【００３４】
図２の説明に戻る。図２には、符号２１〜符号２５に対応する機能部が示されているが、これはあくまで一例に過ぎず、図示された機能部の一部を省略、あるいは、図示以外の機能部がサーバ２０に備わることを妨げない。例えば、通販サイトの管理者が使用する情報処理装置がサーバ２０として実装される場合、パーソナルコンピュータや携帯端末装置などが標準装備する機能部、例えば入力デバイス、画像または音声の出力デバイス、通信インタフェースなどの他、スキャナ等の読取部などの機能部を有することとしてもかまわない。また、上記の業務システムの一部としてサーバ２０が実装される場合、後述する単語コード割り当て部２４ａ、圧縮ログ２４ｂおよび転置インデックス２４ｃ以外のデータを管理するデータベースがサーバ２０の記憶部２４、例えば主記憶装置や補助記憶装置などに記憶されることとしてもよい。
【００３５】
図２に示すように、サーバ２０は、あくまで一例として、通信部２１と、入力部２２と、出力部２３と、記憶部２４と、制御部２５とを有する。なお、図２には、データの入出力の関係を表す実線が示されているが、説明の便宜上、最小限の部分について示されているに過ぎない。すなわち、各処理部に関するデータの入出力は、図示の例に限定されず、図示以外のデータの入出力、例えば処理部及び処理部の間、処理部及びデータの間、または、処理部及び外部装置の間のデータの入出力が行われることとしてもかまわない。
【００３６】
通信部２１は、ネットワーク３０を介して、端末１０等の外部装置と制御部２５とのデータ通信を制御する処理部である。通信部２１は、例えば、ＮＩＣ等の通信装置に対応する。
【００３７】
入力部２２は、サーバ２０に各種の情報を入力するための入力装置である。例えば、入力部２２は、マウスやキーボード、タッチパネル、入力ボタン等に対応する。
【００３８】
出力部２３は、各種情報を表示する表示デバイスである。例えば、出力部２３は、ＬＣＤやＣＲＴ等の表示デバイスに対応する。
【００３９】
記憶部２４は、制御部２５で実行されるＯＳやアプリケーションプログラム等の各種プログラムに用いられるデータを記憶するデバイスである。例えば、記憶部２４は、サーバ２０における主記憶装置として実装される。例えば、記憶部２４には、各種の半導体メモリ素子、例えばＲＡＭやフラッシュメモリを採用できる。また、記憶部２４は、補助記憶装置として実装することもできる。この場合、ＨＤＤ、光ディスクやＳＳＤ等を採用できる。
【００４０】
記憶部２４は、制御部２５で実行されるプログラムに用いられるデータの一例として、後述するように、単語コード割り当て部２４ａ、圧縮ログ２４ｂおよび転置インデックス２４ｃを記憶する。このデータ以外にも、記憶部２４には、他の電子データを併せて記憶することもできる。
【００４１】
制御部２５は、各種のプログラムや制御データを格納する内部メモリを有し、これらによって種々の処理を実行するものである。
【００４２】
例えば、制御部２５は、中央処理装置、いわゆるＣＰＵとして実装される。制御部２５は、必ずしも中央処理装置として実装されずともよく、ＭＰＵやＤＳＰとして実装されることとしてもよい。このように、制御部２５は、プロセッサとして実装されればよく、その種別が汎用型か特化型であるかは問われない。また、制御部２５は、ＡＳＩＣやＦＰＧＡ等のハードワイヤードロジックによっても実現できる。
【００４３】
制御部２５は、各種のプログラムを実行することによって下記の処理部を仮想的に実現する。例えば、制御部２５は、図２に示すように、取得部２５ａと、分析部２５ｂとを有する。
【００４４】
取得部２５ａは、端末１０から符号化情報を取得する処理部である。例えば、取得部２５ａは、符号化情報として、圧縮されたログと、単語コード割り当て部と、作成された転置インデックスとを端末１０から取得して、記憶部２４に格納する。例えば、取得部２５ａは、取得した単語コード割り当て部を記憶部２４の単語コード割り当て部２４ａに蓄積し、圧縮されたログを圧縮ログ２４ｂに蓄積し、転置インデックスを転置インデックス２４ｃに蓄積する。また、取得部２５ａは、取得した転置インデックスを用いて記憶部２４に蓄積されている転置インデックス２４ｃを更新する。ここで、圧縮ログ２４ｂと対応する単語コード割り当て部２４ａおよび転置インデックス２４ｃとは互いの識別情報が付与される等の方式により対応付けされている。
【００４５】
分析部２５ｂは、取得された符号化情報を用いて端末に関する情報を分析する処理部である。例えば、分析部２５ｂは、端末を操作するユーザに関する、趣味、習慣、所有物、行動、端末の利用の仕方、生活環境などの趣向を分析する。その場合に、分析部２５ｂは、協調フィルタリングを用いて、ユーザの行動を示す操作のログから商品の参照の回数や頻度や購入数などを算出し、このユーザと他のユーザの行動との類似度を算出する。また、分析部２５ｂは、行動の類似度が高い他のユーザが購入した商品の情報をおすすめ情報として作成し、分析対象のユーザの端末１０に提示する。
【００４６】
図６は、分析部２５ｂの処理を説明するための説明図である。図６に示す例では、分析部２５ｂは、協調フィルタリングを用いて、ｕｓｅｒＡとｕｓｅｒＢとがともにｃ１２３およびｃ４５６を購入していることから、ｕｓｅｒＡとｕｓｅｒＢとの行動の類似度が高いと判定する。そこで、分析部２５ｂは、ｕｓｅｒＡが購入したｃ７８９の情報をｕｓｅｒＢへのおすすめ情報として、ｕｓｅｒＢが使用する端末１０に配信して出力部１３に表示させる。
【００４７】
［処理の流れ］
図７は、実施例１に係る分析処理の流れを示す図である。一例として、図７に示す分析処理は、処理開始を指示する操作入力があった場合等に起動される。まず、端末１０の収集部１５ａが、ユーザによる操作のログを収集する。次に、符号化部１５ｂがログを符号化した符号化情報として、単語コード割り当て部１４ａを用いてログを圧縮し（ステップＳ１）、記憶部１４の圧縮ログ１４ｂに保存する（ステップＳ２）。また、符号化部１５ｂは、ステップＳ１の処理にて、同時に単語コード割り当て部１４ａを用いて転置インデックスを作成し、転置インデックス１４ｃに保存する。また、符号化部１５ｂは、一定の間隔で、圧縮ログと対応する単語コード割り当て部と転置インデックスとをサーバ２０に転送する（ステップＳ３）。
【００４８】
サーバ２０においては、取得部２５ａは、端末１０から転送された圧縮ログ、転置インデックスおよび単語コード割り当て部を取得して、記憶部２４に蓄積する（ステップＳ４）。また、分析部２５ｂが、圧縮ログ２４ｂに蓄積された圧縮ログを、対応する転置インデックスおよび単語コード割り当て部を用いて検索し、端末１０を操作するユーザの趣向を分析する（ステップＳ５）。また、分析部２５ｂは、分析に基づいてこのユーザへのおすすめ情報を作成し（ステップＳ６）、端末１０に配信する（ステップＳ７）。おすすめ情報を受信した端末１０は、出力部１３におすすめ情報を表示させる。これにより、一連の分析処理が終了する。
【００４９】
［効果の一側面］
上述してきたように、本実施例に係る分析システム１は、端末１０とサーバ２０とを有する。端末１０は、収集部１５ａと、符号化部１５ｂとを有する。収集部１５ａは、該端末１０の操作のログや端末１０で取得可能なセンシング情報のログを収集する。符号化部１５ｂは、ログを符号化した符号化情報を作成する。本実施例において、符号化情報は、ログに含まれる単語の該ログにおける出現位置を示す転置インデックスを含む。サーバ２０は、取得部２５ａと、分析部２５ｂとを有する。取得部２５ａは、端末１０から符号化情報を取得する。分析部２５ｂは、取得された符号化情報を用いて端末１０を操作するユーザに関する趣向を分析する。
【００５０】
ここで、図８は従来の分析処理の流れを示す図である。図８に例示するように、従来の分析処理において、端末は、収集したログをサーバに転送する処理の負荷を軽減するために、ログをＺＩＰ等のフォーマットで圧縮する（ステップＳ１）。サーバは、取得したログを分析する際に検索するために、ＭａｐＲｅｄｕｃｅ等で転置インデックスを作成する（図１３参照）。ＭａｐＲｅｄｕｃｅで転置インデックスを作成する際、サーバは、圧縮ログを伸長しなければならず（ステップＳ４１）、また、上述したように３パスの処理が必要となる。
【００５１】
これに対し、本実施例の分析システム１は、１パスの処理で転置インデックスを作成することができる。また、分析システム１は、端末１０から取得した圧縮ログを伸長することなくそのままの形式で用いて検索しユーザの趣向を分析することができる。したがって、本実施例の分析システム１によれば、モバイル端末１０で収集されたログを、サーバ２０で負荷を抑えて分析することができる。
【実施例２】
【００５２】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。なお、以下では、上述した実施例１と異なる点について説明する。
【００５３】
上述した実施例１では、端末１０の符号化部１５ｂが、ログを圧縮する際に同時に転置インデックスを作成し、圧縮ログと転置インデックスとを含む符号化情報をサーバ２０に転送していたが、これに限定されない。例えば、符号化部１５ｂは符号化情報として圧縮ログのみを作成してもよい。図９は、実施例２に係る分析処理の流れを示す図である。本実施例において、符号化情報とは単語コード割り当て部１４ａを用いて圧縮されたログを意味する。この場合に、図９に示すように、端末１０の符号化部１５ｂは、圧縮ログと対応する単語コード割り当て部とをサーバ２０に転送する（ステップＳ３）。そして、サーバ２０の取得部２５ａが、このように転置インデックスを含まない符号化情報を取得した場合に、受信した圧縮ログと対応する単語コード割り当て部とを用いて転置インデックスを作成する（ステップＳ４）。
【００５４】
このように、サーバ２０が転置インデックスを作成することにより、端末１０からサーバ２０への情報の転送負荷を軽減できる。仮に、サーバ２０の分析部２５ｂがログの分析を行う際に転置インデックスを必要としない場合には、本実施例は好適である。
【実施例３】
【００５５】
上述した実施例１および２の他、端末１０の符号化部１５ｂは、符号化情報として転置インデックスをサーバ２０に転送してあってもよい。図１０は、実施例３に係る分析処理の流れを示す図である。本実施例において、符号化情報とは、単語コード割り当て部１４ａを付帯した転置インデックスを意味する。この場合に、端末１０の符号化部１５ｂは、ログを圧縮する際に（ステップＳ１）、同時に単語コード割り当て部１４ａを用いて転置インデックスを作成し、転置インデックスと対応する単語コード割り当て部とをサーバ２０に転送する（ステップＳ３１）。また、サーバ２０の取得部２５ａが、受信した転置インデックスと単語コード割り当て部とを用いて圧縮ログを作成すなわち復元することができる。
【００５６】
このように、端末１０がサーバ２０に符号化情報として転置インデックスと対応する単語コード割り当て部を転送し、圧縮ログを転送しないようにすることにより、端末１０からサーバ２０への情報の転送負荷を大幅に軽減できる。仮に、サーバ２０がログそのものを用いずに転置インデックスのみを用いて分析を行う場合には、本実施例は好適である。
【００５７】
［応用例］
端末１０の符号化部１５ｂが、該端末１０の位置等によるネットワークへの接続状態またはストレージ残量、バッテリー等のリソースの状況に応じて、転置インデックスを作成するか否かを切り替えてもよい。例えば、ネットワークの環境が良い場合には、符号化部１５ｂは、転置インデックスを作成せずに、圧縮ログおよび単語コード割り当て部をサーバ２０に転送することにより、端末１０の負荷を低減させることができる。また、ネットワークの環境が悪い場合には、符号化部１５ｂは、転置インデックスを作成してサーバ２０に転送することにより、転置インデックスの更新頻度の低下を防止することができる。
【００５８】
上述した実施例１〜３で作成されたビットマップ型転置インデックスを、さらに圧縮してもよい。図１１は、応用例にかかる転置インデックスを説明するための説明図である。図１１に例示するように、例えば、ビットマップ型転置インデックスを、隣り合う２つの素数を底としてハッシュ化することにより、サイズを縮小させることができる。図１１には、底を２９としてハッシュ化したものと底を３１としてハッシュ化したものとのサイズを縮小した２つの転置インデックスを生成することが例示されている。このようなハッシュ化を、ビットマップ型転置インデックスの横軸方向の単語の出現位置について、あるいは、縦軸方向の単語（単語を識別する情報）について行うことにより、動的コードインデックスが増加してもメモリを圧迫することなく容易に追加することができる。
【００５９】
［分析プログラム］
上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１２を用いて、上記の実施例と同様の機能を有する分析プログラムを実行するコンピュータの一例について説明する。
【００６０】
図１２は、分析プログラムを実行するコンピュータのハードウェア構成例を示す図である。図１２に示すように、コンピュータ１００は、入力装置１１０と、ディスプレイ１２０と、通信部１３０とを有する。さらに、このコンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０とを有する。これら１１０〜１８０の各部はバス１４０を介して接続される。
【００６１】
ＨＤＤ１７０には、図１２に示すように、上記の実施例１で示した制御部１５と同様の機能を発揮する分析プログラム１７０ａが記憶される。この分析プログラム１７０ａは、図３に示した制御部１５の各構成要素と同様、統合又は分離してもかまわない。すなわち、ＨＤＤ１７０には、必ずしも上記の実施例１で示した全てのデータが格納されずともよく、処理に用いるデータがＨＤＤ１７０に格納されればよい。
【００６２】
このような環境の下、ＣＰＵ１５０は、ＨＤＤ１７０から分析プログラム１７０ａを読み出した上でＲＡＭ１８０へ展開する。この結果、分析プログラム１７０ａは、図１２に示すように、分析プロセス１８０ａとして機能する。この分析プロセス１８０ａは、ＲＡＭ１８０が有する記憶領域のうち分析プロセス１８０ａに割り当てられた領域にＨＤＤ１７０から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。なお、ＣＰＵ１５０では、必ずしも上記の実施例１で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【００６３】
なお、上記の分析プログラム１７０ａは、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶されておらずともかまわない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ１００がこれらの装置から各プログラムを取得して実行するようにしてもよい。
【符号の説明】
【００６４】
１  分析システム
１０  端末
１１  通信部
１２  入力部
１３  出力部
１４  記憶部
１４ａ  単語コード割り当て部
１４ｂ  圧縮ログ
１４ｃ  転置インデックス
１５  制御部
１５ａ  収集部
１５ｂ  符号化部
２０  サーバ
２１  通信部
２２  入力部
２３  出力部
２４  記憶部
２４ａ  単語コード割り当て部
２４ｂ  圧縮ログ
２４ｃ  転置インデックス
２５  制御部
２５ａ  取得部
２５ｂ  分析部
３０  ネットワーク
【図１】
2018195027.tif 000003
【図２】
2018195027.tif 000004
【図３】
2018195027.tif 000005
【図４】
2018195027.tif 000006
【図５】
2018195027.tif 000007
【図６】
2018195027.tif 000008
【図７】
2018195027.tif 000009
【図８】
2018195027.tif 000010
【図９】
2018195027.tif 000011
【図１０】
2018195027.tif 000012
【図１１】
2018195027.tif 000013
【図１２】
2018195027.tif 000014
【図１３】
2018195027.tif 000015