IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三星電子株式会社の特許一覧

<>
  • 特許-言語処理方法及び装置 図1
  • 特許-言語処理方法及び装置 図2
  • 特許-言語処理方法及び装置 図3A
  • 特許-言語処理方法及び装置 図3B
  • 特許-言語処理方法及び装置 図4
  • 特許-言語処理方法及び装置 図5
  • 特許-言語処理方法及び装置 図6A
  • 特許-言語処理方法及び装置 図6B
  • 特許-言語処理方法及び装置 図6C
  • 特許-言語処理方法及び装置 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-07
(45)【発行日】2022-11-15
(54)【発明の名称】言語処理方法及び装置
(51)【国際特許分類】
   G06F 40/44 20200101AFI20221108BHJP
   G06F 40/56 20200101ALI20221108BHJP
【FI】
G06F40/44
G06F40/56
【請求項の数】 21
(21)【出願番号】P 2018201883
(22)【出願日】2018-10-26
(65)【公開番号】P2019102067
(43)【公開日】2019-06-24
【審査請求日】2021-05-06
(31)【優先権主張番号】10-2017-0165397
(32)【優先日】2017-12-04
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】李 敏重
(72)【発明者】
【氏名】李 昊潼
【審査官】成瀬 博之
(56)【参考文献】
【文献】米国特許出願公開第2016/0117316(US,A1)
【文献】米国特許出願公開第2017/0323203(US,A1)
【文献】米国特許出願公開第2017/0270100(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-40/58
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークを用いた言語処理方法において、
ニューラルネットワーク基盤のエンコーダを用いてソース文章から文脈情報を取得するステップと、
ニューラルネットワーク基盤のメインデコーダを用いて、前記文脈情報からプレフィックストークンを生成するステップと、
前記プレフィックストークンが予め設定された条件を満足する場合、スキップモデルを用いて前記プレフィックストークンに続く2以上の連続するトークンを含むトークンシーケンスを生成するステップと、
前記プレフィックストークン及び前記トークンシーケンスが結合されたターゲット文章を出力するステップと、
を含み、前記プレフィックストークンは、前記トークンシーケンスを生成する時点より前にトークンごとに復号化された1つ以上のトークンを含むシーケンスであり、前記予め設定された条件は、前記プレフィックストークンが生じたことを前提とする条件付き確率が所定の閾値以上であることであり、前記スキップモデルは、1つ以上のトークンを含む入力トークンに基づいて、前記入力トークンより長い出力トークンを一度に出力することが可能である、言語処理方法。
【請求項2】
前記プレフィックストークン及び前記トークンシーケンスを前記メインデコーダに入力し、1つ以上のトークンが前記トークンシーケンスに続く結果を連続的に生成するステップをさらに含む、請求項1に記載の言語処理方法。
【請求項3】
前記メインデコーダは、トークンを連続的に生成する、請求項1又は2に記載の言語処理方法。
【請求項4】
前記予め設定された条件を満足する前記プレフィックストークンに基づいて、前記スキップモデルによる前記トークンシーケンスの生成によって前記メインデコーダは前記文脈情報を復号化する、請求項3に記載の言語処理方法。
【請求項5】
前記プレフィックストークンが予め設定された条件を満足しない場合、前記メインデコーダを用いて前記プレフィックストークンに続くトークンを生成するステップをさらに含む、請求項1ないし4のうちの何れか一項に記載の言語処理方法。
【請求項6】
前記スキップモデルは、文字を表すトークンを1つ以上含む単語が複数個綴り順に整列した辞典を含む、請求項1ないし5のうちの何れか一項に記載の言語処理方法。
【請求項7】
前記所定の閾値は1である、請求項6に記載の言語処理方法。
【請求項8】
前記スキップモデルは、ニューラルネットワーク基盤のサブデコーダを含む、請求項1ないし7のうちの何れか一項に記載の言語処理方法。
【請求項9】
前記条件は、前記トークンシーケンスを生成する難易度が閾値以下である条件を含み、前記難易度は前記辞典に含まれる単語の候補数に基づいて決定されている、請求項に記載の言語処理方法。
【請求項10】
前記プレフィックストークンを生成するステップ前記トークンシーケンスを生成するステップとが、前記ターゲット文章の複数の候補を生成するために予め設定された個数のビームノードごとに実行される、請求項1ないし9のうちの何れか一項に記載の言語処理方法。
【請求項11】
前記ターゲット文章を出力するステップは、前記ビームノードごとに取得された前記プレフィックストークン及び前記トークンシーケンスを含む候補文章のうちターゲット文章を決定する、請求項10に記載の言語処理方法。
【請求項12】
前記メインデコーダは第1隠れノードと第2隠れノードを含み、前記第1隠れノードは、前記プレフィックストークンが入力されて前記スキップモデルを用いて前記トークンシーケンスを生成し、前記第2隠れノードは、前記プレフィックストークンと前記トークンシーケンスが入力される、請求項1ないし11のうちの何れか一項に記載の言語処理方法。
【請求項13】
前記サブデコーダは第3隠れノードと第4隠れノードを含み、前記第3隠れノードは、前記プレフィックストークンが入力されて前記トークンシーケンスを生成し、前記第4隠れノードは、前記プレフィックストークンと前記トークンシーケンスが入力される、請求項8に記載の言語処理方法。
【請求項14】
前記トークンは文字、単語、又は文章を含む、請求項1ないし13のうちの何れか一項に記載の言語処理方法。
【請求項15】
前記ターゲット文章は、前記ソース文章の翻訳結果に対応する、請求項1ないし14のうちの何れか一項に記載の言語処理方法。
【請求項16】
前記ターゲット文章は、前記ソース文章に対応する自然語生成の結果である、請求項1ないし5のうちの何れか一項に記載の言語処理方法。
【請求項17】
請求項1ないし16のうち何れか一項に記載の言語処理方法を言語処理装置のコンピュータに実行させるコンピュータプログラム。
【請求項18】
少なくとも1つのプロセッサと、
ニューラルネットワーク基盤のエンコーダと、
ニューラルネットワーク基盤のメインデコーダと、
以上の連続するトークンを含むトークンシーケンスを生成するスキップモデルと、を含み、
前記プロセッサは、
前記エンコーダを用いてソース文章から文脈情報を生成し、
前記メインデコーダを用いて前記文脈情報からプレフィックストークンを生成し、
前記プレフィックストークンが予め設定された条件を満足する場合、スキップモデルを用いて前記プレフィックストークンに続く前記トークンシーケンスを生成し、
前記プレフィックストークン及び前記トークンシーケンスが結合されたターゲット文章を出力し、
前記プレフィックストークンは、前記トークンシーケンスを生成する時点より前にトークンごとに復号化された1つ以上のトークンを含むシーケンスであり、前記予め設定された条件は、前記プレフィックストークンが生じたことを前提とする条件付き確率が所定の閾値以上であることであり、前記スキップモデルは、1つ以上のトークンを含む入力トークンに基づいて、前記入力トークンより長い出力トークンを一度に出力することが可能である、言語処理装置。
【請求項19】
前記プロセッサは、前記プレフィックストークンが予め設定された条件を満足しない場合、前記メインデコーダを用いて前記プレフィックストークンに続くトークンを生成する、請求項18に記載の言語処理装置。
【請求項20】
前記スキップモデルは、文字を表すトークンを1つ以上含む単語が複数個綴り順に整列した辞典を含む、請求項18又は19に記載の言語処理装置。
【請求項21】
前記スキップモデルは、ニューラルネットワーク基盤のサブデコーダを含む、請求項18ないし20のうち何れか一項に記載の言語処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の説明は自動的に入力言語を処理する技術に関する。
【背景技術】
【0002】
ニューラルネットワーク(人工神経網とも称される)は、連結線に接続された複数の人工ニューロンを用いて生物学的なシステムの算出能力を模倣するソフトウェア又はハードウェアで具現された認識モデルである。ここで、ハードウェアは、ニューロモーフィック・チップ(neuromorphic chip)を含む。ニューロモーフィック・チップは、神経網の演算のために必要な回路で構成されたチップを意味する。
【0003】
前述した背景技術は、発明者が本発明の導出過程で保有又は習得したものを含む可能性があり、必ずしも本発明の出願前に一般の公衆に公開された公知技術であるとは限らない。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の目的は、自動的に入力言語を処理する技術を提供することにある。
【課題を解決するための手段】
【0005】
一実施形態に係るニューラルネットワーク(neural network、NN)を用いた言語処理方法は、ニューラルネットワーク基盤のエンコーダを用いてソース文章から文脈情報を取得するステップと、ニューラルネットワーク基盤のメインデコーダを用いて、前記文脈情報からプレフィックストークンを生成するステップと、前記プレフィックストークンが予め設定された条件を満足する場合、スキップモデルを用いて前記プレフィックストークンに続く2以上の連続するトークンを含むトークンシーケンスを生成するステップと、前記プレフィックストークン及び前記トークンシーケンスが結合されたターゲット文章を出力するステップとを含む。
【0006】
前記プレフィックストークンが予め設定された条件を満足しない場合、前記メインデコーダを用いて前記プレフィックストークンに続くトークンを生成するステップをさらに含み得る。
【0007】
前記スキップモデルは、複数の単語を綴り順に整列した辞典を含み得る。
【0008】
前記条件は、前記トークンシーケンスが前記プレフィックストークンに続く確率が閾値以上である条件を含み得る。
【0009】
前記スキップモデルは、ニューラルネットワーク基盤のサブデコーダを含み得る。
【0010】
前記条件は、前記トークンシーケンスを生成する難易度が閾値以下である条件を含み得る。
【0011】
前記プレフィックストークンを生成するステップは、予め設定された個数のビームノードごとにプレフィックストークンを生成し、前記トークンシーケンスを生成するステップは、前記予め設定された個数のビームノードごとに前記スキップモデルを用いて前記トークンシーケンスを生成し得る。
【0012】
前記ターゲット文章を出力するステップは、前記ビームノードごとに取得された前記プレフィックストークン及び前記トークンシーケンスを含む候補文章のうちターゲット文章を決定し得る。
【0013】
前記メインデコーダは第1隠れノードと第2隠れノードを含み、前記第1隠れノードは、前記プレフィックストークンが入力されて前記スキップモデルを用いて前記トークンシーケンスを生成し、前記第2隠れノードは、前記プレフィックストークンと前記トークンシーケンスが入力され得る。
【0014】
前記サブデコーダは第3隠れノードと第4隠れノードを含み、前記第3隠れノードは、前記プレフィックストークンが入力されて前記トークンシーケンスを生成し、前記第4隠れノードは、前記プレフィックストークンと前記トークンシーケンスが入力され得る。
【0015】
前記トークンは文字、単語、又は文章を含み得る。前記ターゲット文章は、前記ソース文章の翻訳結果に対応し得る。前記ターゲット文章は、前記ソース文章に対応する自然語生成の結果であり得る。
【0016】
前記言語処理方法は、前記プレフィックストークン及び前記トークンシーケンスを前記メインデコーダに入力し、1つ以上のトークンが前記トークンシーケンスに続く結果を連続的に生成するステップをさらに含み得る。
【0017】
前記言語処理方法は、前記メインデコーダは、トークンを連続的に生成し得る。
【0018】
前記言語処理方法は、前記予め設定された条件を満足する前記プレフィックストークンに基づいて、前記スキップモデルによる前記トークンシーケンスの生成によって前記メインデコーダは前記文脈情報を復号化し得る。
【0019】
非一時的なコンピュータで読み出し可能な格納媒体は、コンピューティングハードウェアが前記方法を実行するようにする命令を格納し得る。
【0020】
一実施形態に係る言語処理装置は、少なくとも1つのプロセッサと、ニューラルネットワーク基盤のエンコーダと、ニューラルネットワーク基盤のメインデコーダと、2以上の連続するトークンを含むトークンシーケンスを生成するスキップモデルと、を含み、前記プロセッサは、前記エンコーダを用いてソース文章から文脈情報を生成し、前記メインデコーダを用いて前記文脈情報からプレフィックストークンを生成し、前記プレフィックストークンが予め設定された条件を満足する場合、スキップモデルを用いて前記プレフィックストークンに続く前記トークンシーケンスを生成し、前記プレフィックストークン及び前記トークンシーケンスが結合されたターゲット文章を出力する。
【0021】
メインデコーダを用いてプレフィックストークンを生成し、プレフィックストークンが予め設定された条件を満足するごとに前記過程が繰り返し行われてもよい。
【0022】
前記プロセッサは、前記プレフィックストークンが予め設定された条件を満足しない場合、前記メインデコーダを用いて前記プレフィックストークンに続くトークンを生成し得る。
【0023】
前記スキップモデルは、複数の単語を綴り順に整列した辞典を含み得る。
【0024】
前記スキップモデルは、ニューラルネットワーク基盤のサブデコーダを含み得る。
【発明の効果】
【0025】
本発明によると、自動的に入力言語を処理する技術を提供することができる。
【図面の簡単な説明】
【0026】
図1】一実施形態に係る言語処理のためのシステムの全体的な構成を示す図である。
図2】一実施形態に係る言語処理方法を示すフローチャートである。
図3A】循環型ニューラルネットワークを用いた言語処理過程を示す図である。
図3B】非循環型ニューラルネットワークを用いた言語処理過程を示す図である。
図4】一実施形態に係るスキップモデルと共に非循環型ニューラルネットワークを用いた言語処理過程を示す図である。
図5】他の実施形態に係るスキップモデルと共に非循環型ニューラルネットワークを用いた言語処理過程を示す図である。
図6A】一実施形態に係るビームサーチアルゴリズムと共に非循環型ニューラルネットワークを用いた言語処理過程を示す図である。
図6B】一実施形態に係るビームサーチアルゴリズムと共に辞典のスキップモデル及び非循環型ニューラルネットワークを用いた言語処理過程を示す図である。
図6C】一実施形態に係るビームサーチアルゴリズムを用いた言語処理結果を示す図である。
図7】一実施形態に係る言語処理装置の細部構成を示す図である。
【発明を実施するための形態】
【0027】
実施形態に対する特定な構造的又は機能的な説明は単なる例示のための目的として開示されたものとして、様々な形態に変更されてもよい。したがって、実施形態は特定な開示形態に限定されるものではなく、本明細書の範囲は技術的な思想に含まれる変更、均等物ないし代替物を含む。
【0028】
第1又は第2などの用語を複数の構成要素を説明するために用いることがあるが、このような用語は1つの構成要素を他の構成要素から区別する目的としてのみ解釈されなければならない。例えば、第1構成要素は第2構成要素と命名することができ、同様に第2構成要素は第1構成要素にも命名することができる。
【0029】
単数の表現は、文脈上、明白に異なる意味をもたない限り複数の表現を含む。本明細書において、「含む」又は「有する」等の用語は明細書上に記載した特徴、数字、ステップ、動作、構成要素、部品又はこれらを組み合わせたものが存在することを示すものであって、1つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、又はこれを組み合わせたものなどの存在又は付加の可能性を予め排除しないものとして理解しなければならない。
【0030】
異なるように定義さがれない限り、技術的であるか又は科学的な用語を含むここで用いる全ての用語は、本実施形態が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる予め定義された用語は、関連技術の文脈上で有する意味と一致する意味を有するものと解釈すべきであって、本明細書で明白に定義しない限り、理想的又は過度に形式的な意味として解釈されることはない。
【0031】
以下、実施形態を添付の図面を参照して詳説する。添付図面を参照して説明することにおいて、図面符号に関わらず同じ構成要素は同じ参照符号を付与し、これに関する重複説明は省略することにする。
【0032】
図1は、一実施形態に係る言語処理のためのシステムの全体的な構成を示す図である。
【0033】
一実施形態によれば、言語処理装置100は、スキップモデルと非循環型(又は非再帰型)ニューラルネットワーク(non-recurrent neural network、NN)を用いてソース文章101をターゲット文章103に変換する。言語処理装置100は、非循環型ニューラルネットワークとスキップモデルを用いて、複数のトークンを一度に復号化することにより処理時間を短縮し得る。言語処理装置100は、シーケンス-ツー-シーケンス(sequence-to-sequence)方式の言語処理で復号化の回数を減らすことができる。言語処理過程は、学習過程に区別されて推定過程を含む。
【0034】
一例として、言語処理装置100は機械翻訳を行ってもよい。言語処理装置100は、翻訳機能が必要な全ての機器に適用される。学習コーパスを介して学習された言語処理装置100は、ソース文章をターゲット文章に自動翻訳する。例えば、スマートフォン111を用いて入力された「大切に育ててくれたお母さん」のようなテキストデータ101は、言語処理装置100によってターゲット文章103に翻訳される。例えば、マイク113を通して入力された「大切に育ててくれたお母さん」のような音声データ101は、言語処理装置100を介してターゲット文章103に翻訳される。ここで、ターゲット文章はソース文章の翻訳結果に対応する。
【0035】
異なる一例として、言語処理装置100は、自然語生成を行ってもよい。例えば、言語処理装置100は、チャットシステム又は質問返答システムに適用される。学習コーパスを介して学習された言語処理装置100は、チャットシステムからソース文章に対応するターゲット文章を生成し得る。図1を参照すると、言語処理装置100は、コンピュータ115を用いて入力されたソース文章101の「大切に育ててくれたお母さん」に対応して「ありがとうございます」105というチャット結果を出力する。ここで、ターゲット文章は、ソース文章に対する応答である。
【0036】
ニューラルネットワークでは、生物学的なニューロンの機能を単純化した人工ニューロンが利用され、人工ニューロンは、接続加重値を有する連結線により相互接続される。接続加重値は、連結線が有する特定の値として接続強度と称される。ニューラルネットワークは、人工ニューロンを介して人の認知作用や学習過程を行うことができる。人工ニューロンは、ノードと称される。
【0037】
ニューラルネットワークは、複数のレイヤを含んでいる。レイヤは層と称される。例えば、ニューラルネットワークは、入力レイヤ、隠れレイヤ、出力レイヤを含む。入力レイヤは、学習を行うための入力を受信して隠れレイヤに伝達し、出力レイヤは、隠れレイヤのノードから受信した信号に基づいてニューラルネットワークの出力を生成する。隠れレイヤは、入力レイヤと出力レイヤとの間に位置して、入力レイヤを介して伝達された学習データを正しく予測するための値に変化させ得る。入力レイヤと隠れレイヤに含まれたノードは、接続加重値を有する連結線を介して接続され、隠れレイヤと出力レイヤに含まれたノードでも接続加重値を有する連結線を介して接続される。入力レイヤ、隠れレイヤ、及び出力レイヤは複数のノードを含み得る。
【0038】
ニューラルネットワークは、複数の隠れレイヤを含む。複数の隠れレイヤを含む神経網は、ディープニューラルネットワークと称される。ディープニューラルネットワークを学習させることは、ディープラーニング(deep learning)と称される。隠れレイヤに含まれたノードは、隠れノードと称される。
【0039】
互いに異なる時間区間で隠れノード間に再帰的な接続のあるニューラルネットワークは、循環型ニューラルネットワークと称される。循環型ニューラルネットワークは、回帰神経網とも称される。循環型ニューラルネットワークで以前時間区間における隠れノードの隠れステートは、現在時間区間における隠れノードに伝達される。ここで、各時間区間は、各トークンが処理された順序に対応する。
【0040】
互いに異なる時間区間で隠れノードの間に再帰的な接続がないニューラルネットワークは、非循環型ニューラルネットワークと称される。非循環型ニューラルネットワークは、非回帰神経網と称される。非循環型ニューラルネットワークで以前時間区間における隠れノードの隠れステートは、現在時間区間における隠れノードに伝達されない。
【0041】
シーケンス-ツー-シーケンス方式は、シーケンシャルデータをシーケンシャルデータに変換する言語処理方式を意味する。シーケンシャルデータは、時間性ないし順序を有するデータである。一例として、シーケンシャルデータは音声データ又は文字データを含んでもよい。
【0042】
一実施形態によれば、言語処理装置100は、エンコーダを用いてシーケンシャルデータであるソース文章を文脈情報に変換する。エンコーダは、ニューラルネットワークである。エンコーダは、非循環型ニューラルネットワークである。文脈情報はコンテキストと称される。ソース文章がシーケンシャルデータであるため、文脈情報もシーケンシャルデータになる。文脈情報は、各トークンの確率を含むベクトルである。ここで、トークンは、文字、単語又は文章などのようにソース文章を区分する単位を称する。
【0043】
循環型ニューラルネットワークの場合、シーケンシャルデータは、各トークンが順次符号化される。循環型ニューラルネットワークは、学習過程で入力文章のトークンそれぞれを連続して処理する。循環型ニューラルネットワークは、学習過程で入力文章のトークンそれぞれを連続して符号化又は復号化する。
【0044】
一方、非循環型ニューラルネットワークの場合、符号化の過程でシーケンシャルデータに含まれる複数のトークンは一度に符号化される。非循環型ニューラルネットワークは、学習過程又は推定過程で複数のトークンを一度に符号化し得る。推定過程は推論過程と称される。学習過程で、非循環型ニューラルネットワークは、文脈情報からターゲット文章に含まれた複数のトークンを一度に復号化し得る。非循環型ニューラルネットワークは、循環型ニューラルネットワークに比べてより速い速度で学習過程を行うことができる。非循環型ニューラルネットワークは、循環型ニューラルネットワークに比べてより速い速度で推定過程の符号化を行うことができる。
【0045】
一実施形態によれば、言語処理装置100は、デコーダを用いてシーケンシャルデータである文脈情報をターゲット文章に変換する。デコーダは、ニューラルネットワークであり得る。デコーダは、非循環型ニューラルネットワークであってもよい。学習過程とは異なり、推定過程の復号化では、ターゲット文章を構成しているトークンが予め知られていないため、各トークンに対して復号化は順次進行されなければならない。
【0046】
一実施形態によれば、言語処理装置100は、スキップモデルを用いてバルク復号化を行うことで処理速度を増加させ得る。言語処理装置100は、非循環型ニューラルネットワークとスキップモデルを用いて複数のトークンを一度に復号化し得る。ここで、一度に符号化すること、或いは一度に復号化することは、並列的に符号化すること、或いは並列的に復号化することと称される。複数のトークンを一度に復号化することはバルク復号化と称される。
【0047】
言語処理装置100は、スキップモデルを用いて現在まで復号化された1つ以上のトークンに基づいて正解である確率の高いトークンシーケンスを生成する。トークンシーケンスは、2以上のトークンを含む。言語処理装置100は、スキップモデルを用いて2以上のトークンを含むトークンシーケンスを一度に生成することで、処理速度を増加させることができる。
【0048】
一実施形態によれば、スキップモデルはターゲット言語に整列した辞典(又は辞書)を含む。この場合、スキップモデルは、ターゲット言語の学習コーパスを参考して生成されてもよい。他の実施形態によれば、スキップモデルは、ニューラルネットワークであってもよい。ニューラルネットワークであるスキップモデルは、サブデコーダと称される。この場合、スキップモデルは、ソース言語とターゲット言語の対で構成された学習コーパスに基づいて学習され得る。
【0049】
言語処理装置100は、スキップモデルを用いて現在まで生成されたk個のトークンに基づいて以後のn個のトークンを閾値以上の確率に推定し得る。言語処理装置100は、数式(1)によりバルク復号化を行う。
Pr(tx,tx+1,...tx+n|tx-k,...tx-1)≧Pth (1)
【0050】
数式(1)を参照すると、現在まで生成されたトークンシーケンスがtx-k,...tx-1である場合、以後のトークンシーケンスがtx,tx+1,...tx+nである確率がPth以上である場合、言語処理装置100は、tx,tx+1,...tx+nをトークンシーケンスとして生成する。ここで、現在まで生成されたトークンシーケンスは、単語又は文章の先部である必要がなく、順序に関わらない。推定されるトークンシーケンスは、単語又は文章の後部である必要がなく、順序に関わらない。
【0051】
機械翻訳の場合、言語処理装置100は、辞典のスキップモデルを用いることによって辞典に存在しない誤った翻訳結果を出力する問題を解消することができる。辞典には正しい単語が格納されているため、言語処理装置100は、辞典のスキップモデルを用いることで各トークンごとに復号化された結果が正書法に間違う問題を防止する。
【0052】
学習過程の場合、言語処理過程とは異なり、デコーダは、非循環型ニューラルネットワークである場合、文脈情報を並列的にターゲット文章に変換する。学習装置は、言語処理装置100のエンコーダ及びデコーダが学習ソース文章に対して学習ターゲット文章に変換される確率が最大化される方向に言語処理装置100を学習させ得る。
【0053】
スキップモデルが辞典である場合、言語処理装置100は、ターゲット言語の学習データで学習される。学習データは学習コーパスを含む。スキップモデルがニューラルネットワークである場合、言語処理装置100は、学習ソース文章及びターゲット言語の学習ターゲット文章の対で構成された並列コーパスを用いて学習され得る。
【0054】
図2は、一実施形態に係る言語処理方法を示すフローチャートである。
【0055】
一実施形態によれば、言語処理装置100は、非循環型ニューラルネットワーク基盤のエンコーダを用いてソース文章の情報を流暢に表現する文脈情報を生成し、文脈情報から非循環型ニューラルネットワーク基盤のデコーダ及びスキップモデルを用いてターゲット文章を生成する。
【0056】
一実施形態によれば、ステップS201において、言語処理装置100は、ニューラルネットワーク基盤のエンコーダを用いてソース文章から文脈情報を取得する。言語処理装置100は、エンコーダを用いてソース文章をベクトル形態の文脈情報に変換する。ベクトルは、ソース文章の各トークンに対応する確率値で構成する。ソース文章がシーケンシャルデータであるため、文脈情報もシーケンシャルデータであり得る。
【0057】
一実施形態によれば、ステップS202において、言語処理装置100は、ニューラルネットワーク基盤のメインデコーダを用いて文脈情報からプレフィックストークンを生成する。ここで、プレフィックストークンは、以後に続くトークンと区別するための用語として現在トークンに称する。言語処理装置100は、文脈情報の各確率値を順次復号化する。プレフィックストークンは、現在の復号化された確率値から選択されたトークンを示す。
【0058】
一実施形態によれば、言語処理装置100は、予め設定された条件に基づいてスキップモデルを用いてバルク復号化を行うか否かを判断する。言語処理装置100は、デコーダを用いて生成された未完成のターゲット文章に対して、スキップモデルを用いてバルク復号化を行うことができるかを判断する。
【0059】
予め設定された条件は、スキップモデルの形態によって変わり得る。例えば、スキップモデルが辞典である場合、予め設定された条件は、プレフィックストークンに続く2以上の連続するトークンを含むトークンシーケンスの確率が閾値以上である条件を意味する。例えば、スキップモデルがニューラルネットワークである場合、予め設定された条件は、トークンシーケンスを生成する難易度が閾値以下である条件を意味する。
【0060】
一実施形態によれば、ステップS203において、プレフィックストークンが予め設定された条件を満足する場合、言語処理装置100は、スキップモデルを用いてプレフィックストークンに続く2以上の連続するトークンを含んでいるトークンシーケンスを生成する。バルク復号化が可能な場合、言語処理装置100は、未完成のターゲット文章に続く複数のトークンを一度に生成し、未完成のターゲット文章と生成された複数のトークンの結合された結果をデコーダに伝達する。言語処理装置100は、トークンシーケンスを一度に生成することでトークンごとに復号化を行う負担を緩和し得る。
【0061】
一実施形態によれば、ステップS204において、言語処理装置100は、プレフィックストークン及びトークンシーケンスが結合されたターゲット文章を出力する。言語処理装置100は、トークンシーケンスを生成するとき、ターゲット言語のコーパスに基づいて生成されたスキップモデルを用いて生成することで、各トークンごとに復号化を行う場合よりも高い正確度を有するターゲット文章を出力できる。
【0062】
他の実施形態によれば、プレフィックストークンが予め設定された条件を満足しない場合、言語処理装置100は、メインデコーダを用いてプレフィックストークンに続くトークンを生成する。この場合、スキップモデルのない非循環型ニューラルネットワークのみで構成されたデコーダのような結果が出力され得る。
【0063】
ステップS201~ステップS204の過程は、例えば<End>のように文章の終わりを示すトークンが生成されるまで反復される。
【0064】
図3Aは、循環型ニューラルネットワークを用いた言語処理過程を示す図である。
【0065】
図3Aを参照すると、循環型ニューラルネットワーク基盤のエンコーダ301は、「I love you」のようなシーケンシャルデータであるソース文章311が入力されてもよい。エンコーダ301は、ソース文章311から文脈情報313を生成する。エンコーダ301は、循環型ニューラルネットワークであるため、各隠れノードの隠れステートは、次の隠れノードの入力に伝達されなければならない。したがって、符号化過程は、「I love you」の各トークンごとに順次実行される。ここで、文脈情報は、ソース文章の情報を示すベクトルであってもよく、トークンの単位は単語であると仮定されている。
【0066】
循環型ネットワーク基盤のデコーダ303は、文脈情報313から「私は君を愛している」のようなターゲット文章315を生成する。デコーダ303は、循環型ニューラルネットワークであるため、各隠れノードの隠れステートは、次の隠れノードの入力に伝達されなければならない。したがって、復号化過程は、文脈情報313の各トークンごとに順次実行される。したがって、復号化過程は、各トークンごとに順次実行される。
【0067】
開始トークンである<start>が最初の隠れノードに入力される場合、最初の隠れノードの隠れステートが更新され、「私は」が生成される。2番目の隠れノードに「私は」と最初の隠れノードの隠れステートが入力されて「君を」が生成される。3番目の隠れノードに「君を」と2番目の隠れノードの隠れステートが入力されて「愛している」が生成される。4番目の隠れノードに「愛している」と3番目の隠れノードの隠れステートが入力されて「。」が生成される。5番目の隠れノードに「。」と4番目の隠れノードの隠れステートが入力されて終了を示す<End>が生成される。
【0068】
図3Bは、非循環型ニューラルネットワークを用いた言語処理過程を示す図である。
【0069】
図3Bを参照すると、非循環型ニューラルネットワーク基盤のエンコーダ321は、「I love you」のようなシーケンシャルデータであるソース文章331が入力されてもよい。エンコーダ321は、ソース文章331から文脈情報333を生成する。エンコーダ321は、非循環型ニューラルネットワークであるため、各隠れノードの隠れステートは次の隠れノードの入力に伝達されない。したがって、符号化過程は「I love you」の各トークンごとに順次実行される必要がなく、ソース文章331に対して一度に実行されてよい。
【0070】
非循環型ネットワーク基盤のデコーダ323は、文脈情報333から「私は君を愛している。」のようなターゲット文章335を生成する。ターゲット文章の各トークンは、予め知られている状態ではないため、復号化過程は、文脈情報333の各トークンごとに順次実行される。ただし、循環型ネットワーク基盤のデコーダとは異なり、各トークンは累積して各トークンに対応する隠れノードに入力される。
【0071】
開始トークンである<start>が最初の隠れノードに入力される場合、最初の隠れノードの隠れステートが更新されて「私は」が生成される。2番目の隠れノードに<start>及び「私は」が入力されて「君を」が生成される。3番目の隠れノードに<start>、「私は」及び「君を」が入力されて「愛している」が生成される。4番目の隠れノードに<start>、「私は」、「君を」及び「愛している」が入力されて「。」が生成される。5番目の隠れノードに<start>、「私は」、「君を」、「愛している」及び「。」が入力され、終了を示す<End>が生成される。
【0072】
図4は、一実施形態に係るスキップモデルと共に非循環型ニューラルネットワークを用いた言語処理過程を示す図である。
【0073】
図4を参照すると、スキップモデルは辞典445であってもよい。スキップモデルは、複数の単語を綴り順に整列した辞典445を含む。予め含まれた各単語は、次の単語と比較するとき差異のある文字の個数と共に格納される。例えば、表1を参照すると、整列した単語の順序がnurse、nurture及びnurzhanである場合、nurseは自身を基準としてnurtureと2文字だけ差異があり、nurtureは自身を基準としてnurzhanと4文字だけ差異がある。
【0074】
【表1】
【0075】
言語処理装置100は「nurt」というプレフィックストークンを有する単語445が「nurture」であって、唯一であること(即ち、(Pr(u,r,e|n,u,r,t)=1であること)を、辞典に含まれた単語の数のログ時間の複雑度に基づいて把握することができる。
【0076】
非循環型ニューラルネットワーク基盤のエンコーダ441は、「大切に育ててくれたお母さん」のようなシーケンシャルデータであるソース文章451が入力されてもい。エンコーダ441は、ソース文章451から文脈情報453を生成する。エンコーダ441は、非循環型ニューラルネットワークであるため、各隠れノードの隠れステートは次の隠れノードの入力に伝達されない。したがって、符号化過程は「大切に育ててくれたお母さん」の各トークンごとに順次実行される必要がなく、ソース文章451に対して一度に実行される。
【0077】
非循環型ネットワーク基盤のメインデコーダ443は、文脈情報453から「nurture and...」のようなターゲット文章455を生成する。ターゲット文章の各トークンは、予め知られた状態ではないため、復号化過程は、文脈情報453の各トークンごとに順次実行される。ただし、循環型ネットワーク基盤のデコーダとは異なり、各トークンは累積して各トークンに対応する隠れノードに入力される。
【0078】
一実施形態によれば、言語処理装置100は、予め設定された条件に基づいてスキップモデルを用いてバルク復号化457を行うか否かを判断する。言語処理装置100は、メインデコーダ443から生成されたトークンを再びメインデコーダ443に入力する前に、スキップモデル445内に生成されたトークンの次に生成される確率が閾値以上であるトークンシーケンスがあるか否かを、生成されたプレフィックストークンに基づいて確認できる。
【0079】
ここで、条件は、トークンシーケンス(u,r,e)がプレフィックストークン(n,u,r,t)に続く確率が閾値以上である条件を含む。図4を参照すれば、閾値は1であってもよい。この場合に、条件が満足されるものはプレフィックストークンが(n,u,r,t)に決定された場合に続くトークンシーケンスは(u,r,e)として唯一であることを意味する。ここで、トークンは一文字の単位である。
【0080】
開始トークンである<start>が最初の隠れノードに入力される場合に「n」が生成される。2番目の隠れノードに<start>及び「n」が入力されて「u」が生成される。3番目の隠れノードに<start>、「n」及び「u」が入力されて「r」が生成される。4番目の隠れノードに<start>、「n」、「u」及び「r」が入力されて「t」が生成される。各隠れノードにトークンが入力される前に、言語処理装置100は、辞典445から閾値以上の確率に対応するトークンシーケンスが存在するかを確認する。ここで、n番目の隠れノードという表現は、n番目のトークンが処理される隠れノードを意味する。1つの隠れノードが繰り返し使用されてもよい。
【0081】
プレフィックストークン(n,u,r,t)に対応する「nurture」の確率が閾値以上である場合、5番目の隠れノードの代わりに、スキップモデル445は、プレフィックストークン(n,u,r,t)が入力されてトークンシーケンス(u,r,e)を一度に生成し得る。メインデコーダ443は、t、u、r及びeの順にトークンを順次生成することなく、tを生成した後スキップモデル445が生成したu、r及びeを入力として使用する。このような過程により、メインデコーダ443は、u、r及びeに対する3回の復号化過程を省略してターゲット文章455を生成することができる。
【0082】
上記のように復号化過程が減少されると共に、翻訳の正確度を向上させる効果がある。各文字単位で復号化が実行されるならば、1文字でも間違う場合にその正確度は低下する。例えば、「nurture」の代わりに「nurtuxe」が生成されてしまうかもしれない。一実施形態に係る言語処理装置100は、スキップモデルを用いて「nurture」を直ちに生成するため「nurtuxe」のようなエラーが発生することなく、より高い正確度を達成することができる。
【0083】
図5は、他の実施形態に係るスキップモデルと共に非循環型ニューラルネットワークを用いた言語処理過程を示す図である。
【0084】
一実施形態によれば、スキップモデルはニューラルネットワーク基盤のサブデコーダ505を含む。言語処理装置100は、トークンシーケンスを生成する難易度が閾値以下であることを条件として、メインデコーダより速くトークンシーケンスを生成できるサブデコーダ505を用いてトークンシーケンスを一度に生成し得る。
【0085】
非循環型ニューラルネットワーク基盤のエンコーダ511は、「大切に育ててくれたお母さん」のようなシーケンシャルデータであるソース文章501が入力されてもよい。エンコーダ511は、ソース文章501から文脈情報513を生成する。エンコーダ511は、非循環型ニューラルネットワークであるため、各隠れノードの隠れステートは次の隠れノードの入力に伝達されない。したがって、符号化過程は、「大切に育ててくれたお母さん」の各トークンごとに順次実行される必要がなく、ソース文章501に対して一度に実行される。
【0086】
非循環型ネットワーク基盤のメインデコーダ503は、文脈情報513から「nurture and...」のようなターゲット文章515を生成する。ターゲット文章の各トークンは、予め知られた状態ではないため、復号化過程は文脈情報513の各トークンごとに順次実行される。
【0087】
他の実施形態によれば、言語処理装置100は、予め設定された条件に基づいてスキップモデルを用いてバルク復号化を行うか否かを判断する。言語処理装置100は、メインデコーダ515から生成されたトークンを再びメインデコーダ515に入力する前に生成されたプレフィックストークンに基づいて、生成の難易度が閾値以下の次に生成されるトークンシーケンスがあるか否かを確認する。
【0088】
開始トークンである<start>が最初の隠れノードに入力される場合、「n」が生成される。一例として、言語処理装置100は、生成されたトークン「n」を再びメインデコーダ515に入力する前に「n」に続いて生成されるトークンシーケンスの生成の難易度が閾値以下であることを確認する。メインデコーダ515の2番目の隠れノードに<start>及び「n」を入力する代わりに、言語処理装置100は、サブデコーダ505を用いて復号化を行ってもよい。サブデコーダ505は、メインデコーダ515に比べてターゲット文章を生成する速度がさらにはやい。
【0089】
サブデコーダ505の最初の隠れノードに「n」が入力されて「u」が生成される。2番目の隠れノードに「n」及び「u」が入力されて「r」が生成される。3番目の隠れノードに「n」、「u」及び「r」が入力されて「t」が生成される。4番目の隠れノードに「n」、「u」、「r」及び「t」が入力されて「u」が生成される。5番目の隠れノードに「n」、「u」、「r」、「t」及び「u」が入力されて「r」が生成される。6番目の隠れノードに「n」、「u」、「r」、「t」、「u」及び「r」が入力されて「e」が生成される。サブデコーダ505は、トークンシーケンス517の「nurture」をメインデコーダ503よりもはやく生成し得る。
【0090】
「nurture」は、メインデコーダ503に入力される。言語処理装置100は、生成されたトークンシーケンス「nurture」をメインデコーダ503に入力する前に、「nurture」に続いて生成されるトークンシーケンスの生成の難易度が閾値よりも大きいかを確認する。サブデコーダ505の代わりに、メインデコーダ503は「a」を生成する。
【0091】
言語処理装置100は、生成されたトークンシーケンス「nurture a」をメインデコーダ515に入力する前に、「nurture a」に後続き生成されるトークンシーケンスの生成の難易度が閾値以下であることを確認できる。言語処理装置100は、サブデコーダ505を用いて復号化を行うことができる。
【0092】
サブデコーダ505の最初の隠れノードに「a」が入力されて「n」が生成される。2番目の隠れノードに「a」及び「n」が入力されて「d」が生成される。サブデコーダ505は、トークンシーケンス519の「and」をメインデコーダ503より速やかに生成する。このような過程により、言語処理装置100はトークンシーケンス515を生成し得る。
【0093】
図6Aは、一実施形態に係るビームサーチアルゴリズムと共に非循環型ニューラルネットワークを用いた言語処理過程を示す図である。
【0094】
言語処理装置100は、複数のビームを保持しながら各ビームごとに言語処理過程を行う。言語処理装置100は、複数の言語処理過程を向上させることで候補文章の多様性を高め、正確度の高いターゲット文章を生成し得る。
【0095】
一実施形態によれば、言語処理装置100は、予め設定された個数のビームノードごとにプレフィックストークンを生成し、ビームノードごとにスキップモデルを用いてトークンシーケンスを生成する。一実施形態によれば、言語処理装置100は、ビームノードごとに取得されたプレフィックストークン及びトークンシーケンスを含む候補文章のうちターゲット文章を決定する。
【0096】
例えば、言語処理装置100は、ソース文章611の「貴下の職務発明が出願されたことをお知らせします。」をエンコーダ601に入力する。エンコーダ601は、ソース文章611の情報を示すベクトルである[-1.424、0.234、…、1.523、-0.02345]を文脈情報613として生成する。
【0097】
例えば、メインデコーダ603は、2つのビーム615,617のそれぞれに対して文脈情報613が入力されて各ビームごとに複数の候補文章を生成する。言語処理装置100は、一定の回数ごとにビーム615,617で生成された複数の未完成の候補文章それぞれの確率を算出し、確率が最も高い2つの候補文章を選択し、2つのビームそれぞれに割り当てる。言語処理装置100は、各ビームごとに選択された候補文章に続くトークンが結合された複数の候補文章を生成し得る。言語処理装置100は、最終ターゲット文章を出力するまで、このような過程を繰り返すことができる。
【0098】
メインデコーダ603は、各ビームごとにトークンごとに予め設定された条件を満足するかを判断する。スキップモデルが辞典である場合、予め設定された条件は、プレフィックストークンがy,...,yt-1である場合、トークンシーケンスがyである確率がX以上である条件である。ビーム617で「We inform y」がプレフィックストークンである場合に、トークンシーケンスが「you」である確率がX以上である場合に、youが一度に生成され得る。
【0099】
図6Bは、一実施形態に係るビームサーチアルゴリズムと共に辞典のスキップモデル及び非循環型ニューラルネットワークを用いた言語処理過程を示す図である。
【0100】
言語処理装置100は、エンコーダ621を用いてソース文章631である「大切に育ててくれたお母さん」が入力されてもよい。エンコーダ621は、ソース文章631を文脈情報633に変換する。
【0101】
言語処理装置100は、2つのビーム623,625それぞれに対して言語処理過程を行う。言語処理装置100は、2つのビームそれぞれに対して文脈情報633から候補文章635,637を生成する。言語処理装置100は、スキップモデルを用いて候補文章635,637を生成する時間を短縮し得る。
【0102】
例えば、言語処理装置100は、ビーム1(623)でプレフィックストークンがn、u、rである場合、後に続くトークンシーケンスがs、eである確率である0.6が設定された閾値0.09以上である条件を満足しているため、トークンシーケンスを一度に生成し得る。言語処理装置100は、ビーム2(625)でプレフィックストークンがn、u、rである場合、後に続くトークンシーケンスがt、u、r、eである確率である0.1が閾値0.09以上である条件を満足しているため、トークンシーケンスを一度に生成し得る。
【0103】
言語処理装置100は、辞典641を用いて「nurse」の最初の2つのトークンの確率が0.2,0.4であることが分かる。言語処理装置100は、辞典641を用いて「nurture」の最初の2つのトークンの確率が0.03,0.06であることが分かる。もし、1つのビームでのみ言語処理の過程が実行されれば、「nurse」の最初の2つのトークンの確率が高いことから「nurse」のみが候補文章として生成されるのであろう。
【0104】
しかし、言語処理装置100は、ビームテーブル643を用いて2以上のビームを保持しながら言語処理過程を行ってもよい。言語処理装置100は、「nurse」と「nurture」をそれぞれのビームに保持しながら言語処理過程を行ってもよい。言語処理装置100は、最終的に「nurse」の確率が0.02であり、「nurture」の確率が0.72であることが分かる。もし、3つのビームが存在すれば、言語処理装置100は「nurt」の確率が0.63であることが分かる。
【0105】
言語処理装置100は、「nurture」の最終確率が最も高いことが分かる。このように、言語処理装置100は、複数の言語処理過程を向上させることで正解である確率がより高いターゲット文章を生成することができる。
【0106】
図6Cは、一実施形態に係るビームサーチアルゴリズムを用いた言語処理結果を示す図である。
【0107】
図6Cを参照すると、言語処理装置100は、未完成の候補文章を複数保持することにより最終的に最も確率の高い候補文章をターゲット文章として決定し得る。
【0108】
例えば、ソース文章650の「大切に育ててくれたお母さん」に対する文脈情報がデコーダに入力される場合、4つのビームそれぞれに対して復号化過程が行われる。最初のトークンテーブル651でトークン「N」が最も高い確率である0.78を有するものの、4つのビームが保持されることから、確率が高い上位4つのN、R、G及びYがトークンテーブル651に格納される。その後、4番目のトークンテーブル653で未完成の候補文章である「Rais」が最も高い確率である0.74を有する。
【0109】
もし、4番目のトークンテーブル653に対して1つのビームが保持される場合、5番目のトークンテーブル657のように「Rais」のみがプレフィックストークンとして用いられる。一方、4つのビームが全て保持される場合、5番目のトークンテーブル655のように「Rais」、「Nurt」、「Grow」及び「You M」が全てプレフィックストークンとして用いてられる。
【0110】
最終的な確率を考慮するとき、5番目のトークンテーブル655で最も高い確率は0.85であって、「Nurture」が生成される。一方、5番目のトークンテーブル657によると、最も高い確率は0.74で「Raise」が生成される。トークンテーブルに様々な(互いに類似しない)表現を有するほど、最終的に高い正確度のターゲット文章を生成する可能性が高くなるため、このように、一実施形態に係る言語処理装置100は、ビームサーチアルゴリズムを用いることにより、正確なターゲット文章を出力することができる。
【0111】
図7は、一実施形態に係る言語処理装置の細部構成を示す図である。
【0112】
一実施形態によれば、言語処理装置700は、少なくとも1つのプロセッサ701、ニューラルネットワーク基盤のエンコーダ703、ニューラルネットワーク基盤のメインデコーダ705、及び2以上の連続するトークンを含むトークンシーケンスを生成するスキップモデル707を含む。言語処理装置700は、I/Oインターフェース709をさらに含んでもよい。エンコーダ703及びメインデコーダ705は、非循環型ニューラルネットワークであってもよい。
【0113】
プロセッサ701は、エンコーダ703を用いてソース文章から文脈情報を生成する。エンコーダ703が非循環型ニューラルネットワークである場合、プロセッサ701は、ソース文章を並列的に符号化して文脈情報を生成し得る。
【0114】
プロセッサ701は、メインデコーダ705を用いて文脈情報からプレフィックストークンを生成する。メインデコーダ705が非循環型ニューラルネットワークであっても、ターゲット文章が予め知られていないため、各トークンは順次生成される。
【0115】
プロセッサ701は、プレフィックストークンが予め設定された条件を満足する場合、スキップモデル707を用いてプレフィックストークンに続くトークンシーケンスを生成する。スキップモデル707は、複数の単語を綴り順に整列した辞典を含む。スキップモデル707は、ニューラルネットワーク基盤のサブデコーダを含む。複数のトークンを含むトークンシーケンスが一度に生成されることにより復号化の回数が減少し得る。プロセッサ701は、プレフィックストークン及びトークンシーケンスが結合されたターゲット文章を出力する。
【0116】
プロセッサ701は、プレフィックストークンが予め設定された条件を満足しない場合、メインデコーダ705を用いてプレフィックストークンに続くトークンを生成する。この場合、スキップモデル707がない場合の非循環型ニューラルネットワーク基盤のデコーダにより復号化されるような結果が生成される。
【0117】
以上述した実施形態は、ハードウェア構成要素、ソフトウェア構成要素、又はハードウェア構成要素及びソフトウェア構成要素の組合せで具現される。例えば、本実施形態で説明した装置及び構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPA(field programmable array)、PLU(programmable logic unit)、マイクロプロセッサー、又は命令(instruction)を実行して応答する異なる装置のように、1つ以上の汎用コンピュータ又は特殊目的コンピュータを用いて具現される。処理装置は、オペレーティングシステム(OS)及びオペレーティングシステム上で実行される1つ以上のソフトウェアアプリケーションを実行する。また、処理装置は、ソフトウェアの実行に応答してデータをアクセス、格納、操作、処理、及び生成する。理解の便宜のために、処理装置は1つが使用されるものとして説明する場合もあるが、当技術分野で通常の知識を有する者は、処理装置が複数の処理要素(processing element)及び/又は複数類型の処理要素を含むことが把握する。例えば、処理装置は、複数のプロセッサ又は1つのプロセッサ及び1つのコントローラを含む。また、並列プロセッサ(parallel processor)のような、他の処理構成も可能である。
【0118】
ソフトウェアは、コンピュータプログラム、コード、命令、又はこのうちの1つ以上の組合せを含み、希望通りに動作するように処理装置を構成し、独立的又は結合的に処理装置に命令する。ソフトウェア及び/又はデータは、処理装置によって解釈され、処理装置に命令又はデータを提供するためのあらゆる類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、或いは送信される信号波を介して永久的又は一時的に具現化される。ソフトウェアは、ネットワークに連結されたコンピュータシステム上に分散され、分散された方法で格納されるか又は実行される。ソフトウェア及びデータは1つ以上のコンピュータ読み取り可能な記録媒体に格納される。
【0119】
本実施形態による方法は、様々なコンピュータ手段を介して実施されるプログラム命令の形態で具現され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独又は組合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD-ROM、DYIJDのような光記録媒体、フロプティカルディスクのような磁気-光媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。ハードウェア装置は、本発明に示す動作を実行するために1つ以上のソフトウェアモジュールとして作動するように構成してもよく、その逆も同様である。
【0120】
上述したように実施形態をたとえ限定された図面によって説明したが、当技術分野で通常の知識を有する者であれば、上記の説明に基づいて様々な技術的な修正及び変形を適用することができる。例えば、説明された技術が説明された方法と異なる順序で実行されるし、及び/又は説明されたシステム、構造、装置、回路などの構成要素が説明された方法と異なる形態で結合又は組み合わせられてもよいし、他の構成要素又は均等物によって置き換え又は置換されたとしても適切な結果を達成することができる。
図1
図2
図3A
図3B
図4
図5
図6A
図6B
図6C
図7