(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-04
(45)【発行日】2023-09-12
(54)【発明の名称】情報処理プログラム、情報処理方法および情報処理装置
(51)【国際特許分類】
G06F 16/31 20190101AFI20230905BHJP
G06F 16/383 20190101ALI20230905BHJP
G06F 16/901 20190101ALI20230905BHJP
G06F 16/908 20190101ALI20230905BHJP
【FI】
G06F16/31
G06F16/383
G06F16/901
G06F16/908
(21)【出願番号】P 2021565275
(86)(22)【出願日】2019-12-19
(86)【国際出願番号】 JP2019049967
(87)【国際公開番号】W WO2021124535
(87)【国際公開日】2021-06-24
【審査請求日】2022-02-02
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】片岡 正弘
(72)【発明者】
【氏名】大山 承剛
(72)【発明者】
【氏名】尾上 聡
【審査官】三橋 竜太郎
(56)【参考文献】
【文献】特開2019-204362(JP,A)
【文献】特開2005-182696(JP,A)
【文献】特表2019-525272(JP,A)
【文献】特開2018-045537(JP,A)
【文献】特開2019-101993(JP,A)
【文献】特開2019-159826(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
異なる複数種類の品詞
の複数の語彙であって、同義または所定以上類似する
前記複数の語彙を同一の概念番号に対応付けた類似語彙情報に基づいて、
前記同一の概念番号に対応付けられた前記複数の語彙を、ベクトル空間の近似した位置に埋め込み、
第1の文と第2の文それぞれについて、文に含まれる複数の語彙それぞれの前記ベクトル空間におけるベクトルに基づいて、前記文のベクトルを算出し、
前記第1の文のベクトルと前記第2の文のベクトルとに基づいて、第1の文と第2の文との類似性を判定する
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項2】
前記ベクトル空間におけるベクトルの次元を圧縮する処理を更に実行させ、前記文のベクトルを算出する処理は、次元を圧縮したベクトルを基にして、前記文のベクトルを算出することを特徴とする請求項1に記載の情報処理プログラム。
【請求項3】
前記ベクトル空間は、ポアンカレ空間であり、前記ポアンカレ空間に埋め込まれた語彙の位置を基にして、前記語彙のベクトルを割り当てる処理を更に実行することを特徴とする請求項
1に記載の情報処理プログラム。
【請求項4】
前記第2の文のベクトルと、文章中における前記第2の文の位置を示すオフセットとを対応付けたインデックス情報を生成し、前記類似性の判定結果と、前記インデックス情報とを基にして、類似性のある第2の文を抽出する処理を更に実行することを特徴とする請求項1に記載の情報処理プログラム。
【請求項5】
異なる複数種類の品詞
の複数の語彙であって、同義または所定以上類似する
前記複数の語彙を同一の概念番号に対応付けた類似語彙情報に基づいて、
前記同一の概念番号に対応付けられた前記複数の語彙を、ベクトル空間の近似した位置に埋め込み、
第1の文と第2の文それぞれについて、文に含まれる複数の語彙それぞれの前記ベクトル空間におけるベクトルに基づいて、前記文のベクトルを算出し、
前記第1の文のベクトルと前記第2の文のベクトルとに基づいて、第1の文と第2の文との類似性を判定する
処理をコンピュータが実行することを特徴とする情報処理方法。
【請求項6】
異なる複数種類の品詞
の複数の語彙であって、同義または所定以上類似する
前記複数の語彙を同一の概念番号に対応付けた類似語彙情報に基づいて、
前記同一の概念番号に対応付けられた前記複数の語彙を、ベクトル空間の近似した位置に埋め込みを行う単語ベクトル算出部と、
第1の文と第2の文それぞれについて、文に含まれる複数の語彙それぞれの前記ベクトル空間におけるベクトルに基づいて、前記文のベクトルを算出する文ベクトル算出部と、
前記第1の文のベクトルと前記第2の文のベクトルとに基づいて、第1の文と第2の文との類似性を判定する類似性判定部と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム等に関する。
【背景技術】
【0002】
文章や文(以下、単に文)を解析し、文に含まれる各単語をベクトルで表現する従来技術として、Word2vec(Skip-Gram ModelまたはCBOW)等がある。表記の異なる単語であっても、意味が類似している単語同士は、ベクトルの値も類似するという特徴がある。以下の説明では、単語のベクトルを、「単語ベクトル」と表記する。たとえば、word2vecでは、単語ベクトルを200次元で表現する。
【0003】
文に含まれる単語の単語ベクトルを集積することで、文のベクトルを算出する。以下の説明では、文のベクトルを「文ベクトル」と表記する。表記の異なる文であっても、意味が類似している文同士は、文ベクトルの値も類似するという特徴がある。たとえば、「私はリンゴが好きです。」の文の意味と、「リンゴは私の好物です。」の文の意味は同じであり、「私はリンゴが好きです。」の文ベクトルと、「リンゴは私の好物です。」の文ベクトルとは類似しなければならない。
【0004】
なお、単語にベクトルを割当てる技術として、Poincare Embeddingsと呼ばれる技術も存在する。この技術では、単語とカテゴリとの関係を定義しておき、定義された関係を基にして、単語をポアンカレ空間に埋め込む。そして、ポアンカレ空間において、埋め込まれた単語の位置に応じたベクトルが、単語に割当てられる。
【0005】
図32は、ポアンカレ空間への埋め込みを説明するための図である。たとえば、カテゴリ「肉食動物」に対して、単語「トラ」、「ジャガー」等が定義されている場合、ポアンカレ空間Pに対して、単語「肉食動物」、単語「トラ」、単語「ジャガー」が埋め込まれる。そして、ポアンカレ空間Pの位置に応じたベクトルが、単語「肉食動物」、単語「トラ」、単語「ジャガー」に割当てられる。
【先行技術文献】
【非特許文献】
【0006】
【文献】Valentin Khrulkov1 et al.「Hyperbolic Image Embeddings」Cornell University,2019 April 3
【発明の概要】
【発明が解決しようとする課題】
【0007】
Word2vecでは、文に含まれる単語の単語ベクトルを算出する場合、対象となる単語の前後に出現する単語を基にして、対象となる単語の単語ベクトルを算出している。そのため、類似の意味の単語であっても、文の内容に応じて、単語ベクトルの値が変化し得る。また、類似の意味の単語であっても、単語の品詞に応じて、単語の前後に出現し得る単語が異なるため、同一の意味の単語同士の単語ベクトルの値が必ずしも類似しない場合がある。
【0008】
たとえば、品詞「形容詞」の「好き」と、品詞「名詞」の「好物」は同じ意味であるが、品詞が異なる。そのため、「好き」と「好物」を含む各文を比較すると、「好き」の前後に出現する単語の傾向と、「好物」の前後に出現する単語の傾向とが異なり、「好き」の単語ベクトルと、「好物」の単語ベクトルとが異なる。
【0009】
従って、Word2vecを用いて算出した単語ベクトルを用いて、文ベクトルを算出すると、同じ意味の文の文ベクトルの値が乖離する場合があり、文ベクトルを精度よく算出できていない。このため、文ベクトルを利用して各文の類似性を判定する場合に、判定精度が低下するという問題がある。
【0010】
また、ポアンカレ空間に、単に、同じ品詞の複数の単語を埋め込む従来の手法では、word2vecの場合と同様に、文ベクトルを精度よく算出することができない。
【0011】
さらに、Word2vecでは、単語ベクトルが200次元のため、文ベクトルを算出する場合に、演算量とデータ量が多くなるという問題がある。主成分分析など、ベクトルの次元圧縮・復元する技術が存在する。しかし、単語毎に異なる次元で圧縮・復元が行われるため、文ベクトルの算出には適していない。Poincare Embeddingsも同様である。
【0012】
1つの側面では、本発明は、文ベクトルを精度よく、効率的に算出し、類似性の判定精度を向上させることができる情報処理プログラム、情報処理方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0013】
第1の案では、コンピュータに次の処理を実行させる。コンピュータは、異なる複数種類の品詞について、同義または所定以上類似する語彙を対応付けた類似語彙情報に基づいて、複数の語彙のベクトル空間への埋め込みを行う。コンピュータは、第1の文と第2の文それぞれについて、文に含まれる複数の語彙それぞれのベクトル空間におけるベクトルに基づいて、文のベクトルを算出する。コンピュータは、第1の文のベクトルと第2の文のベクトルとに基づいて、第1の文と第2の文との類似性を判定する。
【発明の効果】
【0014】
文ベクトルを精度よく、効率的に算出し、類似性の判定精度を向上させることができる。
【図面の簡単な説明】
【0015】
【
図1】
図1は、参考技術を説明するための図である。
【
図2】
図2は、本実施例1に係る情報処理装置の処理を説明するための図である。
【
図3】
図3は、本実施例1に係る類似語彙情報を説明するための図である。
【
図4】
図4は、ポアンカレ空間への埋め込み結果の一例を示す図である。
【
図5】
図5は、本実施例1に係る情報処理装置の構成を示す機能ブロック図である。
【
図6】
図6は、テキストデータのデータ構造の一例を示す図である。
【
図7】
図7は、本実施例1に係る類似語彙情報のデータ構造の一例を示す図である。
【
図8】
図8は、本実施例1に係る単語ベクトルテーブルのデータ構造の一例を示す図である。
【
図9】
図9は、本実施例1に係る圧縮単語ベクトルテーブルのデータ構造の一例を示す図である。
【
図10】
図10は、本実施例1に係る圧縮文ベクトルデータのデータ構造の一例を示す図である。
【
図11】
図11は、本実施例1に係る転置インデックスのデータ構造の一例を示す図である。
【
図12】
図12は、本実施例1に係る次元圧縮部の処理を説明するための図(1)である。
【
図13】
図13は、本実施例1に係る次元圧縮部の処理を説明するための図(2)である。
【
図14】
図14は、本実施例1に係る情報処理装置の処理手順を示すフロチャート(1)である。
【
図15】
図15は、本実施例1に係る情報処理装置の処理手順を示すフロチャート(2)である。
【
図16】
図16は、類似語彙情報のその他のデータ構造を説明するための図である。
【
図17】
図17は、本実施例2に係る情報処理装置の処理を説明するための図である。
【
図18】
図18は、本実施例2に係る類似タンパク質情報のデータ構造を示す図である。
【
図19】
図19は、本実施例2に係る情報処理装置の構成を示す機能ブロック図である。
【
図21】
図21は、アミノ酸と塩基、およびコドンとの関係を示す図である。
【
図22】
図22は、本実施例2に係るタンパク質辞書のデータ構造の一例を示す図である。
【
図23】
図23は、本実施例2に係る一次構造データのデータ構造の一例を示す図である。
【
図24】
図24は、本実施例2に係るタンパク質ベクトルテーブルのデータ構造の一例を示す図である。
【
図25】
図25は、本実施例2に係る圧縮タンパク質ベクトルテーブルのデータ構造の一例を示す図である。
【
図26】
図26は、本実施例2に係る圧縮一次構造ベクトルデータのデータ構造の一例を示す図である。
【
図27】
図27は、本実施例2に係る転置インデックスのデータ構造の一例を示す図である。
【
図28】
図28は、本実施例2に係る情報処理装置の処理手順を示すフロチャート(1)である。
【
図29】
図29は、本実施例2に係る情報処理装置の処理手順を示すフロチャート(2)である。
【
図30】
図30は、実施例1の情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【
図31】
図31は、実施例2の情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【
図32】
図32は、ポアンカレ空間への埋め込みを説明するための図である。
【発明を実施するための形態】
【0016】
以下に、本願の開示する情報処理プログラム、情報処理方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例1】
【0017】
本実施例1に係る情報処理装置の説明を行う前に、文ベクトルを算出する参考技術について説明する。
図1は、参考技術を説明するための図である。
図1に示すように、参考技術では、Word2vecによって、テキストデータ10に含まれる各単語の単語ベクトルを算出することで、単語ベクトルテーブル11を生成する。単語ベクトルテーブル11では、単語と、単語ベクトルとが対応付けられる。たとえば、単語ベクトルテーブル11の単語ベクトルの次元は、200次元となる。
【0018】
参考技術では、単語ベクトルテーブル11を用いて、テキストデータ10に含まれる各文の文ベクトルを算出する。参考技術では、文を複数の単語に分割し、各単語の単語ベクトルを集積することで、文の文ベクトルを算出する。参考技術では、単語ベクトルテーブル11に登録された200次元の単語ベクトルを用いて、文ベクトルデータ12を算出する。
【0019】
また、参考技術では、主成分分析を利用することで、文ベクトルの次元数を圧縮する。次元数を圧縮した文ベクトルを、「圧縮文ベクトル」と表記する。参考技術は、他の複数の文について、上記処理を繰り返し実行することで、他の複数の文に対する圧縮文ベクトルを算出し、圧縮文ベクトルデータ12Aを生成する。
【0020】
参考技術では、Word2vecによって、テキストデータ10に含まれる各単語の単語ベクトルを200次元で算出している。そのため、文ベクトルを算出する場合に、200次元の単語ベクトルをそのまま集積しているため、演算量が大きくなってしまう。さらに、各文の類似度を比較する場合、主成分分析では、圧縮文ベクトルが共通な次元に圧縮されていないため、圧縮文ベクトルのままでは評価することができない。そのため、文毎に200次元の文ベクトルに復元し類似度を比較する必要があり、演算量が増加する。
【0021】
一方、参考技術では、それぞれの単語ベクトルを主成分分析し、圧縮単語ベクトルテーブル11Aを生成する。そして、圧縮単語ベクトルテーブル11Aを用いて、テキストデータ10に含まれる各文の文ベクトルを算出し、圧縮文ベクトルデータ12Bを生成する。しかし、主成分分析では、各単語ベクトルが共通では無く、個別に次元圧縮されるため、文ベクトルの算出には適さない。
【0022】
同様に、Poincare Embeddingsにおいても、200次元による文ベクトルの算出や、主成分分析による圧縮単語ベクトルテーブルの問題が発生する。
【0023】
続いて、本実施例1に係る情報処理装置の処理の一例について説明する。
図2は、本実施例1に係る情報処理装置の処理を説明するための図である。
図2に示すように、情報処理装置は、類似語彙情報142を基にして、テキストデータ141に含まれる単語を、ポアンカレ空間に埋め込み、単語ベクトルを算出する。
【0024】
図3は、本実施例1に係る類似語彙情報を説明するための図である。
図3では、本実施例1で用いる類似語彙情報142と、従来技術のPoincare Embeddingsで用いる定義情報5とを示す。
【0025】
類似語彙情報142は、概念番号と、単語と、品詞とを対応付ける。定義情報5との比較を行うために、単語に対応する品詞を便宜的に示す。類似語彙情報142は、同義または所定以上類似する複数の単語(語彙)を、同一の概念番号に対応付ける。たとえば、概念番号「I101」には、単語「好き」、単語「好物」、単語「愛玩」等が対応付けられる。単語「好き」の品詞は「形容詞」、単語「好物」の品詞は「名詞」、単語「愛玩」の品詞は「名詞」であり、品詞が異なる単語であっても、意味が類似していれば、同一の概念番号に対応付けられる。
【0026】
定義情報5は、カテゴリと、単語とを対応付ける。ここでは、類似語彙情報142との比較を行うために、単語に対応する品詞を便宜的に示す。定義情報5では、品詞が名詞となる単語をカテゴリ毎に分類している。
図3に示す例では、カテゴリ「肉食動物」に対して、単語「トラ」、単語「ジャガー」、単語「ライオン」が対応付けられている。定義情報5の単語の品詞は、名詞に限定されている。
【0027】
すなわち、類似語彙情報142では、定義情報5と比較して、単語の品詞の種類によらず、同義または所定以上類似する複数の単語を、同一の概念番号に割当てている。本実施例1に係る情報処理装置は、ポアンカレ空間に単語を埋め込む場合に、類似語彙情報142で定義された同一の概念番号に対応する各単語を、ポアンカレ空間上の近似した位置に集約する。
【0028】
図4は、ポアンカレ空間への埋め込み結果の一例を示す図である。
図4に示すように、単語「好き」、単語「好物」、単語「愛玩」は、同一の概念番号が割当てられているため、ポアンカレ空間Pにおいて、近似した位置p1に埋め込まれる。情報処理装置は、ポアンカレ空間Pの位置p1に応じた単語ベクトルを、単語「好き」、単語「好物」、単語「愛玩」にそれぞれ割り当てる。これによって、同一の概念番号に対応する単語には、近似した単語ベクトルが割り当てられる。ポアンカレ空間の位置に対応するベクトルの次元は適宜設定可能であるが、本実施例1では、200次元とする。
【0029】
図2の説明に戻る。情報処理装置は、テキストデータ141に含まれる他の単語についても、類似語彙情報142を基にして、ポアンカレ空間への埋め込みを行うことで、単語ベクトルを算出し、単語ベクトルテーブル143を生成する。単語ベクトルテーブル143では、単語と、単語ベクトルとが対応付けられる。たとえば、単語ベクトルテーブル143の単語ベクトルの次元は、200次元となる。
【0030】
情報処理装置は、文ベクトルを算出する前に、単語ベクトルテーブル143に格納された各単語ベクトルの次元を圧縮する。たとえば、情報処理装置は、200次元の単語ベクトルを、19次元(19次元は一例)の単語ベクトルに圧縮することで、次元を圧縮した単語ベクトルを生成する。次元を圧縮した単語ベクトルを、「圧縮単語ベクトル」と表記する。情報処理装置は、単語ベクトルテーブル143の各単語ベクトルを圧縮することで、圧縮単語ベクトルテーブル144を生成する。
【0031】
情報処理装置は、圧縮単語ベクトルテーブル144を用いて、テキストデータ141に含まれる各文の圧縮文ベクトルを算出する。情報処理装置は、文を複数の単語に分割し、各単語の圧縮単語ベクトルを圧縮単語ベクトルテーブル144から取得する。情報処理装置は、各単語ベクトルを集積することで、文の圧縮文ベクトルを算出する。情報処理装置は、他の複数の文について、上記処理を繰り返し実行することで、他の複数の文に対する圧縮文ベクトルを算出し、19次元の圧縮文ベクトルデータ145を生成する。
【0032】
本実施例1に係る情報処理装置では、類似語彙情報142を基にして、ポアンカレ空間への埋め込みを行うことで、単語ベクトルを算出し、単語ベクトルテーブル143を生成する。参考技術で説明したWord2vecにとは異なり、同義または所定以上類似する複数の単語に、近似した単語ベクトルを割り当てた単語ベクトルテーブル143を生成することができる。このため、単語ベクトルテーブル143を用いて文ベクトルを算出すると、同じ意味の文の文ベクトル同士は、類似する文ベクトルとなり、文ベクトルを精度よく算出することができる。また、複数の文ベクトルを比較して、類似性を判定する場合、文ベクトルを精度よく算出できているので、類似性の判定精度が向上する。
【0033】
また、情報処理装置では、単語ベクトルテーブル143を共通な19次元に圧縮した圧縮単語ベクトルテーブル144を生成しておき、圧縮単語ベクトルを用いて、圧縮文ベクトルを算出するため、参考技術の200次元での文ベクトル演算量と比較して、演算量を大幅に削減することができる。さらに、各文の類似度も共通な19次元の圧縮文ベクトルのまま評価することができ、参考技術の200次元の文ベクトルに復元し、200次元での類似度の評価に比べ、演算量を大幅に削減することができる。
【0034】
次に、本実施例1に係る情報処理装置の構成について説明する。
図5は、本実施例1に係る情報処理装置の構成を示す機能ブロック図である。
図5に示すように、情報処理装置100は、通信部110と、入力部120と、表示部130と、記憶部140と、制御部150とを有する。
【0035】
通信部110は、ネットワークを介して外部装置(図示略)との間で情報通信を実行する処理部である。通信部110は、NIC(Network Interface Card)等の通信装置に対応する。たとえば、後述する制御部150は、通信部110を介して、外部装置と情報をやり取りする。
【0036】
入力部120は、各種の情報を、情報処理装置100に入力する入力装置である。入力部120は、キーボードやマウス、タッチパネル等に対応する。ユーザは、入力部120を操作して、後述するクエリデータ147を入力してもよい。
【0037】
表示部130は、制御部150から出力される情報を表示する表示装置である。表示部130は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、タッチパネル等に対応する。表示部130は、制御部150から出力される情報を表示する。
【0038】
記憶部140は、テキストデータ141、類似語彙情報142、単語ベクトルテーブル143、圧縮単語ベクトルテーブル144、圧縮文ベクトルデータ145と、転置インデックス146と、クエリデータ147とを有する。記憶部140は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
【0039】
テキストデータ141は、複数の文を含む情報(文章)である。文は、句読点によって区切られる。
図6は、テキストデータのデータ構造の一例を示す図である。
図6に示すように、テキストデータ141には、複数の文が含まれる。テキストデータ141の内容は、
図6に限定されるものではない。
【0040】
類似語彙情報142は、同義または所定以上類似する複数の単語(語彙)を、同一の概念番号に対応付ける情報である。
図7は、本実施例1に係る類似語彙情報のデータ構造の一例を示す図である。
図7に示すように、類似語彙情報142は、概念番号と、単語と、品詞とを対応付ける。たとえば、概念番号「I101」には、単語「好き」、単語「好物」、単語「愛玩」等が対応付けられる。単語「好き」の品詞は「形容詞」、単語「好物」の品詞は「名詞」、単語「愛玩」の品詞は「名詞」である。類似語彙情報142には、必ずしも、品詞の情報が含まれていなくてもよい。
【0041】
単語ベクトルテーブル143は、各単語の単語ベクトルの情報を保持するテーブルである。
図8は、本実施例1に係る単語ベクトルテーブルのデータ構造の一例を示す図である。
図8に示すように、この単語ベクトルテーブル143は、単語と、単語ベクトルとを対応付ける。各単語ベクトルは、ポアンカレ空間に対する埋め込みにより、算出される単語ベクトルであり、たとえば、200次元のベクトルとする。
【0042】
圧縮単語ベクトルテーブル144は、次元圧縮した各単語ベクトル(圧縮単語ベクトル)の情報を保持するテーブルである。
図9は、本実施例1に係る圧縮単語ベクトルテーブルのデータ構造の一例を示す図である。
図9に示すように、この圧縮単語ベクトルテーブル144は、単語と、圧縮単語ベクトルとを対応付ける。たとえば、圧縮単語ベクトルの次元を19次元とするが、これに限定されるものではない。
【0043】
圧縮文ベクトルデータ145は、テキストデータ141に含まれる各文の圧縮文ベクトルの情報を保持するテーブルである。
図10は、本実施例1に係る圧縮文ベクトルデータのデータ構造の一例を示す図である。
図10に示すように、この圧縮文ベクトルデータ145は、文IDと、圧縮文ベクトルとを対応付ける。文IDは、テキストデータ141に含まれる文を一意に識別する情報である。圧縮文ベクトルは、文IDにより識別される文の圧縮文ベクトルである。たとえば、文ID「SE1」の圧縮文ベクトルは、「S_Vec
11 S_Vec
21 S_Vec
31・・・S_Vec
191 )となる。「S_Vec
11 S_Vec
21 S_Vec
31・・・S_Vec
191」をまとめて、S_Vec1と表記する。他の圧縮文ベクトルも同様である。
【0044】
転置インデックス146は、文の圧縮文ベクトルと、かかる圧縮文ベクトルに対応する文のテキストデータ141上の位置(オフセット)とを対応付けるものである。たとえば、テキストデータ141の先頭の単語のオフセットが「0」となり、先頭からM番目の単語のオフセットが「M-1」となる。
図11は、本実施例1に係る転置インデックスのデータ構造の一例を示す図である。
図11に示す転置インデックス146において、横軸はテキストデータ141のオフセットを示す。縦軸は、文の圧縮文ベクトルに対応する。たとえば、圧縮文ベクトル「S_Vec1」の文の先頭の単語が、テキストデータ141のオフセット「3」、「30」に位置することを示す。
【0045】
クエリデータ147は、類似検索で指定される文のデータである。本実施例1では一例として、クエリデータ147に含まれる文を1文とする。
【0046】
図5の説明に戻る。制御部150は、取得部151、単語ベクトル算出部152、次元圧縮部153、文ベクトル算出部154、類似性判定部155を有する。制御部150は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、制御部150は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
【0047】
取得部151は、外部装置または入力部120から、各種の情報を取得する処理部である。たとえは、取得部151は、テキストデータ141、類似語彙情報142、クエリデータ147等を受け付けた場合、受け付けたテキストデータ141、類似語彙情報142、クエリデータ147等を、記憶部140に格納する。
【0048】
単語ベクトル算出部152は、テキストデータ141に含まれる単語(語彙)を、ポアンカレ空間に埋め込み、ポアンカレ空間に埋め込んだ単語の位置に応じた単語ベクトルを算出する処理部である。単語ベクトル算出部152は、ポアンカレ空間に単語を埋め込む場合、類似語彙情報142を参照し、同一の概念番号に対応する各単語を、近似した位置に埋め込む。
【0049】
たとえば、単語ベクトル算出部152は、単語「好き」、単語「好物」、単語「愛玩」をポアンカレ空間上の近似した位置に埋め込み、位置に応じた単語ベクトルを算出する。単語ベクトル算出部152は、単語と、単語ベクトルとを対応付けて、単語ベクトルテーブル143に登録する。単語ベクトル算出部152は、他の単語についても上記処理を繰り返し実行することで、単語に対応する単語ベクトルを算出し、単語ベクトルテーブル143に登録する。
【0050】
次元圧縮部153は、単語ベクトルテーブル143に格納された単語ベクトルの次元を圧縮することで、圧縮単語ベクトルテーブル144を生成する処理部である。次元圧縮部153は、200次元に成分分解された、200本の各ベクトルaiei(i=1~200)を円状に等分に分散配置する。「ei」は、基底ベクトルである。以下の説明では、成分分解されたベクトルを基底ベクトルと表記する。次元圧縮部153は、素数の基底ベクトルを一つ選択し、その基底ベクトルに他の次元の基底ベクトルを直交変換した値を積算する。次元圧縮部153は、分散する19次元の1または、素数の基底ベクトルに対して、上記処理を実行することで、200次元のベクトルを、19次元のベクトルに次元圧縮する。たとえば、次元圧縮部153は、「1」、「11」、「23」、「41」、「43」、「53」、「61」、「73」、「83」、「97」、「107」、「113」、「127」、「137」、「149」、「157」、「167」、「179」、「191」の1または、素数の基底ベクトルの値をそれぞれ算出することで、19次元のベクトルに次元圧縮する。
【0051】
なお、本実施例では一例として、19次元のベクトルとして説明するが、他の次元のベクトルであってもよい。素数「3以上」で分割され、分散する1または、素数の基底ベクトルを選択することで、非可逆ではあるが、高精度な次元復元を実現できる。なお、分割する素数を大きくすると、精度が向上するが、圧縮率が低下する。
【0052】
図12、
図13は、本実施例1に係る次元圧縮部の処理を説明するための図である。
図12に示すように、次元圧縮部153は、200次元に成分分解された、200本の基底ベクトルa
ie
i(i=1~200)を円状(半円状)に等分に分散配置する。なお、成分分解前のベクトルAと、成分分解された各基底ベクトルa
ie
iとの関係は、式(1)によって定義される。
図12では一例として、200次元を3次元に圧縮する場合について説明するが、200次元を19次元に圧縮する場合についても同様である。
【0053】
【0054】
図13に示すように、まず、次元圧縮部153は、基底ベクトルa
1e
1に対して、残りの基底ベクトルa
2e
2~a
200e
200をそれぞれ直交変換し、直交変換した各基底ベクトルa
2e
2~a
200e
200の値を積算することで、基底ベクトルa
1e
1の値を算出する。
【0055】
次元圧縮部153は、基底ベクトルa67e67に対して、残りの基底ベクトルa1e1(実線+矢印)、a2e2、a3e3~a66e66、a68e68~a200e200をそれぞれ直交変換し、直交変換した各基底ベクトルa1e1~a66e66、a68e68~a200e200の値を積算することで、基底ベクトルa67e67の値を算出する。
【0056】
次元圧縮部153は、基底ベクトルa131e131に対して、残りの基底ベクトルa1e1~a130e130、a132e132~a200e200をそれぞれ直交変換し、直交変換した各基底ベクトルa1e1~a130e130、a132e132~a200e200の値を積算することで、基底ベクトルa131e131の値を算出する。
【0057】
次元圧縮部153は、200次元のベクトルを次元圧縮した圧縮ベクトルの各成分を「基底ベクトルa1e1の値、基底ベクトルa67e67の値、基底ベクトルa131e131の値」とする。次元圧縮部153は、他の次元も同様にして、算出する。なお、次元圧縮部153は、KL展開等を用いて、次元圧縮を行ってもよい。次元圧縮部153は、上記の次元圧縮を、単語ベクトルテーブル143の各単語についてそれぞれ実行することで、圧縮単語ベクトルテーブル144を生成する。
【0058】
図5の説明に戻る。文ベクトル算出部154は、テキストデータ141に含まれる各文の文ベクトルを算出する処理部である。文ベクトル算出部154は、テキストデータ141を先頭から走査し、文を抽出する。テキストデータ141に含まれる各文は、句読点によって区切られているものとする。
【0059】
文ベクトル算出部154は、文に対して、形態素解析を実行することで、文を複数の単語に分割する。文ベクトル算出部154は、文に含まれる単語と、圧縮単語ベクトルテーブル144とを比較して、文に含まれる各単語の圧縮単語ベクトルを取得する。文ベクトル算出部154は、文に含まれる各単語の圧縮単語ベクトルを集積(合算)することで、圧縮文ベクトルを算出する。文ベクトル算出部154は、文に対して文IDを割り当て、文IDと、圧縮文ベクトルとを対応付けて、圧縮文ベクトルデータ145に登録する。
【0060】
また、文ベクトル算出部154は、転置インデックス146を参照し、圧縮文ベクトルに対応する文のオフセットと、圧縮文ベクトルとの交差する部分にフラグ「1」を設定する。たとえば、文ベクトル算出部154は、オフセット「3」、「30」に、圧縮文ベクトル「S_Vec1」の文が位置する場合には、オフセット「3」の列と、圧縮文ベクトル「S_Vec1」の行とが交差する部分と、オフセット「30」の列と、圧縮文ベクトル「S_Vec1」の行とが交差する部分にフラグ「1」を設定する。
【0061】
文ベクトル算出部154は、テキストデータ141に含まれる他の文についても、上記処理を繰り返し実行することで、圧縮文ベクトルデータ145に対する圧縮文ベクトルの登録、転置インデックス146へのフラグの設定を実行する。
【0062】
類似性判定部155は、第1の文のベクトルと、第2の文のベクトルとの類似性を判定する処理部である。ここでは一例として、第1の文のベクトルを、クエリデータ147に含まれる文の圧縮文ベクトルとする。第2の文のベクトルを、圧縮文ベクトルデータ145の圧縮文ベクトル(転置インデックス146の縦軸に配置された圧縮文ベクトル)として説明を行うが、これに限定されるものではない。
【0063】
類似性判定部155は、クエリデータ147に含まれる文に対して、形態素解析を実行することで、文を複数の単語に分割する。類似性判定部155は、文に含まれる単語と、圧縮単語ベクトルテーブル144とを比較して、文に含まれる各単語の圧縮単語ベクトルを取得する。類似性判定部155は、文に含まれる各単語の圧縮単語ベクトルを集積(合算)することで、圧縮文ベクトルを算出する。以下の説明では、クエリデータ147の圧縮文ベクトルを、「第1圧縮文ベクトル」と表記する。圧縮文ベクトルデータ145に登録された圧縮文ベクトル(転置インデックス146の縦軸に配置された圧縮文ベクトル)を、「第2圧縮文ベクトル」と表記する。
【0064】
類似性判定部155は、式(2)を基にして、第1圧縮文ベクトルと、第2圧縮文ベクトルとの類似度を算出する。たとえば、第1圧縮文ベクトルと、第2圧縮文ベクトルとの距離が近いほど、類似度が大きくなる。
【0065】
【0066】
類似性判定部155は、第1圧縮文ベクトルとの類似度が閾値以上となる第2圧縮文ベクトルを特定する。以下の説明では、第1圧縮文ベクトルとの類似度が閾値以上となる第2圧縮文ベクトルを、「特定圧縮文ベクトル」と表記する。
【0067】
類似性判定部155は、転置インデックス146の各第2圧縮文ベクトルの行のうち、特定圧縮文ベクトルに対応する行のフラグを基にして、特定圧縮文ベクトルに対応する文のオフセットを特定する。たとえば、特定圧縮文ベクトルが「S_Vec1」となる場合には、オフセット「3」、「30」が特定される。
【0068】
類似性判定部155は、特定したオフセットを基にして、圧縮単語文ベクトルに対応する文を、テキストデータ141から取得する。類似性判定部155は、取得した文を、クエリデータ147で指定した文に類似する文として、表示部130に出力して表示する。
【0069】
次に、本実施例1に係る情報処理装置100の処理手順の一例について説明する。
図14は、本実施例1に係る情報処理装置の処理手順を示すフロチャート(1)である。
図14に示すように、情報処理装置100の取得部151は、テキストデータ141を取得し、記憶部140に格納する(ステップS101)。
【0070】
情報処理装置100の単語ベクトル算出部152は、テキストデータ141の各単語について、類似語彙情報142を基にして、ポアンカレ空間への埋め込みを実行し、単語ベクトルを算出する(ステップS102)。単語ベクトル算出部152は、単語ベクトルテーブル143を生成する(ステップS103)。
【0071】
情報処理装置100の次元圧縮部153は、単語ベクトルテーブル143の各単語ベクトルについて次元圧縮を実行する(ステップS104)。次元圧縮部153は、圧縮単語ベクトルテーブル144を生成する(ステップS105)。
【0072】
情報処理装置100の文ベクトル算出部154は、テキストデータ141から文を抽出する(ステップS106)。文ベクトル算出部154は、圧縮単語ベクトルテーブル144を基にして、文に含まれる各単語の単語圧縮ベクトルを特定する(ステップS107)。
【0073】
文ベクトル算出部154は、各単語圧縮ベクトルを集積して、圧縮文ベクトルを算出し、圧縮文ベクトルデータ145に登録する(ステップS108)。文ベクトル算出部154は、テキストデータ141の文のオフセットと、圧縮文ベクトルとの関係を基にして、転置インデックス146を生成する(ステップS109)。
【0074】
図15は、本実施例1に係る情報処理装置の処理手順を示すフロチャート(2)である。
図15に示すように、情報処理装置100の取得部151は、クエリデータ147を取得し、記憶部140に格納する(ステップS201)。
【0075】
情報処理装置100の類似性判定部155は、圧縮単語ベクトルテーブル144を基にして、クエリデータ147の文に含まれる各単語の単語圧縮ベクトルを特定する(ステップS202)。類似性判定部155は、各単語の単語圧縮ベクトルを集積して、クエリデータ147の圧縮文データ(第1圧縮文ベクトル)を算出する(ステップS203)。
【0076】
類似性判定部155は、第1圧縮文ベクトルと、転置インデックス146の各第2圧縮文データとの類似性を判定する(ステップS204)。類似性判定部155は、第1圧縮文ベクトルとの類似度が閾値以上となる第2圧縮文ベクトル(特定圧縮文ベクトル)を特定する(ステップS205)。
【0077】
類似性判定部155は、特定圧縮文ベクトルと、転置インデックス146とを基にして、オフセットを特定する(ステップS206)。類似性判定部155は、オフセットを基にして、テキストデータ141から文を抽出し、表示部130に出力する(ステップS207)。
【0078】
次に、本実施例1に係る情報処理装置100の効果について説明する。情報処理装置100は、類似語彙情報142を基にして、ポアンカレ空間への埋め込みを行うことで、単語ベクトルを算出し、単語ベクトルテーブル143を生成する。参考技術で説明したWord2vecにとは異なり、同義または所定以上類似する複数の単語に、近似した単語ベクトルを割り当てた単語ベクトルテーブル143を生成することができる。このため、単語ベクトルテーブル143を用いて文ベクトルを算出すると、同じ意味の文の文ベクトル同士は、類似する文ベクトルとなり、文ベクトルを精度よく算出することができる。また、複数の文ベクトルを比較して、類似性を判定する場合、文ベクトルを精度よく算出できているので、類似性の判定精度が向上する。たとえば、クエリデータ147で指定された文に類似する文を、テキストデータ141から適切に検索することができる。
【0079】
情報処理装置100は、単語ベクトルテーブル143の次元を圧縮した圧縮単語ベクトルテーブル144を生成しておき、圧縮単語ベクトルを用いて、文ベクトルを算出するため、参考技術の文ベクトル演算量と比較して、演算量を削減することができる。
【0080】
ところで、
図7で説明した類似語彙情報142のデータ構造は一例であり、
図16に示すデータ構造であってもよい。
図16は、類似語彙情報のその他のデータ構造を説明するための図である。
図16に示すように、類似語彙情報142は、品詞は「名詞」で同じであるが、コーヒーのカテゴリとして同一の各単語「ブラジル」、「コロンビア」、「キリマンジェロ」、「エスプレッソ」、「アメリカン」等を同一の概念番号に対応付けてもよい。各単語「ブラジル」、「コロンビア」、「キリマンジェロ」は、産地や国を示す単語である。「エスプレッソ」、「アメリカン」は料理名を示す単語である。情報処理装置100の単語ベクトル算出部152は、
図16に示す類似語彙情報142を用いて、ポアンカレ空間への埋め込みを実行し、単語ベクトルを算出してもよい。
【実施例2】
【0081】
実施例1では、複数の単語を含む文の文ベクトルを算出し、各文ベクトルの類似性を判定する場合について説明したがこれに限定されるものではない。たとえば、複数のタンパク質を含むタンパク質の一次構造(以下、単に一次構造)についても、一つのタンパク質を一つの単語と、また、一つの一次構造を一つの文と見なすことで、タンパク質と一次構造のベクトルを算出することができる。一次構造のベクトルを用いることで、各一次構造の類似性を判定することができる。
【0082】
図17は、本実施例2に係る情報処理装置の処理を説明するための図である。
図17に示すように、情報処理装置は、類似タンパク質情報242を基にして、タンパク質の一次構造データ241に含まれる各タンパク質を単語と見なして、ポアンカレ空間に埋め込み、タンパク質のベクトルを算出する。以下の説明では、タンパク質のベクトルを「タンパク質ベクトル」と表記する。
【0083】
図18は、本実施例2に係る類似タンパク質情報のデータ構造を示す図である。類似タンパク質情報242は、概念番号と、タンパク質と、由来と、ステムとを対応付ける。類似タンパク質情報242は、類似の特性を持つタンパク質を、同一の概念番号に対応付ける。たとえば、概念番号「I101」には、タンパク質「トロンビン」、「キモトリプシン」、「ナットウキナーゼ」等が対応付けられる。
【0084】
由来は、タンパク質の由来を示すものである。たとえば、タンパク質「トロンビン」の由来は、「血液凝固因子」である。タンパク質「キモトリプシン」の由来は、「酵素」である。タンパク質「ナットウキナーゼ」の由来は、「酵素」となる。ステムは、由来に応じて、タンパク質の名称の語尾に付与されるものである。タンパク質「トロンビン」、「キモトリプシン」は、例外的に、語尾がステムに対応していない。
【0085】
すなわち、類似タンパク質情報242では、タンパク質の由来によらず、類似の特性を有する複数のタンパク質を、同一の概念番号に割当てている。本実施例2に係る情報処理装置は、ポアンカレ空間にタンパク質を埋め込む場合に、類似タンパク質情報242で定義された同一の概念番号に対応する各タンパク質を、ポアンカレ空間上の近似した位置に集約する。
【0086】
図17の説明に戻る。情報処理装置は、一次構造データ241に含まれる他のタンパク質についても、類似タンパク質情報242を基にして、ポアンカレ空間への埋め込みを行うことで、タンパク質ベクトルを算出し、タンパク質ベクトルテーブル243を生成する。タンパク質ベクトルテーブル243では、タンパク質と、タンパク質ベクトルとが対応付けられる。たとえば、タンパク質ベクトルテーブル243のタンパク質ベクトルの次元は、200次元となる。
【0087】
情報処理装置は、一次構造のベクトルを算出する前に、タンパク質ベクトルテーブル243に含まれる各タンパク質ベクトルの次元を圧縮する。たとえば、情報処理装置は、200次元のタンパク質ベクトルを、19次元(19次元は一例)のタンパク質ベクトルに圧縮することで、圧縮したタンパク質ベクトルを生成する。次元を圧縮したタンパク質ベクトルを、「圧縮タンパク質ベクトル」と表記する。情報処理装置は、タンパク質ベクトルテーブル243の各タンパク質ベクトルを圧縮することで、圧縮タンパク質ベクトルテーブル244を生成する。
【0088】
情報処理装置は、圧縮タンパク質ベクトルテーブル244を用いて、一次構造データ241に含まれる各一次構造の圧縮タンパク質ベクトルを算出する。情報処理装置は、一次構造を複数のタンパク質に分割し、各タンパク質の圧縮タンパク質ベクトルを圧縮タンパク質ベクトルテーブル244から取得する。情報処理装置は、各圧縮タンパク質ベクトルを集積することで、19次元の一次構造のベクトルを算出する。以下の説明において、一次構造のベクトルを、「圧縮一次構造ベクトル」と表記する。情報処理装置は、他の複数の一次構造について、上記処理を繰り返し実行することで、他の複数の一次構造に対する圧縮一次構造ベクトルを算出し、圧縮一次構造ベクトルデータ245を生成する。
【0089】
本実施例2に係る情報処理装置では、類似タンパク質情報242を基にして、ポアンカレ空間への埋め込みを行うことで、タンパク質ベクトルを算出し、タンパク質ベクトルテーブル243を生成する。これにより、類似の特性を有する複数のタンパク質に対して、近似したタンパク質ベクトルを割り当てたタンパク質ベクトルテーブル243を生成することができる。このため、タンパク質ベクトルテーブル243を用いて一次構造のベクトルを算出すると、類似の特定を持つ一次構造同士は、類似する一次構造のベクトルとなり、一次構造ベクトルを精度よく算出することができる。また、複数の一次構造のベクトルを比較して、類似性を判定する場合、一次構造のベクトルを精度よく算出できているので、類似性の判定精度が向上する。
【0090】
また、情報処理装置では、タンパク質ベクトルテーブル243の次元を圧縮した圧縮タンパク質ベクトルテーブル244を生成しておき、圧縮タンパク質ベクトルを用いて、圧縮された一次構造のベクトルを算出する。このため、一次構造のベクトルを算出してから次元圧縮を行う場合と比較して、演算量を削減することができる。
【0091】
次に、本実施例2に係る情報処理装置の構成について説明する。
図19は、本実施例2に係る情報処理装置の構成を示す機能ブロック図である。
図19に示すように、情報処理装置200は、通信部210と、入力部220と、表示部230と、記憶部240と、制御部250とを有する。
【0092】
通信部210は、ネットワークを介して外部装置(図示略)との間で情報通信を実行する処理部である。通信部210は、NIC等の通信装置に対応する。たとえば、後述する制御部250は、通信部210を介して、外部装置と情報をやり取りする。
【0093】
入力部220は、各種の情報を、情報処理装置200に入力する入力装置である。入力部220は、キーボードやマウス、タッチパネル等に対応する。ユーザは、入力部220を操作して、後述するクエリデータ247を入力してもよい。
【0094】
表示部230は、制御部250から出力される情報を表示する表示装置である。表示部230は、液晶ディスプレイ、有機ELディスプレイ、タッチパネル等に対応する。表示部230は、制御部250から出力される情報を表示する。
【0095】
記憶部240は、タンパク質辞書240a、一次構造データ241、類似タンパク質情報242、タンパク質ベクトルテーブル243を有する。記憶部240は、圧縮タンパク質ベクトルテーブル244、圧縮一次構造ベクトルデータ245、転置インデックス246、クエリデータ147を有する。記憶部240は、RAM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。
【0096】
タンパク質辞書240aの説明を行う前に、ゲノムについて説明する。
図20は、ゲノムを説明するための図である。ゲノム1は、複数のアミノ酸が連結する遺伝子情報である。ここで、アミノ酸は、複数の塩基、コドンによって決定される。また、ゲノム1には、タンパク質1aが含まれる。タンパク質1aは、20種類のアミノ酸が複数結合し、鎖状に多数が連結したものである。タンパク質1aの構造には、一次構造、二次構造、三次(高次)構造が存在する。タンパク質1bは、高次構造のタンパク質である。本実施例2では、一次構造について取り扱うが、二次構造、三次構造を対象としてもよい。
【0097】
DNAおよびRNAの塩基は4種類で、「A」、「G」、「C」、「T」または「U」の記号で示される。また、3つの塩基配列がひとかたまりで、20種類のアミノ酸を決定する。それぞれのアミノ酸は、「A」~「Y」の記号で示される。
図21は、アミノ酸と塩基、およびコドンとの関係を示す図である。3つの塩基配列のかたまりは「コドン」と呼ばれる。各塩基の並びで、コドンが決定され、コドンが決定されるとアミノ酸が決定される。
【0098】
図21に示すように、一つのアミノ酸に対して、複数種類のコドンが対応付けられる。このためコドンが決まると、アミノ酸が決まるが、アミノ酸が決まっても、コドンが一意に特定されるものではない。たとえば、アミノ酸「アラニン(Ala)」は、コドン「GCU」、「GCC」、「GCA」、または、「GCG」に対応付けられる。
【0099】
タンパク質辞書240aは、タンパク質と、タンパク質に対応する塩基配列とを対応付ける情報である。塩基配列により、タンパク質が一致に決定される。
図22は、本実施例2に係るタンパク質辞書のデータ構造の一例を示す図である。
図22に示すように、タンパク質辞書240aは、タンパク質と、塩基配列とを対応付ける。本実施例2のタンパク質辞書240aでは、タンパク質と、塩基配列とを対応付ける場合について説明するが、塩基配列の代わりに、コドン配列またはアミノ酸配列を、タンパク質と対応付けて定義してもよい。
【0100】
一次構造データ241は、複数のタンパク質から構成される複数の一次構造を含む情報である。
図23は、本実施例2に係るタンパク質の一次構造データのデータ構造の一例を示す図である。
図23に示すように、タンパク質の一次構造データ241には、複数の一次構造が含まれる。ここで、一次構造には、複数のタンパク質が含まれ、各タンパク質は、塩基配列(あるいは、コドン配列またはアミノ酸配列)によって設定される。一次構造データ241に含まれる各一次構造には、癌化の恐れのあるタンパク質、あるいは、癌化したタンパク質を含む。
【0101】
類似タンパク質情報242は、類似の特性を持つタンパク質を、同一の概念番号に対応付ける情報である。類似タンパク質情報242のデータ構造は、
図18で説明したものに対応する。
【0102】
タンパク質ベクトルテーブル243は、各タンパク質のタンパク質ベクトルの情報を保持するテーブルである。
図24は、本実施例2に係るタンパク質ベクトルテーブルのデータ構造の一例を示す図である。
図24に示すように、このタンパク質ベクトルテーブル243は、タンパク質と、タンパク質ベクトルとを対応付ける。各タンパク質ベクトルは、ポアンカレ空間に対する埋め込みにより、算出されるタンパク質ベクトルであり、たとえば、200次元のベクトルとする。
【0103】
圧縮タンパク質ベクトルテーブル244は、次元圧縮した各タンパク質ベクトル(圧縮タンパク質ベクトル)の情報を保持するテーブルである。
図25は、本実施例2に係る圧縮タンパク質ベクトルテーブルのデータ構造の一例を示す図である。
図25に示すように、この圧縮タンパク質ベクトルテーブル244は、タンパク質と、圧縮タンパク質ベクトルとを対応付ける。たとえば、圧縮タンパク質ベクトルの次元を19次元とするが、これに限定されるものではない。
【0104】
圧縮一次構造ベクトルデータ245は、一次構造データ241に含まれる各一次構造の圧縮一次構造ベクトルの情報を保持するテーブルである。
図26は、本実施例2に係る圧縮一次構造ベクトルデータのデータ構造の一例を示す図である。
図26に示すように、この圧縮一次構造ベクトルデータ245は、一次構造IDと、圧縮一次構造ベクトルとを対応付ける。一次構造IDは、一次構造データ241に含まれる一次構造を一意に識別する情報である。圧縮一次構造ベクトルは、一次構造IDにより識別される一次構造の圧縮一次構造ベクトルである。たとえば、一次構造ID「DE1」の圧縮一次構造ベクトルは、「S_Vec
11 S_Vec
21 S_Vec
31・・・S_Vec
191 )となる。「S_Vec
11 S_Vec
21 S_Vec
31・・・S_Vec
191」をまとめて、S_Vec1と表記する。他の圧縮一次構造ベクトルも同様である。
【0105】
転置インデックス246は、一次構造の圧縮一次構造ベクトルと、かかる圧縮一次構造ベクトルに対応する一次構造の一次構造データ241上の位置(オフセット)とを対応付けるものである。たとえば、一次構造データ241の先頭のタンパク質のオフセットが「0」となり、先頭からM番目のタンパク質のオフセットが「M-1」となる。
図27は、本実施例2に係る転置インデックスのデータ構造の一例を示す図である。
図27に示す転置インデックス246において、横軸は一次構造データ241のオフセットを示す。縦軸は、圧縮一次構造ベクトルに対応する。たとえば、圧縮一次構造ベクトル「S_Vec1」の一次構造の先頭のタンパク質が、一次構造データ241のオフセット「3」、「10」に位置することを示す。
【0106】
クエリデータ247は、類似検索で指定される一次構造のデータである。本実施例1では一例として、クエリデータ247に含まれる一次構造を1つとする。クエリデータ247で指定される一次構造には、癌化の恐れのあるタンパク質、あるいは、癌化したタンパク質を含む。
【0107】
図19の説明に戻る。制御部250は、取得部251、タンパク質ベクトル算出部252、次元圧縮部253、一次構造ベクトル算出部254、類似性判定部255を有する。制御部250は、CPUやMPUなどによって実現できる。また、制御部250は、ASICやFPGAなどのハードワイヤードロジックによっても実現できる。
【0108】
取得部251は、外部装置または入力部220から、各種の情報を取得する処理部である。たとえは、取得部251は、タンパク質辞書240a、一次構造データ241、類似タンパク質情報242、クエリデータ247等を受け付けた場合、受け付けたタンパク質辞書240a、一次構造データ241、類似タンパク質情報242、クエリデータ247等を、記憶部240に格納する。
【0109】
タンパク質ベクトル算出部252は、タンパク質辞書240aと、一次構造データ241とを比較して、一次構造データ241に含まれるタンパク質を抽出し、抽出したタンパク質を一つの単語と見なして、ポアンカレ空間に埋め込む。タンパク質ベクトル算出部252は、ポアンカレ空間に埋め込んだタンパク質の位置に応じたタンパク質ベクトルを算出する。タンパク質ベクトル算出部252は、ポアンカレ空間にタンパク質を埋め込む場合、類似タンパク質情報242を参照し、同一の概念番号に対応する各タンパク質を、近似した位置に埋め込む。
【0110】
たとえば、タンパク質ベクトル算出部252は、タンパク質「トロンビン」、タンパク質「キモトリプシン」、タンパク質「ナットウキナーゼ」をポアンカレ空間上の近似した位置に埋め込み、位置に応じたタンパク質ベクトルを算出する。タンパク質ベクトル算出部252は、タンパク質と、タンパク質ベクトルとを対応付けて、タンパク質ベクトルテーブル243に登録する。タンパク質ベクトル算出部252は、他の単語についても上記処理を繰り返し実行することで、タンパク質に対応するタンパク質ベクトルを算出し、タンパク質ベクトルテーブル243に登録する。
【0111】
次元圧縮部253は、タンパク質ベクトルテーブル243に格納されたタンパク質ベクトルの次元を圧縮することで、圧縮タンパク質ベクトルテーブル244を生成する処理部である。次元圧縮部253が、タンパク質ベクトルの次元を圧縮する処理は、実施例1の次元圧縮部153が、単語ベクトルの次元を圧縮する処理と同様である。
【0112】
一次構造ベクトル算出部254は、一次構造データ241に含まれる各一次構造のベクトルを算出する処理部である。一次構造ベクトル算出部254は、一次構造データ241を先頭から走査し、一次構造を抽出する。一次構造データ241に含まれる各一次構造の区切りは予め設定されているものとする。
【0113】
一次構造ベクトル算出部254は、一次構造と、タンパク質辞書240aとを比較して、一次構造に含まれる各タンパク質を特定する。一次構造ベクトル算出部254は、一次構造に含まれるタンパク質と、圧縮タンパク質ベクトルテーブル244とを比較して、一次構造に含まれる各タンパク質の圧縮タンパク質ベクトルを取得する。一次構造ベクトル算出部254は、一次構造に含まれる各タンパク質の圧縮タンパク質ベクトルを集積(合算)することで、圧縮一次構造ベクトルを算出する。一次構造ベクトル算出部254は、一次構造に対して、一次構造IDを割り当て、一次構造IDと、圧縮一次構造ベクトルとを対応付けて、圧縮一次構造ベクトルデータ245に登録する。
【0114】
また、一次構造ベクトル算出部254は、転置インデックス246を参照し、圧縮一次構造ベクトルに対応する一次構造のオフセットと、圧縮一次構造ベクトルとの交差する部分にフラグ「1」を設定する。たとえば、一次構造ベクトル算出部254は、オフセット「3」、「10」に、圧縮一次構造ベクトル「S_Vec1」の一次構造が位置する場合には、オフセット「3」の列と、圧縮一次構造ベクトル「S_Vec1」の行とが交差する部分と、オフセット「10」の列と、圧縮一次構造ベクトル「S_Vec1」の行とが交差する部分にフラグ「1」を設定する。
【0115】
一次構造ベクトル算出部254は、一次構造データ241に含まれる他の一次構造についても、上記処理を繰り返し実行することで、圧縮一次構造ベクトルデータ245に対する圧縮一次構造ベクトルの登録、転置インデックス246へのフラグの設定を実行する。
【0116】
類似性判定部255は、第1の一次構造のベクトルと、第2の一次構造のベクトルとの類似性を判定する処理部である。ここでは一例として、第1の一次構造のベクトルを、クエリデータ247に含まれる一次構造の圧縮一次構造ベクトルとする。第2の一次構造のベクトルを、圧縮一次構造ベクトルデータ245の圧縮一次構造ベクトル(転置インデックス246の縦軸に配置された圧縮一次構造ベクトル)として説明を行うが、これに限定されるものではない。
【0117】
類似性判定部255は、クエリデータ247に含まれる一次構造と、タンパク質辞書240aとを比較して、クエリデータ247に含まれる一次構造に含まれるタンパク質を抽出する。類似性判定部255は、一次構造に含まれるタンパク質と、圧縮タンパク質ベクトルテーブル244とを比較して、一次構造に含まれる各タンパク質の圧縮タンパク質ベクトルを取得する。類似性判定部255は、一次構造に含まれる各タンパク質の圧縮タンパク質ベクトルを集積(合算)することで、圧縮一次構造ベクトルを算出する。
【0118】
以下の説明では、クエリデータ247の圧縮一次構造ベクトルを、「第1圧縮構造ベクトル」と表記する。圧縮一次構造ベクトルデータ245に登録された圧縮一次構造ベクトル(転置インデックス246の縦軸に配置された圧縮一次構造ベクトル)を、「第2圧縮構造ベクトル」と表記する。
【0119】
類似性判定部255は、実施例1で示した式(2)を基にして、第1圧縮構造ベクトルと、第2圧縮構造ベクトルとの類似度を算出する。たとえば、第1圧縮構造ベクトルと、第2圧縮構造ベクトルとの距離が近いほど、類似度が大きくなる。
【0120】
類似性判定部255は、第1圧縮構造ベクトルとの類似度が閾値以上となる第2圧縮構造ベクトルを特定する。以下の説明では、第1圧縮構造ベクトルとの類似度が閾値以上となる第2圧縮構造ベクトルを、「特定圧縮構造ベクトル」と表記する。
【0121】
類似性判定部255は、転置インデックス246の各第2圧縮構造ベクトルの行のうち、特定圧縮構造ベクトルに対応する行のフラグを基にして、特定圧縮構造ベクトルに対応する一次構造のオフセットを特定する。たとえば、特定圧縮構造ベクトルが「S_Vec1」となる場合には、オフセット「3」、「10」が特定される。
【0122】
類似性判定部255は、特定したオフセットを基にして、圧縮単語構造ベクトルに対応する一次構造を、一次構造データ241から取得する。類似性判定部255は、取得した一次構造を、クエリデータ247で指定した一次構造に類似する一次構造として、表示部230に出力して表示する。
【0123】
次に、本実施例2に係る情報処理装置200の処理手順の一例について説明する。
図28は、本実施例2に係る情報処理装置の処理手順を示すフロチャート(1)である。
図14に示すように、情報処理装置200の取得部251は、一次構造データ241を取得し、記憶部240に格納する(ステップS301)。
【0124】
情報処理装置200のタンパク質ベクトル算出部252は、一次構造データ241の各タンパク質について、類似タンパク質情報242を基にして、ポアンカレ空間への埋め込みを実行し、タンパク質ベクトルを算出する(ステップS302)。タンパク質ベクトル算出部252は、タンパク質ベクトルテーブル243を生成する(ステップS303)。
【0125】
情報処理装置200の次元圧縮部253は、タンパク質ベクトルテーブル243の各タンパク質ベクトルについて次元圧縮を実行する(ステップS304)。次元圧縮部253は、圧縮タンパク質ベクトルテーブル244を生成する(ステップS305)。
【0126】
情報処理装置200の一次構造ベクトル算出部254は、一次構造データ241から一次構造を抽出する(ステップS306)。一次構造ベクトル算出部254は、圧縮タンパク質ベクトルテーブル244を基にして、一次構造に含まれる各タンパク質の圧縮タンパク質ベクトルを特定する(ステップS307)。
【0127】
一次構造ベクトル算出部254は、各圧縮タンパク質ベクトルを集積して、圧縮一次構造ベクトルを算出し、圧縮一次構造ベクトルデータ245に登録する(ステップS308)。一次構造ベクトル算出部254は、一次構造データ241の一次構造のオフセットと、圧縮一次構造ベクトルとの関係を基にして、転置インデックス246を生成する(ステップS309)。
【0128】
図29は、本実施例2に係る情報処理装置の処理手順を示すフロチャート(2)である。
図29に示すように、情報処理装置200の取得部251は、クエリデータ247を取得し、記憶部240に格納する(ステップS401)。
【0129】
情報処理装置200の類似性判定部255は、圧縮タンパク質ベクトルテーブル244を基にして、クエリデータ247に含まれる各タンパク質の圧縮タンパク質ベクトルを特定する(ステップS402)。類似性判定部255は、各タンパク質の圧縮タンパク質ベクトルを集積して、クエリデータ247の圧縮一次構造データ(第1圧縮構造ベクトル)を算出する(ステップS403)。
【0130】
類似性判定部255は、第1圧縮構造ベクトルと、転置インデックス246の各第2圧縮構造データとの類似性を判定する(ステップS404)。類似性判定部255は、第1圧縮構造ベクトルとの類似度が閾値以上となる第2圧縮構造ベクトル(特定圧縮構造ベクトル)を特定する(ステップS405)。
【0131】
類似性判定部155は、特定圧縮構造ベクトルと、転置インデックス246とを基にして、オフセットを特定する(ステップS406)。類似性判定部255は、オフセットを基にして、一次構造データ241から文を抽出し、表示部230に出力する(ステップS407)。
【0132】
次に、本実施例2に係る情報処理装置200の効果について説明する。情報処理装置200は、類似タンパク質情報242を基にして、ポアンカレ空間への埋め込みを行うことで、タンパク質ベクトルを算出し、タンパク質ベクトルテーブル243を生成する。これにより、類似の特性を有する複数のタンパク質に対して、近似したタンパク質ベクトルを割り当てたタンパク質ベクトルテーブル243を生成することができる。このため、タンパク質ベクトルテーブル243を用いて一次構造のベクトルを算出すると、類似の特定を持つ一次構造同士は、類似する一次構造のベクトルとなり、一次構造ベクトルを精度よく算出することができる。また、複数の一次構造のベクトルを比較して、類似性を判定する場合、一次構造のベクトルを精度よく算出できているので、類似性の判定精度が向上する。
【0133】
また、情報処理装置では、タンパク質ベクトルテーブル243の次元を圧縮した圧縮タンパク質ベクトルテーブル244を生成しておき、圧縮タンパク質ベクトルを用いて、一次構造のベクトルを算出する。このため、一次構造のベクトルを算出してから次元圧縮を行う場合と比較して、演算量を削減することができる。
【0134】
次に、上記実施例に示した情報処理装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。
図30は、実施例1の情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【0135】
図30に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303とを有する。また、コンピュータ300は、記憶媒体からプログラム等を読み取る読み取り装置304と、有線または無線ネットワークを介して、外部装置との間でデータの授受を行う通信装置305とを有する。また、コンピュータ300は、各種情報を一時記憶するRAM306と、ハードディスク装置307とを有する。そして、各装置301~307は、バス308に接続される。
【0136】
ハードディスク装置307は、取得プログラム307a、単語ベクトル算出プログラム307b、次元圧縮プログラム307c、文ベクトル算出プログラム307d、類似性判定プログラム307eを有する。また、CPU301は、各プログラム307a~307eを読み出してRAM306に展開する。
【0137】
取得プログラム307aは、取得プロセス306aとして機能する。単語ベクトル算出プログラム307bは、単語ベクトル算出プロセス306bとして機能する。次元圧縮プログラム307cは、次元圧縮プロセス306cとして機能する。文ベクトル算出プログラム307dは、文ベクトル算出プロセス306dとして機能する。類似性判定プログラム307eは、類似性判定プロセス306eとして機能する。
【0138】
取得プロセス306aの処理は、取得部151の処理に対応する。単語ベクトル算出プロセス306bの処理は、単語ベクトル算出部152の処理に対応する。次元圧縮プロセス305cは、次元圧縮部153の処理に対応する。文ベクトル算出プロセス306dは、文ベクトル算出部154の処理に対応する。類似性判定プロセス305eは、類似性判定部155の処理に対応する。
【0139】
なお、各プログラム307a~307eについては、必ずしも最初からハードディスク装置307に記憶させておかなくても良い。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD-ROM、DVD、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300が各プログラム307a~307eを読み出して実行するようにしてもよい。
【0140】
次に、上記実施例に示した情報処理装置200と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。
図31は、実施例2の情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【0141】
図31に示すように、コンピュータ400は、各種演算処理を実行するCPU401と、ユーザからのデータの入力を受け付ける入力装置402と、ディスプレイ403とを有する。また、コンピュータ400は、記憶媒体からプログラム等を読み取る読み取り装置404と、有線または無線ネットワークを介して、外部装置との間でデータの授受を行う通信装置405とを有する。また、コンピュータ400は、各種情報を一時記憶するRAM406と、ハードディスク装置407とを有する。そして、各装置401~407は、バス408に接続される。
【0142】
ハードディスク装置407は、取得プログラム407a、タンパク質ベクトル算出プログラム407b、次元圧縮プログラム407c、一次構造ベクトル算出プログラム407d、類似性判定プログラム407eを有する。また、CPU401は、各プログラム407a~407eを読み出してRAM406に展開する。
【0143】
取得プログラム407aは、取得プロセス406aとして機能する。タンパク質ベクトル算出プログラム407bは、タンパク質ベクトル算出プロセス406bとして機能する。次元圧縮プログラム407cは、次元圧縮プロセス406cとして機能する。一次構造ベクトル算出プログラム407dは、一次構造ベクトル算出プロセス406dとして機能する。類似性判定プログラム407eは、類似性判定プロセス406eとして機能する。
【0144】
取得プロセス406aの処理は、取得部251の処理に対応する。タンパク質ベクトル算出プロセス406bの処理は、タンパク質ベクトル算出部252の処理に対応する。次元圧縮プロセス405cは、次元圧縮部253の処理に対応する。一次構造ベクトル算出プロセス406dは、一次構造ベクトル算出部254の処理に対応する。類似性判定プロセス405eは、類似性判定部255の処理に対応する。
【0145】
なお、各プログラム407a~407eについては、必ずしも最初からハードディスク装置407に記憶させておかなくても良い。例えば、コンピュータ400に挿入されるフレキシブルディスク(FD)、CD-ROM、DVD、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ400が各プログラム407a~407eを読み出して実行するようにしてもよい。
【符号の説明】
【0146】
110,210 通信部
120,220 入力部
130,230 表示部
140,240 記憶部
141 テキストデータ
142 類似語彙情報
143 単語ベクトルテーブル
144 圧縮単語ベクトルテーブル
145 圧縮文ベクトルデータ
146,246 転置インデックス
147,247 クエリデータ
150,250 制御部
151,251 取得部
152 単語ベクトル算出部
153,253 次元圧縮部
154 文ベクトル算出部
155,255 類似性判定部
240a タンパク質辞書
241 一次構造データ
242 類似タンパク質情報
243 タンパク質ベクトルテーブル
244 圧縮タンパク質ベクトルテーブル
245 圧縮一次構造ベクトルデータ
252 タンパク質ベクトル算出部
254 一次構造ベクトル算出部