JP2017068862A - 情報処理装置、情報処理方法、及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法、及び情報処理プログラム Download PDF

Info

Publication number
JP2017068862A
JP2017068862A JP2016236549A JP2016236549A JP2017068862A JP 2017068862 A JP2017068862 A JP 2017068862A JP 2016236549 A JP2016236549 A JP 2016236549A JP 2016236549 A JP2016236549 A JP 2016236549A JP 2017068862 A JP2017068862 A JP 2017068862A
Authority
JP
Japan
Prior art keywords
search
information processing
item
information
score
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016236549A
Other languages
English (en)
Other versions
JP6260678B2 (ja
Inventor
一郎 宍戸
Ichiro Shishido
一郎 宍戸
良子 ▲つじ▼
良子 ▲つじ▼
Ryoko Tsuji
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JVCKenwood Corp
Original Assignee
JVCKenwood Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by JVCKenwood Corp filed Critical JVCKenwood Corp
Priority to JP2016236549A priority Critical patent/JP6260678B2/ja
Publication of JP2017068862A publication Critical patent/JP2017068862A/ja
Application granted granted Critical
Publication of JP6260678B2 publication Critical patent/JP6260678B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】テキストデータにおいて記述の対象となっている情報を精度良く特定することができるテキスト情報処理装置、テキスト情報処理方法、及びテキスト情報処理プログラムを提供する。
【解決手段】検索部は、テキストデータから抽出される検索キーに対応する1又は複数のアイテム情報である検索結果セットを、アイテム情報を格納しているアイテムデータベースから取得する。類似度計算部は、検索部が一の検索キーについて複数のアイテム情報からなる検索結果セットを取得した後に、その一の検索キーに対応する複数のアイテム情報間の類似度に基づく検索結果セットのスコアを計算する。妥当性判定部は、スコアに基づいて、検索部が取得したアイテム情報の中から、テキストデータに対応するアイテム情報を特定する。
【選択図】図1

Description

本発明は、データを解析する技術に関する。
近年、インターネットの普及を背景にして、インターネット上の掲示板やソーシャルネットワークサービス(SNS: Social Network Service)など、ユーザが手軽に口コミ情報等の文章をアップロードして、その文章を公開することができるサービスが増えている。また、このようなインターネット上の口コミ情報等を把握することは、企業のマーケティング戦略の面などから注目されている。
しかし、個々のユーザによってアップロードされたインターネット上の文章には、省略された語句や表記揺れが多いため、そのような文章から適切なキーワードを迅速に見つけにくいという問題があった。このような問題に対応する技術として、例えば特開2011−3157号公報(特許文献1)のような技術が存在する。
特開2011−3157号公報
特許文献1には、テキストデータを解析し、商品またはサービスであるアイテムを特定し、アイテムごとにユーザの口コミ情報を要約する技術が記載されている。しかしながら、解析対象のテキストデータが、どのアイテムに対応するかの判定精度が必ずしも十分ではなかった。例えば、記述の対象が音楽や映画などの場合、その名称は非常に多様であり、名称を示す文字列に明確な規則性が存在しないため、記述の対象となっているアイテムを特定する精度が十分でない場合があった。このため、テキストデータにおいて記述の対象となっているアイテムを特定できなかったり、実際に記述の対象となっているアイテムとは異なるアイテムを特定したりしてしまう場合があった。
本発明はこのような問題点に鑑みなされたものであり、テキストデータにおいて記述の対象となっている情報を精度良く特定することを目的とする。
本発明は上述した従来の技術の課題を解決するため、データベースを検索し、検索条件に対応した複数の情報を取得する検索部と、前記複数の情報間の類似度に基づくスコアを計算する類似度計算部と、前記スコアに基づいて、前記検索条件の妥当性を判定する妥当性判定部とを備えることを特徴とする情報処理装置を提供する。
また、本発明は上述した従来の技術の課題を解決するため、データベースを検索し、複数の情報からなる検索結果セットを取得する検索部と、前記検索結果セットに含まれる複数の情報間の類似度に基づくスコアを計算する類似度計算部と、前記スコアに基づいて、前記検索結果セットの妥当性を判定する妥当性判定部とを備えることを特徴とする情報処理装置を提供する。
また、本発明は上述した従来の技術の課題を解決するため、1または複数のコンピュータが実行する情報処理方法であって、データベースを検索し、検索条件に対応した複数の情報を取得する検索ステップと、前記検索ステップにおいて取得した前記複数の情報間の類似度に基づくスコアを計算する類似度計算ステップと、前記類似度計算ステップで計算された前記スコアに基づいて、前記検索条件の妥当性を判定する妥当性判定ステップとを含むことを特徴とする情報処理方法を提供する。
また、本発明は上述した従来の技術の課題を解決するため、1または複数のコンピュータが実行する情報処理方法であって、データベースを検索し、複数の情報からなる検索結果セットを取得する検索ステップと、前記検索ステップにおいて取得された前記検索結果セットに含まれる複数の情報間の類似度に基づくスコアを計算する類似度計算ステップと、前記類似度計算ステップで計算された前記スコアに基づいて、前記検索結果セットの妥当性を判定する妥当性判定ステップとを含むことを特徴とする情報処理方法を提供する。
また、本発明は上述した従来の技術の課題を解決するため、1または複数のコンピュータを、データベースを検索し、検索条件に対応した複数の情報を取得する検索部、前記検索部において取得した前記複数の情報間の類似度に基づくスコアを計算する類似度計算部、前記類似度計算部で計算された前記スコアに基づいて、前記検索条件の妥当性を判定する妥当性判定部として機能させることを特徴とする情報処理プログラムを提供する。
また、本発明は上述した従来の技術の課題を解決するため、1または複数のコンピュータを、データベースを検索し、複数の情報からなる検索結果セットを取得する検索部、前記検索部において取得された前記検索結果セットに含まれる複数の情報間の類似度に基づくスコアを計算する類似度計算部、前記類似度計算部で計算された前記スコアに基づいて、前記検索結果セットの妥当性を判定する妥当性判定部として機能させることを特徴とする情報処理プログラムを提供する。
本発明によれば、テキストデータにおいて記述の対象となっている情報を精度良く特定することができる。
各実施形態における全体構成を示すためのブロック図である。 記事テキスト(テキストデータ)の例を示す図である。 第1実施形態のテキスト情報処理装置1の動作を示すフローチャートである。 記事テキストからキーワードを抽出する方法の一例について説明するための図である。 テキストデータ記憶部6が格納するデータの一例を示す図である。 アイテムDB3が格納するデータの一例を示す図である。 キーワードグループ記憶部5が格納するデータの一例を示す図である。 スコア記憶部7が格納するデータの一例を示す図である。 アイテム算出結果記憶部8が格納するデータの一例を示す図である。 アイテムランキング情報記憶部9が格納するデータの一例を示す図である。 第2実施形態のテキスト情報処理装置1の動作を示すフローチャートである。 第2実施形態のテキスト情報処理装置1の動作を示すフローチャートである。
以下、本発明のテキスト情報処理装置、テキスト情報処理方法、及びテキスト情報処理プログラムについて、図面を参照して説明する。なお、図面中において、同一のものは同じ符号を付す。
また、以下の説明におけるアイテムは、音声、音楽、映像、ウェブページ等のコンテンツや様々な物品であってもよいし、金融商品、不動産、人物に関する情報等であってもよい。また、以下の説明におけるアイテムは、有形か無形かを問わず、有料か無料かも問わない。
<第1実施形態>
図1は、第1実施形態のテキスト情報処理装置1を含むシステム全体の構成例を示すブロック図である。
このシステムには、テキスト情報処理装置1や、テキストデータサーバ(ブログサーバ)2、アイテムデータベース(アイテムデータサーバ)3、利用者の端末装置4などが含まれ、それぞれがネットワーク20を介して通信可能である。なお、テキスト情報処理装置1は例えばサーバである。
また、テキストデータサーバ2はテキストデータを記憶し、アイテムデータベース3はアイテムに関する情報を記憶する。
以下の説明では、テキスト情報処理装置1が処理するテキストデータの一例としてブログデータを用いて説明する。ブログデータとは、ユーザによって作成されたテキストデータを含むものである。例えば、ユーザが、ソーシャルネットワークサービスを利用して作成したテキストデータ(ブログ記事)を含むものである。ソーシャルネットワークサービスとして、例えば、Twitter(登録商標)、Facebook(登録商標)、mixi(登録商標)などがある。
また、テキストデータサーバ2とアイテムデータベース3はそれぞれ別の主体として記述しているが、それらの一部、または全てがテキスト情報処理装置1と同一の主体となるように構成されていてもよい。
テキスト情報処理装置1は、テキストデータ収集部10、キーワード集合生成部11、アイテム特定部12、及びランキング情報作成部13という4つの処理部を有して構成されている。これら4つの処理部は一体であってもよいし、それぞれ別体であってもよい。また、単一のCPUやDSPを用いて構成してもよいし、複数のCPUやDSP等を用いて構成してもよい。
また、テキスト情報処理装置1は、キーワードグループ記憶部5、テキストデータ記憶部6、スコア記憶部7、アイテム算出結果記憶部8、及びアイテムランキング情報記憶部9を有して構成されている。これら5つの記憶部は一体であってもよいし、それぞれ別体であてもよい。また、単一のハードディスクドライブ(HDD)やフラッシュメモリ等を用いて構成してもよいし、複数のHDDやフラッシュメモリ等を用いて構成してもよい。
テキストデータ収集部10は、テキストデータを記憶しているテキストデータサーバ2より、ブログ等の記事テキスト(テキストデータ)と、その作成者を示すユーザ識別子、及び記事作成更新日といった属性情報を取得し、テキストデータ記憶部6に保存する。なお、ユーザ識別子とは、テキストデータの作成に関連するユーザ、又は、テキストデータの作成に関連する端末装置、を識別する識別子である。なお、テキストデータ記憶部6は必ずしも必要ではなく、テキストデータサーバ2が、テキストデータ記憶部6の役割を兼ね備えていてもよい。
キーワード集合生成部11は、不要文字列処理部14と、キーワード抽出部15と、グルーピング処理部16とを有している。キーワード集合生成部11は、テキストデータ収集部10によって取得したテキストデータから、アイテムを特定するためのキーワードを抽出し、キーワードグループ(検索キー)を生成する役割を持つ。なお、詳しくは後述するが、このキーワードグループを用いて検索することとなる。
キーワード集合生成部11の不要文字列処理部14は、アイテム情報に関係しない不要な情報を除いたテキストデータを生成する。アイテム情報に関係しない不要な情報とは、例えば、文書リンク情報やメタタグなどの情報である。不要文字列処理部14における処理については後に詳述する。
キーワード集合生成部11のキーワード抽出部15は、不要文字列処理部14によって加工されたテキストデータからキーワードを抽出する。
キーワード集合生成部11のグルーピング処理部16は、キーワード抽出部15によって切り出された1又は複数のキーワードをグループ化して、そのグループ化した、1又は複数のキーワードの集合であるキーワードグループを、キーワードグループ記憶部5へ保存する。なお、1つのキーワードしか含まない場合であってもキーワードグループと称することとする。
アイテム特定部12は、検索部17と類似度計算部18と妥当性判定部19とを有しており、キーワード集合生成部11によって生成されたキーワードグループを用いて、アイテムデータベース3からアイテム情報を検索し、その検索結果で得られた複数のアイテム情報間の類似度からキーワードの妥当性を判定する役割を持つ。
アイテム特定部12の検索部17は、キーワード集合生成部11によって生成されたキーワードグループを使用し、アイテムデータベース3を検索する。そして、複数のアイテム情報からなる検索結果セットが得られた場合、アイテム特定部12の類似度計算部18は、複数のアイテム情報間の類似度を計算する。さらに、類似度計算部18は、複数のアイテム情報間の類似度を用いて、キーワードグループ毎に後述する算出式で検索結果セットに関するスコアを求め、スコア記憶部7へ記録する。
アイテム特定部12の妥当性判定部19は、類似度計算部18が算出したスコアと閾値θとを比較して、アイテムデータベース3の検索に使用したキーワードグループの妥当性を判定する。そして、妥当であると判定されたキーワードグループに対応する検索結果セットを用いて、記事テキスト(テキストデータ)に関連するアイテムを特定する。妥当性判定部19は、その特定したアイテム(アイテム識別子)と、そのキーワードグループを抽出した元のテキストデータのブログ識別子と、を関連付けて、アイテム算出結果記憶部8へ記録する。なお、妥当であると判定されたキーワードグループが複数存在する場合、その中で最もスコアの高いキーワードグループに対応する検索結果セットを用いてアイテムを特定してもよいし、その複数のキーワードグループに対応する複数の検索結果セット全てを用いてアイテムを特定してもよい。
ランキング情報作成部13は、アイテム算出結果記憶部8のデータを用いて算出したアイテムの出現回数に基づき、順位付け(ランキング)を行い、アイテムランキング情報記憶部9へ記録する。なお、ランキング情報作成部13を備えていなくともテキストデータにおける記述の対象となっている情報を精度良く特定することができるが、ランキング情報作成部13を備えることで、テキスト情報処理装置1による解析結果をより有用な形式で出力することができる。
なお、テキスト情報処理装置1は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、ネットワークインターフェース等を備える一般的なコンピュータを用いて構成してもよい。すなわち、後に説明するような処理を行うプログラムをコンピュータに実行させることにより、テキスト情報処理装置1として機能するようにしてもよい。
また、テキスト情報処理装置1を複数のコンピュータを用いて構成してもよい。例えば、負荷分散をするために、テキスト情報処理装置1のある処理ブロックに相当するコンピュータを複数台用いて、すなわち、同じ処理ブロックを備える複数台のコンピュータを用いて分散処理を行なうようにしてもよい。また、テキスト情報処理装置1の一部の処理ブロックをあるコンピュータで実施し、他の処理ブロックを別のコンピュータで実施する形態で分散処理を行なってもよい。
テキスト情報処理装置1の具体的な処理について、図2に示すテキストデータの一例と、図3に示すフローチャートと、図4〜9に示すデータ構成図とを用いて詳細に説明する。
以下では、楽曲に関する記事テキスト(テキストデータ)に基づいて、その楽曲を示すアイテム情報を特定し、その特定したアイテム情報に基づくランキング情報を作成する例について説明する。なお、前述のように、アイテムは楽曲に限らず、様々なコンテンツ、物品、サービスであってもよい。
図3に、テキスト情報処理装置1の処理フローを示す。
ステップS1において、テキストデータ収集部10が、テキストデータサーバ2からテキストデータを取得し、その取得したテキストデータをテキストデータ記憶部6に格納する。
具体的には、テキストデータ収集部10は、テキストデータサーバ2に対して、所定のリクエストコマンドを送信することで、ユーザ識別子、記事テキスト(テキストデータ)、及び記事作成更新日などを含むブログデータを受信(取得)する。この受信したデータをテキストデータ記憶部6のテキストデータテーブルに格納する。
この際に、テキストデータ収集部10は、記事テキスト1件につき1つの識別情報(ブログ識別子)を付与する。テキストデータテーブルの格納形式の一例を図5に示す。ブログ識別子、ユーザ識別子、記事テキスト、及び記事作成更新日(例えばアップロードした日時)が関連付けられて格納される。例えば、ユーザが一度のアップロードでテキストデータサーバ2に送信したテキストデータ毎にブログ識別子が付されることとなる。
本実施形態におけるブログ識別子の表記は、記事作成更新日の順に、「BlogID」という文字列+アンダースコア記号(_)+数字の連番とするが、ユーザID+数字の連番としてもよいし、記事取得日時+数字の連番としてもよい。それぞれのブログデータを一意に特定できればよい。なお、テキストデータサーバ2が、ブログ識別子(またはブログ識別子に相当するデータ)を備えており、テキストデータ収集部10が、そのデータを受信(取得)する場合は、テキストデータ収集部10においてブログ識別子を付与する処理を省略し、受信したブログ識別子を利用してもよい。
ブログデータの読み込みは、必要な記事作成更新日の範囲(期間)をリクエストコマンドで指定して、それに対応するデータを取得してもよい。同様に、リクエストコマンドで必要なユーザ識別子を指定して、そのユーザの記事データのみを取得してもよい。また、リクエストコマンドに文字列に関する検索式を含め、記事テキストに特定の文字列パターンが含まれるブログデータのみを取得してもよい。
(キーワード集合生成部11の動作)
図3に戻り、ステップS2〜ステップS5にて、キーワード集合生成部11によるキーワード集合生成処理が実行される。
まず、ステップS2において、キーワード集合生成部11は、テキストデータ記憶部6のテキストデータテーブルからブログ識別子毎のテキストデータを読み出す(取得する)。これ以降の処理においては、各々のテキストデータを対象にして処理を行う。
ステップS3において、不要文字列処理部14は、テキストデータの先頭から末尾までの文字の内、アイテムの特定に役立たない文字列(不要文字列FWと呼ぶ)を、所定の区切り記号Kに置換する。例えば「\\」といった、記事テキストに出現する可能性が少ない記号(複数の記号の組合せも含む)を区切り記号Kにするとよい。不要な文字列は置換せずに削除したり、空白文字(例えば、スペース記号、タブ記号など)に置換してもよいが、区切り記号Kに置換する方が、アイテムの特定に使用する文字列の切り出しに役立つため、好ましい。なお、所定の区切り記号Kは、常に同じ記号を使う必要はなく、テキストデータに応じて、適宜、変更してもよい。例えば、テキストデータの言語種別や文字種別に応じて、区切り記号を変えてもよい。
ここで、図2及び図5を用いて、ステップS3の不要文字列処理部14による処理の詳細について説明する。
なお、図2はアイテム情報の特定に使用する記事テキスト(テキストデータ)の一例を示す図である。図2の例では、テキストデータの先頭Sから末尾Eまでの間に、1つ以上の通常文字列Wと、特定記号TKと、不要文字列FWとを含む。ただし、特定記号TKと不要文字列FWは必ずしもあるとは限らない。また、特定記号TKと不要文字列FWは複数存在する場合がある。キーワード抽出部15によって、特定記号TKと不要文字列FW以外の通常文字列Wを抽出することになるが、この抽出方法については後述する。なお、1文字の場合も文字列と称することとする。また、通常文字列Wは、アイテムの特定に役立つ可能性のある文字列であり、例えば、テキストデータの中の特定記号TKと不要文字列FW以外の文字列である。
また、図5はテキストデータ記憶部6に格納されるデータ(テキストデータテーブル)の一例を示す図である。図5に示すように、テキストデータテーブルには、記事テキストと、記事テキストに付与されたブログ識別子と、記事テキストをアップロードしたユーザを示すユーザ識別子と、記事テキストをアップロードした更新日を示す記事作成更新日とが関連付けて格納される。図5の記事テキストに示すように、ブログなどのユーザが作成する様々なテキストでは、使われる単語や表現形式が非常に多様になる。
また、一般的には、アイテムの特定に役立つ文字列と、不要な文字列が混在している。図5に示す例において、「#NowPlaying」は、楽曲や映像コンテンツの再生に係わる記事であることを慣用的に示す文字列である。これは、どのアイテムに関する記事においても、同一の文字列になるため、アイテムの特定に役立たず、不要文字列FWになる。
また、例えばTwitterなどの比較的短い記事テキストがアップロードされることが多いサービス(マイクロブログサービス)におけるテキストでは、他サイトへのリンクを示すURL(Uniform Resource Locator)が頻繁に含まれているが、このURLの文字列にはアイテム名等が含まれていないことが多いので、アイテム特定に役立たないため、「http://」などで始まるURL文字列を不要な文字列として扱う。なお、特に短縮URLの文字列にはアイテム名等が含まれていないことが多いので、短縮URLのときのみ不要文字列FWと扱うようにしてもよい。
また、アイテム名が含まれていないことが多い、メタタグ(「<」と「>」とで囲まれている文字列)や、音符(♪)などのマークについても不要文字列FWとして扱う。これらは、半角、全角いずれであってもよい。
不要文字列処理部14は、不要文字列FWの一覧表や、不要文字列FWとすべき文字列の条件等を記憶したデータベースを参照して、テキストデータに上記の不要文字列FWが含まれるか否かを判断する。不要文字列処理部14は、所定の区切り記号Kに置き換える。
不要文字列処理部14によって、不要な文字列を空白文字(例えば、スペース記号、タブ記号など)に置き換えるのではなく、ブログ記事等で使用される可能性の少ない所定の記号に置き換えることにより、アイテムの特定に役立つキーワードを精度よく抽出することができる。
例えば、図4(A)に示すような「M1:タイトル,M2:空白,M3:URL,M4:空白,M5:アーティスト(姓),M6:空白,M7:アーティスト(名),M8:#NowPlaying」というパターンの記事テキストがあった場合、図4(B)に示すように、不要文字列FWであるM3:URLやM8:#NowPlayingを空白文字に置換すると、アイテムの特定に役立つキーワードである文字列M5と文字列M7との間に空白が入っていた場合、文字列M5と文字列M7とを1つのキーワードとして扱うか否かの判別は難しくなる。
つまり、文字列M5:アーティスト(姓)と、文字列M7:アーティスト(名)とを1つのキーワードとして抽出した方がアイテムの特定には有利であるが、不要文字列FWを空白へと置換した場合は、そのような文字列の統合が難しい。
これに対して、図4(C)のように、不要文字列FWであるM3:URLやM8:#NowPlayingを区切り記号K(本図の例では「\\」)に置換すれば、空白を無視してこの区切り記号Kでテキストデータを区切ればよいため、文字列M5と文字列M7とを統合して、1つのキーワードとして扱うことができ、より精度良くアイテムを特定できる。なお、不要文字列FWの文字数に係らず、「\\」に置き換えるようにしているが、不要文字列FWを構成する文字それぞれを「\\」に置き換えてもよい。
なお、前述の特許文献1記載の除外文字や句読点等についても不要文字列FWとして扱うことができる。特許文献1記載の除外文字とは、例えば、「の」、「が」、「い」及び「く」などである。
次に特定記号について説明する。本実施形態で対象としている、楽曲再生中に係わるテキストデータでは、楽曲名とアーティスト名を記述する順序やフォーマットに明確なルールは存在しないが、図2や図5のテキストデータに示すように、ハイフン「-」 又は、スラッシュ「/」をテキストとアーティストを区切る記号として用いていることが多い。本実施形態では、この記号を特定記号TKと称する。テキストデータの中に、特定記号TKが存在する場合もあるし、存在しない場合もある。
不要文字列処理部14によって不要文字列FWを所定の区切り記号Kに置き換える処理を行う場合、この特定記号TKをそのまま残してもよいし、不要文字列FWとして区切り記号Kに置き換えてもよい。特定記号の前後は、楽曲名やアーティスト名などアイテムの特定に役立つ文字列が存在する可能性が比較的高いため、特定記号TKを残して利用することにより、精度よくキーワード抽出が行える場合がある。一方、特定記号TKを区切り記号Kに置換することにより、キーワード抽出処理を簡略化できる。
また、テキストデータにおける記述の対象であるアイテムのアイテム情報が日本語である場合、そのアイテム情報(例えば、音楽コンテンツであれば、日本語のタイトル、日本語のアーティスト名など)に空白文字が含まれる可能性が比較的低いという特徴を利用して、テキストデータが日本語の場合、空白文字を全て区切り記号に置換してもよい。あるいは、日本語の場合、空白文字を削除し、空白文字の前後の文字列をつなげる処理をしてもよい。
以上が、不要文字列処理部14による処理の詳細である。
図3の説明に戻り、ステップS4では、キーワード抽出部15が、キーワードを抽出する。区切り記号Kを区切りとして、先頭Sから最初の区切り記号Kの一つ前の文字までのテキスト領域と、区切り記号Kに挟まれたテキスト領域と、最後の区切り記号Kの次の文字から文末Eまでのテキスト領域とに分割し、これらのテキスト領域に含まれる文字列をそれぞれキーワードとする。なお、区切り記号Kに挟まれたテキスト領域は複数存在することが多い。 また、特定記号TKを利用する場合は、特定記号TKと区切り記号Kの間、または特定記号TKと先頭Sの間、または特定記号TKと文末Eの間のいずれかのテキスト領域に含まれる文字列を優先的にキーワードとしてもよい。このような処理を行うことにより、キーワード抽出の精度をさらに高めることができる。
また、不要文字列処理部14によって不要文字列FWを空白文字に置換する処理を行っていた場合は、テキストデータを空白文字の位置で区切ってキーワードを抽出する。
なお、テキスト領域の文字種(漢字、ひらがな、カタカナ、アルファベット、数字等)を判定して、キーワードに空白文字を含めるか否かを決定してもよい。例えば、テキスト領域が主にアルファベットの文字種で構成されている場合は、空白の前後の文字列をつなげる処理を行わずに、空白を含めた前後の文字列を1つのキーワードとして抽出する。例えば、図4(C)に示す例では「M5アーティスト(姓),M6空白,M7アーティスト(名)」を1つのキーワードとして抽出する。
一方、主に、漢字、ひらがな、カタカナで構成されている場合は、空白の前後の文字列をつなげる処理を行った上で、前後の文字列を1つのキーワードとして抽出する。例えば、図4(C)に示す例では「M5アーティスト(姓),M7アーティスト(名)」を1つのキーワードとして抽出する。
なお、キーワードの先頭Sおよび末尾Eは、空白文字にならないようにすることが好ましい。また、空白文字をキーワードに含めない場合は、特定記号に最も近い空白以外の文字列をキーワードとして抽出することが好ましい。
また、特定の長さの文字列のみをキーワードにしてもよい。例えば、5文字以上15文字以下の文字列をキーワードにする等の基準(条件)を設けて、キーワードを抽出してもよい。このようにする場合、文字種に応じて、キーワードにする文字列の長さの条件を変えてもよい。例えば、アルファベットを使った文字列では、1つの単語の文字列が多くなる傾向があるので、非空白文字と空白文字を合わせた長さが7文字以上20文字以下である場合に、キーワードとするといった条件を設定してもよい。
また、漢字が多く含まれる文字列の場合は、キーワードとする文字列の長さを他の文字種の場合と比較して短めに設定して、2文字以上10文字以下といった条件を設定してもよい。また、特定記号TKを利用する場合は、特定記号に隣接するテキスト領域と、特定記号から離れた位置にあるテキスト領域とで、キーワード抽出の条件を変えてもよい。例えば、特定記号に隣接するテキスト領域では、キーワードとする文字列の長さの条件を緩くし(例えば、3文字以上20文字以下)、特定記号から離れた位置にあるテキスト領域では、文字列の長さの条件を厳しく(例えば、6文字以上12文字以下)する等の処理をしてもよい。
以上のようにして、ステップS4にて、1つの記事テキストから例えばJ個(J≧1)のキーワードが抽出される
次のステップS5では、ステップS4で作成した記事テキスト毎のキーワードを使用して、グルーピング処理部16が、1つの記事テキスト毎に、キーワードグループを作成する。
キーワードの数が1つ(J=1)である場合は、1つのキーワードグループが作成される。キーワードが複数(J≧2)の場合は、基本的に複数のキーワードグループを作成する。1つのキーワードグループに含めるキーワードの数は、1以上の任意の数である。
ここでは、図2に示すテキストデータから抽出された4つのキーワードK1,K2,K3,K4を例に、キーワードグループの作成方法を説明する。
まず、1つのキーワードグループにつき1つのキーワードを含むように、キーワードグループを作成した場合について説明する。このような場合もキーワードグループと称することとする。
グルーピング処理部16は、キーワードK1,K2,K3,K4それぞれを、それぞれ別のキーワードグループとする。そして、作成したキーワードグループに、それぞれを識別可能なキーワードグループ識別子を付与し、図7に示すような形式で、キーワードグループ記憶部5に格納する。なお、図7は、図2に示すテキストデータに基づいた検索キーワードグループテーブルの例である。
グルーピング処理部16は、キーワードK1,K2,K3,K4に、キーワードグループ識別子Gr001-001、Gr001-002、Gr001-003、Gr001-004をそれぞれ付与する。この例において、キーワードグループ識別子のハイフン「-」より前の部分は、ブログ識別子によって決まる文字列であり、「Gr001」は、「BlogID_001」と対応する。あるいは、キーワードグループ識別子の前半にブログ識別子を直接用いて、「BlogID_001-001」などとしてもよい。また、キーワードグループ識別子のハイフン「-」より後の部分は、数字の連番であるが、作成順の数字の連番としてもよいし、記事取得日時+数字の連番としてもよい。そして、グルーピング処理部16は、キーワードグループ識別子と、ブログ識別子と、キーワードグループに含まれるキーワードとを対応させて格納する。
次に、1つのキーワードグループにつき2つのキーワードを含むように、キーワードグループを作成した場合について説明する。
グルーピング処理部16は、4つのキーワードから2つのキーワードを選ぶ組合せである、「K1とK2」,「K1とK3」,「K1とK4」,「K2とK3」,「K2とK4」,「K3とK4」の6つのキーワードグループを作成する。
図7に示す例では、グルーピング処理部16は、「K1とK2」,「K1とK3」,「K1とK4」,「K2とK3」,「K2とK4」,「K3とK4」に、キーワードグループ識別子Gr001-005、Gr001-006、Gr001-007、Gr001-008、Gr001-009、Gr001-010をそれぞれ付与する。
1つのキーワードグループに複数のキーワードが存在する場合、各キーワードを空白文字で連結した1つの文字列として格納してもよいし、各キーワードを分離して読み出せる形式で格納してもよい。
本実施形態のように、アイテムが楽曲である場合、アイテムの特定には、楽曲名とアーティスト名の2つの文字列が役立つ場合が多い。よって、2つのキーワードを含むキーワードグループであると、記述の対象となっている情報を精度良く特定することができることが多い。ただし、1つのキーワードグループにつき1つのキーワードを含むように、キーワードグループを作成した場合よりもキーワードグループの数が多くなり、処理量は多くなる。
なお、グルーピング処理部16によって、第1の数(図7の例では1つ)のキーワードを含むキーワードグループと、第1の数よりも大きい第2の数(図7の例では2つ)のキーワードを含むキーワードグループとの両方を作成すると、後述のように、処理量を抑えながら、記述の対象となっている情報を精度良く特定することができる。なお、図7には示していないが、検索キーワードグループテーブルに、優先度又は優先順位を保持する列を追加し、キーワードグループそれぞれに優先度(優先順位)を付与してもよい。そして、後述のステップS6において、優先度(優先順位)に従って、アイテムデータベース3を検索してもよい。すなわち、まず優先度が最も高いキーワードグループを用いて検索を行った後、次に優先度が2番目に高いキーワードグループを用いて検索を行う等の処理を行ってもよい。
優先度(優先順位)を付与する方法としては、それぞれのキーワードが、文字列の長さや文字種などに関するキーワード基準(条件)をどの程度満たしているかの度合いを用いることができる。また、特定記号TKの近くの文字列から抽出されたキーワードの優先度を高くする処理を行ってもよい。
(アイテム特定部12の動作)
図3に戻り、ステップS6にて、アイテム特定部12の検索部17は、キーワードグループ記憶部5に格納されているキーワードグループテーブルから、順次キーワードグループを読み出し、キーワードグループごとに検索式を作成して、アイテムデータベース3に検索リクエストを送信する。
本実施形態におけるアイテムデータベース3は、図6に示すような構成のアイテムテーブルを格納している。アイテムデータベース3は、検索リクエストを受信すると、アイテムテーブルを検索し、タイトル列およびアーティスト列のうちの少なくとも一方が、検索リクエストで指定された条件(検索式)に合致した場合に、そのアイテムの情報(タイトル、アーティスト名など)をテキスト情報処理装置1に送信する。なお、テキスト情報処理装置1に送信する情報にアイテム識別子を含めてもよい。
また、ベクトル空間モデル等の検索モデルを用いれば、アイテム情報に検索キーワードが含まれない場合であっても、そのアイテム情報を検索出力とすることも可能である。アイテム特定部12の検索部17は、検索リクエストに含まれる検索式に基づく、アイテム情報のリストを取得する。
1つの検索式(1回の検索)に対応して、アイテムデータベース3から取得できるデータ(アイテム情報のリスト)を、検索結果セット(検索結果リスト)と称する。検索式に合致するアイテムが存在する場合、検索結果セットには、1つ又は複数のアイテム情報が含まれている。なお、検索により取得されたアイテム情報を単に「検索結果」とも称する。
また、本実施形態におけるアイテムデータベース3は、検索式の中でAND又はOR条件が明示されずに、複数のキーワードが指定された場合、複数のキーワードがAND条件で結合されたものとして解釈する。また、アイテムデータベース3は、検索式に合致するアイテムが複数存在する場合、優先順位を付けて検索結果を送信してもよい。例えば、優先順位の最も高いアイテムを1番目の検索結果とし、優先順位が2番目に高いアイテムを2番目の検索結果とし、以下同様に検索結果の順番を決めてもよい。
ここで、優先順位は、検索式とアイテム情報とが合致する度合いを用いて算出されてもよいし、アイテムの人気度を用いて算出されてもよい。例えば、検索結果として出力する回数をアイテムごとにカウントし、この回数を人気度とし、人気度の高いアイテムの優先順位を高くする処理を行ってもよい。また、外部から取得可能な、アイテムの利用回数、アイテムの売り上げ金額などの情報を用いて人気度を算出してもよい。また更に、テキスト情報処理装置1が、アイテムデータベース3に対して、後述するランキング情報に基づき、アイテムごとの人気度を算出し、この情報を定期的にアイテムデータベース3に提供し、アイテムデータベース3が優先順位の決定に用いてもよい。
このように、検索部17とアイテムデータベース3とが協働して検索処理を行うようにしているが、どちらかが単独で行ってもよい。
検索部17は、1回の検索につき、1つのキーワードグループを用いる。また、キーワードグループが複数のキーワードを含む場合は、それらを使ってAND条件となるように、検索式を作成する。1つの検索式に使われるキーワードの集合を検索キーと称する。本実施形態においては、キーワードグループが検索キーに相当する。また、検索式にAND又はOR条件が含まれず、検索式が1つ以上のキーワードのみで構成されている場合は、検索式と検索キーは等価であるといえる。
例えば、1つのキーワードのみが含まれるキーワードグループで検索を行った場合は、タイトルおよびアーティストの内の少なくとも一方にそのキーワードが含まれるアイテム情報(ここでは、タイトルとアーティスト名)が出力される。
図7に示すように、キーワードグループ識別子Gr001-001のキーワード「歌」のみのキーワードグループで検索した場合、タイトルやアーティスト名に「歌」が含まれる検索結果が出力される。例えば、「愛の歌/Z山 T朗」,「卒業の歌/Yバンド」,「歌ソング/C&A」,「春歌/Aバンド」,「夏歌/Aバンド」などを含む、タイトルとアーティスト名のリストが、検索結果として出力される。
また、(K1,K2)の2つのキーワードがキーワードグループに含まれる場合、(K1 AND K2)といった検索式を作成する。つまり、タイトルかアーティストの内の少なくともどちらかにキーワードK1が含まれ、かつ、タイトルかアーティストの内の少なくともどちらかにキーワードK2が含まれるアイテムを示す情報が出力される。
例えば、図7に示すように、キーワードグループ識別子Gr001-006の「歌」及び「Aバンド」が含まれるキーワードグループで検索した場合、タイトルやアーティスト名に「歌」が含まれ、かつ、タイトルやアーティスト名に「Aバンド」が含まれる検索結果が出力される。例えば、「春歌/Aバンド」及び「夏歌/Aバンド」という、タイトルとアーティスト名のリストが出力される。
次のステップS7において、アイテム特定部12は、検索結果セットに含まれる各アイテム情報の正規化を行う。この正規化は、アイテムデータベース3が、実質的に同じアイテムを別々の検索結果として返すことがあるため、これに対応する処理として行う。アイテムが楽曲である場合、実質的に同じ楽曲であっても、複数パターンの曲名表記が使われている場合がある。
例えば、アイテムデータベース3が1つの楽曲「タイトルA/アーティストB」に関して、「タイトルA(version C)/アーティストB]、「タイトルA/アーティストB(featuring X)」、「タイトルA/アーティストB with X」などの複数の検索結果を返す場合がある。特に、多数のユーザが作成、提供した楽曲情報をもとにアイテムデータテーブルが作成されている場合には、このような現象が起こりやすい。アイテム情報の正規化を行うことにより、上記のような楽曲表記のバリエーションを1つにまとめることが可能になる。具体的には、検索結果セットに含まれる各アイテム情報(タイトルおよびアーティスト名)の文字列に対して、所定の文字列を消去したり、文字種の変換を行って正規化文字列を作成したりする。例えば、括弧で囲われた文字列(「(」と「)」とで囲われた文字列)を削除してもよい。
また、「featuring」、「with」などアーティスト名を補足するのに多用される文字列をあらかじめ登録しておき、検索結果のアーティスト名からその文字列以降を消去してもよい。また、半角カタカナを全角カタカナに、全角アルファベットを半角アルファベットに、全角数字を半角数字に等の文字種の変換処理を行ってもよい。正規化処理は必ずしも行わなくてもよいが、このような検索結果の正規化処理を行うことで、テキストデータとアイテムとをさらに精度良く対応付けることができる。
次にステップS8では、アイテム特定部12は、ステップS7で作成された正規化されたアイテム情報を用いて、検索結果セットに含まれるアイテム情報間それぞれの類似度計算を行い、算出結果の平均値をスコアとして算出する。そして、算出したスコアをキーワードグループ識別子に対応させて、図8に示す検索結果スコアテーブルのスコア列に格納する。なお、検索した結果、該当するアイテムが見つからなかった場合(検索結果セットが空集合の場合)、そのキーワードグループについてのスコアは格納されない。
次に、スコア算出方法について説明する。例えば、検索結果セットとして、(1)「春歌/Aバンド」、(2)「Aソング/Aバンド」、及び(3)「夏歌/Aバンド」の3つのアイテム情報が出力された場合は、(1)「春歌/Aバンド」と(2)「Aソング/Aバンド」との類似度、(1)「春歌/Aバンド」と(3)「夏歌/Aバンド」との類似度、(2)「Aソング/Aバンド」と(3)「夏歌/Aバンド」との類似度、の3つの類似度を算出する。そしてこの3つの類似度の平均値をスコアとして算出してもよい。このように、検索結果セットに含まれるアイテム情報の全ての組合せについて類似度を算出すると、スコアを精度よく算出することができるが、処理量は多くなる。
また、検索結果セットの中のアイテムから1つの基準アイテム(基準検索結果)を選び、その基準アイテムと、検索結果セットの中の他のアイテムとの類似度を算出し、それらの平均値をスコアとして算出してもよい。例えば、(1)「春歌/Aバンド」を基準アイテムとし、(1)「春歌/Aバンド」と(2)「Aソング/Aバンド」との類似度、(1)「春歌/Aバンド」と(3)「夏歌/Aバンド」との類似度、の2つの類似度を算出し、それらの平均値をスコアとしてもよい。このようにすると、検索結果セットに含まれるアイテム情報の全ての組合せについて類似度を算出する場合と比べ、スコアの精度は低下するが、処理量は少ない。検索結果セットに含まれるアイテム情報が多い場合には、基準アイテムを使う方法が望ましい。
検索結果セットに2つのアイテム情報しか含まれない場合は、その2つのアイテム情報間の類似度をそのままスコアとして用いればよい。また、検索結果セットに1つのアイテム情報しか含まれない場合には、類似度およびスコアの計算処理は行わず、その検索結果セットのアイテム情報をブログ識別子に対応付けるようにしてもよい。
類似度計算には種々の方法を用いることができる。例えば、正規化された検索結果N件(N≧2)を対象に、形態素解析処理を行い、単語を抽出する。この際に、名詞や形容詞など特定の品詞を抽出対象としたり、助詞や助動詞を除外する等の処理を行ってもよい。合計でM種類の単語(1〜M語)が抽出できた場合、検索結果(アイテム情報)を行列の行に、単語を列に対応させて、ある検索結果にある単語が出現する頻度(回数)を行列要素とするN×M生起行列を作成する。あるいは、行列要素を、ある検索結果にある単語が出現した場合に「1」、出現しない場合に「0」としてもよい。
以下では、生起行列の要素をdijと表わす(i=1〜N、j=1〜M)。iは行列のi番目の行、jは行列のj番目の列を示す。
ここで、N件全ての組み合わせについて類似度を算出してもよいが、処理を簡便化するために、生起行列のN行の中から1つの行を基準検索結果(基準アイテム)として選び、基準検索結果と他の検索結果(他の行)との類似度を算出する。基準検索結果は、乱数を使ってランダムに選択してもよいが、本実施形態では1行目の検索結果(アイテムデータベース3が最初に出力したアイテム情報)を基準検索結果とする。
本実施形態において、類似度の計算には、下記の数1に示す式に示すとおりコサイン類似度を使用する。基準検索結果をk番目の行とすると、基準検索結果とi番目の検索結果(i番目の行)との類似度Sikは、数1に示す式で求められる。ただし、i=1〜N、i≠k、j=1〜Mである。
Figure 2017068862
本実施形態においては、コサイン類似度を使用するが、類似度算出の式はこれに限らない。例えば、公知のJaccard係数、Simpson係数、ピアソン積率相関係数などを用いて類似度を算出してもよい。また、形態素解析を用いて単語を抽出するのではなく、検索結果同士を文字単位で比較して類似度を算出してもよい。例えば、2つの正規化された検索結果に対して、それぞれ先頭からp番目の文字が一致するか否かを判定し、それを用いて類似度を算出してもよい。また、レーベンシュタイン距離等、一般的に文字列の類似度として用いられている尺度を算出してもよい。
そして、1つの検索結果セットにつき得られる類似度の平均値を算出して、スコアとする。例えば、N件(N≧3)の検索結果が得られた場合、基準検索結果と、他の(N−1)件の検索結果との間の類似度が(N−1)個算出される。この(N−1)個の類似度の平均値を算出すればよい。なお、ここでは、類似度の平均値を算出してスコアとするが、類似度の最小値、平均値、中央値、最頻値、四分位値などを算出してスコアとしてもよい。このスコアが大きければ大きい程、複数の検索結果が類似していることを意味する。また、1つの検索結果セットから算出された複数の類似度の内、所定値以上であった類似度の個数をカウントし、その個数を、類似度計算の対象とした検索結果セットに含まれるアイテム数Nや、その検索結果セットから算出された類似度の個数で割った値をスコアとして用いてもよい。
ブログ記事で使われる一般的な単語と、楽曲のタイトルで使われる単語は、重なっていることが多く、事前にルールを作っておいて、これらを区別することが難しい。このため、抽出されたキーワードには、アイテムとは関係ない一般的な単語が入る場合もある。
キーワードが一般的な単語である場合、それを使ってアイテムデータベース3を検索すると、1つの楽曲ではなく、複数の楽曲に関する検索結果が返ってくる可能性が高い。例えば、「愛」といった一般的な単語を楽曲名に含む楽曲は多いため、「愛」を検索キーにしてアイテムデータベース3を検索すると、複数の楽曲に関する検索結果が得られる可能性が非常に高い。このような場合、多様な検索結果が得られ、検索結果どうしの類似度は低くなり、スコアも低い値となる。
一方、キーワードが、ある1つの楽曲に特有の語句であったり、一般的な使用頻度が低い語句であったりする場合、検索結果が複数であっても、実質的には1つの楽曲に関することが多い。この場合は、検索結果どうしの類似度が高くなり、スコアも高い値となる。従って、上述した方法でスコアを算出することにより、検索に用いたキーワード(キーワードグループ)によって、1つのアイテムが特定できたか否かを的確に判定することができる。
次のステップS9にて、アイテム特定部12の妥当性判定部19は、スコアが所定の閾値θより大きいかどうかを判定する。θの値は、あらかじめ試験的に収集した検索結果を用いて設定してもよいし、状況に応じて設定値を変更してもよい。妥当性判定部19は、スコアがθ以上であれば、アイテム特定に結び付くキーワードグループであると判断してステップS10に移って真を返すと共に、検索結果セットの中からブログ記事と対応させるアイテムの候補である候補アイテムを選択し、図8に示す検索結果スコアテーブルの「候補アイテムのアイテム識別子」列に、候補アイテムのアイテム識別子を登録する。スコアがθより小さければ、アイテム特定に結び付くキーワードグループではないと判断してステップS11に移って偽を返す。
ここで、図8は、キーワードグループ識別子Gr001-001 〜Gr001-010のキーワードグループのスコアを示す検索結果スコアテーブルを示すものである。検索結果スコアテーブルはスコア記憶部7に格納される。
閾値θを「0.4」とすると、図8の例では、3つのキーワードグループGr001-006、 Gr001-008、Gr001-010が閾値θ以上のスコアとなっている。スコアが閾値以上となったキーワードグループについては、検索結果セットの内の一のアイテム識別子が関連付けられる。なお、キーワードグループに含まれるキーワード数に応じて閾値θを変更してもよい。この場合、キーワード数が多いほど大きな閾値(真となりにくい閾値)を用いるとよい。検索結果セットの中から一のアイテム(候補アイテム)を選択する方法としては、以下の方法を用いることができる。
第1の方法は、アイテムデータベース3が検索結果として出力する最初(1番目)のアイテム(検索部17が最初に取得したアイテム)を選択する方法である。この方法は、アイテムデータベース3が、優先順位付きの検索結果を出力する場合に用いることができる。テキスト情報処理装置1は、取得した検索結果の順番の情報を記憶しておく。
第2の方法は、キーワードグループ(検索キー)と、それに基づく検索結果それぞれとの類似度を算出して、類似度が最も高かった検索結果(アイテム)を選択する方法である。例えば、「Aソング」と「Aバンド」が含まれるキーワードグループGr001-010については、キーワード「Aソング」及び「Aバンド」と、各検索結果である「Aソング/Aバンド」,「Aソングsingle ver./Aバンド」,「Aソング/AバンドwithT」それぞれとの類似度を算出する。ここでの類似度は、2つの文字列を1文字単位で比較するタイプの方法を用いて算出するとよい。この例の場合、検索結果「Aソング/Aバンド」が最も類似度が高くなるため、妥当性判定部19は、この「Aソング/Aバンド」を候補アイテムとして決定し、図6に示すアイテムテーブルを参照しながら、「Aソング/Aバンド」のアイテム識別子であるA001を特定し、検索結果スコアテーブルのキーワードグループ(Gr001-010)に対応する候補アイテム識別子として登録する。なお、類似度の代わりに、キーワードグループと検索結果それぞれとの差(違いの度合い)や距離を算出してもよい。
第3の方法は、ステップS7で正規化されたアイテム情報と、正規化する前のアイテム情報との差が最も小さいアイテムを選択する方法である。例えば、アイテムデータベース3が、(1)「Aソング/Aバンド」、(2)「Aソングsingle ver./Aバンド」、(3)「Aソング/AバンドwithT」の3つのアイテムを出力し、これらを正規化した結果が全て、「Aソング/Aバンド」となった場合、正規化の前後で文字列が変わらない(1)「Aソング/Aバンド」を選択する。
第4の方法は、後述するランキング情報を利用し、過去に作成されたランキング情報の順位が最も高いアイテムを選択する方法である。過去にブログ記事に多く登場したアイテムほど、新たなブログ記事にも登場する可能性が高いためである。
次のステップS12にて、妥当性判定部19は、全てのキーワードグループについて妥当性の判定を行ったか判断し、まだ妥当性を行っていないキーワードグループがあれば、ステップS9に戻り、次のキーワードグループのスコアと閾値とを比較する。ステップS12にて、全てのキーワードグループについて妥当性の判定が終わっていた場合は、次のステップS13に移る。なお、このステップS12において、全てのキーワードグループについて妥当性判定を行ったかを判定するのではなく、妥当性判定の結果が真となったキーワードグループが1つ存在した時点で、次のステップS13に移ってもよい。こうすることで計算負荷が低減される。
次のステップS13において、アイテム特定部12の妥当性判定部19は、妥当性判定の結果が真であったアイテム識別子とブログ識別子とを、検索結果スコアテーブルに基づき、図9に示すようなアイテム算出結果記憶部8が備えるアイテム算出結果テーブルに登録する。このように、妥当性判定部19は、妥当性判定の結果が真であったアイテム識別子をそのブログ識別子に対応するアイテム情報であると特定している。
なお、図8に示す例においては、閾値以上のスコアとなっているキーワードグループが複数(3つ)存在し、それぞれアイテム識別子(候補アイテム識別子)が関連付けられているが、その中で最もスコアの高いキーワードグループのアイテム識別子を採用して、アイテム算出結果テーブルに登録してもよいし、閾値以上のスコアとなっているキーワードグループ全てのアイテム識別子を登録してもよい。これは、1つのテキストデータにおいて、複数のアイテムが記述されることもあるためである。ただし、アイテムを特定する精度を重視する場合は、最もスコアの高いキーワードグループのアイテム識別子のみを採用した方がよい。なお、スコアの高い順に複数のキーワードグループを選択し、それらに対応する複数のアイテム識別子をアイテム算出結果テーブルに登録してもよい。また、ステップS8で算出されたスコアが閾値未満である場合でも検索結果スコアテーブルに候補アイテムを登録するようにした上で、最もスコアの高いキーワードグループに対応する候補アイテムのアイテム識別子をアイテム算出結果テーブルに登録してもよい。
最もスコアの高いキーワードグループのアイテム識別子を採用する場合、図7及び図8に示す例では、ブログ識別子BlogID_001とアイテム識別子A001とがアイテム算出結果テーブルへ出力される。
以上のようにして、ブログ識別子に対して、記述の対象となっているアイテム識別子を精度良く対応させることができる。なお、上述の説明では、1つの検索結果セットの中から1つの候補アイテムを選択して、検索結果スコアテーブルに登録しているが、1つの検索セットから複数の候補アイテムを選択して登録するようにしてもよい。
以上のようにして特定したアイテムを示す情報を、対応するブログ記事そのものやブログ記事を示す情報(例えばブログ識別子やブログの題名)とともに表示部に表示させる表示制御部21を備えるようにしてもよい。例えば、アイテム名とともにブログ記事を表示することで、そのアイテムに関する口コミ情報であることがすぐに識別できる。なお、表示部はテキスト情報処理装置1が有する表示部(図示せず)でもよいし、端末装置4が有する表示部(図示せず)でもよい。
また、アイテム名と、そのアイテムに関連付けられた複数のブログ記事とを同じ画面で表示するようにすれば、そのアイテムに関する複数の口コミ情報などが一度に見ることができるため有用である。
(ランキング情報作成部13の動作)
図3に戻り、ランキング情報作成部13によって行われる処理について説明する。
ステップS14にて、ランキング情報作成部13は、図9に示すアイテム算出結果テーブルと、図5に示すテキストデータテーブルと、図6に示すアイテムテーブルとを参照して、アイテム算出結果テーブルに登録されている(ブログ識別子、アイテム識別子)の組み合わせに対応する、アイテム情報(タイトル、アーティストなど)、ユーザ識別子、及び記事作成更新日を抽出する。
ステップS15にて、ランキング情報作成部13は、アイテム算出結果テーブルにおけるアイテム識別子の出現回数をカウントし、出現回数が多い順(降順)にソートした(アイテム識別子、出現回数)の組み合わせリスト(第1のリスト)を作成し、アイテムランキング情報記憶部9に記憶する。なお、ある1人のユーザがあるアイテムについてのブログ記事を所定回数以上書いていた場合、そのアイテムの出現回数を所定の規則に従って、元の出現回数より少なくするといった処理を追加してもよい。
ステップS16において、ランキング情報作成部13は、ステップS14で作成したデータを使用し、アイテム算出結果テーブルに登録されているアイテム識別子それぞれについて、ユーザ識別子の種類数(異なるユーザ識別子の出現回数)をカウントする。すなわち、あるアイテムが何人のユーザのブログに記述されているかをカウントする。そして、出現回数が多い順(降順)にソートした(アイテム識別子、ユーザ識別子の種類数)の組み合わせリスト(第2のリスト)を作成し、アイテムランキング情報記憶部9に記憶する。
ステップS17において、ランキング情報作成部13は、ステップS15で作成した第1のリストと、ステップS16で作成した第2のリストとを用いて、図10に示す形式のランキングテーブルを作成する。ランキングテーブルは、ランキング情報記憶部9に格納される。ランキングテーブルは、順位と、アイテム識別子と、アイテム識別子の出現回数とを対応させたテーブルであり、種々の方法で作成することができる。
具体的には、まず第1のリストに従って、アイテムの出現回数の多い順にアイテムに順位を付ける。次に、アイテムの出現回数が同じアイテムが存在する場合は、それらのアイテムに関して、第2のリストに従って、ユーザ識別子の種類数が多い順に順位を付ける。すなわち、アイテム識別子の出現回数を第1優先項目、ユーザ識別子の種類数を第2優先項目として、それぞれ多い順にアイテムをソートして、順位を付与すればよい。また、ユーザ識別子の種類数を第1優先項目、アイテム識別子の出現回数を第2優先項目としてソートして、順位を付与してもよい。
なお、上述のランキングテーブル作成方法は、あくまでも一例であり、種々の方法でランキングを作成することができる。例えば、リスト1の出現回数とリスト2のユーザ識別子の種類数とに基づいて、総合点数を算出し、総合点数の多い順に順位を付与してもよい。この総合点数をランキングテーブルに登録してもよい。また、特定したアイテムに係る種々の数値に基づいて統計的な処理を行うようにしてもよい。例えば、複数の集計期間を設定し、それぞれの集計期間でのアイテム出現回数を比較して、出現回数の増減率等を算出し、増加率の高いアイテムに対して、「赤丸急上昇」などの情報を付与するようにしてもよい。
また、表示制御部21は、以上のようにして作成したランキング等を表示部に表示させてもよい。また、ランキングとともに、そのランキングに含まれるアイテムと関連付けられたブログ記事や、ブログ記事を書いたユーザの情報を表示させてもよい。なお、表示部については、テキスト情報処理装置1が有する表示部(図示せず)でもよいし、端末装置4が有する表示部(図示せず)でもよい。
以上説明したように、本実施形態のテキスト情報処理装置により、ブログ等のテキストデータから商品またはサービスであるアイテムを精度良く抽出することができる。
また、本実施形態のテキスト情報処理装置によれば、抽出したアイテム情報について統計的に処理することができる。
例えば、所定期間(例えば、1週間、1日、1時間など)内においてマイクロブログサービス等で記述の対象となっている曲を抽出し、曲ごとの記事数やユーザ数をカウントし、そのカウント数に従って、曲の順位付けを行うことで、市場動向の統計データとしてマーケティングに活かすことができる。また、ユーザへそれらの情報を提示することで、ユーザの購買意欲を高めたりすることが期待できる。
<第2実施形態>
次に図11及び図12のフローチャートを用いて、テキスト情報処理装置1における処理の他の実施形態について説明する。
第1実施形態においては、第1の数のキーワードを含むキーワードグループによる検索と、第1の数よりも大きい第2の数のキーワードを含むキーワードグループによる検索の両方を行うか、またはどちらか一方のみを行っていたが、本実施形態においては、アイテムを特定できたか否かに応じて、キーワードグループに含まれるキーワード数を多くしていくことで、処理量を抑えながら、記述の対象となっている情報を精度良く特定することができるように構成したものである。
なお、図11のフローチャートにおけるステップS5a,ステップS12a,ステップS12b、及び、図12のフローチャートにおけるステップS5b,ステップS12c,ステップS12d以外は第1実施形態と基本的に同様な処理である。よって、第1実施形態と同様な処理については説明を省略する。
本実施形態において、図11のステップS5aにて、グルーピング処理部16は、1つの記事テキスト毎に、第1の数のキーワードを含むキーワードグループを作成する。例えば、図7のキーワードグループ識別子Gr001-001 〜Gr001-004のキーワードグループのように、グルーピング処理部16は、1つのキーワードを含むキーワードグループを作成する。
ステップS6〜S11については、第1実施形態と同様の方法で、検索結果の妥当性を判断する。
次のステップS12aにおいて、妥当性判定部19は、第1の数のキーワードを含むキーワードグループ全てについて妥当性の判定を行ったか判断し、まだ妥当性を行っていないキーワードグループがあれば、ステップS9に戻り、次のキーワードグループのスコアと閾値とを比較する。ステップS12aにて、第1の数のキーワードを含む全てのキーワードグループについて妥当性の判定が終わっていた場合は、次のステップS12bに移る。
次のステップS12bにおいて、真となったキーワードグループがあったか否か判断し、真となったキーワードグループがあれば、ステップS13に移り、妥当であったキーワードグループとアイテムを出力する。一方、ステップS12bにおいて、真となったキーワードグループがなければ、図12のフローチャートに示すステップS5bに移る。
図12のステップS5bにて、グルーピング処理部16は、1つの記事テキスト毎に、第1の数よりも大きい第2の数のキーワードを含むキーワードグループを作成する。例えば、図7のキーワードグループ識別子Gr001-005 〜Gr001-010のキーワードグループのように、グルーピング処理部16は、2つのキーワードを含むキーワードグループを作成する。キーワードグループを作成する処理は、検索処理に比べてシステムの負荷が小さいため、第2の数のキーワードを含むキーワードグループについては予め作成しておくようにしてもよい。
その後、ステップS6〜S11については、第1実施形態と同様の方法で、検索結果の妥当性を判断する。
次のステップS12cにおいて、妥当性判定部19は、第2の数のキーワードを含むキーワードグループ全てについて妥当性の判定を行ったか判断し、まだ妥当性を行っていないキーワードグループがあれば、ステップS9に戻り、次のキーワードグループのスコアと閾値とを比較する。ステップS12cにて、第2の数のキーワードを含む全てのキーワードグループについて妥当性の判定が終わっていた場合は、次のステップS12dに移る。
次のステップS12dにおいて、真となったキーワードグループがあったか否か判断し、真となったキーワードグループがあれば、図11のステップS13に移り、妥当であったキーワードグループとアイテムを出力する。一方、ステップS12bにおいて、真となったキーワードグループがなければ、ステップS18に移り、妥当性判定部19は、当該記事テキストは、アイテムについて記述していないと判断する。
なお、ステップS18において処理を終了せずに、グルーピング処理部16は、1つの記事テキスト毎に、第2の数よりも大きい第3の数のキーワードを含むキーワードグループを作成し、同様な処理を続けてもよい。どの程度の数のキーワードを含むキーワードグループまで作成するかは、例えば、特定したいアイテムの種類等に応じて適宜決めればよい。
以上のように、アイテムを特定できたか否かに応じて、キーワードグループに含まれるキーワード数を多くして検索していくことで、処理量を抑えながら、記述の対象となっている情報を精度良く特定することができる
上述した本発明の実施形態は、説明のための例示であり、上記実施形態に限定されるものではない。本発明は、ブログ以外のテキスト、例えばアンケートなどのデータに対しても適用可能である。また、音楽に係わるブログ記事を使って処理を行う例を示したが、音楽だけでなくその他の分野の記事についても、同様に処理できることはもちろんである。
なお、本発明は各部の機能をコンピュータに実現させるためのプログラムを含むものである。これらのプログラムは、記録媒体から読み取られてコンピュータに取り込まれてもよいし、通信ネットワークを介して伝送されてコンピュータに取り込まれてもよい。
また、本発明は以上説明した実施形態に限定されることはなく、本発明の要旨を逸脱しない範囲において種々変更が可能である。例えば、各実施形態や変形例等を組み合わせてもよい。また、テキスト情報処理装置1の一部の構成を別体にし、ネットワーク等を介してその別体とした構成と通信するようにして、テキスト情報処理装置1の機能を実現してもよい。
1 テキスト情報処理装置(サーバ)
2 テキストデータサーバ
3 アイテムデータベース
4 端末装置
5 キーワードグループ記憶部
6 テキストデータ記憶部
7 スコア記憶部
8 アイテム算出結果記憶部
9 アイテムランキング情報記憶部
10 テキストデータ収集部
11 キーワード集合生成部
12 アイテム特定部
13 ランキング情報作成部
14 不要文字列処理部
15 キーワード抽出部
16 グルーピング処理部
17 検索部
18 類似度計算部
19 妥当性判定部
20 ネットワーク

