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

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

▶ ビットディフェンダー アイピーアール マネジメント リミテッドの特許一覧

特許7441186自然言語のセンテンスをデータベースクエリに翻訳するためのシステムおよび方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-20
(45)【発行日】2024-02-29
(54)【発明の名称】自然言語のセンテンスをデータベースクエリに翻訳するためのシステムおよび方法
(51)【国際特許分類】
   G06F 16/332 20190101AFI20240221BHJP
   G06N 20/00 20190101ALI20240221BHJP
【FI】
G06F16/332
G06N20/00
【請求項の数】 16
(21)【出願番号】P 2020572650
(86)(22)【出願日】2019-06-25
(65)【公表番号】
(43)【公表日】2021-10-21
(86)【国際出願番号】 EP2019066794
(87)【国際公開番号】W WO2020002309
(87)【国際公開日】2020-01-02
【審査請求日】2022-06-20
(31)【優先権主張番号】16/020,910
(32)【優先日】2018-06-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】312016539
【氏名又は名称】ビットディフェンダー アイピーアール マネジメント リミテッド
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【弁理士】
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【弁理士】
【氏名又は名称】松尾 淳一
(72)【発明者】
【氏名】トライアン,レベデア
(72)【発明者】
【氏名】エレナ,ブルチャヌ
(72)【発明者】
【氏名】フローリン,ブラッド
【審査官】松尾 真人
(56)【参考文献】
【文献】特開2016-095698(JP,A)
【文献】米国特許出願公開第2018/0129972(US,A1)
【文献】Srinivasan Iyer et al.,Learning a Neural Semantic Parser from User Feedback,arXiv.org,Cornell University,2017年04月27日,https://arxiv.org/abs/1704.08760
【文献】Maxim Rabinovich et al.,Abstract Syntax Networks for Code Generation and Semantic Parsing,arXiv.org,Cornell University,2015年04月25日,https://arxiv.org/abs/1704.07535
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 40/20-40/58
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
コンピュータシステムの少なくとも1つのハードウェアプロセッサ
第1の工程訓練であって、
人工言語(AL)エンコーダおよび該ALエンコーダに結合されるデコーダを実行するステップであって、前記ALエンコーダは、人工言語で形式化された入力ALセンテンスの表現を含む第1の入力アレイを受信し、それに応じて第1の内部アレイを生成するように構成され、前記デコーダは、前記第1の内部アレイを受信し、それに応じて前記人工言語で形式化された第1の出力ALセンテンスの表現を含む第1の出力アレイを生成するように構成される、ステップと、
前記第1の入力アレイを前記ALエンコーダに与えたことに応じて、前記入力ALセンテンスと前記第1の出力ALセンテンスとの間の類似度を示す第1の類似性スコアを決定するステップと、
ALエンコーダ入力とデコーダ出力との間のマッチングを改善するように、前記第1の類似性スコアに従って、前記デコーダのパラメータの第1のセットを調整するステップと
を含む第1の工程訓練を実行するステップと
第1の工程訓練終了条件が満たされるかどうかを判定するステップと、
前記第1の工程訓練終了条件が満たされるかどうかを判定したことに応じて、前記第1の工程訓練終了条件が満たされる場合に、自然言語で形式化された入力自然言語(NL)センテンスの表現を含む第2の入力アレイを受信し、それに応じて第2の内部アレイを前記デコーダに出力するように構成されるNLエンコーダを実行するステップと、
前記第2の内部アレイを受信することに応じて前記デコーダによって生成される第2の出力アレイを決定するステップであって、前記第2の出力アレイは、前記人工言語で形式化された第2の出力ALセンテンスの表現を含む、ステップと、
前記第2の出力ALセンテンスと前記入力NLセンテンスから前記人工言語への翻訳を含むターゲットALセンテンスとの間の類似度を示す第2の類似性スコアを決定するステップと、
デコーダ出力と前記NLエンコーダによって受信された入力の前記人工言語への各翻訳を表現するターゲット出力との間のマッチングを改善するように、前記第2の類似性スコアに従って、前記NLエンコーダのパラメータの第2のセットを調整するステップと
を含む方法であって、前記方法は、前記第1の工程訓練終了条件が満たされるかどうかを判定したことに応じて、前記第1の工程訓練終了条件が満たされない場合に、前記コンピュータシステムの少なくとも1つのハードウェアプロセッサが、
第3の入力アレイを前記ALエンコーダに与えるステップであって、前記第3の入力アレイは、前記人工言語で形式化された第3の入力ALセンテンスの表現を含む、ステップと、
前記ALエンコーダが前記第3の入力アレイを受信したことに応じて、前記デコーダの出力を含む第3の出力アレイを決定するステップであって、前記第3の出力アレイは、第3の出力ALセンテンスの表現を含む、ステップと、
前記第3の入力ALセンテンスと前記第3の出力ALセンテンスとの間の類似度を示す第3の類似性スコアを決定するステップと、
ALエンコーダ入力とデコーダ出力との間のマッチングを改善するように、前記第3の類似性スコアに従って、前記デコーダのパラメータの前記第1のセットを調整するステップと
をさらに含む、方法
【請求項2】
請求項1に記載の方法であって、前記人工言語は、データベースクエリ言語と、プログラミング言語と、マークアップ言語とを含む群から選択される項目を含む、方法。
【請求項3】
請求項2に記載の方法であって、前記人工言語は、構造化問い合わせ言語(SQL)である、方法。
【請求項4】
請求項1に記載の方法であって、前記第2の出力アレイと前記ターゲットALセンテンスの表現を含むターゲットアレイとの間の類似度に従って、前記第2の類似性スコアを決定するステップをさらに含む方法。
【請求項5】
請求項1に記載の方法であって、前記第2の類似性スコアを決定するステップは、前記コンピュータシステムの少なくとも1つのハードウェアプロセッサ
前記ターゲットALセンテンスの表現を前記ALエンコーダに入力するステップと、
前記ターゲットALセンテンスの前記表現を入力として受信したことに応じて、前記ALエンコーダの出力を含む第3の内部アレイを決定するステップと、
前記第2の内部アレイと前記第3の内部アレイとの間の類似度に従って、前記第2の類似性スコアを決定するステップと
を含む、方法。
【請求項6】
請求項1に記載の方法であって、前記NLエンコーダのパラメータの前記第2のセットを調整したことに応じて、前記コンピュータシステムの少なくとも1つのハードウェアプロセッサ
別のNLセンテンスの表現を含む第3の入力アレイを受信し、それに応じて前記デコーダに第3の内部アレイを出力するように構成される別のNLエンコーダを実行するステップであって、前記別のNLセンテンスは、前記自然言語とは別個の別の自然言語で形式化される、ステップと、
前記第3の内部アレイを受信したことに応じて、前記デコーダによって生成された第3の出力アレイを決定するステップであって、前記第3の出力アレイは、第3の出力ALセンテンスの表現を含む、ステップと、
前記第3の出力ALセンテンスと前記別のNLセンテンスから前記人工言語への翻訳を含む第3のターゲットALセンテンスとの間の類似度を示す第3の類似性スコアを決定するステップと、
デコーダ出力と前記別のNLデコーダによって受信された入力の前記人工言語への各翻訳を表現するターゲット出力の別のセットとの間のマッチングを改善するように、前記第3の類似性スコアに従って、前記別のNLエンコーダのパラメータの第3のセットを調整するステップと
をさらに含む方法。
【請求項7】
請求項1に記載の方法であって、前記NLエンコーダは、リカレントニューラルネットワークを含む、方法。
【請求項8】
少なくとも1つのハードウェアプロセッサとメモリとを備えるコンピュータシステムであって、前記少なくとも1つのハードウェアプロセッサは、
第1の工程訓練であって、
ALエンコーダおよび該ALエンコーダに結合されるデコーダを実行することであって、前記ALエンコーダは、人工言語で形式化された入力ALセンテンスの表現を含む第1の入力アレイを受信し、それに応じて第1の内部アレイを生成するように構成され、前記デコーダは、前記第1の内部アレイを受信し、それに応じて前記人工言語で形式化された第1の出力ALセンテンスの表現を含む第1の出力アレイを生成するように構成される、実行することと、
前記第1の入力アレイを前記ALエンコーダに与えたことに応じて、前記入力ALセンテンスと前記第1の出力ALセンテンスとの間の類似度を示す第1の類似性スコアを決定することと、
ALエンコーダ入力とデコーダ出力との間のマッチングを改善するように、前記第1の類似性スコアに従って、前記デコーダのパラメータの第1のセットを調整することと
を含む第1の工程訓練を実行することと
第1の工程訓練終了条件が満たされるかどうか判定することと、
前記第1の工程訓練終了条件が満たされるかどうかを判定したことに応じて、前記第1の工程訓練終了条件が満たされる場合に、自然言語で形式化された入力NLセンテンスの表現を含む第2の入力アレイを受信し、それに応じて第2の内部アレイを前記デコーダに出力するように構成されるNLエンコーダを実行することと、
前記第2の内部アレイを受信したことに応じて前記デコーダによって生成される第2の出力アレイを決定することであって、前記第2の出力アレイは、前記人工言語で形式化された第2の出力ALセンテンスの表現を含む、決定することと、
前記第2の出力ALセンテンスと前記入力NLセンテンスから前記人工言語への翻訳を含むターゲットALセンテンスとの間の類似度を示す第2の類似性スコアを決定することと、
デコーダ出力と前記NLエンコーダによって受信された入力の前記人工言語への各翻訳を表現するターゲット出力との間のマッチングを改善するように、前記第2の類似性スコアに従って、前記NLエンコーダのパラメータの第2のセットを調整することと
を行うように構成され、前記少なくとも1つのハードウェアプロセッサは、前記第1の工程訓練終了条件が満たされるかどうかを判定したことに応じて、前記第1の工程訓練終了条件が満たされない場合に、
第3の入力アレイを前記ALエンコーダに与えることであって、前記第3の入力アレイは、前記人工言語で形式化された第3の入力ALセンテンスの表現を含む、与えることと、
前記ALエンコーダが前記第3の入力アレイを受信したことに応じて、前記デコーダの出力を含む第3の出力アレイを決定することであって、前記第3の出力アレイは、第3の出力ALセンテンスの表現を含む、決定することと、
前記第3の入力ALセンテンスと前記第3の出力ALセンテンスとの間の類似度を示す第3の類似性スコアを決定することと、
ALエンコーダ入力とデコーダ出力との間のマッチングを改善するように、前記第3の類似性スコアに従って、前記デコーダのパラメータの前記第1のセットを調整することと
を行うようにさらに構成される、コンピュータシステム。
【請求項9】
請求項に記載のコンピュータシステムであって、前記人工言語は、データベースクエリ言語と、プログラミング言語と、マークアップ言語とを含む群から選択される項目を含む、コンピュータシステム。
【請求項10】
請求項に記載のコンピュータシステムであって、前記人工言語は、構造化問い合わせ言語(SQL)である、コンピュータシステム。
【請求項11】
請求項に記載のコンピュータシステムであって、前記少なくとも1つのハードウェアプロセッサは、前記第2の出力アレイと前記ターゲットALセンテンスの表現を含むターゲットアレイとの間の類似度に従って、前記第2の類似性スコアを決定するようにさらに構成される、コンピュータシステム。
【請求項12】
請求項に記載のコンピュータシステムであって、前記第2の類似性スコアを決定することは、前記コンピュータシステムの前記少なくとも1つのハードウェアプロセッサを用いて、
前記ターゲットALセンテンスの表現を前記ALエンコーダに入力することと、
前記ターゲットALセンテンスの前記表現を入力として受信したことに応じて、前記ALエンコーダの出力を含む第3の内部アレイを決定することと、
前記第2の内部アレイと前記第3の内部アレイとの間の類似度に従って、前記第2の類似性スコアを決定することと
を含む、コンピュータシステム。
【請求項13】
請求項に記載のコンピュータシステムであって、前記少なくとも1つのハードウェアプロセッサは、前記NLエンコーダのパラメータの前記第2のセットを調整したことに応じて、
別のNLセンテンスの表現を含む第3の入力アレイを受信し、それに応じて前記デコーダに第3の内部アレイを出力するように構成される別のNLエンコーダを実行することであって、前記別のNLセンテンスは、前記自然言語とは別個の別の自然言語で形式化される、実行することと、
前記第3の内部アレイを受信したことに応じて、前記デコーダによって生成された第3の出力アレイを決定することであって、前記第3の出力アレイは、第3の出力ALセンテンスの表現を含む、決定することと、
前記第3の出力ALセンテンスと前記別のNLセンテンスから前記人工言語への翻訳を含む第3のターゲットALセンテンスとの間の類似度を示す第3の類似性スコアを決定することと、
デコーダ出力と前記別のNLデコーダによって受信された入力の前記人工言語への各翻訳を表現するターゲット出力の別のセットとの間のマッチングを改善するように、前記第3の類似性スコアに従って、前記別のNLエンコーダのパラメータの第3のセットを調整することと
を行うようにさらに構成される、コンピュータシステム。
【請求項14】
請求項に記載のコンピュータシステムであって、前記NLエンコーダは、リカレントニューラルネットワークを含む、コンピュータシステム。
【請求項15】
命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令は、第1のコンピュータシステムの第1のハードウェアプロセッサによって実行されると、前記第1のコンピュータシステムに、NLエンコーダおよび該NLエンコーダに接続されるデコーダを含む訓練済翻訳機モジュールを形成させ、前記翻訳機モジュールを訓練することは、第2のコンピュータシステムの第2のハードウェアプロセッサを用いて、
第1の工程訓練であって、
前記デコーダを、人工言語で形式化された入力ALセンテンスの表現を含む第1の入力アレイを受信し、それに応じて第1の内部アレイを生成するように構成されるALエンコーダに結合することであって、前記ALエンコーダは、前記デコーダが前記第1の内部アレイを受信し、それに応じて前記人工言語で形式化された第1の出力ALセンテンスの表現を含む第1の出力アレイを生成するように、前記デコーダに結合される、結合することと、
前記第1の入力アレイを前記ALエンコーダに与えたことに応じて、前記入力ALセンテンスと前記第1の出力ALセンテンスとの間の類似度を示す第1の類似性スコアを決定することと、
ALエンコーダ入力とデコーダ出力との間のマッチングを改善するように、前記第1の類似性スコアに従って、前記デコーダのパラメータの第1のセットを調整することと
を含む第1の工程訓練を実行することと
第1の工程訓練終了条件が満たされるかどうか判定することと、
前記第1の工程訓練終了条件が満たされるかどうかを判定したことに応じて、前記第1の工程訓練終了条件が満たされる場合に、前記NLエンコーダが、自然言語で形式化された入力NLセンテンスの表現を含む第2の入力アレイを受信し、それに応じて第2の内部アレイを前記デコーダに出力するように、前記NLエンコーダを前記デコーダに結合することと、
前記第2の内部アレイを受信することに応じて前記デコーダによって生成される第2の出力アレイを決定することであって、前記第2の出力アレイは、前記人工言語で形式化された第2の出力ALセンテンスの表現を含む、決定することと、
前記第2の出力ALセンテンスと前記入力NLセンテンスから前記人工言語への翻訳を含むターゲットALセンテンスとの間の類似度を示す第2の類似性スコアを決定することと、
デコーダ出力と前記NLエンコーダによって受信された入力の前記人工言語への各翻訳を表現するターゲット出力との間のマッチングを改善するように、前記第2の類似性スコアに従って、前記NLエンコーダのパラメータの第2のセットを調整することと
を含み、前記翻訳機モジュールを訓練することは、前記第2のコンピュータシステムの前記第2のハードウェアプロセッサを用いて、前記第1の工程訓練終了条件が満たされるかどうかを判定したことに応じて、前記第1の工程訓練終了条件が満たされない場合に、
第3の入力アレイを前記ALエンコーダに与えることであって、前記第3の入力アレイは、前記人工言語で形式化された第3の入力ALセンテンスの表現を含む、与えることと、
前記ALエンコーダが前記第3の入力アレイを受信したことに応じて、前記デコーダの出力を含む第3の出力アレイを決定することであって、前記第3の出力アレイは、第3の出力ALセンテンスの表現を含む、決定することと、
前記第3の入力ALセンテンスと前記第3の出力ALセンテンスとの間の類似度を示す第3の類似性スコアを決定することと、
ALエンコーダ入力とデコーダ出力との間のマッチングを改善するように、前記第3の類似性スコアに従って、前記デコーダのパラメータの前記第1のセットを調整することと
をさらに含む、非一時的なコンピュータ可読媒体。
【請求項16】
NLエンコーダおよび該NLエンコーダに接続されるデコーダを含む訓練済翻訳機モジュールを実行するように構成される第1のハードウェアプロセッサを備えるコンピュータシステムであって、前記翻訳機モジュールを訓練することは、第2のコンピュータシステムの第2のハードウェアプロセッサを用いて、
第1の工程訓練であって、
前記デコーダを、人工言語で形式化された入力ALセンテンスの表現を含む第1の入力アレイを受信し、それに応じて第1の内部アレイを生成するように構成されるALエンコーダに結合することであって、前記ALエンコーダは、前記デコーダが前記第1の内部アレイを受信し、それに応じて前記人工言語で形式化された第1の出力ALセンテンスの表現を含む第1の出力アレイを生成するように、前記デコーダに結合される、結合することと、
前記第1の入力アレイを前記ALエンコーダに与えたことに応じて、前記入力ALセンテンスと前記第1の出力ALセンテンスとの間の類似度を示す第1の類似性スコアを決定することと、
ALエンコーダ入力とデコーダ出力との間のマッチングを改善するように、前記第1の類似性スコアに従って、前記デコーダのパラメータの第1のセットを調整することと
を含む第1の工程訓練を実行することと
第1の工程訓練終了条件が満たされるかどうかを判定することと、
前記第1の工程訓練終了条件が満たされるかどうかを判定したことに応じて、前記第1の工程訓練終了条件が満たされる場合に、前記NLエンコーダが、自然言語で形式化された入力NLセンテンスの表現を含む第2の入力アレイを受信し、それに応じて第2の内部アレイを前記デコーダに出力するように、前記NLエンコーダを前記デコーダに結合することと、
前記第2の内部アレイを受信することに応じて、前記デコーダによって生成される第2の出力アレイを決定することであって、前記第2の出力アレイは、前記人工言語で形式化された第2の出力ALセンテンスの表現を含む、決定することと、
前記第2の出力ALセンテンスと前記入力NLセンテンスから前記人工言語への翻訳を含むターゲットALセンテンスとの間の類似度を示す第2の類似性スコアを決定することと、
デコーダ出力と前記NLエンコーダによって受信された入力の前記人工言語への各翻訳を表現するターゲット出力との間のマッチングを改善するように、前記第2の類似性スコアに従って、前記NLエンコーダのパラメータの第2のセットを調整することと
を含み、前記翻訳機モジュールを訓練することは、前記第2のコンピュータシステムの前記第2のハードウェアプロセッサを用いて、前記第1の工程訓練終了条件が満たされるかどうかを判定したことに応じて、前記第1の工程訓練終了条件が満たされない場合に、
第3の入力アレイを前記ALエンコーダに与えることであって、前記第3の入力アレイは、前記人工言語で形式化された第3の入力ALセンテンスの表現を含む、与えることと、
前記ALエンコーダが前記第3の入力アレイを受信したことに応じて、前記デコーダの出力を含む第3の出力アレイを決定することであって、前記第3の出力アレイは、第3の出力ALセンテンスの表現を含む、決定することと、
前記第3の入力ALセンテンスと前記第3の出力ALセンテンスとの間の類似度を示す第3の類似性スコアを決定することと、
ALエンコーダ入力とデコーダ出力との間のマッチングを改善するように、前記第3の類似性スコアに従って、前記デコーダのパラメータの前記第1のセットを調整することと
をさらに含む、コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]本発明は、自然言語から人工的な機械可読言語への自動翻訳のためのシステムおよび方法に関する。
【背景技術】
【0002】
[0002]近年、益々多くの製品およびサービスが、膨大な量のデータを収集して分析することに依拠している。その例は、製造からコマース、科学的研究、ヘルスケア、および防衛まで、人間活動の事実上全ての分野に渡る。それらには例えば、複数の店舗および倉庫間で在庫、顧客および販売を管理する小売りシステム、多くの多様なキャリア船を管理する物流ソフトウェア、ならびに潜在的なカスタマーを提案のターゲットにするユーザプロファイリングに依拠するインターネット広告サービスが含まれる。大量のデータを管理することは、データベースアーキテクチャ、ならびに個々のデータと対話するシステムおよび方法における革新と発展を促進してきた。データベースのサイズと複雑性が増すにつれ、人間のオペレータを使用してデータを高速に検索し、取り出し、および分析することは非現実的になりつつある。
【0003】
[0003]並行して、一般的に「モノのインターネット」として知られる電子機器の爆発的な成長と多様化が見られる。携帯電話から家電製品、ウェアラブル、娯楽用デバイス、ならびに様々なセンサおよび車、住宅などに組み込まれるガジェットに渡るデバイスなどは、典型的には遠隔のコンピュータおよび/または様々なデータベースに接続してその機能を実行する。そのようなデバイスおよびサービスの高度に所望される特徴は、ユーザフレンドリ性である。幅広いオーディエンスに利用可能なそのような製品およびサービスを製作する商業上の圧力により、革新的な人-機械インターフェースの研究および開発が進んでいる。そのような技術の一部の例としては、とりわけAppleのSiri(登録商標)、およびAmazon(登録商標)のEcho(登録商標)などのパーソナルアシスタントが挙げられる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
[0004]したがって、人間とコンピュータとの対話を容易にするシステムおよび方法、特に、データベースのアクセスおよび/または管理を含むアプリケーションを開発には顕著な興味の対象である。
【課題を解決するための手段】
【0005】
[0005]一態様によると、方法は、コンピュータシステムの少なくとも1つのハードウェアプロセッサを用いて、人工言語(AL)エンコーダおよびALエンコーダに結合されるデコーダを実行することを含み、ALエンコーダは、人工言語で形式化された入力ALセンテンスの表現を含む第1の入力アレイを受信し、それに応じて第1の内部アレイを生成するように構成される。デコーダは、第1の内部アレイを受信し、それに応じて人工言語で形式化された第1の出力ALセンテンスの表現を含む第1の出力アレイを生成するように構成される。方法は、第1の入力アレイをALエンコーダに与えたことに応じて、入力ALセンテンスと第1の出力ALセンテンスとの間の類似度を示す第1の類似性スコアを決定することと、ALエンコーダ入力とデコーダ出力との間のマッチングを改善するように、第1の類似性スコアに従って、デコーダのパラメータの第1のセットを調整することとをさらに含む。方法は、第1の工程訓練終了条件が満たされるかどうかを判定することと、それに応じて第1の工程訓練終了条件が満たされる場合、自然言語で形式化された入力自然言語(NL)センテンスの表現を含む第2の入力アレイを受信し、それに応じて第2の内部アレイをデコーダに出力するように構成されるNLエンコーダを実行することとをさらに含む。方法は、第2の内部アレイを受信することに応じて、デコーダによって生成される第2の出力アレイを決定することであって、第2の出力アレイが、人工言語で形式化された第2の出力ALセンテンスの表現を含む、決定することと、第2の出力ALセンテンスと入力NLセンテンスから人工言語への翻訳を含むターゲットALセンテンスとの間の類似度を示す第2の類似性スコアを決定することとをさらに含む。方法は、デコーダ出力とNLエンコーダによって受信された入力の人工言語への各翻訳を表現するターゲット出力との間のマッチングを改善するように、第2の類似性スコアに従って、NLエンコーダのパラメータの第2のセットを調整することをさらに含む。
【0006】
[0006]別の態様によると、コンピュータシステムは、少なくとも1つのハードウェアプロセッサと、メモリとを備え、少なくとも1つのハードウェアプロセッサは、ALエンコーダおよびALエンコーダに結合されるデコーダを実行するように構成され、ALエンコーダは、人工言語で形式化された入力ALセンテンスの表現を含む第1の入力アレイを受信し、それに応じて第1の内部アレイを生成するように構成される。デコーダは、第1の内部アレイを受信し、それに応じて人工言語で形式化された第1の出力ALセンテンスの表現を含む第1の出力アレイを生成するように構成される。少なくとも1つのハードウェアプロセッサは、第1の入力アレイをALエンコーダに与えたことに応じて、入力ALセンテンスと第1の出力ALセンテンスとの間の類似度を示す第1の類似性スコアを決定することと、ALエンコーダ入力とデコーダ出力との間のマッチングを改善するように、第1の類似性スコアに従って、デコーダのパラメータの第1のセットを調整することとを行うようにさらに構成される。少なくとも1つのハードウェアプロセッサは、第1の工程訓練終了条件が満たされるかどうかを判定することと、それに応じて第1の工程訓練終了条件が満たされる場合、自然言語で形式化された入力NLセンテンスの表現を含む第2の入力アレイを受信し、それに応じて第2の内部アレイをデコーダに出力するように構成されるNLエンコーダを実行することとを行うようにさらに構成される。少なくとも1つのハードウェアプロセッサは、第2の内部アレイを受信したことに応じて、デコーダによって生成される第2の出力アレイを決定することであって、第2の出力アレイが、人工言語で形式化された第2の出力ALセンテンスの表現を含む、決定することとを行うようにさらに構成される。少なくとも1つのハードウェアプロセッサは、第2の出力ALセンテンスと入力NLセンテンスから人工言語への翻訳を含むターゲットALセンテンスとの間の類似度を示す第2の類似性スコアを決定することと、デコーダ出力とNLエンコーダによって受信された入力の人工言語への各翻訳を表現するターゲット出力との間のマッチングを改善するように、第2の類似性スコアに従って、NLエンコーダのパラメータの第2のセットを調整することとを行うようにさらに構成される。
【0007】
[0007]別の態様によると、非一時的なコンピュータ可読媒体は、命令を記憶し、命令は、第1のコンピュータシステムの第1のハードウェアプロセッサによって実行されると、第1のコンピュータシステムに、NLエンコーダおよびNLエンコーダに接続されるデコーダを含む訓練済翻訳機モジュールを形成させ、翻訳機モジュールを訓練することは、第2のコンピュータシステムの第2のハードウェアプロセッサを用いて、デコーダを、人工言語で形式化された入力ALセンテンスの表現を含む第1の入力アレイを受信し、それに応じて第1の内部アレイを生成するように構成されるALエンコーダに結合することを含む。ALエンコーダは、デコーダが第1の内部アレイを受信し、それに応じて人工言語で形式化された第1の出力ALセンテンスの表現を含む第1の出力アレイを生成するように、デコーダに結合される。翻訳機モジュールを訓練することは、第1の入力アレイをALエンコーダに与えたことに応じて、入力ALセンテンスと第1の出力ALセンテンスとの間の類似度を示す第1の類似性スコアを決定することと、ALエンコーダ入力とデコーダ出力との間のマッチングを改善するように、第1の類似性スコアに従って、デコーダのパラメータの第1のセットを調整することとをさらに含む。翻訳機モジュールを訓練することは、第1の工程訓練終了条件が満たされるかどうかを判定することと、それに応じて第1の工程訓練終了条件が満たされる場合、NLエンコーダが、自然言語で形式化された入力NLセンテンスの表現を含む第2の入力アレイを受信し、それに応じて第2の内部アレイをデコーダに出力するように、NLエンコーダをデコーダに結合することとをさらに含む。翻訳機モジュールを訓練することは、第2の内部アレイを受信することに応じて、デコーダによって生成される第2の出力アレイを決定することであって、第2の出力アレイが、人工言語で形式化された第2の出力ALセンテンスの表現を含む、決定することと、第2の出力ALセンテンスと入力NLセンテンスから人工言語への翻訳を含むターゲットALセンテンスとの間の類似度を示す第2の類似性スコアを決定することとをさらに含む。翻訳機モジュールを訓練することは、デコーダ出力とNLエンコーダによって受信された入力の人工言語への各翻訳を表現するターゲット出力との間のマッチングを改善するように、第2の類似性スコアに従って、NLエンコーダのパラメータの第2のセットを調整することをさらに含む。
【0008】
[0008]別の態様によると、コンピュータシステムは、NLエンコーダおよびNLエンコーダに接続されるデコーダを含む訓練済翻訳機モジュールを実行するように構成される第1のハードウェアプロセッサを備え、翻訳機モジュールを訓練することは、第2のコンピュータシステムの第2のハードウェアプロセッサを用いて、デコーダを、人工言語で形式化された入力ALセンテンスの表現を含む第1の入力アレイを受信し、それに応じて第1の内部アレイを生成するように構成されるALエンコーダに結合することを含む。ALエンコーダは、デコーダが第1の内部アレイを受信し、それに応じて人工言語で形式化された第1の出力ALセンテンスの表現を含む第1の出力アレイを生成するように、デコーダに結合される。翻訳機モジュールを訓練することは、第1の入力アレイをALエンコーダに与えたことに応じて、入力ALセンテンスと第1の出力ALセンテンスとの間の類似度を示す第1の類似性スコアを決定することと、ALエンコーダ入力とデコーダ出力との間のマッチングを改善するように、第1の類似性スコアに従って、デコーダのパラメータの第1のセットを調整することとをさらに含む。翻訳機モジュールを訓練することは、第1の工程訓練終了条件が満たされるかどうかを判定することと、それに応じて第1の工程訓練終了条件が満たされる場合、NLエンコーダが、自然言語で形式化された入力NLセンテンスの表現を含む第2の入力アレイを受信し、それに応じて第2の内部アレイをデコーダに出力するように、NLエンコーダをデコーダに結合することとをさらに含む。翻訳機モジュールを訓練することは、第2の内部アレイを受信することに応じて、デコーダによって生成される第2の出力アレイを決定することであって、第2の出力アレイが、人工言語で形式化された第2の出力ALセンテンスの表現を含む、決定することとをさらに含む。翻訳機モジュールを訓練することは、第2の出力ALセンテンスと入力NLセンテンスから人工言語への翻訳を含むターゲットALセンテンスとの間の類似度を示す第2の類似性スコアを決定することと、デコーダ出力とNLエンコーダによって受信された入力の人工言語への各翻訳を表現するターゲット出力との間のマッチングを改善するように、第2の類似性スコアに従って、NLエンコーダのパラメータの第2のセットを調整することとをさらに含む。
【0009】
[0009]本発明の前述の態様および利点は、以下の詳細な説明を読み、図面を参照することにより、さらに理解されるであろう。
【図面の簡単な説明】
【0010】
図1】[0010]本発明のいくつかの実施形態による、クライアントのセットが翻訳機訓練システムおよびデータベースサーバと連携する、例示的な自動化データベースアクセスシステムの図である。
図2-A】[0011]本発明のいくつかの実施形態による、クライアントシステムの例示的なハードウェア構成の図である。
図2-B】[0012]本発明のいくつかの実施形態による、翻訳機訓練システムの例示的なハードウェア構成の図である。
図3】[0013]本発明のいくつかの実施形態による、クライアントシステムで実行する例示的なソフトウェアコンポーネントのセットの図である。
図4】[0014]本発明のいくつかの実施形態による、クライアントシステムとデータベースサーバとの間の例示的なデータ交換の図である。
図5】[0015]本発明のいくつかの実施形態による、翻訳機訓練システムの例示的なコンポーネントの図である。
図6】[0016]本発明のいくつかの実施形態による、例示的な翻訳機訓練手順の図である。
図7】[0017]本発明のいくつかの実施形態による、翻訳機モジュールの例示的な動作の図である。
図8】[0018]本発明のいくつかの実施形態による、翻訳機モジュールの例示的なコンポーネントおよび動作の図である。
図9】[0019]本発明のいくつかの実施形態による、翻訳機訓練システムによって実行される例示的な一連のステップの図である。
図10】[0020]本発明のいくつかの実施形態による、翻訳機モジュールを訓練する例示的な第1の工程の図である。
図11-A】[0021]本発明のいくつかの実施形態による、翻訳機モジュールを訓練する例示的な第2の工程の図である。
図11-B】[0022]本発明のいくつかの実施形態による、翻訳機モジュールを訓練する代替的で例示的な第2の工程の図である。
図12】[0023]本発明のいくつかの実施形態による、複数の訓練コーパスで翻訳機モジュールを訓練する例示的な一連のステップの図である。
【発明を実施するための形態】
【0011】
[0024]以下の説明では、構造間の全ての列挙される接続は直接操作可能な接続または中間的な構造を介する間接的に操作可能な接続であり得ることが理解されよう。要素のセットは、1つまたは複数の要素を含む。あらゆる要素の列挙が、少なくとも1つの要素を参照することを理解されたい。複数の要素は、少なくとも2つの要素を含む。要求されない限り、説明されるいかなる方法ステップも、特定の示される順で実行されることが必ずしも必要ではない。第2の要素に由来する第1の要素(例えば、データ)は、第2の要素と等しい第1の要素ならびに第2の要素および任意選択の他のデータを処理することによって生成される第1の要素を包含する。パラメータに従って判定または決定を行うことは、パラメータに従って、および任意選択で他のデータに従って判定または決定を行うことを包含する。指定されない限り、何らかの量/データの指標は、量/データそれ自身である場合があり、または量/データそれ自身とは異なる指標であってもよい。コンピュータプログラムは、タスクを遂行する一連のプロセッサ命令である。本発明のいくつかの実施形態で説明されるコンピュータプログラムは、スタンドアロンのソフトウェアエンティティまたは他のコンピュータプログラムのサブエンティティ(例えば、サブルーチン、ライブラリ)であってもよい。用語「データベース」は、本明細書であらゆる組織化されたデータの集合を表記するために使用される。指定されない限り、センテンスは、自然原語または人工言語で形式化された一連の語句および/またはトークンである。別個の言語で形式化された2つのセンテンスは、本明細書では、2つのセンテンスが互いに意味論的に等価であるとき、すなわち2つのセンテンスが同一または非常に類似した意味を有する場合に、互いの翻訳と考える。コンピュータ可読媒体は、磁気的、光学的、および半導体記憶媒体(例えば、ハードドライブ、光学ディスク、フラッシュメモリ、DRAM)などの非一時的な媒体、ならびに導電性ケーブルおよび光ファイバーリンクなどの通信リンクを包含する。いくつかの実施形態によると、本発明は、とりわけ本明細書において説明される方法を実行するようにプログラムされたハードウェア(例えば、1つまたは複数のプロセッサ)、ならびに本明細書において説明される方法を実行するための命令をエンコードするコンピュータ可読媒体を含むコンピュータシステムを提供する。
【0012】
[0025]以下の説明は、本発明の実施形態を、必ずしも限定としてではなく、例として図示している。
[0026]図1は、本発明のいくつかの実施形態による、例示的なデータベースのアクセスおよび管理システムを示している。複数のクライアントシステム12a~dは、例えばクエリを実行するためにデータベースサーバ18と対話し、それによりデータベース20から/へ、データのセットをアクセスする/取り出す/書き込むことができる。例示的なデータベース20としては、とりわけリレーショナルデータベース、拡張マークアップ言語(XML)データベース、スプレッドシート、およびキー-値記憶が挙げられる。
【0013】
[0027]例示的なクライアントシステム12a~dとしては、パーソナルコンピュータシステム、モバイルコンピューティングプラットフォーム(ラップトップコンピュータ、タブレット、携帯電話)、娯楽デバイス(TV、ゲーム機)、ウェアラブルデバイス(スマートウォッチ、フィットネスバンド)、家電製品、ならびにプロセッサ、メモリおよび通信インターフェースを備えるあらゆる他の電子デバイスが挙げられる。クライアントシステム12a~dは、通信ネットワーク14、例えばインターネットを介して、サーバ18に接続される。ネットワーク14の一部は、家庭用または企業用ネットワークなどのローカルエリアネットワーク(LAN)を含んでもよい。データベースサーバ18は、一般的にはデータベース20に通信可能に結合され、データの挿入、データの取り出し、および/または他のデータベース管理操作を遂行するためにデータベース20にアクセスするように構成されるコンピューティングシステムのセットを指す。
【0014】
[0028]図示されるシステムの一例示的なアプリケーションでは、クライアントシステム12a~dは、eコマース会社の従業員によって使用される個別のコンピュータを表現し、データベース20は個々の会社が販売する製品の記録を記憶するリレーショナルデータベースを表現している。従業員は、図示されるシステムを使用して、例えば現在特定の倉庫に特定の製品の在庫がいくつあるかを確認することができる。
【0015】
[0029]いくつかの実施形態では、データベース20へのアクセスは、クライアントシステム12a~dおよび/またはデータベースサーバ18で実行するソフトウェアによって容易になり、個々のソフトウェアは、自然言語(例えば、英語、中国語)で形式化されたセンテンスから、構造化問い合わせ言語(SQL:structured query language)、プログラミング言語(例えば、C++、Java(登録商標)、バイトコード)、および/またはマークアップ言語(例えば、XML、hypertext markup language-HTML)など人工の、定型的な言語で形式化されたセンテンスのセットへの自動翻訳を可能にする翻訳機コンポーネントを含む。いくつかの実施形態では、個々の翻訳機は、やはりネットワーク14に接続される翻訳機訓練システム16によって訓練されたニューラルネットワークのセットなどの人工知能システムを含む。翻訳機訓練システム16ならびに翻訳機自身の動作を、以下でさらに詳細に説明する。
【0016】
[0030]図2-Aは、クライアントシステム12の例示的なハードウェア構成を示している。クライアントシステム12は図1のクライアントシステム12a~dのいずれかを表現することができる。一般性を失うことなく、図示されるクライアントシステムはコンピュータシステムである。他のクライアントシステム(例えば、携帯電話、スマートウォッチ)のハードウェア構成は、図2-Aに図示されるものとは幾分異なっている場合がある。クライアントシステム12は、ハードウェアプロセッサ22およびメモリユニット24を含む物理的なデバイスのセットを含む。プロセッサ22は、信号および/またはデータのセットで計算機的および/または論理的な演算を実行するように構成される物理的なデバイス(例えば、マイクロプロセッサ、半導体基板上に形成されたマルチコア集積回路など)を備える。いくつかの実施形態では、そのような演算は、一連のプロセッサ命令(例えば、マシンコードまたは他のタイプのエンコード法)の形態でプロセッサ22に送られる。メモリユニット24は、プロセッサ22によってアクセスまたは生成される命令および/またはデータを記憶する揮発性のコンピュータ可読媒体(例えば、DRAM、SRAM)を含むことができる。
【0017】
[0031]入力デバイス26は、とりわけコンピュータキーボード、マウス、およびマイクロフォンを含む場合があり、ユーザがデータおよび/または命令をクライアントシステム12に伝えることを可能にする個々のハードウェアインターフェースおよび/またはアダプタを含む。出力デバイス28は、とりわけモニタおよびスピーカなどのディスプレイデバイス、ならびにグラフィックカードなどのハードウェアインターフェース/アダプタを含む場合があり、クライアントシステム12がユーザにデータを通信できるようにしている。いくつかの実施形態では、入力デバイス26および出力デバイス28は、タッチスクリーンデバイスの場合のように共通のハードウェア部品を共有することができる。記憶デバイス32は、非揮発性記憶装置が、ソフトウェア命令および/またはデータの読み書きすることを可能にするコンピュータ可読媒体を含む。例示的な記憶デバイス32は、磁気的および光学的ディスク、フラッシュメモリデバイス、ならびにCDおよび/またはDVDディスクおよびドライブなどのリムーバブルな媒体を含む。ネットワークアダプタ34のセットにより、クライアントシステム12はコンピュータネットワークおよび/または他のデバイス/コンピュータシステムに接続することができる。コントローラハブ30は、複数のシステム、周辺機器、および/もしくはチップセットバス、ならびに/またはプロセッサ22とデバイス24、26、28、32および34との間の通信を可能にするあらゆる他の回路を表している。例えば、コントローラハブ30は、とりわけメモリコントローラ、入力/出力(I/O)コントローラ、および割り込みコントローラを含む場合がある。別の例では、コントローラハブ30は、プロセッサ22をメモリ24に接続するノースブリッジ、ならびに/またはプロセッサ22をデバイス26、28、32、および34に接続するサウスブリッジを含む場合がある。
【0018】
[0032]図2-Bは、本発明のいくつかの実施形態による、翻訳機訓練システム16の例示的なハードウェア構成を示している。図示される訓練システムは、少なくとも1つの訓練プロセッサ122(例えば、マイクロプロセッサ、マルチコア集積回路)、物理的なメモリ124、訓練記憶デバイスのセット132、および訓練ネットワークアダプタのセット134を含むコンピュータを含む。記憶デバイス132は、非揮発性記憶装置が、ソフトウェア命令および/またはデータの読み書きすることを可能にするコンピュータ可読媒体を含む。アダプタ134は、訓練システム16が通信ネットワーク14に接続できるようにするネットワークカードおよび他の通信インターフェースを含む場合がある。いくつかの実施形態では、翻訳機訓練システム16は、機能においてクライアントシステム12の入力デバイス26と出力デバイス28にそれぞれ類似し得る入出力デバイスをさらに含む。
【0019】
[0033]図3は、本発明のいくつかの実施形態による、クライアントシステム12で実行する例示的なコンピュータプログラムを示している。そのようなソフトウェアは、オペレーティングシステム(OS)40を含むことができ、とりわけMicrosoft Windows(登録商標)、MacOS(登録商標)、Linux(登録商標)、iOS(登録商標)またはAndroid(TM)などの任意の幅広く利用可能なオペレーティングシステムを含むことができる。OS40は、クライアントシステム12のハードウェアと、例えば翻訳アプリケーション41を含むアプリケーションのセットとの間のインターフェースを与える。いくつかの実施形態では、アプリケーション41は、自然言語(NL)のセンテンスを人工言語(AL)のセンテンス、例えばSQLクエリのセットおよび/または一連のソフトウェア命令(コード)に自動的に翻訳するように構成される。翻訳アプリケーション41は、実際の翻訳を行う翻訳機モジュール62を含み、とりわけ個々の自然言語センテンスをユーザから(例えば、入力デバイス26を介してテキストまたは発話として)受信するコンポーネント、個々のNL入力をパースして分析するコンポーネント(例えば、発話パーサ、トークナイザ、様々な辞書など)、翻訳済AL出力をデータベースサーバ18に送信するコンポーネント、およびサーバ18からの応答の内容をユーザに表示するコンポーネントをさらに含むことができる。翻訳機モジュール62は、以下でされに説明するような、NLからALへの翻訳を実行する翻訳機訓練システム16によって訓練される人工知能システムのインスタンス(例えば、ニューラルネットワークのセット)を含む。そのような訓練により、翻訳機62の最適なパラメータ値のセットを得ることができ、値は、訓練システム16からクライアント12および/またはデータベースサーバ18に例えば定期的またはオンデマンドのソフトウェア更新により転送され得る。用語「訓練済翻訳機」は、本明細書では翻訳機訓練システム16から受信したそのような最適なパラメータ値でインスタンス化された翻訳機モジュールを指す。
【0020】
[0034]簡潔のため、以下の説明では、翻訳機モジュール62がデータベースクエリ、すなわちSQLなどのクエリ言語で形式化されたセンテンスのセットを出力する例示的な応用例に注目する。したがって、図示されるシステムおよび方法は、人間のオペレータがデータベースクエリを遂行することを可能にすることを対象としている。しかしながら、当業者であれば、説明されるシステムおよび方法は、翻訳機がコンピュータコード(例えば、Java(登録商標)、バイトコードなど)、データマークアップ(例えば、XML)、またはあらゆる他の人工言語で形式化された出力を生成するように構成される他の応用例に対して、修正および適合され得ることが理解されよう。
【0021】
[0035]図4は、本発明のいくつかの実施形態による、クライアントシステム12とデータベースサーバ18との間の例示的なデータ交換を示している。クライアントシステム12は、クエリ50をデータベースサーバ18に送信し、それに応答してクエリ50を実行した結果を含むクエリ結果52を受信する。クエリ50は、サーバ18によって実行されると、サーバ18にデータベース20の特定の操作、例えばデータを選択的にデータベース20へ挿入すること、またはデータベース20から取り出すことをそれぞれ実行させる命令のセットのエンコードを含む。クエリ結果52は、例えばクエリ50に従ってデータベース20から選択的に取り出されたデータベースレコードのセットのエンコードを含むことがある。
【0022】
[0036]いくつかの実施形態では、クエリ50はSQLなどの人工言語で形式化される。代替的な実施形態では、クエリ50は自然言語のセンテンスのセットとして形式化することができる。そのような実施形態では、本明細書において説明されるような翻訳機モジュールは、データベースサーバ18で実行することができる。
【0023】
[0037]図5は、本発明のいくつかの実施形態による、翻訳機訓練システムの例示的なコンポーネントを図示している。訓練システム16は、翻訳機モジュール62および翻訳機モジュール62に接続される訓練モジュール64のインスタンスを含む翻訳機訓練エンジン60を実行することができる。本発明のいくつかの実施形態では、エンジン60は、翻訳機モジュール62を訓練するために訓練モジュール64によって用いられる訓練コーパス17のセットに通信可能に結合される。コーパス17は、少なくとも1つの人工言語(AL)訓練コーパス66、および/または自然言語から人工言語への(NL-AL)訓練コーパス68a~bのセットを含むことができる。
【0024】
[0038]いくつかの実施形態では、AL訓練コーパス66は、複数のエントリを含み、全て同一の人工言語で形式化される。一例では、各エントリは、自動的にまたは人間のオペレータによって生成される少なくとも1つのALステートメントから成る。いくつかのエントリは複数のALステートメントを含むことができ、その一部は互いにシノニムまたは意味論的に等価であると考えられる。個々のALがデータベースクエリ言語である例では、2つのALステートメントは、それらによりデータベースから同一のデータが取り出される場合、シノニムであると考えることができる。同様に、プログラミング言語の例では、2つのALステートメント(すなわちコード片)は、同一の計算機的な結果を生ずる場合、シノニム/意味論的に等価であり得る。
【0025】
[0039]いくつかの実施形態では、NL-ALコーパス68a~bは、複数のエントリを含み、各エントリはセンテンスのタプル(例えば、対)から成り、少なくとも1つのセンテンスが人工言語で形式化され、もう一方のセンテンスが自然言語で形式化される。いくつかの実施形態では、タプルのAL側は、個々のタプルのNL側から、人工言語への翻訳を含む。別の言い方をすれば、タプルの個々のAL側は、個々のタプルのNL側と同一または非常に類似した意味を持つ。一部のNL-ALタプルは1つのNLセンテンスおよび複数のシノニム的なALセンテンスから成る場合がある。他のNL-ALタプルは、1つのALセンテンスに対応する複数のNLセンテンスを有する場合がある。別個のNL-ALコーパス68a~bは、別個の自然言語(例えば、英語対中国語)に対応する場合がある。別の例では、別個のNL-ALコーパスは、同一の自然言語(例えば、英語)で形式化されたNLセンテンスの別個のセットを含む場合がある。そのような一例では、1つのNL-ALコーパスは、英語話者である営業担当によって使用される翻訳機を訓練するために使用され、一方で別のNL-ALコーパスは、英語話者であるデータベース運用者による使用のための翻訳機を訓練するために使用される場合がある。
【0026】
[0040]訓練モジュール64は、所望の出力を生成するように、例えば以下でさらに詳細に示す通り自然言語センテンスを人工言語センテンスに正確に翻訳するように、翻訳機モジュール62を訓練するように構成される。本明細書における訓練は、一般的に所望の結果(例えば、正確な翻訳)を得るための翻訳機モジュール62のパラメータのセットを調整するプロセスを指す。訓練を図示する例示的な一連のステップが、図6に示される。一連のステップ302~304は、コーパス項目(例えば、自然言語センテンス)を選択して、個々のコーパス項目を翻訳機モジュール62に入力することができる。次に、モジュール62は、受信した入力に従って出力を生成することができる。ステップ308は、個々の出力を所望の出力を比較し、パフォーマンススコア、例えばモジュール62の実際の結果と所望の結果との類似度を示す翻訳誤りを決定する。パフォーマンススコアを決定したことに応じて、ステップ310では訓練モジュール64は、翻訳機モジュール62のパフォーマンスを向上させるやり方、例えば翻訳誤りを低減させるやり方でモジュール62のパラメータを更新することができる。そのようなパラメータ調整は、当分野で既知のあらゆる方法に従って進められる。一部の例としては、勾配降下法を使用するバックプロパゲーション、焼きなまし法、および遺伝的アルゴリズムが挙げられる。いくつかの実施形態では、訓練は何らかの終了条件が満たされると終了する(ステップ312)。終了条件についてのさらなる詳細は、以下で示す。
【0027】
[0041]いくつかの実施形態では、訓練が終了すると、ステップ314において翻訳機訓練システム16は翻訳機パラメータ値69のセットを出力する。モジュール62が人工ニューラルネットワークを含む場合、翻訳機パラメータ値69は、例えばシナプス重みのセットおよび/またはネットワークアーキテクチャパラメータ値(例えば、レイヤ数、レイヤごとのニューロン数、コネクティビティマップなど)のセットを含む場合がある。次いでパラメータ値69は、クライアントシステム12a~dおよび/またはデータベースサーバ18に送信される場合があり、自動化された自然-人工言語翻訳を実行する個々のローカルな翻訳機モジュールをインスタンス化するために使用される。
【0028】
[0042]図7は、本発明のいくつかの実施形態による、翻訳機モジュール62の例示的な動作を図示している。モジュール62は、例示的なセンテンス54などの自然言語(NL)センテンスを例示的なセンテンス56などの人工言語(AL)センテンスに、自動的に翻訳するように構成される。用語「センテンス」は、本明細書では自然言語または人工言語で形式化された語句/トークンのあらゆるセンテンスを指すのに使用される。自然言語の例としては、とりわけ英語、ドイツ語、および中国語が挙げられる。人工言語はトークン(例えば、キーワード、識別子、演算子)のセットと共に、個々のトークンを組み合わせるための規則のセットを含む。規則は、一般的に文法またはシンタックスとして知られており、典型的には言語特有である。例示的な人工言語としては、クエリ言語(例えば、SQL)、プログラミング言語(例えば、C++、Perl、Java(登録商標)、バイトコード)、およびマークアップ言語(例えば、XML、HTML)などの定型的なコンピュータ言語が挙げられる。NLセンテンスの例としては、とりわけステートメント、質問、およびコマンドが挙げられる。ALセンテンスの例としては、例えばコンピュータコード片、およびSQLクエリが挙げられる。
【0029】
[0043]いくつかの実施形態では、翻訳機モジュール62は、NLセンテンスのコンピュータ可読表現を含む入力アレイ55を受信し、入力NLセンテンスの翻訳から得られたALセンテンスのエンコードを含む出力アレイ57を生成する。入力および/出力アレイは、例えばone-hot encodingなど当分野で既知のあらゆる方法を使用して計算された数値のアレイを含むことができる。そのような一例では、NL語彙の各語句には、別個の数値ラベルが割り当てられる。例えば「how」はラベル2を有する場合があり、「many」はラベル37を有する場合がある。この時、語句「how」のone-hot表現は、バイナリN×1のベクトルを含むことができ、ここでNは語彙のサイズであり、また全ての要素は1の値を有する第2の要素を除いて0である。一方で、語句「many」はバイナリN×1のベクトルで表現され得、ここで37番目を除く全ての要素が0である。いくつかの実施形態では、入力センテンス54などの一連の語句をエンコードする入力アレイ55は、N×Mのバイナリアレイを含み、ここでMは入力センテンスの語句のカウントを表し、入力アレイ55の各列は入力センテンスの別個の語句を表現する。入力アレイ55の連続的な列は、入力センテンスの連続的な語句に対応することができる。出力アレイ57は、入力と出力をエンコードするために使用される語彙が互いに異なる場合があるが、類似のone-hot encoding手法を使用することができる。入力アレイ55および出力アレイ57は、それぞれ入力センテンス54および出力センテンス56を表現しているため、出力アレイ57は、本明細書では入力アレイ55の翻訳と見なされる。
【0030】
[0044]NLセンテンス54から入力アレイ55への変換、ならびに出力アレイ57からALセンテンス56への変換は、パース、トークン化などの動作を含む場合があり、翻訳機モジュール62とは別個のソフトウェアコンポーネントによって遂行される場合がある。
【0031】
[0045]いくつかの実施形態では、モジュール62は図示される翻訳を実行するように訓練される人工ニューラルネットワークなどの人工知能システムを含む。そのような人工知能システムは、当分野で既知のあらゆる方法を使用して構築することができる。図8に図示される好ましい実施形態では、モジュール62はエンコーダ70およびエンコーダ70に結合されるデコーダ72を含む。エンコーダ70およびデコーダ72のそれぞれは、ニューラルネットワーク、例えばリカレントニューラルネットワーク(RNN)を含むことができる。RNNは、ネットワークノード同士の接続が有向グラフを形成する人工ニューラルネットワークの特殊なクラスを形成する。リカレントニューラルネットワークの例としては、とりわけ長・短期記憶(LSTM)ネットワークが挙げられる。
【0032】
[0046]エンコーダ70は、入力アレイ55を受信し、入力センテンス54の翻訳機モジュール自身の内部表現を含む内部アレイ59を出力する。実際には、内部アレイ59は、エンコーダ70に特有な演算のセットを介した入力アレイ55の数学的な変換を含む(例えば、行列乗算、活性化関数の適用など)。いくつかの実施形態では、内部アレイ59のサイズは固定されているが、一方では入力アレイ55のサイズは入力センテンスに従って変化する場合がある。例えば、長い入力センテンスは、短い入力センテンスと比べて比較的大きな入力アレイを使用して表現される場合がある。この観点から、いくつかの実施形態では、エンコーダ70は可変サイズの入力を、個々の入力の固定サイズのエンコードに変換すると言うことができる。いくつかの実施形態では、デコーダ72は、内部アレイ59を入力として受け取り、出力アレイ57を数学的な演算の第2のセットにより生成する。出力アレイ57のサイズは、内部アレイ59、したがって入力センテンスの内容に応じて変化する場合がある。
【0033】
[0047]図9は、自動化されたNLからALへの翻訳を実行するために翻訳機モジュール62を訓練する例示のプロセスを図示している。いくつかの実施形態では、訓練は少なくとも2つの工程を含む。ステップ322~324によって表現される第1の工程は、翻訳機モジュール62のインスタンスを人工言語コーパス(例えば、図5のALコーパス66)で訓練することを含む。いくつかの実施形態では、ステップ322はAL入力が与えられるとAL出力を生成するように翻訳機モジュール62を訓練することを含む。そのような一例では、翻訳機モジュール62は、個々の人工言語で形式化された入力を再生成するように訓練される。別の例では、モジュール62はAL入力を与えられると、個々の入力のシノニム/意味論的に等価なものを生成するように訓練される。さらに別の例では、モジュール62は、その出力が少なくとも文法的に正しい、すなわち出力が個々の人工言語の文法/シンタックス規則を守るように訓練される。
【0034】
[0048]いくつかの実施形態では、訓練の第1の工程は終了条件のセットが満たされるまで進められる(ステップ324)。終了条件は、パフォーマンス基準、例えばモジュール62の期待出力からの平均的な乖離(すなわち翻訳誤り)が所定の閾値より小さいかどうか、を含む場合がある。別の例示的なパフォーマンス基準は、翻訳モジュール62の出力がほとんど文法的に正しいか、例えば時間の少なくとも90%かどうかを含む。モジュール62の出力がプログラミング言語で形式化される実施形態では、文法的な正確さを試験することは、個々の出力をコンパイルするように試行すること、およびコンパイル誤りがない場合個々の出力が正しいかどうか判定することを含む。他の例示的な終了条件としては、計算機的なコスト基準、例えば訓練が所定の時間限度まで、または繰り返しカウントが超えてしまうまで進むことができること挙げられる。
【0035】
[0049]いくつかの実施形態では、図9のステップ326~328によって図示される訓練の第2の工程は、翻訳機モジュール62を自然言語から人工言語へのコーパスで、すなわちNL-ALタプルを使用して訓練することを含む。そのような一例では、モジュール62はタプルのNL側が入力として与えられると、タプルの対応するAL側を出力するように訓練される。代替的な実施形態では、モジュール62は、少なくとも個々のタプルのAL側のシノニムを出力するように訓練され得る。訓練の第2の工程は、終了基準が満たされるまで(例えば、NL-AL翻訳の所望の正しい割合が達成されるまで)進めることができる。次に、ステップ330では、翻訳機訓練システム16は、訓練から得られる翻訳機パラメータ値69を出力することができる。翻訳機モジュール62がニューラルネットワークを使用する例示的な実施形態では、パラメータ値69は訓練を介して得られたシナプス重みの値を含むことができる。
【0036】
[0050]図10は、本発明の好ましい実施形態の第1の工程の訓練をさらに図示している。図示される第1の工程の翻訳機モジュール62aは、デコーダ72に接続される人工言語エンコーダ70aを含む。ALエンコーダ70aは入力アレイ55aを受け取り、内部アレイ59aを出力し、これはひいてはデコーダ72によって出力アレイ57aに変換される。いくつかの実施形態では、第1の工程の訓練は、翻訳機モジュール62aに複数のAL入力を与えること、および個々の提示された入力に類似するAL出力を生成するためにモジュール62aのパラメータを微調整することを含む。別の言い方をすれば、いくつかの実施形態では、第1の工程の訓練の目標は、出力を入力により類似させることであり得る。代替的な実施形態では、訓練の目標は、出力が少なくとも個々の入力のシノニムであること、または出力が個々の人工言語において文法的に正しいことであってもよい。
【0037】
[0051]第1の工程の訓練の一例では、入力/出力アレイの対ごとに、訓練モジュール64は、出力アレイと入力アレイ(図10ではそれぞれ57aおよび55a)との間の類似度を示す類似性の尺度を計算することができる。類似性の尺度は、当分野で既知のあらゆる方法を使用して、例えば入力アレイと出力アレイとの間のマンハッタン距離またはルービンシュタイン距離に従って、計算することができる。次に訓練モジュール64は、ALエンコーダ70aおよび/またはデコーダ72のパラメータを調整して、例えばアレイ55aと57aとの間の平均のマンハッタン距離を小さくして、デコーダ72の出力とALエンコーダ70aの入力との間の類似性を向上させることができる。
【0038】
[0052]第1の工程の訓練は、第1の工程の終了条件が満たされるまで継続することができる(例えば、所定のパフォーマンスレベルが得られるまで、ALコーパス66の全てのメンバが訓練で使用されるまで、など)。
【0039】
[0053]図11-Aは、第1の工程の訓練で使用された自然言語と人工言語との間で翻訳するように訓練することを含む、例示的な第2の工程の訓練プロセスを図示している。いくつかの実施形態では、第1から第2の工程に進むことは、既に訓練されたデコーダ72を保存しつつ、ALエンコーダ70aを自然言語エンコーダ70bで置き換えることにより得られた第2の工程の翻訳機モジュール62bに切り替えることを含む。別の言い方をすれば、デコーダ72は、第1の工程の訓練から得られたパラメータ値でインスタンス化されたままである。NLエンコーダ70bのアーキテクチャおよび/またはパラメータ値は、実質的にALエンコーダ70aのそれとは異なっていてもよい。そのような違いの1つの理由は、人工言語と自然言語の語彙は一般的には互いに異なっていることであり、それによってNLセンテンスを表現する入力アレイはALセンテンスを表現する入力アレイとは、少なくともサイズが異なっている場合がある。なぜエンコーダ70a~bが別個のアーキテクチャを有する場合があるかの別の理由は、人工言語の文法/シンタックスが一般的に自然言語のそれとは実質的に異なっていることである。
【0040】
[0054]NLエンコーダ70bはNLセンテンスを表現する入力アレイ55bを受け取り、内部アレイ59bを出力する。いくつかの実施形態では、内部アレイ59bは、翻訳モジュール62aのALエンコーダ59a(図10参照)によって出力された内部アレイ59aと同じサイズおよび/または構造を有している。次に、内部アレイ59bは入力としてデコーダ72に与えられ、これがひいてはALセンテンスを表現する出力アレイ57cを生成する。
【0041】
[0055]いくつかの実施形態では、第2の工程の訓練は、NL-ALタプルを使用し、ここでタプルのAL側は、個々のタプルのNL側のターゲットALへの翻訳を表現する。第2の工程の訓練は、NLエンコーダ70bに複数のNL入力を与えることであり、各NL入力が、NL-ALタプルのNL側を含む、与えること、およびデコーダ72の出力が個々のタプルのNL-ALタプルのAL側に類似するように翻訳機モジュール62bのパラメータを微調整することを含むことができる。別の言い方をすれば、第2の状態の訓練の目的は、デコーダ72の出力を個々のNL入力のターゲットALへの翻訳により類似させることである。
【0042】
[0056]一例示的な実施形態では、各タプルのNL側(図11-Aのアレイ55bとして表現される)をNLエンコーダ70bに与えたことに応じて、訓練モジュール64がデコーダ72の出力(アレイ57c)を個々のタプルのAL側(アレイ57b)と比較することができる。比較には、アレイ57bと57cとの間の類似度を示す類似性の尺度を計算することを含む場合がある。次いで訓練モジュール64は、NLエンコーダ70bおよび/またはデコーダ72のパラメータを、アレイ57bとアレイ57cとの間の類似性を向上させる方向に調整する。
【0043】
[0057]第2の工程の訓練についての代替的なシナリオが図11-Bに図示されている。この代替的なシナリオは、第1の工程の訓練により得られる(訓練済)ALエンコーダ(例えば、第1の工程の訓練から得られたパラメータ値でインスタンス化された図10のALエンコーダ70a)およびNLエンコーダ70bの両方を用いる。いくつかの実施形態では、NLエンコーダ70bはNL-ALタプルのNL側を表現する入力アレイ55bを与えられるが、その一方でALエンコーダは個々のタプルのAL側を表現する出力アレイ57bを与えられる。方法は、AL入力を「適切な」内部アレイ59cに変換し、次いでデコーダ72が個々のAL入力へ変換し戻すことができるように、ALエンコーダ70aが第1の工程の訓練の間に既に構成されているという観測に依拠している。別の言い方をすれば、デコーダ72について、出力アレイ57aを生成するために、その入力はできるだけ(既に訓練済の)ALエンコーダ70aの出力に近くなくてはならない。したがって、図11-Bで図示される実施形態では、訓練モジュール64は、NLエンコーダ72の出力(すなわち内部アレイ59b)を内部アレイ59cと比較して、その差異を類似性の尺度として定量化することができる。次いで訓練モジュール64は、NLエンコーダ70bおよび/またはデコーダ72のパラメータを、アレイ59bと59cとの間の類似性を向上させる方向に調整することができる。
【0044】
[0058]図12は、本発明のいくつかの実施形態による複数の訓練コーパスで翻訳機モジュール62を訓練する例示的な一連のステップの図である。図示される方法は、デコーダ72はターゲット人工言語ごとに一度だけ訓練され(上述の第1の工程の訓練を参照)、次いで複数の翻訳機モジュール、例えば複数のソース自然言語(例えば、英語、ドイツ語など)から個々のターゲット人工言語(例えば、SQL)への翻訳することができるモジュールを導くために既に訓練済みの形態で再使用され得るという観測に依拠している。
【0045】
[0059]別の例では、それぞれ別個の翻訳機モジュールは、同一の自然言語(例えば、英語)で形式化されたNLセンテンスの別個のセットで訓練される場合がある。この特定の実施形態は、言語が典型的には特殊化され、またタスク固有であること、すなわち一定の課題を解決するために人間のオペレータが使用するセンテンス/コマンドは他の状況で使用されるセンテンス/コマンドとは異なるという観測に依拠している。したがって、いくつかの実施形態は、1つのコーパス(すなわち、NLセンテンスのセット)を用いて営業担当によって使用される翻訳機を訓練し、また別のコーパスを使用して技術担当によって使用される翻訳機を訓練する。
【0046】
[0060]図12のステップ342~344は、ALエンコーダ70aおよび/またはデコーダ72を訓練することを含む第1の工程の訓練プロセスを図示している。第1の工程の訓練が成功したことに応じて、ステップ346はALエンコーダ70aをNLエンコーダで置き換えている。いくつかの実施形態では、次いでNLエンコーダの第2の工程の訓練が利用可能なNL-ALコーパスごとに遂行される。1つのNL-ALコーパスから別のコーパスに切り替える(例えば、英語からスペイン語に切り替える、または「営業用英語」から「技術用英語」に切り替える)際、いくつかの実施形態では、既に訓練されたデコーダ72を保存しつつ、既存のNLエンコーダを、現在のNL-ALコーパスに適切な新しいNLエンコーダで置き換える(ステップ358)。そのような最適化は、実質的に自動翻訳の訓練を容易にして加速させることができる。
【0047】
[0061]いくつかの実施形態では、デコーダ72のパラメータを第1の工程の訓練により得られた値に固定したまま、第2の工程の訓練はNLエンコーダ70b(図11-A~図11-B参照)のパラメータを調整するだけである。そのような訓練手法はデコーダ72のパフォーマンスを、ソース自然言語またはNL-ALコーパスの選択に関わらず、第1の工程の訓練を通じて達成されたレベルに保存することを目的としている。訓練がNLエンコーダ70bおよびデコーダ72の両方のパラメータを調整することを含む他の実施形態では、ステップ358は、デコーダ72のパラメータを第1の工程の訓練の終了時に得られた値にリセットすることをさらに含む場合がある。
【0048】
[0062]上述の例示的なシステムおよび方法により、英語などのソース自然言語からターゲット人工言語(例えば、SQL、プログラミング言語、マークアップ言語など)への自動翻訳が可能となる。本発明のいくつかの実施形態の一例示的な応用例により、素人でも自然言語で形式化された平易な質問を使用して、SQLなどのクエリ言語の知識の必要なくデータベースクエリを実行することができるようになる。例えば、営業オペレータはクライアントマシンに「コロラドでは30未満の顧客がどれくらいいるか?」と質問することができる。それに応答して、マシンは個々の質問をデータベースクエリに翻訳して個々のクエリを実行してオペレータの質問に対する答えを取り出すことができる。
【0049】
[0063]いくつかの実施形態は、翻訳機モジュールを使用して一連のNLの語句をALセンテンス、例えばデータベースから選択的にデータを取り出すために使用可能な有効なクエリに翻訳する。翻訳機モジュールは、エンコーダネットワークおよびデコーダネットワークなどの人工的なニューラルネットワークのセットを含む場合がある。エンコーダおよびデコーダは、リカレントニューラルネットワーク(RNN)または任意の他の人工知能技術を使用して構築することができる。
【0050】
[0064]いくつかの実施形態では、翻訳機モジュールを訓練することは少なくとも2つの工程を含む。第1の工程では、翻訳機モジュールはAL入力に応じてAL出力を生成するように訓練される。例えば、第1の工程の訓練は、AL入力を再生成するように翻訳機モジュールを訓練することを含み得る。代替的な実施形態では、翻訳機は、AL入力に応じて文法的に正しいALセンテンスを生成するように訓練される。便利な隠喩を使用すれば、第1の工程の訓練は個々の人工言語を「話す」ことを翻訳機モジュールに教えると言うことができる。実際には、第1の工程の訓練はALセンテンス(例えばSQLクエリ)の巨大なコーパスを翻訳機に提示することを含む。入力センテンスごとに、翻訳機の出力は、パフォーマンススコアを決定するために評価され、翻訳機のパラメータは訓練中の翻訳機のパフォーマンスを向上させるよう調整される。
【0051】
[0065]後続の第2の工程は、ソース言語で形式化されたNL入力に応じてAL出力を生成するように翻訳機モジュールを訓練することを含む。訓練の第2の工程は、複数のセンテンスタプル(例えば、対)を含むNL-ALコーパスを用いる場合があり、各タプルは少なくとも1つのNL側と1つのAL側を有する。例示的な実施形態では、タプルの各AL側は個々のNL側の翻訳、すなわちタプルの個々のNL側を提示されたときの翻訳機の所望の出力を表現することができる。例示的な第2の工程の訓練は次のように進められる:NL-ALタプルごとに、翻訳機はNL側を入力として受信する。翻訳機の出力は翻訳誤りを判定するためにタプルのAL側と比較され、翻訳機のパラメータは翻訳誤りを低減するように調整される。
【0052】
[0066]従来の自動翻訳機は典型的には項目の対を使用して訓練され、対のうちの一方のメンバがソース言語で形式化され、対のうちのもう一方のメンバがターゲット言語で形式化される。そのような従来型の訓練が直面する1つの技術的なハードルは、訓練コーパスのサイズである。当分野では、より大きく、より多様なコーパスがより強健でパフォーマンスのよい翻訳機を生成することがよく受け入れられている。妥当な翻訳パフォーマンスを達成することは、数万以上のNL-ALタプルが必要な場合がある。しかし、NL-ALタプルは一般には自動的には生成することができないため、そのような大きいコーパスをセットアップするために必要とされる熟練した人間の作業量は非現実的である。
【0053】
[0067]対照的に、ALセンテンスは、膨大な量が自動的に生成され得る。本発明のいくつかの実施形態はこの知見を用いてパフォーマンスを向上させ、訓練を容易にし、翻訳機モジュールの市場投入までの時間を短くする。訓練の第1の工程は、比較的大きな、自動的に生成されたALコーパスで遂行され、ターゲット人工言語で文法的に正しいALセンテンスを確実に生成することができる、部分的に訓練済みの翻訳機が生じる。次いで訓練の第2の工程は、より控えめなサイズのNL-ALコーパスで遂行することができる。
【0054】
[0068]本明細書において説明されるような2工程による訓練の別の利点は、第1の工程の訓練を繰り返すことなく複数のNL-AL翻訳機を互いに独立して開発できることである。したがって、翻訳機モジュールのデコーダ部分は、複数の翻訳機においてそのまま再使用することができ(すなわち再訓練することなく)、それにより実質的にその開発コストと市場投入までの時間を低減することができる。それぞれ、そのような別個の翻訳機は、例えば英語、ドイツ語、中国語などの別個のソース自然言語に対応することができる。別の例では、それぞれ別個の翻訳機は、同一の自然言語(例えば、英語)のセンテンスの異なるセットで訓練されてもよい。そのような状況は、各翻訳機が別個のタスク/応用例に用いられる場合に生じることがあり、例えば1つの翻訳機が販売で使用される一方で、別の翻訳機がデータベース管理で使用される場合である。
【0055】
[0069]本明細書の大部分は、自然言語からSQLなどのクエリ言語への自動翻訳のための訓練を対象としているが、当業者であれば説明されるシステムおよび方法は、他の応用例および人工言語に適合できることを諒解されよう。代替的なクエリ言語としては、SPARQL、および他のリソース記述フォーマット(RDF)クエリ言語が挙げられる。そのような翻訳の例示的な応用例としては、RDFで表現されるデータへのアクセスを容易にすること、例えばWorld Wide Webおよび/またはWikipedia(登録商標)などの異分野ナレッジベースからの情報を抽出することが挙げられる。本発明のいくつかの実施形態の別の例示的な応用例としては、例えば異分野データを自動的に組織化/構造化するために、またはプログラミングもしくはクエリ言語の専門知識無しにデータをナレッジベースに持ち込むために自動的にRDFコードを生成することが挙げられる。
【0056】
[0070]ターゲット言語がプログラミング言語であるいくつかの実施形態の応用例は、とりわけ人間-マシン対話を可能にするコード(例えば、シェルスクリプト)を自動的に生成することを含む場合がある。例えば、ユーザはある動作を実行するためにマシンに質問する場合がある(例えば、ある電話番号に電話をかける、あるウェブページにアクセスする、ある対象物をフェッチするなど)。自動翻訳機は、個々のNLコマンドを、ユーザのコマンドを受信したことに応じて実行することができるコンピュータ可読命令のセットに翻訳することができる。他の例示的な応用例としては、2つの別個のプログラミング言語同士(例えば、PythonからJava(登録商標)でコードを自動的に翻訳すること、およびリッチなメディアを自動的に処理すること(例えば、画像および動画のアノテーション)が挙げられる。
【0057】
[0071]さらに別の例では、悪意のあるソフトウェアを検出することに特化している一部のコンピュータセキュリティプロバイダは、専用のプログラミング言語(バイトコードのあるバージョン)を使用してマルウェア検出ルーチンおよび/またはマルウェアを示すサインをエンコードする。本発明のいくつかの実施形態は、オペレータがバイトコードの専門知識無しにバイトコードのルーチンを自動的に生成できるようにすることにより、そのようなマルウェア対策の研究および開発を容易にすることができる。
【0058】
[0072]当業者にとっては、上述の実施形態は、本発明の範囲を逸脱することなく多くの方法で変更できることが明らかであろう。したがって、本発明の範囲は、以下の特許請求の範囲およびその法的な均等物によって定められるべきである。
図1
図2-A】
図2-B】
図3
図4
図5
図6
図7
図8
図9
図10
図11-A】
図11-B】
図12