以下に、本願に係る提供装置、提供方法及び提供プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る提供装置、提供方法及び提供プログラムが限定されるものではない。1つまたは複数の実施形態の詳細は、以下の説明および図面に記載される。また、1つまたは複数の実施形態の各々は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の1つまたは複数の実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
〔1.情報提供システムの構成〕
まず、図1を参照して、実施形態に係る情報提供システムの構成について説明する。実施形態に係る情報提供システムは、情報提供装置100を有する。実施形態に係る情報提供装置100は、提供装置の一例である。
図1は、実施形態に係る情報提供システムの構成例を示す図である。図1に示すように、実施形態に係る情報提供システム1は、ユーザ装置101〜10n(nは任意の自然数)と、企画者装置20と、情報提供装置100と、SNS(Social Network Service)サーバ200と、Q&A(Questions and Answers)サーバ300とを含む。本明細書では、ユーザ装置101〜10nを区別する必要がない場合は、ユーザ装置101〜10nを「ユーザ装置10」と総称する。
情報提供システム1において、ユーザ装置10、企画者装置20、情報提供装置100、SNSサーバ200およびQ&Aサーバ300は、それぞれネットワークNと有線又は無線により接続される。ネットワークNは、例えば、インターネット網等のネットワーク網である。図1中では図示していないが、情報提供システム1は、複数台の企画者装置20や、複数台の情報提供装置100や、複数台のSNSサーバ200や、複数台のQ&Aサーバ300を含んでもよい。
ユーザ装置10は、ユーザ(利用者)によって利用される情報処理装置である。ユーザは、例えば、インターネット上で提供される各種サービスを利用する者である。ユーザ装置10は、スマートフォン、デスクトップ型PC(Personal Computer)、ノート型PC、タブレット型PC等のクライアント装置を含む、任意のタイプの情報処理装置であってもよい。
企画者装置20は、企画者によって利用される情報処理装置である。企画者は、例えば、企画(プラン)や計画(プロジェクト)を立てる者である。例えば、企画者が書籍の編集者である場合に、企画は、書籍出版の企画(例えば、テーマ、著者)であり得る。ユーザ装置10の場合と同様に、企画者装置20は、クライアント装置を含む、任意のタイプの情報処理装置であってもよい。
情報提供装置100(提供装置の一例に相当)は、各種情報を提供する情報処理装置である。例えば、情報提供装置100は、企画者の企画または計画を支援するための情報を、企画者装置20に提供する。情報提供装置100は、サーバを含む、任意のタイプの情報処理装置であってもよい。情報提供装置100は、ネットワークNを介して、有線又は無線によりユーザ装置10、企画者装置20、SNSサーバ200およびQ&Aサーバ300と通信を行う。複数台の情報提供装置100が、ウェブサーバ、アプリケーションサーバ、データベースサーバ等の各種サーバの機能をそれぞれ提供してもよい。
SNSサーバ200は、ユーザ装置10のユーザにSNSを提供する情報処理装置である。例えば、SNSサーバ200は、ユーザがテキスト、画像または動画をソーシャルネットワークに投稿することを可能にするユーザインタフェース(例えば、SNSページ)を提供する。SNSサーバ200は、サーバを含む、任意のタイプの情報処理装置であってもよい。
Q&Aサーバ300は、ユーザ装置10のユーザにQ&Aサービスを提供する情報処理装置である。例えば、Q&Aサーバ300は、ユーザが他のユーザに質問をしたり、他のユーザからの質問に回答したり、各種質問に対する回答を閲覧したりすることを可能にするユーザインタフェース(例えば、Q&Aページ)を提供する。Q&Aサーバ300は、サーバを含む、任意のタイプの情報処理装置であってもよい。
〔2.情報提供処理〕
次に、図2、図3、図4、図5および図6を参照して、例示的な実施形態に係る情報提供処理について説明する。
〔2−1.例示的な実施形態の概要〕
書籍の編集者の編集作業の1つは、新刊の企画立案や、企画の売り込みである。例えば、書籍の編集者は、新刊の著者候補と新刊のテーマ候補との組み合わせを挙げ、新刊の企画を著者候補に売り込むことがある。一般的に、編集者は、この編集作業を人手で行っている。例えば、編集者は、インターネットを用いて、著者候補とテーマ候補との組み合わせを網羅したリストを作ることがある。編集者は、例えば、様々な評価指標(例えば、SNSのフォロワーの数、動画の再生回数、ソーシャルボタンのクリック数)に基づいて、著者候補とテーマ候補との組み合わせのリストを作ることができる。
しかしながら、編集者は、インターネットを用いて人手で様々なページ(例えば、SNSページ、動画共有サービス)から情報を収集するため、著者候補とテーマ候補との組み合わせのリストの作成に手間と時間がかかる。編集者は、このような編集作業の時間を減らし、かつヒットする書籍を作成したいと思うことがある。
そこで、例示的な実施形態に係る情報提供装置100は、検索履歴(例えば、トラフィック、ボリューム)等のウェブデータを用いて、著者候補とテーマ候補との組み合わせのリストを生成し、生成されたリストを編集者に提供する。例えば、情報提供装置100は、人名やトレンドに対応する検索クエリのボリューム(検索者数)を用いて、ウェブデータから、著者候補およびテーマ候補を決定する。そして、情報提供装置100は、自然言語処理の手法(例えば、単語埋め込み)を用いて、著者候補とテーマ候補との間の意味的類似性を決定し、決定された意味的類似性に基づいて、著者候補とテーマ候補との組み合わせのリストを生成する。このようにして、情報提供装置100は、著者候補とテーマ候補との組み合わせのリストのデータを、(例えば、アプリケーション、各種ページ等のユーザインタフェースを介して)編集者に提供することができる。
その結果、例示的な実施形態に係る情報提供装置100は、著者候補とテーマ候補との組み合わせを網羅するための手間と時間を削減することができる。さらに、情報提供装置100は、検索履歴等のウェブデータを網羅的に解析することができるため、情報提供装置100は、著者候補やテーマ候補の取りこぼしを防止することができる。例えば、情報提供装置100は、編集者が思いもよらない、著者候補とテーマ候補との組み合わせを、編集者に提示することができる。このため、情報提供装置100は、新たなインスピレーションを編集者に与えることができる。
〔2−2.情報提供システムの処理フロー〕
以下では、図2を参照して、例示的な実施形態に係る情報提供システム1の処理フローについて説明する。
図2は、コンテンツ制作のための指標の候補と、コンテンツ制作に関わる人物の候補との組み合わせを示す情報を提供するための情報提供システム1の一例を示す図である。図2の例では、コンテンツ制作のための指標の候補と、コンテンツ制作に関わる人物の候補との組み合わせを示す情報である組み合わせ情報を提供する情報提供処理が、図1を参照して上述した情報提供システム1によって行われる。
図2の例では、情報提供システム1の企画者装置20は、企画者Pによって利用される。企画者装置20は、企画者Pによって利用されるノート型PCとして示されている。図2の例では、企画者Pは、書籍企画を立てる企画者である。企画者Pは、例えば、出版社の編集者である。企画者Pは、出版される書籍の内容(例えば、テーマ)を決定したり、この書籍を執筆する著者を探したりする。
ところで、出版社の編集者は、一般的に、書籍出版のための各種リサーチ(例えば、新刊のための材料(ネタ)の収集)を、人手で行っている。例えば、出版社の編集者は、書籍のテーマや著者の候補に関する情報を求めて、インターネット検索をすることがある。例えば、出版社の編集者は、今流行っているテーマをインターネットで探すことがある。
説明のための一例として、図2の企画者Pが、インターネット上のメディア(例えば、SNS、ブログ、動画共有サービス、作品配信サイト、掲示板、ニュース記事)から複数のテーマの候補を集め、ビジネス分野で流行っているテーマが「節約」である、と決定したと仮定する。このテーマ「節約」は、例えば、食費、光熱費および通信費のための節約術に関する。さらに、企画者Pが、インターネット上のメディアから複数の著者の候補を集め、節約家として活動する人物「サブ(例示のプロフィール名)」が「節約」に詳しい、と決定したと仮定する。このような場合、企画者Pは、「節約」を、書籍のテーマとして決定するかもしれない。さらに、企画者Pは、人物「サブ」を、「節約」をテーマとする書籍(例えば、節約全般をテーマとする書籍)の著者候補として決定するかもしれない。そして、企画者Pは、テーマ「節約」に関する書籍出版の企画を、この著者候補に提案するかもしれない。
しかしながら、書籍のテーマと著者候補との組み合わせの決定は、多大な労力と時間を要する場合がある。例えば、上述の企画者Pは、インターネット上のメディアからの集められた複数のテーマの中からテーマを特定するための編集作業(例えば、情報の分類、情報の吟味)を行う。そして、企画者Pは、例えば、SNS、ブログまたは作品配信サイトの登録者の数(例えば、フォロワー、読者または会員の数)等の指標を用いて、複数のテーマの中からテーマを決定する。人手で行われるこのような編集作業は、多大な労力と時間を要する場合がある。
加えて、企画者Pのバイアス(例えば、先入観、情報バイアス)が、書籍のテーマと著者候補との組み合わせの決定にかかる場合がある。例えば、企画者Pは、インターネット上の特定のメディア(例えば、ブログ)を閲覧し、テーマと著者候補との組み合わせを、企画者Pの感覚で判断する。例えば、企画者Pは、節約家として活動する人物「サブ」のブログを閲覧し、この人物は節約全般に詳しい、と考えるかもしれない。しかしながら、この人物は、実際には、節約レシピに詳しいかもしれないが、他の節約術(例えば、光熱費、通信費の節約)には詳しくないかもしれない。このような場合、この人物が、節約全般をテーマとする書籍の著者として適切であるとは限らない。あるいは、この人物は、「自炊」をテーマとする書籍(例えば、自炊の入門書)の著者として適切であるかもしれない。
そこで、図2の例示的な実施形態では、情報提供装置100は、書籍の編集作業に要する労力と時間を軽減するとともに、書籍のテーマ候補と著者候補との適切な組み合わせを決定するために、以下に説明される情報提供処理を実行する。
はじめに、SNSサーバ200は、ユーザ装置101から、投稿情報を受け付ける(ステップS1)。
例えば、SNSサーバ200は、テキスト、写真、動画、音声等の各種データを、SNSページ(例えば、「いいね」等のユーザの意思を示すためのボタンのコンポーネントを含むページ)を介して、ユーザ装置101から受信する。図2の例では、ユーザ装置101は、ユーザU1によって利用されるスマートフォンとして示されている。ユーザU1は、例えば、SNSのユーザである人物「マル子(例示のプロフィール名)」によって投稿された節約術に関するメッセージ(例えば、「私は、TVをコンセントから抜いた。」)に、「いいね」等の反応を示す。あるいは、ユーザU1は、人物「マル子」の節約術についてのメッセージ(「マル子さん、私も、TVをコンセントから抜きました。」))を投稿してもよい。このようにして、SNSサーバ200は、人物の名前(例えば、プロフィール名)を含む投稿、プロフィール名に関連付けられた反応(例えば、「いいね」等の反応)等のウェブデータを、投稿情報として収集することができる。
次いで、情報提供装置100は、SNSサーバ200から、投稿情報を取得する(ステップS2)。
例えば、情報提供装置100は、ソーシャルネットワークに投稿された投稿情報を、SNSサーバ200から受信する。受信された投稿情報は、例えば、人名や、SNSのユーザの人物名を含む。受信された投稿情報は、SNSのユーザの人物名(例えば、実名、プロフィール名)に関連付けられた反応(例えば、「いいね」等の反応)を示すデータを含んでもよい。これにより、情報提供装置100は、著者候補(例えば、一次候補)として、投稿情報に含まれる人名(例えば、実名、プロフィール名等の名前)を取得することができる。
なお、図2の例では、情報提供装置100は、SNSサーバ200から投稿情報を取得しているが、これに限定されるものではない。情報提供装置100は、検索エンジンのシステムを実装し、検索エンジンのサービス(例えば、ウェブ検索サービス)を介して、ユーザ装置10から投稿情報を取得してもよい。
例えば、情報提供装置100は、ユーザ装置10にインストールされた検索アプリケーション(検索アプリとも呼ばれる)や、検索エンジンのページ(例えば、検索サイト、ポータルサイト)を介して、検索履歴(例えば、検索ログ)を取得してもよい。そして、情報提供装置100は、取得された検索履歴に基づいて、トラフィックソースを分析してもよい。例えば、情報提供装置100は、取得された検索履歴を用いて、ある検索クエリを入力したユーザが、この検索クエリに対応する検索結果に含まれる複数のページのうちのどのページにアクセスしたかを決定することができる。一例として、情報提供装置100は、取得された検索履歴を用いて、検索クエリ「マル子」を入力したユーザ(例えば、ユーザU1)が、検索クエリ「マル子」に対応する検索結果に含まれる複数のページのうちのあるページ「(マル子の)SNSページ」にアクセスした、と決定することができる。
一般的に、あるページ(例えば、ウェブページ)にアクセスする際に使用されるワード(例えば、検索クエリ等の語句)は、「ページへの流入ワード」と呼ばれる。例えば、上述の「(マル子の)SNSページ」への流入ワードは、検索クエリ「マル子」である。例えば、情報提供装置100は、検索ログ(例えば、ウェブページへのトラフィック)を用いて、検索クエリ「マル子」を入力したユーザが「SNSページ」にアクセスしたことを特定することができる。このようにして、情報提供装置100は、「SNSページ」への流入ワードを、上述の投稿情報として取得してもよい。例えば、検索クエリ「マル子」を入力したユーザが、検索クエリ「マル子」に対応する検索結果に含まれる複数のページのうちのあるページ「(マル子の)SNSページ」にアクセスした場合には、情報提供装置100は、語句「マル子」を、上述の投稿情報として取得してもよい。
次いで、Q&Aサーバ300は、ユーザ装置102から、検索クエリを受け付ける(ステップS3)。
例えば、Q&Aサーバ300は、検索エンジンのシステムを実装し、検索エンジンのサービスを介して、ユーザ装置102から、検索クエリを受信する。図2の例では、ユーザ装置102は、ユーザU2によって利用されるスマートフォンとして示されている。
次いで、Q&Aサーバ300は、検索クエリに対応するQ&Aを、ユーザ装置102に提供する(ステップS4)。
例えば、ユーザ装置102のユーザU2が、検索クエリに対応する検索結果に含まれる複数のページのうちのあるページ「検索クエリに対応するQ&Aページ」を選択した場合に、Q&Aサーバ300は、「検索クエリに対応するQ&Aページ」を、ユーザ装置102に提供する。一例として、Q&Aサーバ300は、検索クエリ「節約」に対応するQ&Aページとして、節約術に関するQ&Aのページや、タグ「節約」に関連付けられたQ&Aのページを、ユーザ装置102に提供することができる。
次いで、情報提供装置100は、Q&Aに対応する検索クエリを、Q&Aサーバ300から取得する(ステップS5)。
例えば、情報提供装置100は、Q&Aに対応する検索クエリを、ユーザ装置102のユーザU2の悩みを示すキーワードとして取得する。一例として、情報提供装置100は、検索クエリ「節約」を、ビジネス(例えば、お金)の悩みを示すキーワードとして取得することができる。これにより、情報提供装置100は、書籍のテーマの候補として、ビジネス(例えば、お金)の悩みを示すキーワードを取得することができる。
なお、図2の例では、情報提供装置100は、Q&Aサーバ300からQ&Aに対応する検索クエリを取得しているが、これに限定されるものではない。上述の投稿情報の場合と同様に、情報提供装置100は、検索エンジンのシステムを実装し、検索エンジンのサービスを介して、Q&Aに対応する検索クエリを取得してもよい。
例えば、情報提供装置100は、ユーザ装置10にインストールされた検索アプリや、検索エンジンのページを介して、検索履歴(例えば、検索ログ)を取得してもよい。そして、取得された検索履歴に用いて、ある検索クエリを入力したユーザが「Q&Aのページ」にアクセスしたことを特定してもよい。この場合、情報提供装置100は、「Q&Aのページ」への流入ワードを、上述のQ&Aに対応する検索クエリとして取得してもよい。例えば、検索クエリ「節約」を入力したユーザが、検索クエリ「節約」に対応する検索結果に含まれる複数のページのうちのあるページ「検索クエリ「節約」に対応するQ&Aのページ」にアクセスした場合には、情報提供装置100は、語句「節約」を、上述のQ&Aに対応する検索クエリとして取得してもよい。
次いで、情報提供装置100は、(例えば、SNSサーバ200から)取得された投稿情報から、有名になっていない人物の人物リストを生成する(ステップS6)。人物リストの生成は、図3および図4を参照して以下で詳述される。
次いで、情報提供装置100は、Q&Aサーバ300から取得された検索クエリから、悩み指数が高いキーワードをコンテンツの作成指標とした指標リストを生成する(ステップS7)。指標リストの生成は、図5を参照して以下で詳述される。
次いで、情報提供装置100は、生成された人物リストの人物と、生成された指標リストの作成指標との組み合わせから、人物と作成指標との関連度が高い組み合わせを特定する(ステップS8)。人物と作成指標との関連度が高い組み合わせの特定は、図6を参照して以下で詳述される。
その後、情報提供装置100は、特定された組み合わせを示す情報を、企画者装置20に提供する(ステップS9)。特定された組み合わせを示す情報の提供は、図6を参照して以下で詳述される。
〔2−3.人物リストの生成〕
以下では、図3および図4を参照して、コンテンツ制作に関わる人物の候補のリストである人物リストの生成の一例について説明する。
図3は、コンテンツ制作に関わる人物の候補のリストを生成する生成処理の一例を示す図である。図2を参照して上述したように、情報提供装置100は、投稿情報を取得する。情報提供装置100は、情報提供装置100内の所定の記憶領域(例えば、図7を参照して後述する投稿履歴データベース122)に、取得された投稿情報を、投稿履歴として格納する。図3の例に示されるように、投稿履歴は、投稿情報#1、投稿情報#2、投稿情報#3、投稿情報#4等の投稿情報を含む。投稿情報は、例えば、テキスト、写真、動画、音声等の各種データである。例えば、投稿情報#1が「(マル子の)SNSページ」への流入ワードである場合に、投稿情報#1は、テキスト「マル子」であってもよい。投稿情報#2が投稿されたメッセージである場合に、投稿情報#2は、テキスト「私は、TVをコンセントから抜いた。」であってもよい。同様に、投稿情報#3は、テキスト「マル子さん、私も、TVをコンセントから抜きました。」であってもよい。投稿情報#4が、「マル子がTVをコンセントから抜くこと」を示す写真、動画または音声であってもよい。
図3の例では、はじめに、情報提供装置100は、固有表現認識(Named Entity Recognition)等の手法を用いて、投稿履歴に含まれる投稿情報(例えば、テキスト)から、人名に対応するワード(例えば、「SNSページ」への流入ワード)を抽出する。投稿情報が写真、動画または音声である場合には、情報提供装置100は、画像認識、動画像認識、音声認識等の手法を用いて、投稿情報の特徴に対応するテキストを生成し、生成されたテキストから、人名に対応するワードを抽出してもよい。
次いで、情報提供装置100は、投稿履歴に含まれる投稿情報から、「SNSページ」への流入ワードのトレンドに関するトレンド情報を生成する。そして、情報提供装置100は、生成されたトレンド情報(例えば、トレンドの指標)に基づいて、投稿履歴に含まれる投稿情報から、人名に対応するワードを、1次候補の人名として抽出し、抽出された1次候補の人名を含む情報を、人名トレンド情報として生成する。
例えば、生成されたトレンド情報は、所定の期間(例えば、1年間)における流入ワード(すなわち、SNSページにアクセスする際に使用される検索クエリに対応するキーワード)の検索回数を示し得る。一例として、生成されたトレンド情報は、「SNSページ」への流入ワード「マル子」が「2019年9月20日から2020年9月20日」までの期間に検索された回数を、「検索トレンド(例えば、トレンドの指標)」として示してもよい。
情報提供装置100は、例えば、所定の期間(例えば、1年間)における流入ワードの検索回数に基づいて、投稿履歴に含まれる投稿情報から、人名に対応するワード(例えば、人名に対応するトレンドキーワード)を、1次候補の人名として抽出する。一例として、情報提供装置100は、検索トレンドに基づいて、投稿情報から抽出されたワードをソートし、上位n件(例えば、10000万件)のワードを、1次候補の人名として抽出してもよい。
例えば、投稿履歴に含まれる流入ワード「マル子」の検索トレンド(例えば、検索(キーワード)ボリューム(例えば、検索数))が上位n件(例えば、10000万件)内にランクインしている場合に、流入ワード「マル子」を、1次候補の人名として抽出してもよい。図3の例に示されるように、人名トレンド情報は、人物名#1、人物名#2、人物名#3、人物名#4等の人物名を含む。人物名#1は、例えば、「マル子」であってもよい。人物名#2は、例えば、「カモ(例示の人物名)」であってもよい。人物名#3は、例えば、「サブ」であってもよい。人物名#4は、例えば、「えもん(例示の人物名)」であってもよい。
その後、情報提供装置100は、特定の人名(例えば、有名になっている人物の人名)を示す人名リストに基づいて、人名トレンド情報に含まれる1次候補の人名から、有名になっていない人物の人名を、2次候補の人名として抽出する。そして、情報提供装置100は、抽出された2次候補の人名を含むリストを、コンテンツ制作に関わる人物の候補のリストである人物リストとして生成する。図3の例に示されるように、生成された人物リストは、人物名#1、人物名#3等の人物名を含む。
特定の人名を示す人名リストは、例えば、人名マスタ等のデータベースであり得る。人名マスタは、例えば、タレント名鑑に記載された有名人の人名を含んでもよい。情報提供装置100が検索エンジンのサービスを提供するいくつかの実装形態では、人名マスタは、検索結果とともに提供されるナレッジパネル(例えば、検索クエリに対応する人名の写真および説明を含むコンテンツ(アイテム))に関連付けられた人名を含んでもよい。情報提供装置100がニュースのサービス(例えば、ニュースサイト)を提供するいくつかの実装形態では、人名マスタは、ニュース記事に関連付けられたニュースタグに対応する人名を含んでもよい。
例えば、人物名「マル子」が人名マスタに含まれない場合に、情報提供装置100は、人物名「マル子」を、2次候補の人名として抽出する。人物名「カモ」が人名マスタに含まれる場合に、情報提供装置100は、人物名「カモ」を、2次候補の人名として抽出しない。同様に、人物名「サブ」が人名マスタに含まれない場合に、情報提供装置100は、人物名「サブ」を、2次候補の人名として抽出する。人物名「えもん」が人名マスタに含まれる場合に、情報提供装置100は、人物名「えもん」を、2次候補の人名として抽出しない。このような場合、「カモ」という名前の人物や、「えもん」という名前の人物は、有名になっている人物(例えば、芸能人、スポーツ選手)であり得る。これにより、情報提供装置100は、著者候補として容易に想定される人物を、著者候補のリストから除外することができる。
図4は、コンテンツ制作に関わる人物の候補のリストを生成する生成処理の一例を示す図である。図3の例では、情報提供装置100は、投稿情報から人名トレンド情報を生成し、生成された人名トレンド情報から人物リストを生成していているが、これに限定されるものではない。情報提供装置100が検索エンジンのサービスを提供するいくつかの実装形態では、情報提供装置100は、著者ごとの書籍売上ランキングおよび検索履歴(例えば、検索ログ)から、人物リストを生成してもよい。
情報提供装置100内の所定の記憶領域(例えば、所定の記憶装置)は、著者ごとの書籍売上ランキングを示す売上ランキング情報を記憶してもよい。図4の例に示されるように、売上ランキング情報は、著者#1、著者#2、著者#3、著者#4および著者#5の売上ランキングを示す。著者#1は、例えば、「カモ」であってもよい。著者#2は、例えば、「えもん」であってもよい。著者#3は、例えば、「まめ(例示の人物名)」であってもよい。同様に、著者#4および著者#5も、人名(例えば、実名、プロフィール名等の名前)を示し得る。
図4の例では、はじめに、情報提供装置100は、売上ランキング情報に含まれる複数の著者の中から、上位n位(nは任意の自然数)以内に入る著者を特定する。例えば、情報提供装置100は、売上ランキング情報に含まれる複数の著者の中から、ランキング1位の著者である著者#1を特定する。
次いで、情報提供装置100は、検索アプリや、検索エンジンのページを介して取得された検索履歴(例えば、検索ログ)に基づいて、特定された著者に関連する関連ワードを決定する。情報提供装置100が検索エンジンのサービスを提供するいくつかの実装形態では、情報提供装置100は、情報提供装置100内の所定の記憶領域(例えば、図7を参照して後述する検索履歴データベース121)に、取得された検索履歴を格納することができる。情報提供装置100は、所定の記憶領域に記憶された検索履歴に基づいて、特定された著者に関連する関連ワードを決定する。例えば、情報提供装置100は、検索要求に含まれる検索クエリに対応する著者(例えば、著者名に対応する語句)と、検索要求に含まれる検索クエリに対応するキーワードとの共起性に基づいて、特定された著者に関連する関連ワードを決定する。例えば、検索要求が「著者#1∧(ANDの論理演算子)関連ワード#1(人物名)」や、「著者#1∨(ORの論理演算子)関連ワード#1(人物名)」である場合に、情報提供装置100は、検索クエリに対応する著者#1と、検索クエリに対応するキーワード「関連ワード#1(人物名)」との共起性に基づいて、特定された著者#1に関連する関連ワードを決定する。
例えば、情報提供装置100は、検索クエリに対応する著者#1と、検索クエリに対応するキーワード「関連ワード#1(人物名)」との共起頻度を算出する。情報提供装置100は、算出された共起頻度が所定の条件(例えば、所定の基準)を満たすか判定し、共起頻度が所定の条件(例えば、所定の基準)を満たすと判定された場合に、キーワード「関連ワード#1(人物名)」を、特定された著者#1に関連する関連ワードとして決定する。より具体的には、情報提供装置100は、相関ルール学習(Association Rule Leaning)等の手法を用いて、検索要求に含まれる検索クエリに対応する著者と、検索要求に含まれる検索クエリに対応するキーワードとの共起性の指標(例えば、支持度、確信度)を決定することができる。
図4の例に示されるように、決定された複数の関連ワードは、関連ワード#1(人物名)、関連ワード#2(食品名)、関連ワード#3(番組名)および関連ワード#4(人物名)を含む。関連ワード#1(人物名)は、例えば、「アヒル(例示の人物名)」であってもよい。関連ワード#2(食品名)は、例えば、ネギであってもよい。関連ワード#3(食品名)は、例えば、「かもの話(例示の番組名)」であってもよい。関連ワード#4(人物名)は、例えば、「ハクチョウ(例示の人物名)」であってもよい。
その後、情報提供装置100は、固有表現認識等の手法を用いて、決定された関連ワードから、人名に対応するワードを抽出し、抽出されたワードを含むリストを、コンテンツ制作に関わる人物の候補のリストである人物リストとして生成する。図4の例に示されるように、生成された人物リストは、関連ワード#1(人物名)、関連ワード#3(人物名)等の関連ワード(人物名)を含む。
〔2−4.作成指標リストの生成〕
以下では、図5を参照して、コンテンツ制作のための指標の候補のリストである作成指標リストの生成の一例について説明する。
図5は、コンテンツ制作のための指標の候補のリストを生成する生成処理の一例を示す図である。図2を参照して上述したように、情報提供装置100は、Q&Aに対応する検索クエリを取得する。例えば、情報提供装置100は、Q&Aに対応する検索クエリを、Q&Aサーバ300から取得する。情報提供装置100が検索エンジンのサービスを提供するいくつかの実装形態では、検索アプリや、検索エンジンのページを介して取得された検索履歴(例えば、検索クエリを含む検索要求)を、情報提供装置100内の所定の記憶領域(例えば、図7を参照して後述する検索履歴データベース121)に格納することができる。図5の例に示されるように、検索履歴は、クエリ#1、クエリ#2、クエリ#3、クエリ#4等の検索クエリを含む。
図5の例では、はじめに、情報提供装置100は、検索履歴に基づいて、検索クエリに対応するキーワードと、このキーワードの出現回数とを特定する。例えば、情報提供装置100は、検索クエリに対して自然言語処理(natural language processing)を行うことで、検索履歴に含まれる検索クエリに対応するキーワードを決定する。そして、情報提供装置100は、検索履歴に基づいて、決定されたキーワードの出現回数を特定する。
次いで、情報提供装置100は、特定されたキーワードの出現回数に基づいて、特定されたキーワードの悩み指数を決定する。例えば、情報提供装置100は、キーワードの出現回数が第1の出現回数よりも多い第2の出現回数である場合の悩み指数が、キーワードの出現回数が第1の出現回数である場合の悩み指数よりも高くなるように、悩み指数を決定する。特定されたキーワードの悩み指数は、例えば、特定されたキーワードの出現回数に比例し得る。図5の例に示されるように、例えば、特定されたキーワード「キーワード#1」の出現回数は、「回数#1」である。また、特定されたキーワード「キーワード#1」の悩み指数は、「10」である。
特定されたキーワード「キーワード#1」は、例えば、「顔面神経痛」であってもよい。特定されたキーワード「キーワード#2」は、例えば、「尊厳死」であってもよい。特定されたキーワード「キーワード#3」は、例えば、「節約」であってもよい。特定されたキーワード「キーワード#4」は、例えば、「楽園」であってもよい。特定されたキーワード「キーワード#5」は、例えば、「副業」であってもよい。図2を参照して上述したように、検索クエリを入力したユーザが、検索クエリに対応する検索結果に含まれる複数のページのうちのQ&Aのページにアクセスした場合に、情報提供装置100は、検索クエリに対応するキーワードを、ユーザの悩みを示すキーワードとして取得する。このことは、検索クエリに対応するキーワードの出現回数が、ユーザ全体の悩みの度合いを示すことを意味する。
情報提供装置100が検索エンジンのサービスを提供するいくつかの実装形態では、情報提供装置100は、検索履歴に含まれる検索クエリから、「Q&Aページ」への流入ワード(すなわち、Q&Aページにアクセスする際に使用される検索クエリに対応するキーワード)のトレンドに関するトレンド情報を生成してもよい。生成されたトレンド情報は、流入ワードと、この流入ワードの出現回数と、この流入ワードの悩み指数とを含んでもよい。
例えば、生成されたトレンド情報は、所定の期間(例えば、1年間)における流入ワードの出現回数(例えば、検索回数)を示し得る。一例として、生成されたトレンド情報は、「Q&Aページ」への流入ワード「顔面神経痛」が「2019年9月20日から2020年9月20日」までの期間に検索された回数に基づいて決定された悩み指数を示してもよい。
その後、情報提供装置100は、決定された悩み指数に基づいて、特定されたキーワードからキーワードを抽出し、抽出されたキーワードを含むリストを、悩み指数が高いキーワードをコンテンツの作成指標とした(作成)指標リストとして生成する。例えば、情報提供装置100は、決定された悩み指数に基づいて、特定されたキーワードをソートし、上位n件(例えば、10000万件)のワードを、コンテンツの作成指標(例えば、書籍のテーマの候補)として抽出してもよい。
例えば、キーワード「キーワード#2」の悩み指数が上位n件(例えば、10000万件)内にランクインしている場合に、情報提供装置100は、キーワード「キーワード#2」を、コンテンツの作成指標として抽出してもよい。図5の例に示されるように、(作成)指標リストは、キーワード#2(例えば、キーワード「尊厳死」)、キーワード#3(例えば、キーワード「節約」)等のキーワードを含む。図5の例では、(作成)指標リストは、多くのユーザが、「尊厳死」や「節約」についての悩みを抱えていることを示している。このことは、多くのユーザが、「尊厳死」や「節約」をテーマとする書籍に対するニーズを持っていることを意味する。
〔2−5.提供情報の生成〕
以下では、図6を参照して、コンテンツ制作のための指標の候補と、コンテンツ制作に関わる人物の候補との組み合わせを示す情報である提供情報の生成の一例について説明する。
図6は、コンテンツ制作のための指標の候補と、コンテンツ制作に関わる人物の候補との組み合わせを示す情報を生成する生成処理の一例を示す図である。図3および図4を参照して上述したように、情報提供装置100は、コンテンツ制作に関わる人物の候補のリストである人物リストを生成する。図5を参照して上述したように、情報提供装置100は、さらに、コンテンツ制作のための指標の候補のリストである(作成)指標リストを生成する。図6の例では、情報提供装置100は、生成された人物リストおよび生成された作成指標リストに基づいて、コンテンツ制作のための指標の候補と、コンテンツ制作に関わる人物の候補との組み合わせを示す情報である提供情報を生成する。
図6の例では、はじめに、情報提供装置100は、生成された人物リストに含まれる人物名および生成された作成指標リストに含まれるキーワードにそれぞれ対応する埋め込みベクトル(単語埋め込み(Word Embedding)または分散表現とも呼ばれる)を獲得する。情報提供装置100は、例えば、所定の記憶装置(例えば、図7を参照して後述するモデルデータベース1214)から、人物名およびキーワードにそれぞれ対応する埋め込みベクトルを取得してもよい。あるいは、情報提供装置100は、ニューラル言語モデルを実装してもよい。いくつかの実装形態では、情報提供装置100は、所定のテキストデータ(例えば、単語列等のコーパス)を用いてニューラル言語モデルを訓練することによって、埋め込みベクトルを獲得することができる。
一例として、情報提供装置100は、単語列を含む訓練データを用いて、ニューラル言語モデル(例えば、対数双線形モデル)を訓練することができる。より具体的には、情報提供装置100は、埋め込みベクトルに対応する目的関数(例えば、負の対数尤度)を最小化することによって、ニューラル言語モデルに、埋め込みベクトルを学習させることができる。これにより、情報提供装置100は、所定のテキストデータ(例えば、単語列等のコーパス)から、人物名およびキーワードにそれぞれ対応する埋め込みベクトル(すなわち、ニューラル言語モデルに組み込まれた埋め込みベクトル)を獲得することができる。
情報提供装置100は、ユーザ(利用者)による検索意図や、ユーザ(利用者)により投稿された投稿履歴や、ユーザ(利用者)に対して配信された配信情報を反映したニューラル言語モデルを実装してもよい。情報提供装置100が検索エンジンのサービスを提供するいくつかの実装形態では、情報提供装置100は、検索履歴に含まれる検索クエリに対応するキーワードを、単語列を含む訓練データとして用いることができる。これにより、情報提供装置100は、検索意図(例えば、Q&Aページへの流入ワード)を反映した埋め込みベクトルや、投稿履歴(例えば、SNSページへの流入ワード)を反映した埋め込みベクトルを獲得することができる。情報提供装置100がニュースのサービス(例えば、ニュースサイト)を提供するいくつかの実装形態では、情報提供装置100は、ニュース記事を、単語列を含む訓練データとして用いることができる。これにより、情報提供装置100は、ニュース記事を反映した埋め込みベクトルを獲得することができる。その結果、情報提供装置100は、獲得される埋め込みベクトルに、トレンド(例えば、検索トレンド、ニューストレンド)を反映させることができる。このことは、獲得される埋め込みベクトル間の意味的類似性が、社会のトレンドを反映することを意味する。情報提供装置100は、オンライン学習等の手法を用いて、このようなニューラル言語モデルを更新してもよい。
次いで、情報提供装置100は、獲得された埋め込みベクトルに基づいて、生成された人物リストに含まれる人物名と生成された作成指標リストに含まれるキーワードとの間の類似性を決定する。例えば、情報提供装置100は、生成された人物リストに含まれる人物名に対応する埋め込みベクトルと、生成された作成指標リストに含まれるキーワードに対応する埋め込みベクトルとの間のコサイン類似度を算出し、算出されたコサイン類似度を、人物名とキーワードとの間の類似度として決定する。図6の例に示されるように、例えば、人物名#1とキーワード#2との間の類似度は、「0.432」である。また、人物名#1とキーワード#3との間の類似度は、「0.821」である。人物名#1は、例えば、「マル子」であってもよい。「キーワード#2」は、例えば、「尊厳死」であってもよい。特定されたキーワード「キーワード#3」は、例えば、「節約」であってもよい。意味的類似性の観点からは、例えば、人物「マル子」とキーワード「尊厳死」との間の類似度「0.432」は、語句「マル子」の意図が、語句「尊厳死」の意図から離れていることを示し得る。一方、人物「マル子」とキーワード「節約」との間の類似度「0.821」は、語句「マル子」の意図が、語句「節約」の意図に近いことを示し得る。
その後、情報提供装置100は、決定された類似性に基づいて、生成された人物リストに含まれる人物名と生成された作成指標リストに含まれるキーワードとの組み合わせから、人物名とキーワードとの組み合わせを抽出し、抽出された組み合わせを含む情報を、提供情報として生成する。例えば、情報提供装置100は、決定された類似性に基づいて、生成された人物リストに含まれる人物名と生成された作成指標リストに含まれるキーワードとの組み合わせをソートし、上位n件(例えば、100件)の組み合わせを、コンテンツ制作のための指標の候補とコンテンツ制作に関わる人物の候補との組み合わせ(例えば、著者の候補と書籍のテーマとの組み合わせ)として抽出してもよい。
例えば、人物名#1とキーワード#3との組み合わせの関連度が上位n件(例えば、100件)内にランクインしている場合に、情報提供装置100は、人物名#1とキーワード#3との組み合わせを、著者の候補と書籍のテーマとの組み合わせとして抽出してもよい。図6の例に示されるように、提供情報は、人物名#1とキーワード#3との組み合わせ、人物名#3とキーワード#2との組み合わせ等の組み合わせを含む。提供情報は、例えば、人物名#1(例えば、「マル子」)が、キーワード#3(例えば、「節約」)をテーマとする書籍を執筆する著者の候補であることを示す。また、提供情報は、例えば、人物名#3(例えば、「サブ」)が、キーワード#2(例えば、「尊厳死」)をテーマとする書籍を執筆する著者の候補であることを示す。
〔2−6.例示的な実施形態の効果〕
上述のように、例示的な実施形態に係る情報提供装置100は、書籍のテーマ候補および著者候補にそれぞれ対応する複数の埋め込みベクトルを用いて、書籍のテーマ候補と著者候補との間の関連性を決定する。そして、情報提供装置100は、決定された関連性に基づいて、書籍のテーマ候補と著者候補との組み合わせを決定する。これにより、情報提供装置100は、情報提供装置100は、書籍のテーマ候補と著者候補との組み合わせを示すリストを、書籍の企画者に提供することができる。
その結果、例示的な実施形態に係る情報提供装置100は、書籍の編集作業に要する労力と時間を軽減するとともに、書籍のテーマ候補と著者候補との適切な組み合わせを決定することができる。さらに、情報提供装置100は、書籍のテーマ候補や著者候補の取りこぼしを防止することができる。以下、このような情報提供処理を実現する情報提供装置100について詳細に説明する。
〔3.情報提供装置の構成〕
次に、図7を参照して、実施形態に係る情報提供装置100の構成について説明する。図7は、実施形態に係る情報提供装置100の構成例を示す図である。図7に示すように、情報提供装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、情報提供装置100は、情報提供装置100を利用する管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(液晶ディスプレイ等)を有してもよい。
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。通信部110は、ネットワーク網と有線又は無線により接続され、ネットワーク網を介して、ユーザ装置10、企画者装置20、SNSサーバ200およびQ&Aサーバ300との間で情報の送受信を行う。
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。図7に示すように、記憶部120は、検索履歴データベース121と、投稿履歴データベース122と、提供リストデータベース123と、モデルデータベース124とを有する。
(検索履歴データベース121)
図8は、実施形態に係る検索履歴データベース121の一例を示す図である。検索履歴データベース121は、検索履歴を記憶する。上述のように、検索履歴は、例えば、Q&Aページへの流入ワードの履歴である。
検索履歴データベース121は、例えば、収集部131によって受信された検索履歴を記憶する。図8の例では、検索履歴データベース121には、「検索履歴」が、「検索履歴ID」ごとに記憶される。例示として、「検索履歴」には、項目「検索クエリ」、項目「ユーザ属性」および項目「抽出キーワード」が含まれる。
「検索履歴ID」は、検索クエリを識別するための識別子を示す。「検索クエリ」は、検索エンジンのクエリログを示す。「検索クエリ」は、検索クエリに対応するフレーズを示してもよい。「ユーザ属性」は、検索クエリを入力したユーザのユーザ属性(例えば、デモグラフィック属性やサイコグラフィック属性)を示す。「抽出キーワード」は、検索クエリ(例えば、検索エンジンのクエリログ)から抽出されたキーワードを示す。「抽出キーワード」は、例えば、検索クエリに対応するキーワードである。一例として、検索クエリに対応するキーワードは、Q&Aページへの流入ワードであってもよい。
例えば、図8は、検索履歴ID「検索履歴#1」で識別される検索クエリが、「クエリ#1」であり、「クエリ#1」を入力したユーザのユーザ属性が、「属性#1」であり、「クエリ#1」から抽出された抽出キーワードが、「キーワード#1」であることを示している。例えば、クエリ#1は、「知恵の袋(例示のQ&Aページ名)、顔面神経痛」であってもよい。この場合、属性#1は、30代∧東京であってもよい。また、キーワード#1は、「顔面神経痛」であってもよい。
後述されるように、情報提供装置100の収集部131は、Q&Aに対応する検索クエリを取得することができる。例えば、収集部131は、Q&Aに対応する検索クエリを、Q&Aサーバ300から取得することができる。情報提供装置100の収集部131が検索エンジンのサービスを提供するいくつかの実装形態では、検索アプリや、検索エンジンのページを介して取得された検索履歴(例えば、検索クエリを含む検索要求)を、検索履歴データベース121に格納することができる。図8の例に示されるように、検索履歴は、クエリ#1、クエリ#2等の検索クエリを含む。
(投稿履歴データベース122)
図9は、実施形態に係る投稿履歴データベース122の一例を示す図である。投稿履歴データベース122は、投稿履歴を記憶する。上述のように、投稿履歴は、例えば、SNSページへの流入ワードである。
投稿履歴データベース122は、例えば、収集部131によって受信された投稿履歴を記憶する。図9の例では、投稿履歴データベース122には、「投稿履歴」が、「投稿履歴ID」ごとに記憶される。例示として、「投稿履歴」には、項目「投稿情報」、項目「ユーザ属性」および項目「抽出キーワード」が含まれる。
「投稿履歴ID」は、投稿情報を識別するための識別子を示す。「投稿情報」は、例えば、検索エンジンのクエリログを示す。この場合、「投稿情報」は、(検索)クエリに対応するフレーズを示してもよい。あるいは、「投稿情報」は、ソーシャルネットワークに投稿されたメッセージを示してもよい。「ユーザ属性」は、検索クエリを入力したユーザのユーザ属性(例えば、デモグラフィック属性やサイコグラフィック属性)を示す。「抽出キーワード」は、投稿(例えば、検索エンジンのクエリログ、ソーシャルネットワークに投稿されたメッセージ)から抽出されたキーワードを示す。「抽出キーワード」は、例えば、投稿(例えば、検索クエリ)に対応するキーワードである。一例として、投稿に対応するキーワードは、SNSページへの流入ワードであってもよい。
例えば、図9は、投稿履歴ID「投稿履歴#1」で識別される検索クエリが、「投稿#1」であり、「投稿#1」を入力したユーザのユーザ属性が、「属性#3」であり、「投稿#1」から抽出された抽出キーワードが、「人物#1」であることを示している。例えば、投稿#1は、「コマッター(例示のSNSページ名)、マル子」であってもよい。この場合、属性#3は、30代∧女性であってもよい。また、キーワード#1は、「マル子」であってもよい。
(提供リストデータベース123)
図10は、実施形態に係る提供リストデータベース123の一例を示す図である。提供リストデータベース123は、提供リストを記憶する。提供リストは、例えば、上述の提供情報である。上述のように、提供情報は、コンテンツ制作のための指標の候補と、コンテンツ制作に関わる人物の候補との組み合わせを示す情報である。
提供リストデータベース123は、例えば、提供部135によって生成された提供リストを記憶する。図10の例では、提供リストデータベース123には、「提供リスト」が記憶される。例示として、「提供リスト」には、項目「人物名」および項目「作成指標」が含まれる。
「人物名」は、コンテンツ制作に関わる人物の候補を示す。「作成指標」は、コンテンツ制作のための指標の候補を示す。
例えば、図10は、コンテンツ制作に関わる人物の候補が、「人物名#1」であり、コンテンツ制作のための指標の候補が、「キーワード#3」であることを示している。例えば、人物名#1は、「マル子」であってもよい。また、キーワード#3は、「節約」であってもよい。また、例えば、人物名#2は、「カモ」であってもよい。また、キーワード#2は、「尊厳死」であってもよい。
(制御部130)
制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等のプロセッサによって、情報提供装置100内部の記憶装置に記憶されている各種プログラム(提供プログラムの一例に相当)がRAM等を作業領域として実行されることにより実現される。また、制御部130は、コントローラ(controller)であり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
制御部130は、図7に示すように、収集部131と、生成部132と、取得部133と、算出部134と、提供部135とを有し、以下に説明する情報処理の機能や作用を実現又は実行する。なお、制御部130の内部構成は、図7に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
(収集部131)
収集部131は、コンテンツを制作する際の指標の候補と、このコンテンツの制作に関連する人物の候補との組を示す情報を提供するのに用いられる各種情報を収集する。例えば、収集部131は、所定の情報処理装置から、各種情報を受信する。例えば、収集部131は、情報提供装置100に関係するエンティティの装置から、各種情報を受信する。収集部131は、ユーザインタフェースを介して、情報提供装置100のユーザから各種情報を受信してもよい。収集部131は、受信された各種情報を、記憶部120に格納してもよい。
一例では、収集部131は、SNSサーバ200から、投稿情報を取得する。
例えば、収集部131は、ソーシャルネットワークに投稿された投稿情報を、SNSサーバ200から受信する。受信された投稿情報は、例えば、人名や、SNSのユーザの人物名を含む。受信された投稿情報は、SNSのユーザの人物名(例えば、実名、プロフィール名)に関連付けられた反応(例えば、「いいね」等の反応)を示すデータを含んでもよい。これにより、収集部131は、著者候補(例えば、一次候補)として、投稿情報に含まれる人名(例えば、実名、プロフィール名等の名前)を取得することができる。
別の例では、収集部131は、検索エンジンのシステムを実装し、検索エンジンのサービス(例えば、ウェブ検索サービス)を介して、ユーザ装置10から投稿情報を取得してもよい。
例えば、収集部131は、ユーザ装置10にインストールされた検索アプリケーション(検索アプリとも呼ばれる)や、検索エンジンのページ(例えば、検索サイト、ポータルサイト)を介して、検索履歴(例えば、検索ログ)を取得してもよい。そして、収集部131は、取得された検索履歴に基づいて、トラフィックソースを分析してもよい。例えば、収集部131は、取得された検索履歴を用いて、ある検索クエリを入力したユーザが、この検索クエリに対応する検索結果に含まれる複数のページのうちのどのページにアクセスしたかを決定することができる。一例として、収集部131は、取得された検索履歴を用いて、検索クエリ「マル子」を入力したユーザが、検索クエリ「マル子」に対応する検索結果に含まれる複数のページのうちのあるページ「(マル子の)SNSページ」にアクセスした、と決定することができる。
図2を参照して上述したように、あるページ(例えば、ウェブページ)にアクセスする際に使用されるワード(例えば、検索クエリ等の語句)は、「ページへの流入ワード」と呼ばれる。例えば、上述の「(マル子の)SNSページ」への流入ワードは、検索クエリ「マル子」である。例えば、収集部131は、検索ログ(例えば、ウェブページへのトラフィック)を用いて、検索クエリ「マル子」を入力したユーザが「SNSページ」にアクセスしたことを特定することができる。このようにして、収集部131は、「SNSページ」への流入ワードを、上述の投稿情報として取得してもよい。例えば、検索クエリ「マル子」を入力したユーザが、検索クエリ「マル子」に対応する検索結果に含まれる複数のページのうちのあるページ「(マル子の)SNSページ」にアクセスした場合には、収集部131は、語句「マル子」を、上述の投稿情報として取得してもよい。
一例では、収集部131は、Q&Aに対応する検索クエリを、Q&Aサーバ300から取得する。
例えば、収集部131は、Q&Aに対応する検索クエリを、ユーザ装置10のユーザの悩みを示すキーワードとして取得する。一例として、収集部131は、検索クエリ「節約」を、ビジネス(例えば、お金)の悩みを示すキーワードとして取得することができる。これにより、収集部131は、書籍のテーマの候補として、ビジネス(例えば、お金)の悩みを示すキーワードを取得することができる。
別の例では、上述の投稿情報の場合と同様に、収集部131は、検索エンジンのシステムを実装し、検索エンジンのサービスを介して、Q&Aに対応する検索クエリを取得してもよい。
例えば、収集部131は、ユーザ装置10にインストールされた検索アプリや、検索エンジンのページを介して、検索履歴(例えば、検索ログ)を取得してもよい。そして、取得された検索履歴に用いて、ある検索クエリを入力したユーザが「Q&Aのページ」にアクセスしたことを特定してもよい。この場合、収集部131は、「Q&Aのページ」への流入ワードを、上述のQ&Aに対応する検索クエリとして取得してもよい。例えば、検索クエリ「節約」を入力したユーザが、検索クエリ「節約」に対応する検索結果に含まれる複数のページのうちのあるページ「検索クエリ「節約」に対応するQ&Aのページ」にアクセスした場合には、収集部131は、語句「節約」を、上述のQ&Aに対応する検索クエリとして取得してもよい。
収集部131は、インターネット上で提供される各種サービス(例えば、検索エンジンのサービス、ニュースのサービス)を実装することができる。収集部131は、例えば、ユーザ装置10に、コンテンツ(例えば、検索に関するコンテンツ、ニュースに関するコンテンツ)を提供する。収集部131は、情報提供装置100内の所定の記憶領域(例えば、所定の記憶装置)から、コンテンツを取得し、取得されたコンテンツを、ユーザ装置10に提供してもよい。収集部131は、所定の情報処理装置(例えば、情報提供装置100に関係するエンティティの装置)から、コンテンツ(例えば、コンテンツのデータ)を受信し、受信されたコンテンツを、ユーザ装置10に提供してもよい。あるいは、収集部131は、ユーザインタフェースを介して、情報提供装置100のユーザからコンテンツを受信してもよい。収集部131は、受信されたコンテンツを、情報提供装置100内の所定の記憶領域(例えば、所定の記憶装置)に格納してもよい。いくつかの実装形態では、収集部131は、収集部131によって提供されたコンテンツを介して、検索履歴、位置情報等の様々なデータを受信してもよい。提供されたコンテンツは、検索、ポータル、ショッピング、オークション、ニュース、ファイナンス、旅行、飲食店紹介、スポーツ、テレビ、動画、ゲーム、地図、路線情報、料理、不動産、自動車、ブログ、結婚、漫画、占い、地域情報等のコンテンツであってもよい。このようにして、収集部131は、コンテンツを制作する際の指標の候補と、このコンテンツの制作に関連する人物の候補との組を示す情報を提供するのに用いられる各種情報を取得することができる。
収集部131は、検索履歴を受信することができる。例えば、収集部131は、所定の情報処理装置(例えば、Q&Aサーバ300)から、検索履歴を受信することができる。例えば、収集部131は、情報提供装置100に関係するエンティティの装置から、検索履歴を受信することができる。収集部131は、検索に関するコンテンツ(例えば、検索エンジンのページ)を介して、検索履歴を受信してもよい。収集部131は、ユーザインタフェースを介して、情報提供装置100のユーザから検索履歴を受信してもよい。収集部131は、受信された検索履歴を、検索履歴データベース121に格納してもよい。
収集部131は、投稿履歴を受信することができる。例えば、収集部131は、所定の情報処理装置(例えば、SNSサーバ200)から、投稿履歴を受信することができる。例えば、収集部131は、情報提供装置100に関係するエンティティの装置から、投稿履歴を受信することができる。収集部131は、検索に関するコンテンツ(例えば、検索エンジンのページ)を介して、投稿履歴を受信してもよい。収集部131は、ユーザインタフェースを介して、情報提供装置100のユーザから投稿履歴を受信してもよい。収集部131は、受信された投稿履歴を、検索履歴データベース121に格納してもよい。
(生成部132)
生成部132は、コンテンツ制作に関わる人物の候補のリストや、コンテンツ制作のための指標の候補のリストを生成する。生成部132は、コンテンツ制作に関わる人物の候補のリストを生成する第1生成部および第2生成部を実装することができる。また、生成部132は、コンテンツ制作のための指標の候補のリストを生成する第3生成部および第4生成部を実装することができる。
第1生成部は、検索クエリの履歴において、売上が所定の条件を満たすコンテンツの制作に関連する人物と関連性が高い他の人物を人物の候補とした人物リストを生成する。
第2生成部は、ユーザ(利用者)がウェブ上に投稿した投稿情報が示す人物のうち、投稿回数が所定の閾値を超える人物であって、予め登録された人物以外の人物を人物の候補とした人物リストを生成する。
生成部132(例えば、第1生成部、第2生成部)は、情報提供装置100内の所定の記憶領域(例えば、所定の記憶装置)に、生成された人物リストを格納してもよい。
一例では、生成部132(例えば、第1生成部、第2生成部)は、収集部131によってSNSサーバ200から取得された投稿情報や、収集部131によって取得された投稿情報から、有名になっていない人物の人物リストを生成する。
一例では、はじめに、生成部132(例えば、第2生成部)は、固有表現認識(Named Entity Recognition)等の手法を用いて、投稿履歴に含まれる投稿情報(例えば、テキスト)から、人名に対応するワード(例えば、「SNSページ」への流入ワード)を抽出する。投稿情報が写真、動画または音声である場合には、生成部132は、画像認識、動画像認識、音声認識等の手法を用いて、投稿情報の特徴に対応するテキストを生成し、生成されたテキストから、人名に対応するワードを抽出してもよい。
次いで、生成部132(例えば、第2生成部)は、投稿履歴に含まれる投稿情報から、「SNSページ」への流入ワードのトレンドに関するトレンド情報を生成する。そして、生成部132は、生成されたトレンド情報(例えば、トレンドの指標)に基づいて、投稿履歴に含まれる投稿情報から、人名に対応するワードを、1次候補の人名として抽出し、抽出された1次候補の人名を含む情報を、人名トレンド情報として生成する。
例えば、生成されたトレンド情報は、所定の期間(例えば、1年間)における流入ワード(すなわち、SNSページにアクセスする際に使用される検索クエリに対応するキーワード)の検索回数を示し得る。一例として、生成されたトレンド情報は、「SNSページ」への流入ワード「マル子」が「2019年9月20日から2020年9月20日」までの期間に検索された回数を、「検索トレンド(例えば、トレンドの指標)」として示してもよい。
生成部132(例えば、第2生成部)は、例えば、所定の期間(例えば、1年間)における流入ワードの検索回数に基づいて、投稿履歴に含まれる投稿情報から、人名に対応するワード(例えば、人名に対応するトレンドキーワード)を、1次候補の人名として抽出する。一例として、生成部132は、検索トレンドに基づいて、投稿情報から抽出されたワードをソートし、上位n件(例えば、10000万件)のワードを、1次候補の人名として抽出してもよい。
例えば、投稿履歴に含まれる流入ワード「マル子」の検索トレンド(例えば、検索(キーワード)ボリューム(例えば、検索数))が上位n件(例えば、10000万件)内にランクインしている場合に、流入ワード「マル子」を、1次候補の人名として抽出してもよい。図3を参照して上述したように、例えば、人名トレンド情報は、人物名#1、人物名#2、人物名#3、人物名#4等の人物名を含む。人物名#1は、例えば、「マル子」であってもよい。人物名#2は、例えば、「カモ(例示の人物名)」であってもよい。人物名#3は、例えば、「サブ」であってもよい。人物名#4は、例えば、「えもん(例示の人物名)」であってもよい。
その後、生成部132(例えば、第2生成部)は、特定の人名(例えば、有名になっている人物の人名)を示す人名リストに基づいて、人名トレンド情報に含まれる1次候補の人名から、有名になっていない人物の人名を、2次候補の人名として抽出する。そして、生成部132は、抽出された2次候補の人名を含むリストを、コンテンツ制作に関わる人物の候補のリストである人物リストとして生成する。図2を参照して上述したように、例えば、生成された人物リストは、人物名#1、人物名#3等の人物名を含む。
特定の人名を示す人名リストは、例えば、人名マスタ等のデータベースであり得る。人名マスタは、例えば、タレント名鑑に記載された有名人の人名を含んでもよい。情報提供装置100の収集部131が検索エンジンのサービスを提供するいくつかの実装形態では、人名マスタは、検索結果とともに提供されるナレッジパネル(例えば、検索クエリに対応する人名の写真および説明を含むコンテンツ(アイテム))に関連付けられた人名を含んでもよい。情報提供装置100の収集部131がニュースのサービス(例えば、ニュースサイト)を提供するいくつかの実装形態では、人名マスタは、ニュース記事に関連付けられたニュースタグに対応する人名を含んでもよい。
例えば、人物名「マル子」が人名マスタに含まれない場合に、生成部132は、人物名「マル子」を、2次候補の人名として抽出する。人物名「カモ」が人名マスタに含まれる場合に、生成部132は、人物名「カモ」を、2次候補の人名として抽出しない。同様に、人物名「サブ」が人名マスタに含まれない場合に、生成部132は、人物名「サブ」を、2次候補の人名として抽出する。人物名「えもん」が人名マスタに含まれる場合に、生成部132は、人物名「えもん」を、2次候補の人名として抽出しない。このような場合、「カモ」という名前の人物や、「えもん」という名前の人物は、有名になっている人物(例えば、芸能人、スポーツ選手)であり得る。これにより、生成部132は、著者候補として容易に想定される人物を、著者候補のリストから除外することができる。
情報提供装置100の収集部131が検索エンジンのサービスを提供するいくつかの実装形態では、生成部132は、著者ごとの書籍売上ランキングおよび検索履歴(例えば、検索ログ)から、人物リストを生成してもよい。
情報提供装置100内の所定の記憶領域(例えば、所定の記憶装置)は、著者ごとの書籍売上ランキングを示す売上ランキング情報を記憶してもよい。図4を参照して上述したように、売上ランキング情報は、著者#1、著者#2、著者#3、著者#4および著者#5の売上ランキングを示す。著者#1は、例えば、「カモ」であってもよい。著者#2は、例えば、「えもん」であってもよい。著者#3は、例えば、「まめ(例示の人物名)」であってもよい。同様に、著者#4および著者#5も、人名(例えば、実名、プロフィール名等の名前)を示し得る。
他の例では、はじめに、生成部132(例えば、第1生成部)は、売上ランキング情報に含まれる複数の著者の中から、上位n位(nは任意の自然数)以内に入る著者を特定する。例えば、生成部132は、売上ランキング情報に含まれる複数の著者の中から、ランキング1位の著者である著者#1を特定する。
次いで、生成部132(例えば、第1生成部)は、検索アプリや、検索エンジンのページを介して取得された検索履歴(例えば、検索ログ)に基づいて、特定された著者に関連する関連ワードを決定する。情報提供装置100の収集部131が検索エンジンのサービスを提供するいくつかの実装形態では、収集部131は、情報提供装置100内の所定の記憶領域(例えば、検索履歴データベース121)に、取得された検索履歴を格納することができる。生成部132は、所定の記憶領域に記憶された検索履歴に基づいて、特定された著者に関連する関連ワードを決定する。例えば、生成部132は、検索要求に含まれる検索クエリに対応する著者(例えば、著者名に対応する語句)と、検索要求に含まれる検索クエリに対応するキーワードとの共起性に基づいて、特定された著者に関連する関連ワードを決定する。例えば、検索要求が「著者#1∧(ANDの論理演算子)関連ワード#1(人物名)」や、「著者#1∨(ORの論理演算子)関連ワード#1(人物名)」である場合に、生成部132は、検索クエリに対応する著者#1と、検索クエリに対応するキーワード「関連ワード#1(人物名)」との共起性に基づいて、特定された著者#1に関連する関連ワードを決定する。
例えば、生成部132(例えば、第1生成部)は、検索クエリに対応する著者#1と、検索クエリに対応するキーワード「関連ワード#1(人物名)」との共起頻度を算出する。生成部132は、算出された共起頻度が所定の条件(例えば、所定の基準)を満たすか判定し、共起頻度が所定の条件(例えば、所定の基準)を満たすと判定された場合に、キーワード「関連ワード#1(人物名)」を、特定された著者#1に関連する関連ワードとして決定する。より具体的には、生成部132は、相関ルール学習等の手法を用いて、検索要求に含まれる検索クエリに対応する著者と、検索要求に含まれる検索クエリに対応するキーワードとの共起性の指標(例えば、支持度、確信度)を決定することができる。
図4を参照して上述したように、例えば、決定された複数の関連ワードは、関連ワード#1(人物名)、関連ワード#2(食品名)、関連ワード#3(番組名)および関連ワード#4(人物名)を含む。関連ワード#1(人物名)は、例えば、「アヒル(例示の人物名)」であってもよい。関連ワード#2(食品名)は、例えば、ネギであってもよい。関連ワード#3(食品名)は、例えば、「かもの話(例示の番組名)」であってもよい。関連ワード#4(人物名)は、例えば、「ハクチョウ(例示の人物名)」であってもよい。
その後、生成部132(例えば、第1生成部)は、固有表現認識等の手法を用いて、決定された関連ワードから、人名に対応するワードを抽出し、抽出されたワードを含むリストを、コンテンツ制作に関わる人物の候補のリストである人物リストとして生成する。図4を参照して上述したように、例えば、生成された人物リストは、関連ワード#1(人物名)、関連ワード#3(人物名)等の関連ワード(人物名)を含む。
第3生成部は、ユーザ(利用者)が投稿した質問に対して他の利用者が回答を投稿する所定のウェブサービスにおいて質問若しくは回答を検索する際に入力された検索クエリから、所定の条件を満たす検索クエリを指標の候補として抽出し、抽出した指標の候補に基づく指標リストを生成する。
例えば、第3生成部は、入力された回数が所定の閾値を超える検索クエリを指標の候補として抽出する。
また、例えば、第3生成部は、所定のカテゴリに属する検索クエリを指標の候補として抽出する。
また、例えば、第3生成部は、所定の条件を満たす検索クエリと共起する共起単語、若しくは、この検索クエリと関連する関連単語を示す指標リストを生成する。
第4生成部は、利用者に対して配信された配信情報のうち、配信回数が所定の閾値を超える配信情報から指標の候補を抽出し、抽出した指標の候補に基づく指標リストを生成する。
加えてまたはあるいは、第4生成部は、利用者に対して配信された配信情報のうち、配信回数の増加率が所定の閾値を超える配信情報から指標の候補を抽出し、抽出した指標の候補に基づく指標リストを生成する。
生成部132(例えば、第3生成部、第4生成部)は、情報提供装置100内の所定の記憶領域(例えば、所定の記憶装置)に、生成された指標リストを格納してもよい。
一例では、生成部132(例えば、第3生成部、第4生成部)は、収集部131によってQ&Aサーバ300から取得された検索クエリや、収集部131によって取得された検索クエリから、悩み指数が高いキーワードをコンテンツの作成指標とした指標リストを生成する。
一例では、はじめに、生成部132(例えば、第3生成部、第4生成部)は、検索履歴に基づいて、検索クエリに対応するキーワードと、このキーワードの出現回数とを特定する。例えば、生成部132は、検索クエリに対して自然言語処理(natural language processing)を行うことで、検索履歴に含まれる検索クエリに対応するキーワードを決定する。そして、生成部132は、検索履歴に基づいて、決定されたキーワードの出現回数を特定する。
次いで、生成部132(例えば、第3生成部、第4生成部)は、特定されたキーワードの出現回数に基づいて、特定されたキーワードの悩み指数を決定する。例えば、生成部132は、キーワードの出現回数が第1の出現回数よりも多い第2の出現回数である場合の悩み指数が、キーワードの出現回数が第1の出現回数である場合の悩み指数よりも高くなるように、悩み指数を決定する。特定されたキーワードの悩み指数は、例えば、特定されたキーワードの出現回数に比例し得る。図5を参照して上述したように、例えば、特定されたキーワード「キーワード#1」の出現回数は、「回数#1」である。また、特定されたキーワード「キーワード#1」の悩み指数は、「10」である。
特定されたキーワード「キーワード#1」は、例えば、「顔面神経痛」であってもよい。特定されたキーワード「キーワード#2」は、例えば、「尊厳死」であってもよい。特定されたキーワード「キーワード#3」は、例えば、「節約」であってもよい。特定されたキーワード「キーワード#4」は、例えば、「楽園」であってもよい。特定されたキーワード「キーワード#5」は、例えば、「副業」であってもよい。図2を参照して上述したように、検索クエリを入力したユーザが、検索クエリに対応する検索結果に含まれる複数のページのうちのQ&Aのページにアクセスした場合に、生成部132は、検索クエリに対応するキーワードを、ユーザの悩みを示すキーワードとして取得する。このことは、検索クエリに対応するキーワードの出現回数が、ユーザ全体の悩みの度合いを示すことを意味する。
情報提供装置100の収集部131が検索エンジンのサービスを提供するいくつかの実装形態では、生成部132(例えば、第3生成部、第4生成部)は、検索履歴に含まれる検索クエリから、「Q&Aページ」への流入ワード(すなわち、Q&Aページにアクセスする際に使用される検索クエリに対応するキーワード)のトレンドに関するトレンド情報を生成してもよい。生成されたトレンド情報は、流入ワードと、この流入ワードの出現回数と、この流入ワードの悩み指数とを含んでもよい。
例えば、生成されたトレンド情報は、所定の期間(例えば、1年間)における流入ワードの出現回数(例えば、検索回数)を示し得る。一例として、生成されたトレンド情報は、「Q&Aページ」への流入ワード「顔面神経痛」が「2019年9月20日から2020年9月20日」までの期間に検索された回数に基づいて決定された悩み指数を示してもよい。
その後、生成部132(例えば、第3生成部、第4生成部)は、決定された悩み指数に基づいて、特定されたキーワードからキーワードを抽出し、抽出されたキーワードを含むリストを、悩み指数が高いキーワードをコンテンツの作成指標とした(作成)指標リストとして生成する。例えば、生成部132は、決定された悩み指数に基づいて、特定されたキーワードをソートし、上位n件(例えば、10000万件)のワードを、コンテンツの作成指標(例えば、書籍のテーマの候補)として抽出してもよい。
例えば、キーワード「キーワード#2」の悩み指数が上位n件(例えば、10000万件)内にランクインしている場合に、生成部132は、キーワード「キーワード#2」を、コンテンツの作成指標として抽出してもよい。図5を参照して上述したように、(作成)指標リストは、キーワード#2(例えば、キーワード「尊厳死」)、キーワード#3(例えば、キーワード「節約」)等のキーワードを含む。図5の例では、(作成)指標リストは、多くのユーザが、「尊厳死」や「節約」についての悩みを抱えていることを示している。このことは、多くのユーザが、「尊厳死」や「節約」をテーマとする書籍に対するニーズを持っていることを意味する。
(取得部133)
取得部133は、予め作成された複数の指標の候補を示す指標リストと、複数の人物の候補を示す人物リストとを取得する。
例えば、取得部133は、生成部132(例えば、第3生成部、第4生成部)によって生成された指標リストを、予め作成された複数の指標の候補を示す指標リストとして取得する。取得部133は、予め作成された複数の指標の候補を示す指標リストを、情報提供装置100内の所定の記憶領域(例えば、所定の記憶装置)から取得してもよい。また、例えば、取得部133は、生成部132(例えば、第1生成部、第2生成部)によって生成された人物リストを、複数の人物の候補を示す人物リストとして取得してもよい。取得部133は、複数の人物の候補を示す人物リストを、情報提供装置100内の所定の記憶領域(例えば、所定の記憶装置)から取得してもよい。
取得部133は、予め作成された複数の指標の候補を示す指標リストや、複数の人物の候補を示す人物リストを受信してもよい。例えば、取得部133は、所定の情報処理装置から、指標リストや人物リストを受信してもよい。例えば、取得部133は、情報提供装置100に関係するエンティティの装置から、指標リストや人物リストを受信してもよい。取得部133は、ユーザインタフェースを介して、情報提供装置100のユーザから指標リストや人物リストを受信してもよい。取得部133は、受信された指標リストや受信された人物リストを、情報提供装置100内の所定の記憶領域(例えば、所定の記憶装置)に格納してもよい。
(算出部134)
算出部134は、コンテンツを制作する際の指標の候補と、このコンテンツの制作に関連する人物の候補との間の関連性を示すスコアを算出する。
例えば、算出部134は、1つの指標の候補と、複数の人物の候補との組合せについて、スコアを算出する。
また、例えば、算出部134は、複数の指標の候補と、1つの人物の候補との組合せについて、スコアを算出する。
また、例えば、算出部134は、指標リスト(例えば、取得部133によって取得された指標リスト)が示す指標の候補と、人物リスト(例えば、取得部133によって取得された人物リスト)が示す人物の候補との組合せについて、スコアを算出する。
また、例えば、算出部134は、入力された情報をベクトルに変換するモデルであって、予め設定された観点からの類似性が高い情報程類似するベクトルに変換するよう学習が行われたモデルを用いて、指標の候補と人物の候補とをベクトルに変換し、変換後のベクトルの類似性に基づいて、スコアを算出する。
例えば、算出部134は、モデルとして、利用者による検索意図が類似する複数の検索クエリを類似する複数のベクトルに変換するよう学習が行われたモデルを用いて、指標の候補と人物の候補とをベクトルに変換し、変換後のベクトルの類似性に基づいて、スコアを算出する。例えば、算出部134は、モデルとして、所定の検索クエリと同時に入力された複数の検索クエリを類似する複数のベクトルに変換するよう学習が行われたモデルを用いて、指標の候補と人物の候補とをベクトルに変換し、変換後のベクトルの類似性に基づいて、スコアを算出する。
また、例えば、算出部134は、モデルとして、利用者により投稿された投稿情報をベクトルに変換するモデルであって、類似する内容の投稿情報を類似するベクトルに変換するよう学習が行われたモデルを用いる。
また、例えば、算出部134は、算出部134は、モデルとして、利用者に対して配信された配信情報をベクトルに変換するモデルであって、類似する内容の投稿情報を類似するベクトルに変換するよう学習が行われたモデルを用いる。
一例では、はじめに、算出部134は、生成部132によって生成された人物リストに含まれる人物名および生成部132によって生成された作成指標リストに含まれるキーワードにそれぞれ対応する埋め込みベクトルを獲得する。算出部134は、例えば、所定の記憶装置(例えば、モデルデータベース1214)から、人物名およびキーワードにそれぞれ対応する埋め込みベクトルを取得してもよい。あるいは、算出部134は、ニューラル言語モデルを実装してもよい。いくつかの実装形態では、算出部134は、所定のテキストデータ(例えば、単語列等のコーパス)を用いてニューラル言語モデルを訓練することによって、埋め込みベクトルを獲得することができる。
一例として、算出部134は、単語列を含む訓練データを用いて、ニューラル言語モデル(例えば、対数双線形モデル)を訓練することができる。より具体的には、算出部134は、埋め込みベクトルに対応する目的関数(例えば、負の対数尤度)を最小化することによって、ニューラル言語モデルに、埋め込みベクトルを学習させることができる。これにより、算出部134は、所定のテキストデータ(例えば、単語列等のコーパス)から、人物名およびキーワードにそれぞれ対応する埋め込みベクトル(すなわち、ニューラル言語モデルに組み込まれた埋め込みベクトル)を獲得することができる。
算出部134は、ユーザ(利用者)による検索意図や、ユーザ(利用者)により投稿された投稿履歴や、ユーザ(利用者)に対して配信された配信情報を反映したニューラル言語モデルを実装してもよい。情報提供装置100の収集部131が検索エンジンのサービスを提供するいくつかの実装形態では、算出部134は、検索履歴に含まれる検索クエリに対応するキーワードを、単語列を含む訓練データとして用いることができる。これにより、算出部134は、検索意図(例えば、Q&Aページへの流入ワード)を反映した埋め込みベクトルや、投稿履歴(例えば、SNSページへの流入ワード)を反映した埋め込みベクトルを獲得することができる。情報提供装置100の収集部131がニュースのサービス(例えば、ニュースサイト)を提供するいくつかの実装形態では、算出部134は、ニュース記事を、単語列を含む訓練データとして用いることができる。これにより、算出部134は、ニュース記事を反映した埋め込みベクトルを獲得することができる。その結果、算出部134は、獲得される埋め込みベクトルに、トレンド(例えば、検索トレンド、ニューストレンド)を反映させることができる。このことは、獲得される埋め込みベクトル間の意味的類似性が、社会のトレンドを反映することを意味する。算出部134は、オンライン学習等の手法を用いて、このようなニューラル言語モデルを更新してもよい。
次いで、算出部134は、獲得された埋め込みベクトルに基づいて、生成部132によって生成された人物リストに含まれる人物名と生成部132によって生成された作成指標リストに含まれるキーワードとの間の類似性を決定する。例えば、算出部134は、生成された人物リストに含まれる人物名に対応する埋め込みベクトルと、生成された作成指標リストに含まれるキーワードに対応する埋め込みベクトルとの間のコサイン類似度を算出し、算出されたコサイン類似度を、人物名とキーワードとの間の類似度として決定する。図6の例に示されるように、例えば、人物名#1とキーワード#2との間の類似度は、「0.432」である。また、人物名#1とキーワード#3との間の類似度は、「0.821」である。人物名#1は、例えば、「マル子」であってもよい。「キーワード#2」は、例えば、「尊厳死」であってもよい。特定されたキーワード「キーワード#3」は、例えば、「節約」であってもよい。意味的類似性の観点からは、例えば、人物「マル子」とキーワード「尊厳死」との間の類似度「0.432」は、語句「マル子」の意図が、語句「尊厳死」の意図から離れていることを示し得る。一方、人物「マル子」とキーワード「節約」との間の類似度「0.821」は、語句「マル子」の意図が、語句「節約」の意図に近いことを示し得る。
(提供部135)
提供部135は、スコア(例えば、算出部134によって算出されたスコアであって、コンテンツを制作する際の指標の候補と、このコンテンツの制作に関連する人物の候補との間の関連性を示すスコア)が所定の条件を満たす指標と人物との組を示す情報を提供する。
提供部135は、さらに、提供対象となる指標と関連する検索クエリを入力した利用者の属性を示す属性情報を提供することができる。
また、提供部135は、提供部135は、指標と人物との組のうち、指標と関連する検索クエリを入力した利用者の属性の傾向が、売上が所定の条件を満たすコンテンツを購入した利用者の属性の傾向と類似する組を示す情報を提供することができる。
一例では、提供部135は、生成部132によって生成された人物リストの人物と、生成部132によって生成された指標リストの作成指標との組み合わせから、人物と作成指標との関連度が高い組み合わせを特定する。そして、提供部135は、特定された組み合わせを示す情報を、企画者装置20に提供する。
一例では、提供部135は、生成部132によって生成された人物リストおよび生成部132によって生成された作成指標リストに基づいて、コンテンツ制作のための指標の候補と、コンテンツ制作に関わる人物の候補との組み合わせを示す情報である提供情報を生成する。
一例では、提供部135は、算出部134によって決定された類似性に基づいて、生成部132(例えば、第1生成部、第2生成部)によって生成された人物リストに含まれる人物名と生成部132(例えば、第3生成部、第4生成部)によって生成された作成指標リストに含まれるキーワードとの組み合わせから、人物名とキーワードとの組み合わせを抽出し、抽出された組み合わせを含む情報を、提供情報として生成する。例えば、提供部135は、決定された類似性に基づいて、生成された人物リストに含まれる人物名と生成された作成指標リストに含まれるキーワードとの組み合わせをソートし、上位n件(例えば、100件)の組み合わせを、コンテンツ制作のための指標の候補とコンテンツ制作に関わる人物の候補との組み合わせ(例えば、著者の候補と書籍のテーマとの組み合わせ)として抽出してもよい。
例えば、人物名#1とキーワード#3との組み合わせの関連度が上位n件(例えば、100件)内にランクインしている場合に、提供部135は、人物名#1とキーワード#3との組み合わせを、著者の候補と書籍のテーマとの組み合わせとして抽出してもよい。図6を参照して上述したように、例えば、提供情報は、人物名#1とキーワード#3との組み合わせ、人物名#3とキーワード#2との組み合わせ等の組み合わせを含む。提供情報は、例えば、人物名#1(例えば、「マル子」)が、キーワード#3(例えば、「節約」)をテーマとする書籍を執筆する著者の候補であることを示す。また、提供情報は、例えば、人物名#3(例えば、「サブ」)が、キーワード#2(例えば、「尊厳死」)をテーマとする書籍を執筆する著者の候補であることを示す。
提供部135は、生成された提供情報を、提供リストデータベース123に格納してもよい。例えば、生成された提供情報を、提供リストデータベース123に、提供リストとして格納してもよい。
〔4.情報提供装置の処理フロー〕
次に、図11を参照して、実施形態に係る情報提供装置100による情報提供処理の手順について説明する。図11は、実施形態に係る情報提供装置100によって実行される、コンテンツ制作のための指標の候補と、コンテンツ制作に関わる人物の候補との組み合わせを示す情報を提供するための処理手順を示すフローチャートである。
図11に示すように、はじめに、情報提供装置100の収集部131は、コンテンツを制作する際の指標の候補と、このコンテンツの制作に関連する人物の候補との組を示す情報を提供するのに用いられる各種情報の収集のタイミングが、所定の処理タイミングであるかを判定する(ステップS101)。言い換えると、収集部131は、各種情報の収集のタイミングが到来したかを判定する。各種情報の収集のタイミングが所定の処理タイミングでないと判定された場合に(ステップS101;No)、収集部131は、所定の処理タイミングまで待機する。
各種情報の収集のタイミングが所定の処理タイミングであると判定された場合に(ステップS101;Yes)、収集部131は、検索履歴を収集する(ステップS102)。例えば、収集部131は、Q&Aに対応する検索クエリを、Q&Aサーバ300から取得する。収集部131は、検索エンジンのシステムを実装し、検索エンジンのサービスを介して、Q&Aに対応する検索クエリを取得してもよい。
次いで、情報提供装置100の生成部132(例えば、第3生成部、第4生成部)は、収集部131によって収集された検索履歴から、悩みスコアが高いキーワードを、作成指標の候補として抽出する(ステップS103)。例えば、生成部132は、収集部131によってQ&Aサーバ300から取得された検索クエリや、収集部131によって取得された検索クエリから、悩み指数が高いキーワードをコンテンツの作成指標とした指標リストを生成する。生成された指標リストは、作成指標の候補を含み得る。
次いで、収集部131は、投稿情報を収集する(ステップS104)。例えば、収集部131は、SNSサーバ200から、投稿情報を取得する。収集部131は、収集部131は、検索エンジンのシステムを実装し、検索エンジンのサービス(例えば、ウェブ検索サービス)を介して、ユーザ装置10から投稿情報を取得してもよい。
次いで、情報提供装置100の生成部132(例えば、第1生成部、第2生成部)は、収集部131によって収集された投稿履歴から、流行している人物のうち著名ではない人物を、対象人物の候補として抽出する(ステップS105)。例えば、生成部132は、SNSサーバ200から取得された投稿情報や、収集部131によって取得された投稿情報から、有名になっていない人物の人物リストを生成する。生成された人物リストは、対象人物の候補を含み得る。
次いで、情報提供装置100の算出部134は、生成部132(例えば、第1生成部、第2生成部)によって抽出された対象人物の候補と、生成部132(例えば、第3生成部、第4生成部)によって抽出された作成指標の候補との組み合わせごとに、対象人物の候補と作成指標の候補との間の関連性を示すスコアを算出する(ステップS106)。
例えば、算出部134は、生成部132によって生成された人物リストに含まれる人物名および生成部132によって生成された作成指標リストに含まれるキーワードにそれぞれ対応する埋め込みベクトルを獲得する。そして、算出部134は、獲得された埋め込みベクトルに基づいて、生成部132によって生成された人物リストに含まれる人物名と生成部132によって生成された作成指標リストに含まれるキーワードとの間の類似性を決定する。例えば、算出部134は、生成された人物リストに含まれる人物名に対応する埋め込みベクトルと、生成された作成指標リストに含まれるキーワードに対応する埋め込みベクトルとの間のコサイン類似度を算出し、算出されたコサイン類似度を、人物名とキーワードとの間の類似度として決定する。決定された類似度は、上述の対象人物の候補と作成指標の候補との間の関連性を示すスコアであり得る。
次いで、情報提供装置100の提供部135は、算出部134によって算出されたスコアが所定の条件を満たす組み合わせを特定する(ステップS107)。例えば、提供部135は、算出部134によって決定された類似性に基づいて、生成部132によって生成された人物リストに含まれる人物名と生成部132によって生成された作成指標リストに含まれるキーワードとの組み合わせから、人物名とキーワードとの組み合わせを抽出する。例えば、人物名とキーワードとの組み合わせの関連度が上位n件(例えば、100件)内にランクインしている場合に、提供部135は、この人物名とこのキーワードとの組み合わせを、対象人物の候補と作成指標の候補との組み合わせとして抽出してもよい。
次いで、提供部135は、特定された組み合わせを示す情報を提供する(ステップS108)。例えば、提供部135は、抽出された人物名とキーワードとの組み合わせを含む情報を、特定された組み合わせを示す情報(例えば、上述の提供情報)として生成する。そして、提供部135は、特定された組み合わせを示す情報を、企画者装置20に提供する。
〔5.変形例〕
上述の実施形態に係る情報提供装置100は、上述の実施形態以外にも、種々の異なる形態で実施されてよい。そこで、以下では、上記の情報提供装置100の他の実施形態について説明する。
〔5−1.企画の対象〕
図2、図3、図4、図5および図6の例示的な実施形態では、企画者(例えば、企画者P)は、書籍企画を立てる企画者であるが、これに限定されるものではない。企画の対象は、映像、音声等のメディアであってもよい。あるいは、企画の対象は、講演であってもよい。このような企画の一例は、楽曲、TV番組または映画製作である。例えば、企画がTV番組(例えば、情報バラエティ番組、ドラマ)の企画である場合に、コンテンツを制作する際の指標の候補は、TV番組のトピックス(例えば、最新のトレンド情報)であってもよい。この場合、このコンテンツの制作に関連する人物の候補は、TV番組の出演者(例えば、情報バラエティ番組の解説者、ドラマの俳優)であってもよい。例えば、最新のトレンド情報が尊厳死に関する情報である場合に、情報提供装置100の提供部135は、TV番組の出演者の候補として、尊厳死に詳しい人物を提示してもよい。例えば、図6の提供情報は、TV番組の作成指標「尊厳死」に関連付けられた人物名を含んでもよい。このように、コンテンツの制作に関連する人物の候補は、楽曲、TV番組または映画製作のキャストの候補を含み得る。
一例として、企画が映画の企画である場合に、コンテンツを制作する際の指標の候補は、映画のテーマであってもよい。この場合、このコンテンツの制作に関連する人物の候補は、映画の監督であってもよい。別の例として、企画が楽曲(音楽)の企画である場合に、コンテンツを制作する際の指標の候補は、楽曲のテーマであってもよい。この場合、このコンテンツの制作に関連する人物の候補は、楽曲の作曲者であってもよい。さらに別の例として、企画が芸術祭や絵画の企画である場合に、コンテンツを制作する際の指標の候補は、芸術祭や絵画のテーマであってもよい。この場合、このコンテンツの制作に関連する人物の候補は、芸術祭に出展するアーティストや、絵画を描くアーティストであってもよい。
〔5−2.検索数の上昇率に基づく著者候補抽出〕
情報提供装置100の生成部132(例えば、第1生成部、第2生成部、第1生成部および第2生成部とは異なる他の生成部(例えば、第5生成部))は、検索クエリの履歴に含まれる複数の検索クエリの各々の検索数の上昇率に基づいて、各々の検索クエリに対応する人物をコンテンツの制作に関連する人物の候補とした人物リストを生成してもよい。
例えば、生成部132は、収集部131によって取得された投稿情報(例えば、投稿履歴に含まれる投稿情報)に含まれる流入ワードの検索(キーワード)ボリューム(例えば、検索数)の上昇率に基づいて、図3を参照して上述した1次候補の人名(例えば、人名に対応するトレンドキーワード)から、2次候補の人名を抽出してもよい。この場合、2次候補の人名は、有名になっている人物を含んでもよい。生成部132は、流入ワードの検索数の上昇率に基づいて、上述の1次候補の人名をソートし、上位n件(nは任意の自然数)のワードを、2次候補の人名として抽出してもよい。生成部132は、抽出された2次候補の人名(例えば、検索数の上昇率が高い人物)を含むリストを、コンテンツ制作に関わる人物の候補のリストである人物リストとして生成してもよい。生成された人物リストは、人物の候補が検索数の上昇率に対応する座標上にプロットされた散布図を含んでもよい。これにより、情報提供装置100の提供部135は、旬の人物に関する情報を企画者に提供することができる。
生成部132は、収集部131によって取得された投稿情報(例えば、投稿履歴に含まれる投稿情報)に含まれる流入ワードの検索(キーワード)ボリューム(例えば、検索数)の上昇率に基づいて、図3を参照して上述した2次候補の人名(例えば、有名になっていない人物の人名)から、3次候補の人名を抽出してもよい。生成部132は、流入ワードの検索数の上昇率に基づいて、この2次候補の人名をソートし、上位n件(nは任意の自然数)のワードを、3次候補の人名として抽出してもよい。生成部132は、抽出された3次候補の人名(例えば、有名になっていない、検索数の上昇率が高い人物)を含むリストを、コンテンツ制作に関わる人物の候補のリストである人物リストとして生成してもよい。生成された人物リストは、人物の候補が「検索数(例えば、検索者数)と検索数の上昇率とに対応する座標」上にプロットされた散布図を含んでもよい。これにより、情報提供装置100の提供部135は、有名になっていない、旬の人物に関する情報を企画者に提供することができる。有名になっていない、旬の人物は、例えば、知名度は低いが、注目が高まっている人物(すなわち、知名度が伸びている人物)である。
〔5−3.検索数の上昇率に基づくテーマ候補抽出〕
情報提供装置100の生成部132(例えば、第3生成部、第4生成部、第3生成部および第4生成部とは異なる他の生成部(例えば、第6生成部))は、検索クエリの履歴に含まれる複数の検索クエリの各々の検索数の上昇率に基づいて、検索クエリの履歴に含まれる複数の検索クエリから検索クエリを、コンテンツを制作する際の指標の候補として抽出し、抽出された指標の候補に基づく指標リストを生成してもよい。
例えば、生成部132は、収集部131によって取得された検索クエリ(例えば、検索要求に含まれる検索クエリ、検索履歴データベース121に記憶された検索履歴に含まれる検索クエリ)に含まれる流入ワードの検索(キーワード)ボリューム(例えば、検索数)の上昇率に基づいて、図5を参照して上述したキーワード(すなわち、検索履歴に基づいて特定されたキーワード)からキーワードを抽出し、抽出されたキーワードを含むリストを、悩み指数が高いキーワードをコンテンツの作成指標とした(作成)指標リストとして生成してもよい。いくつかの実装形態では、生成部132は、特定されたキーワードの出現回数(例えば、流入ワードの検索数)および特定されたキーワードの出現回数の序章率(例えば、流入ワードの検索数の上昇率)のうちの少なくとも1つに基づいて、検索履歴に基づいて特定されたキーワードからキーワードを抽出し、抽出されたキーワードを含むリストを、悩み指数が高いキーワードをコンテンツの作成指標とした(作成)指標リストとして生成してもよい。生成された(作成指標)リストは、作成指標の候補が「検索数(例えば、検索者数)と検索数の上昇率とに対応する座標」上にプロットされた散布図を含んでもよい。これにより、情報提供装置100の提供部135は、企画者が普段耳にしないキーワードであって、注目が高まっているキーワードであるコンテンツの作成指標(例えば、書籍のテーマの候補)に関する情報を企画者に提供することができる。
〔6.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
例えば、図7に示した記憶部120の一部又は全部は、情報提供装置100によって保持されるのではなく、ストレージサーバ等に保持されてもよい。この場合、情報提供装置100は、ストレージサーバにアクセスすることで、検索履歴や投稿履歴等の各種情報を取得する。
〔7.ハードウェア構成〕
また、上述してきた実施形態に係る情報提供装置100は、例えば図12に示すような構成のコンピュータ1000によって実現される。図12は、ハードウェア構成の一例を示す図である。コンピュータ1000は、出力装置1010、入力装置1020と接続され、演算装置1030、一次記憶装置1040、二次記憶装置1050、出力IF(Interface)1060、入力IF1070、ネットワークIF1080がバス1090により接続された形態を有する。
演算装置1030は、一次記憶装置1040や二次記憶装置1050に格納されたプログラムや入力装置1020から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置1040は、RAM等、演算装置1030が各種の演算に用いるデータを一時的に記憶するメモリ装置である。また、二次記憶装置1050は、演算装置1030が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ等により実現される。
出力IF1060は、モニタやプリンタといった各種の情報を出力する出力装置1010に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、USB(Universal Serial Bus)やDVI(Digital Visual Interface)、HDMI(登録商標)(High Definition Multimedia Interface)といった規格のコネクタにより実現される。また、入力IF1070は、マウス、キーボード、およびスキャナ等といった各種の入力装置1020から情報を受信するためのインタフェースであり、例えば、USB等により実現される。
なお、入力装置1020は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置1020は、USBメモリ等の外付け記憶媒体であってもよい。
ネットワークIF1080は、ネットワークNを介して他の機器からデータを受信して演算装置1030へ送り、また、ネットワークNを介して演算装置1030が生成したデータを他の機器へ送信する。
演算装置1030は、出力IF1060や入力IF1070を介して、出力装置1010や入力装置1020の制御を行う。例えば、演算装置1030は、入力装置1020や二次記憶装置1050からプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行する。
例えば、コンピュータ1000が情報提供装置100として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムを実行することにより、制御部130の機能を実現する。
〔8.効果〕
上述してきたように、実施形態に係る情報提供装置100は、算出部134と、提供部135とを有する。
実施形態に係る情報提供装置100において、算出部134は、コンテンツを制作する際の指標の候補と、このコンテンツの制作に関連する人物の候補との間の関連性を示すスコアを算出する。また、実施形態に係る情報提供装置100において、提供部135は、スコアが所定の条件を満たす指標と人物との組を示す情報を提供する。
また、実施形態に係る情報提供装置100において、算出部134は、1つの指標の候補と、複数の人物の候補との組合せについて、スコアを算出する。
また、実施形態に係る情報提供装置100において、算出部134は、複数の指標の候補と、1つの人物の候補との組合せについて、スコアを算出する。
また、実施形態に係る情報提供装置100は、予め作成された複数の指標の候補を示す指標リストと、複数の人物の候補を示す人物リストとを取得する取得部133を有する。また、実施形態に係る情報提供装置100において、算出部134は、指標リストが示す指標の候補と、人物リストが示す人物の候補との組合せについて、スコアを算出する。
また、実施形態に係る情報提供装置100は、検索クエリの履歴において、売上が所定の条件を満たすコンテンツの制作に関連する人物と関連性が高い他の人物を人物の候補とした人物リストを生成する第1生成部(例えば、第1生成部として実装される生成部132)を有する。
また、実施形態に係る情報提供装置100は、利用者がウェブ上に投稿した投稿情報が示す人物のうち、投稿回数が所定の閾値を超える人物であって、予め登録された人物以外の人物を人物の候補とした人物リストを生成する第2生成部(例えば、第2生成部として実装される生成部132)を有する。
また、実施形態に係る情報提供装置100は、利用者が投稿した質問に対して他の利用者が回答を投稿する所定のウェブサービスにおいて質問若しくは回答を検索する際に入力された検索クエリから、所定の条件を満たす検索クエリを指標の候補として抽出し、抽出した指標の候補に基づく指標リストを生成する第3生成部(例えば、第3生成部として実装さされる生成部132)を有する。
また、実施形態に係る情報提供装置100において、第3生成部は、入力された回数が所定の閾値を超える検索クエリを指標の候補として抽出する。
また、実施形態に係る情報提供装置100において、第3生成部は、所定のカテゴリに属する検索クエリを指標の候補として抽出する。
また、実施形態に係る情報提供装置100において、第3生成部は、所定の条件を満たす検索クエリと共起する共起単語、若しくは、この検索クエリと関連する関連単語を示す指標リストを生成する。
また、実施形態に係る情報提供装置100において、提供部135は、さらに、提供対象となる指標と関連する検索クエリを入力した利用者の属性を示す属性情報を提供する。
また、実施形態に係る情報提供装置100において、提供部135は、指標と人物との組のうち、指標と関連する検索クエリを入力した利用者の属性の傾向が、売上が所定の条件を満たすコンテンツを購入した利用者の属性の傾向と類似する組を示す情報を提供する。
また、実施形態に係る情報提供装置100は、利用者に対して配信された配信情報のうち、配信回数が所定の閾値を超える配信情報から指標の候補を抽出し、抽出した指標の候補に基づく指標リストを生成する第4生成部(例えば、第4生成部として実装される生成部132)を有する。
また、実施形態に係る情報提供装置100は、利用者に対して配信された配信情報のうち、配信回数の増加率が所定の閾値を超える配信情報から指標の候補を抽出し、抽出した指標の候補に基づく指標リストを生成する第4生成部(例えば、第4生成部として実装される生成部132)を有する。
また、実施形態に係る情報提供装置100において、算出部134は、入力された情報をベクトルに変換するモデルであって、予め設定された観点からの類似性が高い情報程類似するベクトルに変換するよう学習が行われたモデルを用いて、指標の候補と人物の候補とをベクトルに変換し、変換後のベクトルの類似性に基づいて、スコアを算出する。
また、実施形態に係る情報提供装置100において、算出部134は、モデルとして、利用者による検索意図が類似する複数の検索クエリを類似する複数のベクトルに変換するよう学習が行われたモデルを用いて、指標の候補と人物の候補とをベクトルに変換し、変換後のベクトルの類似性に基づいて、スコアを算出する。
また、実施形態に係る情報提供装置100において、算出部134は、モデルとして、所定の検索クエリと同時に入力された複数の検索クエリを類似する複数のベクトルに変換するよう学習が行われたモデルを用いて、指標の候補と人物の候補とをベクトルに変換し、変換後のベクトルの類似性に基づいて、スコアを算出する。
また、実施形態に係る情報提供装置100において、算出部134は、モデルとして、利用者により投稿された投稿情報をベクトルに変換するモデルであって、類似する内容の投稿情報を類似するベクトルに変換するよう学習が行われたモデルを用いる。
また、実施形態に係る情報提供装置100において、算出部134は、モデルとして、利用者に対して配信された配信情報をベクトルに変換するモデルであって、類似する内容の投稿情報を類似するベクトルに変換するよう学習が行われたモデルを用いる。
上述した各処理により、情報提供装置100は、コンテンツの作成に有用な情報を提供することができる。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上述した情報提供装置100は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットフォーム等をAPI(Application Programming Interface)やネットワークコンピューティングなどで呼び出して実現するなど、構成は柔軟に変更できる。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、収集部は、収集手段や収集回路に読み替えることができる。