Claims (13)

  1. データベースを検索し、検索条件に対応した複数の情報を取得する検索部と、
    前記複数の情報間の類似度に基づくスコアを計算する類似度計算部と、
    前記スコアに基づいて、前記検索条件の妥当性を判定する妥当性判定部と、
    を備えることを特徴とする情報処理装置。
  2. 前記妥当性判定部は、前記スコアが所定値以上である場合に、前記検索条件を妥当であると判定する、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記検索条件は1以上のキーワードを含み、前記妥当性判定部は、前記キーワードの数に応じて、妥当性を判定する基準を変更する、
    ことを特徴とする請求項1または請求項2に記載の情報処理装置。
  4. 前記妥当性判定部において前記検索条件が妥当ではないと判定された場合に、前記検索部は、前記検索条件に含まれるキーワードと異なる数のキーワードを含む検索条件を用いて、データベースを検索する、
    ことを特徴とする請求項1から請求項3のいずれか1項に記載の情報処理装置。
  5. データベースを検索し、複数の情報からなる検索結果セットを取得する検索部と、
    前記検索結果セットに含まれる複数の情報間の類似度に基づくスコアを計算する類似度計算部と、
    前記スコアに基づいて、前記検索結果セットの妥当性を判定する妥当性判定部と、
    を備えることを特徴とする情報処理装置。
  6. 前記妥当性判定部は、前記スコアが所定値以上である場合に、前記検索結果セットを妥当であると判定する、
    ことを特徴とする請求項5に記載の情報処理装置。
  7. 前記妥当性判定部は、前記検索結果セットを妥当であると判定した場合に、前記検索結果セットに含まれる少なくとも1つの情報を検索結果として出力する、
    ことを特徴とする請求項5または請求項6に記載の情報処理装置。
  8. 前記検索部は、複数の検索条件を用いてデータベースを検索し、複数の情報からなり、前記複数の検索条件それぞれに対応する検索結果セットを複数取得し、
    前記類似度計算部は、前記検索部で取得された複数の検索結果セットそれぞれに対して前記スコアを計算し、
    前記妥当性判定部は、前記スコアに基づいて、前記複数の検索結果セットそれぞれの妥当性を判定し、妥当であると判定した検索結果セットのうち前記スコアが高い検索結果セットに含まれる情報を優先的に検索結果として出力する、
    ことを特徴とする請求項5から請求項7のいずれか1項に記載の情報処理装置。
  9. 前記類似度計算部は、検索結果セットに含まれる2つの情報の組合せに対応する類似度を複数算出し、その複数の類似度のうちの所定値以上の類似度の数に基づいて、前記スコアを計算する、
    ことを特徴とする請求項1から請求項8のいずれか1項に記載の情報処理装置。
  10. 1または複数のコンピュータが実行する情報処理方法であって、
    データベースを検索し、検索条件に対応した複数の情報を取得する検索ステップと、
    前記検索ステップにおいて取得した前記複数の情報間の類似度に基づくスコアを計算する類似度計算ステップと、
    前記類似度計算ステップで計算された前記スコアに基づいて、前記検索条件の妥当性を判定する妥当性判定ステップと、
    を含むことを特徴とする情報処理方法。
  11. 1または複数のコンピュータが実行する情報処理方法であって、
    データベースを検索し、複数の情報からなる検索結果セットを取得する検索ステップと、
    前記検索ステップにおいて取得された前記検索結果セットに含まれる複数の情報間の類似度に基づくスコアを計算する類似度計算ステップと、
    前記類似度計算ステップで計算された前記スコアに基づいて、前記検索結果セットの妥当性を判定する妥当性判定ステップと、
    を含むことを特徴とする情報処理方法。
  12. 1または複数のコンピュータを、
    データベースを検索し、検索条件に対応した複数の情報を取得する検索部、
    前記検索部において取得した前記複数の情報間の類似度に基づくスコアを計算する類似度計算部、
    前記類似度計算部で計算された前記スコアに基づいて、前記検索条件の妥当性を判定する妥当性判定部、
    として機能させることを特徴とする情報処理プログラム。
  13. 1または複数のコンピュータを、
    データベースを検索し、複数の情報からなる検索結果セットを取得する検索部、
    前記検索部において取得された前記検索結果セットに含まれる複数の情報間の類似度に基づくスコアを計算する類似度計算部、
    前記類似度計算部で計算された前記スコアに基づいて、前記検索結果セットの妥当性を判定する妥当性判定部、
    として機能させることを特徴とする情報処理プログラム。
