Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6501398B2 - 概念処理装置およびプログラム - Google Patents
[go: Go Back, main page]

JP6501398B2 - 概念処理装置およびプログラム - Google Patents

概念処理装置およびプログラム Download PDF

Info

Publication number
JP6501398B2
JP6501398B2 JP2015092331A JP2015092331A JP6501398B2 JP 6501398 B2 JP6501398 B2 JP 6501398B2 JP 2015092331 A JP2015092331 A JP 2015092331A JP 2015092331 A JP2015092331 A JP 2015092331A JP 6501398 B2 JP6501398 B2 JP 6501398B2
Authority
JP
Japan
Prior art keywords
concept
path
weight
concepts
value
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.)
Expired - Fee Related
Application number
JP2015092331A
Other languages
English (en)
Other versions
JP2016212461A (ja
Inventor
太郎 宮▲崎▼
太郎 宮▲崎▼
山田 一郎
一郎 山田
菊佳 望月
菊佳 望月
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.)
Japan Broadcasting Corp
Original Assignee
Japan Broadcasting 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 Japan Broadcasting Corp filed Critical Japan Broadcasting Corp
Priority to JP2015092331A priority Critical patent/JP6501398B2/ja
Publication of JP2016212461A publication Critical patent/JP2016212461A/ja
Application granted granted Critical
Publication of JP6501398B2 publication Critical patent/JP6501398B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、概念を処理するための概念処理装置およびプログラムに関する。本発明は、特に、概念間の関連度を求めるための概念処理装置およびプログラムに関する。
情報検索処理や、自然言語を用いた知識処理などにおいて、概念間の関係を利用することにより、より高度な処理を行えるようにすることが期待されている。また、概念間の関係を、人手に依らずに効率よく収集できるようにすることが期待されている。
概念間の関係を表す情報としては、概念間の関係名や、概念間の関連の強さを表す数値などが考えられる。この中でも、概念間の関連の強さを、精度よく且つ効率よく収集することができれば、上で述べた情報検索処理や知識処理などの高度化への貢献を期待できる。
非特許文献1には、係り受けの大規模な確率的クラスタリングの結果を用いて、大規模な類似語リストを生成する技術が述べられている。この技術は、大規模な言語資源の分析を前提としている。そして、この技術は、意味的に似た語は似た文脈で出現するという分布仮説に基づいて、ある語の周辺に出現する語や係り受け関係にある語で文脈を定義し、その語との共起頻度などを分析する。
非特許文献2では、大量の文章を解析し、同一の文で共通して現れる頻度を求めることにより、単語間の関連度を計算したデータベースが公開されている旨が記載されている。共起スコアとしては、共起頻度、Dice係数、ディスカウンティング相互情報量の3種類が用いられている。
風間淳一,Stijn De Saeger,鳥澤健太郎,村田真樹,「係り受けの確率的クラスタリングを用いた大規模類似語リストの作成」,言語処理学会,第15回年次大会 発表論文集,2009年3月,p.84−87,[online],[平成27年4月1日検索],インターネット<URL:http://www.anlp.jp/proceedings/annual_meeting/2009/pdf_dir/C1-6.pdf> ALAGIN 言語資源・音声資源サイト,「(A−5)単語共起頻度データベース」,[online],[平成27年4月10日検索],インターネット<URL:https://alaginrc.nict.go.jp/resources/nict-resource/li-info/li-outline.html>
非特許文献1による方法では、例えば「パエリヤ」と「あさり」という概念対のように、料理と材料の関係にある対に対して高い関連度を設定することができない。このため、非特許文献1の手法をそのまま、概念マップにおける関連度に適用しても、良い性能は得られない。
また、非特許文献2による方法は、例えば料理と材料のような概念対の関係には効果的であるが、例えば「サッカー」と「野球」という概念対のように、似たような使い方をされる対でありながら、同じ文脈で使われることの少ない単語対には、高い値を与えることができない。よって、やはり概念マップにおける関連度としてこの手法をそのまま適用することは難しい。
また、非特許文献1による手法も、非特許文献2による手法も、大規模な言語資源を分析しなければならない。
本発明は、これらの課題認識に基づいて行なわれたものであり、概念マップに基づいて、概念間の関連の強さを表す指標(関連度)を求めることのできる、概念処理装置およびプログラムを提供しようとするものである。
上記の課題を解決するため、本発明の一態様による概念処理装置は、概念間の関係の有無を表す概念マップデータを読み込み、ある概念と他の概念との間の関係を表すリンクの数が少ないほど当該概念について大きな値となるような前記概念の重みの値を算出する概念重み算出部と、前記概念マップデータにおいて、ある概念と他の概念との間を前記リンクで連結させてなるパスについて、当該パス上に含まれる概念についての前記概念の重みの値に応じた当該パスの重みの値を算出するパス重み算出部と、ある概念と他の概念との間を結ぶパスについての前記パスの重みの値に応じた、当該概念と当該他の概念との間の関連度を算出する関連度算出部と、を具備することを特徴とする。
また、本発明の一態様は、上記の概念処理装置において、前記パス重み算出部は、前記パス上に含まれる各々の概念についての前記概念の重みの値の調和平均または相乗平均を取ることによって当該パスの重みの値を算出する、ことを特徴とする。
また、本発明の一態様は、上記の概念処理装置において、前記概念重み算出部は、前記概念から前記他の概念との間の前記リンクの数の逆数の対数を計算することにより前記概念の重みの値を算出する、ことを特徴とする。
また、本発明の一態様は、上記の概念処理装置において、前記関連度算出部は、前記ある概念と前記他の概念との間を前記リンクで連結させてなるパスが複数存在する場合に、それら複数のパスの数に、それら複数のパスの重みの値のうちの最大の前記パスの重みの値を乗じることによって、当該概念と当該他の概念との間の関連度を算出するか、またはそれら複数のパスの重みの総和を関連度として算出する、ことを特徴とする。
また、本発明の一態様は、上記の概念処理装置において、概念間の類似度を表す類似度データを取得する類似度取得部を具備し、前記パス重み算出部は、前記パスについて、当該パス上に含まれるリンクが結ぶ概念の対に関する類似度を前記類似度データから取得し、取得した前記類似度にも応じて前記パスの重みの値を算出する、ことを特徴とする。
また、本発明の一態様は、コンピューターを、上記のいずれかに記載の概念処理装置として機能させるためのプログラムである。
本発明によれば、概念マップに基づいて概念間の関連度を求めることができる。
本発明の第1実施形態による概念処理装置の概略機能構成を示したブロック図である。 同実施形態による概念マップ記憶部が保持する概念マップの一例を示す概略図である。 同実施形態において計算する概念の重みを説明するための概略図であり、概念マップの一部分を示している。 同実施形態による作業記憶部内の記憶領域に置かれ、概念の重み等を保持するためのデータの構成を示す概略図である。 同実施形態において計算するパスの重みを説明するための概略図であり、概念マップの一部分を示している。 同実施形態による作業記憶部内の記憶領域に置かれるデータであり、パス重み算出部が概念マップを探索する際に一時的に記憶すべき情報を格納する手段を示す概略図である。 同実施形態による作業記憶部内の記憶領域に置かれるデータであり、パス重み算出部が概念マップを探索する際に、各概念へのパスに関連する情報を記憶する手段を示す概略図である。 同実施形態による概念処理装置の処理の手順を示すフローチャートの第1である。 同実施形態による概念処理装置の処理の手順を示すフローチャートの第2である。 同実施形態において用いるデータであり、図4に示した記憶領域が保持する値の一例を示す概略図である。 同実施形態において用いるデータであり、図6に示した記憶領域が保持する値の推移の一例を示す概略図である。 同実施形態において用いるデータであり、図7に示した記憶領域が保持する値の推移の一例(その1)を示す概略図である。 同実施形態において用いるデータであり、図7に示した記憶領域が保持する値の推移の一例(その2)を示す概略図である。 同実施形態において用いるデータであり、図7に示した記憶領域が保持する値の推移の一例(その3)を示す概略図である。 本発明の第2実施形態による概念処理装置の概略機能構成を示すブロック図である。 同実施形態における類似度取得部が外部から取得する、概念間の類似度を表す類似度データの構成を示す概略図である。
次に、本発明の実施形態について、図面を参照しながら説明する。
[第1実施形態]
図1は、第1実施形態による概念処理装置の概略機能構成を示すブロック図である。図示するように、概念処理装置1は、概念重み算出部12と、パス重み算出部14と、関連度算出部16と、パラメーター設定部18と、概念マップ記憶部20と、作業記憶部22と、関連度記憶部30と、を含んで構成される。これらの各部は、例えば電子回路(コンピューターを含む)を用いて実現される。また、概念マップ記憶部20と作業記憶部22と関連度記憶部30とは、情報を記憶するための手段として例えば磁気ハードディスク装置や半導体メモリー等を用いて実現される。
概念重み算出部12は、概念間の関係の有無を表す概念マップデータを概念マップ記憶部20から読み込み、ある概念と他の概念との間の関係を表すリンクの数が少ないほど当該概念について大きな値となるような前記概念の重みの値を算出する。
また、概念重み算出部12は、特に、前記概念から前記他の概念との間の前記リンクの数の逆数の対数を計算することにより前記概念の重みの値を算出する。
パス重み算出部14は、前記概念マップデータにおいて、ある概念と他の概念との間を前記リンクで連結させてなるパスについて、当該パス上に含まれる概念についての前記概念の重みの値に応じたパスの重みの値を算出する。
また、パス重み算出部14は、特に、前記パス上に含まれる各々の概念についての前記概念の重みの値の調和平均や相乗平均を取ることによって当該パスの重みの値を算出する。
また、パス重み算出部14は、特に具体的な手順として、計算対象の概念から開始して、前記概念マップデータを探索する探索処理を行いながら、前記計算対象の概念と、前記探索処理において到達する概念との間のパスについて前記パスの重みの値を算出し、当該パスについて算出された前記パスの重みの値が、前記計算対象の概念と当該到達した概念との間を連結させる他のパスについて既に算出していたパスの重みの値よりも大きい場合に、前記算出されたパスの重みの値を、前記計算対象の概念と当該到達した概念との間の最大重みのパスについての重みの値として記憶手段に書き込む。
関連度算出部16は、ある概念と他の概念との間を結ぶパスについての前記パスの重みの値に応じた、当該概念と当該他の概念との間の関連度を算出する。
また、関連度算出部16は、特に、前記ある概念と前記他の概念との間を前記リンクで連結させてなるパスが複数存在する場合に、それら複数のパスの数に、それら複数のパスの重みの値のうちの最大の前記パスの重みの値を乗じることによって、当該概念と当該他の概念との間の関連度を算出する。
パラメーター設定部18は、作業記憶部22内に記憶されるパラメーターを設定する。具体的には、パラメーター設定部18は、後述するパラメーターMAX_Distanceの値を、適宜、設定する。
概念マップ記憶部20は、概念間の関係の有無を表す概念マップデータを記憶する。なお、概念マップデータの詳細については、後述する。
作業記憶部22(ワークメモリー。以下において単に「メモリー」と呼ぶ場合もある。)は、記憶手段であり、処理中の作業用の情報を記憶する領域を持っている。また、作業記憶部22は、処理用のパラメーターを記憶しておく領域を持っている。
関連度記憶部30は、関連度算出部16によって算出された概念間の関連度を記憶する。関連度記憶部30が記憶している関連度のデータは、適宜、他の装置等から参照可能となっている。
次に、概念マップ記憶部20が記憶する概念マップのデータについて説明する。概念マップは、ある概念と他の概念との間に関係があるか否かを表すデータである。概念マップを表す一つの形態は、ノードとリンクで構成されるグラフである。個々の概念は、このグラフにおけるノードに対応する。また、概念間の関係は、グラフにおけるリンクに対応する。ある概念と他の概念との間においては、関係が有るか無いかのいずれかである。概念間に関係がある場合には、それらの概念の間には、リンクが存在する。概念間に関係がない場合には、それらの概念の間には、リンクが存在しない。なお、概念と概念の間の有無を表す情報を含んでいれば、概念マップのデータの形態はここに説明したもの以外でも良い。なお、ここで使用する概念マップのデータとして、既に構築されている概念マップをそのまま用いても良いし、また新たに概念マップを構築しても良い。概念マップを構築する方法の一例は、膨大な量の言語資源に出現する概念を分析することである。ここで用いる言語資源は、たとえばインターネットを介して収集可能なウェブのテキストである。また、出現する概念の分析方法は、例えば、所定の構文における複数の概念の出現を分析したり、同一文脈において出現する複数の概念を分析したりすることである。また、ウェブサイトからダウンロードできるデータが、複数の概念間の関係を直接表している場合には、そこで得られる関係を直接用いるようにしても良い。例えば、Wikipedia(URL https://ja.wikipedia.org/)などといった事典サイトは、概念間の関係をダウンロード可能な携帯で提供している。概念マップの実例については、次に説明する。
図2は、概念マップ記憶部20が保持する概念マップの例を示す概略図である。実際の概念マップは非常に大規模なデータであり、その概念マップに含まれる概念の数は、数十万、数百万、あるいはそれ以上である。しかし、同図では、説明を簡単にするために、7個の概念からなる概念マップを例示している。図示するように、概念マップは、無向グラフで表される。そして、グラフの各ノードが1つの概念に対応する。また、グラフの各リンクは、概念間に直接の関係があることを表している。図示している概念マップに含まれている概念は、「病気」、「高血圧」、「成人病」、「糖尿病」、「風邪」、「発熱」、「インフルエンザ」の7個である。また、図示している概念マップに含まれるリンクを、そのリンクが結ぶ概念の対で表すと、「病気−高血圧」、「病気−成人病」、「病気−糖尿病」、「高血圧−成人病」、「糖尿病−成人病」、「病気−風邪」、「病気−インフルエンザ」、「風邪−発熱」、「インフルエンザ−発熱」の9個である。
概念マップ記憶部20は、処理しやすいデータ形式で、概念マップの情報を保持する。概念マップ記憶部20は、一例としては、ノードの識別子とそのノードが表す概念とを対応付ける表データと、リンクの識別子とそのリンクが結ぶ2個のノードの識別子の対とを対応付ける表データとして、概念マップの情報を保持する。なお、この例に限らず、一般にグラフを表現するために用いられるデータ形式を適用するようにしても良い。
次に、概念処理装置1が計算する概念間の関連度について説明する。
本実施形態において、概念間の関連度は、概念マップにおけるそれらの概念間のつながり方に応じて算出される。概念処理装置1による処理において、概念は既に述べたようにグラフ上のノードに対応している。また、概念間はリンクで結ばれている場合と結ばれていない場合とがある。1本のリンクは、隣接する概念同士をつなぐものであり、且つそれら隣接する概念同士のみをつなぐものである。ある概念から他のある概念に、概念マップ上を辿って到達できるとき、それら概念は互いに連結の状態にある。概念間が連結の状態にあることの条件は、その一方の概念から他方の概念に、1本以上のリンクを辿って到達できることである。そのときに辿るルートを、ここではパスと呼ぶ。パスは、1本または複数本のリンクによって成る。リンクが複数本の場合、パスは、それらのリンクを直列に連結させてなるものである。ある概念と他の概念が連結の状態にあるとき、それら両概念をつなぐパスは1本とは限らない。複数の異なるパスを通って、辿りつくこともできる場合もある。なお、1本のパスは、同じ概念を2度以上通らない。つまり、パスが途中で閉路を形成したり、後戻りしたりすることはない。本実施形態では、概念の重みに基づいて、その概念を含むパスの重みが算出される。また、パスの重みに基づいて、概念間の関連度が算出される。概念間の関連度は、また、当該概念間をつなぐパスの本数によっても決まる。
まず、概念処理装置1は、概念マップに含まれる各概念の重みを計算する。概念の重みは、関連度を計算する上でのその概念の重要性を表す数値である。概念の重みは、その概念から他の概念につながるリンクの本数に応じて算出される。そのリンクの数が少ないほど、その概念の重みの値は大きい。これは、ある概念からつながるリンクの本数が少ないほうがその概念は貴重な概念であるという前提による。より具体的には、概念の重みは、その概念からつながる他の概念へのリンクの本数の逆数の対数によって算出される。ただし、概念の重みの値を正規化するためには、概念マップ上の全概念数を上記のリンク本数で除した数値の対数を、その概念の重みとする。対数の底は、適宜定めて良い。
次に、概念処理装置1は、パスの重みを計算する。前述の定義にしたがうと、パス上には、複数の概念が存在する。パスの両端もまたそれぞれ概念である。パスの重みは、そのパスが含む各々の概念の重みによって算出される。より具体的には、パスの重みは、そのパスが含む各々の概念の重みの何らかの平均によって算出される。ここで、何らかの平均とは、例えば、単純な相加平均や、調和平均や、相乗平均などである。より具体的には、概念処理装置1は、各々の概念の重みの調和平均の値を、そのパスの重みの値として算出する。これは、実際の概念マップを用いた実験により、調和平均を用いることで最も好適なパスの重みが算出できることがわかったことによる。
次に、概念処理装置1は、パスの重みの値に基づき、概念間の関連度を算出する。本実施形態による概念間の関連度は、その概念間のパスの重みのうちの、最大の重みの値と、当該概念間に存在するパスの本数との積として算出される。
なお、現実的な計算量で概念間の関連度を算出するための手順については、後で説明する。その手順においては、妥当な計算量で概念マップを探索するために、探索する距離(=1本のパスに含まれる直列なリンクの数)に上限を設ける。この上限の値はパラメーターとして設定することができる。なお、この手順を用いた場合の概念間の関連度は、有向的である。即ち、概念Aから概念Bへの関連度の値と、逆の概念Bから概念Aへの関連度の値とは、異なる場合がある。
整理すると、次の通りである。
このように概念処理装置1が算出する概念間の関連度は、当該概念間に存在するパスの本数に応じて求められる。つまり、パスの本数が多いほど、関連度の値は大きい。これは、様々なパスでつながっている概念同士は、互いに関連が高いという想定に整合する。
また、概念処理装置1が算出する概念間の関連度は、パスの重み(の最大値)に応じて求められる。つまり、パスの重みの最大値が大きいほど、関連度の値は大きい。これは、重要性の高いパスによってつながっている概念同士は、互いに関連が高いという想定に整合する。
また、概念処理装置1が算出するパスの重みは、そのパスが含む概念の重みに応じて求められる。概念の重みが大きいほど、パスの重みは大きい。パスの重みとして、概念の重みの調和平均を用いることが好ましいが、概念の重みの相乗平均を用いても良い。
ここで、概念重み算出部12によって計算される概念の重みについて、説明する。
図3は、概念の重みを説明するための概略図であり、概念マップの一部分を示している。同図において、「A」、「C」、「D」、「E」というラベルが付けられた丸印は、それぞれ概念に相当するノードである。また、ノードから伸びる線は、ノード間のリンクであり、概念と概念との間の直接の関係を表している。同図では、概念マップの一部分のみを示しているが、実際の概念マップは同図に示す範囲外にも伸びている。
同図では、概念マップの一部分のみを示しているが、この概念マップ全体のノード数(概念数)をNとする。Nは正整数であり、例えば、N=10000である。概念の重みを説明するために、一例として、同図に示す「C」でラベル付けされたノードに着目する。このノード「C」からは、ノード「A」、「D」、「E」への直接のリンクがつながっている。なお、このノード「C」からは、これらノード「A」、「D」、「E」以外のノードへの直接のリンクはつながっていない。つまり、このノード「C」から直接つながる他のノードへのリンクの数は3である。
本実施形態における概念の重みは、次の式によって計算される。
概念の重み=log(N/n)
ここで、Nは、上記の通り、概念マップ全体に含まれる全概念数である。また、nは、当該概念に直接つながる概念の数である。なお、対数の底は適宜定めればよいが、ここでは底を10とする。図示した例において、ノード「C」に直接つながる他のノードの数は3(n=3)であり、概念マップに含まれる全ノード数は10000(N=10000)である。よって、上の式により、ノード「C」に相当する概念の重みは、次のように計算される。
ノード「C」の概念の重み=log10(10000/3)=3.52
ただし、小数点第3位を四捨五入して丸めている。
図4は、概念の重みを保持するためのデータの構成を示す概略図である。このデータは、作業記憶部22の所定の領域内に設けられる。図示するデータは、表形式のデータであり、ノードID、概念(ノードに対応した概念)、つながる概念、重みの各項目を有している。この表の1行が、1つの概念、即ち1つのノードに対応する。ノードIDは、概念マップ内のノードをユニークに識別するIDである。図示する例では、ノードIDとして整数値を用いている。概念の項目には、その概念を表す言葉が格納される。つながる概念の項目には、当該概念から直接のリンクによって連結されている概念のノードIDのリストが格納される。重みの項目には、当該概念について計算された重みの値が格納される。
同図では、表全体のうちの一部の値を示している。そのノードIDは、98から102までの範囲である。また、それら各ノードの概念は、A,B,C,D,Eである。ここで概念C(ノードIDは100)に着目すると、その概念Cからつながる概念のノードIDは、98,101,102の3個である。つまり、概念Cは、概念AとDとEとに、直接のリンクでつながっている(図3に例示した通り)。また、概念Cの重みとして、3.52という値が格納されている。
ここで、パス重み算出部14によって計算されるパスの重みについて、説明する。
図5は、パスの重みを説明するための概略図であり、概念マップの一部分を示している。同図において、「1」、「2」、「3」、「4」、「5」というラベルが付けられた丸印は、それぞれ概念に相当するノードである。また、ノードから伸びる線は、ノード間のリンクであり、概念と概念との間の直接の関係を表している。同図では、概念マップの一部分のみを示しているが、実際の概念マップは同図に示す範囲外にも伸びている。
パスとは、ある概念からある概念までのルートである。例えば同図において、ノード「1」からノード「5」までのパスは、少なくとも2つある。その第1のパスは、ノードの列として「1−2−3−5」と表される。また第2のパスは、同様にノードの列として「1−2−4−5」と表される。このように、両端のノードを含んで、パス上のノードを列として並べることにより、パスを表すことができる。そして、本実施形態では、パスの重みを、そのパス上の各ノード(両端のノードを含む)の重みの調和平均として定義する。
一般に、M個の数値w,w,・・・,wの調和平均は、次の式で表される。即ち、M/(1/w+1/w+・・・+1/w)である。
したがって、ノード「1」から「5」までの重み(つまり、概念の重み)が計算済であり、そのそれぞれをwn1,wn2,・・・,wnMとしたとき、上記の第1のパスの重みと、第2のパスの重みは、それぞれ、次の式で表される。
(第1のパスの重み)=4/(1/wn1+1/wn2+1/wn3+1/wn5
(第2のパスの重み)=4/(1/wn1+1/wn2+1/wn4+1/wn5
図6は、作業記憶部22が保持するデータの構成の一部を示す概略図である。同図に示すデータは、主に、パス重み算出部14が概念マップ記憶部20を参照しながら概念マップを探索する際に、一時的に記憶すべき情報を格納するための手段である。同図に含まれる各データ項目の意味は、次の通りである。
データ項目「計算対象の概念」は、概念マップの中でその時点で1個選ばれている概念であり、関連度を計算する対象となっている概念である。例えば、計算対象の概念が図2に示した概念マップにおける「病気」であるとき、概念処理装置1は、この概念「病気」から他の各概念への関連度を計算する。なお、計算対象の概念を、以下において便宜上、「概念A」と呼ぶことがある。
データ項目「起点概念の配列」は、計算対象の概念から所定の距離(変数Dによって保持される値の距離)のパスを探索するときに起点となる概念を要素として持つ配列である。
データ項目「辿った概念数」は、その時点での計算対象の概念からの距離を保持するデータであり、上記の変数Dに対応するものである。
データ項目「起点の概念」は、その時点で起点として選択されている概念である。データ項目「起点の概念」には、上記の起点概念の配列の中から選択された1つの概念が格納される。なお、起点の概念を、以下において便宜上、「概念C」と呼ぶことがある。
データ項目「隣接概念の配列」は、上記の起点の概念に隣接する概念を要素として持つ配列である。ここで、概念が「隣接する」とは、ある概念と他の1つの概念とが、単一のリンクを隔ててつながっていることを意味する。例えば、図2で示した概念マップの例において、概念「病気」と概念「高血圧」とは互いに隣接する概念である。また、概念「発熱」と概念「風邪」とは互いに隣接する概念である。また、概念「糖尿病」と概念「風邪」とは、リンクによって直接つながっている関係にないため、これら両者は互いに隣接する概念ではない。なお、隣接概念(つまり、隣接概念の配列の一要素)を、以下において便宜上、「概念B」と呼ぶことがある。
なお、図6に示した各データ領域の使用例については、後で、処理実例として説明する。
図7は、作業記憶部22が保持するデータの構成の一部を示す概略図である。同図に示すデータは、主に、パス重み算出部14が概念マップ記憶部20を参照しながら概念マップを探索する際に、各概念の関連度を算出するための数値等を記憶するものである。具体的には、パス重み算出部14は、後で説明する処理手順により、計算対象の概念(概念A)と各概念との間のパス(特に、複数のパスがある場合には、重みが最大となるパス)についての、情報を順次更新していく。なお、このデータは表形式のデータであり、この表の各行が、1つの概念に対応する。同図に含まれる各データ項目の意味は、次の通りである。
データ項目「概念」は、その概念を表す言葉のデータを格納する。例えば、図2で示した概念マップの例において、「高血圧」や「成人病」などといった言葉であって、その概念をユニークに特定する情報を、このデータ項目は格納する。また、パス重み算出部14の処理手順に関連付けて言うと、このデータ項目によって表される概念は、前記の「概念B」に当たるものである。
データ項目「MAX_Weight」は、計算対象の概念(概念A)から当該概念(概念B)までのパスの重みのうちの、最大の重みの値を保持する。一般的に、概念Aと概念Bとの間が、所定の距離(MAX_Distance)内において連結されているとき、両概念相互間のパス(辿り得るルート)の数は1以上である。パス重み算出部14は、これらのパスのうち、既に計算されたパスの重みの中の最大の値によってデータ項目「MAX_Weight」を更新する。
データ項目「MAX_Path」は、上記の「MAX_Weight」に対応するパスの情報を格納する。つまり、データ項目「MAX_Path」は、概念Aと概念Bとの間のパスのうち、既に計算された重みが最大であるパスの情報を保持するためのものである。具体的には、データ項目「MAX_Path」は、そのパス上に含まれる概念(パスの両端の概念を含む)の列を、そのパスの情報として保持する。このような、パス上に含まれる概念の列の情報は、概念マップ上におけるパスをユニークに特定する。
データ項目「NUM_Path」は、概念Aから概念Bまでのパスの数を格納するものである。なお、パス重み算出部14が概念マップを探索するとき、このNUM_Pathの値は、次のように計算される。つまり、D=n(ただし、0≦n<MAX_Distance−1)のときの、概念Aから概念Bまでのパスの数をNUM_PathD=n(A,B)とする。また、D=nのときの、概念Aから概念Cまでのパスの数をNUM_PathD=n(A,C)とする。ここで、NUM_PathD=n(A,B)には、概念Cを通るパスの数は含まれていない。そして、D=n+1において概念Cから概念Bへの直接のリンクによるパスを探索したとき(つまり、このD=n+1において概念Cを経由して概念Aから概念Bに至るパスが探索された)、次の式が成り立つ。
NUM_PathD=n+1(A,B)=(NUM_PathD=n(A,B))+(NUM_PathD=n(A,C))
次に、概念処理装置1による処理の手順について説明する。
図8および図9は、概念処理装置1による処理の手順を示すフローチャートである。これら両図は、フローチャートの結合子によって互いに結合されている。以下、このフローチャートに沿って、手順を説明する。
まずステップS10(図8)において、パラメーター設定部18は、最大距離(MAX_Distance)をパラメーターの値として付与する。具体的には、パラメーター設定部18は、MAX_Distanceの設定値を、作業記憶部22内の所定の領域に書き込む。付与されるMAX_Distanceの値は正整数である。このMAX_Distanceの値は、概念マップにおいて、概念から概念へとたどるときの最大距離を規定する。例えば、ある概念とある概念とが直接のリンクによって結ばれているとき、そのルートによる当該概念間の距離は1である。また、ある概念とある概念とが、途中に1個だけの中間概念を介してリンクによって間接的に結ばれているとき、そのルートによる当該概念間の距離は2である。つまり、ある概念とある概念とが1つまたは複数の中間概念を介してリンクによって間接的に結ばれているとき、そのルートをたどるときのリンク数が、当該概念間の距離である。
次にステップS20において、概念重み算出部12は、概念マップに含まれる各概念について、その概念と直接のリンクによって結ばれている概念を列挙した、概念のリストを作成する。概念重み算出部12は、その概念のリストを、図4に示した表の中の、つながる概念の欄に書き込む。また、概念重み算出部12は、そのつながる概念のリストに基づいて、各概念の重みを計算する。計算方法は、既に述べたようにlog(N/n)の数式による。概念重み算出部12は、各概念について計算した値を、図4に示した表の中の重みの欄に書き込む。
次のステップS30から、S90およびS100までの処理は、パス重み算出部14が概念マップを辿りながら、パスの重みを算出し、更新していく処理である。
ステップS30において、パス重み算出部14は、計算対象となる概念(概念Aと呼ぶ)を起点概念の配列に格納する。つまり、計算対象となる概念が、起点概念の初期値である。また、パス重み算出部14は、辿る距離をカウントするための変数であるDの値を0に初期化する。この変数Dは、概念マップにおいて、概念から概念へとたどるときの、その時点でのパスの長さ(パスに含まれるリンク数)の値を記憶する。この変数Dのあたいと、上述したパラメーターであるMAX_Distanceの値との関係によって、概念処理装置1は、概念マップの探索の終了条件を判断する。
次にステップS40において、パス重み算出部14は、起点概念の配列からひとつ選んだ概念を、起点の概念(概念Cと呼ぶ)とする。パス重み算出部14は、メモリー内の起点の概念を格納する領域に、その選ばれた概念を書き込む。そして、パス重み算出部14は、その起点の概念(概念C)から直接のリンクでつながる先の概念のすべてを、隣接概念の配列に書き込む。このとき、パス重み算出部14は、概念マップ記憶部20を参照して概念Cにつながる概念を得ても良く、また既に作成した図4のデータを参照することによって概念Cにつながる概念を得ても良い。
次にステップS50において、パス重み算出部14は、隣接概念の配列の中の各概念(概念Bと呼ぶ)について、概念Aから概念Cを経由して概念Bまでのパスの重みを算出する。そして、そのパスについて計算された重みが、既に計算済の概念Aから概念Bまでのパスの重み(MAX_Weight(A,B)として計算済の重みの値)よりも大きい場合には、そのMAX_Weight(A,B)を更新するとともに、そのパスの情報をMAX_Path(A,B)の値として記録する。そのパスとは、MAX_Path(A,C)に既に記録されているパスを延長して概念Bまで伸ばしたものである。言い換えれば、そのパスとは、MAX_Path(A,C)に既に記録されているパスに概念Bを連結したものである。
なお、MAX_Weight(A,B)として計算済の値がまだなかった場合には、今回計算された値を、パスの重み値MAX_Weight(A,B)として記憶するようにする。また、その重みに対応するパスを、MAX_Path(A,B)として記憶するようにする。
なお、上のステップS50の処理において、隣接概念の配列から取り出した概念(概念B)が、計算対象の概念(概念A)自身である場合には、パス重み算出部14は、そのパスの重みを計算したり、そのパスをMAX_Pathとして記録したりしない。
次にステップS60において、上のステップS50で処理対象とした概念Bの各々について、概念Aから概念Bへのパス数を更新する。つまり、それまでのNUM_Path(A,B)の値にNUM_Path(A,C)の値を加え、その加算の結果を新たなNUM_Path(A,B)の値とする。これは、概念Aから概念Cを経由して概念Bに至るパスが新たに探索されたことに対応する。
次にステップS70において、パス重み算出部14は、起点概念の配列の中に未計算の概念が残っているか否かを判断する。起点概念の配列の中に未計算の概念が残っている場合(ステップS70:YES)には、パス重み算出部14は、次の起点概念についての計算を行うためにステップS40に戻る。起点概念の配列の中に未計算の概念が残っていない場合(ステップS70:NO)には、パス重み算出部14は、次のステップS80に進む。
図9に移り、ステップS80において、パス重み算出部14は、距離をカウントするための変数であるDの値をインクリメントする。
そして、ステップS90において、パス重み算出部14は、変数Dの値がパラメーター値MAX_Distanceに達したか否かを判断する。具体的には、D<MAX_Distanceの不等式を満たすか否かを判断する。D<MAX_Distanceであるとき、即ち、探索しているパスの距離がまだ設定された最大値MAX_Distanceに達していないとき(ステップS90:YES)は、ステップS100に移り、パス重み算出部14による処理を続ける。つまりこの場合、パス重み算出部14は、ステップS80でインクリメントされた新たなDの値についてパスを探索してパスの重みを算出する処理を続ける。一方、D<MAX_Distanceではないとき、即ち、探索しているパスの距離が設定された最大値MAX_Distanceに達したとき(ステップS90:NO)は、ステップS110の関連度算出部16による処理に移る。
そして、ステップS100に移った場合、同ステップにおいて、パス重み算出部14は、ステップS50とS60で処理した各概念(概念B)を、起点概念の配列(図6を参照)に書き込む。そして、次にステップS40(図8)に制御を戻し、処理を繰り返す。
そして、ステップS110に移った場合、同ステップにおいて、関連度算出部16は、ここまでの処理で計算されたパスの重み、およびパスの数に基づいて、概念間の関連度を計算する。具体的には、関連度算出部16は、元の計算対象の概念(概念A)からパラメーターMAX_Distanceに設定された範囲内で辿り着くルートが2個以上ある概念(概念B)について、次に示す式による関連度を計算する。即ち;
(1)概念Aから概念Bへの関連度は、概念Aから概念BへのMAX_Weightの値に、概念Aから概念Bへのパスの数NUM_Pathの値を乗じたものとする。つまり、概念Aから概念Bへの関連度は、MAX_Weight(A,B)×NUM_Path(A,B)とする。
(2)ただし、上記(1)で算出される関連度を、次のように正規化する。つまり、正規化後の概念Aから概念Bへの関連度は、上記(1)の式で計算された概念Aから概念Bへの関連度を、概念Aから各概念への関連度の総和で除したものとする。つまり、この正規化後の関連度は、{MAX_Weight(A,B)×NUM_Path(A,B)}/(概念Aから概念マップ上の各概念への関連度の総和)である。このように正規化することにより、概念マップのサイズに依存しない値を算出することができる。
なお、上記のステップS110の処理において元の計算対象の概念(概念A)からパラメーターMAX_Distanceに設定された範囲内で辿り着くルートが2個以上ある概念(概念B)に限定して関連度を計算した理由は、次の通りである。即ち、概念Aから概念Bへ辿り着くルートが1個しかないような概念Bは、概念Aとの関連度は充分に小さく、関連がないものと見なしてしまって差し支えないためである。
次に、ステップS120において、概念処理装置1は、計算対象の概念であって且つ未計算の概念があるか否かを判定する。未計算の概念がある場合(ステップS120:YES)には、次の計算対象の概念についての処理に移るために、ステップS30(図8)に戻る。未計算の概念がある場合(ステップS120:NO)には、このフローチャート全体の処理を終了する。
[処理の実例]
次に、処理の実例について説明する。なお、以下の説明の中で、図11,図12,図13,図14に言及する。これらの図面は、下で述べる処理実例の過程におけるメモリー(作業記憶部22)の状態を示す概略図である。図11は、図6で説明した記憶領域が保持する値の推移を示すものである。また、図12,図13,図14は、図7で説明した記憶領域が保持する値の推移を示すものである。
本例の処理が対象とする概念マップは、図2に示したものである。同図に示す概念マップの例には、「病気」、「高血圧」、「糖尿病」、「成人病」、「風邪」、「インフルエンザ」、「発熱」という7つの概念が含まれる。これらの概念の各々は、概念マップのグラフにおけるノードに対応する。そして、ノード間を結ぶリンクが、概念間の関係に対応している。同図に例示するグラフには、病気−高血圧、病気−成人病、病気−糖尿病、病気−風邪、病気−インフルエンザ、成人病−高血圧、成人病−糖尿病、風邪−発熱、インフルエンザ−発熱というリンクが含まれている。
以下に処理手順にしたがって、処理例を説明する。なお、以下の処理例の説明において言及するステップ番号は、図8および図9のフローチャートで示した手順におけるステップ番号である。
ステップS10:まず、概念処理装置1のパラメーター設定部18は、パラメーターMAX_Distanceの値を、本処理例では、2に設定する。
ステップS20:次に、概念重み算出部12は、概念マップに含まれる各概念について、直接つながっている概念を列挙したリストを作成するとともに、重みを計算する。
図10は、このステップS20で作成された、各概念に関する情報を保持するテーブルの実例を示す概略図である。図示するように、このテーブルは表形式の構造を有しており、その各行が概念マップに含まれる概念(ノード)に対応する。そして、各桁は、データ項目(属性)に対応しており、ノードID、概念(ノード)、つながる概念(ノード)、重みの各桁が存在する。
ノードIDは、各概念に対して便宜的に付与された識別情報である。図示する例では、1から7までの数値がノードIDとして付与されている。
概念(ノード)は、その概念を表す言葉である。本例では、「病気」、「成人病」などといった言葉がこの欄に格納されている。
つながる概念(ノード)は、当該概念から直接のリンクでつながっている先の概念(ノード)のリストである。例えば、ノード「病気」から直接のリンクでつながるノードは5個あり、それらは、「高血圧」、「成人病」、「糖尿病」、「風邪」、「インフルエンザ」である。概念「病気」についての、つながる概念の欄には、これら5個のリンク先の概念が列挙されたリストが格納されている。
重みは、当該概念(ノード)についての重みの値を格納する。この概念マップに現れる全概念数が7であるため、例えば、概念「病気」(直接つながる先の概念数が5)についての重みは、前述の定義log(N/n)により、log(7/5)、つまり0.15(小数点第3位を四捨五入して丸めている)である。また例えば、概念「高血圧」(直接つながる先の概念数が5)についての重みは、同様に、log(7/2)、つまり0.54である。他の概念についての重みも同様である。
[D=0,起点の概念が「病気」]
ステップS30:次に、パス重み算出部14は、計算対象の概念を1個選び、その概念を、メモリー内の、計算対象の概念の領域に格納する。また、概念処理装置1は、起点からの距離として、辿った概念数の値を初期化する。即ち、メモリー内の辿った概念数の領域に、D=0という値を書き込む。また、概念処理装置1は、ここで選択された計算対象の概念のみを、メモリー内の起点概念の配列の要素として格納する。
ステップS40:次に、パス重み算出部14は、メモリー内の起点概念の配列からひとつ選んだ概念を、起点の概念とする。そして、概念処理装置1は、その選ばれた概念をメモリー内の起点の概念の領域に書き込む。現在、起点概念の配列に書き込まれている要素は「病気」のみであるため、概念処理装置1は、メモリー内の起点の概念の領域に「病気」を書き込む。さらに、概念処理装置1は、その起点の概念から直接つながる概念をすべて、隣接概念の配列に書き込む。具体的には、「病気」から直接つながる概念は、「高血圧」、「成人病」、「糖尿病」、「風邪」、「インフルエンザ」の5個であるので、概念処理装置1は、これら5個の概念を隣接概念の配列の領域に書き込む。
上記のステップS30およびS40の処理を終えた時点でのメモリー内の状態は、図11のaの行に示すとおりである。
次に、パス重み算出部14は、隣接概念の配列に格納されている各概念について、下の通り、ステップS50とステップS60の処理を、順次行う。つまり、概念処理装置1は、図11の起点概念の配列に格納されている概念の各々を起点の概念として、計算対象の概念(現状況では、「病気」)と、隣接概念の配列に格納されている要素である概念との間の関連度を計算する。関連度は、現在辿っているパス上の各概念(パスの両端の概念を含む)の重みの調和平均として算出される。また、ここで計算した関連度が、既に計算されている関連度よりも大きい場合には作業記憶部22に記憶されている情報(図7に示したテーブル)を更新するが、現状況では関連度を計算する初回であるため、各概念についてパスの重み(各概念についてのMAX_Weight)を更新する。また、このパスの重みを更新する際には、あわせて、その関連度が算出されたときのパスを記録する(各概念についてのMAX_Pathを更新)。
(1)隣接概念の配列から、まず、概念Bとして「高血圧」を取り出す。
ステップS50:計算対象の概念「病気」と、隣接概念の配列に格納されている要素である概念(概念B)「高血圧」との間の関連度は、「病気」の重みである0.15(図10を参照。以下においても同様。)と、「高血圧」の重みである0.54との調和平均として求められる。そして、その値は0.23(小数点第3位を四捨五入して丸めている。以下においても同様。)である。また、この関連度に対応するパスは、病気−高血圧というパスである。つまり、概念「高血圧」に関しては、MAX_Weight=0.23であり、MAX_Path=「病気,高血圧」である。
ステップS60:ここで、パス数(NUM_Path)を更新する。D=0の場合のみ特殊であり、ここでは、NUM_Path(A,C)=NUM_Path(病気,病気)=1として計算する。つまり、概念「高血圧」に関して、NUM_Pathの値は1に更新される。
(2)隣接概念の配列から、次に概念Bとして「成人病」を取り出す。
ステップS50:計算対象の概念「病気」と、隣接概念の配列から選んだ概念Bである「成人病」との間の関連度は、「病気」の重みである0.15と、「成人病」の重みである0.37との調和平均として求められる。そして、その値は0.21である。また、この関連度に対応するパスは、病気−成人病というパスである。つまり、概念「成人病」に関しては、MAX_Weight=0.21であり、MAX_Path=「病気,成人病」である。
ステップS60:上記の「高血圧」の場合と同様に、D=0の場合のみ特殊であり、NUM_Path(A,C)=NUM_Path(病気,病気)=1として計算する。つまり、「成人病」についても、NUM_Pathの値は1に更新される。
(3)隣接概念の配列から、次に概念Bとして「糖尿病」を取り出す。
ステップS50:計算対象の概念「病気」と、隣接概念の配列から選んだ概念Bである「糖尿病」との間の関連度は、「病気」の重みである0.15と、「糖尿病」の重みである0.54との調和平均として求められる。そして、その値は0.23である。また、この関連度に対応するパスは、病気−糖尿病というパスである。つまり、概念「糖尿病」に関しては、MAX_Weight=0.23であり、MAX_Path=「病気,糖尿病」である。
ステップS60:上記の「高血圧」の場合と同様に、D=0の場合のみ特殊であり、NUM_Path(A,C)=NUM_Path(病気,病気)=1として計算する。つまり、「糖尿病」についても、NUM_Pathの値は1に更新される。
(4)隣接概念の配列から、次に概念Bとして「風邪」を取り出す。
ステップS50:計算対象の概念「病気」と、隣接概念の配列から選んだ概念Bである「風邪」との間の関連度は、「病気」の重みである0.15と、「風邪」の重みである0.54との調和平均として求められる。そして、その値は0.23である。また、この関連度に対応するパスは、病気−風邪というパスである。つまり、「風邪」に関しては、MAX_Weight=0.23であり、MAX_Path=「病気,風邪」である。
ステップS60:上記の「高血圧」の場合と同様に、D=0の場合のみ特殊であり、NUM_Path(A,C)=NUM_Path(病気,病気)=1として計算する。つまり、「風邪」についても、NUM_Pathの値は1に更新される。
(5)隣接概念の配列から、次に概念Bとして「インフルエンザ」を取り出す。
ステップS50:計算対象の概念「病気」と、隣接概念の配列から選んだ概念Bである「インフルエンザ」との間の関連度は、「病気」の重みである0.15と、「インフルエンザ」の重みである0.54との調和平均として求められる。そして、その値は0.23である。また、この関連度に対応するパスは、病気−インフルエンザというパスである。つまり、「インフルエンザ」に関しては、MAX_Weight=0.23であり、MAX_Path=「病気,インフルエンザ」である。
ステップS60:上記の「高血圧」の場合と同様に、D=0の場合のみ特殊であり、NUM_Path(A,C)=NUM_Path(病気,病気)=1として計算する。つまり、「インフルエンザ」についても、NUM_Pathの値は1に更新される。
以上、D=0の段階として、計算対象の概念である「病気」と、辿っている概念(隣接概念の配列に格納されている要素であった各概念)との間の関連度が計算された。
図12は、この段階での各概念についての計算結果を格納するテーブル(図7に示したテーブル)の状態を示す概略図である。図示するように、1行目の「高血圧」、2行目の「成人病」、3行目の「糖尿病」、4行目の「風邪」、5行目の「インフルエンザ」のそれぞれについて、MAX_Weightと、MAX_Pathと、NUM_Pathの値が格納されている。
ステップS80:次に、Dがインクリメントされ、D=1となる。
ステップS90:MAX_Distance=2と設定されているため、D<MAX_Distanceの条件を満たす。よって、ステップS100に進む。
ステップS100:パス重み算出部14は、ステップS50,S60,S70のループを繰り返した際に計算した各概念を起点概念の配列に格納する。つまり、図11のbに示すように、起点概念の配列に、「高血圧」、「成人病」、「糖尿病」、「風邪」、「インフルエンザ」の各要素を格納する。次に、ステップS40の処理に戻る。
ステップS40:パス重み算出部14は、起点概念の配列から、まず概念「高血圧」を選び、この「高血圧」を起点の概念(概念C)とする。そして、この概念Cからつながる先の概念(概念Cに隣接する概念)をすべて隣接概念の配列に格納する。具体的には、隣接概念の配列に、「成人病」、「病気」の各要素を格納する。このときが、図11のbに示す状態である。
隣接概念の配列内の「成人病」について、ステップS50,S60の処理を行う。
ステップS50:パス重み算出部14は、辿って来た「病気−高血圧−成人病」というパスについて重みを計算する。それは0.15(概念「病気」の重み)と0.54(概念「高血圧」の重み)と0.37(概念「成人病」の重み)の調和平均であり、その値は0.27である。
この0.27という値は、これまでに計算した「病気」から「成人病」までの重みである0.21(図12の第2行目を参照)よりも大きい(重い)ので、MAX_Weight(A,B)を更新する。また、合わせて、MAX_Pathを、この0.27という新たな重みに対応するパスで更新する。つまり、MAX_Weight=0.27とし、MAX_Path=「病気,高血圧,成人病」とする。
図13は、このときのテーブル(図7に示したテーブル)の状態を示す概略図である。図示するように、概念「成人病」について、MAX_WeightとMAX_Pathが更新されている。
ステップS60:パス重み算出部14は、NUM_Pathの値(パス数)を更新し、NUM_Path=2とする。つまり、D=1におけるNUM_Path(病気→成人病)は、D=0におけるNUM_Path(病気→成人病)の値と、D=0におけるNUM_Path(病気→高血圧)の値とを足し算したものである。つまり、D=0におけるNUM_Path(A,B)に、D=0におけるNUM_Path(A,C)を加えている。
図14は、このときのテーブル(図7に示したテーブル)の状態を示す概略図である。図示するように、概念「成人病」について、NUM_Pathも更新されている。
なお、概念「病気」は、計算対象の概念そのものであるので、「病気−高血圧−病気」というパスについては計算を行わない。
以下、詳細な説明を省略するが、起点概念の配列に格納されている概念であって、重みの計算が未だ完了していない概念について、ステップS50,S60の計算手順を繰り返す。つまり、「成人病」、「糖尿病」、「風邪」、「インフルエンザ」の各概念について、ステップS50,S60の計算手順を繰り返す。この過程で、概念「病気」から上記各概念への、D=1の時点でのMAX_PathおよびNUM_Pathを求める。
ステップS80:次に、Dがインクリメントされ、D=2となる。
ステップS90:MAX_Distance=2と設定されているため、D<MAX_Distanceの条件を満たさない。よって、ステップS110に進む。
ステップS110:関連度算出部16は、概念「病気」から各概念までの関連度を、MAX_Weight×NUM_Pathにより計算し、またその値を正規化する。但し、この計算をするのは、概念「病気」から辿り着くルートが2個以上ある概念に限る。
そして、概念処理装置1は、上記の乗算MAX_Weight×NUM_Pathによって計算された、概念「病気」と各概念との間の関連度(正規化済)を出力する。
これで、計算対象の概念「病気」についての処理を終えた。
なお、関連度算出部16は、算出した関連度の情報を、関連度記憶部30に書き込む。
ステップS120:未計算の計算対象の概念(つまり、上記の「病気」以外の計算対象の概念)があるかどうかを判定する。ある場合には、ステップS30に移って処理を続ける。ない場合には、図8および図9示したフローチャート全体の処理を終了する。
なお、以上述べた方法によって算出される関連度は、有向なものである。言い換えれば、算出される関連度の値は概念から概念への向きに依存する。例えば、概念「病気」から概念「風邪」への関連度の値と、概念「風邪」から概念「病気」への関連度の値とは、異なる。
以上、説明したように、第1実施形態の概念処理装置1によれば、概念マップのデータから、ある概念から他の概念への関連度を算出することができる。このとき、実際の文章例からなる言語資源等のデータを必要とせず、概念処理装置は、概念マップのデータのみから、上記の関連度を算出することができる。
また、第1実施形態の概念処理装置1によれば、現実的に妥当な限られた計算量で、上記の関連度を算出することができる。その要因の一つは、概念マップを探索する際の距離の上限(MAX_Distance)を設けていることである。
また、第1実施形態の概念処理装置1が算出する概念間の関連度は、現実の概念マップに適用したときに良好な値として計算される。これは、算出のための処理手順や計算方法を特に工夫したことによる。
また、第1実施形態として記載した技術によると、広い概念(例えば、概念「日本のスポーツ」など)については、隣接する概念数が多いため、概念の重みが小さくなる。よって、このような広い概念が関わる関連度の値は小さくなる。また、狭すぎる概念(例えば、特定の放送局による特定の番組を表す「NHKサンデースポーツ」など)については、そのような概念が含まれるパスの総数が少なくなるため、そういう概念が関わる関連度の値は、やはり小さくなる。つまり、両極端な概念については、関連度を低くする作用を有する。つまり、ノイズに関しては低い関連度を算出することができる。つまり、概念におけるノイズの影響を軽減しながら、情報検索等の処理を行うことができるようになる。
[第2実施形態]
次に、本発明の第2実施形態について説明する。なお、前述の実施形態と共通する事項については説明を省略する場合があり、本実施形態特有の事項を中心に説明する。
図15は、本実施形態による概念処理装置の概略機能構成を示すブロック図である。図示するように、概念処理装置2は、概念重み算出部112と、パス重み算出部114と、関連度算出部116と、パラメーター設定部18と、概念マップ記憶部20と、作業記憶部22と、関連度記憶部30と、類似度取得部140と、を含んで構成される。
本実施形態の特徴は、類似度取得部140を備えている点と、重みの計算方法および関連度の計算方法が第1実施形態と異なる点である。
本実施形態による概念処理装置2では、類似度取得部140が、外部から概念間の類似度を表す類似度データを取得する。そして、パス重み算出部114は、類似度取得部140が取得した類似度データを参照することによって概念間の類似度を用いながら、パスの重みを算出する。つまり、パス重み算出部114は、概念マップ記憶部20に記憶された概念マップを辿るパスの重みを求める際に、外部から与えられた類似度の値を、初期値として利用する。つまり、パス重み算出部114は、前記パスについて、当該パス上に含まれるリンクが結ぶ概念の対に関する類似度を前記類似度データから取得し、取得した前記類似度にも応じて前記パスの重みの値を算出する。
図16は、類似度取得部140が取得する類似度データの構成を示す概略図である。図示するように類似度データは表形式のデータであり、項目として、概念1、概念2、類似度を有している。概念1と概念2は、それぞれ、概念マップ内に含まれる概念に対応する。そして、データ項目「類似度」は、概念1と概念2との間の類似度の値を保持する。なお、類似度データが情報として概念間の類似度の値を含むものであれば、データの形式等については図示したデータと異なるものであっても良い。
類似度の値は、外部から供給されるものであり、各種手法を用いることによって概念間の類似度を与えることができる。概念間の類似度の一例は、文脈類似度である。文脈類似度を求める方法自体は、既存技術である。文脈類似度を求めるためには、大量の文章からなる言語資源を取得し、言語資源に含まれる各文の構文解析を行い、語が出現する文脈についての統計的な分析を行う。ここで、語は、概念に対応する。また、ここで言う文脈とは、言語資源に含まれる文章において、ある概念(語)が出現するときのその概念の周りの概念(語)の統計的な特徴や、ある概念(語)が出現するときの構文における位置付け等である。周りの概念(語)の統計的な特徴は、一例として、周りの概念(語)に基づく単語ベクトルで表される。この単語ベクトルは、各要素が語に対応する多次元(例えば、数万ないしは数十万次元)のベクトルであり、各要素はその語がその文脈において出現しているか否かを表す。そして、似たような文脈において出現しやすい傾向にある概念(語)同士は、その傾向が強いほど文脈類似度が高い。これは、ある概念(語)はその周囲の概念や構文等の文脈によって特徴づけられる、という前提に基づく。
本実施形態による重みの求め方は、次の通りである。
概念重み算出部112は、次の式により、概念の重みを算出する。
(概念の重み)=log(N/n)
ここで、nは当該概念から他の概念に直接つながるリンク数である。また、Nは概念マップ内に含まれる全概念数である。
そして、パス重み算出部114は、次の式(A1),(A2),(A3)のいずれかにより、隣接する概念AおよびBの間のパスの重みを算出する。
式(A1): (隣接する概念間のパスの重み)=sim(A,B)×(概念Aの重み+概念Bの重み)
式(A2): (隣接する概念間のパスの重み)=sim(A,B)×(概念Aの重み×概念Bの重み)
式(A3): (隣接する概念間のパスの重み)=sim(A,B)×min(概念Aの重み,概念Bの重み)
なお、パス重み算出部114は、上の式(A1),(A2),(A3)のいずれかを用いるが、これらいずれかのうち選択された式を一貫して用いる。つまり、概念間の関連度を算出するときに、途中で概念間のパスの重みの計算式を変更することはない。
ここで、sim(A,B)は、概念Aと概念Bの間の類似度であり、前記の類似度取得部140が取得した類似度データで、その値を参照することができる。
また、min(概念Aの重み,概念Bの重み)は、引数の中の最小値を返す最小値関数を、各重みに適用したものである。つまり、min(概念Aの重み,概念Bの重み)は、概念Aの重みと概念Bの重みのいずれか小さいほうの値を返す。
パス重み算出部114は、ある概念(A)から他の概念(B)への関連度を計算する際に、それら両概念が隣接している場合には、上記の式(A1),(A2),(A3)のいずれかで得られる値をそのまま、その重みとする。
また、ある概念(A)から、直接つながっていない(隣接していない)他の概念(B)への重みを計算する際には、パス重み算出部114は、次の計算を行う。即ち、それら両概念間をつなぐパスに含まれる各リンクについての重み(式(A1),(A2),(A3)のいずれか)の、調和平均(B1)または相乗平均(B2)を算出する。
例えば、距離が2の概念間の重みは、下の式(B1),(B2)のいずれかによって計算される。
式(B1): (概念AからBへの重み)=(2×概念AからCへの重み×概念CからBへの重み)/(概念AからCへの重み+概念CからBへの重み)
式(B2): (概念AからBへの重み)=SQRT(概念AからCへの重み×概念CからBへの重み)
なお、パス重み算出部114は、上の式(B1),(B2)のいずれかを用いるが、これらいずれかのうち選択された式を一貫して用いる。つまり、概念間の関連度を算出するときに、途中でこの重みの計算式(調和平均か相乗平均のいずれか)を変更することはない。
ここで、概念AからCへは直接のリンクでつながっており、概念CからBへは直接のリンクでつながっている。つまり、概念AとBとの間の距離は2であり、概念Cを間に介している。
また、上の式(B2)におけるSQRT()は、引数の平方根を返す関数である。
概念Aから概念Bの距離が2より大きい場合にも、パス重み算出部114は、上記の式(B1)または(B2)をそれぞれ拡張して、調和平均または相乗平均により、パスの重みを算出する。
関連度算出部116は、次の(C1)または(C2)のいずれかの方法により、概念AからBへの関連度を求める。
(C1)パス重み算出部114が算出した概念AからBへのパスの重みを、そのまま概念AからBへの関連度として出力する(関連度記憶部30に書き込む)。なお、概念AからBへのパスが複数存在するときには、次のいずれかの方法により、代表のパスを選択する。
(C1−1)最も短いパスを採用する。
(C1−2)重み(パスの重み)が最も大きいパスを採用する。
(C2)概念AからBへのパスの重みのうちの最大の重み(パスの重み)と、概念AからBへのパスの数とを乗算し、その結果を概念AからBへの関連度として出力する(関連度記憶部30に書き込む)。なお、この(C2)の方法を採る場合には、第1実施形態におけるフローチャートで説明した処理手順(概念マップを探索するための手順)を利用することもできる。
なお、関連度算出部116は、上の(C1),(C2)のいずれかの方法を用いる((C1)の場合にはさらに(C1−1),(C1−2)のいずれかの方法を用いる)が、これらのうち選択された方法を一貫して用いる。つまり、概念間の関連度を算出するときに、途中でこの関連度の求め方を変更することはない。
第2実施形態の概念処理装置2によれば、外部から取得する概念間の類似度のデータを使って、また、概念の重みやパスの重みなど(あるいはその両方)に応じて、概念間の関連度を算出することができる。既に類似度のデータが外部から提供されている場合には、そのデータを良好に反映した関連度を得ることができる。
[第3実施形態]
次に、本発明の第3実施形態について説明する。なお、前述の実施形態と共通する事項については説明を省略する場合があり、本実施形態特有の事項を中心に説明する。
本実施形態による概念処理装置の機能構成を示すブロック図は、図1として示したブロック図と同様である。
第1実施形態の概念処理装置は、概念間のパスの重みの最大値(複数あるパスのうちの、重みが最大であるパスの重み)と、当該概念間のパスの数とを乗算することによって当該概念間の関連度を算出した。これに対して、本実施形態では、概念Aから概念Bに至るパスが複数存在する場合、それら各々のパスの重みの総和に基づいて関連度を求める。
具体的には、次の通りである。
本実施形態の、概念重み算出部12は、第1実施形態と同様の方法により、各概念の重みを計算する。
次に、パス重み算出部14は、概念Aと概念Bとの間のすべてのパスについて、それぞれパスの重みを計算する。ある一つのパスの重み自体は、第1実施形態と同様に、そのパスに含まれるすべての概念(両端の概念を含む)の重みの調和平均である。なお、ここで計算対象としている概念Aと概念Bとの間のパスは、途中で同じ概念を2度以上通らないようなパスである。つまり、パスの一部に閉路を含んだり、パスの途中での後戻りを含んだりしない。
なお、概念マップのサイズが有限である(概念マップに含まれる概念の数が有限である)とき、概念Aと概念Bとの間のパスの数は有限である。
また、ここで計算対象とする概念Aと概念Bとの間のパスに関して、その長さに制約を設けるようにしても良い。つまりこのとき、パラメーター設定部18によって設定されるパラメーターMAX_Distanceの値のリンク数で辿り着かないようなパスについては、計算から除外する。
そして、関連度算出部16は、概念Aと概念Bとの間の各パスの重みの総和を求め、その総和を概念Aから概念Bへの関連度として出力する。具体的には、関連度算出部16は、算出された関連度を関連度記憶部30に書き込む。
この第3の実施形態によれば、重みが最大であるパスによって概念Aと概念Bとの間のパスを代表させるのではなく、各パスが持つ重みを反映した関連度を求めることができる。なお、概念マップのサイズが大きい場合、長い距離を探索する処理のためには多くの計算量を要する場合もある。必要に応じて並列処理を導入することにより、より短い時間で多くの計算量を処理することもできる。
なお、上述した各実施形態における概念処理装置の機能の一部または全部をコンピューターとプログラムとで実現するようにしても良い。その場合、各機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
以上、この発明の複数の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
現実の概念マップ(図面に例示した簡略版のマップとは別のもの)を用いて、第1実施形態に記載した方法により、概念「病気」と他の概念との間の関連度を計算した。その結果、関連度の値における上位10位までの概念は、次の通りである。なお、ここでは、小数点第5位までの数値を求めている。
1位 関連度:0.00358 概念:体
2位 関連度:0.00325 概念:炎症
3位 関連度:0.00314 概念:薬
4位 関連度:0.00309 概念:風邪
5位 関連度:0.00307 概念:身体
6位 関連度:0.00300 概念:感染症
7位 関連度:0.00296 概念:ガン
8位 関連度:0.00278 概念:感染
9位 関連度:0.00267 概念:アレルギー
10位 関連度:0.00258 概念:癌
本発明は、概念と概念との間の関連度を利用した各種情報処理に利用可能である。一例としては、情報検索や、テレビ番組等のコンテンツを利用者に推薦するための番組推薦などといった分野に、本発明を利用可能である。
1,2 概念処理装置
12,112 概念重み算出部
14,114 パス重み算出部
16,116 関連度算出部
18 パラメーター設定部
20 概念マップ記憶部
22 作業記憶部
30 関連度記憶部
140 類似度取得部

Claims (6)

  1. 概念間の関係の有無を表す概念マップデータを読み込み、ある概念と他の概念との間の関係を表すリンクの数が少ないほど当該概念について大きな値となるような前記概念の重みの値を算出する概念重み算出部と、
    前記概念マップデータにおいて、ある概念と他の概念との間を前記リンクで連結させてなるパスについて、当該パス上に含まれる概念についての前記概念の重みの値に応じた当該パスの重みの値を算出するパス重み算出部と、
    ある概念と他の概念との間を結ぶパスについての前記パスの重みの値に応じた、当該概念と当該他の概念との間の関連度を算出する関連度算出部と、
    を具備することを特徴とする概念処理装置。
  2. 前記パス重み算出部は、前記パス上に含まれる各々の概念についての前記概念の重みの値の調和平均または相乗平均を取ることによって当該パスの重みの値を算出する、
    ことを特徴とする請求項1に記載の概念処理装置。
  3. 前記概念重み算出部は、前記概念から前記他の概念との間の前記リンクの数の逆数の対数を計算することにより前記概念の重みの値を算出する、
    ことを特徴とする請求項1または2のいずれかに記載の概念処理装置。
  4. 前記関連度算出部は、前記ある概念と前記他の概念との間を前記リンクで連結させてなるパスが複数存在する場合に、それら複数のパスの数に、それら複数のパスの重みの値のうちの最大の前記パスの重みの値を乗じることによって、当該概念と当該他の概念との間の関連度を算出するか、またはそれら複数のパスの重みの総和を関連度として算出する、
    ことを特徴とする請求項1から3までのいずれか一項に記載の概念処理装置。
  5. 概念間の類似度を表す類似度データを取得する類似度取得部を具備し、
    前記パス重み算出部は、前記パスについて、当該パス上に含まれるリンクが結ぶ概念の対に関する類似度を前記類似度データから取得し、取得した前記類似度にも応じて前記パスの重みの値を算出する、
    ことを特徴とする請求項1から4までのいずれか一項に記載の概念処理装置。
  6. コンピューターを、請求項1から5までのいずれか一項に記載の概念処理装置として機能させるためのプログラム。
JP2015092331A 2015-04-28 2015-04-28 概念処理装置およびプログラム Expired - Fee Related JP6501398B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015092331A JP6501398B2 (ja) 2015-04-28 2015-04-28 概念処理装置およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015092331A JP6501398B2 (ja) 2015-04-28 2015-04-28 概念処理装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2016212461A JP2016212461A (ja) 2016-12-15
JP6501398B2 true JP6501398B2 (ja) 2019-04-17

Family

ID=57551794

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015092331A Expired - Fee Related JP6501398B2 (ja) 2015-04-28 2015-04-28 概念処理装置およびプログラム

Country Status (1)

Country Link
JP (1) JP6501398B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018159237A1 (ja) * 2017-02-28 2018-09-07 国立研究開発法人物質・材料研究機構 探索方法、探索装置および探索システム
CN111241380B (zh) * 2018-11-28 2023-10-03 富士通株式会社 用于生成推荐的方法和设备
CN115840849A (zh) * 2022-10-17 2023-03-24 北京达佳互联信息技术有限公司 知识点信息的推荐方法、装置、电子设备和存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006215936A (ja) * 2005-02-07 2006-08-17 Hitachi Ltd 検索システム及び検索方法
JP5131923B2 (ja) * 2008-11-11 2013-01-30 日本電信電話株式会社 単語間関連度判定装置、単語間関連度判定方法、プログラムおよび記録媒体
JP2013242626A (ja) * 2012-05-18 2013-12-05 Sony Corp 情報処理装置、情報処理方法、及びプログラム

Also Published As

Publication number Publication date
JP2016212461A (ja) 2016-12-15

Similar Documents

Publication Publication Date Title
US10310812B2 (en) Matrix ordering for cache efficiency in performing large sparse matrix operations
Goasdoué et al. RDF graph summarization for first-sight structure discovery: F. Goasdoué et al.
CN104412265B (zh) 更新用于促进应用搜索的搜索索引
CN110990579B (zh) 跨语言的医学知识图谱构建方法、装置与电子设备
JP5995409B2 (ja) コンピュータ解析のためにテキスト文書を表現するためのグラフィカル・モデル
CN110909015B (zh) 微服务的拆分方法、装置、设备及存储介质
CN110597969A (zh) 一种农业知识智能问答方法、系统以及电子设备
CN108604318A (zh) 用于动态自主事务性身份管理的系统和方法
US8521724B2 (en) Processing search queries using a data structure
US9710470B2 (en) Social recommendation across heterogeneous networks
US20180144424A1 (en) Method and system for content processing to query multiple healthcare-related knowledge graphs
CN120296139B (zh) 一种自然语言语句转换sql的方法、装置及存储介质
JP6501398B2 (ja) 概念処理装置およびプログラム
CN113033205A (zh) 实体链接的方法、装置、设备以及存储介质
US9092547B2 (en) Transforming a graph to a tree in accordance with analyst guidance
CN116842124A (zh) 一种基于知识图谱的企业查询方法与系统
Techentin et al. Implementing Iterative Algorithms with SPARQL.
CN115344714A (zh) 一种基于语义组件的学术知识问答方法、系统、设备及存储介质
CN106294688A (zh) 一种基于用户特征分析的查询扩展方法、装置和系统
US8965910B2 (en) Apparatus and method of searching for instance path based on ontology schema
US20170039036A1 (en) Correlation based instruments discovery
JP6005583B2 (ja) 検索装置、検索方法および検索プログラム
CN109582953B (zh) 一种资讯的言据支撑评分方法、设备和存储介质
CN116383412B (zh) 基于知识图谱的功能点扩增方法和系统
Xu et al. An upper-ontology-based approach for automatic construction of IOT ontology

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180226

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20181026

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190207

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: 20190219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190318

R150 Certificate of patent or registration of utility model

Ref document number: 6501398

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees