IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本放送協会の特許一覧 ▶ 一般財団法人NHKサービスセンターの特許一覧

特開2025-27683ジャンル生成装置及びジャンル生成プログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025027683
(43)【公開日】2025-02-28
(54)【発明の名称】ジャンル生成装置及びジャンル生成プログラム
(51)【国際特許分類】
   G06F 16/28 20190101AFI20250220BHJP
【FI】
G06F16/28
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023132711
(22)【出願日】2023-08-16
(71)【出願人】
【識別番号】000004352
【氏名又は名称】日本放送協会
(71)【出願人】
【識別番号】399060908
【氏名又は名称】一般財団法人NHK財団
(74)【代理人】
【識別番号】110001807
【氏名又は名称】弁理士法人磯野国際特許商標事務所
(72)【発明者】
【氏名】苗村 昌秀
(72)【発明者】
【氏名】望月 貴裕
(72)【発明者】
【氏名】河合 吉彦
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175KA11
(57)【要約】
【課題】レポジトリの情報を網羅的に活用しながら、ユーザの望む規模でジャンルを生成する装置及びプログラムを提供する。
【解決手段】ジャンル生成装置1は、レポジトリからデータを抽出する題名抽出部10及び階層抽出部20と、根ノードを含む初期状態木を設定する初期設定部30と、子ノードを生成して下位階層の分類名を割り当てる生成作業を繰り返し行う成長処理部40と、分類名に属する題名を各ノードに割り当てる題名割当部50と、マージ処理を行うマージ処理部60と、を備え、成長処理部40は、既に他のノードに割り当てた分類名及び所定の除外語を含む分類名を下位階層の分類名から除いて生成作業を行う。
【選択図】図1
【特許請求の範囲】
【請求項1】
人物や事物及びそれらが属する階層的な分類の情報を有するレポジトリから、人物や事物を分類するジャンルのデータを木構造グラフの形式に生成するジャンル生成装置であって、
前記レポジトリから、人物や事物の名称である題名及び前記題名が属する分類名を含む題名データを抽出する題名抽出部と、
前記レポジトリから、前記分類名及び前記分類名の下位階層の分類名を含む階層データを抽出する階層抽出部と、
根ノードを含み、各ノードに前記分類名が割り当てられた初期状態木を設定する初期設定部と、
前記初期状態木の葉ノードから開始して、浅い階層のノードから順にノードを移動しながら、子ノードを生成して前記下位階層の分類名を割り当てる生成作業を繰り返し行う成長処理部と、
分類名に属する題名を各ノードに割り当てる題名割当部と、を備え、
前記成長処理部は、既に他のノードに割り当てた分類名及び所定の除外語を含む分類名を前記下位階層の分類名から除いて前記生成作業を行う、
ジャンル生成装置。
【請求項2】
最深階層のノードの分類名及びそれに属する題名を親ノードに割り当て、前記最深階層のノードを削除するマージ処理を行うマージ処理部をさらに備え、
前記成長処理部は、移動するノードがなくなるまで前記生成作業を繰り返し行い、
前記マージ処理部は、前記木構造グラフが所定の高さとなるように前記マージ処理を繰り返し行う、
請求項1に記載のジャンル生成装置。
【請求項3】
前記初期設定部は、前記階層データに基づく分類名の選択肢をユーザに提示し、前記選択肢における選択の結果を受け付けて、ユーザの選択によって前記根ノードからユーザが所望する階層までの前記初期状態木を設定し、
前記マージ処理部は、ユーザが指定する前記木構造グラフの高さを受け付けて、その高さを前記所定の高さとする、
請求項2に記載のジャンル生成装置。
【請求項4】
ユーザが指定する題名を受け付けて、その題名が属する分類名を検索して出力する検索部をさらに備える、
請求項1に記載のジャンル生成装置。
【請求項5】
前記木構造グラフに割り当てらない題名について、前記木構造グラフに割り当てられている題名からユーザが指定する指定題名とグループ化し、前記指定題名と同じノードに割り当てるグループ設定部をさらに備える、
請求項1に記載のジャンル生成装置。
【請求項6】
前記木構造グラフのノードにタプル形式の座標を付与する座標付与部と、
前記座標を用いて前記木構造グラフにおける分類名間の類似度を計算する類似度計算部と、をさらに備える、
請求項1に記載のジャンル生成装置。
【請求項7】
コンピュータを請求項1から請求項6の何れか一項に記載のジャンル生成装置として機能させるジャンル生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、人物や事物を分類するジャンルを生成する装置及びプログラムに関する。
【背景技術】
【0002】
従来、カテゴリをデータ処理に利用することは一般的に行われており、その有用性は広く認識されている。ここでカテゴリとは、人物や事物を分類する階層的な分類名である。例えば特許文献1には、人物が属するカテゴリを限定して、顔を含む映像から人物を特定することができる顔認識装置が記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2021-136038号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
カテゴリの情報は、例えば条件を満たすレポジトリから抽出することができる。一方、分類において、同じ分類名は重複することなく1回のみ使用されていることが好ましい。以下では、「ジャンル」は重複しないように設けられた分類名という意味で用いる。
レポジトリからジャンルを生成する場合、重複を避けるために読み込む情報を制限すると、レポジトリの情報を網羅的に活用することができない。また、ジャンルを細かく設けると、分類の規模が大きくなり、ユーザによっては使いにくいという問題があった。
【0005】
本発明は、かかる課題を解決するためになされたものであり、レポジトリの情報を網羅的に活用しながら、ユーザの望む規模でジャンルを生成する装置及びプログラムを提供することを課題とする。
【課題を解決するための手段】
【0006】
かかる課題を解決するために、実施形態に係るジャンル生成装置は、人物や事物及びそれらが属する階層的な分類の情報を有するレポジトリから、人物や事物を分類するジャンルのデータを木構造グラフの形式に生成するジャンル生成装置であって、前記レポジトリから、人物や事物の名称である題名及び前記題名が属する分類名を含む題名データを抽出する題名抽出部と、前記レポジトリから、前記分類名及び前記分類名の下位階層の分類名を含む階層データを抽出する階層抽出部と、根ノードを含み、各ノードに前記分類名が割り当てられた初期状態木を設定する初期設定部と、前記初期状態木の葉ノードから開始して、浅い階層のノードから順にノードを移動しながら、子ノードを生成して前記下位階層の分類名を割り当てる生成作業を繰り返し行う成長処理部と、分類名に属する題名を各ノードに割り当てる題名割当部と、を備え、前記成長処理部は、既に他のノードに割り当てた分類名及び所定の除外語を含む分類名を前記下位階層の分類名から除いて前記生成作業を行う。
【0007】
また、実施形態に係るジャンル生成プログラムは、コンピュータを実施形態に係るジャンル生成装置として機能させる。
【発明の効果】
【0008】
本発明によれば、レポジトリの情報を網羅的に活用しながら、ユーザの望む規模でジャンルを生成する装置及びプログラムを提供することができる。
【図面の簡単な説明】
【0009】
図1】実施形態に係るジャンル生成装置を例示するブロック図である。
図2A】題名データのデータ構造を例示する表である。
図2B】題名データの一例である。
図3A】階層データのデータ構造を例示する表である。
図3B】階層データの一例である。
図4】初期状態木の一例である。
図5】成長処理部における処理を例示する木構造グラフである。
図6】題名が割り当てられたビッグジャンル木の一例である。
図7】マージ処理部における処理を例示する木構造グラフである。
図8】マージ処理後のジャンル木の一例である。
図9】類似度を計算する木構造グラフの一例である。
図10】実施形態に係るジャンル生成装置の動作を例示するフローチャートである。
図11】成長処理部の動作を例示するフローチャートである。
図12】マージ処理部の動作を例示するフローチャートである。
図13A】木構造グラフの一例である。
図13B図13Aの一部の拡大図である。
【発明を実施するための形態】
【0010】
[ジャンル生成装置]
実施形態に係るジャンル生成装置1は、レポジトリからデータを抽出して、ジャンルのデータを木構造グラフの形式に生成する装置である。レポジトリは、広範な情報の電子的な集合体であり、外部のものを利用することができる。レポジトリの条件は、人物や事物及びそれらが属する階層的な分類の情報を有することである。
以下では、レポジトリとしてウィキペディア(WIKIPEDIA、登録商標)を利用する場合を例にして説明している。ウィキペディアは、膨大な記事が掲載されているオンラインの百科事典である。それぞれの記事には1つの「タイトル」が付され、記事を分類する階層的な「カテゴリ」を有している。
【0011】
ウィキペディアには、同一のタイトルで異なる記事を作成できないという制約があり、それぞれの記事には、その記事が属するカテゴリが記載されている。記事が属するカテゴリは1つの場合もあり、複数の場合もある。それぞれのカテゴリは、そのカテゴリに属するタイトル、上位階層のカテゴリ及び下位階層のカテゴリが記載されたページを有している。このため、ウィキペディアは、ジャンル生成装置1が利用することができるレポジトリの条件を備えている。なお、上位階層のカテゴリとは、そのカテゴリが分類されている1つ上位のカテゴリである。下位階層のカテゴリとは、そのカテゴリに分類されている1つ下位のカテゴリである。
ジャンル生成装置1では、人物や事物の名称を「題名」とする。題名はウィキペディアにおけるタイトルに相当する。また、階層的な分類の名称を「分類名」とする。分類名はウィキペディアにおけるカテゴリに相当する。
【0012】
ここで、木構造グラフについて説明する。図13A図13Bに例示するように、木構造グラフはノード及びエッジで構成され、ノード間の階層的な関係を表すことができる。最上位の階層を根ノードRNとし、根ノードRNから離れるほど下位の階層となり、深い階層となる。階層深さDは、根ノードRNからそのノードまでのエッジの数で数えることができる。最深階層から根ノードRNまでの階層の数を木構造グラフの高さHtとする。括弧を付けた数字の列は、後記するタプル形式の座標である。
また、エッジで結ばれた上位側のノードが親ノード、下位側のノードが子ノードである。なお、1つのノードについて、子ノードは0個、1個又は複数個であり、親ノードは1個である。また、子ノードが0個のノードを葉ノードとして説明する場合がある。
ジャンル生成装置1は、木構造グラフの1つのノードに1つの分類名を割り当てる。また、異なるノードには同じ分類名を割り当てない。すなわち、同じ分類名を分類における異なる位置に設けない。これにより、分類名は重複しないように設けられる。
【0013】
本明細書においてジャンルとは、人物や事物の階層的な分類であり、同じ分類名が分類における異なる位置に設けられていないものをいう。また、1つのノードに1つの分類名が割り当てられ、異なるノードに同じ分類名が割り当てられていない木構造グラフをジャンル木とする。ジャンル生成装置1は、後記するように、ジャンル木の各ノードに、そのノードの分類名に属する題名を割り当てる。
【0014】
図1に例示するように、ジャンル生成装置1は、情報処理を行う装置であり、制御部110と記憶部120とを備えている。制御部110は、記憶部120や外部とデータをやり取りし、ジャンルを生成する処理を行う。制御部110は、題名抽出部10と、階層抽出部20と、初期設定部30と、成長処理部40と、題名割当部50と、を備え、ここでは、マージ処理部60と、座標付与部70と、をさらに備える。また、制御部110は、グループ設定部55、検索部81及び類似度計算部82を備えることができる。
【0015】
記憶部120は、制御部110の処理の対象となるデータ及び処理の結果のデータ、外部から入力されるデータ等を記憶する。記憶部120は、抽出データ記憶部121及びジャンル木記憶部122を備えている。
ジャンル生成装置1と外部とのデータの入出力は、入力線130及び出力線140で行うことができる。
【0016】
また、ジャンル生成装置1は、回線200によって外部のレポジトリ300に接続することができる。回線200は、インターネットやLAN(ローカルエリアネットワーク)等の通信回線である。レポジトリ300は、ここではウィキペディアである。
以下、ジャンル生成装置1の各構成について、図面を参照しながら説明する。なお、具体的な例として、スポーツ選手(人物)についてのジャンルを生成する場合で説明する。
【0017】
(題名抽出部)
題名抽出部10は、レポジトリ300から、人物や事物の名称である題名及びその題名が属する分類名を含む題名データを抽出する手段である。抽出した題名データは、抽出データ記憶部121に記憶される。
図2Aに例示するように、題名データは、「題名」にその「属する分類名」を対応させるテーブルとして表すことができる。「属する分類名」は、題名が属する分類名であり、題名が複数の分類名に属する場合は、その全てを抽出して列挙している。列挙した「属する分類名」は、セット構造で管理することによって一意のデータとすることができる。題名データは、少なくとも題名とその題名が属する分類名の組を含んでいればよい。題名データによって、題名が属する分類名を特定することができる。
【0018】
題名の抽出は、分類する対象に合わせて題名を選択して行うことができる。分類する対象がスポーツ選手の場合、人物の題名を選択して抽出することができる。例えば、題名が付されている情報の中に予め定めた語句が記載されていることで、人物の題名であると判定することができる。ウィキペディアの場合、例えば、そのタイトルが「年生」又は「年没」の文字列を含むカテゴリや「存命人物」というカテゴリに属するという条件をもって、人物のタイトルであると判定することができる。
図2Bに例示するように、人物と判定されて抽出されたタイトルには、「選手P1」から「選手P6」が含まれている。選手P1、選手P2は「アメリカ合衆国の球団の野球選手」のカテゴリに属し、選手P3、選手P4は「チームAの選手」のカテゴリに属し、選手P5、選手P6は「チームBの選手」のカテゴリに属している。
【0019】
(階層抽出部)
階層抽出部20は、レポジトリ300から、分類名及び分類名の下位階層の分類名を含む階層データを抽出する手段である。抽出した階層データは、抽出データ記憶部121に記憶される。
図3Aに例示するように、階層データは、「分類名」にその「下位階層の分類名」を対応させるテーブルとして表すことができる。下位階層の分類名は、その分類名に分類されている分類名のうち1つ下位の分類名であり、複数ある場合は、その全てを抽出して列挙している。列挙した「下位階層の分類名」は、セット構造で管理することによって一意のデータとすることができる。階層データは、少なくとも分類名とその分類名の下位階層の分類名の組を含んでいればよい。階層データによって、下位階層の分類名を特定することができる。
【0020】
図3Bに例示するように、「各球団の野球選手」というカテゴリの下位階層には、「アメリカ合衆国の球団の野球選手」、「日本の球団の野球選手」、「キューバの球団の野球選手」を含む複数のカテゴリが存在している。また、「アメリカ合衆国の球団の野球選手」というカテゴリの下位階層には、「チームAの選手」、「チームBの選手」、「チームCの選手」を含む複数のカテゴリが存在している。
【0021】
(初期設定部)
初期設定部30は、根ノードRNを含み、各ノードに分類名が割り当てられた初期状態木ITRを設定する手段である。初期状態木ITRの設定は、木構造グラフの構造を作り、各ノードに分類名を割り当てることで行う。初期設定部30は、予め設定された内容又は入力線130からの入力を受け付けて、初期状態木ITRを設定する。初期設定部30が設定した初期状態木ITRは、ジャンル木記憶部122に記憶される。初期状態木ITRは、階層関係に基づいて分類名が割り当てられていることが好ましい。
初期状態木ITRは、木構造グラフの初期状態であり、木構造グラフは初期状態木ITRの葉ノードから成長を開始する。初期設定部30は、根ノードRNを含む範囲について、初期状態木ITRの高さや各ノードの分岐の数を設定することができる。初期状態木ITRは、根ノードRNのみであってもよく、根ノードRNのみの場合は、根ノードRNが葉ノードとなる。そして、初期設定部30は、各ノードに1つの分類名を割り当てる。
【0022】
図4に例示するように、ここでは、初期状態木ITRは、根ノードRNが5つの子ノードを有する構造となっている。根ノードRNには「スポーツ選手」、子ノードには「サッカー選手」、「野球選手」、「ラグビーフットボール選手」、「バスケットボール選手」及び「テニス選手」というカテゴリが割り当てられている。なお、図4図6及び図8は、ディスプレイ等に表示される画面の一例であり、ノードを長方形で表示し、ノードに割り当てられているカテゴリを長方形の中に記載している。
【0023】
初期状態木ITRの葉ノードに割り当てる分類名は、階層データに含まれる分類名であることが好ましい。ここでは、葉ノードに割り当てられている「サッカー選手」等のカテゴリは、ウィキペディアに存在し、階層データに含まれている。一方、根ノードRNと葉ノードとの間の階層は省略してもよい。ウィキペディアでは、「スポーツ選手」の下位階層に「競技別のスポーツ選手」というカテゴリがあり、その下位階層が「サッカー選手」等のカテゴリとなっている。ここでは、「競技別のスポーツ選手」という階層を省略している。しかし、「スポーツ選手」の階層よりも下にある同じ階層のノードに「サッカー選手」等のカテゴリが割り当てられており、階層関係に基づく割当てとなっている。
【0024】
初期状態木ITRの構造や各ノードへの分類名の割当ては、予め設定しておくことができる。しかし、予め設定する分類名が階層データに含まれていない場合、階層データを使用する成長処理を行うことができない。そこで、割り当てる分類名を階層データに含まれる分類名から選択できるようにすることが好ましい。初期設定部30は、階層データに基づく分類名の選択肢をユーザに提示し、その選択肢における選択の結果を受け付けて、ユーザの選択によって根ノードRNからユーザが所望する階層までの初期状態木ITRを設定することができる。
ユーザへの選択肢の提示及び選択の結果の受付を行う場合、初期設定部30は、抽出データ記憶部121を参照して階層データに含まれる分類名を出力線140から出力し、ユーザに選択肢を提示する。そして、入力線130から入力されるユーザの選択の結果を受け付ける。
【0025】
図4の例で説明すると、5つの子ノードへのカテゴリの割当てにおいて、初期設定部30は、まず選択肢の提示として、どの競技にするかの選択肢をユーザに提示する。初期設定部30は、階層データに基づいて選択肢を提示する。次に、初期設定部30は、選択の結果として、例えば「サッカー選手」等の5つのカテゴリを受け付ける。このとき、子ノードの数を先に設定せず、選択される競技の数に応じて子ノードを設けるようにしてもよい。また、提示及び受付をさらに行って、例えば「サッカー選手」の下に「アメリカ合衆国のサッカー選手」や「スペインのサッカー選手」等のカテゴリを設けることもできる。選択肢の提示は根ノードRNから始めてもよい。初期設定部30は、提示及び受付を繰り返すことで、ユーザが所望する階層までの初期状態木ITRを設定することができる。
【0026】
(成長処理部)
成長処理部40は、初期状態木ITRの葉ノードから開始して、浅い階層のノードから順にノードを移動しながら、子ノードを生成して下位階層の分類名を割り当てる生成作業を繰り返し行う手段である。成長処理部40は、抽出データ記憶部121の階層データを参照して下位階層の分類名を特定し、生成作業を行う。成長処理部40は、生成作業を繰り返し行ってジャンル木を成長させる。成長処理部40からの出力は、ビッグジャンル木BTRであり、ジャンル木記憶部122に記憶される。ビッグジャンル木BTRは、成長処理部40における処理を終えたジャンル木である。
成長処理部40は、階層データに基づいて、ノードごとに作業を行う。作業を行うノードを作業ノードとする。また、浅い階層のノードから作業を行い、その階層に作業していないノード(以下、未作業ノードという)がなくなってから、下の階層に移動する。作業ノードのある階層を処理階層とする。図5に例示するように、成長処理では、例えば、作業ノードであるノードN02において、2つの子ノードN04、N05を生成して分類名C04、C05を割り当てる。このとき、ノードN03は未作業ノードである。ノードN02、N03の階層の処理を終えると、処理階層は矢印A1の方向に移動する。
【0027】
成長処理部40は、作業ノードの分類名に、条件を満たす下位階層の分類名がある場合、子ノードを生成してそれを割り当てる。条件を満たす下位階層の分類名が複数ある場合は、その個数の子ノードを生成して分類名を割り当てる。条件を満たす下位階層の分類名がなければ、子ノードを生成しない。
条件とは、既に他のノードに割り当てられていないこと及び所定の除外語を含まないことである。すなわち、成長処理部40は、既に他のノードに割り当てた分類名及び所定の除外語を含む分類名を下位階層の分類名から除いて生成作業を行う。除外語を含むとは、除外語の文字列を含むという意味である。
【0028】
ウィキペディアでは、同じカテゴリが別のカテゴリの下位階層として存在する場合がある。この場合、階層データのとおりに割り当てると、既に割り当てたカテゴリを別のノードにも割り当てることになる。成長処理部40は、既に他のノードに割り当てたカテゴリ(分類名)を除いて生成作業を行うことによって、異なるノードに同じカテゴリが割り当てられていないジャンル木を生成することができる。
所定の除外語としては、例えばレポジトリにおける機能を表す語句や人物の名称を挙げることができる。ウィキペディアの場合、例えば「カテゴリ」、「分野別」、「テンプレート」、「スタブ」等や、題名抽出部10で人物と判定されたタイトルを除外語とする。
【0029】
成長処理部40は、移動するノードがない状態となるまで生成作業を繰り返し行う。移動するノードがない状態とは、処理階層において未作業ノードがなく、かつ、未処理階層がない状態である。成長処理部40は、条件を満たす下位階層の分類名があれば子ノードを生成するため、1つ下の階層に未処理階層が生じる。しかし、ある処理階層の何れの作業ノードにおいても子ノードを生成していない場合には、未処理階層が生じておらず、移動するノードがない状態となる。そして、割り当てる分類名もなくなっている。
【0030】
成長処理部40は、このように、条件を満たす下位階層の分類名が全てのノードで存在しなくなるまで処理を続ける。生成したビッグジャンル木BTRは、初期設定されたジャンル木からレポジトリの分類名の情報全体にわたって成長させたものであり、ユーザの生成したいジャンル分野を網羅した階層構造を有している。
成長処理部40によって、根ノードRNに割り当てた分類名を最上位として、レポジトリの階層的な分類名の情報を重複なく網羅したビッグジャンル木BTRを生成することができる。ビッグジャンル木BTRは、設定した初期状態木ITRから成長させるジャンル木の中では高さHtが最大になっている。
【0031】
(題名割当部)
題名割当部50は、分類名に属する題名を各ノードに割り当てる手段である。ビッグジャンル木の各ノードには、分類名が1つ割り当てられている。題名割当部50は、抽出データ記憶部121の題名データを参照して題名が属する分類名を特定する。そして、ジャンル木記憶部122のビッグジャンル木BTRを読み取って、各ノードに題名を割り当てる。題名割当部50からの出力は、題名が割り当てられたビッグジャンル木BTRであり、ジャンル木記憶部122に記憶される。なお、題名が属する分類名が複数の場合は、同じ題名を複数のノードに割り当てることになる。
図6に例示するように、題名割当部50によって、ビッグジャンル木BTRの各ノードに、そのノードのカテゴリに属する人物のタイトルが割り当てられる。例えば「アメリカ合衆国の球団の選手」というカテゴリのノードには、そのカテゴリに属する「選手P1」、「選手P2」、…というタイトルが割り当てられている。
【0032】
(グループ設定部)
グループ設定部55は、木構造グラフに割り当てられない題名について、木構造グラフに割り当てられている題名からユーザが指定する指定題名とグループ化し、指定題名と同じノードに割り当てる手段である。ユーザから受け付ける題名は、入力線130から入力される。グループ設定部55は、指定題名及び指定題名とグループ化する題名が組になったグループ設定データを作成する。また、グループ設定部55は、ジャンル木記憶部122の題名が割り当てられたビッグジャンル木BTRを読み取って、グループ化する題名を割り当てることができる。グループ設定部55からの出力は、グループ設定データ及びグループ化する題名が割り当てられたビッグジャンル木BTRであり、これらがジャンル木記憶部122に記憶される。
例えば新人のスポーツ選手等は、レポジトリに情報がない場合があり、ビッグジャンル木BTRに割り当てられない。グループ設定部55は、レポジトリに情報がない人物であっても、ビッグジャンル木BTRに割当て済の人物の中から、ユーザが近い存在と考える人物の1人とグループ化して、その人物と同じノードに割り当てることができる。
【0033】
グループ設定部55は、ユーザがジャンル木に追加して割り当てたい人物及びグループ化する人物について、ユーザの指定を受け付けてグループ化を行う。グループ設定部55は、これらの人物の指定をユーザに求めるようにしてもよい。
グループ設定部55は、題名割当部50による題名の割当ての後でグループ化を行うことができる。ただし、レポジトリに情報がなく、題名データに含まれないことが前もってわかっている人物の場合には、予めグループ化を行っておいてもよい。予めグループ化を行う場合は、グループ設定部55がグループ設定データを作成し、ビッグジャンル木BTRへの題名の割当ては、題名割当部50が題名データと併せてグループ設定データを参照して行うようにしてもよい。
【0034】
(マージ処理部)
マージ処理部60は、最深階層のノードの分類名及びそれに属する題名を親ノードに割り当て、最深階層のノードを削除する手段である。マージ処理部60は、ジャンル木記憶部122の題名が割り当てられたビッグジャンル木BTRを読み取って、木構造グラフが所定の高さとなるようにマージ処理を繰り返し行う。マージ処理部60は、各ノードに題名が割り当てられたビッグジャンル木BTRを所定の高さのジャンル木RTRに縮退させて出力する。ジャンル木RTRは、ジャンル木記憶部122に記憶される。
【0035】
図7に例示するように、マージ処理では、例えば、最深階層のノードN04、N05について、分類名C04、C05及びそれらに属する題名W04、W05を親ノードであるノードN02に割り当てる。また、最深階層のノードN06、N07について、分類名C06、C07及びそれらに属する題名W06、W07を親ノードであるノードN03に割り当てる。そして、ノードN04-N07を削除する。処理階層は、矢印A2の方向に移動していく。なお、削除するノードN04-N07に割り当てられている分類名C04-C07は、親ノードに割り当てずに削除してもよい。
【0036】
マージ処理部60における処理の結果、図8に例示するように、カテゴリ「アメリカ合衆国の球団の野球選手」のノードでは、子ノードが削除され、子ノードに割り当てられていたタイトル「選手P3」、「選手P4」、「選手P5」、「選手P6」が、もとからあったタイトル「選手P1」、「選手P2」に追加して割り当てられている。ジャンル木RTRの高さHtは、ビッグジャンル木BTRよりも低くなっている。なお、ここでは、子ノードに割り当てられていた「チームAの選手」、「チームBの選手」というカテゴリは、親ノードに割り当てずに削除されている。
マージ処理部60によって、レポジトリの情報を網羅しながら所定の規模としたジャンル木RTRを生成することができる。
【0037】
マージ処理部60の処理における木構造グラフの所定の高さは、固定された値にすることができる。一方、マージ処理部60での処理が行われるのに合わせてユーザが高さを指定できるようにすれば、利便性を高めることができる。そこで、マージ処理部60は、ユーザが指定する木構造グラフの高さを受け付けて、その高さを所定の高さとすることが好ましい。マージ処理部60は、入力線130から入力される高さの指定を受け付ける。また、ユーザに対し、木構造グラフの高さの指定を求めることもできる。ユーザによる高さの指定は、初期状態木ITRの設定の際に行われるようにしてもよい。
【0038】
(座標付与部)
座標付与部70は、木構造グラフのノードにタプル形式の座標を付与する手段である。座標付与部70は、ジャンル木記憶部122のジャンル木RTRを読み取って、座標を付与し、座標が付与されたジャンル木RTRを出力する。座標が付与されたジャンル木RTRは、ジャンル木記憶部122に記憶され、出力線140から出力される。
タプル形式の座標を付与することによって、ジャンル木RTRにおける各ジャンルのノード位置を座標で管理することができる。また、ジャンル木のノードをタプル形式で表現することで、後記するジャンル間の類似度計算を効率的に行うことができる。そして、ノード間の距離計算も簡単なアルゴリズムで実現でき、データベース登録の際の項目のグループ分け処理にも応用することができる。
【0039】
なお、タプル形式の座標とは、例えば(0,0,…)のようなベクトル形式の座標である。座標の付与は、子ノードについて次数を1つ増やして(0,0,…,X)とし、子ノードの個数に応じてXの値を0、1、2、…と変えて付与していく。根ノードRNは(0,)と表記する。例えば、根ノード(0,)の子ノードは、(0,0)、(0,1)、(0,2)、…のように付与される。また、ノード(0,1)の子ノードは、(0,1,0)、(0,1,1)、…のように付与される。座標の次数は、階層深さDの値に1を加えた値であり、例えば階層深さDの値がNであるノードの場合、次数はN+1となる。
【0040】
(検索部)
検索部81は、ユーザが指定する題名を受け付けて、木構造グラフにおいて、その題名が属する分類名を検索して出力する手段である。ユーザが指定する題名は、入力線130から入力される。検索部81は、ジャンル木記憶部122の題名が割り当てられたジャンル木RTRを参照して、指定された題名が属する分類名を出力線140から出力する。
題名が属する分類名が複数ある場合、それら複数の分類名が出力される。検索する題名がジャンル木のノードに割り当てられていない場合は、分類名が出力されない。
検索部81によって、ジャンル木RTRに注目する人物が含まれているかどうかを確認することができ、人物の属するジャンルを即座に特定することができる。
【0041】
(類似度計算部)
類似度計算部82は、タプル形式の座標を用いて木構造グラフにおける分類名間の類似度を計算する手段である。類似度を計算する分類名は、入力線130から入力される。類似度計算部82は、ジャンル木記憶部122のタプル形式の座標が付与されたジャンル木RTRを参照して、指定された分類名間の類似度を計算し、計算結果の類似度を出力線140から出力する。
分類名が割り当てられているノードには、座標付与部70によってタプル形式の座標が付与されている。類似度計算部82は、2つのタプル形式の座標から類似度を計算して出力する。
【0042】
図9を参照しながら、ノードNAとノードNBとの間の類似度を計算する場合について説明する。まず、根ノードRNからノードNA、ノードNBのそれぞれに向かう経路を辿っていく。2つの経路は、階層深さD=1の階層では同じノードNCを経由する。そして、階層深さD=2の階層で異なるノードに分かれる。このとき、異なるノードに分かれた階層深さD=2を最大深さで割った値を類似度とする。この例では最大深さは5であるため、類似度は2÷5で0.4となる。
類似度計算部82が計算する類似度によって、生成されたジャンル木RTRにおける分類名間の類似度が期待される範囲となっているかどうかを確認することができる。
【0043】
上記のような構成を備えるジャンル生成装置1は、成長処理の後でマージ処理を行うことで、情報を保持しながらジャンル木の規模を調節することができる。また、所定の条件を満たすデータを全て取り込む成長処理を行ってビッグジャンル木を生成した後、マージ処理によって高さを調整することで、レポジトリの情報を網羅的に活用しながら、ジャンル木の規模を小さくすることができる。ジャンル木を適度な規模にすることで、データの管理も容易となる。
【0044】
ジャンル生成装置1は、どこからどのような範囲で分類を始めるかを初期状態木で設定することができ、また、どこまで細かく分類するかをジャンル木の高さの指定によって設定することができる。これにより、ジャンル木を小さくする場合でも、ユーザが所望する分野のジャンルに関して、情報を余すことなく盛り込んだジャンル木を生成することができる。
ジャンル生成装置1は、レポジトリが大量の情報を有する場合でも、少ない労力で広範な情報をカバーするジャンル木を効率的かつ効果的に生成することができる。また、人物や事物のジャンル木への割り当てを自動で行うことができ、コスト及び労力の低減を図ることができる。
【0045】
なお、レポジトリから抽出するデータは、題名データと階層データとの2種類に分けずに1種類とし、分類名、分類名に属する題名、下位階層の分類名の3つを含む組にしてもよい。また、ジャンル生成装置1は、内部にレポジトリを備えていてもよい。
【0046】
[ジャンル生成装置の動作]
次に、図10を参照しながら、ジャンル生成装置1の動作について説明する。なお、ここでは、ウィキペディアを利用して、スポーツ選手(人物)のジャンル木を生成する場合について説明する。
ステップS10において、題名抽出部10は、ウィキペディアから、人物のタイトルとその人物が属するカテゴリとが組になった題名データ(図2B)を抽出する。ステップS20において、階層抽出部20は、ウィキペディアから、カテゴリとそのカテゴリの下位階層のカテゴリとの組になった階層データ(図3B)を抽出する。なお、ステップS10及びステップS20は、どちらを先に行ってもよく、並行して行ってもよい。
【0047】
ステップS30において、初期設定部30は、根ノードRNを含む初期状態木ITRを設定する。ここでは、「スポーツ選手」を根ノードRNとし、5つの競技についての選手のカテゴリを子ノードとする初期状態木ITRを設定している(図4)。初期設定部30は、スポーツ選手の子ノードとするカテゴリについて、階層データを参照して選択肢を提示し、選択された結果を受け付けて、「野球選手」等を割り当てることができる。
ステップS40において、成長処理部40は、初期状態木ITRの葉ノードから開始して、浅い階層のノードから順にノードを移動しながら、子ノードを生成して下位階層の分類名を割り当てる生成作業を繰り返し行ってビッグジャンル木BTRを生成する。成長処理部40は、既に他のノードに割り当てたカテゴリ、機能を表す語句等の所定の除外語を含むカテゴリを除外して子ノードに割り当てる。そして、移動するノードがなくなるまで処理を行う。
【0048】
成長処理部40における処理(ステップS40)は、図11に例示するフローチャートに沿って進めることができる。まず初期状態木ITRの葉ノードを作業ノードとする(ステップS41)。そして、作業ノードに割り当てられている分類名に、条件を満たす下位階層の分類名があるかどうかを判断する(ステップS42)。条件を満たす下位階層の分類名がある場合、子ノードを生成してその分類名を割り当てる(ステップS43)。次に、処理階層に未作業ノードがあるかどうかを判断する(ステップS44)。未作業ノードがあれば、そのノードに移動して(ステップS45)、ステップS42を行う。未作業のノードがなければ、現在の処理階層よりも下に、未処理の階層があるかどうかを判断する(ステップS46)。未処理階層があれば、処理階層を1つ下げて(ステップS47)、作業ノードごとにステップS42を行う。未処理階層がなければ、ビッグジャンル木を出力して(ステップS48)、処理を終了する。
【0049】
次に、ステップS50において、題名割当部50は、ビッグジャンル木BTRの各ノードに、そのノードのカテゴリに属する選手を割り当てる(図6)。ウィキペディアで記事がまだ作成されていない新人の選手等は、ステップS55において、グループ設定部55が割当て済の選手とグループ化して、その選手と同じカテゴリに割り当てる。
ステップS60において、マージ処理部60は、最深階層のタイトルを親ノードに割り当てて、その最深階層のノードを削除することを繰り返して、所定の高さまで低くしたジャンル木RTRを生成する。所定の高さは、ユーザが指定することができ、例えば初期状態木ITRの設定の際に指定するようにしてもよい。
【0050】
マージ処理部60における処理(ステップS60)は、図12に例示するフローチャートに沿って進めることができる。まず最深階層を処理階層とする(ステップS61)。そして、木構造グラフの高さが所定の高さよりも高いかどうかを判断する(ステップS62)。所定の高さよりも高くない場合は、ジャンル木RTRを出力して(ステップS66)、処理を終了する。所定の高さよりも高い場合は、処理階層の各ノードの分類名及びそれに属する題名をそれぞれの親ノードに割り当てる(ステップS63)。次に、処理階層を1つ上げて(ステップS64)、直前の処理階層である1つ下の階層のノードを削除し(ステップS65)、ステップS62に戻る。
【0051】
ステップS70において、座標付与部70は、ジャンル木RTRにタプル形式の座標を付与したジャンル木RTRを出力する。
ステップS81において、検索部81は、指定された選手を検索して、ジャンル木RTRにおける、その選手が属するカテゴリを出力する。また、ステップS82において、類似度計算部82は、カテゴリ間の類似度を計算して出力する。なお、ステップS81及びステップS82は、必要な場合に行うことができる。
【0052】
ジャンル生成装置1は、上記のように動作して、レポジトリの情報を網羅的に活用しながら、ユーザの望む規模でジャンルを生成することができる。
なお、題名のノードへの割当ては、成長処理部40の処理(S40)における、子ノードを生成して下位階層の分類名を割り当てるステップ(S43)で、その分類名に属する題名を一緒に割り当てるようにしてもよい。
【0053】
ジャンル生成装置1は、コンピュータをジャンル生成プログラムで動作させることによっても実現することができる。すなわち、ジャンル生成プログラムが読み込まれたコンピュータは、ジャンル生成装置1となる。ジャンル生成プログラムは、コンピュータをジャンル生成装置1として機能させるためのプログラムである。
ジャンル生成プログラムは、電気通信回線を通じて入手することができ、コンピュータ読み取り可能な記録媒体に記録することができる。
【符号の説明】
【0054】
1 ジャンル生成装置
10 題名抽出部
20 階層抽出部
30 初期設定部
40 成長処理部
50 題名割当部
55 グループ設定部
60 マージ処理部
70 座標付与部
81 検索部
82 類似度計算部
110 制御部
120 記憶部
121 抽出データ記憶部
122 ジャンル木記憶部
130 入力線
140 出力線
200 回線
300 レポジトリ
図1
図2A
図2B
図3A
図3B
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13A
図13B