JP2016236549A 2016-12-06 2016-12-06 情報処理装置、情報処理方法、及び情報処理プログラム Active JP6260678B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016236549A JP6260678B2 (ja) 2016-12-06 2016-12-06 情報処理装置、情報処理方法、及び情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016236549A JP6260678B2 (ja) 2016-12-06 2016-12-06 情報処理装置、情報処理方法、及び情報処理プログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013072314A Division JP6056610B2 (ja) 2013-03-29 2013-03-29 テキスト情報処理装置、テキスト情報処理方法、及びテキスト情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2017068862A true JP2017068862A (ja) 2017-04-06
JP6260678B2 JP6260678B2 (ja) 2018-01-17

Family

ID=58492666

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016236549A Active JP6260678B2 (ja) 2016-12-06 2016-12-06 情報処理装置、情報処理方法、及び情報処理プログラム

Country Status (1)

Country Link
JP (1) JP6260678B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110955763A (zh) * 2019-11-15 2020-04-03 深圳供电局有限公司 一种基于审计风险库的数据搜索方法及系统
CN112491649A (zh) * 2020-11-17 2021-03-12 中国平安财产保险股份有限公司 接口联调测试方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005519396A (ja) * 2002-03-07 2005-06-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 情報検索要求に応じて検索結果を提供する方法及び装置
JP2009199513A (ja) * 2008-02-25 2009-09-03 Nec Corp 違法情報検出装置、違法情報検出方法、及び違法情報検出プログラム
JP2011221877A (ja) * 2010-04-13 2011-11-04 Yahoo Japan Corp 関連語抽出装置
JP2012064200A (ja) * 2010-08-16 2012-03-29 Canon Inc 表示制御装置、表示制御装置の制御方法、プログラム及び記録媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005519396A (ja) * 2002-03-07 2005-06-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 情報検索要求に応じて検索結果を提供する方法及び装置
JP2009199513A (ja) * 2008-02-25 2009-09-03 Nec Corp 違法情報検出装置、違法情報検出方法、及び違法情報検出プログラム
JP2011221877A (ja) * 2010-04-13 2011-11-04 Yahoo Japan Corp 関連語抽出装置
JP2012064200A (ja) * 2010-08-16 2012-03-29 Canon Inc 表示制御装置、表示制御装置の制御方法、プログラム及び記録媒体

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110955763A (zh) * 2019-11-15 2020-04-03 深圳供电局有限公司 一种基于审计风险库的数据搜索方法及系统
CN112491649A (zh) * 2020-11-17 2021-03-12 中国平安财产保险股份有限公司 接口联调测试方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
JP6260678B2 (ja) 2018-01-17

