以下、図面を参照しながら、実施形態を詳細に説明する。
図書館の書籍が収納される本棚には、収納可能な書籍の冊数の上限が存在する。例えば、図書館によっては、上限が40冊である本棚には、複数のカテゴリに属する書籍を収納することが困難であり、上限が100冊である本棚には、複数のカテゴリに属する書籍を収納することが可能である。
さらに、2つの本棚が離れている等の物理的な制約も存在する。互いに類似する複数のカテゴリに属する書籍は、複数の本棚に別れて収納されるのではなく、同じ本棚に収納されることが望ましい。例えば、「プログラミング言語」のカテゴリの書籍と「機械学習」のカテゴリの書籍は、同じ本棚に収納されることが望ましく、「プログラミング言語」及び「機械学習」のカテゴリの書籍と、「料理」のカテゴリの書籍は、異なる本棚に収納されることが望ましい。
また、図書館に収蔵される書籍のカテゴリの粒度は、図書館毎に異なることが多い。例えば、町の図書館と移動図書館とでは、同じ書籍が異なるカテゴリに分類されていることがある。
図2は、町の図書館及び移動図書館に収蔵される書籍の例を示している。図2(a)は、町の図書館に収蔵される書籍の例を示している。書籍201−1〜書籍201−3は、「プログラミング言語」のカテゴリに分類されており、書籍202−1〜書籍202−3は、「機械学習」のカテゴリに分類されており、書籍203−1〜書籍203−3は、「料理」のカテゴリに分類されている。
図2(b)は、移動図書館に収蔵される書籍の例を示している。書籍201−1〜書籍201−3及び書籍202−1〜書籍202−3は、「コンピュータ」のカテゴリに分類されており、書籍203−1〜書籍203−3は、「料理」のカテゴリに分類されている。この場合、町の図書館では異なるカテゴリに分類されている複数の書籍が、移動図書館では同じカテゴリに分類されていることが分かる。
従来の図書館では、手作業によりNDC等の分類基準が採用又は策定され、分類基準に従って書籍が分類され、分類結果に基づいて本棚に書籍が配置される。この場合、作業者が本棚を見ながら書籍を分類しているわけではないため、各本棚に配置される書籍の冊数が上限に達する可能性がある。また、収蔵されている書籍の経年変化により、書籍のカテゴリが増減することもある。
図書館の書籍の分類における制約条件をまとめると、以下のようになる。
(1)利用できる本棚の台数に上限が存在する。
(2)1台の本棚に収納可能な書籍の冊数に上限が存在する。
(3)すべての書籍がいずれかの本棚に収納される。
(4)各図書館に最適な分類結果が作成される。
複数の作業者が書籍の分類を行い、それぞれ異なる分類結果を作成した場合、上記制約条件を考慮して、複数の分類結果のうち最適な分類結果を選択するとともに、各書籍を収納する本棚を決定することが望ましい。例えば、作業者Aが図2(a)に示した分類結果を作成し、作業者Bが図2(b)に示した分類結果を作成した場合、町の図書館にとっていずれの分類結果が適切であるかを決定するとともに、各書籍を収納する本棚を決定することが望ましい。
図3は、実施形態の分類制御装置の機能的構成例を示している。図3の分類制御装置301は、記憶部311、評価部312、及び選択部313を含む。記憶部311は、複数の分類結果を記憶する。各分類結果は、複数の配置対象各々を複数のクラスのうちいずれかのクラスに分類した結果を示す。評価部312及び選択部313は、記憶部311が記憶する分類結果を用いて、分類制御処理を行う。
図4は、図3の分類制御装置301が行う分類制御処理の例を示すフローチャートである。まず、評価部312は、複数の配置対象の配置先に関する情報に基づいて複数の分類結果を評価することで、評価結果を生成する(ステップ401)。次に、選択部313は、評価結果に基づいて、複数の分類結果の中からいずれかの分類結果を選択する(ステップ402)。
図3の分類制御装置301によれば、配置対象の配置先に適合するように配置対象を分類することができる。
図5は、図3の分類制御装置301の具体例を示している。図5の分類制御装置501は、記憶部511、評価部512、選択部513、及び出力部514を含み、図書館の書籍の分類に関する分類制御処理を行う。記憶部511、評価部512、及び選択部513は、図3の記憶部311、評価部312、及び選択部313にそれぞれ対応する。
記憶部511は、分類対象の複数の書籍の書誌情報521と、複数の分類結果522と、配置先情報523とを記憶する。書籍は配置対象の一例であり、書籍が配置される複数の本棚は、配置先に含まれる複数の配置領域の一例である。配置先情報523は、配置先に関する情報の一例である。
複数の分類結果522は、複数の作業者それぞれによって作成された分類結果であり、各分類結果522は、各書籍を複数のクラスのうちいずれかのクラスに分類した結果を示す。各クラスは、書籍が属するカテゴリを表す。複数の分類結果522の一部又は全部は、コンピュータによって自動的に生成された分類結果であってもよい。配置先情報523は、各本棚の制約条件を表す。
図6は、書誌情報521の例を示している。図6の書誌情報521は、書籍ID、タイトル、著者、ISBN(International Standard Book Number)、及びキーワードを含む。書籍IDは、書籍の識別子であり、キーワードは、書籍に対して付与されたキーワードである。
この例では、書籍ID“1”〜書籍ID“5”の5冊の書籍の書誌情報521が示されている。例えば、書籍ID“1”の書籍のタイトルは「XML in Action」であり、著者は「山元大」であり、ISBNは「978...」であり、キーワードは「プログラミング,XML,開発方法論」である。
図7は、図6の5冊の書籍に対する分類結果522の例を示している。図7の分類結果522は、書籍ID及びクラスを含む。クラスは、作業者によって、書籍IDが示す書籍に付与されたカテゴリを表す。
図7(a)は、作業者Aによって作成された分類結果522の例を示している。作業者Aの分類結果522では、書籍ID“1”〜書籍ID“3”の書籍は、「ソフトウェア開発」のクラスに分類されている。また、書籍ID“4”の書籍は、「プログラミング言語」のクラスに分類され、書籍ID“5”の書籍は、「プログラミング教育」のクラスに分類されている。
図7(b)は、作業者Bによって作成された分類結果522の例を示している。作業者Bの分類結果522では、書籍ID“1”及び書籍ID“5”の書籍は、「XML」のクラスに分類されている。また、書籍ID“2”及び書籍ID“3”の書籍は、「ソフトウェア開発」のクラスに分類され、書籍ID“4”の書籍は、「Python」のクラスに分類されている。
図8は、図書館の本棚の例を示している。配置先には、本棚801及び本棚802が含まれる。各本棚には、3冊の書籍を収納することができる。
図9は、図8の本棚801及び本棚802の配置先情報523の例を示している。図9の配置先情報523は、棚ID及び収納可能冊数を含む。棚IDは、本棚の識別子であり、収納可能冊数は、本棚に収納可能な書籍の冊数の上限を表す。本棚801の棚IDは“0”であり、本棚802の棚IDは“1”である。本棚801及び本棚802の収納可能冊数は“3”である。
評価部512は、各分類結果522に基づいて、配置先情報523が示すいずれかの本棚に各書籍を割り当てることで、各分類結果522に対する1つ又は複数の割り当て結果を生成する。このとき、評価部512は、配置先情報523が示す本棚の台数と、各本棚の収納可能冊数とに基づいて、すべての書籍がいずれかの本棚に配置されるような割り当て結果を生成する。そして、評価部512は、各割り当て結果を示す割り当て情報524を生成して、記憶部511に格納する。
図10は、図7(a)の分類結果522に対する割り当て結果の例を示している。この例では、「ソフトウェア開発」のクラスに分類された書籍ID“1”〜書籍ID“3”の書籍が、本棚801に割り当てられている。また、「プログラミング言語」のクラスに分類された書籍ID“4”の書籍と、「プログラミング教育」のクラスに分類された書籍ID“5”の書籍とが、本棚802に割り当てられている。
図11は、図7(b)の分類結果522に対する割り当て結果の例を示している。図11(a)は、第1の割り当て結果の例を示している。この例では、「ソフトウェア開発」のクラスに分類された書籍ID“2”及び書籍ID“3”の書籍と、「Python」のクラスに分類された書籍ID“4”の書籍とが、本棚801に割り当てられている。また、「XML」のクラスに分類された書籍ID“1”及び書籍ID“5”の書籍が、本棚802に割り当てられている。
図11(b)は、第2の割り当て結果の例を示している。この例では、「XML」のクラスに分類された書籍ID“1”及び書籍ID“5”の書籍と、「Python」のクラスに分類された書籍ID“4”の書籍とが、本棚801に割り当てられている。また、「ソフトウェア開発」のクラスに分類された書籍ID“2”及び書籍ID“3”の書籍が、本棚802に割り当てられている。
図12は、図10及び図11の割り当て結果を示す割り当て情報524の例を示している。図12の割り当て情報524は、配置ID、棚ID、書籍ID集合、及びクラス集合を含む。配置IDは、割り当て結果の識別子である。書籍ID集合は、棚IDが示す本棚に割り当てられた書籍の書籍IDの集合を表す。クラス集合は、棚IDが示す本棚に割り当てられた書籍が属するクラスの集合を表す。
図12(a)は、図10の割り当て結果を示す割り当て情報524の例を示している。図12(a)の配置ID“0”は、図10の割り当て結果を示す。図12(b)は、図11の割り当て結果を示す割り当て情報524の例を示している。図12(b)の配置ID“0”は、図11(a)の割り当て結果を示し、配置ID“1”は、図11(b)の割り当て結果を示す。
次に、評価部512は、割り当て情報524を用いて各分類結果522を評価する。まず、評価部512は、書誌情報521を用いて、各分類結果522内のあるクラスに分類された1つ又は複数の書籍と、別のクラスに分類された1つ又は複数の書籍との間の類似度を計算する。そして、評価部512は、計算された類似度を、クラス間の関係スコア525として記憶部511に格納する。評価部512は、各分類結果522に含まれる複数のクラスのうち、2つのクラスのすべての組み合わせについて、関係スコア525を計算する。
例えば、図7(a)の分類結果522において、「プログラミング言語」に属する書籍ID“4”の書籍のキーワードは、図6に示したように、「プログラミング,Python,学習,逆引き」である。また、「プログラミング教育」に属する書籍ID“5”の書籍のキーワードは、「プログラミング,XML,学習」である。この場合、これらの書籍のキーワードの和集合は、「プログラミング,Python,XML,学習,逆引き」となる。
そこで、評価部512は、各クラスの特徴を表す5次元の特徴ベクトルx(ID)を生成する。
x(ID)=(x1,x2,x3,x4,x5) (1)
IDは、各クラスに属する書籍の書籍IDの集合を表す。x1〜x5は、各クラスに属する書籍のキーワードの集合の中に、「プログラミング」、「Python」、「XML」、「学習」、及び「逆引き」がそれぞれ含まれているか否かを示す。例えば、キーワードの集合の中に「プログラミング」が含まれている場合、x1=1となり、キーワードの集合の中に「プログラミング」が含まれていない場合、x1=0となる。x2〜x5についても、x1と同様である。
この場合、「プログラミング言語」のクラスの特徴ベクトルx(4)、及び「プログラミング教育」のクラスの特徴ベクトルx(5)は、次のようになる。
x(4)=(1,1,0,1,1) (2)
x(5)=(1,0,1,1,0) (3)
「プログラミング言語」と「プログラミング教育」との間の類似度としては、特徴ベクトルx(4)と特徴ベクトルx(5)との間の類似度Sim(x(4),x(5))が用いられる。例えば、特徴ベクトル間のコサイン類似度を用いた場合、Sim(x(4),x(5))は、次式により計算される。
Sim(x(4),x(5))
=(x(4)・x(5))/(|x(4)|*|x(5)|)
=2/(41/2*31/2)=0.58 (4)
x(4)・x(5)は、x(4)とx(5)の内積を表し、|x(4)|は、x(4)のノルムを表し、|x(5)|は、x(5)のノルムを表す。
次に、図7(a)の分類結果522において、「ソフトウェア開発」に属する書籍ID“1”〜書籍ID“3”の書籍のキーワードの和集合は、「プログラミング,XML,開発方法論,GGG,VCS,ソフトウェア開発」である。また、「プログラミング言語」に属する書籍ID“4”の書籍のキーワードは、「プログラミング,Python,学習,逆引き」である。この場合、これらの書籍のキーワードの和集合は、「プログラミング,XML,開発方法論,GGG,VCS,ソフトウェア開発,Python,学習,逆引き」となる。
そこで、評価部512は、各クラスの特徴を表す9次元の特徴ベクトルx(ID)を生成する。
x(ID)=(x1,x2,x3,x4,x5,x6,x7,x8,x9) (5)
x1〜x9は、各クラスに属する書籍のキーワードの集合の中に、「プログラミング」、「XML」、「開発方法論」、「GGG」、「VCS」、「ソフトウェア開発」、「Python」、「学習」、及び「逆引き」がそれぞれ含まれているか否かを示す。
この場合、「ソフトウェア開発」のクラスの特徴ベクトルx(1,2,3)、及び「プログラミング言語」のクラスの特徴ベクトルx(4)は、次のようになる。
x(1,2,3)=(1,1,1,1,1,1,0,0,0) (6)
x(4)=(1,0,0,0,0,0,1,1,1) (7)
「ソフトウェア開発」と「プログラミング言語」との間の類似度としては、特徴ベクトルx(1,2,3)と特徴ベクトルx(4)との間の類似度Sim(x(1,2,3),x(4))が用いられる。例えば、特徴ベクトル間のコサイン類似度を用いた場合、Sim(x(1,2,3),x(4))は、次式により計算される。
Sim(x(1,2,3),x(4))
=(x(1,2,3)・x(4))/(|x(1,2,3)|*|x(4)|)
=1/(61/2*41/2)=0.20 (8)
次に、図7(a)の分類結果522において、「ソフトウェア開発」に属する書籍ID“1”〜書籍ID“3”の書籍のキーワードの和集合は、「プログラミング,XML,開発方法論,GGG,VCS,ソフトウェア開発」である。また、「プログラミング教育」に属する書籍ID“5”の書籍のキーワードは、「プログラミング,XML,学習」である。この場合、これらの書籍のキーワードの和集合は、「プログラミング,XML,開発方法論,GGG,VCS,ソフトウェア開発,学習」となる。
そこで、評価部512は、各クラスの特徴を表す7次元の特徴ベクトルx(ID)を生成する。
x(ID)=(x1,x2,x3,x4,x5,x6,x7) (9)
x1〜x7は、各クラスに属する書籍のキーワードの集合の中に、「プログラミング」、「XML」、「開発方法論」、「GGG」、「VCS」、「ソフトウェア開発」、及び「学習」がそれぞれ含まれているか否かを示す。
この場合、「ソフトウェア開発」のクラスの特徴ベクトルx(1,2,3)、及び「プログラミング教育」のクラスの特徴ベクトルx(5)は、次のようになる。
x(1,2,3)=(1,1,1,1,1,1,0) (10)
x(5)=(1,1,0,0,0,0,1) (11)
「ソフトウェア開発」と「プログラミング教育」との間の類似度としては、特徴ベクトルx(1,2,3)と特徴ベクトルx(5)との間の類似度Sim(x(1,2,3),x(5))が用いられる。例えば、特徴ベクトル間のコサイン類似度を用いた場合、Sim(x(1,2,3),x(5))は、次式により計算される。
Sim(x(1,2,3),x(5))
=(x(1,2,3)・x(5))/(|x(1,2,3)|*|x(5)|)
=2/(61/2*31/2)=0.47 (12)
次に、図7(b)の分類結果522において、「XML」に属する書籍ID“1”及び書籍ID“5”の書籍のキーワードの和集合は、「プログラミング,XML,開発方法論,学習」である。また、「ソフトウェア開発」に属する書籍ID“2”及び書籍ID“3”の書籍のキーワードの和集合は、「開発方法論,GGG,VCS,ソフトウェア開発」である。この場合、これらの書籍のキーワードの和集合は、「プログラミング,XML,開発方法論,学習,ソフトウェア開発,GGG,VCS」となる。
そこで、評価部512は、各クラスの特徴を表す7次元の特徴ベクトルx(ID)を生成する。
x(ID)=(x1,x2,x3,x4,x5,x6,x7) (13)
x1〜x7は、各クラスに属する書籍のキーワードの集合の中に、「プログラミング」、「XML」、「開発方法論」、「学習」、「ソフトウェア開発」、「GGG」、及び「VCS」がそれぞれ含まれているか否かを示す。
この場合、「XML」のクラスの特徴ベクトルx(1,5)、及び「ソフトウェア開発」のクラスの特徴ベクトルx(2,3)は、次のようになる。
x(1,5)=(1,1,1,1,0,0,0) (14)
x(2,3)=(0,0,1,0,1,1,1) (15)
「XML」と「ソフトウェア開発」との間の類似度としては、特徴ベクトルx(1,5)と特徴ベクトルx(2,3)との間の類似度Sim(x(1,5),x(2,3))が用いられる。例えば、特徴ベクトル間のコサイン類似度を用いた場合、Sim(x(1,5),x(2,3))は、次式により計算される。
Sim(x(1,5),x(2,3))
=(x(1,5)・x(2,3))/(|x(1,5)|*|x(2,3)|)
=1/(41/2*41/2)=0.25 (16)
次に、図7(b)の分類結果522において、「Python」に属する書籍ID“4”の書籍のキーワードは、「プログラミング,Python,学習,逆引き」である。また、「ソフトウェア開発」に属する書籍ID“2”及び書籍ID“3”の書籍のキーワードの和集合は、「開発方法論,GGG,VCS,ソフトウェア開発」である。この場合、これらの書籍のキーワードの和集合は、「プログラミング,Python,学習,逆引き,開発方法論,ソフトウェア開発,GGG,VCS」となる。
そこで、評価部512は、各クラスの特徴を表す8次元の特徴ベクトルx(ID)を生成する。
x(ID)=(x1,x2,x3,x4,x5,x6,x7,x8) (17)
x1〜x8は、各クラスに属する書籍のキーワードの集合の中に、「プログラミング」、「Python」、「学習」、「逆引き」、「開発方法論」、「ソフトウェア開発」、「GGG」、及び「VCS」がそれぞれ含まれているか否かを示す。
この場合、「Python」のクラスの特徴ベクトルx(4)、及び「ソフトウェア開発」のクラスの特徴ベクトルx(2,3)は、次のようになる。
x(4)=(1,1,1,1,0,0,0,0) (18)
x(2,3)=(0,0,0,0,1,1,1,1) (19)
「Python」と「ソフトウェア開発」との間の類似度としては、特徴ベクトルx(4)と特徴ベクトルx(2,3)との間の類似度Sim(x(4),x(2,3))が用いられる。例えば、特徴ベクトル間のコサイン類似度を用いた場合、Sim(x(4),x(2,3))は、次式により計算される。
Sim(x(4),x(2,3))
=(x(4)・x(2,3))/(|x(4)|*|x(2,3)|)
=0/(41/2*41/2)=0 (20)
次に、図7(b)の分類結果522において、「XML」に属する書籍ID“1”及び書籍ID“5”の書籍のキーワードの和集合は、「プログラミング,XML,開発方法論,学習」である。また、「Python」に属する書籍ID“4”の書籍のキーワードは、「プログラミング,Python,学習,逆引き」である。この場合、これらの書籍のキーワードの和集合は、「プログラミング,XML,開発方法論,学習,Python,逆引き」となる。
そこで、評価部512は、各クラスの特徴を表す6次元の特徴ベクトルx(ID)を生成する。
x(ID)=(x1,x2,x3,x4,x5,x6) (21)
x1〜x6は、各クラスに属する書籍のキーワードの集合の中に、「プログラミング」、「XML」、「開発方法論」、「学習」、「Python」、及び「逆引き」がそれぞれ含まれているか否かを示す。
この場合、「XML」のクラスの特徴ベクトルx(1,5)、及び「Python」のクラスの特徴ベクトルx(4)は、次のようになる。
x(1,5)=(1,1,1,1,0,0) (22)
x(4)=(1,0,0,1,1,1) (23)
「XML」と「Python」との間の類似度としては、特徴ベクトルx(1,5)と特徴ベクトルx(4)との間の類似度Sim(x(1,5),x(4))が用いられる。例えば、特徴ベクトル間のコサイン類似度を用いた場合、Sim(x(1,5),x(4))は、次式により計算される。
Sim(x(1,5),x(4))
=(x(1,5)・x(4))/(|x(1,5)|*|x(4)|)
=2/(41/2*41/2)=0.5 (24)
図13は、図7の分類結果522に対する関係スコア525の例を示している。図13の関係スコア525は、関係及び関係スコアを含む。関係は、関係スコアの計算対象である2つのクラスを表す。
図13(a)は、図7(a)の分類結果522に対して、式(4)、式(8)、及び式(12)により計算された関係スコアを示している。図13(b)は、図7(b)の分類結果522に対して、式(16)、式(20)、及び式(24)により計算された関係スコアを示している。
次に、評価部512は、関係スコア525を用いて、各割り当て結果の評価値Eを計算する。割り当て結果の評価値Eとしては、各本棚の評価値の総和が用いられる。各割り当て結果の評価値Eは、各本棚に配置される書籍の組み合わせの好適度を表す。
本棚の評価値としては、本棚に割り当てられた書籍が属する複数のクラスのうち、2つのクラスのすべての組み合わせに対する関係スコア525の統計値が用いられる。統計値としては、例えば、調和平均、算術平均、中央値、最頻値、又は総和を用いることができる。ただし、関係スコア525に“0”が含まれている場合、関係スコア525の調和平均は“0”に設定される。また、本棚に割り当てられたすべての書籍が同じクラスに属する場合、本棚の評価値は所定値に設定される。所定値として“0”を用いてもよい。
例えば、図10の割り当て結果において、本棚802には、「プログラミング言語」に属する書籍ID“4”の書籍と、「プログラミング教育」に属する書籍ID“5”の書籍とが割り当てられている。本棚の評価値として、関係スコア525の調和平均を用いた場合、本棚802の評価値E2は、式(4)のSim(x(4),x(5))を用いて、次式により計算される。
E2=1/(1/Sim(x(4),x(5)))
=1/(1/0.58)
=0.58 (31)
図10の本棚801に割り当てられた書籍はすべて同じクラスに属するため、本棚801の評価値E1は“0”に設定される。そして、図10の割り当て結果の評価値Eは、次式により計算される。
E=E1+E2
=0+0.58
=0.58 (32)
次に、図11(a)の割り当て結果において、本棚801には、「Python」に属する書籍ID“4”の書籍と、「ソフトウェア開発」に属する書籍ID“2”及び書籍ID“3”の書籍とが割り当てられている。この場合、式(20)のSim(x(4),x(2,3))が“0”であるため、本棚801の評価値E1は“0”に設定される。
図11(a)の本棚802に割り当てられた書籍はすべて同じクラスに属するため、本棚802の評価値E2は“0”に設定される。そして、図11(a)の割り当て結果の評価値Eは、次式により計算される。
E=E1+E2
=0+0
=0 (33)
次に、図11(b)の割り当て結果において、本棚801には、「XML」に属する書籍ID“1”及び書籍ID“5”の書籍と、「Python」に属する書籍ID“4”の書籍とが割り当てられている。この場合、本棚801の評価値E1は、式(24)のSim(x(1,5),x(4))を用いて、次式により計算される。
E1=1/(1/Sim(x(1,5),x(4)))
=1/(1/0.5)
=0.5 (34)
図11(b)の本棚802に割り当てられた書籍はすべて同じクラスに属するため、本棚802の評価値E2は“0”に設定される。そして、図11(b)の割り当て結果の評価値Eは、次式により計算される。
E=E1+E2
=0.5+0
=0.5 (35)
このように、クラス間の関係スコア525を用いることで、各割り当て結果の評価値Eを計算して、複数の割り当て結果の評価値Eを比較することが可能になる。評価値Eが大きいほど、同じ本棚に配置される書籍の類似性が高くなり、望ましい配置結果が得られる可能性が高い。そこで、評価部512は、分類結果522毎に最大の評価値Eを有する最適な割り当て結果を選択して、最適割り当て情報526を生成し、記憶部511に格納する。
図14は、図7の分類結果522に対する最適割り当て情報526の例を示している。図14の最適割り当て情報526は、配置ID、本棚801の評価値E1、本棚802の評価値E2、割り当て結果の評価値E、及びフラグを含む。フラグは、各分類結果522に対する最適な割り当て結果を示す。
図14(a)は、図12(a)の割り当て情報524に対する最適割り当て情報526を示している。図14(a)の最適割り当て情報526には、配置ID“0”の割り当て結果のみが含まれているため、この割り当て結果が最適な割り当て結果として選択される。
図14(b)は、図12(b)の割り当て情報524に対する最適割り当て情報526を示している。図14(b)の最適割り当て情報526には、配置ID“0”及び配置ID“1”の2つの割り当て結果が含まれている。このうち、最大の評価値Eを有する配置ID“1”の割り当て結果が、最適な割り当て結果として選択される。
評価部512は、関係スコア525として、特徴ベクトル間のコサイン類似度の代わりに、各クラスに属する書籍のキーワードの集合同士の類似度を計算してもよい。集合同士の類似度としては、Jaccard係数、Dice係数等を用いることができる。例えば、集合S1と集合S2の間のJaccard係数J(S1,S2)は、次式により計算される。
J(S1,S2)=|S1∩S2|/|S1∪S2| (36)
|S1∩S2|は、集合S1と集合S2の積集合の要素数を表し、|S1∪S2|は、集合S1と集合S2の和集合の要素数を表す。ただし、S1及びS2がいずれも空集合である場合、J(S1,S2)=1となる。
例えば、図7(a)の分類結果522において、「プログラミング言語」に属する書籍ID“4”の書籍のキーワードの集合S(4)は、「プログラミング,Python,学習,逆引き」である。また、「プログラミング教育」に属する書籍ID“5”の書籍のキーワードの集合S(5)は、「プログラミング,XML,学習」である。この場合、J(S(4),S(5))は、次式により計算される。
J(S(4),S(5))=|S(4)∩S(5)|/|S(4)∪S(5)|
=2/5 (37)
選択部513は、最適割り当て情報526が示す最適な割り当て結果の評価値Eを評価結果として用いて、複数の分類結果522の中からいずれかの分類結果522を選択する。そして、選択部513は、選択された分類結果522を、最適分類結果527として記憶部511に格納する。
選択部513は、例えば、最大の評価値Eを有する最適な割り当て結果を含む分類結果522を、最適分類結果527として選択することができる。この場合、選択部513は、最適分類結果527に対する最適割り当て情報526のフラグが示す最適な割り当て結果を、書籍の最適配置として選択し、選択された最適配置を示す最適配置情報528を生成して、記憶部511に格納する。出力部514は、最適分類結果527及び最適配置情報528を出力する。
例えば、図14の最適割り当て情報526の場合、図14(a)のフラグが示す最適な割り当て結果の評価値Eは“0.58”であり、図14(b)のフラグが示す最適な割り当て結果の評価値Eは“0.5”である。したがって、最大の評価値Eである“0.58”を含む図14(a)の最適割り当て情報526に対応する、図7(a)の分類結果522が、最適分類結果527として選択される。また、図14(a)の最適割り当て情報526に対応する図12(a)の割り当て情報524が、最適配置情報528として選択される。
図5の分類制御装置501によれば、各作業者によって作成された分類結果522に基づいて各書籍を配置先の本棚に割り当てることで、各分類結果522に対する割り当て結果が生成される。そして、割り当て結果とクラス間の類似度とに基づいて各分類結果522を評価することで、配置先の本棚に適合した分類結果522を特定することができる。したがって、図書館及び本棚の制約条件を知らない作業者が分類結果522を作成した場合であっても、その制約条件を満たす最適な分類結果522を求めることができる。
さらに、最適な分類結果522に対する割り当て結果を書籍の最適配置として選択することで、最適な分類結果522に従って各書籍を収納する本棚を自動的に決定することができる。
図15は、図5の分類制御装置501が行う分類制御処理の具体例を示すフローチャートである。評価部512は、複数の分類結果522各々について、ステップ1501〜ステップ1503の処理を繰り返す。
まず、評価部512は、分類結果522に基づいて、配置先情報523が示すいずれかの本棚に各書籍を割り当てることで、1つ又は複数の割り当て結果を示す割り当て情報524を生成する(ステップ1501)。
次に、評価部512は、書誌情報521を用いて、分類結果522に含まれる複数のクラスのうち、2つのクラスのすべての組み合わせについて、関係スコア525を計算する(ステップ1502)。
次に、評価部512は、関係スコア525を用いて、割り当て情報524が示す各割り当て結果の評価値Eを計算し、最大の評価値Eを有する最適な割り当て結果を選択して、分類結果522に対する最適割り当て情報526を生成する(ステップ1503)。
次に、選択部513は、複数の分類結果522それぞれの最適割り当て情報526を用いて、最適分類結果527を選択し(ステップ1504)、最適配置情報528を生成する(ステップ1505)。そして、出力部514は、最適分類結果527及び最適配置情報528を出力する(ステップ1506)。
ところで、分類制御装置501は、図書館の書籍の分類に関する分類制御処理だけでなく、他の配置対象の分類に関する分類制御処理を行うこともできる。他の配置対象としては、美術館の美術品、博物館の展示品等が挙げられる。
図16は、美術館の美術品の美術品情報の例を示している。図16の美術品情報は、作品ID、タイトル、作家、製作年、及びキーワードを含み、図6の書誌情報521の代わりに用いられる。作品IDは、美術品の識別子である。キーワードは、美術品に対して付与されたキーワードであり、美術品の図録又はデータベースから取得される。美術品は、配置対象の一例である。
この例では、作品ID“1”〜作品ID“5”の5点の美術品の美術品情報が示されている。例えば、作品ID“1”の美術品のタイトルは「自画像」であり、作家は「ピサロ」であり、製作年は「1873」であり、キーワードは「自画像、オルセー美術館、ひげ」である。
図17は、図16の5点の美術品に対する分類結果522の例を示している。図17の分類結果522は、作品ID及びクラスを含む。クラスは、作業者によって、作品IDが示す美術品に付与されたカテゴリを表す。
図17(a)は、作業者Aによって作成された分類結果522の例を示している。作業者Aの分類結果522では、作品ID“1”及び作品ID“2”の美術品は、「印象派」のクラスに分類されている。また、作品ID“3”の美術品は、「ポップアート」のクラスに分類され、作品ID“4”の美術品は、「メディアアート」のクラスに分類され、作品ID“5”の美術品は、「ポスト印象派」のクラスに分類されている。
図7(b)は、作業者Bによって作成された分類結果522の例を示している。作業者Bの分類結果522では、作品ID“1”、作品ID“3”、及び作品ID“5”の美術品は、「自画像」のクラスに分類されている。また、作品ID“2”の美術品は、「風景画」のクラスに分類され、作品ID“4”の美術品は、「現代美術」のクラスに分類されている。
美術品の配置先としては、美術館の展示室の壁が用いられる。美術館の複数の壁は、配置先に含まれる複数の配置領域の一例である。
図18は、図17の分類結果522に対する割り当て結果の例を示している。図18では、壁1801及び壁1802が配置先として設定されている。各壁には、3点の美術品を展示することができる。
図18(a)は、図17(a)の分類結果522に対する割り当て結果の例を示している。この例では、「印象派」のクラスに分類された作品ID“1”及び作品ID“2”の美術品と、「ポスト印象派」のクラスに分類された作品ID“5”の美術品とが、壁1801に割り当てられている。また、「ポップアート」のクラスに分類された作品ID“3”の美術品と、「メディアアート」のクラスに分類された作品ID“4”の美術品とが、壁1802に割り当てられている。
図18(b)は、図18(b)の分類結果522に対する割り当て結果の例を示している。この例では、「自画像」のクラスに分類された作品ID“1”、作品ID“3”、及び作品ID“5”の美術品が、壁1801に割り当てられている。また、「風景画」のクラスに分類された作品ID“2”の美術品と、「現代美術」のクラスに分類された作品ID“4”の美術品とが、壁1802に割り当てられている。
分類制御装置501は、図16の美術品情報、図17の分類結果522、及び図18の割り当て結果を用いて、図15と同様の分類制御処理を行うことで、最適分類結果527及び最適配置情報528を求める。
図3の分類制御装置301及び図5の分類制御装置501の構成は一例に過ぎず、分類制御装置の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。例えば、図5の分類制御装置501において、最適分類結果527及び最適配置情報528を出力する必要がない場合は、出力部514を省略することができる。
図4及び図15のフローチャートは一例に過ぎず、分類制御装置の構成又は条件に応じて一部の処理を省略又は変更してもよい。例えば、図15の分類制御処理において、最適分類結果527及び最適配置情報528を出力する必要がない場合は、ステップ1506の処理を省略することができる。
図1に示した手書き文字の画像は一例に過ぎず、手書き文字の画像は、文字の種類に応じて変化する。図2に示した書籍の分類は一例に過ぎず、書籍の分類は、図書館に応じて変化する。
図6に示した書誌情報521は一例に過ぎず、書誌情報521は、書籍に応じて変化する。図7に示した書籍の分類結果522は一例に過ぎず、書籍の分類結果522は、作業者に応じて変化する。図8に示した本棚は一例に過ぎず、本棚は、図書館に応じて変化する。配置先は、3台以上の本棚であってもよい。図9に示した配置先情報523は一例に過ぎず、配置先情報523は、本棚に応じて変化する。収納可能冊数は、4冊以上であってもよい。
図10及び図11に示した割り当て結果と図12に示した割り当て情報524は一例に過ぎず、割り当て結果及び割り当て情報524は、書籍の分類結果522及び配置先情報523に応じて変化する。
図13に示した関係スコア525は一例に過ぎず、関係スコア525は、書誌情報521及び分類結果522に応じて変化する。評価部512は、書誌情報521に含まれるキーワードに加えて、タイトル、著者、及びISBNを用いて、関係スコア525を計算してもよい。図14に示した最適割り当て情報526は一例に過ぎず、最適割り当て情報526は、関係スコア525に応じて変化する。
図16に示した美術品情報は一例に過ぎず、美術品情報は、美術品に応じて変化する。図17に示した美術品の分類結果522は一例に過ぎず、美術品の分類結果522は、作業者に応じて変化する。図18に示した割り当て結果は一例に過ぎず、割り当て結果は、美術品の分類結果522及び配置先情報523に応じて変化する。
式(1)〜式(37)は一例にすぎず、分類制御装置は、別の計算式を用いて分類制御処理を行ってもよい。
図19は、図3の分類制御装置301及び図5の分類制御装置501として用いられる情報処理装置(コンピュータ)のハードウェア構成例を示している。図19の情報処理装置は、CPU(Central Processing Unit)1901、メモリ1902、入力装置1903、出力装置1904、補助記憶装置1905、媒体駆動装置1906、及びネットワーク接続装置1907を含む。これらの構成要素はハードウェアであり、バス1908により互いに接続されている。
メモリ1902は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。メモリ1902は、図3の記憶部311又は図5の記憶部511として動作してもよい。
CPU1901(プロセッサ)は、例えば、メモリ1902を利用してプログラムを実行することにより、図3の評価部312及び選択部313として動作する。CPU1901は、メモリ1902を利用してプログラムを実行することにより、図5の評価部512及び選択部513としても動作する。
入力装置1903は、例えば、キーボード、ポインティングデバイス等であり、オペレータ又はユーザからの指示又は情報の入力に用いられる。出力装置1904は、例えば、表示装置、プリンタ、スピーカ等であり、オペレータ又はユーザへの問い合わせ又は指示、及び処理結果の出力に用いられる。処理結果は、最適分類結果527及び最適配置情報528であってもよい。出力装置1904は、図5の出力部514として動作してもよい。
補助記憶装置1905は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置1905は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置1905にプログラム及びデータを格納しておき、それらをメモリ1902にロードして使用することができる。補助記憶装置1905は、図3の記憶部311又は図5の記憶部511として動作してもよい。
媒体駆動装置1906は、可搬型記録媒体1909を駆動し、その記録内容にアクセスする。可搬型記録媒体1909は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体1909は、CD−ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等であってもよい。オペレータ又はユーザは、この可搬型記録媒体1909にプログラム及びデータを格納しておき、それらをメモリ1902にロードして使用することができる。
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ1902、補助記憶装置1905、又は可搬型記録媒体1909のような、物理的な(非一時的な)記録媒体である。
ネットワーク接続装置1907は、LAN(Local Area Network)、WAN(Wide Area Network)等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェース回路である。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置1907を介して受信し、それらをメモリ1902にロードして使用することができる。ネットワーク接続装置1907は、図5の出力部514として動作してもよい。
なお、情報処理装置が図19のすべての構成要素を含む必要はなく、情報処理装置の用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、オペレータ又はユーザとのインタフェースが不要な場合は、入力装置1903及び出力装置1904を省略してもよい。可搬型記録媒体1909又は通信ネットワークを使用しない場合は、媒体駆動装置1906又はネットワーク接続装置1907を省略してもよい。
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
図2乃至図19を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数の配置対象各々を複数のクラスのうちいずれかのクラスに分類した結果をそれぞれ示す複数の分類結果を、前記複数の配置対象の配置先に関する情報に基づいて評価することで、評価結果を生成し、
前記評価結果に基づいて、前記複数の分類結果の中からいずれかの分類結果を選択する、
処理をコンピュータに実行させるための分類制御プログラム。
(付記2)
前記配置先は、複数の配置領域を含み、
前記評価結果を生成する処理は、前記複数の分類結果各々に基づいて、前記複数の配置対象各々を前記複数の配置領域のうちいずれかの配置領域に割り当てることで、前記複数の分類結果各々に対する割り当て結果を生成する処理と、前記複数の分類結果各々に対する割り当て結果に基づいて、前記複数の分類結果各々を評価する処理とを含むことを特徴とする付記1記載の分類制御プログラム。
(付記3)
前記複数のクラスは、第1クラス及び第2クラスを含み、
前記複数の分類結果各々を評価する処理は、前記複数の分類結果各々において、前記第1クラスに分類された1つ又は複数の配置対象と、前記第2クラスに分類された1つ又は複数の配置対象との間の類似度を計算する処理と、前記類似度を用いて、前記複数の分類結果各々に対する割り当て結果の評価値を計算する処理とを含み、
前記いずれかの分類結果を選択する処理は、前記複数の分類結果各々に対する割り当て結果の評価値を前記評価結果として用いて、前記いずれかの分類結果を選択する処理を含むことを特徴とする付記2記載の分類制御プログラム。
(付記4)
複数の配置対象各々を複数のクラスのうちいずれかのクラスに分類した結果をそれぞれ示す複数の分類結果を記憶する記憶部と、
前記複数の配置対象の配置先に関する情報に基づいて前記複数の分類結果を評価することで、評価結果を生成する評価部と、
前記評価結果に基づいて、前記複数の分類結果の中からいずれかの分類結果を選択する選択部と、
を備えることを特徴とする分類制御装置。
(付記5)
前記配置先は、複数の配置領域を含み、
前記評価部は、前記複数の分類結果各々に基づいて、前記複数の配置対象各々を前記複数の配置領域のうちいずれかの配置領域に割り当てることで、前記複数の分類結果各々に対する割り当て結果を生成し、前記複数の分類結果各々に対する割り当て結果に基づいて、前記複数の分類結果各々を評価することを特徴とする付記4記載の分類制御装置。
(付記6)
前記複数のクラスは、第1クラス及び第2クラスを含み、
前記評価部は、前記複数の分類結果各々において、前記第1クラスに分類された1つ又は複数の配置対象と、前記第2クラスに分類された1つ又は複数の配置対象との間の類似度を計算し、前記類似度を用いて、前記複数の分類結果各々に対する割り当て結果の評価値を計算し、
前記選択部は、前記複数の分類結果各々に対する割り当て結果の評価値を前記評価結果として用いて、前記いずれかの分類結果を選択することを特徴とする付記5記載の分類制御装置。
(付記7)
複数の配置対象各々を複数のクラスのうちいずれかのクラスに分類した結果をそれぞれ示す複数の分類結果を、前記複数の配置対象の配置先に関する情報に基づいて評価することで、評価結果を生成し、
前記評価結果に基づいて、前記複数の分類結果の中からいずれかの分類結果を選択する、
処理をコンピュータが実行することを特徴とする分類制御方法。
(付記8)
前記配置先は、複数の配置領域を含み、
前記評価結果を生成する処理は、前記複数の分類結果各々に基づいて、前記複数の配置対象各々を前記複数の配置領域のうちいずれかの配置領域に割り当てることで、前記複数の分類結果各々に対する割り当て結果を生成する処理と、前記複数の分類結果各々に対する割り当て結果に基づいて、前記複数の分類結果各々を評価する処理とを含むことを特徴とする付記7記載の分類制御方法。
(付記9)
前記複数のクラスは、第1クラス及び第2クラスを含み、
前記複数の分類結果各々を評価する処理は、前記複数の分類結果各々において、前記第1クラスに分類された1つ又は複数の配置対象と、前記第2クラスに分類された1つ又は複数の配置対象との間の類似度を計算する処理と、前記類似度を用いて、前記複数の分類結果各々に対する割り当て結果の評価値を計算する処理とを含み、
前記いずれかの分類結果を選択する処理は、前記複数の分類結果各々に対する割り当て結果の評価値を前記評価結果として用いて、前記いずれかの分類結果を選択する処理を含むことを特徴とする付記8記載の分類制御方法。