以下に、図面を参照して、本発明にかかる生成方法、生成プログラム、および生成装置の実施の形態を詳細に説明する。
(実施の形態にかかる生成方法の一実施例)
図1は、実施の形態にかかる生成方法の一実施例を示す説明図である。情報処理装置100は、化学分野に関するナレッジグラフを生成しやすくするコンピュータである。
ナレッジグラフは、化合物に関する種々の情報を示すノードを含む。ナレッジグラフは、例えば、化合物名を示すノード、化合物の分子式や分子量を示すノード、または、化合物の機能や用途を示すノードなどを含む。化合物は、2種類以上の元素からなる化学物質である。化合物は、例えば、有機化合物と無機化合物とである。
ここで、ナレッジグラフは、例えば、情報検索、情報解析、または、読解支援などに利用される。例えば、人が、化学分野の特許文献や技術論文などの技術文書を読解する際に、ナレッジグラフを利用し、技術文書に記載された化合物名から、化合物の分子式や分子量、または、化合物の機能や用途などを検索可能にすることが考えられる。
技術文書には、構造が一意に特定可能な粒度で表現された具体的な化合物名ではなく、構造が一意に特定されない粒度で表現された抽象的な化合物名が記載されていることがある。具体的な化合物名は、例えば、置換基の結合位置が明示された化合物名である。一方で、抽象的な化合物名は、例えば、置換基の結合位置が特定されない粒度で表現された化合物名である。抽象的な化合物名は、例えば、置換基の結合位置を示す文字列が省略された化合物名である。
例えば、化合物名「1-エトキシ-2-プロパノール」、および、化合物名「2-エトキシ-2-プロパノール」などが、エトキシ基とヒドロキシ基との結合位置が明示された具体的な化合物名である。一方で、化合物名「1-エトキシプロパノール」、および、化合物名「2-エトキシプロパノール」などが、ヒドロキシ基の結合位置が特定されない粒度で表現された抽象的な化合物名である。
したがって、ナレッジグラフが、具体的な化合物名を示すノードの他、抽象的な化合物名を示すノードを含むようにすることが、ナレッジグラフを、情報検索、情報解析、または、読解支援などに利用する観点から好ましいと考えられる。しかしながら、抽象的な化合物名を示すノードを含むナレッジグラフを生成することは難しい。
例えば、ナレッジグラフを生成する方法として、既存の辞書を参照し、既存の辞書に登録された化合物に関する種々の情報を示すノードを含むナレッジグラフを生成する第1の方法が考えられる。既存の辞書は、例えば、ChEBI(Chemical Entities of Biological Interest)、および、日本化学物質辞書などである。
ところが、既存の辞書に、抽象的な化合物名が登録されているとは限らない。例えば、既存の辞書には、置換基の結合位置が明示された具体的な化合物名「1-エトキシ-2-プロパノール」、および、具体的な化合物名「1-エトキシ-2-プロパノール」の上位概念「hydroxy ether」などは登録されていることがある。一方で、既存の辞書には、置換基の結合位置が特定されない粒度で表現された、抽象的な化合物名「1-エトキシプロパノール」などは登録されていない。
このため、第1の方法では、抽象的な化合物名を示すノードを含むナレッジグラフを生成することは難しい。第1の方法では、例えば、抽象的な化合物名「1-エトキシプロパノール」などを示すノードを含むナレッジグラフを生成することができない。
これに対し、ナレッジグラフを生成する方法として、既存の辞書に登録された化合物名に基づいて、抽象的な化合物名を特定して抽象的な化合物名を示すノードを生成し、抽象的な化合物名を示すノードを含むナレッジグラフを生成する第2の方法も考えられる。例えば、具体的な化合物名「1-エトキシ-2-プロパノール」から、ヒドロキシ基の結合位置を示す文字列「-2-」を除去し、抽象的な化合物名「1-エトキシプロパノール」を特定することが考えられる。
第2の方法では、抽象的な化合物名を示すノードを生成しても、抽象的な化合物名同士の関係性、および、抽象的な化合物名と具体的な化合物名との関係性を、ナレッジグラフに適切に反映することができない場合がある。例えば、抽象的な化合物名同士の関係性、および、抽象的な化合物名と具体的な化合物名との関係性が明確になるように、ナレッジグラフ内のノード同士を適切にリンク付けすることができない。
具体的には、表記が異なる2つの抽象的な化合物名が、実質的に同じ構造を示す場合があり、それぞれの抽象的な化合物名を示すノードをリンク付けすることが好ましい状況でも、それぞれの抽象的な化合物名を示すノードがリンク付けされない場合がある。表記が異なるが、実質的に同じ構造を示す、抽象的な化合物名の組み合わせとしては、例えば、化合物名「1-エトキシプロパノール」と、化合物名「3-エトキシプロパノール」との組み合わせがある。
また、現実に存在する化合物の数は、1億4千万を超えるが、既存の辞書に登録された化合物の数は、数万程度である。このため、既存の辞書を参照して、人手で、抽象的な化合物名を示すノードを含むナレッジグラフを生成し、ナレッジグラフを生成することも難しい。
そこで、本実施の形態では、抽象的な化合物名に対応する構造情報を参照することにより、抽象的な化合物名を示すノードを生成し、抽象的な化合物名を示すノード同士を適切にリンク付けすることができる生成方法について説明する。
以下の説明では、構造が一意に特定可能な粒度で表現された具体的な化合物名を、単に「化合物名」と表記する場合がある。そして、抽象的な化合物名を、「抽象名」と表記する場合がある。構造情報は、例えば、示性式である。
図1において、情報処理装置100は、第1のノードが示す第1の化合物名を取得する。図1の例では、ノード101が、第1のノードに対応する。情報処理装置100は、例えば、ノード101が示す化合物名「1-エトキシ-2-プロパノール」を取得する。
ここで、化合物名「1-エトキシ-2-プロパノール」のうち、文字列「1-」は、エトキシ基が、プロパノールの1番目の「C」に繋がることを示す。化合物名「1-エトキシ-2-プロパノール」のうち、文字列「-2-」は、ヒドロキシ基が、プロパンの2番目の「C」に繋がり、プロパノールを形成することを示す。
情報処理装置100は、第1のノードが示す第1の化合物名から置換基の結合位置を示す文字列を除去した第1の抽象名を特定する。情報処理装置100は、例えば、ノード101が示す化合物名「1-エトキシ-2-プロパノール」から、ヒドロキシ基の結合位置を示す文字列「-2-」を除去した抽象名「1-エトキシプロパノール」を特定する。
情報処理装置100は、第2のノードが示す第2の化合物名を取得する。図1の例では、ノード102が、第2のノードに対応する。情報処理装置100は、例えば、ノード102が示す化合物名「3-エトキシ-1-プロパノール」を取得する。
情報処理装置100は、第2のノードが示す第2の化合物名から置換基の結合位置を示す文字列を除去した第2の抽象名を特定する。情報処理装置100は、例えば、ノード102が示す化合物名「3-エトキシ-1-プロパノール」から、ヒドロキシ基の結合位置を示す文字列「-1-」を除去した抽象名「3-エトキシプロパノール」を特定する。
情報処理装置100は、特定した第1の抽象名を示す第3のノードを生成する。情報処理装置100は、例えば、抽象名「1-エトキシプロパノール」を示すノード103を生成する。
情報処理装置100は、特定した第2の抽象名を示す第4のノードを生成する。情報処理装置100は、例えば、抽象名「3-エトキシプロパノール」を示すノード104を生成する。
情報処理装置100は、第1の抽象名に対応する第1の示性式と、第2の抽象名に対応する第2の示性式とに基づいて、第1の抽象名と、第2の抽象名との間に、同義関係が成立するか否かを判定する。情報処理装置100は、例えば、2つの示性式が一致する場合に、同義関係が成立すると判定する。また、情報処理装置100は、例えば、2つの示性式の一方の示性式と、他方の示性式を原子団単位で並べ替えた示性式とが一致する場合に、同義関係が成立すると判定する。原子団は、1以上の原子の集合である。
情報処理装置100は、具体的には、抽象名「1-エトキシプロパノール」を示す示性式「C3H6OH-O-C2H5」と、抽象名「3-エトキシプロパノール」を示す示性式「C2H5-O-C3H6OH」とを特定する。そして、情報処理装置100は、示性式「C3H6OH-O-C2H5」と、示性式「C2H5-O-C3H6OH」とに基づいて、抽象名「1-エトキシプロパノール」と、抽象名「3-エトキシプロパノール」との間に、同義関係が成立するか否かを判定する。
図1の例では、示性式「C3H6OH-O-C2H5」と、示性式「C2H5-O-C3H6OH」を原子団単位で逆順に並べ替えた示性式「C3H6OH-O-C2H5」とが一致する。このため、情報処理装置100は、抽象名「1-エトキシプロパノール」と、抽象名「3-エトキシプロパノール」との間に、同義関係が成立すると判定する。
情報処理装置100は、同義関係が成立すると判定した場合には、生成した第3のノードと、生成した第4のノードとをリンク付けする。情報処理装置100は、例えば、同義関係が成立すると判定したため、生成したノード103と、生成したノード104とをリンク付けする。情報処理装置100は、具体的には、生成したノード103と、生成したノード104とを、同義関係を示すエッジを用いてリンク付けする。
これにより、情報処理装置100は、抽象名を示すノードをリンク付けすることができる。このため、情報処理装置100は、抽象名を示すノードを含むナレッジグラフを生成可能にすることができる。また、情報処理装置100は、生成されるナレッジグラフに、抽象名同士の関係性を反映することができる。
結果として、情報処理装置100は、情報検索、情報解析、または、読解支援などのサービスに利用する観点から好ましいと判断されるナレッジグラフを生成可能にすることができる。そして、情報処理装置100は、ナレッジグラフを利用し、情報検索、情報解析、または、読解支援などを効果的に実施可能にすることができる。情報処理装置100は、例えば、人が、化学分野の特許文献や技術論文などの技術文書を読解する際に、技術文書に記載された抽象名から、化合物の分子式や分子量、または、化合物の機能や用途などを検索可能にすることができる。
ここでは、構造情報が、示性式である場合について説明したが、これに限らない。例えば、構造情報が、構造を表す表記法、例えば、SMILES、InChIなどに基づく情報である場合があってもよい。
(サービス提供システム200の一例)
次に、図2を用いて、図1に示した情報処理装置100を適用し、ナレッジグラフを利用して、情報検索、情報解析、または、読解支援などのサービスを提供するサービス提供システム200の一例について説明する。
図2は、サービス提供システム200の一例を示す説明図である。図2において、サービス提供システム200は、情報処理装置100と、1以上のクライアント装置201とを含む。
サービス提供システム200において、情報処理装置100とクライアント装置201とは、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
情報処理装置100は、ナレッジグラフを生成し、図4に後述するグラフ情報テーブル400を用いて記憶するコンピュータである。グラフ情報テーブル400は、例えば、RDF(Resource Description Framework)の形式で、ナレッジグラフを記憶する。情報処理装置100は、例えば、図5に後述する辞書情報を参照し、化合物名を示すノードを生成する。また、情報処理装置100は、例えば、化合物名から抽象名を特定し、抽象名を示すノードを生成する。
情報処理装置100は、生成した化合物名を示すノード、および、抽象名を示すノードについて、ノード間をリンク付けすることにより、ナレッジグラフを生成する。そして、情報処理装置100は、ナレッジグラフを利用し、情報検索、情報解析、または、読解支援などのサービスを、クライアント装置201を介して、サービス利用者に提供する。情報処理装置100は、例えば、サーバやPC(Personal Computer)などである。
クライアント装置201は、サービス利用者が用いるコンピュータである。クライアント装置201は、例えば、サービス利用者の操作入力に基づいて、情報処理装置100と通信し、化合物に関する情報を表示する。クライアント装置201は、例えば、PC、タブレット端末、または、スマートフォンなどである。
具体的には、サービス利用者が、複数の技術文書の中から、所定の抽象名が記載された技術文書を検索しようとする場合が考えられる。この場合、情報処理装置100は、所定の抽象名の他に、所定の抽象名と同義関係が成立する他の抽象名が記載された技術文書も検索して、クライアント装置201を介して、サービス利用者に提供することができる。
具体的には、サービス利用者が、技術文書に記載された所定の抽象名に関する情報を検索しようとする場合が考えられる。この場合、情報処理装置100は、所定の抽象名に関する情報の他に、所定の抽象名と同義関係が成立する他の抽象名に関する情報も、クライアント装置201を介して、サービス利用者に提供することができる。抽象名に関する情報は、抽象名が包含する化合物名、抽象名が包含する化合物名に対応する化合物の分子式や分子量、または、化合物の機能や用途などである。
具体的には、情報処理装置が、自動で、技術文書に記載された所定の抽象名に関する情報を解析し、所定の抽象名に対応付けて記憶する場合が考えられる。この場合、情報処理装置100は、所定の抽象名に関する情報として、所定の抽象名と同義関係が成立する他の抽象名に関する情報も解析することができる。このため、情報処理装置100は、所定の抽象名に関する情報として、抽象名が包含する化合物名、抽象名が包含する化合物名に対応する化合物の分子式や分子量、または、化合物の機能や用途などを、精度よく特定して記憶しておくことができる。
ここでは、情報処理装置100が、クライアント装置201とは別の装置である場合について説明したが、これに限らない。例えば、情報処理装置100が、クライアント装置201と一体である場合があってもよい。
ここでは、情報処理装置100が、ナレッジグラフを生成し、サービスを提供する場合について説明したが、これに限らない。例えば、情報処理装置100が、ナレッジグラフを生成し、情報処理装置100とは異なる装置が、ナレッジグラフを取得して、サービスを提供する場合があってもよい。
(情報処理装置100のハードウェア構成例)
次に、図3を用いて、情報処理装置100のハードウェア構成例について説明する。
図3は、情報処理装置100のハードウェア構成例を示すブロック図である。図3において、情報処理装置100は、CPU(Central Processing Unit)301と、メモリ302と、ネットワークI/F(Interface)303と、記録媒体I/F304と、記録媒体305とを有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、情報処理装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
ネットワークI/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F303は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F303は、例えば、モデムやLANアダプタなどである。
記録媒体I/F304は、CPU301の制御に従って記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体305は、情報処理装置100から着脱可能であってもよい。
情報処理装置100は、上述した構成部の他、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を複数有していてもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を有していなくてもよい。
(グラフ情報テーブル400のデータ構造)
次に、図4を用いて、グラフ情報テーブル400のデータ構造の一例について説明する。グラフ情報テーブル400は、例えば、図3に示した情報処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。
図4は、グラフ情報テーブル400のデータ構造の一例を示す説明図である。図4に示すように、グラフ情報テーブル400は、主語と、述語と、目的語とのフィールドを有する。グラフ情報テーブル400は、各フィールドに情報が設定されることにより、グラフ情報をレコードとして記憶する。
主語のフィールドには、ナレッジグラフに含まれるノードを識別するラベルが設定される。ラベルは、化学分野に関する単語である。ラベルは、例えば、具体的な化合物名、または、抽象名に付与されたURI(Uniform Resource Identifier)である。ラベルは、例えば、化合物の分子式や分子量、または、化合物の機能や用途などであってもよい。目的語のフィールドには、ナレッジグラフに含まれるノードを識別するラベルが設定される。
述語のフィールドには、ノード間の関係性を示す述語が設定される。述語は、主語のフィールドに設定されたラベルと、目的語のフィールドに設定されたラベルとの関係性を示す。述語は、例えば、「is-a」や「same-as」などである。「is-a」は、主語のフィールドのラベルが、目的語のフィールドのラベルの下位に包含されることを示す。「same-as」は、ラベル間に同義関係が成立することを示す。
(辞書テーブル500のデータ構造)
次に、図5を用いて、辞書テーブル500のデータ構造の一例について説明する。辞書テーブル500は、例えば、図3に示した情報処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。
図5は、辞書テーブル500のデータ構造の一例を示す説明図である。図5に示すように、辞書テーブル500は、化合物名と、URIとのフィールドを有する。辞書テーブル500は、各フィールドに情報が設定されることにより、辞書情報をレコードとして記憶する。
化合物名のフィールドには、化合物名が設定される。URIのフィールドには、化合物名に予め付与されたURIが設定される。情報処理装置100は、辞書テーブル500ではなく、既存のナレッジグラフを記憶してもよい。
(クライアント装置201のハードウェア構成例)
次に、図6を用いて、図2に示したサービス提供システム200に含まれるクライアント装置201のハードウェア構成例について説明する。
図6は、クライアント装置201のハードウェア構成例を示すブロック図である。図6において、クライアント装置201は、CPU601と、メモリ602と、ネットワークI/F603と、記録媒体I/F604と、記録媒体605と、ディスプレイ606と、入力装置607とを有する。また、各構成部は、バス600によってそれぞれ接続される。
ここで、CPU601は、クライアント装置201の全体の制御を司る。メモリ602は、例えば、ROM、RAMおよびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU601のワークエリアとして使用される。メモリ602に記憶されるプログラムは、CPU601にロードされることで、コーディングされている処理をCPU601に実行させる。
ネットワークI/F603は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F603は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F603は、例えば、モデムやLANアダプタなどである。
記録媒体I/F604は、CPU601の制御に従って記録媒体605に対するデータのリード/ライトを制御する。記録媒体I/F604は、例えば、ディスクドライブ、SSD、USBポートなどである。記録媒体605は、記録媒体I/F604の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体605は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体605は、クライアント装置201から着脱可能であってもよい。
ディスプレイ606は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ606は、例えば、CRT(Cathode Ray Tube)、液晶ディスプレイ、有機EL(Electroluminescence)ディスプレイなどである。入力装置607は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置607は、キーボードやマウスなどであってもよく、また、タッチパネル式の入力パッドやテンキーなどであってもよい。
クライアント装置201は、上述した構成部の他、例えば、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、クライアント装置201は、記録媒体I/F604や記録媒体605を複数有していてもよい。また、クライアント装置201は、記録媒体I/F604や記録媒体605を有していなくてもよい。
(情報処理装置100の機能的構成例)
次に、図7を用いて、情報処理装置100の機能的構成例について説明する。
図7は、情報処理装置100の機能的構成例を示すブロック図である。情報処理装置100は、記憶部700と、取得部701と、第1特定部702と、第1生成部703と、第2特定部704と、第2生成部705と、判定部706と、接続部707と、出力部708とを含む。
記憶部700は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。以下では、記憶部700が、情報処理装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部700が、情報処理装置100とは異なる装置に含まれ、記憶部700の記憶内容が情報処理装置100から参照可能である場合があってもよい。
取得部701~出力部708は、制御部の一例として機能する。取得部701~出力部708は、具体的には、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、ネットワークI/F303により、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
記憶部700は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部700は、例えば、ナレッジグラフを記憶可能である。記憶部700は、具体的には、図4に示したグラフ情報テーブル400を用いて、ナレッジグラフを記憶する。記憶部700は、より具体的には、図4に示したグラフ情報テーブル400を用いて、ナレッジグラフに含まれるノードに付与されたラベルと、ラベル間の関係性とを記憶する。
また、記憶部700は、例えば、化合物名を示す辞書を記憶してもよい。記憶部700は、具体的には、図5に示した辞書テーブル500を記憶する。また、記憶部700は、例えば、文章集合を記憶してもよい。文章集合は、例えば、コーパスである。
取得部701は、各機能部の処理に用いられる各種情報を取得する。取得部701は、取得した各種情報を、記憶部700に記憶し、または、各機能部に出力する。また、取得部701は、記憶部700に記憶しておいた各種情報を、各機能部に出力してもよい。取得部701は、例えば、利用者の操作入力に基づき、各種情報を取得する。取得部701は、例えば、情報処理装置100とは異なる装置から、各種情報を受信してもよい。
取得部701は、具体的には、辞書および文章集合を取得する。取得部701は、より具体的には、辞書テーブル500と、コーパスとを取得する。これにより、取得部701は、化合物名を示すノードを自動生成するための指標となる情報を取得し、各機能部に提供することができる。取得部701は、例えば、第1生成部703で化合物名を示すノードを生成可能に、第1特定部702および第1生成部703に辞書および文章集合を提供することができる。また、取得部701は、例えば、第2生成部705で抽象名を示すノードを生成可能に、第2特定部704および第2生成部705に文章集合を提供することができる。
また、取得部701は、具体的には、第1生成部703で化合物名を示すノードを生成しない場合には、既存のナレッジグラフから、化合物名を示すノードを取得してもよい。これにより、取得部701は、第1特定部702および第1生成部703で化合物名を示すノードを生成しなくても、第2特定部704で抽象名を特定可能に、第2特定部704に化合物名を示すノードを提供することができる。
第1特定部702は、文章集合から、化合物名としての条件を満たす複数の文字列を抽出する。第1特定部702は、例えば、コーパスから、カタカナ、アルファベット、数字、記号、および、一部の漢字などの特定の文字が連続する文字列を、化合物名の候補として抽出する。第1特定部702は、具体的には、文字列「1-エトキシ-2-プロパノール」などを、化合物名の候補として抽出する。化合物名の候補として抽出する一例については、図8を用いて後述する。これにより、第1特定部702は、化合物名の候補を抽出し、化合物名を示すノードを生成する指標を取得することができる。
第1生成部703は、化合物名を記憶する辞書情報を参照して、抽出した複数の文字列のうち、化合物名であると判定した文字列を示すノードを生成する。第1生成部703は、例えば、抽出した化合物名の候補のうち、辞書テーブル500に登録された化合物名と一致する候補を化合物名と判定し、辞書テーブル500に登録されたURIを付与する。そして、第1生成部703は、化合物名に付与したURIを、グラフ情報テーブル400を用いて記憶し、化合物名を示すノードを生成する。
第1生成部703は、具体的には、化合物名の候補「1-エトキシ-2-プロパノール」を化合物名と判定し、URI「lc:CID15287」を付与する。化合物名の候補にURIを付与する一例については、図9を用いて後述する。これにより、第1生成部703は、ナレッジグラフに含める化合物名を示すノードを生成することができる。また、第1生成部703は、例えば、コーパスに基づき化合物名を示すノードを生成するため、化合物名を示すノードの数の膨大化を抑制することができる。第1生成部703は、具体的には、サービス利用者が技術文書を閲覧する際に技術文書に出現しやすいと判断される化合物名を示すノードであり、サービスに利用する観点からナレッジグラフに含むことが好ましい化合物名を示すノードを生成することができる。
第2特定部704は、ノードが示す化合物名から置換基の結合位置を示す文字列を除去した抽象名を特定する。第2特定部704は、例えば、第1生成部703が生成したノードの中から、第1のノードと第2のノードとを選択する。次に、第2特定部704は、選択した第1のノードが示す第1の化合物名から置換基の結合位置を示す文字列を除去した第1の抽象名を特定する。また、第2特定部704は、選択した第2のノードが示す第2の化合物名から置換基の結合位置を示す文字列を除去した第2の抽象名を特定する。
第2特定部704は、具体的には、化合物名「1-エトキシ-2-プロパノール」から、ヒドロキシ基の結合位置を示す文字列「-2-」を除去した抽象名「1-エトキシプロパノール」を特定する。また、第2特定部704は、化合物名「3-エトキシ-1-プロパノール」から、ヒドロキシ基の結合位置を示す文字列「-1-」を除去した抽象名「3-エトキシプロパノール」を特定する。抽象名を特定する一例については、図10および図11を用いて後述する。これにより、第2特定部704は、抽象名を示すノードを生成可能に、抽象名を特定することができる。
ここでは、第2特定部704が、第1生成部703が生成したノードの中から、第1のノードと第2のノードとを選択する場合について説明したが、これに限らない。例えば、第2特定部704が、取得部701が取得したノードの中から、第1のノードと第2のノードとを選択する場合があってもよい。
第2生成部705は、特定した抽象名を示すノードを生成する。第2生成部705は、例えば、特定した第1の抽象名を示す第3のノードを生成する。また、第2生成部705は、特定した第2の抽象名を示す第4のノードを生成する。第2生成部705は、具体的には、抽象名「1-エトキシプロパノール」にURI「lc:NEW001」を付与し、グラフ情報テーブル400を用いて記憶し、抽象名「1-エトキシプロパノール」を示すノードを生成する。これにより、第2生成部705は、ナレッジグラフに含める抽象名を示すノードを生成することができる。
第2生成部705は、生成したノードが示す化合物名のうち、置換基の結合位置を示す文字列を除去すると、特定した抽象名と同じ抽象名になる化合物名が、所定の数以上存在するか否かを判定してもよい。所定の数は、例えば、2である。第2生成部705は、所定の数以上存在する場合に、特定した抽象名を示すノードを生成する。一方で、第2生成部705は、所定の数以上存在しない場合には、特定した抽象名を示すノードを生成しなくてよい。
第2生成部705は、例えば、生成したノードが示す化合物名のうち、置換基の結合位置を示す文字列を除去すると、第1の抽象名と同じ抽象名になる化合物名が、所定の数以上存在する場合に、第3のノードを生成する。また、第2生成部705は、生成したノードが示す化合物名のうち、置換基の結合位置を示す文字列を除去すると、第2の抽象名と同じ抽象名になる化合物名が、所定の数以上存在する場合に、第4のノードを生成する。これにより、第2生成部705は、抽象名を示すノードの数の膨大化を抑制することができる。
ここで、例えば、抽象名の下位に包含される化合物名が1つである場合、第2生成部705が、抽象名を示すノードを生成しても、サービスに活用されにくいことが考えられる。このため、第2生成部705は、サービスに活用されにくい抽象名を示すノードを生成せず、ナレッジグラフのサイズの増大化を抑制し、サービスを効率よく提供可能にすることができる。
第2生成部705は、生成したノードが示す化合物名のうち、置換基の結合位置を示す文字列を除去すると、特定した抽象名との間で、対応する構造情報に同義関係が成立する抽象名になる化合物名が、所定の数以上存在するか否かを判定してもよい。構造情報は、例えば、示性式である。構造情報は、構造を表す表記法、例えば、SMILES、InChIなどに基づく情報であってもよい。所定の数は、例えば、2である。第2生成部705は、所定の数以上存在する場合に、特定した抽象名を示すノードを生成する。一方で、第2生成部705は、所定の数以上存在しない場合には、特定した抽象名を示すノードを生成しなくてよい。
第2生成部705は、例えば、生成したノードが示す化合物名のうち、置換基の結合位置を示す文字列を除去すると、特定した抽象名との間で示性式に同義関係が成立する抽象名になる化合物名が、所定の数以上存在するか否かを判定してもよい。第2生成部705は、所定の数以上存在する場合に、特定した抽象名を示すノードを生成する。一方で、第2生成部705は、所定の数以上存在しない場合には、特定した抽象名を示すノードを生成しなくてよい。
第2生成部705は、具体的には、生成したノードが示す化合物名のうち、置換基の結合位置を示す文字列を除去すると、第1の示性式と同義関係が成立する示性式に対応する抽象名になる化合物名が、所定の数以上存在する場合に、第3のノードを生成する。また、第2生成部705は、生成したノードが示す化合物名のうち、置換基の結合位置を示す文字列を除去すると、第2の示性式と同義関係が成立する示性式に対応する抽象名になる化合物名が、所定の数以上存在する場合に、第4のノードを生成する。これにより、第2生成部705は、抽象名を示すノードの数の膨大化を抑制することができる。
ここで、例えば、抽象名の下位に包含される化合物名が1つである場合、第2生成部705が、抽象名を示すノードを生成しても、サービスに活用されにくいことが考えられる。このため、第2生成部705は、サービスに活用されにくい抽象名を示すノードを生成せず、ナレッジグラフのサイズの増大化を抑制し、サービスを効率よく提供可能にすることができる。
第2生成部705は、文章集合に、特定した抽象名が閾値以上出現する場合に、特定した抽象名を示すノードを生成する。閾値は、例えば、1である。第2生成部705は、例えば、文章集合に、第1の抽象名が閾値以上出現する場合に、第3のノードを生成する。また、第2生成部705は、文章集合に、第2の抽象名が閾値以上出現する場合に、第4のノードを生成する。これにより、第2生成部705は、抽象名を示すノードの数の膨大化を抑制することができる。第2生成部705は、例えば、サービス利用者が技術文書を閲覧する際に技術文書に出現しやすいと判断される抽象名を示すノード、サービスに利用する観点からナレッジグラフに含むことが好ましい抽象名を示すノードを生成しやすくすることができる。
判定部706は、構造情報に基づいて抽象名間に同義関係が成立するか否かを判定する。構造情報は、例えば、示性式である。判定部706は、例えば、第1の抽象名に対応する第1の示性式と、第2の抽象名に対応する第2の示性式とに基づいて、第1の抽象名と、第2の抽象名との間に、同義関係が成立するか否かを判定する。判定部706は、具体的には、第1の示性式と、第2の示性式とが一致する場合に、同義関係が成立すると判定する。また、判定部706は、第1の示性式と、第2の示性式を原子団単位で並べ替えた第3の示性式とが一致する場合に、同義関係が成立すると判定してもよい。
判定部706は、より具体的には、示性式「C3H6OH-O-C2H5」と、示性式「C2H5-O-C3H6OH」を原子団単位で逆順に並べ替えた示性式「C3H6OH-O-C2H5」とが一致するか否かを判定する。判定部706は、一致するため、抽象名「1-エトキシプロパノール」と、抽象名「3-エトキシプロパノール」との間に、同義関係が成立すると判定する。同義関係が成立するか否かを判定する一例については、図14を用いて後述する。これにより、判定部706は、抽象名同士の関係性を特定することができ、抽象名を示すノード同士をリンク付けすることが好ましいか否かを判断可能にすることができる。判定部で用いる構造情報は示性式に限らない。構造を表す表記法、例えば、SMILES、InChIなどを用いることもできる。
接続部707は、化合物名を示すノードの上位に、抽象名を示すノードをリンク付けする。接続部707は、例えば、第1のノードの上位に第3のノードをリンク付け、第2のノードの上位に第4のノードをリンク付けする。接続部707は、例えば、第1のノードの上位に第3のノードをリンク付け、第2のノードの上位に第4のノードをリンク付けする。
接続部707は、具体的には、化合物名「1-エトキシ-2-プロパノール」に付与されたURI「lc:CID15287」に、「is-a」の関係性で、抽象名「1-エトキシプロパノール」に付与されたURI「lc:NEW001」をリンク付けする。そして、接続部707は、リンク付けした結果を、グラフ情報テーブル400を用いて記憶する。化合物名を示すノードと、抽象名を示すノードとをリンク付けする一例については、図13を用いて後述する。これにより、接続部707は、ナレッジグラフ上でノード間を適切にリンク付けすることができる。
接続部707は、同義関係が成立すると判定した抽象名を示すノード同士をリンク付けする。接続部707は、例えば、同義関係が成立すると判定した場合には、生成した第3のノードと、生成した第4のノードとを、同義関係を示すエッジを用いてリンク付けする。接続部707は、具体的には、同義関係が成立すると判定した抽象名に付与されたURI同士を、「same-as」の関係性でリンク付けし、グラフ情報テーブル400を用いて記憶する。これにより、接続部707は、ナレッジグラフ上でノード間を適切にリンク付けすることができる。
接続部707は、例えば、同義関係が成立すると判定した場合には、生成した第3のノードと、生成した第4のノードとを統合し、第1の抽象名を示すラベルと、第2の抽象名を示すラベルとを付与してもよい。これにより、接続部707は、抽象名を示すノードの数の膨大化を抑制することができる。
また、接続部707は、例えば、同義関係が成立すると判定した場合には、生成した第3のノードと、生成した第4のノードとを統合し、第1の抽象名と、第2の抽象名とのうち、文章集合で出現率が高い方の抽象名を示すラベルを付与してもよい。これにより、接続部707は、抽象名を示すノードの数の膨大化を抑制することができる。
出力部708は、少なくともいずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F303による外部装置への送信、または、メモリ302や記録媒体305などの記憶領域への記憶である。これにより、出力部708は、各機能部の処理結果を利用者に通知可能にすることができる。
出力部708は、例えば、接続部707の接続結果を出力する。出力部708は、具体的には、図4に示したグラフ情報テーブル400を出力する。これにより、出力部708は、情報検索、情報解析、または、読解支援などのサービスに、ナレッジグラフを利用可能にすることができる。また、出力部708は、例えば、接続部707の接続結果をクライアント装置201に表示させてもよい。出力部708は、具体的には、ナレッジグラフをクライアント装置201に表示させる。これにより、出力部708は、ナレッジグラフをサービス利用者が閲覧可能にすることができる。
ここでは、情報処理装置100が、第1特定部702および第1生成部703により、化合物名を示すノードを生成する場合について説明したが、これに限らない。例えば、情報処理装置100が、第1特定部702および第1生成部703を有さず、化合物名を示すノードを生成せず、化合物名を示すノードを取得する場合があってもよい。
(情報処理装置100の動作例)
次に、図8~図16を用いて、情報処理装置100の動作例について説明する。まず、図8を用いて、情報処理装置100が、コーパスに基づいて化合物名の候補を抽出する一例について説明する。
図8は、化合物名の候補を抽出する一例を示す説明図である。図8において、情報処理装置100は、特許文献などを含むコーパスから、化合物名の候補を抽出する。ここで、例えば、日本語の文章では、化合物名が、カタカナ、アルファベット、数字、記号、および、一部の漢字などの特定の文字により記述される傾向がある。このため、情報処理装置100は、特定の文字が連続する文字列を、化合物名の候補として抽出する。
抽出される化合物名の候補は、具体的には、「2-プロパノール」、「1-エトキシ-2-プロパノール」、「2-エトキシ-2-プロパノール」、「3-エトキシ-1-プロパノール」、「1-エトキシプロパノール」、「3-エトキシプロパノール」などである。次に、図9の説明に移行する。
図9は、化合物名の候補にURIを付与する一例を示す説明図である。図9において、情報処理装置100は、化合物名の候補にURIを付与する。情報処理装置100は、例えば、化合物名の候補のうち、辞書テーブル500に登録された化合物名と一致する候補を、ノードを生成する対象になる化合物名として特定する。そして、情報処理装置100は、特定した化合物名に対応付けて辞書テーブル500に登録されたURIを検索し、特定した化合物名に付与する。URIは、ノードのラベルに対応する。
情報処理装置100は、具体的には、化合物名の候補「2-プロパノール」を、ノードを生成する対象になる化合物名として特定し、URI「lc:CID3776」を付与する。また、情報処理装置100は、具体的には、化合物名の候補「1-エトキシ-2-プロパノール」を、ノードを生成する対象になる化合物名として特定し、URI「lc:CID15287」を付与する。そして、情報処理装置100は、化合物名に付与されたURIを、ノードの情報として記憶することにより、URIをラベルとし、URIに対応する化合物名を示すノードを生成する。
ここで、抽出した化合物名の候補の中には、化合物名の他に、抽象名が含まれることがあり、化合物とは関係ない文字列が含まれることもある。これに対し、情報処理装置100は、辞書テーブル500を参照して、抽象名や化合物とは関係ない文字列を示すノードを、化合物名を示すノードとして誤って生成しないようにすることができる。
また、情報処理装置100は、辞書テーブル500に登録された化合物名でも、抽出した化合物名の候補の中に存在しなければ、化合物名を示すノードを生成しないようにすることができる。このため、情報処理装置100は、技術文書に出現しやすい化合物名を示すノードであるため、サービスに利用する観点からナレッジグラフに含むことが好ましい化合物名を示すノードを生成することができる。また、情報処理装置100は、技術文書に出現しにくい化合物名を示すノードであるため、サービスに利用する観点からナレッジグラフに含まなくてもよい化合物名を示すノードを生成しないようにすることができる。
結果として、情報処理装置100は、化合物名を示すノードの数の膨大化を抑制することができる。そして、情報処理装置100は、ナレッジグラフのサイズの増大化を抑制することができ、ナレッジグラフを利用する際のパフォーマンスの低下を抑制することができる。情報処理装置100は、例えば、ナレッジグラフを利用する際に、ナレッジグラフから所定の化合物名を示すノードを検索する所要時間などの低減化を図ることができる。次に、図10および図11の説明に移行する。
図10および図11は、抽象名を特定する一例を示す説明図である。図10において、情報処理装置100は、URIを付与した化合物名から抽象名の候補を特定する。情報処理装置100は、例えば、化合物名「4-メチル-2,6-ビス(1,1-ジメチルエチル)フェノール」から、置換基の結合位置を示す文字列を除去し、抽象名の候補を特定する。
特定される抽象名の候補は、具体的には、「メチル-2,6-ビス(1,1-ジメチルエチル)フェノール」、「4-メチル-6-ビス(1,1-ジメチルエチル)フェノール」などである。特定される抽象名の候補は、具体的には、「4-メチル-2-ビス(1,1-ジメチルエチル)フェノール」、「4-メチル-2,6-ビス(1-ジメチルエチル)フェノール」などである。
ここで、化合物名「4-メチル-2,6-ビス(1,1-ジメチルエチル)フェノール」には、置換基の結合位置を示す文字列が5個存在するため、特定される抽象名の候補は、2^5個になる。このように、化合物名に含まれる置換基の結合位置を示す文字列が多いほど、抽象名の候補が多くなり、抽象名を示すノードの数が多くなりやすい。このため、図11に示すように、情報処理装置100は、抽象名の候補の中から、ノードを生成する対象になる抽象名を特定する。
図11において、情報処理装置100は、抽象名の候補の中から、ノードを生成する対象になる抽象名を特定する。情報処理装置100は、例えば、化合物名「2-プロパノール」から、ヒドロキシ基の結合位置を示す文字列「2-」を除去した抽象名の候補「プロパノール」が、化合物名の候補として抽出されているか否かを判定する。換言すれば、情報処理装置100は、抽象名の候補「プロパノール」がコーパスに出現しているか否かを判定する。
ここで、抽象名の候補「プロパノール」が、化合物名の候補として抽出済みであり、コーパスに出現していれば、サービスに利用する観点からノードを生成することが好ましいと判断される。このため、情報処理装置100は、抽象名の候補「プロパノール」が、化合物名の候補として抽出済みであれば、ノードを生成する対象になる抽象名として特定する。一方で、情報処理装置100は、抽象名の候補「プロパノール」が、化合物名の候補として抽出されていなければ、ノードを生成する対象になる抽象名としない。また、情報処理装置100は、抽象名の候補「プロパノール」が、URIを付与された化合物名であれば、ノードの重複を防止するため、ノードを生成する対象になる抽象名としない。次に、図12の説明に移行する。
図12は、抽象名にURIを付与する一例を示す説明図である。図12において、情報処理装置100は、ノードを生成する対象になる抽象名に、新規URIを付与する。新規URIは、ノードのラベルに対応する。情報処理装置100は、例えば、抽象名「1-エトキシプロパノール」に、新規URI「lc:NEW001」を付与する。そして、情報処理装置100は、抽象名に付与された新規URIを、ノードの情報として記憶することにより、新規URIをラベルとし、新規URIに対応する抽象名を示すノードを生成する。
これにより、情報処理装置100は、技術文書に出現しやすい抽象名を示すノードであるため、サービスに利用する観点からナレッジグラフに含むことが好ましい抽象名を示すノードを生成することができる。また、情報処理装置100は、技術文書に出現しにくい抽象名を示すノードであるため、サービスに利用する観点からナレッジグラフに含まなくてもよい抽象名を示すノードを生成しないようにすることができる。
結果として、情報処理装置100は、抽象名を示すノードの数の膨大化を抑制することができる。そして、情報処理装置100は、ナレッジグラフのサイズの増大化を抑制することができ、ナレッジグラフを利用する際に、ナレッジグラフから所定の抽象名を示すノードを検索する所要時間などの低減化を図ることができる。次に、図13の説明に移行する。
図13は、化合物名を示すノードと抽象名を示すノードとをリンク付けする一例を示す説明図である。図13において、情報処理装置100は、化合物名を示すノードの上位に、化合物名から置換基の結合位置を示す文字列を除去した抽象名を示すノードをリンク付けする。情報処理装置100は、例えば、化合物名に付与されたURIに、「is-a」の関係性で、抽象名に付与された新規URIをリンク付けする。
情報処理装置100は、具体的には、化合物名「1-エトキシ-2-プロパノール」に付与されたURI「lc:CID15287」に、「is-a」の関係性で、抽象名「1-エトキシプロパノール」に付与されたURI「lc:NEW001」をリンク付けする。ここで、情報処理装置100は、リンク付けした結果を、グラフ情報テーブル400を用いて記憶する。
これにより、情報処理装置100は、ナレッジグラフに、化合物名と抽象名との関係性を反映することができる。また、情報処理装置100は、化合物名を示すノードから上位となる抽象名を示すノードを生成することができる。このため、情報処理装置100は、化合物名の上位概念を示すノードがある場合には、化合物名を示すノードと、化合物名の上位概念を示すノードとの中間に、抽象名を示すノードを追加することができる。
ここで、情報処理装置100は、いずれかの抽象名に付与された新規URIに、「is-a」の関係性でリンク付けされた、化合物名に付与されたURIの数を計数し、URIの数が閾値以上であるか否かを判定してもよい。閾値は、例えば、2である。そして、情報処理装置100は、URIの数が閾値未満である場合には、いずれかの抽象名に付与された新規URIを削除してもよい。
例えば、いずれかの抽象名に付与された新規URIに、「is-a」の関係性でリンク付けされた、化合物名に付与されたURIの数が、1つである場合が考えられる。この場合、いずれかの抽象名は、1つの化合物名しか包含しないことになるため、いずれかの抽象名を示すノードを生成しても、サービスに利用する観点から有用ではない可能性がある。そこで、情報処理装置100は、いずれかの抽象名を示すノードを生成せず、抽象名を示すノードの数の膨大化を抑制するようにしてもよい。次に、図14の説明に移行する。
図14は、示性式を生成する一例を示す説明図である。図14において、情報処理装置100は、抽象名同士の関係性を特定するために、抽象名に対応する示性式を生成する。示性式の生成には、例えば、特許文献1および特許文献2などを参照することができる。
情報処理装置100は、例えば、抽象名「1-エトキシプロパノール」を示す示性式「C3H6OH-O-C2H5」と、抽象名「3-エトキシプロパノール」を示す示性式「C2H5-O-C3H6OH」とを生成する。そして、情報処理装置100は、示性式「C3H6OH-O-C2H5」と、示性式「C2H5-O-C3H6OH」とに基づいて、抽象名「1-エトキシプロパノール」と、抽象名「3-エトキシプロパノール」との間に、同義関係が成立するか否かを判定する。
ここで、示性式「C3H6OH-O-C2H5」と、示性式「C2H5-O-C3H6OH」を原子団単位で逆順に並べ替えた示性式「C3H6OH-O-C2H5」とが一致する。このため、情報処理装置100は、抽象名「1-エトキシプロパノール」と、抽象名「3-エトキシプロパノール」との間に、同義関係が成立すると判定する。次に、図15の説明に移行する。
図15は、抽象名を示すノード同士をリンク付けする一例を示す説明図である。図15において、情報処理装置100は、同義関係が成立する抽象名を示すノード同士をリンク付けする。情報処理装置100は、例えば、同義関係が成立する抽象名に付与されたURI同士を、「same-as」の関係性でリンク付けする。
情報処理装置100は、具体的には、抽象名「1-エトキシプロパノール」に付与されたURI「lc:NEW001」と、抽象名「3-エトキシプロパノール」に付与されたURI「lc:NEW002」とを、「same-as」の関係性でリンク付けする。ここで、情報処理装置100は、リンク付けした結果を、グラフ情報テーブル400を用いて記憶する。これにより、情報処理装置100は、抽象名を示すノード同士を適切にリンク付けすることができ、ナレッジグラフに抽象名同士の関係性を反映することができる。
ここで、情報処理装置100は、同義関係が成立する各抽象名に付与された新規URIに、「is-a」の関係性でリンク付けされた、化合物名に付与されたURIの数を計数し、URIの数が閾値以上であるか否かを判定してもよい。閾値は、例えば、3である。そして、情報処理装置100は、URIの数が閾値未満である場合には、同義関係が成立する各抽象名に付与された新規URIを削除してもよい。
例えば、同義関係が成立する各抽象名に付与された新規URIに、「is-a」の関係性でリンク付けされた、化合物名に付与されたURIの数が、2つである場合が考えられる。この場合、同義関係が成立する各抽象名は、それぞれ、1つの化合物名しか包含しないことになるため、同義関係が成立する各抽象名を示すノードを生成しても、サービスに利用する観点から有用ではない可能性がある。そこで、情報処理装置100は、同義関係が成立する各抽象名を示すノードを生成せず、抽象名を示すノードの数の膨大化を抑制するようにしてもよい。次に、図16の説明に移行する。
図16は、ナレッジグラフ1600を利用する一例を示す説明図である。図16の例では、情報処理装置100は、図8~図15に示したように各種ノードを生成し、ノード間をリンク付けした結果、ナレッジグラフ1600を生成したとする。
また、クライアント装置201は、技術文書1601をディスプレイ606に表示する。サービス利用者は、技術文書1601を閲覧する。サービス利用者は、技術文書内の文字列「3-エトキシプロパノール」をクリックする。クライアント装置201は、文字列「3-エトキシプロパノール」のクリックに応じて、文字列「3-エトキシプロパノール」に関する情報を、情報処理装置100に問い合わせる。
情報処理装置100は、生成したナレッジグラフ1600を参照して、文字列「3-エトキシプロパノール」を示すノードを検索し、抽象名「3-エトキシプロパノール」を示すノードを特定する。次に、情報処理装置100は、抽象名「3-エトキシプロパノール」を示すノードにリンク付けられた、化合物名「3-エトキシ-1-プロパノール」を示すノードを特定する。さらに、情報処理装置100は、抽象名「3-エトキシプロパノール」と同義関係が成立する抽象名「1-エトキシプロパノール」にリンク付けられた抽象名「1-エトキシ-2-プロパノール」を示すノードも特定する。
そして、情報処理装置100は、特定したノードに基づいて、問い合わせの文字列に一致する抽象名「3-エトキシプロパノール」に関する情報をクライアント装置201に提供する。情報処理装置100は、具体的には、解説文「3-エトキシプロパノールは、3-エトキシ-1-プロパノールや、1-エトキシ-2-プロパノールなどを含む抽象概念です。」を生成し、クライアント装置201に表示させる。
これにより、情報処理装置100は、問い合わせの文字列に一致する抽象名に直接的に関係する情報を、サービス利用者が参照可能にすることができる。また、情報処理装置100は、問い合わせの文字列に一致する抽象名と同義関係が成立する抽象名に関する情報であり、問い合わせの文字列に一致する抽象名に間接的に関連する情報も、サービス利用者が参照可能にすることができる。
このため、情報処理装置100は、情報検索、情報解析、または、読解支援などのサービスを効果的に実施することができる。情報処理装置100は、ナレッジグラフに、化合物の分子式や分子量、または、化合物の機能や用途などを示すノードが含まれていれば、化合物の分子式や分子量、または、化合物の機能や用途などを、サービス利用者が参照可能にしてもよい。
一方で、同義関係が成立する抽象名を示すノード同士がリンク付けされていない場合には、サービス利用者は、問い合わせの文字列に一致する抽象名と同義関係が成立する抽象名に関する情報を参照することができない場合がある。このため、サービス利用者が、問い合わせにより得られる情報が少なくなり、サービスが効果的に提供されないことが考えられる。
以上の説明では、情報処理装置100が、関係性を特定する抽象名の組み合わせを限定しない場合について説明したが、これに限らない。例えば、情報処理装置100が、関係性を特定する抽象名の組み合わせを限定する場合があってもよい。具体的には、情報処理装置100が、特定の文字列を含む抽象名の組み合わせに限定して、抽象名同士の関係性を特定する場合があってもよい。特定の文字列は、例えば、「プロパノール」などである。これにより、情報処理装置100は、示性式を生成する処理量の低減化を図ることができる。
以上の説明では、情報処理装置100が、コーパスから化合物名の候補を抽出する場合について説明したが、これに限らない。例えば、情報処理装置100が、辞書テーブル500に登録された化合物名を抽出し、化合物名から抽象名の候補を特定してから、抽象名の候補がコーパスに出現するか否かを判定する場合があってもよい。
(全体処理手順)
次に、図17および図18を用いて、情報処理装置100が実行する、全体処理手順の一例について説明する。全体処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
図17および図18は、全体処理手順の一例を示すフローチャートである。図17において、情報処理装置100は、コーパスから化合物名の候補を抽出する(ステップS1701)。次に、情報処理装置100は、抽出した候補のうち、辞書テーブル500に記憶された化合物名と一致する候補のそれぞれの候補に対して、当該候補と一致した化合物名に対応付けて辞書テーブル500に記憶されたURIを付与する(ステップS1702)。そして、情報処理装置100は、ステップS1703の処理に移行する。
ステップS1703では、情報処理装置100は、抽出した候補のうち未処理の候補を選択する(ステップS1703)。
次に、情報処理装置100は、選択した候補が、URIが付与され、かつ、数字を含む候補であるか否かを判定する(ステップS1704)。ここで、URIが付与されていない候補、または、数字を含まない候補である場合(ステップS1704:No)、情報処理装置100は、ステップS1709の処理に移行する。一方で、URIが付与され、かつ、数字を含む候補である場合(ステップS1704:Yes)、情報処理装置100は、ステップS1705の処理に移行する。
ステップS1705では、情報処理装置100は、選択した候補から数字を除去した文字列を生成する(ステップS1705)。
次に、情報処理装置100は、生成した文字列が、コーパスから所定の数以上抽出された候補と一致するか否かを判定する(ステップS1706)。ここで、コーパスから所定の数以上抽出された候補と一致しない場合(ステップS1706:No)、情報処理装置100は、ステップS1709の処理に移行する。一方で、コーパスから所定の数以上抽出された候補と一致する場合(ステップS1706:Yes)、情報処理装置100は、ステップS1707の処理に移行する。
ステップS1707では、情報処理装置100は、生成した文字列に、新規URIを付与する(ステップS1707)。次に、情報処理装置100は、選択した候補に付与されたURIと、生成した文字列に付与された新規URIとを、「is-a」の関係性でリンク付けする(ステップS1708)。そして、情報処理装置100は、ステップS1709の処理に移行する。
ステップS1709では、情報処理装置100は、すべての候補を処理したか否かを判定する(ステップS1709)。ここで、未処理の候補がある場合(ステップS1709:No)、情報処理装置100は、ステップS1703の処理に戻る。一方で、すべての候補を処理している場合(ステップS1709:Yes)、情報処理装置100は、図18のステップS1801の処理に移行する。
図18において、情報処理装置100は、図19に後述する判定処理を実行し、新規URIが付与された候補に対応する示性式同士に、同義関係が成立するか否かを特定する(ステップS1801)。そして、情報処理装置は、新規URIごとに「is-a」の関係性でリンク付けされたURIの数を算出する(ステップS1802)。
次に、情報処理装置100は、新規URIのうち、リンク付けされたURIの数が閾値未満である新規URIを削除する(ステップS1803)。そして、情報処理装置100は、全体処理を終了する。これにより、情報処理装置100は、抽象名を示すノードを含むナレッジグラフを生成することができ、抽象名を示すノード同士を適切にリンク付けすることができる。
(判定処理手順)
次に、図19を用いて、情報処理装置100が実行する、判定処理手順の一例について説明する。判定処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
図19は、判定処理手順の一例を示すフローチャートである。図19において、情報処理装置100は、新規URIが付与された候補を取得する(ステップS1901)。次に、情報処理装置100は、取得した候補に対応する示性式を生成する(ステップS1902)。そして、情報処理装置100は、ステップS1903の処理に移行する。
ステップS1903では、情報処理装置100は、2つの示性式の組み合わせのうち、未処理の組み合わせを選択する(ステップS1903)。
次に、情報処理装置100は、選択した組み合わせの2つの示性式が一致するか否かを判定する(ステップS1904)。ここで、一致する場合(ステップS1904:Yes)、情報処理装置100は、ステップS1907の処理に移行する。一方で、一致しない場合(ステップS1904:No)、情報処理装置100は、ステップS1905の処理に移行する。
ステップS1905では、情報処理装置100は、選択した組み合わせの一方の示性式を「-」の前後で分割して並び順を反転した示性式を生成する(ステップS1905)。
次に、情報処理装置100は、反転した示性式と、選択した組み合わせの他方の示性式とが一致するか否かを判定する(ステップS1906)。ここで、一致する場合(ステップS1906:Yes)、情報処理装置100は、ステップS1907の処理に移行する。一方で、一致しない場合(ステップS1906:No)、情報処理装置100は、ステップS1908の処理に移行する。
ステップS1907では、情報処理装置100は、選択した組み合わせの2つの示性式の生成元である2つのURIを、「same-as」の関係性でリンク付けする(ステップS1907)。そして、情報処理装置100は、ステップS1908の処理に移行する。
ステップS1908では、情報処理装置100は、すべての組み合わせを処理したか否かを判定する(ステップS1908)。ここで、未処理の組み合わせがある場合(ステップS1908:No)、情報処理装置100は、ステップS1903の処理に戻る。一方で、すべての組み合わせを処理している場合(ステップS1908:Yes)、情報処理装置100は、判定処理を終了する。
以上説明したように、情報処理装置100によれば、第1のノードが示す第1の化合物名から置換基の結合位置を示す文字列を除去した第1の抽象名を特定することができる。情報処理装置100によれば、第2のノードが示す第2の化合物名から置換基の結合位置を示す文字列を除去した第2の抽象名を特定することができる。情報処理装置100によれば、特定した第1の抽象名を示す第3のノードを生成することができる。情報処理装置100によれば、特定した第2の抽象名を示す第4のノードを生成することができる。情報処理装置100によれば、第1の抽象名に対応する第1の示性式と、第2の抽象名に対応する第2の示性式とに基づいて、第1の抽象名と、第2の抽象名との間に、同義関係が成立するか否かを判定することができる。情報処理装置100によれば、同義関係が成立すると判定した場合には、生成した第3のノードと、生成した第4のノードとをリンク付けすることができる。これにより、情報処理装置100は、抽象名を示すノードを生成し、抽象名を示すノード同士を適切にリンク付けすることができる。
情報処理装置100によれば、第1の示性式と、第2の示性式とが一致する場合に、同義関係が成立すると判定することができる。これにより、情報処理装置100は、示性式同士が一致する抽象名同士に、同義関係が成立すると判定することができる。
情報処理装置100によれば、第1の示性式と、第2の示性式を原子団単位で並べ替えた第3の示性式とが一致する場合に、同義関係が成立すると判定することができる。これにより、情報処理装置100は、一方の示性式を並べ替えると示性式同士が一致する抽象名同士に、同義関係が成立すると判定することができる。
情報処理装置100によれば、文章集合から、化合物名としての条件を満たす複数の文字列を抽出することができる。情報処理装置100によれば、化合物名を記憶する辞書情報を参照して、抽出した複数の文字列のうち、化合物名であると判定した文字列を示すノードを生成することができる。情報処理装置100によれば、生成したノードの中から、第1のノードと、第2のノードとを選択することができる。これにより、情報処理装置100は、化合物名を示すノードを生成することができる。また、情報処理装置100は、化合物名を示すノードの数の膨大化を抑制することができる。
情報処理装置100によれば、生成したノードが示す化合物名のうち、置換基の結合位置を示す文字列を除去すると、第1の抽象名と同じ抽象名になる化合物名が、所定の数以上存在する場合に、第3のノードを生成することができる。情報処理装置100によれば、生成したノードが示す化合物名のうち、置換基の結合位置を示す文字列を除去すると、第2の抽象名と同じ抽象名になる化合物名が、所定の数以上存在する場合に、第4のノードを生成することができる。これにより、情報処理装置100は、抽象名を示すノードの数の膨大化を抑制することができる。
情報処理装置100によれば、生成したノードが示す化合物名のうち、置換基の結合位置を示す文字列を除去すると第1の示性式と同義関係が成立する示性式に対応する抽象名になる化合物名が所定の数以上存在する場合に、第3のノードを生成することができる。情報処理装置100によれば、生成したノードが示す化合物名のうち、置換基の結合位置を示す文字列を除去すると第2の示性式と同義関係が成立する示性式に対応する抽象名になる化合物名が所定の数以上存在する場合に、第4のノードを生成することができる。これにより、情報処理装置100は、抽象名を示すノードの数の膨大化を抑制することができる。
情報処理装置100によれば、文章集合に、第1の抽象名が閾値以上出現する場合に、第3のノードを生成することができる。情報処理装置100によれば、第4のノードを生成する処理は、文章集合に、第2の抽象名が閾値以上出現する場合に、第4のノードを生成することができる。これにより、情報処理装置100は、抽象名を示すノードの数の膨大化を抑制することができる。
情報処理装置100によれば、第1のノードの上位に第3のノードをリンク付け、第2のノードの上位に第4のノードをリンク付けすることができる。これにより、情報処理装置100は、ノード間を適切にリンク付けしたナレッジグラフを生成することができる。
情報処理装置100によれば、同義関係が成立すると判定した場合には、生成した第3のノードと、生成した第4のノードとを、同義関係を示すエッジを用いてリンク付けすることができる。これにより、情報処理装置100は、ノード間を適切にリンク付けしたナレッジグラフを生成することができる。
情報処理装置100によれば、同義関係が成立すると判定した場合には、生成した第3のノードと、生成した第4のノードとを統合し、第1の抽象名を示すラベルと、第2の抽象名を示すラベルとを付与することができる。これにより、情報処理装置100は、抽象名を示すノードの数の膨大化を抑制することができる。
なお、本実施の形態で説明した生成方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した生成プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した生成プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)第1のノードが示す第1の化合物名から置換基の結合位置を示す文字列を除去した第1の抽象名を特定し、
第2のノードが示す第2の化合物名から置換基の結合位置を示す文字列を除去した第2の抽象名を特定し、
特定した前記第1の抽象名を示す第3のノードを生成し、
特定した前記第2の抽象名を示す第4のノードを生成し、
前記第1の抽象名に対応する第1の構造情報と、前記第2の抽象名に対応する第2の構造情報とに基づいて、前記第1の抽象名と、前記第2の抽象名との間に、同義関係が成立するか否かを判定し、
同義関係が成立すると判定した場合には、生成した前記第3のノードと、生成した前記第4のノードとをリンク付けする、
処理をコンピュータが実行することを特徴とする生成方法。
(付記2)前記判定する処理は、前記第1の構造情報と、前記第2の構造情報とが一致する場合に、同義関係が成立すると判定する、ことを特徴とする付記1に記載の生成方法。
(付記3)前記判定する処理は、前記第1の構造情報と、前記第2の構造情報を原子団単位で並べ替えた第3の構造情報とが一致する場合に、同義関係が成立すると判定する、ことを特徴とする付記1または2に記載の生成方法。
(付記4)文章集合から、化合物名としての条件を満たす複数の文字列を抽出し、
化合物名を記憶する辞書情報を参照して、抽出した前記複数の文字列のうち、化合物名であると判定した文字列を示すノードを生成し、
生成した前記ノードの中から、前記第1のノードと、前記第2のノードとを選択する、処理を前記コンピュータが実行することを特徴とする付記1~3のいずれか一つに記載の生成方法。
(付記5)前記第3のノードを生成する処理は、生成した前記ノードが示す化合物名のうち、置換基の結合位置を示す文字列を除去すると、前記第1の抽象名と同じ抽象名になる化合物名が、所定の数以上存在する場合に、前記第3のノードを生成し、
前記第4のノードを生成する処理は、生成した前記ノードが示す化合物名のうち、置換基の結合位置を示す文字列を除去すると、前記第2の抽象名と同じ抽象名になる化合物名が、前記所定の数以上存在する場合に、前記第4のノードを生成する、ことを特徴とする付記4に記載の生成方法。
(付記6)前記第3のノードを生成する処理は、生成した前記ノードが示す化合物名のうち、置換基の結合位置を示す文字列を除去すると、前記第1の構造情報と同義関係が成立する構造情報に対応する抽象名になる化合物名が、所定の数以上存在する場合に、前記第3のノードを生成し、
前記第4のノードを生成する処理は、生成した前記ノードが示す化合物名のうち、置換基の結合位置を示す文字列を除去すると、前記第2の構造情報と同義関係が成立する構造情報に対応する抽象名になる化合物名が、前記所定の数以上存在する場合に、前記第4のノードを生成する、ことを特徴とする付記4に記載の生成方法。
(付記7)前記第3のノードを生成する処理は、文章集合に、前記第1の抽象名が閾値以上出現する場合に、前記第3のノードを生成し、
前記第4のノードを生成する処理は、前記文章集合に、前記第2の抽象名が前記閾値以上出現する場合に、前記第4のノードを生成する、ことを特徴とする付記1~6のいずれか一つに記載の生成方法。
(付記8)前記第1のノードの上位に前記第3のノードをリンク付け、前記第2のノードの上位に前記第4のノードをリンク付けする、処理を前記コンピュータが実行することを特徴とする付記1~7のいずれか一つに記載の生成方法。
(付記9)前記リンク付けする処理は、同義関係が成立すると判定した場合には、生成した前記第3のノードと、生成した前記第4のノードとを、同義関係を示すエッジを用いてリンク付けする、ことを特徴とする付記1~8のいずれか一つに記載の生成方法。
(付記10)前記リンク付けする処理は、同義関係が成立すると判定した場合には、生成した前記第3のノードと、生成した前記第4のノードとを統合し、前記第1の抽象名を示すラベルと、前記第2の抽象名を示すラベルとを付与する、ことを特徴とする付記1~9のいずれか一つに記載の生成方法。
(付記11)第1のノードが示す第1の化合物名から置換基の結合位置を示す文字列を除去した第1の抽象名を特定し、
第2のノードが示す第2の化合物名から置換基の結合位置を示す文字列を除去した第2の抽象名を特定し、
特定した前記第1の抽象名を示す第3のノードを生成し、
特定した前記第2の抽象名を示す第4のノードを生成し、
前記第1の抽象名に対応する第1の構造情報と、前記第2の抽象名に対応する第2の構造情報とに基づいて、前記第1の抽象名と、前記第2の抽象名との間に、同義関係が成立するか否かを判定し、
同義関係が成立すると判定した場合には、生成した前記第3のノードと、生成した前記第4のノードとをリンク付けする、
処理をコンピュータに実行させることを特徴とする生成プログラム。
(付記12)第1のノードが示す第1の化合物名から置換基の結合位置を示す文字列を除去した第1の抽象名を特定し、
第2のノードが示す第2の化合物名から置換基の結合位置を示す文字列を除去した第2の抽象名を特定し、
特定した前記第1の抽象名を示す第3のノードを生成し、
特定した前記第2の抽象名を示す第4のノードを生成し、
前記第1の抽象名に対応する第1の構造情報と、前記第2の抽象名に対応する第2の構造情報とに基づいて、前記第1の抽象名と、前記第2の抽象名との間に、同義関係が成立するか否かを判定し、
同義関係が成立すると判定した場合には、生成した前記第3のノードと、生成した前記第4のノードとをリンク付けする、
制御部を有することを特徴とする生成装置。