Similar Documents

Publication Publication Date Title
JP6056610B2 (ja) テキスト情報処理装置、テキスト情報処理方法、及びテキスト情報処理プログラム
US11720572B2 (en) Method and system for content recommendation
US11789952B2 (en) Ranking enterprise search results based on relationships between users
JP7028858B2 (ja) 電子記録の文脈検索のためのシステム及び方法
Gao et al. Modeling interestingness with deep neural networks
Ma et al. Exploring performance of clustering methods on document sentiment analysis
US20130060769A1 (en) System and method for identifying social media interactions
US9031944B2 (en) System and method for providing multi-core and multi-level topical organization in social indexes
US20110153595A1 (en) System And Method For Identifying Topics For Short Text Communications
WO2016000555A1 (zh) 基于社交网络的内容、新闻推荐方法和系统
US9311372B2 (en) Product record normalization system with efficient and scalable methods for discovering, validating, and using schema mappings
CN112434151A (zh) 一种专利推荐方法、装置、计算机设备及存储介质
WO2015149533A1 (zh) 一种基于网页内容分类进行分词处理的方法和装置
US10366117B2 (en) Computer-implemented systems and methods for taxonomy development
CN108319583B (zh) 从中文语料库提取知识的方法与系统
WO2019041520A1 (zh) 基于社交数据的金融产品推荐方法、电子装置及介质
CN107895303B (zh) 一种基于ocean模型的个性化推荐的方法
Al-Kabi et al. Content-based analysis to detect Arabic web spam
Chen et al. Search engine reinforced semi-supervised classification and graph-based summarization of microblogs
JP5048852B2 (ja) 検索装置、検索方法、検索プログラム、及びそのプログラムを記憶するコンピュータ読取可能な記録媒体
JP6260678B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP6409071B2 (ja) 文の並び替え方法および計算機
JP2011253256A (ja) 関連コンテンツ提示装置及びプログラム
Sariki et al. A book recommendation system based on named entities
Tian et al. A prediction model for web search hit counts using word frequencies

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171101

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171127

R150 Certificate of patent or registration of utility model

Ref document number: 6260678

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150