以下に添付図面を参照して、この発明にかかる生成装置、生成方法、および生成プログラムの実施の形態を詳細に説明する。また、本明細書において、「化学式」とは物質を原子の記号と数字で表記した式である。たとえば、エタノールの場合、C2H6Oである。また、「示性式」とは化学式をさらに官能基ごとにまとめて表記した式である。たとえば、エタノールの場合、CH3CH2OHである。以下、本実施の形態では、示性式を例に挙げて説明するが、化学式にも適用することができる。
物質の数は膨大であり、物質の物質名とその化学式をカバーする辞書を用意することは困難である。また、既存の物質の物質名とその化学式が登録された化学物質データベースは販売されているが、高価であるため、販売されている化学物質データベースを用いて物質名とその化学式からあらたな化学式を作成するには、費用が増大する。
そこで、本実施の形態にかかる生成装置は、電子文書から物質名と化学式とが同義表現で記述されていると推定される部分を抽出して、物質名と化学式の組をデータベースに蓄積する。これにより、生成装置は、既存の電子文書から物質名とその化学式の組の候補を自動で見つけ出すことができる。
また、生成装置は、文書情報から作成した第1のデータベース内の物質名と示性式の組を生成元とし、化学反応のルールを適用することにより、あらたに物質名とその示性式の組を生成して、第2のデータベースに蓄積することにしてもよい。このように、生成装置は、化学反応に応じたルールを適用したうえで示性式を生成しているため、化学物質の第1のデータベースに依存することなく、物質名とその示性式を高精度に生成して、自動で第2のデータベースを作成することができる。
また、生成装置は、第1のデータベースに登録された物質名とその示性式の組を、第2のデータベース内の物質名とその示性式の組を連結して再現できるか否かを判断することにしてもよい。上述したように、生成装置は、電子文書から、同義表現で記述されていると推定される部分を抽出して、物質名と示性式の組を第1のデータベースに蓄積しているが、同義表現で記述されていると推定される部分が必ずしも正確であるとは限らない。
たとえば、同義表現として括弧書きが挙げられるが、括弧書きでは同義語以外の記述が含まれていたり、括弧内のどこからどこまでが同義表現として対応しているか明確でない。そのため、電子文書から抽出した物質名と化学式が必ずしも正確であるとは限らず、電子文書から抽出することで蓄積した第1のデータベース内の物質名と化学式に化学反応のルールが適用されることで得られた物質名と化学式が必ずしも正確であるとは限らない。また、たとえば、物質名とその示性式の組の情報源となる電子情報が十分にある場合、その組の出現回数を基準にして、精度の高い組を第1のデータベースに蓄積させることができるが、物質名とその示性式の同義関係が電子情報内に記載されている機会は必ずしも多くない。
そこで、上述のように、生成装置が、第1のデータベースに登録された物質名とその示性式の組を、第2のデータベース内の物質名とその示性式の組を連結して再現できるか否かを判定することにより、第2のデータベースに登録された物質名とその示性式の組の妥当性を判断することができる。具体的には、例えば、生成装置が、再現できるか否かの判定結果に基づいて、第2のデータベース内の物質名とその示性式の組の確度を算出することにしてもよい。これにより、この確度を、第2のデータベース内のどの化学式が有用であるか、あるいは、どの化学式が存在しうるかなどの指標として用いることができる。
また、生成装置は、第1のデータベース内の物質名とその示性式の組の要素が第2のデータベース内になければ、その要素を第2のデータベースに登録することにしてもよい。これにより、第2のデータベース内の登録種類数を増やすことができ、第1のデータベース内の物質名とその示性式の組を、第2のデータベース内の物質名とその示性式の組を連結して再現する確率を高めることができる。
また、生成装置が、第1のデータベースに登録された物質名とその示性式の組を再現できるか否かの判定処理と第2のデータベース内の登録種類数を増やす処理を交互に繰り返すことにより、第2のデータベースに登録された物質名とその示性式の組の妥当性の判断の機会を増やすことができる。
<対応関係DB(Data Base)の登録例>
まず、生成装置が、電子文書から物質名と化学式とが同義表現で記述されていると推定される部分を抽出して、物質名と化学式の組をデータベースに蓄積する例について説明する。
図1は、生成装置による対応関係DBの登録例を示す説明図である。文書情報DB100とは、化学系や薬学系に関する特許文書や論文、雑誌、書籍などのテキストを含む文書情報を記憶するデータベースである。文書情報は、電子文書全体であってもよいし、電子文書から一部を抜き出した情報であってもよい。特許文書を例に挙げると、文書情報は、特許文書内の発明に関する記述部分が抜き出された情報であってもよい。図1では、文書情報DB100は複数の文書情報100−1〜100−nを有している。文書情報DB100は、たとえば、生成装置が有するROM(Read‐Only Memory)やRAM(Random Access Memory)、フラッシュメモリ、ディスクなどの記憶装置により実現される。
対応関係DB200は上述した第1のデータベースである。対応関係DB200には、生成装置によって文書情報DB100から選択された文書情報100−i(i=1〜n)の中から、物質名とその示性式との組を表す条件を満たす文字列から特定された物質名と示性式とが登録される。
物質名と物質名の示性式との組を表す条件を満たす文字列とは、たとえば、同義表現を含んでいる文字列である。たとえば、括弧と括弧の直前の単語は、同義である可能性があるため、同義表現を含んでいる文字列とは、たとえば、括弧を有する一文である。括弧は、「 」、( )、{ }、[ ]が挙げられる。
たとえば、生成装置は、文書情報の中から、括弧を含む一文を抽出する。そして、たとえば、生成装置が、括弧を含む一文から括弧の直前の単語を物質名として、括弧内の文字列を示性式として特定する。
また、たとえば、物質名や物質名を表す文字を記録したデータベースが予め用意されていてもよい。ここでは、このデータベースを物質名DBと称する。物質名を表す文字とは、たとえば、「酸」、「基」、「素」、「塩」、「炭」などが挙げられる。たとえば、生成装置は、括弧の直前の単語が物質名DB内の文字列を含んでいるか否かを判断する。その単語が物質名DB内の文字列を含んでいる場合、生成装置が、単語を物質名として特定し、括弧内の文字列を示性式として特定する。
また、生成装置は、括弧内の文字列にアルファベットが含まれているか否かを判断してもよい。括弧内の文字列にアルファベットが含まれていない場合、生成装置が、括弧内の文字列を示性式として特定せず、括弧内の文字列にアルファベットが含まれている場合、生成装置が、括弧内の文字列を示性式として特定する。
そして、生成装置が、特定した物質名と示性式の組を対応関係DB200に登録する。対応関係DB200については、図2を用いて詳細に説明する。
文書情報100−1を例に挙げると、生成装置は、括弧を含む一文として、「エタン(H3CH3)」、「エタンスルホン酸「CH3CH2SO3H」」、「エタンスルホン酸[CHES]」を抽出する。
たとえば、生成装置が、「エタン(H3CH3)」のうち、括弧の直前の単語「エタン」が物質名DBに含まれているか否かを判断する。単語「エタン」が物質名DBに含まれている場合、生成装置は、単語「エタン」を物質名として特定する。そして、生成装置が、括弧内の文字列「CH3CH3」がアルファベットを含む文字列であるか否かを判断する。括弧内の文字列「CH3CH3」がアルファベットを含む文字列である場合、生成装置が、括弧内の文字列「CH3CH3」を示性式として特定する。生成装置が、括弧内の文字列がアルファベットを含む文字列であるか否かを判断してもよい。そして、生成装置は、特定した物質名と示性式との組を対応関係DB200に登録する。
同様に、たとえば、生成装置が、「エタンスルホン酸「CH3CH2SO3H」」のうち、括弧の直前の単語「エタンスルホン酸」を物質名として、括弧内の文字列「CH3CH2SO3H」を示性式として特定する。同様に、生成装置が、「エタンスルホン酸[CHES]」のうち、「エタンスルホン酸」を物質名として、括弧内の「CHES」を示性式として特定する。そして、生成装置が、特定した物質名と示性式との組を対応関係DB200に登録する。
また、生成装置が、括弧内の文字列が物質名DBに含まれているか否かを判断することにより、括弧内の文字列を物質名として特定し、括弧内の直前の単語を示性式として特定してもよい。
また、同義表現の記載としては、たとえば、文書情報100−1の中で、「CH3SHはメタンチオールである。」が挙げられる。たとえば、生成装置が、「CH3SHはメタンチオールである。」のうち、物質名DBに登録された文字列を含む単語「メタンチオール」を物質名として特定する。たとえば、生成装置が、アルファベットを含む「CH3SH」を示性式として特定する。そして、生成装置が、特定した物質名と示性式との組を対応関係DB200に登録する。
図1によれば、生成装置は、既存の電子文書から物質名とその化学式の組の候補を自動で見つけ出すことができる。
このように、生成装置によれば、既存の電子文書から物質名とその化学式の組の候補を自動で見つけ出して、対応関係DB200に蓄積していくことができる。つぎに、図2を用いて、生成装置によって抽出された物質名およびその示性式の組が登録される対応関係DB200の記憶内容について説明する。
<対応関係DB200>
図2は、対応関係DB200の記憶内容の一例を示す説明図である。対応関係DB200とは、文書情報DB100内の文書情報100−1〜100−nから生成装置によって抽出された物質名とその示性式とを対応付けて記憶したデータベースである。対応関係DB200は、物質名項目と、示性式項目と、を有する。対応関係DB200は、物質名ごとに各項目が設定されレコードを構成する。物質名項目には物質名が登録されている。また、示性式項目には示性式が登録されている。
たとえば、対応関係DB200の初期状態は空であり、物質名およびその示性式の組が生成される都度、レコードに追加されることになる。図2では、すでに、メタンやメトキシなどの物質について物質名と示性式が登録済みの状態を示している。対応関係DB200で規定された物質名および示性式の組は、部分示性式を生成する際に生成装置から選択される。
対応関係DB200は、たとえば、生成装置が有するROMやRAM、フラッシュメモリ、ディスクなどの記憶装置により実現される。
<示性式の生成例>
図3は、生成装置による示性式の生成例を示す説明図である。図3中、「≒」は物質名と示性式との対応関係を示している。図3では、対応関係DB200に含まれる物質名と示性式の組のうち、一例として、物質名「プロパン」と示性式「CH3CH2CH3」の組を生成元とする。
(1)では、物質名「プロパン」および示性式「CH3CH2CH3」に対し、『炭化水素CHの結合の場合に化学反応として水素が外される』というルールが適用されている。プロパンの示性式「CH3CH2CH3」には、水素Hが3箇所(計8個)存在し、いずれの箇所にもルール適用可能であるが、ここでは説明の便宜上、末尾の「CH3」から水素Hが1つ外されたこととする。これにより、物質名「プロパン」、示性式「CH3CH2CH2」が得られる。本明細書では、ルールが適用された適用後の示性式を「部分示性式」と称す。また、ルールが適用された適用後の物質名を「部分名」と称す。
(2)では、(1)で得られた部分名「プロパン」および部分示性式「CH3CH2CH2」に対し、『水素Hが「OH」に置換され、部分名の語尾に「ノール」が追加される』というルールが適用されている。部分示性式「CH3CH2CH2」には、水素Hが3箇所(計7個)存在するが、ここでは、中央の「CH2」の水素HがOHに置換されたこととする。これにより、部分示性式「CH3CHOHCH2」が得られる。また、部分名「プロパン」の語尾には「ノール」が追加されるが、語尾追加の場合は、語幹「プロパ」に語尾「ノール」が追加され、部分名「プロパノール」が得られる。
(3)では、(1)で得られた部分名「プロパン」および部分示性式「CH3CH2CH2」に対し、『水素Hがフッ素「F」に置換され、部分名の語頭に「フルオロ」が追加される』というルールが適用されている。部分示性式「CH3CH2CH2」には、水素Hが3箇所(計7個)存在するが、ここでは、先頭の「CH3」の水素Hがフッ素Fに置換されたこととする。これにより、部分示性式「CH2FCH2HCH2」が得られる。また、部分名「プロパン」の語頭には「フルオロ」が追加され、部分名「フルオロプロパン」が得られる。
(4)では、(2)で得られた部分名「プロパノール」および部分示性式「CH3CHOHCH2」に対し、『水素Hが塩素Clに置換され、部分名の語頭に「クロロ」が追加される』というルールが適用されている。部分示性式「CH3CHOHCH2」には、水素Hが4箇所(計7個)存在するが、ここでは、先頭の「CH3」の水素Hが塩素Clに置換されたこととする。これにより、部分示性式「CH2ClCHOHCH2」が得られる。また、部分名「プロパノール」の語頭には「クロロ」が追加され、部分名「クロロプロパノール」が得られる。
(5)では、(2)で得られた部分名「プロパノール」および部分示性式「CH3CHOHCH2」に対し、『水素Hがフッ素Fに置換され、部分名の語頭に「フルオロ」が追加される』というルールが適用されている。当該ルールは、上記(3)で適用されているが、同一ルールを複数回適用してもよい。部分示性式「CH3CHOHCH2」には、水素Hが4箇所(計7個)存在するが、ここでは、先頭の「CH3」の水素Hがフッ素Fに置換されたこととする。これにより、部分示性式「CH2FCHOHCH2」が得られる。また、部分名「プロパノール」の語頭には「フルオロ」が追加され、部分名「フルオロプロパノール」が得られる。
(6)では、(5)で得られた部分名「フルオロプロパノール」および部分示性式「CH2FCHOHCH2」に対し、『水素Hがフッ素Fに置換され、部分名の語頭に「フルオロ」が追加される』というルールが適用されている。この場合、先頭の「CH2」の水素Hがフッ素Fに置換されると、生成後の部分名および部分示性式が、生成済みの部分名「クロロフルオロプロパノール」の部分示性式「CHClFCHOHCH2」と一致することになる。このような場合は、生成処理が停止される。したがって、生成装置は、部分名および部分示性式の重複生成を抑制することができ、生成処理の負荷低減を図ることができる。
このように、生成装置によれば、化学反応に応じたルールを適用したうえで示性式を生成しているため、化学物質の第1のデータベースに依存することなく、物質名とその示性式を高精度に生成して、自動で第2のデータベースを作成することができる。
つぎに、図3で適用されたルールについて説明する。本実施の形態において、ルールとは、適用すべき化学反応に関する条件と当該条件を満たした場合の変換内容を規定した情報である。ルールの集合であるルール群は、ルールDBに記憶されている。ルールDBは、たとえば、生成装置が有するROMやRAM、フラッシュメモリ、ディスクなどの記憶装置により実現される。
<ルールDB>
図4は、ルールDBの記憶内容の一例を示す説明図である。ルールDB400は、ルールID項目と、適用条件項目と、変換内容項目と、を有する。ルールDB400は、ルールごとに各項目が設定されレコードを構成する。ルールDB400で規定されたルールは、部分示性式を生成する際に生成装置から選択される。
ルールID項目には、ルールIDがレコードごとに格納される。ルールIDとは、ルールを一意に特定する情報である。適用条件項目には、適用条件がレコードごとに格納される。適用条件とは、ルールを適用するために示性式や部分示性式が満たすべき化学反応に関する条件である。たとえば、エタノールの示性式は「CH3CH2OH」であるため、ルールID=R1の適用条件を満たすことになる。
変換内容項目は、示性式項目と物質名項目とを含む。示性式項目には、示性式や部分示性式に適用される化学反応がレコードごとに格納されている。また、物質名項目には、物質名や部分名に適用される名称変更内容がレコードごとに格納されている。名称変更内容には、「変更なし」と「語頭の追加」と「語尾の追加」の3種類がある。
図5は、生成装置による示性式生成例(その1)を示す説明図である。図5では、図1に示したルールDB400のルールID=R1を適用した場合の例である。図5では、生成元を、物質名「プロパン」、示性式「CH3CH2CH3」とする。
ルールR1が適用されると、示性式「CH3CH2CH3」から、「CH2CH2CH3」,「CH3CHCH3」,「CH3CH2CH2」という3種類の部分示性式が生成される。また、物質名「プロパン」は変更されず、「プロパン」はそのまま部分名となる。
図6は、生成装置による示性式生成例(その2)を示す説明図である。図6では、図4に示したルールDB400のルールID=R2を適用した場合の例である。図6では、生成元を、部分名「プロパン」、部分示性式「CH2CH2CH3」とする。
ルールR2が適用されると、部分示性式「CH2CH2CH3」から、「CHOHCH2CH3」,「CH2CHOHCH3」,「CH2CH2CH2OH」という3種類の部分示性式が生成される。また、部分名「プロパン」はいずれの部分示性式についても、部分名「プロパノール」となる。なお、部分名「プロパン」に語尾「ノール」がそのまま追加されると、「プロパンノール」となるが、語尾追加の場合は、「プロパン」の語幹「プロパ」に語尾「ノール」が追加されて、「プロパノール」になる。
図7は、生成装置による示性式生成例(その3)を示す説明図である。図7では、図4に示したルールDB400のルールID=R3を適用した場合の例である。図7では、生成元を、部分名「プロパノール」、部分示性式「CHOHCH2CH3」とする。
ルールR3が適用されると、部分示性式「CHOHCH2CH3」から、「CClOHCH2CH3」,「CHOClCH2CH3」,「CHOHCHClCH3」,「CHOHCH2CH2Cl」という4種類の部分示性式が生成される。また、部分名「プロパン」はいずれの部分示性式についても、部分名「クロロプロパノール」となる。つぎに、図8を用いて、ルールの変換内容において語尾が追加される場合に生成装置によって参照される語幹辞書の記憶内容について説明する。
<語幹辞書>
図8は、語幹辞書の記憶内容の一例を示す説明図である。語幹辞書800とは、物質名や部分名の語幹を特定するためのデータベースである。語幹辞書800には既知の物質名の語幹が登録されている。ルールの変換内容において語尾が追加される場合、生成装置は語幹辞書800を参照する。そして、生成装置は、語幹辞書800を最長一致検索することにより、最長一致した語幹を抽出し、適用されるルールに規定されている語尾を、抽出した語幹の末尾に追加することになる。
たとえば、図6の例では、部分名「プロパン」については、「プロパ」が最長一致するため、語幹「プロパ」が語幹辞書800から読み出される。そして、読み出された語幹「プロパ」に語尾「ノール」が追加されて、「プロパノール」になる。語幹辞書800は、たとえば、生成装置が有するROMやRAM、フラッシュメモリ、ディスクなどの記憶装置により実現される。つぎに、図9を用いて、生成装置によって生成された部分名およびその部分示性式の組が登録される部分示性式DBの記憶内容について説明する。
<部分示性式DB>
図9は、部分示性式DBの記憶内容の一例を示す説明図である。部分示性式DB900とは、生成装置によって生成された部分名およびその部分示性式の組を登録するデータベースである。部分示性式DB900は、部分名項目と、部分示性式項目と、確信度項目と、を有する。部分示性式DB900は、部分名で特定される物質ごとに各項目が設定されレコードを構成する。部分名項目には部分名が登録される。また、部分示性式項目には部分示性式が登録される。確信度項目には部分名項目に登録された部分名と部分示性式項目に登録された部分示性式との組の確かさを表す確信度が登録される。すなわち、確信度は、部分示性式が部分名の示性式である確かさを表す。本実施の形態では、確信度は点数で表され、点数が高い順に確信度が高いこととするが、これに限らず、点数が低い順に確信度が高いとしてもよい。また、たとえば、確信度はランクで表されてもよい。たとえば、生成装置が確信度をより確からしさを示す値に更新するとは、確信度がランクの場合、ランクを上げ、確信度が点数であり、かつ点数が高いと確信度が高い場合、点数を上げる。
たとえば、部分示性式DB900の初期状態は空であり、部分名およびその部分示性式の組が生成される都度、レコードに追加されることになる。部分名およびその部分示性式の組がレコードに追加される時には、確信度項目には0が設定される。
図9では、すでに、メタンやメトキシなどの物質について部分名と部分示性式が登録済みの状態を示している。
また、部分示性式DB900に部分名およびその部分示性式の組が登録されている場合には、生成装置は、部分示性式DB900から部分名およびその部分示性式の組を検索することができる。たとえば、特許文書や学術論文には、新規な物質名やその示性式が記載されることがあるが、生成装置は、そのような新規な物質名やその示性式が化学物質データベースに収録されていなくても、生成装置が生成したデータベースから検索することができる。
<生成装置のハードウェア構成例>
図10は、実施の形態にかかる生成装置のハードウェア構成例を示すブロック図である。図10において、生成装置は、CPU(Central Processing Unit)1001と、ROM1002と、RAM(Random Access Memory)1003と、を有している。生成装置は、磁気ディスクドライブ1004と、磁気ディスク1005と、光ディスクドライブ1006と、光ディスク1007と、ディスプレイ1008と、I/F(Interface)1009と、キーボード1010と、マウス1011と、を有している。また、各部はバス1000によってそれぞれ接続されている。
ここで、CPU1001は、生成装置の全体の制御を司る。ROM1002は、ブートプログラムなどのプログラムを記憶している。RAM1003は、CPU1001のワークエリアとして使用される。磁気ディスクドライブ1004は、CPU1001の制御にしたがって磁気ディスク1005に対するデータのリード/ライトを制御する。磁気ディスク1005は、磁気ディスクドライブ1004の制御で書き込まれたデータを記憶する。
光ディスクドライブ1006は、CPU1001の制御にしたがって光ディスク1007に対するデータのリード/ライトを制御する。光ディスク1007は、光ディスクドライブ1006の制御で書き込まれたデータを記憶したり、光ディスク1007に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ1008は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ1008は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
I/F1009は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク1014に接続され、このネットワーク1014を介して他の装置に接続される。そして、I/F1009は、ネットワーク1014と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F1009には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード1010は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス1011は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
<生成装置の機能的構成例>
図11は、生成装置の機能的構成を示すブロック図である。図11において、生成装置1100は、文書情報DB100と、物質名DB1120と、対応関係DB200と、ルールDB400と、語幹辞書800と、部分示性式DB900を有する。物質名DB1120は、物質名や物質名に関係のある文字や文字列が登録されている。物質名DB1120は、たとえば、ROM1002やRAM1003、磁気ディスク1005、光ディスク1007などの記憶装置により実現される。
また、生成装置1100は、文字列抽出部1101と、第1の登録部1102と、ルール抽出部1103と、判断部1104と、変換部1105と、第2の登録部1106と、判定部1107と、を有している。生成装置1100は、取得部1108と、分割部1109と、検索部1110と、生成部1111と、判定部1112と、更新部1113と、削除部1114と、を有している。文字列抽出部1101〜削除部1114は、具体的には、たとえば、図10に示したROM1002、RAM1003、磁気ディスク1005、光ディスク1007などの記憶装置に記憶された生成プログラムをCPU1001に実行させることにより、または、I/F1009により、その機能を実現する。また、各機能部の処理結果は、例えば、RAM1003、磁気ディスク1005、光ディスク1007などの記憶装置に記憶される。
文字列抽出部1101は、文書情報の中から、物質名と物質名の示性式との組を表す条件を満たす文字列を抽出する。上述したように、物質名と物質名の示性式との組を表す条件を満たす文字列とは、たとえば、同義表現を含んでいる文字列である。たとえば、括弧と括弧の直前の単語は、同義である可能性があるため、同義表現を含んでいる文字列とは、たとえば、括弧を有する一文である。具体的には、たとえば、文字列抽出部1101は、文書情報DB100内の文書情報から、括弧を有する一文を抽出する。
たとえば、図1で示したように、文書情報100−1の中から、括弧を有する「エタン(H3CH3)」が抽出される。文字列抽出部1101は、「エタン(H3CH3)」のうち、括弧内の直前の単語「エタン」を抽出する。そして、文字列抽出部1101は、物質名DB1120を検索することで、物質名DB1120内に単語「エタン」の部分文字列が含まれているか否かを判断する。単語「エタン」の部分文字列が含まれている場合、文字列抽出部1101は、単語「エタン」を物質名として特定し、括弧内の文字列「CH3CH3」を示性式として特定する。
そして、第1の登録部1102は、抽出された文字列に含まれる物質名とその示性式との組をデータベースに登録する。具体的には、たとえば、第1の登録部1102は、物質名とその示性式との組を対応関係DB200に登録する。たとえば、特定された物質名「エタン」と示性式「CH3CH3」との組が対応関係DB200に登録される。
ルール抽出部1103は、適用すべき条件と当該条件を満たした場合の変換内容を規定したルール群の中からいずれかのルールを抽出する。具体的には、たとえば、ルール抽出部1103は、ルールDB400のいずれかのルールを抽出する。ルール抽出部1103は、どのルールを抽出するかについては、ランダムでもよく、ルールID順でもよい。また抽出されるルールは、重複してもよい。
判断部1104は、第1の登録部1102によって登録された示性式が、ルール抽出部1103によって抽出されたいずれかのルールでの適用すべき条件を満たすか否かを判断する。具体的には、たとえば、判断部1104は、第1の登録部1102によって登録された示性式が、ルールDB400から抽出されたルールの適用条件を満たすか否かを判断する。たとえば、図5〜図7の例では、抽出されたルールR1〜R3の適用条件を満たしていることになる。一方、エタノールについて、『炭化水素CHの結合』という適用条件(図3を参照)のルールが抽出された場合は、適用条件を満たしていないことになる。
変換部1105は、判断部1104によって満たすと判断された場合、示性式および物質名を変換内容にしたがって変換する。具体的には、たとえば、変換部1105は、抽出されたルールの適用条件を示性式が満たすと判断された場合、抽出されたルールの変換内容にしたがって、物質名およびその示性式を変換し、部分名およびその部分示性式を出力する。また、変換された部分名およびその部分示性式は、ルール抽出部1103にフィードバックされる。これにより、変換された部分名およびその部分示性式について、ルール抽出部1103による抽出処理、判断部1104による判断処理、および変換部1105による変換処理が、再帰的に実行されることになる。
なお、変換部1105による変換例については、図5〜図7に示したように、示性式または部分示性式は、化学反応に応じた変換がおこなわれる。また、物質名または部分名については、変更なし、語頭の追加、または語尾の追加が実行される。抽出されたルールに語尾の追加が規定されている場合には、語幹辞書800に対する最長一致検索により、変換部1105は、物質名または部分名の語幹を抽出する。そして、変換部1105は、抽出した語幹に、ルール規定されている語尾を追加することにより、あらたな部分名を生成することになる。
また、変換部1105では、図5〜図7に示したように、複数の変換候補が得られるが、いずれの変換候補について変換をおこなってもよく、いずれか1つについて変換をおこなってもよい。すなわち、少なくとも1つ変換すればよい。変換候補が複数ある場合については、ユーザは、予め変換すべき数の上限を設定しておくこととしてもよい。たとえば、部分示性式DB900の構築を早期に実現したい場合には、ユーザは、当該上限を低く(たとえば、上限=1)に設定すればよく、多くの部分示性式を得たい場合には、ユーザは、当該上限を高く設定すればよい。
第2の登録部1106は、変換済みの化学式および物質名をデータベースに登録する。具体的には、たとえば、第2の登録部1106は、変換結果である部分名とその示性式を、部分示性式DB900に登録する。これにより、図9に示したように、部分示性式DB900が構築されることになる。なお、変換結果である部分名とその示性式がすでに部分示性式DB900に登録済みである場合は、第2の登録部1106は、登録処理を実行しない。これにより、レコード数の増加が抑制され、部分示性式DB900の省メモリ化を図ることができる。
判定部1107は、変換済みの化学式および物質名が第2の登録部1106において新規登録された化学式および物質名であるか否かを判定する。具体的には、たとえば、判定部1107は、変換結果である部分名とその示性式の部分示性式DB900への登録が新規登録であるか否かを判定する。新規登録である場合、ルール抽出部1103は、ルール群の中からいずれかのルールを抽出する。すなわち、変換部1105から変換結果がルール抽出部1103にフィードバックされるが、判定部1107によって新規登録と判定された場合に限り、ルールDB400からルールが抽出されることになる。これにより、登録済みの部分名とその部分示性式についての抽出処理、判断処理、および変換処理が抑制され、部分示性式DB900の構築作業の効率化を図ることができる。
つぎに、生成装置1100は、対応関係DB200内の物質名とその示性式の組を、部分示性式DB900内の物質名とその示性式の組を連結して再現できるか否かを判断することにより、部分示性式DB900に登録された物質名とその示性式の組の確度を判定する処理について説明する。
取得部1108は、文書情報から抽出された物質名および当該物質名の化学式を取得する。具体的には、たとえば、取得部1108は、対応関係DB200のあるレコードを選択することにより、選択されたレコードでの物質名および当該物質名の示性式の組を読み出す。ここで、読み出されたレコードでの物質名を抽出物質名とし、選択されたレコードでの示性式を抽出示性式とする。
そして、分割部1109は、抽出物質名から、当該抽出物質名と一致するデータベース内の第1の物質名を抽出し、抽出物質名から第1の物質名を除いた残余の文字列から、当該残余の文字列と一致するデータベース内の第2の物質名を抽出することにより、抽出物質名を第1の物質名と第2の物質名とに分割する。
図12は、抽出物質名の分割および確信度の更新に関する一の例を示す説明図である。図12では、取得部1108が、対応関係DB200から、物質名「エタンスルホン酸」、示性式「CH3CH2SO3H」を読み出した例を挙げる。具体的には、たとえば、分割部1109は、部分示性式DB900を検索して、部分示性式DB900内の部分名が抽出物質名「エタンスルホン酸」の先頭から最長一致する部分名を抽出する。この場合、部分名「エタン」が抽出されたとする。
分割部1109は、抽出物質名「エタンスルホン酸」から、抽出された部分名「エタン」を除いた残余の文字列「スルホン酸」について、同様に、部分示性式DB900を検索する。その結果、部分名「スルホン酸」が最長一致検索された場合、分割部1109は、残余の文字列「スルホン酸」から部分名「スルホン酸」を抽出する。その結果、残余の文字列がなくなるため、分割部1109による分割は、分割成功となる。これにより、分割部1109は、抽出物質名「エタンスルホン酸」を、部分名「エタン」と部分名「スルホン酸」に分割することができる。
検索部1110は、分割部1109によって分割された第1の物質名の第1の化学式をデータベースから検索するとともに、分割部1109によって分割された第2の物質名の第2の化学式をデータベースから検索する。図12の例では、分割部1109が抽出物質名「エタンスルホン酸」を、部分名「エタン」と部分名「スルホン酸」に分割した場合を例に挙げている。
具体的には、検索部1110は、分割で得られた部分名「エタン」の示性式「CH3CH2」と示性式「CHF2OCHFCF3」を部分示性式DB900から検索する。また、検索部1110は、分割で得られた「スルホン酸」の示性式「SO3H」を部分示性式DB900から検索する。また、分割部1109で3以上の部分名が得られた場合には、検索部1110は、部分名ごとに検索をおこなうことになる。
生成部1111は、検索部1110によって検索された第1の化学式および第2の化学式を連結した連結化学式を生成する。図12を用いて説明すると、生成部1111は、部分示性式DB900から検索された部分名「エタン」の示性式「CH3CH2」と、部分示性式DB900から検索された「スルホン酸」の示性式「SO3H」と、を連結する。連結の順序は、部分名の順序となる。したがって、部分名「エタン」の示性式「CH3CH2」が先頭となり、「スルホン酸」の示性式「SO3H」が末尾となる。この連結により、生成部1111は、連結示性式として「CH3CH2SO3H」を生成する。
また、図12で示すように検索部1110において示性式が複数検索される場合がある。たとえば、「エタン」の示性式として、「CH3CH2」のほか、部分示性式DB900から部分示性式「CHF2OCHFCF3」が検索される。この場合、上述した連結示性式「CH3CH2SO3H」のほか、「CHF2OCHFCF3SO3H」が生成される。
すなわち、分割された一方の部分名からm1個の部分示性式が検索され、他方の部分示性式からm2個の部分示性式が検索された場合、m1×m2個の連結示性式が生成されることになる。なお、検索部1110で3以上の示性式が検索された場合は、生成部1111は、検索された示性式を連結して連結示性式を生成する。すなわち、分割された部分名がk個、各部分名から検索された部分示性式の数が、m1,m2,…,mk個とすると、m1×m2×…×mk個の連結示性式が生成されることになる。なお、検索により部分示性式が得られなかった場合、生成装置1100は、たとえば、「XXXX」といった不明であることを示す文字列として扱うことにする。上記の例で、スルホン酸の示性式が検索で得られない場合は、「CH3CH2XXXX」となる。
つぎに、判定部1112は、生成部1111によって生成された連結化学式と、第1のデータベースに含まれる抽出物質名の組である抽出化学式と、が一致するか否かを判定する。具体的には、たとえば、判定部1112は、連結示性式「CH3CH2SO3H」,「CHF2OCHFCF3SO3H」と、抽出示性式「CH3CH2SO3H」と、が完全に一致するか否かを判定する。判定部1112は、連結示性式「CH3CH2SO3H」は抽出示性式と一致するが、連結示性式「CHF2OCHFCF3SO3H」は抽出示性式と一致しないと判定する。
更新部1113は、判定部1112によって一致すると判定された場合、第2のデータベースに含まれる第1の化学式の確かさを表す確信度と第2の化学式の確かさを表す確信度とをより確からしさを示す値に更新する。具体的には、更新部1113は、判定部1112によって一致すると判定された場合、第1の化学式の確かさを表す確信度と第2の化学式の確かさを表す確信度とを更新前よりも高くする。
より具体的には、たとえば、更新部1113は、判定部1112によって一致すると判定された場合、連結化合式を構成する部分示性式に関する部分示性式DB900内の確信度に加点する。連結化合式「CH3CH2SO3H」は抽出示性式と一致すると判定されたため、更新部1113は、部分名「エタン」および部分示性式「CH3CH2」であるレコードの確信度に1点加点する。更新部1113は、部分名「スルホン酸」および部分示性式「SO3H」であるレコードの確信度に1点加点する。ここでは、加点数を1点としているが特に限定しない。一方、連結示性式「CHF2OCHFCF3SO3H」は抽出示性式と一致しないと判定されたため、更新部1113は、部分名「エタン」および部分示性式「CHF2OCHFCF3」であるレコードの確信度を更新しない。たとえば、更新部1113は、部分示性式DB900内のレコードを確信度の高い順に並び替えてもよい。
これにより、文書情報から抽出された物質名とその示性式が誤りであるか否かに関わらず、抽出された物質名とその示性式を再現するごとに部分示性式DB900内の部分名とその部分示性式が寄与したか否かによって部分名とその部分示性式の確かさを判定することができる。
また、上述した分割部1109による抽出物質名の分割例では、第1の部分名「エタン」と第2の部分名「スルホン酸」とに分割した例を説明したが、残余の文字列がまだ残されている場合は、残余の文字列がなくなるまで再帰的に部分示性式DB900の最長一致検索がおこなわれることになる。その結果、分割成功の場合は、3以上の部分名に分割されることになり、得られた部分名ごとに、示性式が取得されることになる。
つぎに、取得部1108によって抽出物質名の分割および確信度の更新に関する他の例について、図13を用いて説明する。
図13は、抽出物質名の分割および確信度の更新に関する他の例を示す説明図である。図13では、取得部1108が、対応関係DB200から、抽出物質名「エタンスルホン酸」、示性式「CHES」を読み出した例を挙げる。図13では、図12で示した例と同様に、分割部1109が、抽出物質名「エタンスルホン酸」を、部分名「エタン」と部分名「スルホン酸」に分割する。
そして、図13では、図12で示した例と同様に、生成部1111が、連結示性式「CH3CH2SO3H」,「CHF2OCHFCF3SO3H」を生成する。そして、たとえば、判定部1112は、連結示性式「CH3CH2SO3H」,「CHF2OCHFCF3SO3H」と、抽出示性式「CHES」と、が先頭から完全に一致するか否かを判定する。
図13の例では、判定部1112は、いずれの連結示性式も、抽出示性式とは一致しないと判断される。そして、更新部1113は、部分名「エタン」、部分示性式「CH3CH2」を含むレコードの確信度と、部分名「エタン」、部分示性式「CHF2OCHFCF3」を含むレコードの確信度と、部分名「スルホン酸」、部分示性式「SO3H」を含むレコードの確信度を更新しない。
また、図12および図13で示したような分割部1109による抽出物質名の分割例では、成功例について説明したが、部分示性式DB900の最長一致検索で検索されなかった場合は、分割失敗となる。分割失敗について、対応関係DB200の中の物質名「メタンチオール」、示性式「CH3SH」の場合を例に挙げる。物質名「メタンチオール」を抽出物質名とし、示性式「CH3SH」を抽出示性式とする。
具体的には、たとえば、分割部1109は、部分示性式DB900を検索して、部分示性式DB900内の部分名が抽出物質名「メタンチオール」の先頭から最長一致する部分名を抽出する。この場合、部分名「メタン」が抽出されたとする。
つぎに、分割部1109は、抽出物質名「メタンチオール」から、抽出された部分名「メタン」を除いた残余の文字列「チオール」について、同様に、部分示性式DB900を検索する。分割部1109は、残余の文字列「チオール」について、部分示性式DB900の最長一致検索で検索されない。したがって、分割部1109は、分割失敗となる。
そして、検索部1110は、部分示性式DB900から、分割部1109によって検索された部分名の部分示性式を検索する。たとえば、検索部1110は、部分示性式DB900の中から、部分名「メタン」の部分示性式「CH3」を検索する。
第2の登録部1106は、抽出示性式から検索部1110によって検索された部分名の部分示性式を除いた示性式と、残余の文字列と、の組を部分示性式DB900に登録する。具体的には、たとえば、第2の登録部1106は、抽出示性式「CH3SH」から部分示性式「CH3」を除いた示性式「SH」と、残余の文字列「チオール」と、の組を部分示性式DB900に登録する。「メタンチオール」の例では抽出示性式に部分示性式が含まれているが、たとえば、抽出示性式に部分示性式が含まれていない場合には、第2の登録部1106はあらたに示性式と物質名の組を登録しない。
また、対応関係DB200内の物質名の示性式から、あらたに部分名と部分示性式とを部分示性式DB900に登録する例について図14を用いて説明する。
図14は、部分示性式DB900の登録数を増やす例を示す説明図である。たとえば、取得部1108は、対応関係DB200の中から、物質名と示性式との組を1つ選択する。ここでは、物質名「メタンチオール」と示性式「CH3SH」を例に挙げて説明する。具体的には、たとえば、分割部1109は、部分示性式DB900を検索して、部分示性式DB900内の部分名が抽出物質名「メタンチオール」の先頭から最長一致する部分名を抽出する。この場合、部分名「メタン」が抽出されたとする。
分割部1109は、抽出物質名「メタンチオール」から、抽出された部分名「メタン」を除いた残余の文字列「チオール」について、同様に、部分示性式DB900を検索する。その結果、部分名「チオール」が最長一致検索されない。
そこで、検索部1110は、分割部1109によって分割された部分名の化学式をデータベースから検索する。具体的には、たとえば、検索部1110は、部分示性式DB900から部分名「メタン」の部分示性式「CH3」を検索する。
削除部1114は、分割部1109によって部分示性式DB900から検索されなかった残余の文字列から先頭の文字を削除する。たとえば、削除部1114は、残余の文字列「チオール」の先頭の文字「チ」を削除する。
分割部1109は、部分示性式DB900を検索して、部分示性式DB900内の部分名が削除部1114による削除後の残余の文字列の先頭から最小一致する部分名を抽出する。そして、削除部1114は、分割部1109によって部分示性式DB900から検索されなかった残余の文字列から先頭の文字を削除する。図14の例では、分割部1109と削除部1114の処理が繰り返されることにより、残余の文字列から文字が無くなる。
そして、第2の登録部1106は、残余の文字列から削除される文字が無い場合、削除部1114によって削除された文字順に並べた文字列と、抽出示性式から、検索部1110により検索された部分名の部分示性式を除いた示性式と、の組を第2のデータベースへ登録する。たとえば、第2の登録部1106は、削除された文字順に並べた文字列「チオール」と、抽出示性式「CH3SH」から部分示性式「CH3」を除いた示性式「SH」と、の組を部分示性式DB900に登録する。
これにより、生成装置1100が、対応関係DB200からの物質名とその示性式を再現するために、要素となる示性式の種類を部分示性式DB900に増やすことができる。したがって、生成装置1100が、対応関係DB200からの物質名とその示性式を再現できる可能性を向上させることができる。
<対応関係DB200と部分示性式DB900作成処理手順>
図15は、生成装置1100による対応関係DB200と部分示性式DB900の作成処理手順を示すフローチャートである。まず、生成装置1100は、文書情報DB100から未選択の文書情報があるか否かを判断する(ステップS1501)。文書情報DB100から未選択の文書情報がある場合(ステップS1501:Yes)、生成装置1100は、文書情報DB100から未選択の文書情報を選択する(ステップS1502)。そして、生成装置1100は、選択した文書情報から、物質名と示性式の組を表す条件を満たす文字列を抽出する(ステップS1503)。
つぎに、生成装置1100は、抽出した文字列から物質名と示性式を特定し(ステップS1504)、物質名と示性式との組を対応関係DB200に登録する(ステップS1505)。たとえば、生成装置1100が、文書情報から、同義表現の条件を満たす「エタン(H3CH3)」を抽出し、カタカナである「エタン」を物質名として特定し、括弧内のアルファベットを含む「CH3CH3」を示性式として特定する。そして、たとえば、生成装置1100が、特定した物質名「エタン」と示性式「CH3CH3」との組をあらたなレコードとして対応関係DB200に登録する。
そして、生成装置1100は、あらたな物質名と示性式の組に対して、示性式部品化処理を実行し(ステップS1506)、ステップS1501へ戻る。
図16は、図15で示した示性式部品化処理(ステップS1506)の詳細な説明を示すフローチャートである。まず、生成装置1100は、対応関係DB200から、あらたに登録された部分名と部分示性式を読み込む(ステップS1601)。示性式部品化ルール適用処理を実行する(ステップS1602)。示性式部品化ルール適用処理(ステップS1602)は、物質名とその示性式の組に対しルールDB400のルールを適用することにより、部分名とその部分示性式の組を生成する処理である。示性式部品化ルール適用処理(ステップS1602)の詳細については後述する。
このあと、生成装置1100は、示性式部品化ルール適用処理(ステップS1602)で得られた部分名とその部分示性式の組を部分示性式DB900に登録する(ステップS1603)。そして、生成装置1100は、当該登録が部分名とその部分示性式の組について新規登録であるか否かを判断する(ステップS1604)。新規登録である場合(ステップS1604:Yes)、生成装置1100は、当該登録が部分名とその部分示性式の組についてルール適用が可能か否かを判断する(ステップS1605)。たとえば、適用したルール数が予め設定された上限を超えた場合や、未適用のルールがない場合、生成された部分示性式の数が予め設定された上限を超えた場合、示性式部品化処理(ステップS1506)を開始してから所定時間経過した場合などが挙げられる。
適用可能である場合(ステップS1605:Yes)、生成装置1000は、示性式部品化処理を実行する(ステップS1606)。示性式部品化処理(ステップS1606)は、示性式部品化処理(ステップS1506)と同一処理である。これにより、生成装置1100は、部分名とその部分示性式の組を再帰的に生成することができる。示性式部品化処理が再帰的に実行されるため、ステップS1605のYesの場合、ステップS1601に戻る。ステップS1601では、新規登録された部分名とその部分示性式の組が複数ある場合には、生成装置1100は、それぞれ読み込みをおこない、それぞれについて、示性式部品化ルール適用処理(ステップS1602)に戻って再帰的処理をおこなうことになる。
また、ステップS1604において、新規登録でない場合(ステップS1604:No)、すでに部分示性式DB900に登録済みであるため、生成装置1100は、示性式部品化処理を終了し示性式部品化処理を呼び出したステップへ戻ることになる。また、ステップS1604において適用不可と判断された場合も(ステップS1604:No)、生成装置1100は、示性式部品化処理を終了し示性式部品化処理を呼び出したステップへ戻ることになる。このようにして、示性式部品化処理(ステップS1506)により、部分名とその部分示性式の組が再帰的に生成されて部分示性式DB900に登録されることになる。
図17は、図16で示した示性式部品化ルール適用処理(ステップS1602)の詳細な説明を示すフローチャートである。まず、生成装置1100は、適用条件がマッチするルールがルールDB400にあるか否かを判断する(ステップS1701)。適用条件がマッチするルールがある場合(ステップS1701:Yes)、生成装置1100は、適用条件がマッチするルールのうち1つを選択する(ステップS1702)。つぎに、生成装置1100は、示性式を選択ルールにしたがって変更する(ステップS1703)。対象となる示性式が部分示性式である場合も同様である。
そして、生成装置1100は、選択ルールに物質名の変更が規定されているか否かを判断する(ステップS1704)。規定されていない場合(ステップS1704:No)、ステップS1701に戻る。一方、規定されている場合(ステップS1704:Yes)、生成装置1100は、規定されている変更が語尾の追加であるか否かを判断する(ステップS1705)。語尾の追加である場合(ステップS1705:Yes)、生成装置1100は、語幹辞書800から物質名の語幹を特定して(ステップS1706)、ステップS1707に移行する。
一方、生成装置1100は、ステップS1705において語尾の追加でない場合(ステップS1705:No)、語頭の追加になるため、ステップS1707に移行する。ステップS1707では、語尾または語頭を追加することで、生成装置1100は、部分名を生成し(ステップS1707)、ステップS1701に戻る。ステップS1701において、適用条件がマッチするルールがない場合(ステップS1701:No)、生成装置1100は、示性式部品化ルール適用処理(ステップS1602)で得られた部分名とその部分示性式の組を部分示性式DB900に登録する(ステップS1603)。なお、ステップS1704〜S1707の処理は、対象となる物質名が部分名である場合も同様である。このようにして、示性式部品化ルール適用処理(ステップS1602)により、部分名とその部分示性式が生成されることになる。
<確信度更新処理手順>
図18は、生成装置1100による確信度更新処理手順を示すフローチャートである。まず、生成装置1100が、対応関係DB200から未選択の物質名と示性式の組があるか否かを判断する(ステップS1801)。ある場合(ステップS1801:Yes)、生成装置1100は、対応関係DB200から未選択の物質名と示性式の組を読み込み(ステップS1802)。ここで、読み込まれた物質名を抽出物質名と称し、読み込まれた示性式を抽出示性式と称する。そして、生成装置1100は、抽出物質名分割処理を実行する(ステップS1803)。抽出物質名分割処理については、図19を用いて後述する。
生成装置1100は、複数の分割部分名のうち、未選択の分割部分名があるか否かを判断する(ステップS1804)。そして、未選択の分割部分名がある場合(ステップS1804:Yes)、生成装置1100は、選択分割部分名を1つ選択し(ステップS1805)、選択分割部分名の部分示性式を部分示性式DB900から検索し(ステップS1806)、ステップS1804へ戻る。
一方、ステップS1804において、未選択の分割部分名がない場合(ステップS1804:No)、生成装置1100が、部分示性式を連結して連結示性式を生成し(ステップS1807)、抽出示性式と連結示性式が一致するか否かを判定する(ステップS1808)。抽出示性式と連結示性式が一致する場合(ステップS1808:Yes)、生成装置1100が、部分示性式DB900内の連結示性式を構成する部分示性式の確信度を更新し(ステップS1809)、ステップS1801へ移行する。抽出示性式と連結示性式が一致しない場合(ステップS1808:No)、生成装置1100が、ステップS1801へ戻る。
また、ステップS1801において、対応関係DB200から未選択の物質名と示性式の組がない場合(ステップS1801:No)、生成装置1100は、一連の処理を終了する。
図19は、図18で示した抽出物質名分割処理(ステップS1804)の詳細な説明を示すフローチャートである。まず、生成装置1100は、部分示性式DB900に、未選択の部分名があるか否かを判断する(ステップS1901)。部分示性式DB900に、未選択の部分名がある場合(ステップS1901:Yes)、生成装置1100が、部分示性式DB900から未選択の部分名を1つ選択する(ステップS1902)。選択された部分名を「選択部分名」と称す。
生成装置1100は、選択部分名が抽出物質名に含まれているか否かを判断する(ステップS1903)。たとえば、生成装置1100は、抽出物質名の先頭からの最長一致検索をおこなうことにより判断する。たとえば、選択部分名が「エタン」、抽出物質名が「エタンスルホン酸」である場合、最長一致した選択部分名「エタン」が抽出物質名「エタンスルホン酸」に含まれている。
選択部分名が抽出物質名に含まれていない場合(ステップS1903:No)、生成装置1100はあらたに部分名を選択するため、ステップS1901に戻る。一方、選択部分名が抽出物質名に含まれている場合(ステップS1903:Yes)、生成装置1100は、選択部分名を抽出物質名からの分割部分名として保持する(ステップS1904)。上述の場合、選択部分名「エタン」を分割部分名として保持する。
このあと、生成装置1100は、選択部分名を除いた残余文字列をあらたに抽出物質名に設定する(ステップS1905)。たとえば、上述の場合、生成装置1100は、抽出物質名「エタンスルホン酸」から選択部分名「エタン」を除いた残余文字列「スルホン酸」をあらたに抽出物質名に設定する。そして、ステップS1901に戻る。
このようにして、抽出物質名がなくなるまでステップS1901〜S1905を繰り返すことになる。上述の場合、あらたな抽出物質名「スルホン酸」について、選択部分名として「スルホン酸」が出現した場合、選択部分名「スルホン酸」は抽出物質名「スルホン酸」に含まれる。したがって、生成装置1100は、選択部分名「スルホン酸」を分割部分名として保持する。一方、部分示性式DB900に「スルホン酸」が登録されていない場合、抽出物質名「スルホン酸」は、分割部分名として保持されないことになる。
このあと、ステップS1901において、未選択の部分名がない場合(ステップS1901:No)、生成装置1100は分割成功か否かを判断する(ステップS1906)。たとえば、分割部分名として保持されていない抽出物質名が残ってない場合は、分割部分名が複数保持されているため、分割成功となる。上述の例では、「スルホン酸」が分割部分名として保持された場合は、抽出物質名が残らなくなるため、生成装置1100は分割成功と判断する。一方、「スルホン酸」が分割部分名として保持されなかった場合は、「スルホン酸」が抽出物質名として残るため、生成装置1100は分割失敗と判断する。
分割成功の場合(ステップS1906:Yes)、生成装置1100は、保持された分割部分名を関連付けて保存する(ステップS1907)。そして、ステップS1804に移行し、関連付けられた分割部分名は、ステップS1805での選択対象となる。一方、分割失敗の場合(ステップS1906:No)、ステップS1904での抽出物質名では分割できなかったことになるため、生成装置1100は、登録処理を実行し(ステップS1908)、ステップS1801へ戻る。上述の例では、登録処理(ステップS1908)は、分割部分名として保持されなかった「スルホン酸」をあらたに部分示性式DB900に登録する処理である。登録処理ついては、図20で詳細に説明する。このようにして、抽出物質名分割処理(ステップS1803)では、生成装置1100は、物質名の文字列を複数の部分名に分割することができる。さらに、物質名の文字列の分割に失敗した場合には、部分示性式DB900にあらたなレコードを登録する。
図20は、図19で示した登録処理(ステップS1908)の詳細な説明を示すフローチャートである。まず、生成装置1100が、分割部分名があるか否かを判断する(ステップS2001)。分割部分名がない場合(ステップS2001:No)、生成装置1100が、抽出示性式と抽出物質名との組を部分示性式DB900に登録し(ステップS2007)、ステップS1801へ戻る。これにより、部分示性式DB900にあらたな示性式と物質名との組が登録される。
そして、分割部分名がある場合(ステップS2001:Yes)、生成装置1100は、複数の分割部分名のうち、未選択の分割部分名があるか否かを判断する(ステップS2002)。複数の分割部分名のうち、未選択の分割部分名がある場合(ステップS2002:Yes)、生成装置1100は、選択分割部分名を1つ選択し(ステップS2003)、選択分割部分名の部分示性式を部分示性式DB900から検索し(ステップS2004)、ステップS2002へ戻る。
一方、複数の分割部分名のうち、未選択の分割部分名がない場合(ステップS2002:No)、生成装置1100は、部分示性式を連結して、連結示性式を生成する(ステップS2005)。生成装置1100は、抽出示性式から連結示性式を除いた残余の示性式と分割部分名との組を部分示性式DB900に登録し(ステップS2006)、ステップS1801へ戻る。
<部分示性式DB900の登録処理手順>
図21は、生成装置1100による部分示性式DB900の登録処理手順の一例を示すフローチャートである。生成装置1100が、対応関係DB200から未選択の物質名と示性式の組があるか否かを判断する(ステップS2101)。未選択の物質名と示性式の組がある場合(ステップS2101:Yes)、生成装置1100が、対応関係DB200から未選択の物質名と示性式の組を読み込み(ステップS2102)。ここでは、読み込まれた物質名を抽出物質名と称し、読み込まれた示性式を抽出示性式と称する。
つぎに、生成装置1100が、部分示性式DB900に、未選択の部分名があるか否かを判断する(ステップS2103)。未選択の部分名がある場合(ステップS2103:Yes)、生成装置1100が、部分示性式DB900から未選択の部分名を1つ選択する(ステップS2104)。生成装置1100が、選択部分名が抽出物質名に含まれているか否かを判断する(ステップS2105)。
選択部分名が抽出物質名に含まれていない場合(ステップS2105:No)、ステップS2103に戻る。一方、選択部分名が抽出物質名に含まれている場合(ステップS2105:Yes)、生成装置1100が、ステップS2106へ移行し、生成装置1100が、選択部分名を除いた残余文字列を抽出物質名に設定する(ステップS2106)。たとえば、選択部分名が「メタン」、抽出物質名が「メタンチオール」である場合、最長一致した選択部分名「メタン」が抽出物質名「メタンチオール」に含まれている。生成装置1100が、抽出物質名「メタンチオール」から選択部分名「メタン」を除いた残余文字列「チオール」をあらたに抽出物質名に設定する。
そして、生成装置1100が、選択部分名の部分示性式を部分示性式DB900から検索し(ステップS2107)、抽出示性式を除いた残余示性式を抽出示性式に設定する(ステップS2108)。上述の場合、生成装置1100が、選択部分名「メタン」の部分示性式「CH3」を検索する。生成装置1100が、抽出示性式「CH3SH」から部分示性式「CH3」を除いた残余示性式「SH」をあらたに抽出示性式に設定する。
ステップS2103において、未選択の部分名がない場合(ステップS2103:No)、生成装置1100が、抽出物質名から先頭の1文字を削除し(ステップS2109)、そして、生成装置1100が、削除文字を連結して、削除文字列を生成する(ステップS2110)。上述の場合、たとえば、生成装置1100が、抽出物質名「チオール」から先頭の1文字「チ」を削除し、削除文字列「チ」を生成する。そして、生成装置1100が、削除後の抽出物質名「オール」について、ステップS2103〜ステップS2108の処理を繰り返す。
生成装置1100が、抽出物質名が空か否かを判断する(ステップS2111)。抽出物質名が空でない場合(ステップS2111:No)、ステップS2103へ戻る。一方、抽出物質名が空である場合(ステップS2111:Yes)、生成装置1100が、削除文字列と抽出示性式との組を部分示性式DB900に登録し(ステップS2112)、ステップS2101へ戻る。上述の場合、抽出物質名「オール」、「ール」、「ル」と一致する部分名が部分示性式DB900内に無いため、生成装置1100が抽出物質名内の文字をすべて削除してしまう。そのため、生成装置1100が、削除文字列「チオール」と抽出示性式「SH」との組を部分示性式DB900に登録する。
ステップS2101において、未選択の物質名と示性式の組がない場合(ステップS2101:No)、一連の処理を終了する。また、生成装置1100が、図18で示した確信度更新処理のうち分割失敗の場合を除いた処理と、図20で示した部分示性式DB900の登録処理とを交互に繰り返して実行してもよい。
以上説明したように、本実施の形態にかかる生成装置、生成プログラム、生成方法は、文書情報の中から、物質名と化学式とが同義表現で記述されていると推定される部分を抽出して、物質名と化学式の組をデータベースに蓄積する。これにより、生成装置が、電子情報から物質名とその化学式の組の候補を自動で見つけ出すことができる。また、販売されている物質名とその化学式の対応関係を示す辞書は高価であるが、本生成装置は、既存の化学系や薬学系の電子文書から自動でデータベースを作成できるため、物質名とその化学式からあらたな化学式を作成するための費用を抑制することができる。
また、生成装置が、電子文書から作成した第1のデータベースに含まれる物質名の化学式に化学反応のルールを適用して、第2のデータベースに登録する。これにより、生成装置が、化学式から派生した化学式の生成精度を向上することができ、自動で第2のデータベースを作成することができる。
また、第1のデータベースに含まれる物質名とその化学式の組が必ずしも正確であるとは限らない。そのため、第1のデータベース内の物質名と化学式の組に化学反応のルールが適用されることで得られた第2のデータベース内の物質名と化学式の組が必ずしも正確であるとは限らない。そこで、生成装置が、第2のデータベースには物質名とその化学式の組が複数登録されているため、生成装置が、第2のデータベース内の物質名とその化学式の組を連結して、第1のデータベース内の物質名とその化学式の組を再現できるか否かを判断する。そして、生成装置が、第1のデータベース内の物質名とその化学式の組を再現できる第2のデータベース内の物質名とその化学式の組は確度が高いと判断する。したがって、ユーザはこの確度を第2のデータベース内のどの化学式が有用であるか、存在しうるかなどの指標として用いることができる。
また、第2のデータベースに登録されている物質名とその化学式の組の登録種類数が少ないと、第1のデータベース内の物質名とその化学式を再現できない場合がある。そこで、電子文書から抽出した物質名の部分名とその物質名の示性式の部分示性式とが、第2のデータベース内に登録されていない場合、生成装置が、その部分名とその部分示性式の組をあらたにデータベースに登録する。これにより、生成装置が、データベースへの登録種類数の増加を図ることができる。生成装置が、第2のデータベース内の確度の判定処理と第2のデータベース内の登録種類数を増やす処理を交互に繰り返すことで、第2のデータベース内に登録された示性式から有用な示性式を見つけ出すことができる。
なお、本実施の形態で説明した生成方法は、予め用意された生成プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本生成プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本生成プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)文書情報の中から、物質名と前記物質名の化学式との組を表す条件を満たす文字列を抽出する文字列抽出部と、
前記文字列抽出部によって抽出された文字列に含まれる前記物質名と前記化学式との組を第1のデータベースに登録する第1の登録部と、
を有することを特徴とする生成装置。
(付記2)適用すべき化学反応に関する条件と当該条件を満たした場合の変換内容を規定したルール群の中からいずれかのルールを抽出するルール抽出部と、
前記登録部によって前記第1のデータベースに登録された前記化学式が、前記ルール抽出部によって抽出されたいずれかのルールでの適用すべき条件を満たすか否かを判断する判断部と、
前記判断部によって満たすと判断された場合、前記化学式の組である前記物質名および前記化学式を前記変換内容にしたがって変換する変換部と、
前記変換部による変換済みの化学式および物質名を第2のデータベースに登録する第2の登録部と、
を有することを特徴とする付記1に記載の生成装置。
(付記3)前記第2のデータベースが前記変換済みの化学式と前記変換済みの物質名の組ごとに、前記変換済みの化学式と前記変換済みの物質名の組の確かさを表す確信度を有し、
前記第1のデータベースに含まれる抽出物質名が前記第2のデータベース内の第1の物質名を含む場合、前記登録物質名を、前記第1の物質名と、前記抽出物質名から前記第1の物質名を除いた第2の物質名と、に分割する分割部と、
前記分割部によって分割された第1の物質名の第1の化学式を前記第2のデータベースから検索するとともに、前記分割部によって分割された第2の物質名の第2の化学式を前記第2のデータベースから検索する検索部と、
前記検索部によって検索された前記第1の化学式および前記第2の化学式を連結した連結化学式を生成する生成部と、
前記生成部によって生成された連結化学式と、前記第1のデータベースに含まれる前記抽出物質名の組である抽出化学式と、が一致するか否かを判定する判定部と、
前記判定部が一致と判定をすると、前記第2のデータベースに含まれる前記第1の物質名と前記第1の化学式の組の確かさを表す確信度と前記第2の物質名と前記第2の化学式の組の確かさを表す確信度とをより確からしさを示す値に更新する更新部と、
を有することを特徴とする付記2に記載の生成装置。
(付記4)前記更新部は、
前記判定部によって一致すると判定された場合、前記第1の物質名と前記第1の化学式の組の確かさを表す確信度と前記第2の物質名と前記第2の化学式の組の確かさを表す確信度を更新前よりも高くすることを特徴とする付記3に記載の生成装置。
(付記5)前記検索部は、
前記第2の物質名が前記第2のデータベースに含まれていない場合、前記第1の化学式を前記第2のデータベースから検索し、
前記第2の登録部は、
前記第2の物質名が前記第2のデータベースに含まれていない場合、前記第1のデータベースに含まれる前記抽出物質名の組である抽出化学式のうち、前記検索部により検索された前記第1の化学式を除いた化学式と前記第2の物質名との組を前記第2のデータベースへ登録することを特徴とする付記3に記載の生成装置。
(付記6)前記第2の物質名が前記第2のデータベースに含まれていない場合、前記第2の物質名から先頭の文字を削除する削除部を有し、
前記削除部は、
前記削除部による削除後の第2の物質名が前記第2のデータベースに含まれていない場合、さらに、第2の物質名から前記先頭の文字を削除し、
前記第2の登録部は、
前記削除部によって前記第2の物質名から削除される文字が無い場合、前記削除部によって削除された文字順に並べた文字列と、前記抽出化学式から前記第1の化学式を除いた化学式と、の組を前記第2のデータベースへ登録することを特徴とする付記5に記載の生成装置。
(付記7)コンピュータが、
文書情報の中から、物質名と前記物質名の化学式との組を表す条件を満たす文字列を抽出し、
抽出された文字列に含まれる前記物質名と前記化学式との組を第1のデータベースに登録する、
処理を実行することを特徴とする生成方法。
(付記8)コンピュータに、
文書情報の中から、物質名と前記物質名の化学式との組を表す条件を満たす文字列を抽出し、
抽出された文字列に含まれる前記物質名と前記化学式との組を第1のデータベースに登録する、
処理を実行させることを特徴とする生成プログラム。