(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-21
(45)【発行日】2024-10-29
(54)【発明の名称】情報処理プログラム、情報処理方法および情報処理装置
(51)【国際特許分類】
G06F 40/30 20200101AFI20241022BHJP
G06F 40/247 20200101ALI20241022BHJP
G06F 16/36 20190101ALI20241022BHJP
【FI】
G06F40/30
G06F40/247
G06F16/36
(21)【出願番号】P 2022558763
(86)(22)【出願日】2020-10-30
(86)【国際出願番号】 JP2020040875
(87)【国際公開番号】W WO2022091359
(87)【国際公開日】2022-05-05
【審査請求日】2023-02-20
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】片岡 正弘
(72)【発明者】
【氏名】岩本 昭次
(72)【発明者】
【氏名】川名 賢治
【審査官】長 由紀子
(56)【参考文献】
【文献】国際公開第2020/021609(WO,A1)
【文献】特開2010-282517(JP,A)
【文献】Guthrie, Joe A 外3名,「Subject-Dependent Co-Occurrence and Word Sense Disambiguation」,29th Annual Meeting of the Association for Computational Lingusitics [online],Association for Computational Lingusistics,1991年06月30日,pp.146-152,[検索日2020.11.24] https://www.aclweb.org/ anthology/P91-1019.pdf, DOI10.3115/981344.981363
【文献】橋本 隼人、森 信介,Poincare Embeddingを用いた単語の埋め込みベクトルの獲得,言語処理学会第24回年次大会 発表論文集 [online],言語処理学会 ,2018年03月05日,pp.1187-1190,URL:http://www.anlp.jp/proceedings/ annual_meeting/2018/pdf_dir/C6-2.pdf
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-58
G06F 16/36
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
所定の文書データに含まれる複数の単語を、シソーラスに定義されたカテゴリごとに分類し、前記所定の文書データに含まれるある意味区分に区別した多義語と、前記ある意味区分に区別した多義語と共起する単語のカテゴリとを関係を基にして、意味区分ごとに区別した多義語に対する各カテゴリの共起率を定義した共起率テーブルを生成し、
入力テキストに対して形態素解析を実行することで、前記入力テキストを複数の単語に分割し、
前記複数の単語の属するカテゴリをそれぞれ特定し、
特定したカテゴリと、前記共起率テーブル
とを基にして、前記入力テキストに含まれる複数の単語のうち、
前記多義語および前記多義語の意味区分とを特定し、
前記入力テキストに含まれる前記多義語に、前記多義語の意味区分に応じたベクトルを割り当てる
処理を実行させることを特徴とする情報処理プログラム。
【請求項2】
ポアンカレエンベッディングを実行することで、単語のベクトル、意味区分ごとに区別した多義語のベクトルを算出する処理を更に実行し、前記ベクトルを割り当てる処理は、前記ベクトルを算出する処理の算出結果を基にして、前記入力テキストに含まれる前記多義語および前記単語にベクトルを割り当てることを特徴とする請求項1に記載の情報処理プログラム。
【請求項3】
前記ベクトルを算出する処理は、前記ポアンカレエンベッディングによって、熟語、専門用語の単語ベクトルを更に算出することを特徴とする請求項
2に記載の情報処理プログラム。
【請求項4】
コンピュータが実行する情報処理方法であって、
所定の文書データに含まれる複数の単語を、シソーラスに定義されたカテゴリごとに分類し、前記所定の文書データに含まれるある意味区分に区別した多義語と、前記ある意味区分に区別した多義語と共起する単語のカテゴリとを関係を基にして、意味区分ごとに区別した多義語に対する各カテゴリの共起率を定義した共起率テーブルを生成し、
入力テキストに対して形態素解析を実行することで、前記入力テキストを複数の単語に分割し、
前記複数の単語の属するカテゴリをそれぞれ特定し、
特定したカテゴリと、前記共起率テーブル
とを基にして、前記入力テキストに含まれる複数の単語のうち、
前記多義語および前記多義語の意味区分とを特定し、
前記入力テキストに含まれる前記多義語に、前記多義語の意味区分に応じたベクトルを割り当てる
処理を実行することを特徴とする情報処理方法。
【請求項5】
所定の文書データに含まれる複数の単語を、シソーラスに定義されたカテゴリごとに分類し、前記所定の文書データに含まれるある意味区分に区別した多義語と、前記ある意味区分に区別した多義語と共起する単語のカテゴリとを関係を基にして、意味区分ごとに区別した多義語に対する各カテゴリの共起率を定義した共起率テーブルを生成する生成部と、
入力テキストに対して形態素解析を実行することで、前記入力テキストを複数の単語に分割し、
前記複数の単語の属するカテゴリをそれぞれ特定し、特定したカテゴリと、前記共起率テーブル
とを基にして、前記入力テキストに含まれる複数の単語のうち、
前記多義語および前記多義語の意味区分とを特定し、前記入力テキストに含まれる前記多義語に、前記多義語の意味区分に応じたベクトルを割り当てる割当部
と、
を含む情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム等に関する。
【背景技術】
【0002】
文章や文(以下、単に文)を解析し、文に含まれる各単語をベクトルで表現する従来技術として、Word2Vec(Skip-Gram ModelまたはCBOW)等がある。表記の異なる単語であっても、意味が類似している単語同士は、ベクトルの値も類似するという特徴がある。以下の説明では、単語のベクトルを、「単語ベクトル」と表記する。たとえば、Word2Vecでは、単語ベクトルを200次元で表現する。
【0003】
文を構成する複数の単語の各単語ベクトルを集積することで、文のベクトルが算出される。以下の説明では、文のベクトルを「文ベクトル」と表記する。表記の異なる文であっても、意味が類似している文同士は、文ベクトルの値も類似するという特徴がある。たとえば、「私はリンゴが好きです。」の文の意味と、「リンゴは私の好物です。」の文の意味は同じであり、「私はリンゴが好きです。」の文ベクトルと、「リンゴは私の好物です。」の文ベクトルとは類似することになる。
【0004】
なお、単語に単語ベクトル(数値)を割当てる技術として、Poincare Embeddingsと呼ばれる技術も存在する。この技術では、単語とそのカテゴリとを定義しておき、定義されたカテゴリを基にして、単語をポアンカレ空間に埋め込む。そして、ポアンカレ空間において、埋め込まれた単語に応じたベクトルが、該当する単語に割当てられる。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2015-22398号公報
【文献】特開2018-206263号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上述した従来技術では、多義語の複数の語義(意味)に対して、適切なベクトルを割り当てることができず、ベクトルを用いた解析や翻訳などの精度が低下するという問題がある。
【0007】
たとえば、英語の文「Ichiro is cool.」に含まれる単語「cool(1)」と、「This room is cool.」に含まれる単語「cool(2)」とは、異なる語義(意味)の「cool」である。なお、カッコ書きの数字は、意味の異なる「cool」を区別するために便宜的に付与するものである。
【0008】
上記の「cool(1)」と、「cool(2)」とに同一のベクトル(数値)を割り当ててしまうと、「Ichiro is cool.」および「This room is cool.」に文ベクトルを適切に割り当てることができない。
【0009】
ここで、多義語の複数の語義(意味)に対して、意味区分毎に単語ベクトルを予め設定しておくことが考えられる。この場合には、英語の文「Ichiro is cool.」に含まれる「cool」が、「cool(1)」に対応するのか「cool(2)」に対応するのかを区別する場合にHMM(Hidden Markov Model)等を用いて推定することになるが、多義語の全ての意味区分に対して、HMMのパラメータを設定しようとすると、登録対象となる情報が膨大となり、現実的ではない。なお、take offやtake outのように、ストップワードと呼ばれる出現頻度の高い前置詞と連結することで、多義語と同様に、異なる意味を持つ熟語のベクトルについても、対策が必要である。
【0010】
1つの側面では、本発明は、適切なベクトルを割り当て、ベクトルを用いた解析の精度を向上させることができる情報処理プログラム、情報処理方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
第1の案では、コンピュータに次の処理を実行させる。コンピュータは、入力テキストに対して形態素解析を実行することで、入力テキストを複数の単語に分割する。コンピュータは、意味区分ごとに区別した多義語および単語のカテゴリの共起率を定義した共起率テーブルと、入力テキストに含まれる複数の単語とを基にして、入力テキストに含まれる複数の単語のうち、多義語および多義語の意味区分とを特定する。コンピュータは、入力テキストに含まれる多義語に、多義語の意味区分に応じたベクトルを割り当てる。
【発明の効果】
【0012】
適切なベクトルを割り当て、ベクトルを用いた解析の精度を向上させることができる。
【図面の簡単な説明】
【0013】
【
図1】
図1は、本実施例1に係る情報処理装置の処理を説明するための図である。
【
図2】
図2は、本実施例1に係る情報処理装置の構成を示す機能ブロック図である。
【
図3】
図3は、第1辞書データのデータ構造の一例を示す図である。
【
図4】
図4は、第2辞書データのデータ構造の一例を示す図である。
【
図5】
図5は、第1教師データの一例を示す図である。
【
図6】
図6は、第2教師データの一例を示す図である。
【
図7】
図7は、第1共起率テーブルのデータ構造の一例を示す図である。
【
図8】
図8は、第2共起率テーブルのデータ構造の一例を示す図である。
【
図9】
図9は、第1カテゴリテーブルのデータ構造の一例を示す図である。
【
図10】
図10は、第2カテゴリテーブルのデータ構造の一例を示す図である。
【
図11】
図11は、第1ベクトルテーブルのデータ構造の一例を示す図である。
【
図12】
図12は、第2ベクトルテーブルのデータ構造の一例を示す図である。
【
図13】
図13は、本実施例1に係る割当部の処理を説明するための図である。
【
図14】
図14は、本実施例1に係る情報処理装置の処理手順の一例を示すフローチャート(1)である。
【
図15】
図15は、本実施例1に係る情報処理装置の処理手順の一例を示すフローチャート(2)である。
【
図16】
図16は、ベクトルの次元圧縮を説明するための図(1)である。
【
図17】
図17は、ベクトルの次元圧縮を説明するための図(2)である。
【
図18】
図18は、本実施例2に係る情報処理装置の処理を説明するための図である。
【
図19】
図19は、本実施例2に係る情報処理装置の構成を示す機能ブロック図である。
【
図20】
図20は、塩基ファイルのデータ構造の一例を示す図である。
【
図21】
図21は、変換テーブルのデータ構造の一例を示す図である。
【
図22】
図22は、コドン圧縮ファイルのデータ構造の一例を示す図である。
【
図23】
図23は、コドン転置インデックスのデータ構造の一例を示す図である。
【
図24】
図24は、タンパク質辞書のデータ構造の一例を示す図である。
【
図25】
図25は、タンパク質HMMのデータ構造の一例を示す図である。
【
図26】
図26は、タンパク質圧縮ファイルのデータ構造の一例を示す図である。
【
図27】
図27は、タンパク質転置インデックスのデータ構造の一例を示す図である。
【
図28】
図28は、カテゴリテーブルのデータ構造の一例を示す図である。
【
図29】
図29は、ベクトルテーブルのデータ構造の一例を示す図である。
【
図30】
図30は、第2符号化部の処理を説明するための図である。
【
図31】
図31は、本実施例2に係る情報処理装置の処理手順を示すフローチャートである。
【
図32】
図32は、実施例1の情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【
図33】
図33は、実施例2の情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0014】
以下に、本願の開示する情報処理プログラム、情報処理方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例1】
【0015】
図1は、本実施例1に係る情報処理装置の処理を説明するための図である。
図1では一例として、情報処理装置が、日本語の入力テキストda1,da2に文ベクトルを割り当てる場合について説明する。たとえば、入力テキストda1の文を「苺は甘い。」とする。入力テキストda2の文を「彼の考えは甘い。」とする。
【0016】
ここでは、情報処理装置が、第1共起率テーブル143aと、第1カテゴリテーブル144aと、第1ベクトルテーブル145aとを用いて処理を行うものとする。
【0017】
第1共起率テーブル143aは、意味区分ごとに区別した多義語と、単語のカテゴリとの共起率の関係を保持する。本実施例1では、単語とカッコ付きの数字との組によって、多義語となる単語を区別する。
図1では、多義語「甘い」を「甘い(1)」、「甘い(2)」によって区別する。
【0018】
「甘い(1)」の意味を「砂糖、みつなど糖分の味がする」とする。「甘い(1)」が含まれる文において、カテゴリID「α」によって特定される単語の共起率が「78%」である旨が示される。「甘い(1)」が含まれる文において、カテゴリID「β」によって特定される単語の共起率が「63%」である旨が示される。「甘い(1)」が含まれる文において、カテゴリID「η」によって特定される単語の共起率が「1%」である旨が示される。「甘い(1)」が含まれる文において、カテゴリID「ζ」によって特定される単語の共起率が「2%」である旨が示される。
【0019】
情報処理装置は、多義語「甘い」が含まれる文において共起する他の単語が、カテゴリID「α」、「β」に対応する単語である場合、多義語「甘い」を、多義語「甘い(1)」と特定する。
【0020】
「甘い(2)」の意味を「厳しさにかけているさま」とする。「甘い(2)」が含まれる文において、カテゴリID「α」によって特定される単語の共起率が「1%」である旨が示される。「甘い(2)」が含まれる文において、カテゴリID「β」によって特定される単語の共起率が「2%」である旨が示される。「甘い(2)」が含まれる文において、カテゴリID「η」によって特定される単語の共起率が「81%」である旨が示される。「甘い(2)」が含まれる文において、カテゴリID「ζ」によって特定される単語の共起率が「71%」である旨が示される。
【0021】
情報処理装置は、多義語「甘い」が含まれる文において共起する他の単語が、カテゴリID「η」、「ζ」に対応する単語である場合、多義語「甘い」を、多義語「甘い(2)」と特定する。
【0022】
第1カテゴリテーブル144aは、カテゴリIDと、単語とを対応付けるテーブルである。各単語は、シソーラスに基づいて、各カテゴリIDに分類されている。たとえば、苺、リンゴ、葡萄等の果物は、カテゴリID「α」に分類されている。彼、彼女等のように人に関する単語は、カテゴリID「η」に分類されている。ここでは説明を省略するが、他の単語も、いずれかのカテゴリIDに分類されているものとする。
【0023】
第1ベクトルテーブル145aは、各単語に割り当てる単語ベクトルを保持する。多義語については、意味区分ごとに単語ベクトルが設定される。各単語の単語ベクトルは、ポアンカレエンベッディング(Poincare Embeddings)と呼ばれる従来技術によって、予め算出されているものとする。
【0024】
情報処理装置が、入力テキストda1の文ベクトルを割り当てる処理について説明する。情報処理装置は、入力テキストda1に対して形態素解析を実行することで、単語w1-1,w1-2,w1-3に分割する。単語w1-1,w1-2,w1-3のうち、単語w1-3が多義語となる。たとえば、情報処理装置は、辞書データを用いて、多義語を特定する。
【0025】
情報処理装置は、単語w1-3と共起する単語w1-1,w1-2と、第1カテゴリテーブル144aとを比較して、単語w1-1のカテゴリID「α」を特定する。単語w1-2のカテゴリIDに関する説明は省略する。
【0026】
情報処理装置は、単語w1-3に対応する多義語「甘い」、および、共起するw1-1のカテゴリID「α」の関係と、第1共起率テーブル143aとを比較し、単語w1-3が、多義語「甘い(1)」に対応することを特定する。
【0027】
情報処理装置は、単語w1-1,w1-2,w1-3と、第1ベクトルテーブル145aとを比較して、単語w1-1,w1-2,w1-3に対応する単語ベクトルV1-1,V1-2,V(1)をそれぞれ割り当てる。ここで、単語w1-3に割り当てられる単語ベクトルは、「甘い(1)」に関する固有の単語ベクトルV(1)となる。情報処理装置は、単語ベクトルV1-1,V1-2,V(1)を集積することで、文ベクトル「V1」を算出する。情報処理装置は、入力テキストda1に、文ベクトル「V1」を割り当てる。
【0028】
情報処理装置が、入力テキストda2の文ベクトルを割り当てる処理について説明する。情報処理装置は、入力テキストda2に対して形態素解析を実行することで、単語w2-1,w2-2,w2-3,w2-4,w2-5に分割する。単語w2-1,w2-2,w2-3,w2-4,w2-5のうち、単語w2-5が多義語となる。たとえば、情報処理装置は、辞書データを用いて、多義語を特定する。
【0029】
情報処理装置は、単語w2-5と共起する単語w2-1,w2-2,w2-3,w2-4と、第1カテゴリテーブル144aとを比較して、単語w2-1のカテゴリID「η」を特定する。単語w2-2~w2-4のカテゴリIDに関する説明は省略する。
【0030】
情報処理装置は、単語w2-5に対応する多義語「甘い」、および、共起するw2-1のカテゴリID「η」の関係と、第1共起率テーブル143aとを比較して、単語w2-5が、多義語「甘い(2)」に対応することを特定する。
【0031】
情報処理装置は、単語w2-1~w2-5と、第1ベクトルテーブル145aとを比較して、単語w2-1~w2-5に対応する単語ベクトルV2-1,V2-2,V2-3,V2-4,V(2)をそれぞれ割り当てる。ここで、単語w2-5に割り当てられる単語ベクトルは、「甘い(2)」に関する固有の単語ベクトルV(2)となる。情報処理装置は、単語ベクトルV2-1,V2-2,V2-3,V2-4,V(2)を集積することで、文ベクトル「V2」を算出する。情報処理装置は、入力テキストda2に、文ベクトル「V2」を割り当てる。
【0032】
上記のように、本実施例1に係る情報処理装置は、意味区分ごとに区別した多義語と他の単語のカテゴリとの共起率を定義した第1共起率テーブル143aを用いて、入力テキストに含まれる多義語の意味を特定し、多義語の意味に応じた単語ベクトルを割り当てる。このように、入力テキストに多義語が含まれている場合に、多義語の意味に応じた単語ベクトルを割り当てるため、入力テキストに対応する文ベクトルの精度を高精度化することができる。
【0033】
また、情報処理装置は、シソーラスに基づいて、単語をカテゴリIDに分類しておき、意味区分に区別した多義語と、カテゴリIDとの共起率を定義した第1共起率テーブル143aを用いて、処理を行う。このため、単語ごとの共起率を定義する従来型のHMMと比較して、第1共起率テーブル143aのデータ量を少なくすることができる。
【0034】
次に、本実施例1に係る情報処理装置の構成について説明する。
図2は、本実施例1に係る情報処理装置の構成を示す機能ブロック図である。
図2に示すように、この情報処理装置100は、通信部110、入力部120、表示部130、記憶部140、制御部150を有する。
【0035】
通信部110は、有線又は無線で外部装置等に接続され、外部装置等との間で情報の送受信を行う。たとえば、通信部110は、NIC(Network Interface Card)等によって実現される。通信部110は、図示しないネットワークに接続されていてもよい。
【0036】
入力部120は、各種の情報を、情報処理装置100に入力する入力装置である。入力部120は、キーボードやマウス、タッチパネル等に対応する。
【0037】
表示部130は、制御部150から出力される情報を表示する表示装置である。表示部130は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、タッチパネル等に対応する。
【0038】
記憶部140は、第1辞書データ141a、第2辞書データ141b、第1教師データ142a、第2教師データ142b、第1共起率テーブル143a、第2共起率テーブル143bを有する。記憶部140は、第1カテゴリテーブル144a、第2カテゴリテーブル144b、第1ベクトルテーブル145a、第2ベクトルテーブル145bを有する。記憶部140は、第1テキストデータ146a、第2テキストデータ146bを有する。記憶部140は、たとえば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
【0039】
第1辞書データ141aは、日本語の単語辞書のフォーマットを拡張した辞書データであり、日本語の単語のほかに、日本語の多義語、熟語、専門用語等が登録される。
図3は、第1辞書データのデータ構造の一例を示す図である。たとえば、第1辞書データ141aは、単語文字列、品詞、分類、多義語フラグ等を対応付ける。
【0040】
単語文字列は、活用や表記揺れなどを考慮した、文中において文字列として実際に出現する単語の形式を示すもの(表層形)である。品詞は、文中の単語の品詞を示す。分類は、文中の単語の分類を示す。多義語フラグは、単語文字列が多義語であるかを示すフラグである。多義語である場合には、多義語フラグが「1」となる。多義語でない場合には、多義語フラグが「0」となる。
【0041】
第2辞書データ141bは、英語の単語辞書のフォーマットを拡張した辞書データであり、英語の単語のほかに、英語の多義語、熟語、専門用語等が登録される。
図4は、第2辞書データのデータ構造の一例を示す図である。たとえば、第2辞書データ141bは、単語文字列、品詞、分類、多義語フラグ等を対応付ける。
【0042】
単語文字列、品詞、分類、多義語フラグに関する説明は、
図3で行った説明と同様である。
【0043】
第1教師データ142aは、日本語に関する第1共起率テーブル143aの各共起率(パラメータ)を算出する場合に用いられるデータである。
図5は、第1教師データの一例を示す図である。
図5に示すように、第1教師データ142aは、複数の日本語の文が含まれている。また、文に含まれる単語のうち、多義語となる単語には、単語とカッコ書きの数字との組によって、区別されている。甘い(1)と、甘い(2)とは、別の意味区分の単語となる。
【0044】
第2教師データ142bは、英語に関する第2共起率テーブル143bの各共起率(パラメータ)を算出する場合に用いられるデータである。
図6は、第2教師データの一例を示す図である。
図6に示すように、第2教師データ142bは、複数の英語の文が含まれている。また、文に含まれる単語のうち、多義語となる単語には、単語とカッコ書きの数字との組によって、区別されている。cool(1)と、cool(2)とは、別の意味区分の単語となる。
【0045】
第1共起率テーブル143aは、意味区分ごとに区別した多義語(日本語の多義語)と、単語(日本語の単語)のカテゴリとの共起率の関係を保持する。
図7は、第1共起率テーブルのデータ構造の一例を示す図である。
図7に示すように、単語とカッコ書きの数字との組によって、同一の単語文字列の多義語を区別する。
図7に関する第1共起率テーブル143aに関する説明は、
図1で行った第1共起率テーブル143aに関する説明と同様である。
【0046】
第2共起率テーブル143bは、意味区分ごとに区別した多義語(英語の多義語)と、単語(英語の単語)のカテゴリとの共起率の関係を保持する。
図8は、第2共起率テーブルのデータ構造の一例を示す図である。
図8に示すように、単語とカッコ書きの数字との組によって、同一の単語文字列の多義語を区別する。
【0047】
「coo1(1)」の意味は「涼しい」である。「coo1(1)」が含まれる文において、カテゴリID「ε」によって特定される単語の共起率が「75%」である旨が示される。「coo1(1)」が含まれる文において、カテゴリID「λ」によって特定される単語の共起率が「60%」である旨が示される。「coo1(1)」が含まれる文において、カテゴリID「η」によって特定される単語の共起率が「1%」である旨が示される。「coo1(1)」が含まれる文において、カテゴリID「ζ」によって特定される単語の共起率が「2%」である旨が示される。
【0048】
情報処理装置100は、多義語「coo1」が含まれる文において共起する他の単語が、カテゴリID「ε」、「λ」に対応する単語である場合、多義語「coo1」を、多義語「coo1(1)」と特定する。
【0049】
「coo1(2)」の意味は「冷静、沈着」である。「coo1(2)」が含まれる文において、カテゴリID「ε」によって特定される単語の共起率が「1%」である旨が示される。「coo1(2)」が含まれる文において、カテゴリID「λ」によって特定される単語の共起率が「2%」である旨が示される。「coo1(2)」が含まれる文において、カテゴリID「η」によって特定される単語の共起率が「77%」である旨が示される。「coo1(2)」が含まれる文において、カテゴリID「ζ」によって特定される単語の共起率が「75%」である旨が示される。
【0050】
情報処理装置100は、多義語「coo1」が含まれる文において共起する他の単語が、カテゴリID「η」、「ζ」に対応する単語である場合、多義語「coo1」を、多義語「coo1(2)」と特定する。
【0051】
第1カテゴリテーブル144aは、カテゴリIDと、日本語の単語とを対応付けるテーブルである。
図9は、第1カテゴリテーブルのデータ構造の一例を示す図である。
図9に示すように、第1カテゴリテーブル144aは、カテゴリIDと、単語とを対応付ける。カテゴリIDは、カテゴリを一意に識別する情報である。単語は、シソーラスに基づいて、各カテゴリIDに分類されているものとする。
【0052】
たとえば、単語「苺」、「リンゴ」、「葡萄」等は、カテゴリID「α」に分類される。単語「クッキー」、「ケーキ」、「アイスクリーム」等は、カテゴリID「β」に分類される。単語「彼」、「彼女」、「おまえ」、「あいつ」等は、カテゴリID「η」に分類される。単語「考え」、「希望」、「アイデア」等は、カテゴリ「ζ」に分類される。
【0053】
第2カテゴリテーブル144bは、カテゴリIDと、英語の単語とを対応付けるテーブルである。
図10は、第2カテゴリテーブルのデータ構造の一例を示す図である。
図10に示すように、第2カテゴリテーブル144bは、カテゴリIDと、単語とを対応付ける。カテゴリIDは、カテゴリを一意に識別する情報である。単語は、シソーラスに基づいて、各カテゴリIDに分類されているものとする。
【0054】
たとえば、単語「room」、「place」、「hall」等は、カテゴリID「ε」に分類される。単語「temperature」、「air」、「atmosphere」等は、カテゴリID「λ」に分類される。単語「he」、「she」、「you」、「chap」等は、カテゴリID「η」に分類される。単語「thought」、「hope」、「idea」等は、カテゴリ「ζ」に分類される。
【0055】
第1ベクトルテーブル145aは、日本語の単語の単語ベクトルを定義する。また、多義語については、意味区分ごとに、異なる単語ベクトルが対応付けられる。
図11は、第1ベクトルテーブル145aのデータ構造の一例を示す図である。
図11に示すように、この第1ベクトルテーブル145aは、単語と、単語ベクトルとを対応付ける。単語ベクトルの次元を200次元とする。
【0056】
たとえば、多義語「甘い」については、意味区分ごとに単語ベクトルが対応付けられる。「甘い(1)」には、単語ベクトル(200次元)「Vj1-1~Vj1-200」が対応付けられる。「甘い(2)」には、単語ベクトル(200次元)「Vj2-1~Vj2-200」が対応付けられる。
【0057】
第2ベクトルテーブル145bは、英語の単語の単語ベクトルを定義する。また、多義語については、意味区分ごとに、異なる単語ベクトルが対応付けられる。熟語については、熟語を構成する複数の単語に対して、一つの単語ベクトルが対応付けられる。
図12は、第2ベクトルテーブル145bのデータ構造の一例を示す図である。
図12に示すように、この第2ベクトルテーブル145bは、単語と、単語ベクトルとを対応付ける。単語ベクトルの次元を200次元とする。
【0058】
たとえば、多義語「cool」については、意味区分ごとに単語ベクトルが対応付けられる。「cool(1)」には、単語ベクトル(200次元)「Ve1-1~Ve1-200」が対応付けられる。「cool(2)」には、単語ベクトル(200次元)「Ve2-1~Ve2-200」が対応付けられる。
【0059】
また、熟語「take off」については、一つの単語ベクトル(200次元)「Ve4-1~Ve4-200」が対応付けられる。熟語「take out」については、一つの単語ベクトル(200次元)「Ve5-1~Ve5-200」が対応付けられる。
【0060】
図11、
図12で説明した単語ベクトルは、ポアンカレエンベッディングと呼ばれる技術を用いて予め算出されているものとする。
【0061】
ポアンカレエンベディングでは、ポアンカレ空間に埋め込まれた位置に応じて、ベクトルが割り当てられるものであり、また、類似する情報ほど、近い位置に埋め込まれるという特徴がある。このため、同一の共通概念に分類される各基本情報は、ポアンカレ空間において、それぞれ近い位置に埋め込まれるため、類似のベクトルが割り当てられる。たとえば、日本語の単語「甘い(1)」と、英語の単語「sweet」とは、類似の意味であるため、類似の単語ベクトルが割り当てられる。
【0062】
第1テキストデータ146aは、複数の日本語の文(入力テキスト)を含むデータである。後述する制御部150は、第1テキストデータ146aに含まれる入力テキストに対して文ベクトルを割り当てる処理を行う。
【0063】
第2テキストデータ146bは、複数の英語の文(入力テキスト)を含むデータである。後述する制御部150は、第2テキストデータ146bに含まれる入力テキストに対して文ベクトルを割り当てる。
【0064】
制御部150は、受付部151、算出部152、生成部153、割当部154を有する。制御部150は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)により実現される。また、制御部150は、例えばASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実行されてもよい。
【0065】
受付部151は、ネットワークを介して、外部装置等から、各種のデータを受け付け、受け付けたデータを記憶部140に格納する。たとえば、受付部151は、第1辞書データ141a、第2辞書データ141b、第1教師データ142a、第2教師データ142b、第1カテゴリテーブル144a、第2カテゴリテーブル144bを受け付け、記憶部140に格納する。
【0066】
算出部152は、ポアンカレエンベッディングを実行することで、各単語、熟語、専門用語等の単語ベクトルを算出する。算出部152は、非特許文献「Valentin Khrulkov1 et al.「Hyperbolic Image Embeddings」Cornell University,2019 April 3」等に記載された技術を基にして、単語、熟語、専門用語等の単語ベクトルを算出し、第1ベクトルテーブル145a、第2ベクトルテーブル145bに登録する。
【0067】
なお、ポアンカレエンベッディングを実行する外部装置によって、事前に各単語の単語ベクトルが算出されている場合には、受付部151は、外部装置から、第1ベクトルテーブル145a、第2ベクトルテーブル145bを受け付け、記憶部140に格納する。
【0068】
生成部153は、第1共起率テーブル143aと、第2共起率テーブル143bとを生成する処理部である。生成部153は、生成した第1共起率テーブル143aと、第2共起率テーブル143bとを記憶部140に格納する。
【0069】
生成部153が、第1共起率テーブル143aを生成する処理の一例について説明する。生成部153は、第1教師データ142aに含まれる日本語の文に対して形態素解析を実行することで、複数の単語に分割する。生成部153は、分割した複数の単語から、多義語を特定する。
図5で説明したように、第1教師データ142aには、多義語が、単語とカッコつきの数字との組によって識別可能に定義されている。以下の説明では、生成部153が、多義語「甘い(1)」の共起率を算出する処理について説明する。
【0070】
生成部153は、多義語「甘い(1)」と共起する単語を検出し、検出した単語と、第1カテゴリテーブル144aとを比較することで、多義語「甘い(1)」と共起する単語のカテゴリIDを特定する。ここで、多義語と共起する単語は、多義語と同一の文に含まれる単語であってもよいし、多義語と同一文の前方に位置する単語であってもよいし、多義語と同一文の後方の単語であってもよい。
【0071】
たとえば、第1教師データ142aにおいて、多義語「甘い(1)」がMA回出現したとする。また、多義語「甘い(1)」と共起する単語のカテゴリID「α」が、LA回出現したとする。この場合には、多義語「甘い(1)」とカテゴリID「α」との共起率は「LA/MA×100」となる。生成部153は、各多義語(単語とカッコつきの数字との組)について、上記処理を繰り返すことで、第1共起率テーブル143aを生成する。
【0072】
続いて、生成部153が、第2共起率テーブル143bを生成する処理の一例について説明する。生成部153は、第2教師データ142bに含まれる英語の文に対して形態素解析を実行することで、複数の単語に分割する。生成部153は、分割した複数の単語から、多義語を特定する。
図6で説明したように、第2教師データ142bには、多義語が、単語とカッコつきの数字との組によって識別可能に定義されている。以下の説明では、生成部153が、多義語「cool(1)」の共起率を算出する処理について説明する。
【0073】
生成部153は、多義語「cool(1)」と共起する単語を検出し、検出した単語と、第2カテゴリテーブル144bとを比較することで、多義語「cool(1)」と共起する単語のカテゴリIDを特定する。ここで、多義語と共起する単語は、多義語と同一の文に含まれる単語であってもよいし、多義語と同一文の前方に位置する単語であってもよいし、多義語と同一文の後方の単語であってもよい。
【0074】
たとえば、第2教師データ142bにおいて、多義語「cool(1)」がMB回出現したとする。また、多義語「cool(1)」と共起する単語のカテゴリID「α」が、LB回出現したとする。この場合には、多義語「cool(1)」とカテゴリID「α」との共起率は「LB/MB×100」となる。生成部153は、各多義語(単語とカッコつきの数字との組)について、上記処理を繰り返すことで、第2共起率テーブル143bを生成する。
【0075】
割当部154は、第1テキストデータ146aに含まれる日本語の入力テキストに対して文ベクトルを割り当てる。また、割当部154は、第2テキストデータ146bに含まれる英語の入力テキストに対して文ベクトルを割り当てる。
【0076】
図13は、本実施例1に係る割当部の処理を説明するための図である。まず、割当部154が、第1テキストデータ146aに含まれる日本語の文(入力テキストda1)に対して文ベクトルを割り当てる処理について説明する。
【0077】
割当部154は、入力テキストda1に対して形態素解析を実行することで、単語w1-1,w1-2,w1-3に分割する。単語w1-1,w1-2,w1-3のうち、単語w1-3が多義語となる。割当部154は、第1辞書データ141aを用いて、多義語「甘い」を特定する。
【0078】
割当部154は、単語w1-3と共起する単語w1-1,w1-2と、第1カテゴリテーブル144aとを比較して、単語w1-1のカテゴリID「α(果物)」を特定する。単語w1-2のカテゴリIDに関する説明は省略する。
【0079】
割当部154は、単語w1-3に対応する多義語「甘い」、および、共起するw1-1のカテゴリID「α」の関係と、第1共起率テーブル143aとを比較し、意味区分ごとの共起率を特定する。
図7において、多義語「甘い(1)」とカテゴリID「α」との共起率は「78%」である。一方、多義語「甘い(2)」とカテゴリID「α」との共起率は「1%」である。割当部154は、「甘い(1)」とカテゴリID「α」との共起率が最大となるため、単語w1-3が、多義語「甘い(1)」に対応することを特定する。
【0080】
割当部154は、単語w1-1,w1-2,w1-3と、第1ベクトルテーブル145aとを比較して、単語w1-1,w1-2,w1-3に対応する単語ベクトルV1-1,V1-2,V(1)をそれぞれ割り当てる。図示を省略するが、単語ベクトルV1-1,V1-2,V(1)は、200次元のベクトルとする。
【0081】
割当部154は、単語ベクトルV1-1,V1-2,V(1)を集積することで、文ベクトル「V1」を算出する。割当部154は、入力テキストda1に、文ベクトル「V1」を割り当てる。割当部154は、第1テキストデータ146aに含まる他の入力テキストについても、上記処理を繰り返し実行することで、文ベクトルを割り当てる。
【0082】
続いて、割当部154が、第2テキストデータ146bに含まれる英語の文(入力テキストda3)に対して文ベクトルを割り当てる処理について説明する。
【0083】
割当部154は、入力テキストda3に対して形態素解析を実行することで、単語w3-1,w3-2,w3-3に分割する。単語w3-1,w3-2,w3-3のうち、単語w3-3が多義語となる。割当部154は、第2辞書データ141bを用いて、多義語「cool」を特定する。
【0084】
割当部154は、単語w3-3と共起する単語w3-1,w3-2と、第2カテゴリテーブル144bとを比較する。たとえば、単語w3-1のカテゴリIDを「η(人)」とする。単語w3-2のカテゴリIDに関する説明は省略する。
【0085】
割当部154は、単語w3-3に対応する多義語「cool」、および、共起するw3-1のカテゴリID「η」の関係と、第2共起率テーブル143bとを比較し、意味区分ごとの共起率を特定する。
図8において、多義語「cool(1)」とカテゴリID「η」との共起率は「1%」である。一方、多義語「cool(2)」とカテゴリID「η」との共起率は「77%」である。割当部154は、「cool(2)」とカテゴリID「η」との共起率が最大となるため、単語w3-3が、多義語「cool(2)」に対応することを特定する。
【0086】
割当部154は、単語w3-1,w3-2,w3-3と、第2ベクトルテーブル145bとを比較して、単語w3-1,w3-2,w3-3に対応する単語ベクトルV3-1,V3-2,V(3)をそれぞれ割り当てる。図示を省略するが、単語ベクトルV3-1,V3-2,V(3)は、200次元のベクトルとする。
【0087】
割当部154は、単語ベクトルV3-1,V3-2,V(3)を集積することで、文ベクトル「V3」を算出する。割当部154は、入力テキストda3に、文ベクトル「V3」を割り当てる。割当部154は、第2テキストデータ146bに含まる他の入力テキストについても、上記処理を繰り返し実行することで、文ベクトルを割り当てる。
【0088】
次に、本実施例1に係る情報処理装置100の処理手順の一例について説明する。
図14は、本実施例1に係る情報処理装置の処理手順の一例を示すフローチャート(1)である。
図14に示すように、情報処理装置100の割当部154は、第1テキストデータ146aから入力テキストを取得する(ステップS101)。
【0089】
割当部154は、入力テキストに対して形態素解析を実行し、複数の単語に分割する(ステップS102)。割当部154は、第1辞書データ141aを基にして、複数の単語から、多義語を特定する(ステップS103)。割当部154は、第1カテゴリテーブル144aを基にして、複数の単語のカテゴリIDを特定する(ステップS104)。
【0090】
割当部154は、多義語および共起するカテゴリIDと、第1共起率テーブル143aとを基にして、多義語の意味区分を特定する(ステップS105)。割当部154は、第1ベクトルテーブル145aを基にして、各単語、多義語の単語ベクトルを特定する(ステップS106)。
【0091】
割当部154は、各単語、多義語の単語ベクトルを集積することで、文ベクトルを算出する(ステップS107)。割当部154は、入力テキストに文ベクトルを割り当てる(ステップS108)。
【0092】
図15は、本実施例1に係る情報処理装置の処理手順の一例を示すフローチャート(2)である。
図14に示すように、情報処理装置100の割当部154は、第2テキストデータ146bから入力テキストを取得する(ステップS201)。
【0093】
割当部154は、入力テキストに対して形態素解析を実行し、複数の単語に分割する(ステップS202)。割当部154は、第2辞書データ141bを基にして、複数の単語から、多義語を特定する(ステップS203)。割当部154は、第2カテゴリテーブル144bを基にして、複数の単語のカテゴリIDを特定する(ステップS204)。
【0094】
割当部154は、多義語および共起するカテゴリIDと、第2共起率テーブル143bとを基にして、多義語の意味区分を特定する(ステップS205)。割当部154は、第2ベクトルテーブル145bを基にして、各単語、多義語の単語ベクトルを特定する(ステップS206)。
【0095】
割当部154は、各単語、多義語の単語ベクトルを集積することで、文ベクトルを算出する(ステップS207)。割当部154は、入力テキストに文ベクトルを割り当てる(ステップS208)。
【0096】
次に、本実施例1に係る情報処理装置100の効果について説明する。情報処理装置100は、意味区分ごとに区別した多義語と他の単語のカテゴリとの共起率を定義した第1共起率テーブル143a(第2共起率テーブル143b)を用いて、入力テキストに含まれる多義語の意味を特定する。情報処理装置100は、特定した結果を基にして、多義語の意味に応じた単語ベクトルを割り当てる。このように、入力テキストに多義語が含まれている場合に、多義語の意味に応じた単語ベクトルを割り当てるため、入力テキストに対応する文ベクトルの精度を高精度化することができる。
【0097】
情報処理装置100は、シソーラスに基づいて、単語をカテゴリIDに分類しておき、意味区分に区別した多義語と、カテゴリIDとの共起率を定義した第1共起率テーブル143a(第2共起率テーブル143b)を用いて、処理を行う。このため、単語ごとの共起率を定義する従来型のHMMと比較して、第1共起率テーブル143a(第2共起率テーブル143b)のデータ量を少なくすることができる。また、カテゴリに対応付けたHMMにより、平均的な照合回数が減少するため、処理の高速化を図ることができる。
【0098】
情報処理装置100は、各単語の単語ベクトルを、ポアンカレエンベッディングを実行することで算出する。これによって、意味に応じた単語ベクトルを割り当てることができる。また、複数の単語からなる熟語に対して、意味に応じた一つの単語ベクトルを割り当てることもできる。
【0099】
ここで、実施例1で説明した情報処理装置100のその他の処理1について説明する。情報処理装置100は、日本語の第1文と、かかる第1文を英語に翻訳した第2文とを対応付けた教師データを用いて、RNN(Recurrent Neural Network)機械学習を実行し、日本語を英語に翻訳する機械学習モデルを生成してもよい。
【0100】
たとえば、情報処理装置100は、教師データに含まれる第1文を形態素解析し、各単語に単語ベクトルを割り当てる。また、情報処理装置100は、上記の処理を行うことで、第1文に多義語が含まれる場合には、多義語の意味区分に対応した単語ベクトルを割り当ている。
【0101】
同様にして、情報処理装置100は、教師データに含まれる第2文を形態素解析し、各単語に単語ベクトルを割り当てる。また、情報処理装置100は、上記の処理を行うことで、第2文に多義語が含まれる場合には、多義語の意味区分に対応した単語ベクトルを割り当ている。
【0102】
情報処理装置100は、第1文の各単語に割り当てた単語ベクトルと、第2文の各単語に割り当てた単語ベクトルとの関係を用いて、RNN機械学習を実行する。
【0103】
続いて、実施例1で説明した情報処理装置100のその他の処理2について説明する。実施例1で説明した第1ベクトルテーブル145a、第2ベクトルテーブル145bの単語ベクトルは、200次元のベクトルであったが、次元圧縮を実行して、低次元(たとえば、3次元)の単語ベクトルに変換してもよい。
【0104】
図16および
図17は、ベクトルの次元圧縮を説明するための図である。
図16について説明する。情報処理装置100の算出部152は、200次元に成分分解された、200本の基底ベクトルa
ie
i(i=1~200)を円状(半円状)に等分に分散配置する。なお、成分分解前のベクトルAと、成分分解された各基底ベクトルa
ie
iとの関係は、式(1)によって定義される。
【0105】
【0106】
図17について説明する。算出部152は、基底ベクトルa
1e
1に対して、残りの基底ベクトルa
2e
2~a
200e
200をそれぞれ直交変換し、直交変換した各基底ベクトルa
2e
2~a
200e
200の値を積算することで、基底ベクトルa
1e
1の値を算出する。
【0107】
算出部152は、基底ベクトルa67e67に対して、残りの基底ベクトルa1e1(実線+矢印)、a2e2、a3e3~a66e66、a68e68~a200e200をそれぞれ直交変換し、直交変換した各基底ベクトルa1e1~a66e66、a68e68~a200e200の値を積算することで、基底ベクトルa67e67の値を算出する。
【0108】
算出部152は、基底ベクトルa131e131に対して、残りの基底ベクトルa1e1~a130e130、a132e132~a200e200をそれぞれ直交変換し、直交変換した各基底ベクトルa1e1~a130e130、a132e132~a200e200の値を積算することで、基底ベクトルa131e131の値を算出する。
【0109】
算出部152は、200次元のベクトルを次元圧縮した圧縮ベクトルの各成分を「基底ベクトルa1e1の値、基底ベクトルa67e67の値、基底ベクトルa131e131の値」とする。算出部152は、他の次元も同様にして、算出する。なお、算出部152は、KL展開等を用いて、次元圧縮を行ってもよい。算出部152は、上記の次元圧縮を、第1ベクトルテーブル145a、第2ベクトルテーブル145bの各単語ベクトルについてそれぞれ実行することで、単語ベクトルを次元圧縮する。
【0110】
上記のように次元圧縮を実行することで、200次元の単語ベクトルを取り扱う場合と比較して、単語ベクトルに関連する計算量を削減することが可能になる。なお、次元圧縮された単語ベクトルは、200次元に不可逆ではあるが、復元することができる。
【実施例2】
【0111】
本実施例2に係る情報処理装置は「塩基ファイル」を取り扱う。塩基ファイルは、複数の塩基記号A,G,C,T(またはU)が配列された情報であり、3塩基の組み合せのコドンが所定のアミノ酸に対応する。また、連続する複数のアミノ酸の組み合わせが、所定のタンパク質に対応し、複数のタンパク質の組み合わせが、一次構造に対応する。さらに、複数の一次構造の組み合わせが、高次構造となる。
【0112】
本実施例2では一例として、タンパク質にベクトルを割り当てる場合について説明する。
図18は、本実施例2に係る情報処理装置の処理を説明するための図である。
図18では、情報処理装置が、タンパク質HMM246と、カテゴリテーブル250と、ベクトルテーブル251とを用いて処理を行うものとする。
【0113】
タンパク質HMM246は、タンパク質と、タンパク質のカテゴリとの共起率の関係を保持する。たとえば、タンパク質P1と、カテゴリID「CL1」によって特定されるタンパク質との共起率が「78%」である旨が示される。タンパク質P1と、カテゴリID「CL2」によって特定されるタンパク質との共起率が「63%」である旨が示される。タンパク質P1と、カテゴリID「CL3」によって特定されるタンパク質との共起率が「1%」である旨が示される。タンパク質P1と、カテゴリID「CL4」によって特定されるタンパク質との共起率が「2%」である旨が示される。
【0114】
タンパク質P2と、カテゴリID「CL1」によって特定されるタンパク質との共起率が「1%」である旨が示される。タンパク質P2と、カテゴリID「CL2」によって特定されるタンパク質との共起率が「2%」である旨が示される。タンパク質P2と、カテゴリID「CL3」によって特定されるタンパク質との共起率が「81%」である旨が示される。タンパク質P2と、カテゴリID「CL4」によって特定されるタンパク質との共起率が「71%」である旨が示される。
【0115】
カテゴリテーブル250は、カテゴリIDと、タンパク質とを対応付けるテーブルである。同一の特性を持つタンパク質同士は、同一のカテゴリIDに分類される。タンパク質A1、タンパク質A2、タンパク質A3等は、カテゴリID「CL1」に分類される。タンパク質B1、タンパク質B2、タンパク質B3等は、カテゴリID「CL2」に分類される。図示を省略するが、「トロンビン」、「キモトリプシン」、「ナットウキナーゼ」は、同一のカテゴリIDに分類される。
【0116】
ベクトルテーブル251は、各タンパク質に割り当てるベクトルを保持する。各タンパク質のベクトルは、ポアンカレエンベッディング(Poincare Embeddings)と呼ばれる従来技術によって、予め算出されているものとする。
【0117】
情報処理装置100は、塩基ファイル241の先頭から、各種の辞書データを用いて、タンパク質の区切りを特定し、タンパク質の種別を特定していく。各種の辞書データについては後述する。情報処理装置は、タンパク質の種別を特定していく過程において、複数のタンパク質の種別が候補に挙がる場合がある。
【0118】
図18に示す例では、タンパク質A1に続くタンパク質の候補が、タンパク質P1、または、タンパク質P2のいずれかとなる場合を示している。
【0119】
情報処理装置は、タンパク質A1と、カテゴリテーブル250とを基にして、タンパク質A1のカテゴリID「CL1」を特定する。情報処理装置は、タンパク質HMM246を基にして、カテゴリID「CL1」と、タンパク質P1との共起率「78%」を特定する。情報処理装置は、タンパク質HMM246を基にして、カテゴリID「CL1」と、タンパク質P2との共起率「1%」を特定する。
【0120】
情報処理装置は、カテゴリID「CL1」とタンパク質P1との共起率が、カテゴリID「CL1」とタンパク質P2との共起率よりも大きいため、タンパク質A1に続くタンパク質を、タンパク質P1として特定する。情報処理装置は、タンパク質P1に続くタンパク質についても、共起率を基にして、タンパク質の種別を特定する処理を繰り返し実行する。
【0121】
情報処理装置は、タンパク質の特定が終了した後に、ベクトルテーブル251を基にして、タンパク質に対してベクトルを割り当てる。
図18に示す例では、情報処理装置は、タンパク質A1にベクトルVp1を割り当て、タンパク質A1にベクトルVp2を割り当てる。情報処理装置は、塩基ファイル241に含まれる各タンパク質のベクトルを積算することで、塩基ファイル241のベクトルを算出する。
【0122】
上記のように、本実施例2に係る情報処理装置は、タンパク質とタンパク質のカテゴリとの共起率を定義したタンパク質HMM246を基にして、塩基ファイル241に含まれるタンパク質の種別を特定し、ベクトルを割り当てる。これによって、塩基ファイル241に含まれるタンパク質の種別が一意に特定できなくても、共起率を用いて、正確なタンパク質の種別を特定でき、適切なベクトルを割り当てることができる。
【0123】
また、情報処理装置は、タンパク質の類似性を基にして、タンパク質をカテゴリIDに分類しておき、タンパク質と、カテゴリIDとの共起率を定義したタンパク質HMM246を用いて、処理を行う。このため、タンパク質ごとの共起率を定義する場合とHMMと比較して、タンパク質HMM246のデータ量を少なくすることができる。
【0124】
次に、本実施例2に係る情報処理装置の構成について説明する。
図19は、本実施例2に係る情報処理装置の構成を示す機能ブロック図である。
図19に示すように、この情報処理装置200は、通信部210、入力部220、表示部230、記憶部240、制御部260を有する。
【0125】
通信部210は、有線又は無線で外部装置等に接続され、外部装置等との間で情報の送受信を行う。たとえば、通信部210は、NIC等によって実現される。通信部210は、図示しないネットワークに接続されていてもよい。
【0126】
入力部220は、各種の情報を、情報処理装置200に入力する入力装置である。入力部220は、キーボードやマウス、タッチパネル等に対応する。
【0127】
表示部230は、制御部260から出力される情報を表示する表示装置である。表示部230は、液晶ディスプレイ、有機ELディスプレイ、タッチパネル等に対応する。
【0128】
記憶部240は、塩基ファイル241、変換テーブル242、コドン圧縮ファイル243、コドン転置インデックス244、タンパク質辞書245、タンパク質HMM246を有する。また、記憶部240は、辞書インデックス247、タンパク質圧縮ファイル248、タンパク質転置インデックス249、カテゴリテーブル250、ベクトルテーブル251を有する。記憶部240は、たとえば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
【0129】
塩基ファイル241は、複数の塩基が配列された情報を保持するファイルである。
図20は、塩基ファイルのデータ構造の一例を示す図である。DNAまたはRNAの塩基は4種類で、「A」、「G」、「C」、「T」または「U」の記号で示される。3つの塩基配列がひとかたまりで64種のコドンと呼ばれ、20種類のアミノ酸を決定する。それぞれのアミノ酸は、「A」~「Y」の記号で示される。
【0130】
変換テーブル242は、コドンと、コドンに対応する符号とを対応付けるテーブルである。
図21は、変換テーブルのデータ構造の一例を示す図である。
図21に示すように、各コドンと、各符号とが対応付けられる。たとえば、コドン「UUU」の符号は「40h(01000000)」となる。「h」は16進数を示すものである。
【0131】
コドン圧縮ファイル243は、符号化された複数のコドンが配列された情報を保持するファイルである。
図22は、コドン圧縮ファイルのデータ構造の一例を示す図である。
図22に示すように、コドン圧縮ファイル243は、コドン単位の符号が配列する情報となる。本実施例2では便宜上、符号の隣に、符号化前の塩基(コドン)を括弧書きで示す。たとえば、コドン「AUG」は、符号「63h」に変換されるが、変換された符号を「(AUG)63h」と表記する。「h」は16進数であることを示すものである。
【0132】
コドン転置インデックス244は、コドン圧縮ファイル243の先頭からのオフセットと、コドンの種別(コドンの符号)とを対応付ける情報である。
図23は、コドン転置インデックスのデータ構造の一例を示す図である。
図23において、コドン転置インデックス244の横軸は、オフセットに対応する軸である。コドン転置インデックス244の縦軸は、コドンの種別(コドンの符号)に対応する軸である。コドン転置インデックス244は、「0」または「1」のビットマップで示され、初期状態では全てのビットマップが「0」に設定される。
【0133】
たとえば、コドン圧縮ファイル243の先頭のコドンの符号のオフセットを「0」とする。コドン圧縮ファイル243の先頭から7番目の位置に、コドンの符号「(AUG)63h」が含まれる場合、コドン転置インデックス244のオフセット「6」の列と、コドンの符号「(AUG)63h」の行とが交差する位置のビットが「1」となる。
【0134】
タンパク質辞書245は、タンパク質の情報と、タンパク質に対応するコドン符号配列とを対応付ける情報である。
図24は、タンパク質辞書のデータ構造の一例を示す図である。
図24に示すように、このタンパク質辞書245は、タンパク質情報と、アミノ酸符号配列と、コドン符号配列とを対応付ける。
【0135】
タンパク質情報には、タンパク質の「符号」と、タンパク質の属する「グループ」と、タンパク質の「名称」とが含まれる。アミノ酸符号配列は、タンパク質の符号(タンパク質の種別)に対応するアミノ酸の符号の配列である。コドン符号配列は、タンパク質の符号(タンパク質の種別)に対応するコドンの符号の配列である。
【0136】
たとえば、タンパク質「一型コラーゲン」は、グループ「コラーゲン」に属し、符号は「8000h」となる。符号「8000h」に対するアミノ酸符号配列は「02h46h59h・・・03h」となる。また、コドン符号配列は「02h63h78h・・・03h」となる。
【0137】
タンパク質HMM246は、タンパク質と、このタンパク質に後続するタンパク質が属するカテゴリIDとの共起率に関する情報を保持する。
図25は、タンパク質HMMのデータ構造の一例を示す図である。
図25に示すように、このタンパク質HMM246は、タンパク質情報と、共起率とを対応付ける。
【0138】
タンパク質情報には、タンパク質の「符号」と、タンパク質の属する「グループ」と、タンパク質の「名称」とが含まれる。共起率には、タンパク質と、カテゴリIDとの共起率がそれぞれ設定される。
【0139】
たとえば、タンパク質HMM246の1行目のレコードについて説明する。タンパク質の符号「8000h」の次に後続するタンパク質が、カテゴリID「CL1」のタンパク質となる確率(共起率)は、「78%」である。タンパク質の符号「8000h」の次に後続するタンパク質が、カテゴリID「CL2」のタンパク質となる確率(共起率)は、「63%」である。タンパク質の符号「8000h」の次に後続するタンパク質が、カテゴリID「CL3」のタンパク質となる確率(共起率)は、「1%」である。タンパク質の符号「8000h」の次に後続するタンパク質が、カテゴリID「CL4」のタンパク質となる確率(共起率)は、「2%」である。
【0140】
辞書インデックス247は、コドン圧縮ファイル243に含まれる各コドン符号配列(タンパク質に対応するコドン符号配列のかたまり)の切れ目のオフセットを保持する情報である。たとえば、辞書インデックス247において、各切れ目は、コドン圧縮ファイル243の先頭からのオフセットで示される。本実施例2では一例として、切れ目を、後続のコドン符号配列の先頭のコドン符号のオフセットで示す。なお、コドン符号配列に加え、アミノ酸符号配列(以降省略)に対応付けてもよい。
【0141】
タンパク質圧縮ファイル248は、複数のタンパク質の符号が配列された情報を保持するファイルである。
図26は、タンパク質圧縮ファイルのデータ構造の一例を示す図である。
図26に示すように、タンパク質圧縮ファイル248は、タンパク質単位の符号が配列する情報となる。
【0142】
タンパク質転置インデックス249は、タンパク質圧縮ファイル248の先頭からのオフセットと、タンパク質の種別(タンパク質の符号)とを対応付ける情報である。
図27は、タンパク質転置インデックスのデータ構造の一例を示す図である。
図27において、タンパク質転置インデックス249の横軸は、オフセットに対応する軸である。タンパク質転置インデックス249の縦軸は、タンパク質の種別(タンパク質の符号)に対応する軸である。タンパク質転置インデックス249は、「0」または「1」のビットマップで示され、初期状態では全てのビットマップが「0」に設定される。
【0143】
たとえば、タンパク質圧縮ファイル248の先頭のタンパク質の符号のオフセットを「0」とする。タンパク質圧縮ファイル248の先頭から8番目の位置に、タンパク質の符号「8000h(一型コラーゲン)」が含まれる場合、タンパク質転置インデックス249のオフセット「7」の列と、タンパク質の符号「8000h(一型コラーゲン)」の行とが交差する位置のビットが「1」となる。
【0144】
カテゴリテーブル250は、タンパク質(タンパク質の符号)が属するカテゴリIDを定義するテーブルである。
図28は、カテゴリテーブルのデータ構造の一例を示す図である。
図28に示すように、カテゴリテーブル250は、カテゴリIDと、タンパク質の符号とを対応付ける。たとえば、タンパク質の符号「8000h」、「8001h」、「8002h」等は、カテゴリID「CL1」に対応付けられる。同一のカテゴリIDに対応付けられるタンパク質は、類似の特性をもつタンパク質となる。
【0145】
ベクトルテーブル251は、タンパク質の符号に割り当てられたベクトルを保持する。
図29は、ベクトルテーブルのデータ構造の一例を示す図である。
図29に示すように、このベクトルテーブル251は、タンパク質の符号と、ベクトルとを対応付ける。タンパク質の符号のベクトルは、ポアンカレエンベッディングと呼ばれる技術を用いて予め算出されているものとする。
【0146】
制御部260は、受付部261と、第1符号化部262と、第2符号化部263と、割当部264とを有する。制御部260は、たとえば、CPUやMPUにより実現される。また、制御部260は、例えばASICやFPGA等の集積回路により実行されてもよい。
【0147】
受付部261は、通信部110を介して、ネットワークに接続された外部装置(図示略)から、各種の情報を取得する処理部である。たとえば、受付部261は、外部装置から、塩基ファイル241を取得した場合、塩基ファイル241を、記憶部240に格納する。なお、受付部261は、塩基ファイル241がZIP等で圧縮されている場合、圧縮された塩基ファイル241を伸長する。
【0148】
第1符号化部262は、塩基ファイル241および変換テーブル242を基にして、コドン圧縮ファイル243を生成する処理部である。第1符号化部262は、塩基ファイル241から、3つずつ塩基を取り出し、取り出した3つの塩基と、変換テーブル242とを比較して、3つの塩基(コドン)に対応する符号を特定し、3つの塩基を符号に変換する。たとえば、第1符号化部262は、コドン「AUG」を符号「63h」に変換する。第1符号化部262は、上記処理を繰り返し実行することで、コドン圧縮ファイル243を生成する。
【0149】
第1符号化部262は、コドン圧縮ファイル243を生成する際に、コドン転置インデックス244を生成する。たとえば、第1符号化部262は、変換したコドンの符号と、コドン圧縮ファイル243の符号のオフセットとに対応するコドン転置インデックス244のビットマップに「1」を設定する。
【0150】
第2符号化部263は、タンパク質圧縮ファイル248およびタンパク質転置インデックス249を生成する処理部である。
【0151】
第2符号化部263は、辞書インデックス247を基にして、コドン圧縮ファイル243に含まれる各タンパク質のコドン符号配列の切れ目を特定する。第2符号化部263は、各切れ目の間のコドン符号配列と、タンパク質辞書245とを基にして、各切れ目の間のコドン符号配列に対応するタンパク質の符号を特定し、コドン符号配列を、タンパク質の符号に変換する。
【0152】
ここで、第2符号化部263は、タンパク質の符号(切れ目)に続くコドン符号配列が、複数のタンパク質の符号に該当する場合には、タンパク質HMM246を基にして、該当する複数のタンパク質の符号のうち、最も共起率の高いタンパク質の符号を特定する。
【0153】
図30は、第2符号化部の処理を説明するための図である。
図30に示すように、コドン圧縮ファイル243のある切れ目のオフセットPからオフセットN
Aまでのコドン符号配列が、タンパク質Aの符号(たとえば、8011h)に対応し、かつ、オフセットPからオフセットN
Bまでのコドンの符号配列が、タンパク質Bの符号(たとえば、8225h)と一致する場合がある。また、直前のタンパク質の符号を「8000h」とする。
【0154】
第2符号化部263は、タンパク質Aの符号「8011h」と、カテゴリテーブル250とを比較して、タンパク質Aのカテゴリが、カテゴリID「CL1」であることを特定する。第2符号化部263は、タンパク質Bの符号「8225h」と、カテゴリテーブル250とを比較して、タンパク質Aのカテゴリが、カテゴリID「CL4」であることを特定する。
【0155】
第2符号化部263は、直線のタンパク質の符号「8000h」およびカテゴリID「CL1」と、タンパク質HMM246とを比較して、共起率「78%」を特定する。第2符号化部263は、直線のタンパク質の符号「8000h」およびカテゴリID「CL4」と、タンパク質HMM246とを比較して、共起率「2%」を特定する。
【0156】
第2符号化部263は、タンパク質の符号「8000h」とカテゴリID「CL1」との共起率が、タンパク質の符号「8000h」とカテゴリID「CL4」との共起率よりも大きいため、符号「8000h」に続くタンパク質の符号を「8011h」と特定する。第2符号化部263は、特定した符号「8011h」によって、コドン符号配列を変換する。たとえば、第2符号化部263は、
図30のオフセットP~P+N
Aのコドンの符号をタンパク質Aの符号とし、オフセットP+N
A+1を切れ目として、上記処理を繰り返し実行することで、タンパク質圧縮ファイル248を生成する。
【0157】
第2符号化部263は、タンパク質圧縮ファイル248を生成する際に、タンパク質転置インデックス249を生成する。タンパク質転置インデックス249は、タンパク質圧縮ファイル248の先頭からのオフセットと、タンパク質の符号とを対応付ける情報である。
【0158】
割当部264は、タンパク質圧縮ファイル248に含まれる各タンパク質の符号と、ベクトルテーブル251とを比較して、タンパク質の符号にベクトルを割り当てる処理部である。割当部264は、タンパク質圧縮ファイル248に含まれる各タンパク質の符号に割り当てたベクトルを集積することで、タンパク質圧縮ファイル248のベクトルを算出してもよい。
【0159】
次に、本実施例2に係る情報処理装置200の処理手順の一例について説明する。
図31は、本実施例2に係る情報処理装置の処理手順を示すフローチャートである。
図31に示すように、情報処理装置200の第1符号化部262は、塩基ファイル241をコドン単位で圧縮し、コドン圧縮ファイル243およびコドン転置インデックス244を生成する(ステップS301)。
【0160】
情報処理装置200の第2符号化部263は、タンパク質辞書245と、コドン転置インデックス244とを基にして、コドン圧縮ファイル243に含まれるタンパク質の符号を特定する(ステップS302)。
【0161】
第2符号化部263は、コドン圧縮ファイル243に含まれるタンパク質の切れ目を、辞書インデックス247に登録する(ステップS303)。第2符号化部263は、タンパク質辞書245と辞書インデックス247とを基にして、コドン圧縮ファイル243に含まれる、後続のタンパク質の符号を特定する(ステップS304)。
【0162】
第2符号化部263は、後続のタンパク質の符号の候補が複数存在する場合に、タンパク質HMM246、カテゴリテーブル250を基にして、タンパク質の符号を特定する(ステップS305)。
【0163】
第2符号化部263は、タンパク質圧縮ファイル248、タンパク質転置インデックス249、辞書インデックス247を更新する(ステップS306)。情報処理装置200の割当部264は、ベクトルテーブル251を基にして、タンパク質の符号にベクトルを割り当てる(ステップS307)。
【0164】
情報処理装置200は、終端に達していない場合には(ステップS308,No)、ステップS304に移行する。一方、情報処理装置200は、終端に達した場合には(ステップS308,Yes)、処理を終了する。
【0165】
次に、本実施例2に係る情報処理装置200の効果について説明する。情報処理装置200は、タンパク質とタンパク質のカテゴリとの共起率を定義したタンパク質HMM246を基にして、塩基ファイル241に含まれるタンパク質の種別を特定し、ベクトルを割り当てる。これによって、塩基ファイル241に含まれるタンパク質の種別が一意に特定できなくても、共起率を用いて、正確なタンパク質の種別を特定でき、適切なベクトルを割り当てることができる。
【0166】
また、情報処理装置200は、タンパク質の類似性を基にして、タンパク質をカテゴリIDに分類しておき、タンパク質と、カテゴリIDとの共起率を定義したタンパク質HMM246を用いて、処理を行う。このため、タンパク質ごとの共起率を定義する場合とHMMと比較して、タンパク質HMM246のデータ量を少なくすることができる。また、カテゴリに対応付けたHMMにより、平均的な照合回数が減少するため、処理の高速化を図ることができる。
【0167】
なお、本実施例2に係る情報処理装置200は、タンパク質に関する共起率を定義したタンパク質HMM246を用いて、塩基ファイル241に含まれる各タンパク質にベクトルを割り当てたがこれに限定されるものではない。たとえば、情報処理装置200は、タンパク質の一次構造に関する共起率を定義した一次構造HMMを用いて、塩基ファイル241に含まれる各タンパク質の一次構造にベクトルを割り当ててもよい。
【0168】
また、塩基ファイル241に限らず、化学構造式を含む化学構造式ファイルに関しても、本願発明を適用可能である。化学構造式ファイルには、複数の官能基が含まれている。情報処理装置200は、かかる官能基にベクトルを割り振る場合に、複数の官能基の候補が存在する場合には、官能基HMMを用いて、出現頻度の高い官能基を特定し、特定した官能基に応じたベクトルを割り当てる。また、類似する複数の官能基については、同一のカテゴリIDを割り当て、官能基HMMのデータ削減を図ってもよい。
【0169】
次に、上記実施例1に示した情報処理装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。
図32は、実施例1の情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【0170】
図32に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303とを有する。また、コンピュータ300は、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行う通信装置304と、インタフェース装置305とを有する。また、コンピュータ300は、各種情報を一時記憶するRAM306と、ハードディスク装置307とを有する。そして、各装置301~307は、バス308に接続される。
【0171】
ハードディスク装置307は、受付プログラム307a、算出プログラム307b、生成プログラム307c、割当プログラム307dを有する。また、CPU301は、各プログラム307a~307eを読み出してRAM306に展開する。
【0172】
受付プログラム307aは、受付プロセス306aとして機能する。算出プログラム307bは、算出プロセス306bとして機能する。生成プログラム307cは、生成プロセス306cとして機能する。割当プログラム307dは、割当プロセス306dとして機能する。
【0173】
受付プロセス306aの処理は、受付部151の処理に対応する。算出プロセス306bの処理は、算出部152の処理に対応する。生成プロセス306cの処理は、生成部153の処理に対応する。割当プロセス306dの処理は、割当部154の処理に対応する。
【0174】
なお、各プログラム307a~307dについては、必ずしも最初からハードディスク装置307に記憶させておかなくても良い。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD-ROM、DVD、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300が各プログラム307a~307dを読み出して実行するようにしてもよい。
【0175】
続いて、上記実施例2に示した情報処理装置200と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。
図33は、実施例2の情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【0176】
図33に示すように、コンピュータ400は、各種演算処理を実行するCPU401と、ユーザからのデータの入力を受け付ける入力装置402と、ディスプレイ403とを有する。また、コンピュータ400は、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行う通信装置404と、インタフェース装置405とを有する。また、コンピュータ400は、各種情報を一時記憶するRAM406と、ハードディスク装置407とを有する。そして、各装置401~407は、バス408に接続される。
【0177】
ハードディスク装置407は、受付プログラム407a、第1符号化プログラム407b、第2符号化プログラム407c、割当プログラム407dを有する。また、CPU401は、各プログラム407a~407dを読み出してRAM406に展開する。
【0178】
受付プログラム407aは、受付プロセス406aとして機能する。第1符号化プログラム407bは、第1符号化プロセス406bとして機能する。第2符号化プログラム407cは、第2符号化プロセス406cとして機能する。割当プログラム407dは、割当プロセス406dとして機能する。
【0179】
受付プロセス406aの処理は、受付部261の処理に対応する。第1符号化プロセス406bの処理は、第1符号化部262の処理に対応する。第2符号化プロセス406cの処理は、第2符号化部263の処理に対応する。割当プロセス406dの処理は、割当部264の処理に対応する。
【0180】
なお、各プログラム407a~407dについては、必ずしも最初からハードディスク装置307に記憶させておかなくても良い。例えば、コンピュータ400に挿入されるフレキシブルディスク(FD)、CD-ROM、DVD、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ400が各プログラム407a~407dを読み出して実行するようにしてもよい。
【符号の説明】
【0181】
100,200 情報処理装置
110,210 通信部
120,220 入力部
130,230 表示部
140,240 記憶部
141a 第1辞書データ
141b 第2辞書データ
142a 第1教師データ
142b 第2教師データ
143a 第1共起率テーブル
143b 第2共起率テーブル
144a 第1カテゴリテーブル
144b 第2カテゴリテーブル
145a 第1ベクトルテーブル
145b 第2ベクトルテーブル
146a 第1テキストデータ
146b 第2テキストデータ
150,260 制御部
151,261 受付部
152 算出部
153 生成部
154,264 割当部
241 塩基ファイル
242 変換テーブル
243 コドン圧縮ファイル
244 コドン転置インデックス
245 タンパク質辞書
246 タンパク質HMM
247 辞書インデックス
248 タンパク質圧縮ファイル
249 タンパク質転置インデックス
250 カテゴリテーブル
251 ベクトルテーブル
262 第1符号化部
263 第2符号化部