(57)【特許請求の範囲】
【請求項１】
テキストデータを収集する収集処理部と、
前記テキストデータに含まれる単語のランキングを作成する分析処理部と、
レコメンド対象のユーザにかかる属性を取得し、前記ランキング及び前記属性に応じて前記単語を取捨選択し、取捨選択された前記単語に関連付けられた商材を提示するレコメンド処理部と、を含み、
前記レコメンド処理部はさらに、前記属性に基づいてレコメンドを禁止すべき商材を特定し、前記禁止すべき商材を提示させない又は提示を抑制する制御を行う
レコメンドシステム。
【請求項２】
前記レコメンド処理部はさらに、前記属性に基づいてレコメンドを許可すべき商材を特定し、前記許可すべき商材を提示させ又は提示を促進する制御を行う
請求項１記載のレコメンドシステム。
【請求項３】
前記レコメンド処理部は、前記テキストデータが収集された地域又はメディア、前記ランキング及び前記属性に応じて前記単語を取捨選択し、取捨選択された前記単語に関連付けられた商材を提示する
請求項１又は２記載のレコメンドシステム。
【請求項４】
前記分析処理部は、前記テキストデータを形態素解析して得られた単語群に含まれる各単語に、前記テキストデータが収集された地域又はメディアを対応付け、
前記レコメンド処理部は、
前記レコメンド対象の地域又はメディアをさらに取得し、
前記単語を取捨選択する際に、前記取得した地域又はメディアに対応付けられたものを取捨選択する
請求項１乃至３いずれか１項記載のレコメンドシステム。
【請求項５】
前記分析処理部は、前記単語群に含まれる各単語の出現数をカウントすることにより、前記ランキングを作成する
請求項４記載のレコメンドシステム。
【請求項６】
前記分析処理部は、複数の集計期間夫々における前記単語の出現数の変動に基づいて、前記ランキングを作成する
請求項５記載のレコメンドシステム。
【請求項７】
前記分析処理部は、複数の集計期間夫々における前記単語の出現数の変動を所定の分布に従って変換することにより、前記ランキングを作成する
請求項６記載のレコメンドシステム。
【請求項８】
コンピュータが備える制御装置が、
テキストデータを収集する収集処理ステップと、
前記テキストデータに含まれる単語のランキングを作成する分析処理ステップと、
レコメンド対象のユーザにかかる属性を取得し、前記ランキング及び前記属性に応じて前記単語を取捨選択し、取捨選択された前記単語に関連付けられた商材を提示するレコメンド処理ステップと、を実行し、
前記レコメンド処理ステップは、さらに、前記属性に基づいてレコメンドを禁止すべき商材を特定し、前記禁止すべき商材を提示させない又は提示を抑制する制御を行うことを含む
レコメンド方法。
【請求項９】
テキストデータを収集する収集処理ステップと、
前記テキストデータに含まれる単語のランキングを作成する分析処理ステップと、
レコメンド対象のユーザにかかる属性を取得し、前記ランキング及び前記属性に応じて前記単語を取捨選択し、取捨選択された前記単語に関連付けられた商材を提示するレコメンド処理ステップと、を
コンピュータに、実行させ、
前記レコメンド処理ステップは、さらに、前記属性に基づいてレコメンドを禁止すべき商材を特定し、前記禁止すべき商材を提示させない又は提示を抑制する制御を行うことを含む、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はレコメンドシステム、レコメンド方法及びプログラムに関し、例えばエンドユーザに適した商材をレコメンドする技術に関する。
【背景技術】
【０００２】
従来より、消費者の購買履歴等のデータを基に消費者の嗜好等を分析し、消費者に適した商材を提案するレコメンド技術が知られている。最近では、例えば、消費者が属するセグメントにおいて売上が多い商材や、消費者の購入商品と共に購入されることの多い商材を消費者に対して提示する手法が提案されている。
【０００３】
しかしながら、従来の購買履歴データに基づくレコメンドにおいては、例えばテレビ、ＳＮＳ、ニュースサイト等で話題となった商材を、リアルタイムにレコメンドすることが困難であった。すなわち、商材が話題になりはじめた時点では、多くのユーザの購買履歴データにまだ当該商品の影響が生じていないため、当該商材が他のユーザにレコメンドされることも少なく、レコメンドの最適な機会を逸することがあった。
【０００４】
また、従来の購買履歴データに基づくレコメンドにおいては、例えば店舗が小規模である場合等には購買履歴データの蓄積が少なく、レコメンドの信頼性が相対的に低くなるという課題があった。
【０００５】
ところで、テキストマイニング技術の分野では、コンピュータの性能向上を背景に、多量のテキストデータを単語レベルに分解し、出現頻度の高い単語をリアルタイムに抽出することが可能となっている。そこで、このようなテキスト処理技術を、上述のレコメンド用途に適用することにより、上記課題の解決を図った事例も存在する。
【０００６】
特許文献１には、ブログやウェブサイトに含まれるテキストコンテンツを分析して、複数の商品同士の適合度を予め算出しておくこと、及び、ユーザがオークションサイトにおいて商品検索を行った際に、検索された商品との適合度が高い他の商品をユーザに推薦することが記載されている。
【０００７】
特許文献２には、ニュースコンテンツを分析して時事に連動した商品を抽出し、当該商品にかかるレコメンド広告をユーザに提示することが記載されている。
【０００８】
特許文献３には、特定の商品についてユーザがインターネット上に投稿した評価を分析し、ユーザ間の類似度に基づくクラスタリングを行うこと、及び、サービス対象者が属するクラスタに基づいて当該サービス対象者に提供すべきサービスを決定することが記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−１３９９２８号公報
【特許文献２】特開２０１０−０４４５８４号公報
【特許文献３】特開２０１２−０９９１１５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１乃至３にかかる構成は、ユーザ固有の事情（例えば国、地域、宗教、年齢等。以下、単に属性と称する。）に配慮したレコメンドを十分に実施できていない。例えば、従来のレコメンド技術によれば、あるユーザに対してレコメンドすべきでない、不適切な商材をレコメンドしてしまう場合がある。具体的には、ユーザが外国へ旅行に行った際に、現地で話題となっている商材であるものの、ユーザの自国では禁止されている商材が画面に表れてしまうことなどがある。
【００１１】
本発明は、このような問題点を解決するためになされたものであり、ユーザの属性に配慮したレコメンドを行うことができるレコメンドシステム、レコメンド方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係るレコメンドシステムは、テキストデータを収集する収集処理部と、前記テキストデータに含まれる単語のランキングを作成する分析処理部と、レコメンド対象のユーザにかかる属性を取得し、前記ランキング及び前記属性に応じて前記単語を取捨選択し、取捨選択された前記単語に関連付けられた商材を提示するレコメンド処理部と、を含むものである。
【００１３】
本発明に係るレコメンド方法は、テキストデータを収集する収集処理ステップと、前記テキストデータに含まれる単語のランキングを作成する分析処理ステップと、レコメンド対象のユーザにかかる属性を取得し、前記ランキング及び前記属性に応じて前記単語を取捨選択し、取捨選択された前記単語に関連付けられた商材を提示するレコメンド処理ステップと、を含むものである。
【００１４】
本発明に係るプログラムは、上記レコメンド方法をコンピュータに実行させるためのプログラムである。
【発明の効果】
【００１５】
本発明により、ユーザの属性に配慮したレコメンドを行うことができるレコメンドシステム、レコメンド方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態１のレコメンドシステム１００の構成を示す図である。
【図２】本発明の実施の形態１のレコメンドシステム１００の動作を示す図である。
【図３】本発明の実施の形態１のレコメンドシステム１００の動作を示す図である。
【図４】本発明の実施の形態１の収集ＤＢ００３の一例を示す図である。
【図５】本発明の実施の形態１の商材ＤＢ００８の一例を示す図である。
【図６】本発明の実施の形態１の単語ＤＢ００４１の一例を示す図である。
【図７】本発明の実施の形態１の同義語ＤＢ００４２の一例を示す図である。
【図８】本発明の実施の形態１のランキングＤＢ００６の一例を示す図である。
【図９】本発明の実施の形態１の属性ＤＢ０１０の一例を示す図である。
【図１０】本発明の実施の形態１のトレンドランキング生成処理の概念を示す図である。
【図１１】本発明の実施の形態２のランキングＤＢ００６の一例を示す図である。
【図１２】本発明の実施の形態３の補正テーブルの一例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
＜実施の形態１＞
まず、図１を用いて、本発明の実施の形態１にかかるレコメンドシステム１００の構成について説明する。
【００１８】
レコメンドシステム１００は、サーバコンピュータ等により構成される情報処理システムである。サーバコンピュータは、制御プログラムに基づいて所定の処理を実行する中央制御装置、制御プログラムや各種データを保持する記憶装置、及び外部システムとの間でデータの入出力を行う入出力装置とを含む。レコメンドシステム１００は、物理的に単一の装置である必要はなく、複数のサーバコンピュータ等が連携して処理を実行する構成であってもよい。
【００１９】
レコメンドシステム１００は、外部システムであるニュースサイト２００、ＥＣサイト３００、及び属性情報サイト４００と通信可能に接続される。ニュースサイト２００、ＥＣサイト３００、属性情報サイト４００も、それぞれサーバコンピュータ等により構成される情報処理システムである。なお、レコメンドシステム１００は、ニュースサイト２００、ＥＣサイト３００、属性情報サイト４００の全部または一部の構成を含んでいても良い。
【００２０】
ニュースサイト２００は、記事や発言等、公開情報としてのテキストデータ（以下、単に記事００１と称する）を配信するシステムを指す。例えばＳＮＳ（ソーシャルネットワーキングサービス、例えばＴｗｉｔｔｅｒ（登録商標）、Ｆａｃｅｂｏｏｋ（登録商標）等）、ブログ（例えばａｍｅｂａ（登録商標）、ｇｏｏ（登録商標）等）、ニュース（例えばＹａｈｏｏ！（登録商標）ニュース、ＩＴｍｅｄｉａ（登録商標）等）等のサービスを提供するウェブサイトが、ニュースサイト２００に含まれる。
【００２１】
ＥＣサイト３００は、商材の販売機能を有するシステムを指す。ＥＣサイト３００は、取扱商材の一覧を格納した商材ＤＢ００８を含む。商材ＤＢ００８は、商材名のほか、当該商材をレコメンドする際に利用可能なレコメンド情報（例えば商材説明文、商材画像、参照ＵＲＬ等）を格納している。また、ＥＣサイト３００は、商材の販売に係る種々の機能を提供するＥＣシステム００９を含む。ＥＣシステム００９は、後述のレコメンド処理部００７から受け取った情報に基づいて、レコメンドすべき商材を商材ＤＢ００８から抽出し、所定の媒体、例えばメールマガジンの本文や、ウェブページ上の広告スペースなどに抽出した商材を宣伝するための情報（レコメンド）を表示させる。
【００２２】
レコメンドシステム１００は、収集処理部００２、収集ＤＢ００３、単語ＤＢ、同義語ＤＢ００４、分析処理部００５、ランキングＤＢ００６、及びレコメンド処理部００７を含む。上記各処理部は、中央制御装置が、記憶装置に保持された制御プログラムに従って処理を実行することにより実現される論理的な処理部である。また、上記各ＤＢは、記憶装置に形成される論理的に記憶部である。
【００２３】
収集処理部００２は、ニュースサイト２００の記事００１から記事のテキストデータを取得し、収集ＤＢ００３に格納する処理を行う。
【００２４】
収集ＤＢ００３は、ニュースサイト２００から収集された記事のテキストデータを格納する。
【００２５】
単語ＤＢ００４１は、レコメンドの対象となる商材と、当該商材と紐付けられた単語とを対応付けたリストを格納する。同義語ＤＢ００４２は、単語ＤＢ００４１に格納された単語と、当該単語と同一視できる同義語とを対応付けたリストを格納する。
【００２６】
分析処理部００５は、収集処理部００２が収集したテキストデータを対象に、種々の処理を行う。具体的には、分析処理部００５は、収集ＤＢ００３に格納されたテキストデータを単語レベルに分解する。また、分析処理部００５は、テキストデータを分解して得られた単語のうち、同義語ＤＢ００４２に格納された同義語と一致するものを、同義語ＤＢ００４２において当該同義語に対応付けられている単語（すなわち単語ＤＢ００４１に登録されている単語）で置換する処理を行う。さらに、分析処理部００５は、テキストデータを分解して得られ、かつ前記置換処理が施された単語のうち、単語ＤＢ００４１に格納された単語と一致する単語について、テキストデータ内における当該単語の出現回数をカウントし、カウント数に基づいて単語のランキングを決定し、決定したランキングを後述のランキングＤＢ００６に格納する。
【００２７】
ランキングＤＢ００６は、単語の「人気ランキング」や「トレンドランキング」に関するデータを格納する。「人気ランキング」とは、所定の期間内においてカウント数の多い順に単語を並べたランキングである。「トレンドランキング」とは、カウント数を基にした所定の演算により得られる「変換後カウント値」の大きい順に単語を並べたランキングである。「変換後カウント値」は、所定の期間内においてカウント数の上昇率が大きい単語（＝トレンドを示す単語）について、より大きな値が得られるよう定義される。よって、「人気ランキング」は、コンスタントに多く使用される単語を拾うことができ、「トレンドランキング」は、ある時点において急激に話題に上るようになった単語を拾うことができるといえる。ランキングＤＢ００６は、このような相互補完的な２つの単語ランキングのいずれをも提供することができる。
【００２８】
レコメンド処理部００７は、商材のレコメンドに関する種々の処理を行う。具体的には、レコメンド処理部００７は、ＥＣサイト３００のＥＣシステム００９（後述）から、レコメンドのターゲットとなるユーザに関する属性情報を取得する。また、レコメンド処理部００７は、属性情報サイト４００の属性ＤＢ０１０から、ユーザの属性情報に関連する禁止リスト又は許可リストを取得する。さらに、レコメンド処理部００７は、ランキングＤＢ００６から、ランキング上位の所定数の単語を取得する。このとき、レコメンド処理部００７は、前記禁止リストに含まれる単語を除外するか、ランキングを下げる処理をしたうえで取得できる。あるいは、レコメンド処理部００７は、前記許可リストに含まれる単語を特に抽出するか、あるいはランキングを上げる処理をしたうえで取得できる。そして、レコメンド処理部００７は、単語ＤＢ００４１において前記取得した単語に関連付けられている商材を、ＥＣシステム００９に対して返却する。
【００２９】
属性情報サイト４００は、後述の商材ＤＢ００８を提供するためのサイトである。属性情報サイト４００は独立のサイトであっても良く、レコメンドシステム１００やＥＣサイト３００が属性情報サイト４００の機能を兼ねるものであっても良い。
【００３０】
属性ＤＢ０１０は、ユーザの属性と商材との関係を定義した禁止リスト、許可リストの少なくともいずれか一方を格納する。禁止リストは、ユーザの属性（例えば国、地域、宗教、年齢）と、当該ユーザにレコメンドすべきでない商材と、を対応付けたリストである。許可リストは、ユーザの属性と、当該ユーザにレコメンドして良い商材とを対応付けたリストである。
【００３１】
つづいて、図２及び図３のフローチャートを用いて、本発明の実施の形態１にかかるレコメンドシステム１００の動作について説明する。レコメンドシステム１００の動作は、（１）事前準備、（２）ランキング生成、（３）レコメンドの３つの段階を含む。
【００３２】
（１）事前準備
Ｓ１：単語ＤＢ００４１、同義語ＤＢ００４２の作成
はじめに、事前準備として、単語ＤＢ００４１に単語リストを格納しておく。図６に、単語リストの一例を示す。図６の単語リストは、カラム「単語ＩＤ」「単語名」「商材ＩＤ」を含むレコードを１以上含む。「単語ＩＤ」はレコードの識別子である。また単語リストの「商材ＩＤ」は、商材ＤＢ００８（後述）の「商材ＩＤ」と共通である。
【００３３】
図５に、商材ＤＢ００８の一例を示す。商材ＤＢ００８は、ＥＣサイト３００が取り扱う商材の一覧であって、カラム「商材ＩＤ」「商品名」「商品説明」等を含むレコードを１以上含む。「商材ＩＤ」はレコードの識別子である。「商品名」「商品説明」はそれぞれ、商品の名称、及び商品の内容を説明するテキストデータである。
【００３４】
ここで単語ＤＢ００４１は、例えば商材ＤＢ００８を解析することによって自動的に生成することとしても良い。典型的には、レコメンドシステム１００が有する単語ＤＢ生成部（図示しない）が、商材ＤＢ００８を参照し、「商品説明」に含まれる単語を抽出する。そして単語ＤＢ生成部は、当該「商品説明」から抽出した単語と、当該「商品説明」に対応付けられている「商品ＩＤ」と、を紐付けて、単語リストのレコードの１つとして登録する。
【００３５】
また、同義語ＤＢ００４２には同義語リストを格納しておく。図７に、同義語リストの一例を示す。図７の同義語リストは、カラム「同義語ＩＤ」「置換前」「置換後」を含むレコードを１以上含む。「同義語ＩＤ」はレコードの識別子である。同義語リストの「置換後」には、単語ＤＢ００４１の「単語名」に定義済みの単語を指定すべきである。レコメンドシステム１００は、後段のランキング生成処理において、「置換前」に定義された単語を、「置換後」に定義された単語と同一視する。
【００３６】
（２）ランキング生成
ランキング生成処理（Ｓ２乃至Ｓ６）は、典型的にはバッチ処理として実行される。すなわち、レコメンドシステム１００は、例えば一定の間隔でＳ２乃至Ｓ６を実行することができる。
【００３７】
Ｓ２：ニュースサイトからテキストデータを取得
収集処理部００２は、ニュースサイト２００を参照し、記事００１のテキストデータを取得する。記事００１は、典型的にはウェブサイト上で配信されるニュース、ＳＮＳ、ブログ等のテキストコンテンツであるが、商材のレコメンドに有用と思われるあらゆるソースが提供するテキストコンテンツであって良い。
【００３８】
収集処理部００２は、取得したテキストデータを収集ＤＢ００３に格納する。図４に、収集ＤＢ００３の一例を示す。図４の収集ＤＢ００３は、カラム「ｔｅｘｔＩＤ」「取得時刻」「地域」「メディア」「テキスト内容」を含むレコードを１以上含む。「ｔｅｘｔＩＤ」はレコードの識別子である。「取得時刻」「地域」「メディア」「テキスト内容」は、それぞれテキストデータが取得された時刻、テキストデータが配信されていた地域（例えばニュースサイト２００の所在地、テキストデータの言語が使用されている地域等）、ニュースサイト２００のメディア名、及びテキストデータの内容である。
【００３９】
Ｓ３：テキストデータを単語に分解
分析処理部００５は、収集ＤＢ００３のレコードの「テキスト内容」カラムよりテキストデータを取得する。分析処理部００５は、取得したテキストデータを対象に形態素解析を行い、テキストデータを単語レベルに分解する。形態素解析により、例えば「Ｔｏｍａｔｏ体にいいらしい」というテキストデータは、「Ｔｏｍａｔｏ」「体」「に」「いい」「らしい」という複数の単語に分解される。なお、形態素解析の具体的なアルゴリズムについては公知であるため、ここでは詳細な説明を省略する。
分析処理部００５は、収集ＤＢ００３の全てのレコードについて上記処理を行う。
【００４０】
Ｓ４：単語を置換
分析処理部００５は、Ｓ３で得た単語を、同義語ＤＢ００４２に従って置換する。すなわち、同義語ＤＢ００４２は、Ｓ３で得た単語夫々について、同義語リストの「置換前」カラムと照合し、一致する場合は当該単語を「置換後」カラムの内容で置換する。例えば、同義語リストが図７のように定義されている場合、Ｓ３で抽出された単語「Ｔｏｍａｔｏ」は、同義語リストのレコード「ＤＧ００１」に従って、「トマト」に置換される。この場合、分析処理部００５は、Ｓ４にかかる処理の結果として、単語群「トマト」「体」「に」「いい」「らしい」を得る。分析処理部００５は、これらの単語群を、テキストデータの取得元である収集ＤＢ００３のレコードの「取得時刻」カラムの内容と対応付けて保持する。
分析処理部００５は、収集ＤＢ００３の全てのレコードについて上記処理を行う。
【００４１】
Ｓ５：単語のカウント及びランキング情報生成
分析処理部００５は、Ｓ４にかかる処理結果を分析し、ランキングＤＢ００６に反映させる。
【００４２】
ランキングＤＢ００６は、テキストデータ中の単語の出現頻度を、所定の期間毎に集計したリストである。図８に、ランキングＤＢ００６の一例を示す。図８のランキングＤＢ００６は、カラム「ランキングＩＤ」「カウント時刻」「期間」「単語名」「商材ＩＤ」「カウント数」「変換後カウント値」を含む１以上のレコードを含む。「ランキングＩＤ」はレコードの識別子である。「カウント時刻」はレコードの生成時刻である。「単語名」は集計対象の単語である。「期間」「カウント数」はそれぞれ、単語の出現頻度の集計期間、集計期間における単語の出現数である。「商材ＩＤ」は単語に紐付けられている商材であって、商材ＤＢ００８の「商材ＩＤ」と共通である。
なお、図８に示すように、ランキングＤＢ００６はカラム「変換後カウント値」を含んでも良い。「変換後カウント値」の意義は後述する。
【００４３】
本実施の形態では、分析処理部００５は、Ｄａｉｌｙ（日）、Ｗｅｅｋｌｙ（週）、Ｍｏｎｔｈｌｙ（月）、及びＡｌｌ（全期間）の４種類の期間について、集計を行うものとする。なお、集計期間はこの例によらず任意に定めることができることは勿論である。
【００４４】
一例として、Ｄａｉｌｙ（日）の集計処理について説明する。分析処理部００５は、Ｓ４にかかる処理結果の中から、「取得時刻」が現在時刻から過去１日の間に該当する単語群を抽出する。そして分析処理部００５は、抽出した単語群と単語ＤＢ００４１とを比較する。そして、抽出した単語群のなかに単語ＤＢ００４１の単語リストに示された単語が含まれるか否かを判断し、含まれる場合は何個含まれるかをカウントする。例えば、集計期間中に「トマト」という単語が２回出現していた場合、カウント数は「２」である。最後に、分析処理部００５はカウント結果をランキングＤＢ００６に登録する。例えば分析処理部００５はレコード「ＲＫ００１」を生成し、「カウント時刻」として現在時刻、「期間」として集計期間である「Ｄａｉｌｙ」、「単語名」としてカウントされた単語「トマト」、「商材ＩＤ」として単語ＤＢ００４１において「トマト」に紐付けられている商材ＩＤ「ＳＺ００２」、「カウント数」として「トマト」のカウント数「２」を格納する。
分析処理部００５は、カウントされた全ての単語について同様のレコードを生成する。
【００４５】
また、分析処理部００５は、Ｗｅｅｋｌｙ（週）、Ｍｏｎｔｈｌｙ（月）、及びＡｌｌ（全期間）の各集計期間についても、同様の集計処理を行う。これらの期間の集計処理と上述のＤａｉｌｙ（日）の集計処理との主な違いは、分析処理部００５が、Ｓ４にかかる処理結果の中から、「取得時刻」が現在時刻から過去１週の間、現在時刻から１月の間、又は全期間に該当する単語群を抽出する点である。
図８は、上述の４種類の集計期間全てについてカウントを行った後のランキングＤＢ００６の状態を示している。
【００４６】
Ｓ６：トレンドランキング情報生成
商材ＤＢ００８が「変換後カウント値」カラムを有する場合、分析処理部００５は「変換後カウント値」を算出し、商材ＤＢ００８に格納する処理を行う。「変換後カウント値」、「トレンドランキング」を生成するために用いられるデータである。
【００４７】
ここで「トレンドランキング」の意義について説明する。上述のＳ５で算出した「カウント数」によれば、所定の期間内においてカウント数の多い順に単語を並べた「人気ランキング」を提供できる。しかしながら、「人気ランキング」にはコンスタントかつ頻繁に使用される特定の単語が常時含まれ、結果としてユーザに毎回同じような商材が表示される懸念がある。一方、ここで生成する「トレンドランキング」は、ある集計期間と、その後続の集計期間との比較において、カウント数が急激に変化した単語を抽出するものである。具体的には、例えばカウント数の上昇の度合いを示す「変換後カウント値」を算出し、「変換後カウント値」の大きい順に単語を並べ替えることで「トレンドランキング」を生成できる。この「トレンドランキング」によれば、ユーザに対し、時機ごとに異なる商材をレコメンドできるという効果が期待できる。
【００４８】
「変換後カウント値」の計算方法は種々考えられ、例えば以下のような計算式を利用できる。
【００４９】
［例１］連続する期間におけるカウント値の差分
計算式：ある集計期間における「変換後カウント値」＝ある集計期間における「カウント数」−直前の集計期間における「カウント数」
【００５０】
例えば、期間「Ｄａｉｌｙ」で定期的に集計が行われ、商材ＤＢ００８に日々データが追加されているものとする。ここで、ある集計日の単語「トマト」のカウント数が「２」であり、その前日の単語「トマト」のカウント数が「１」であった。この場合、分析処理部００５は、当日のカウント数「２」−前日のカウント数「１」＝「１」を、「変換後カウント値」として算出する。
【００５１】
しかしながら、例１の場合、普段から「カウント数」の値が大きな商材については「変換後カウント数」の値も大きくなり、「カウント数」の値が相対的に小さな商材については「変換後カウント数」の値も相対的に小さくなる傾向がある。よって、「カウント数」の値が比較的小さな商材に生じた変化を、ランキングに反映させることができない。この課題を解決した計算例が以下の［例２］である。
【００５２】
［例２］同一基準（正規分布）への変換
計算式：「変換後カウント値」＝（「カウント数」−平均値μ）／標準偏差σ
ここで平均値μ、標準偏差σは、以下のように定義される。
平均値μ＝（Ｘ１＋Ｘ２＋Ｘ３＋・・・＋Ｘｎ）／ｎ
標準偏差σ＝√［｛（Ｘ１−μ）２＋（Ｘ２−μ）２＋・・・＋（Ｘｎ−μ）２｝／（ｎ−１）］
ここでｎ＝１，２，３・・・は集計期間、Ｘｉはその集計期間における「カウント数」である。
【００５３】
例えば、期間「Ｗｅｅｋｌｙ」で定期的に集計が行われており、単語「トマト」の過去３週間（ｎ＝３）における「カウント数」が、直近の週から順に「１０」「２０」「３０」であるものとする。このとき、平均値、標準偏差はそれぞれ以下のように計算できる。
μ＝（１０＋２０＋３０）／３＝６０／３＝２０
σ＝√［｛（１０−２０）２＋（２０−２０）２＋（３０−２０）２｝／（３−１））］
＝√［（１００＋０＋１００）／２］
＝１０
したがって、今週計算される「変換後カウント値」は以下のようになる。なお、今週の「カウント数」はＸ１＝「１０」である。
「変換後カウント値」＝（１０−２０）／１０＝−１．０
【００５４】
［例２］により得られる「変換後カウント値」の性質を、図１０に示す。［例２］の計算によれば、様々な単語のカウント数を平均値＝０、標準偏差＝１の正規分布に変換できる。これにより、普段のカウント数（カウント数の平均値）の大小に影響されることなく、普段のカウント数（カウント数の平均値）に対する変化の度合いを示す指標を「変換後カウント値」として得ることができる。例えば、図１０によれば、カウント数の平均値が「２０」である単語Ａも、カウント数の平均値が「２」である単語Ｂも、その平均値に対する変化の度合いに応じて「変換後カウント値」が適切に評価されていることが分かる。
【００５５】
なお、［例２］は正規分布変換に限定されるものではなく、例えばカイ二乗分布など他の公知の手法を採用可能であることは勿論である。
【００５６】
ここで、「人気ランキング」、［例１］方式による「トレンドランキング」、［例２］方式による「トレンドランキング」の相違を、図１０の例を用いて具体的に説明する。この例では、「人気ランキング」においては単語Ａが上位となる。１週前の「カウント数」が、単語Ａ「１０」＞単語Ｂ「３」だからである。［例１］方式による「トレンドランキング」においては単語Ｂが上位となる。２週前及び１週前のデータを利用した「変換後カウント値」が、単語Ａ「−１０」＜単語Ｂ「＋２」だからである。［例２］方式による「トレンドランキング」においては単語Ｂが上位となる。２週前及び１週前のデータを利用した「変換後カウント値」が、単語Ａ「−１」＜単語Ｂ「＋１」だからである。
【００５７】
（３）レコメンド
レコメンド生成処理（Ｓ１１乃至Ｓ１３）は、典型的にはリアルタイム処理として実行される。すなわち、レコメンドシステム１００は、例えばＥＣサイト３００からのリクエストをトリガとして、Ｓ１１乃至Ｓ１３を実行することができる。
【００５８】
Ｓ１１：ユーザの属性情報、欲しいランキング情報を入力
レコメンド処理部００７は、ＥＣサイト３００のＥＣシステム００９から、適切なレコメンドを生成するのに必要な情報、より具体的にはレコメンドに必要な単語を取捨選択するための条件を取得する。典型的には、ＥＣシステム００９が、ＥＣサイト３００のユーザに対し何らかの商材をレコメンドしたいときに、以下に示すような情報をレコメンドシステム１００のレコメンド処理部００７に対して送信する。
【００５９】
イ）レコメンド対象のユーザの属性名
例えば「日本」、「イスラム教」、「男性」など。属性名としては、後述の属性ＤＢ０１０のカラム「属性名」と共通の名称を用いる。
ロ）ランキング基準
「カウント数」又は「変換後カウント値」。あるいは「人気ランキング」又は「トレンドランキング」でも良い。
ハ）期間
「Ｄａｉｌｙ」、「Ｗｅｅｋｌｙ」、「Ｍｏｎｔｈｌｙ」、又は「ＡＬＬ」のいずれか。
ニ）カウント日
「直近」、又は日付指定（ＹＹＹＹ／ＭＭ／ＤＤ）
ホ）レコメンド個数
Ｎ（Ｎは数字）
【００６０】
Ｓ１２：属性フィルタリング
レコメンド処理部００７は、属性情報サイト４００の属性ＤＢ０１０を参照し、Ｓ１１において取得したイ）属性名と、カラム「属性名」とが一致するレコードを抽出する。
【００６１】
図９に、属性ＤＢ０１０の一例を示す。図９の属性ＤＢ０１０は、カラム「属性ＩＤ」「最終更新日」「属性名」「カテゴリ」「商材名」を含む１以上のレコードを含む。「属性ＩＤ」はレコードの識別子である。「最終更新日」はレコードの最終更新日である。「属性名」はユーザの属性を示す識別子である。「商材名」は商材の名称である。なお、「商材名」に代えて「商材ＩＤ」が格納されていても良い。「カテゴリ」には「禁止」又は「許可」が定義される。「禁止」は当該商材のレコメンドが禁止されることを示す。「許可」は当該商材のレコメンドが許可されることを示す。
【００６２】
ここで、レコメンド処理部００７が属性ＤＢ０１０から抽出したレコードのうち、「カテゴリ」が「禁止」であるレコード群に含まれる「商材名」群を禁止リストと称する。また、「カテゴリ」が「許可」であるレコード群に含まれる「商材名」群を許可リストと称する。例えば、図９の属性ＤＢ０１０から、「属性名」として「イスラム教」を指定してレコードを取得した場合、禁止リストは「豚肉」「酒」「レタス」となる。同様に「１歳未満」を属性として指定した場合、許可リストは「離乳食」となる。
【００６３】
Ｓ１３：レコメンド情報生成
レコメンド処理部００７は、ランキングＤＢ００６を参照し、Ｓ１１で取得した条件ハ）及びニ）に合致するレコードを取得する。例えば、ハ）期間が「Ｄａｉｌｙ」、ニ）カウント日が「直近」であった場合、レコメンド処理部００７は、図７のランキングＤＢ００６から、ランキングＩＤ「ＲＫ００１」「ＲＫ００２」を含むレコード群を抽出する。
【００６４】
つづいて、レコメンド処理部００７は、ランキングＤＢ００６から取得したレコード群から、Ｓ１２で取得した禁止リストに含まれる商材を含むレコードを除外する。例えば、禁止リストが「豚肉」「酒」「レタス」である場合、レコメンド処理部００７は、「レタス」を商材として含むレコード「ＲＫ００２」を、上記レコード群から除外する。
【００６５】
なお、レコメンド処理部００７は、禁止リストに含まれる商材を含むレコードを除外する代わりに、当該レコードのランキングを下げる処理を行っても良い。例えば、当該レコードの「カウント数」又は「変換後カウント値」に所定の演算を加えてその値を減少させる、当該レコードの「カウント数」又は「変換後カウント値」を、「カウント数」又は「変換後カウント値」が最も低い他のレコードと同じ又はより低い値とする等の処理を行っても良い。
【００６６】
あるいは、レコメンド処理部００７は、ランキングＤＢ００６から取得したレコード群のうち、Ｓ１２で取得した許可リストに含まれる商材を含むレコードのみを抽出することとしても良い。すなわち、ランキングＤＢ００６から取得したレコード群から、Ｓ１２で取得した許可リストに含まれない商材を含むレコードを除外する。
【００６７】
なお、レコメンド処理部００７は、許可リストに含まれる商材を含むレコードのみを抽出する代わりに、当該レコードのランキングを上げる処理を行っても良い。例えば、当該レコードの「カウント数」又は「変換後カウント値」に所定の演算を加えてその値を増加させる、当該レコードの「カウント数」又は「変換後カウント値」を、「カウント数」又は「変換後カウント値」が最も高い他のレコードと同じ又はより高い値とする等の処理を行っても良い。
【００６８】
そしてレコメンド処理部００７は、上記処理を施したレコード群から、「カウント数」又は「変換後カウント値」の大きいレコードから順に、ホ）で指定された数のレコードを抽出する。ここで、「カウント数」又は「変換後カウント値」のいずれを用いるかは、ロ）の指定に従う。なお、「人気ランキング」が指定されていれば「カウント数」を採用し、「トレンドランキング」が指定されていれば「変換後カウント値」を採用する。
【００６９】
最後に、レコメンド処理部００７は、最終的に抽出されたＮ個のレコードに含まれるＮ個の「商材ＩＤ」をＥＣシステム００９に返却する。
【００７０】
ＥＣシステム００９は、商材ＤＢ００８を参照し、取得した「商材ＩＤ」に一致する商材を特定して、当該商材をユーザにレコメンドする。レコメンドの形態は種々考えられるが、例えばメールマガジンの本文へ商材広告の挿入、ＥＣサイト３００が提供するウェブサイトの広告スペースへの商材の表示等を実施できる。
【００７１】
本実施の形態によれば、レコメンドシステム１００は、ニュースサイト２００において話題になっている商材を感知し、ユーザに対し自動でレコメンドすることができる。例えば、新規携帯端末の一斉リリース時直後に、人気機種や人気色を把握し、迅速にユーザにレコメンドすることができる。
【００７２】
また、本実施の形態によれば、レコメンドシステム１００は、属性フィルタリングによってユーザの属性に適した商材を的確にレコメンドすることができる。例えば、オリンピック開催中の国や地域等においても、外国旅行中のユーザに対して、ユーザの出身国や宗教等の属性に適した商材を選択的にレコメンドできる。
【００７３】
＜実施の形態２＞
実施の形態２では、収集データの地域やメディアに着目して、ユーザに対しより適切なレコメンドを行う手法を提案する。
【００７４】
例えば、日本に在住のユーザに対し、中国のＳＮＳ（例えばシナウェイボー等）から取得した記事を元にランキングを生成し、商材をレコメンドしても、当該ユーザの実際の興味や関心とは乖離しているケースが考えられる。かかる問題を解消する為、本実施の形態では、テキストデータが収集された地域やメディアにかかる情報を考慮して、ランキングＤＢ００６を作成する。
【００７５】
図１１に、本実施の形態にかかるランキングＤＢ００６の一例を示す。図１１のランキングＤＢ００６は、実施の形態１のランキングＤＢ００６（図８）と比較して、カラム「地域」「メディア」を含む点に特徴を有する。
【００７６】
図２及び図３のフローチャートを参照して、本実施の形態におけるレコメンドシステム１００の動作について説明する。なお、特に言及しないステップに関しては、レコメンドシステム１００は実施の形態１と同様に動作するものとする。
【００７７】
Ｓ３〜Ｓ４：
分析処理部００５は、収集ＤＢ００３のレコードの「テキスト内容」カラムよりテキストデータを取得し、形態素解析を行って得た単語を、同義語ＤＢ００４２に従って置換する。その後、分析処理部００５は、置換後の単語群を、テキストデータの取得元である収集ＤＢ００３のレコードの「取得時刻」及び「地域」「メディア」カラムの内容と対応付けて保持する。
【００７８】
Ｓ５：分析処理部００５は、ランキングＤＢ００６に単語を格納する際、Ｓ４において当該単語に対応付けておいた「地域」「メディア」情報を、ランキングＤＢ００６の「地域」「メディア」カラムに格納する。
【００７９】
Ｓ１１：
レコメンド処理部００７は、ＥＣサイト３００のＥＣシステム００９から、イ）〜ホ）に加えて、以下の条件ヘ）、ト）を取得する。
【００８０】
ヘ）地域別条件
例えば「日本」、「日本，アメリカ」、「日本以外」、「ＡＬＬ」等
ト）メディア別条件
例えば「Ｔｗｉｔｔｅｒ」、「Ｔｗｉｔｔｅｒ，Ｆａｃｅｂｏｏｋ」、「Ｔｗｉｔｔｅｒ以外」、「ＡＬＬ」等
【００８１】
Ｓ１３： 
レコメンド処理部００７は、ランキングＤＢ００６を参照し、Ｓ１１で取得した条件ハ）、ニ）、ヘ）及びト）に合致するレコードを取得する。例えば、ハ）期間が「Ｄａｉｌｙ」、ニ）カウント日が「直近」、へ）地域別条件が「日本」、ト）メディア別条件が「Ｔｗｉｔｔｅｒ」であった場合、レコメンド処理部００７は、図７のランキングＤＢ００６から、ランキングＩＤ「ＲＫ００１」「ＲＫ００２」を含むレコード群を抽出する。ここで、レコメンド処理部００７は、ランキングＤＢ００６において「地域」又は「メディア」カラムに「Ａｌｌ」が定義されている場合、当該レコードは全てのへ）地域別条件又はト）メディア別条件に合致するものとして扱う。また、ランキングＤＢ００６において「地域」又は「メディア」カラムに複数の値が定義されている場合、そこにへ）地域別条件又はト）メディア別条件において指定された値が含まれている場合は、合致するものとして扱う。
【００８２】
本実施の形態によれば、レコメンドシステム１００は、収集データの地域やメディアと、ユーザの属性とに応じて、レコメンドの生成方法を異ならせることができる。これにより、ユーザの興味に応じたより適切なレコメンドを実施できる。
【００８３】
＜実施の形態３＞
実施の形態３では、テキストデータの提供元の評価等に応じて、収集したテキストデータの重み付け行う手法を提案する。
【００８４】
例えば、記事００１の提供元であるニュースサイト２００の信頼度の相違に応じて、取得した記事００１の重み付けを変えたいと考えるケースがある。また、ユーザの在住国以外のニュースソースは低く評価したいと考えるケースもある。かかる課題に対処する為、本実施の形態では、テキストデータが収集された地域やメディアにかかる情報を考慮して、単語の重み付けを変動させる構成を提案する。
【００８５】
図１２に、本実施の形態において利用される補正テーブルの一例を示す。レコメンドシステム１００は、図示しない記憶領域に、カラム「補正ＩＤ」「地域」「メディア」「補正カウント倍率」を含むレコードを１以上含むテーブルを有する。「補正ＩＤ」はレコードの識別子である。「地域」「メディア」は、収集ＤＢ００３における「地域」「メディア」と共通する。「補正カウント倍率」は、単語の重み付けを変動させる際の倍率を示している。
【００８６】
図２及び図３のフローチャートを参照して、本実施の形態におけるレコメンドシステム１００の動作について説明する。なお、特に言及しないステップに関しては、レコメンドシステム１００は実施の形態１と同様に動作するものとする。
【００８７】
Ｓ３〜Ｓ４：
分析処理部００５は、収集ＤＢ００３のレコードの「テキスト内容」カラムよりテキストデータを取得し、形態素解析を行って得た単語を、同義語ＤＢ００４２に従って置換する。その後、分析処理部００５は、置換後の単語群を、テキストデータの取得元である収集ＤＢ００３のレコードの「取得時刻」及び「地域」「メディア」カラムの内容と対応付けて保持する。
【００８８】
Ｓ５：分析処理部００５は、テキストデータから抽出された単語の出現数をカウントするにあたり、まず上記補正テーブルを参照し、カラム「地域」「メディア」の内容が、Ｓ４において当該単語に対応付けておいた「地域」「メディア」情報と一致するレコードの有無を確認する。一致するレコードが存在する場合、当該レコードの「補正カウント倍率」の値を取得する。そして分析処理部００５は、単語の実際の出現数に、「補正カウント倍率」を乗じた値を、当該単語の出現数として扱い、ランキングＤＢ００６に格納する。
【００８９】
本実施の形態によれば、レコメンドシステム１００は、テキストデータが収集された地域やメディアにかかる情報を考慮して、単語の重み付けを変動させることができる。これにより、ニュースソースの性質に応じたより適切なレコメンドを行うことができる。
【００９０】
＜その他の実施の形態＞
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の実施の形態では、本発明を主にハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００９１】
１００  レコメンドシステム
２００  ニュースサイト
３００  ＥＣサイト
４００  属性情報サイト
００１  記事
００２  収集処理部
００３  収集ＤＢ
００４１  単語ＤＢ
００４２  同義語ＤＢ
００５  分析処理部
００６  ランキングＤＢ
００７  レコメンド処理部
００８  商材ＤＢ
００９  ＥＣシステム
０１０  属性ＤＢ
【図１】
0006446851.tif 000002
【図２】
0006446851.tif 000003
【図３】
0006446851.tif 000004
【図４】
0006446851.tif 000005
【図５】
0006446851.tif 000006
【図６】
0006446851.tif 000007
【図７】
0006446851.tif 000008
【図８】
0006446851.tif 000009
【図９】
0006446851.tif 000010
【図１０】
0006446851.tif 000011
【図１１】
0006446851.tif 000012
【図１２】
0006446851.tif 000013