(57)【要約】  説明されるシステムおよび方法により、自然言語（例えば、英語）から構造化問い合わせ言語（ＳＱＬ）などの人工言語への自動翻訳が可能となる。いくつかの実施形態では、翻訳機モジュールは、エンコーダコンポーネントと、デコーダコンポーネントとを含み、両方のコンポーネントは、リカレントニューラルネットワークを含む。翻訳機モジュールを訓練することは、２つの工程を含む。第１の工程は、ＡＬ入力を提示されると人工言語（ＡＬ）出力を生成するように、翻訳機モジュールを訓練する。例えば、翻訳機は、まずＡＬ入力を再生成するように訓練される。訓練の第２の工程は、自然言語（ＮＬ）入力を提示されるとＡＬ出力を生成するように、翻訳機を訓練することを含む。
2021528776.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムの少なくとも１つのハードウェアプロセッサを用いて、
人工言語（ＡＬ）エンコーダおよび該ＡＬエンコーダに結合されるデコーダを実行するステップであって、前記ＡＬエンコーダは、人工言語で形式化された入力ＡＬセンテンスの表現を含む第１の入力アレイを受信し、それに応じて第１の内部アレイを生成するように構成され、前記デコーダは、前記第１の内部アレイを受信し、それに応じて前記人工言語で形式化された第１の出力ＡＬセンテンスの表現を含む第１の出力アレイを生成するように構成される、ステップと、
前記第１の入力アレイを前記ＡＬエンコーダに与えたことに応じて、前記入力ＡＬセンテンスと前記第１の出力ＡＬセンテンスとの間の類似度を示す第１の類似性スコアを決定するステップと、
ＡＬエンコーダ入力とデコーダ出力との間のマッチングを改善するように、前記第１の類似性スコアに従って、前記デコーダのパラメータの第１のセットを調整するステップと、
第１の工程訓練終了条件が満たされるかどうかを判定するステップと、
前記第１の工程訓練終了条件が満たされるかどうかを判定したことに応じて、前記第１の工程訓練終了条件が満たされる場合に、自然言語で形式化された入力自然言語（ＮＬ）センテンスの表現を含む第２の入力アレイを受信し、それに応じて第２の内部アレイを前記デコーダに出力するように構成されるＮＬエンコーダを実行するステップと、
前記第２の内部アレイを受信することに応じて前記デコーダによって生成される第２の出力アレイを決定するステップであって、前記第２の出力アレイは、前記人工言語で形式化された第２の出力ＡＬセンテンスの表現を含む、ステップと、
前記第２の出力ＡＬセンテンスと前記入力ＮＬセンテンスから前記人工言語への翻訳を含むターゲットＡＬセンテンスとの間の類似度を示す第２の類似性スコアを決定するステップと、
デコーダ出力と前記ＮＬエンコーダによって受信された入力の前記人工言語への各翻訳を表現するターゲット出力との間のマッチングを改善するように、前記第２の類似性スコアに従って、前記ＮＬエンコーダのパラメータの第２のセットを調整するステップと
を含む方法。
【請求項２】
請求項１に記載の方法であって、前記人工言語は、データベースクエリ言語と、プログラミング言語と、マークアップ言語とを含む群から選択される項目を含む、方法。
【請求項３】
請求項２に記載の方法であって、前記人工言語は、構造化問い合わせ言語（ＳＱＬ）である、方法。
【請求項４】
請求項１に記載の方法であって、前記第２の出力アレイと前記ターゲットＡＬセンテンスの表現を含むターゲットアレイとの間の類似度に従って、前記第２の類似性スコアを決定するステップをさらに含む方法。
【請求項５】
請求項１に記載の方法であって、前記第２の類似性スコアを決定するステップは、前記コンピュータシステムの少なくとも１つのハードウェアプロセッサ用いて、
前記ターゲットＡＬセンテンスの表現を前記ＡＬエンコーダに入力するステップと、
前記ターゲットＡＬセンテンスの前記表現を入力として受信したことに応じて、前記ＡＬエンコーダの出力を含む第３の内部アレイを決定するステップと、
前記第２の内部アレイと前記第３の内部アレイとの間の類似度に従って、前記第２の類似性スコアを決定するステップと
を含む、方法。
【請求項６】
請求項１に記載の方法であって、前記第１の工程訓練終了条件が満たされるかどうかを判定したことに応じて、前記第１の工程訓練終了条件が満たされない場合に、前記コンピュータシステムの少なくとも１つのハードウェアプロセッサを用いて、
第３の入力アレイを前記ＡＬエンコーダに与えるステップであって、前記第３の入力アレイは、前記人工言語で形式化された第３のＡＬセンテンスの表現を含む、ステップと、
前記ＡＬエンコーダが前記第３の入力アレイを受信したことに応じて、前記デコーダの出力を含む第３の出力アレイを決定するステップであって、前記第３の出力アレイは、第３の出力ＡＬセンテンスの表現を含む、ステップと、
前記第３の入力ＡＬセンテンスと前記第３の出力ＡＬセンテンスとの間の類似度を示す第３の類似性スコアを決定するステップと、
ＡＬエンコーダ入力とデコーダ出力との間のマッチングを改善するように、前記第３の類似性スコアに従って、前記デコーダの前記パラメータの第１のセットを調整するステップと
をさらに含む方法。
【請求項７】
請求項１に記載の方法であって、前記ＮＬエンコーダの前記パラメータの第２のセットを調整したことに応じて、前記コンピュータシステムの少なくとも１つのハードウェアプロセッサを用いて、
別のＮＬセンテンスの表現を含む第３の入力アレイを受信し、それに応じて前記デコーダに第３の内部アレイを出力するように構成される別のＮＬエンコーダを実行するステップであって、前記別のＮＬセンテンスは、前記自然言語とは別個の別の自然言語で形式化される、ステップと、
前記第３の内部アレイを受信したことに応じて、前記デコーダによって生成された第３の出力アレイを決定するステップであって、前記第３の出力アレイは、第３の出力ＡＬセンテンスの表現を含む、ステップと、
前記第３の出力ＡＬセンテンスと前記別のＮＬセンテンスから前記人工言語への翻訳を含む第３のターゲットＡＬセンテンスとの間の類似度を示す第３の類似性スコアを決定するステップと、
デコーダ出力と前記別のＮＬデコーダによって受信された入力の前記人工言語への各翻訳を表現するターゲット出力の別のセットとの間のマッチングを改善するように、前記第３の類似性スコアに従って、前記別のＮＬエンコーダのパラメータの第３のセットを調整するステップと
をさらに含む方法。
【請求項８】
請求項１に記載の方法であって、前記ＮＬエンコーダは、リカレントニューラルネットワークを含む、方法。
【請求項９】
少なくとも１つのハードウェアプロセッサとメモリとを備えるコンピュータシステムであって、前記少なくとも１つのハードウェアプロセッサは、
ＡＬエンコーダおよび該ＡＬエンコーダに結合されるデコーダを実行することであって、前記ＡＬエンコーダは、人工言語で形式化された入力ＡＬセンテンスの表現を含む第１の入力アレイを受信し、それに応じて第１の内部アレイを生成するように構成され、前記デコーダは、前記第１の内部アレイを受信し、それに応じて前記人工言語で形式化された第１の出力ＡＬセンテンスの表現を含む第１の出力アレイを生成するように構成される、実行することと、
前記第１の入力アレイを前記ＡＬエンコーダに与えたことに応じて、前記入力ＡＬセンテンスと前記第１の出力ＡＬセンテンスとの間の類似度を示す第１の類似性スコアを決定することと、
ＡＬエンコーダ入力とデコーダ出力との間のマッチングを改善するように、前記第１の類似性スコアに従って、前記デコーダのパラメータの第１のセットを調整することと、
第１の工程訓練終了条件が満たされるかどうか判定することと、
前記第１の工程訓練終了条件が満たされるかどうかを判定したことに応じて、前記第１の工程訓練終了条件が満たされる場合に、自然言語で形式化された入力ＮＬセンテンスの表現を含む第２の入力アレイを受信し、それに応じて第２の内部アレイを前記デコーダに出力するように構成されるＮＬエンコーダを実行することと、
前記第２の内部アレイを受信したことに応じて前記デコーダによって生成される第２の出力アレイを決定することであって、前記第２の出力アレイは、前記人工言語で形式化された第２の出力ＡＬセンテンスの表現を含む、決定することと、
前記第２の出力ＡＬセンテンスと前記入力ＮＬセンテンスから前記人工言語への翻訳を含むターゲットＡＬセンテンスとの間の類似度を示す第２の類似性スコアを決定することと、
デコーダ出力と前記ＮＬエンコーダによって受信された入力の前記人工言語への各翻訳を表現するターゲット出力との間のマッチングを改善するように、前記第２の類似性スコアに従って、前記ＮＬエンコーダのパラメータの第２のセットを調整することと
を行うように構成される、コンピュータシステム。
【請求項１０】
請求項９に記載のコンピュータシステムであって、前記人工言語は、データベースクエリ言語と、プログラミング言語と、マークアップ言語とを含む群から選択される項目を含む、コンピュータシステム。
【請求項１１】
請求項１０に記載のコンピュータシステムであって、前記人工言語は、構造化問い合わせ言語（ＳＱＬ）である、コンピュータシステム。
【請求項１２】
請求項９に記載のコンピュータシステムであって、前記少なくとも１つのハードウェアプロセッサは、前記第２の出力アレイと前記ターゲットＡＬセンテンスの表現を含むターゲットアレイとの間の類似度に従って、前記第２の類似性スコアを決定するようにさらに構成される、コンピュータシステム。
【請求項１３】
請求項９に記載のコンピュータシステムであって、前記第２の類似性スコアを決定することは、前記コンピュータシステムの前記少なくとも１つのハードウェアプロセッサを用いて、
前記ターゲットＡＬセンテンスの表現を前記ＡＬエンコーダに入力することと、
前記ターゲットＡＬセンテンスの前記表現を入力として受信したことに応じて、前記ＡＬエンコーダの出力を含む第３の内部アレイを決定することと、
前記第２の内部アレイと前記第３の内部アレイとの間の類似度に従って、前記第２の類似性スコアを決定することと
を含む、コンピュータシステム。
【請求項１４】
請求項９に記載のコンピュータシステムであって、前記少なくとも１つのハードウェアプロセッサは、第１の工程終了条件が満たされるかどうかを判定したことに応じて、前記第１の工程終了条件が満たされない場合に、
第３の入力アレイを前記ＡＬエンコーダに与えることであって、前記第３の入力アレイは、前記人工言語で形式化された第３のＡＬセンテンスの表現を含む、与えることと、
前記ＡＬエンコーダが前記第３の入力アレイを受信したことに応じて、前記デコーダの出力を含む第３の出力アレイを決定することであって、前記第３の出力アレイは、第３の出力ＡＬセンテンスの表現を含む、決定することと、
前記第３の入力ＡＬセンテンスと前記第３の出力ＡＬセンテンスとの間の類似度を示す第３の類似性スコアを決定することと、
ＡＬエンコーダ入力とデコーダ出力との間のマッチングを改善するように、前記第３の類似性スコアに従って、前記デコーダの前記パラメータの第１のセットを調整することと
を行うようにさらに構成される、コンピュータシステム。
【請求項１５】
請求項９に記載のコンピュータシステムであって、前記少なくとも１つのハードウェアプロセッサは、前記ＮＬエンコーダの前記パラメータの第２のセットを調整したことに応じて、
第３の入力アレイを受信し、それに応じて前記デコーダに第３の内部アレイを出力するように構成される別のＮＬエンコーダを実行することであって、前記別のＮＬセンテンスは、前記自然言語とは別個の別の自然言語で形式化される、実行することと、
前記第３の内部アレイを受信したことに応じて、前記デコーダによって生成された第３の出力アレイを決定することであって、前記第３の出力アレイは、第３の出力ＡＬセンテンスの表現を含む、決定することと、
前記第３の出力ＡＬセンテンスと前記別のＮＬセンテンスから前記人工言語への翻訳を含む第３のターゲットＡＬセンテンスとの間の類似度を示す第３の類似性スコアを決定することと、
デコーダ出力と前記別のＮＬデコーダによって受信された入力の前記人工言語への各翻訳を表現するターゲット出力の別のセットとの間のマッチングを改善するように、前記第３の類似性スコアに従って、前記別のＮＬエンコーダのパラメータの第３のセットを調整することと
を行うようにさらに構成される、コンピュータシステム。
【請求項１６】
請求項９に記載のコンピュータシステムであって、前記ＮＬエンコーダは、リカレントニューラルネットワークを含む、コンピュータシステム。
【請求項１７】
命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令は、第１のコンピュータシステムの第１のハードウェアプロセッサによって実行されると、前記第１のコンピュータシステムに、ＮＬエンコーダおよび該ＮＬエンコーダに接続されるデコーダを含む訓練済翻訳機モジュールを形成させ、前記翻訳機モジュールを訓練することは、第２のコンピュータシステムの第２のハードウェアプロセッサを用いて、
前記デコーダを、人工言語で形式化された入力ＡＬセンテンスの表現を含む第１の入力アレイを受信し、それに応じて第１の内部アレイを生成するように構成されるＡＬエンコーダに結合することであって、前記ＡＬエンコーダは、前記デコーダが前記第１の内部アレイを受信し、それに応じて前記人工言語で形式化された第１の出力ＡＬセンテンスの表現を含む第１の出力アレイを生成するように、前記デコーダに結合される、結合することと、
前記第１の入力アレイを前記ＡＬエンコーダに与えたことに応じて、前記入力ＡＬセンテンスと前記第１の出力ＡＬセンテンスとの間の類似度を示す第１の類似性スコアを決定することと、
ＡＬエンコーダ入力とデコーダ出力との間のマッチングを改善するように、前記第１の類似性スコアに従って、前記デコーダのパラメータの第１のセットを調整することと、
第１の工程訓練終了条件が満たされるかどうか判定することと、
前記第１の工程訓練終了条件が満たされるかどうかを判定したことに応じて、前記第１の工程訓練終了条件が満たされる場合に、前記ＮＬエンコーダが、自然言語で形式化された入力ＮＬセンテンスの表現を含む第２の入力アレイを受信し、それに応じて第２の内部アレイを前記デコーダに出力するように、前記ＮＬエンコーダを前記デコーダに結合することと、
前記第２の内部アレイを受信することに応じて前記デコーダによって生成される第２の出力アレイを決定することであって、前記第２の出力アレイは、前記人工言語で形式化された第２の出力ＡＬセンテンスの表現を含む、決定することと、
前記第２の出力ＡＬセンテンスと前記入力ＮＬセンテンスから前記人工言語への翻訳を含むターゲットＡＬセンテンスとの間の類似度を示す第２の類似性スコアを決定することと、
デコーダ出力と前記ＮＬエンコーダによって受信された入力の前記人工言語への各翻訳を表現するターゲット出力との間のマッチングを改善するように、前記第２の類似性スコアに従って、前記ＮＬエンコーダのパラメータの第２のセットを調整することと
を含む、非一時的なコンピュータ可読媒体。
【請求項１８】
ＮＬエンコーダおよび該ＮＬエンコーダに接続されるデコーダを含む訓練済翻訳機モジュールを実行するように構成される第１のハードウェアプロセッサを備えるコンピュータシステムであって、前記翻訳機モジュールを訓練することは、第２のコンピュータシステムの第２のハードウェアプロセッサを用いて、
前記デコーダを、人工言語で形式化された入力ＡＬセンテンスの表現を含む第１の入力アレイを受信し、それに応じて第１の内部アレイを生成するように構成されるＡＬエンコーダに結合することであって、前記ＡＬエンコーダは、前記デコーダが前記第１の内部アレイを受信し、それに応じて前記人工言語で形式化された第１の出力ＡＬセンテンスの表現を含む第１の出力アレイを生成するように、前記デコーダに結合される、結合することと、
前記第１の入力アレイを前記ＡＬエンコーダに与えたことに応じて、前記入力ＡＬセンテンスと前記第１の出力ＡＬセンテンスとの間の類似度を示す第１の類似性スコアを決定することと、
ＡＬエンコーダ入力とデコーダ出力との間のマッチングを改善するように、前記第１の類似性スコアに従って、前記デコーダのパラメータの第１のセットを調整することと、
第１の工程訓練終了条件が満たされるかどうかを判定することと、
前記第１の工程訓練終了条件が満たされるかどうかを判定したことに応じて、前記第１の工程訓練終了条件が満たされる場合に、前記ＮＬエンコーダが、自然言語で形式化された入力ＮＬセンテンスの表現を含む第２の入力アレイを受信し、それに応じて第２の内部アレイを前記デコーダに出力するように、前記ＮＬエンコーダを前記デコーダに結合することと、
前記第２の内部アレイを受信することに応じて、前記デコーダによって生成される第２の出力アレイを決定することであって、前記第２の出力アレイは、前記人工言語で形式化された第２の出力ＡＬセンテンスの表現を含む、決定することと、
前記第２の出力ＡＬセンテンスと前記入力ＮＬセンテンスから前記人工言語への翻訳を含むターゲットＡＬセンテンスとの間の類似度を示す第２の類似性スコアを決定することと、
デコーダ出力と前記ＮＬエンコーダによって受信された入力の前記人工言語への各翻訳を表現するターゲット出力との間のマッチングを改善するように、前記第２の類似性スコアに従って、前記ＮＬエンコーダのパラメータの第２のセットを調整することと
を含む、コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本発明は、自然言語から人工的な機械可読言語への自動翻訳のためのシステムおよび方法に関する。
【背景技術】
【０００２】
[0002]近年、益々多くの製品およびサービスが、膨大な量のデータを収集して分析することに依拠している。その例は、製造からコマース、科学的研究、ヘルスケア、および防衛まで、人間活動の事実上全ての分野に渡る。それらには例えば、複数の店舗および倉庫間で在庫、顧客および販売を管理する小売りシステム、多くの多様なキャリア船を管理する物流ソフトウェア、ならびに潜在的なカスタマーを提案のターゲットにするユーザプロファイリングに依拠するインターネット広告サービスが含まれる。大量のデータを管理することは、データベースアーキテクチャ、ならびに個々のデータと対話するシステムおよび方法における革新と発展を促進してきた。データベースのサイズと複雑性が増すにつれ、人間のオペレータを使用してデータを高速に検索し、取り出し、および分析することは非現実的になりつつある。
【０００３】
[0003]並行して、一般的に「モノのインターネット」として知られる電子機器の爆発的な成長と多様化が見られる。携帯電話から家電製品、ウェアラブル、娯楽用デバイス、ならびに様々なセンサおよび車、住宅などに組み込まれるガジェットに渡るデバイスなどは、典型的には遠隔のコンピュータおよび／または様々なデータベースに接続してその機能を実行する。そのようなデバイスおよびサービスの高度に所望される特徴は、ユーザフレンドリ性である。幅広いオーディエンスに利用可能なそのような製品およびサービスを製作する商業上の圧力により、革新的な人−機械インターフェースの研究および開発が進んでいる。そのような技術の一部の例としては、とりわけＡｐｐｌｅのＳｉｒｉ（登録商標）、およびＡｍａｚｏｎ（登録商標）のＥｃｈｏ（登録商標）などのパーソナルアシスタントが挙げられる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
[0004]したがって、人間とコンピュータとの対話を容易にするシステムおよび方法、特に、データベースのアクセスおよび／または管理を含むアプリケーションを開発には顕著な興味の対象である。
【課題を解決するための手段】
【０００５】
[0005]一態様によると、方法は、コンピュータシステムの少なくとも１つのハードウェアプロセッサを用いて、人工言語（ＡＬ）エンコーダおよびＡＬエンコーダに結合されるデコーダを実行することを含み、ＡＬエンコーダは、人工言語で形式化された入力ＡＬセンテンスの表現を含む第１の入力アレイを受信し、それに応じて第１の内部アレイを生成するように構成される。デコーダは、第１の内部アレイを受信し、それに応じて人工言語で形式化された第１の出力ＡＬセンテンスの表現を含む第１の出力アレイを生成するように構成される。方法は、第１の入力アレイをＡＬエンコーダに与えたことに応じて、入力ＡＬセンテンスと第１の出力ＡＬセンテンスとの間の類似度を示す第１の類似性スコアを決定することと、ＡＬエンコーダ入力とデコーダ出力との間のマッチングを改善するように、第１の類似性スコアに従って、デコーダのパラメータの第１のセットを調整することとをさらに含む。方法は、第１の工程訓練終了条件が満たされるかどうかを判定することと、それに応じて第１の工程訓練終了条件が満たされる場合、自然言語で形式化された入力自然言語（ＮＬ）センテンスの表現を含む第２の入力アレイを受信し、それに応じて第２の内部アレイをデコーダに出力するように構成されるＮＬエンコーダを実行することとをさらに含む。方法は、第２の内部アレイを受信することに応じて、デコーダによって生成される第２の出力アレイを決定することであって、第２の出力アレイが、人工言語で形式化された第２の出力ＡＬセンテンスの表現を含む、決定することと、第２の出力ＡＬセンテンスと入力ＮＬセンテンスから人工言語への翻訳を含むターゲットＡＬセンテンスとの間の類似度を示す第２の類似性スコアを決定することとをさらに含む。方法は、デコーダ出力とＮＬエンコーダによって受信された入力の人工言語への各翻訳を表現するターゲット出力との間のマッチングを改善するように、第２の類似性スコアに従って、ＮＬエンコーダのパラメータの第２のセットを調整することをさらに含む。
【０００６】
[0006]別の態様によると、コンピュータシステムは、少なくとも１つのハードウェアプロセッサと、メモリとを備え、少なくとも１つのハードウェアプロセッサは、ＡＬエンコーダおよびＡＬエンコーダに結合されるデコーダを実行するように構成され、ＡＬエンコーダは、人工言語で形式化された入力ＡＬセンテンスの表現を含む第１の入力アレイを受信し、それに応じて第１の内部アレイを生成するように構成される。デコーダは、第１の内部アレイを受信し、それに応じて人工言語で形式化された第１の出力ＡＬセンテンスの表現を含む第１の出力アレイを生成するように構成される。少なくとも１つのハードウェアプロセッサは、第１の入力アレイをＡＬエンコーダに与えたことに応じて、入力ＡＬセンテンスと第１の出力ＡＬセンテンスとの間の類似度を示す第１の類似性スコアを決定することと、ＡＬエンコーダ入力とデコーダ出力との間のマッチングを改善するように、第１の類似性スコアに従って、デコーダのパラメータの第１のセットを調整することとを行うようにさらに構成される。少なくとも１つのハードウェアプロセッサは、第１の工程訓練終了条件が満たされるかどうかを判定することと、それに応じて第１の工程訓練終了条件が満たされる場合、自然言語で形式化された入力ＮＬセンテンスの表現を含む第２の入力アレイを受信し、それに応じて第２の内部アレイをデコーダに出力するように構成されるＮＬエンコーダを実行することとを行うようにさらに構成される。少なくとも１つのハードウェアプロセッサは、第２の内部アレイを受信したことに応じて、デコーダによって生成される第２の出力アレイを決定することであって、第２の出力アレイが、人工言語で形式化された第２の出力ＡＬセンテンスの表現を含む、決定することとを行うようにさらに構成される。少なくとも１つのハードウェアプロセッサは、第２の出力ＡＬセンテンスと入力ＮＬセンテンスから人工言語への翻訳を含むターゲットＡＬセンテンスとの間の類似度を示す第２の類似性スコアを決定することと、デコーダ出力とＮＬエンコーダによって受信された入力の人工言語への各翻訳を表現するターゲット出力との間のマッチングを改善するように、第２の類似性スコアに従って、ＮＬエンコーダのパラメータの第２のセットを調整することとを行うようにさらに構成される。
【０００７】
[0007]別の態様によると、非一時的なコンピュータ可読媒体は、命令を記憶し、命令は、第１のコンピュータシステムの第１のハードウェアプロセッサによって実行されると、第１のコンピュータシステムに、ＮＬエンコーダおよびＮＬエンコーダに接続されるデコーダを含む訓練済翻訳機モジュールを形成させ、翻訳機モジュールを訓練することは、第２のコンピュータシステムの第２のハードウェアプロセッサを用いて、デコーダを、人工言語で形式化された入力ＡＬセンテンスの表現を含む第１の入力アレイを受信し、それに応じて第１の内部アレイを生成するように構成されるＡＬエンコーダに結合することを含む。ＡＬエンコーダは、デコーダが第１の内部アレイを受信し、それに応じて人工言語で形式化された第１の出力ＡＬセンテンスの表現を含む第１の出力アレイを生成するように、デコーダに結合される。翻訳機モジュールを訓練することは、第１の入力アレイをＡＬエンコーダに与えたことに応じて、入力ＡＬセンテンスと第１の出力ＡＬセンテンスとの間の類似度を示す第１の類似性スコアを決定することと、ＡＬエンコーダ入力とデコーダ出力との間のマッチングを改善するように、第１の類似性スコアに従って、デコーダのパラメータの第１のセットを調整することとをさらに含む。翻訳機モジュールを訓練することは、第１の工程訓練終了条件が満たされるかどうかを判定することと、それに応じて第１の工程訓練終了条件が満たされる場合、ＮＬエンコーダが、自然言語で形式化された入力ＮＬセンテンスの表現を含む第２の入力アレイを受信し、それに応じて第２の内部アレイをデコーダに出力するように、ＮＬエンコーダをデコーダに結合することとをさらに含む。翻訳機モジュールを訓練することは、第２の内部アレイを受信することに応じて、デコーダによって生成される第２の出力アレイを決定することであって、第２の出力アレイが、人工言語で形式化された第２の出力ＡＬセンテンスの表現を含む、決定することと、第２の出力ＡＬセンテンスと入力ＮＬセンテンスから人工言語への翻訳を含むターゲットＡＬセンテンスとの間の類似度を示す第２の類似性スコアを決定することとをさらに含む。翻訳機モジュールを訓練することは、デコーダ出力とＮＬエンコーダによって受信された入力の人工言語への各翻訳を表現するターゲット出力との間のマッチングを改善するように、第２の類似性スコアに従って、ＮＬエンコーダのパラメータの第２のセットを調整することをさらに含む。
【０００８】
[0008]別の態様によると、コンピュータシステムは、ＮＬエンコーダおよびＮＬエンコーダに接続されるデコーダを含む訓練済翻訳機モジュールを実行するように構成される第１のハードウェアプロセッサを備え、翻訳機モジュールを訓練することは、第２のコンピュータシステムの第２のハードウェアプロセッサを用いて、デコーダを、人工言語で形式化された入力ＡＬセンテンスの表現を含む第１の入力アレイを受信し、それに応じて第１の内部アレイを生成するように構成されるＡＬエンコーダに結合することを含む。ＡＬエンコーダは、デコーダが第１の内部アレイを受信し、それに応じて人工言語で形式化された第１の出力ＡＬセンテンスの表現を含む第１の出力アレイを生成するように、デコーダに結合される。翻訳機モジュールを訓練することは、第１の入力アレイをＡＬエンコーダに与えたことに応じて、入力ＡＬセンテンスと第１の出力ＡＬセンテンスとの間の類似度を示す第１の類似性スコアを決定することと、ＡＬエンコーダ入力とデコーダ出力との間のマッチングを改善するように、第１の類似性スコアに従って、デコーダのパラメータの第１のセットを調整することとをさらに含む。翻訳機モジュールを訓練することは、第１の工程訓練終了条件が満たされるかどうかを判定することと、それに応じて第１の工程訓練終了条件が満たされる場合、ＮＬエンコーダが、自然言語で形式化された入力ＮＬセンテンスの表現を含む第２の入力アレイを受信し、それに応じて第２の内部アレイをデコーダに出力するように、ＮＬエンコーダをデコーダに結合することとをさらに含む。翻訳機モジュールを訓練することは、第２の内部アレイを受信することに応じて、デコーダによって生成される第２の出力アレイを決定することであって、第２の出力アレイが、人工言語で形式化された第２の出力ＡＬセンテンスの表現を含む、決定することとをさらに含む。翻訳機モジュールを訓練することは、第２の出力ＡＬセンテンスと入力ＮＬセンテンスから人工言語への翻訳を含むターゲットＡＬセンテンスとの間の類似度を示す第２の類似性スコアを決定することと、デコーダ出力とＮＬエンコーダによって受信された入力の人工言語への各翻訳を表現するターゲット出力との間のマッチングを改善するように、第２の類似性スコアに従って、ＮＬエンコーダのパラメータの第２のセットを調整することとをさらに含む。
【０００９】
[0009]本発明の前述の態様および利点は、以下の詳細な説明を読み、図面を参照することにより、さらに理解されるであろう。
【図面の簡単な説明】
【００１０】
【図１】[0010]本発明のいくつかの実施形態による、クライアントのセットが翻訳機訓練システムおよびデータベースサーバと連携する、例示的な自動化データベースアクセスシステムの図である。
【図２−Ａ】[0011]本発明のいくつかの実施形態による、クライアントシステムの例示的なハードウェア構成の図である。
【図２−Ｂ】[0012]本発明のいくつかの実施形態による、翻訳機訓練システムの例示的なハードウェア構成の図である。
【図３】[0013]本発明のいくつかの実施形態による、クライアントシステムで実行する例示的なソフトウェアコンポーネントのセットの図である。
【図４】[0014]本発明のいくつかの実施形態による、クライアントシステムとデータベースサーバとの間の例示的なデータ交換の図である。
【図５】[0015]本発明のいくつかの実施形態による、翻訳機訓練システムの例示的なコンポーネントの図である。
【図６】[0016]本発明のいくつかの実施形態による、例示的な翻訳機訓練手順の図である。
【図７】[0017]本発明のいくつかの実施形態による、翻訳機モジュールの例示的な動作の図である。
【図８】[0018]本発明のいくつかの実施形態による、翻訳機モジュールの例示的なコンポーネントおよび動作の図である。
【図９】[0019]本発明のいくつかの実施形態による、翻訳機訓練システムによって実行される例示的な一連のステップの図である。
【図１０】[0020]本発明のいくつかの実施形態による、翻訳機モジュールを訓練する例示的な第１の工程の図である。
【図１１−Ａ】[0021]本発明のいくつかの実施形態による、翻訳機モジュールを訓練する例示的な第２の工程の図である。
【図１１−Ｂ】[0022]本発明のいくつかの実施形態による、翻訳機モジュールを訓練する代替的で例示的な第２の工程の図である。
【図１２】[0023]本発明のいくつかの実施形態による、複数の訓練コーパスで翻訳機モジュールを訓練する例示的な一連のステップの図である。
【発明を実施するための形態】
【００１１】
[0024]以下の説明では、構造間の全ての列挙される接続は直接操作可能な接続または中間的な構造を介する間接的に操作可能な接続であり得ることが理解されよう。要素のセットは、１つまたは複数の要素を含む。あらゆる要素の列挙が、少なくとも１つの要素を参照することを理解されたい。複数の要素は、少なくとも２つの要素を含む。要求されない限り、説明されるいかなる方法ステップも、特定の示される順で実行されることが必ずしも必要ではない。第２の要素に由来する第１の要素（例えば、データ）は、第２の要素と等しい第１の要素ならびに第２の要素および任意選択の他のデータを処理することによって生成される第１の要素を包含する。パラメータに従って判定または決定を行うことは、パラメータに従って、および任意選択で他のデータに従って判定または決定を行うことを包含する。指定されない限り、何らかの量／データの指標は、量／データそれ自身である場合があり、または量／データそれ自身とは異なる指標であってもよい。コンピュータプログラムは、タスクを遂行する一連のプロセッサ命令である。本発明のいくつかの実施形態で説明されるコンピュータプログラムは、スタンドアロンのソフトウェアエンティティまたは他のコンピュータプログラムのサブエンティティ（例えば、サブルーチン、ライブラリ）であってもよい。用語「データベース」は、本明細書であらゆる組織化されたデータの集合を表記するために使用される。指定されない限り、センテンスは、自然原語または人工言語で形式化された一連の語句および／またはトークンである。別個の言語で形式化された２つのセンテンスは、本明細書では、２つのセンテンスが互いに意味論的に等価であるとき、すなわち２つのセンテンスが同一または非常に類似した意味を有する場合に、互いの翻訳と考える。コンピュータ可読媒体は、磁気的、光学的、および半導体記憶媒体（例えば、ハードドライブ、光学ディスク、フラッシュメモリ、ＤＲＡＭ）などの非一時的な媒体、ならびに導電性ケーブルおよび光ファイバーリンクなどの通信リンクを包含する。いくつかの実施形態によると、本発明は、とりわけ本明細書において説明される方法を実行するようにプログラムされたハードウェア（例えば、１つまたは複数のプロセッサ）、ならびに本明細書において説明される方法を実行するための命令をエンコードするコンピュータ可読媒体を含むコンピュータシステムを提供する。
【００１２】
[0025]以下の説明は、本発明の実施形態を、必ずしも限定としてではなく、例として図示している。
[0026]図１は、本発明のいくつかの実施形態による、例示的なデータベースのアクセスおよび管理システムを示している。複数のクライアントシステム１２ａ〜ｄは、例えばクエリを実行するためにデータベースサーバ１８と対話し、それによりデータベース２０から／へ、データのセットをアクセスする／取り出す／書き込むことができる。例示的なデータベース２０としては、とりわけリレーショナルデータベース、拡張マークアップ言語（ＸＭＬ）データベース、スプレッドシート、およびキー−値記憶が挙げられる。
【００１３】
[0027]例示的なクライアントシステム１２ａ〜ｄとしては、パーソナルコンピュータシステム、モバイルコンピューティングプラットフォーム（ラップトップコンピュータ、タブレット、携帯電話）、娯楽デバイス（ＴＶ、ゲーム機）、ウェアラブルデバイス（スマートウォッチ、フィットネスバンド）、家電製品、ならびにプロセッサ、メモリおよび通信インターフェースを備えるあらゆる他の電子デバイスが挙げられる。クライアントシステム１２ａ〜ｄは、通信ネットワーク１４、例えばインターネットを介して、サーバ１８に接続される。ネットワーク１４の一部は、家庭用または企業用ネットワークなどのローカルエリアネットワーク（ＬＡＮ）を含んでもよい。データベースサーバ１８は、一般的にはデータベース２０に通信可能に結合され、データの挿入、データの取り出し、および／または他のデータベース管理操作を遂行するためにデータベース２０にアクセスするように構成されるコンピューティングシステムのセットを指す。
【００１４】
[0028]図示されるシステムの一例示的なアプリケーションでは、クライアントシステム１２ａ〜ｄは、ｅコマース会社の従業員によって使用される個別のコンピュータを表現し、データベース２０は個々の会社が販売する製品の記録を記憶するリレーショナルデータベースを表現している。従業員は、図示されるシステムを使用して、例えば現在特定の倉庫に特定の製品の在庫がいくつあるかを確認することができる。
【００１５】
[0029]いくつかの実施形態では、データベース２０へのアクセスは、クライアントシステム１２ａ〜ｄおよび／またはデータベースサーバ１８で実行するソフトウェアによって容易になり、個々のソフトウェアは、自然言語（例えば、英語、中国語）で形式化されたセンテンスから、構造化問い合わせ言語（ＳＱＬ：ｓｔｒｕｃｔｕｒｅｄ  ｑｕｅｒｙ  ｌａｎｇｕａｇｅ）、プログラミング言語（例えば、Ｃ＋＋、Ｊａｖａ（登録商標）、バイトコード）、および／またはマークアップ言語（例えば、ＸＭＬ、ｈｙｐｅｒｔｅｘｔ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ−ＨＴＭＬ）など人工の、定型的な言語で形式化されたセンテンスのセットへの自動翻訳を可能にする翻訳機コンポーネントを含む。いくつかの実施形態では、個々の翻訳機は、やはりネットワーク１４に接続される翻訳機訓練システム１６によって訓練されたニューラルネットワークのセットなどの人工知能システムを含む。翻訳機訓練システム１６ならびに翻訳機自身の動作を、以下でさらに詳細に説明する。
【００１６】
[0030]図２−Ａは、クライアントシステム１２の例示的なハードウェア構成を示している。クライアントシステム１２は図１のクライアントシステム１２ａ〜ｄのいずれかを表現することができる。一般性を失うことなく、図示されるクライアントシステムはコンピュータシステムである。他のクライアントシステム（例えば、携帯電話、スマートウォッチ）のハードウェア構成は、図２−Ａに図示されるものとは幾分異なっている場合がある。クライアントシステム１２は、ハードウェアプロセッサ２２およびメモリユニット２４を含む物理的なデバイスのセットを含む。プロセッサ２２は、信号および／またはデータのセットで計算機的および／または論理的な演算を実行するように構成される物理的なデバイス（例えば、マイクロプロセッサ、半導体基板上に形成されたマルチコア集積回路など）を備える。いくつかの実施形態では、そのような演算は、一連のプロセッサ命令（例えば、マシンコードまたは他のタイプのエンコード法）の形態でプロセッサ２２に送られる。メモリユニット２４は、プロセッサ２２によってアクセスまたは生成される命令および／またはデータを記憶する揮発性のコンピュータ可読媒体（例えば、ＤＲＡＭ、ＳＲＡＭ）を含むことができる。
【００１７】
[0031]入力デバイス２６は、とりわけコンピュータキーボード、マウス、およびマイクロフォンを含む場合があり、ユーザがデータおよび／または命令をクライアントシステム１２に伝えることを可能にする個々のハードウェアインターフェースおよび／またはアダプタを含む。出力デバイス２８は、とりわけモニタおよびスピーカなどのディスプレイデバイス、ならびにグラフィックカードなどのハードウェアインターフェース／アダプタを含む場合があり、クライアントシステム１２がユーザにデータを通信できるようにしている。いくつかの実施形態では、入力デバイス２６および出力デバイス２８は、タッチスクリーンデバイスの場合のように共通のハードウェア部品を共有することができる。記憶デバイス３２は、非揮発性記憶装置が、ソフトウェア命令および／またはデータの読み書きすることを可能にするコンピュータ可読媒体を含む。例示的な記憶デバイス３２は、磁気的および光学的ディスク、フラッシュメモリデバイス、ならびにＣＤおよび／またはＤＶＤディスクおよびドライブなどのリムーバブルな媒体を含む。ネットワークアダプタ３４のセットにより、クライアントシステム１２はコンピュータネットワークおよび／または他のデバイス／コンピュータシステムに接続することができる。コントローラハブ３０は、複数のシステム、周辺機器、および／もしくはチップセットバス、ならびに／またはプロセッサ２２とデバイス２４、２６、２８、３２および３４との間の通信を可能にするあらゆる他の回路を表している。例えば、コントローラハブ３０は、とりわけメモリコントローラ、入力／出力（Ｉ／Ｏ）コントローラ、および割り込みコントローラを含む場合がある。別の例では、コントローラハブ３０は、プロセッサ２２をメモリ２４に接続するノースブリッジ、ならびに／またはプロセッサ２２をデバイス２６、２８、３２、および３４に接続するサウスブリッジを含む場合がある。
【００１８】
[0032]図２−Ｂは、本発明のいくつかの実施形態による、翻訳機訓練システム１６の例示的なハードウェア構成を示している。図示される訓練システムは、少なくとも１つの訓練プロセッサ１２２（例えば、マイクロプロセッサ、マルチコア集積回路）、物理的なメモリ１２４、訓練記憶デバイスのセット１３２、および訓練ネットワークアダプタのセット１３４を含むコンピュータを含む。記憶デバイス１３２は、非揮発性記憶装置が、ソフトウェア命令および／またはデータの読み書きすることを可能にするコンピュータ可読媒体を含む。アダプタ１３４は、訓練システム１６が通信ネットワーク１４に接続できるようにするネットワークカードおよび他の通信インターフェースを含む場合がある。いくつかの実施形態では、翻訳機訓練システム１６は、機能においてクライアントシステム１２の入力デバイス２６と出力デバイス２８にそれぞれ類似し得る入出力デバイスをさらに含む。
【００１９】
[0033]図３は、本発明のいくつかの実施形態による、クライアントシステム１２で実行する例示的なコンピュータプログラムを示している。そのようなソフトウェアは、オペレーティングシステム（ＯＳ）４０を含むことができ、とりわけＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、ＭａｃＯＳ（登録商標）、Ｌｉｎｕｘ（登録商標）、ｉＯＳ（登録商標）またはＡｎｄｒｏｉｄ（ＴＭ）などの任意の幅広く利用可能なオペレーティングシステムを含むことができる。ＯＳ４０は、クライアントシステム１２のハードウェアと、例えば翻訳アプリケーション４１を含むアプリケーションのセットとの間のインターフェースを与える。いくつかの実施形態では、アプリケーション４１は、自然言語（ＮＬ）のセンテンスを人工言語（ＡＬ）のセンテンス、例えばＳＱＬクエリのセットおよび／または一連のソフトウェア命令（コード）に自動的に翻訳するように構成される。翻訳アプリケーション４１は、実際の翻訳を行う翻訳機モジュール６２を含み、とりわけ個々の自然言語センテンスをユーザから（例えば、入力デバイス２６を介してテキストまたは発話として）受信するコンポーネント、個々のＮＬ入力をパースして分析するコンポーネント（例えば、発話パーサ、トークナイザ、様々な辞書など）、翻訳済ＡＬ出力をデータベースサーバ１８に送信するコンポーネント、およびサーバ１８からの応答の内容をユーザに表示するコンポーネントをさらに含むことができる。翻訳機モジュール６２は、以下でされに説明するような、ＮＬからＡＬへの翻訳を実行する翻訳機訓練システム１６によって訓練される人工知能システムのインスタンス（例えば、ニューラルネットワークのセット）を含む。そのような訓練により、翻訳機６２の最適なパラメータ値のセットを得ることができ、値は、訓練システム１６からクライアント１２および／またはデータベースサーバ１８に例えば定期的またはオンデマンドのソフトウェア更新により転送され得る。用語「訓練済翻訳機」は、本明細書では翻訳機訓練システム１６から受信したそのような最適なパラメータ値でインスタンス化された翻訳機モジュールを指す。
【００２０】
[0034]簡潔のため、以下の説明では、翻訳機モジュール６２がデータベースクエリ、すなわちＳＱＬなどのクエリ言語で形式化されたセンテンスのセットを出力する例示的な応用例に注目する。したがって、図示されるシステムおよび方法は、人間のオペレータがデータベースクエリを遂行することを可能にすることを対象としている。しかしながら、当業者であれば、説明されるシステムおよび方法は、翻訳機がコンピュータコード（例えば、Ｊａｖａ（登録商標）、バイトコードなど）、データマークアップ（例えば、ＸＭＬ）、またはあらゆる他の人工言語で形式化された出力を生成するように構成される他の応用例に対して、修正および適合され得ることが理解されよう。
【００２１】
[0035]図４は、本発明のいくつかの実施形態による、クライアントシステム１２とデータベースサーバ１８との間の例示的なデータ交換を示している。クライアントシステム１２は、クエリ５０をデータベースサーバ１８に送信し、それに応答してクエリ５０を実行した結果を含むクエリ結果５２を受信する。クエリ５０は、サーバ１８によって実行されると、サーバ１８にデータベース２０の特定の操作、例えばデータを選択的にデータベース２０へ挿入すること、またはデータベース２０から取り出すことをそれぞれ実行させる命令のセットのエンコードを含む。クエリ結果５２は、例えばクエリ５０に従ってデータベース２０から選択的に取り出されたデータベースレコードのセットのエンコードを含むことがある。
【００２２】
[0036]いくつかの実施形態では、クエリ５０はＳＱＬなどの人工言語で形式化される。代替的な実施形態では、クエリ５０は自然言語のセンテンスのセットとして形式化することができる。そのような実施形態では、本明細書において説明されるような翻訳機モジュールは、データベースサーバ１８で実行することができる。
【００２３】
[0037]図５は、本発明のいくつかの実施形態による、翻訳機訓練システムの例示的なコンポーネントを図示している。訓練システム１６は、翻訳機モジュール６２および翻訳機モジュール６２に接続される訓練モジュール６４のインスタンスを含む翻訳機訓練エンジン６０を実行することができる。本発明のいくつかの実施形態では、エンジン６０は、翻訳機モジュール６２を訓練するために訓練モジュール６４によって用いられる訓練コーパス１７のセットに通信可能に結合される。コーパス１７は、少なくとも１つの人工言語（ＡＬ）訓練コーパス６６、および／または自然言語から人工言語への（ＮＬ−ＡＬ）訓練コーパス６８ａ〜ｂのセットを含むことができる。
【００２４】
[0038]いくつかの実施形態では、ＡＬ訓練コーパス６６は、複数のエントリを含み、全て同一の人工言語で形式化される。一例では、各エントリは、自動的にまたは人間のオペレータによって生成される少なくとも１つのＡＬステートメントから成る。いくつかのエントリは複数のＡＬステートメントを含むことができ、その一部は互いにシノニムまたは意味論的に等価であると考えられる。個々のＡＬがデータベースクエリ言語である例では、２つのＡＬステートメントは、それらによりデータベースから同一のデータが取り出される場合、シノニムであると考えることができる。同様に、プログラミング言語の例では、２つのＡＬステートメント（すなわちコード片）は、同一の計算機的な結果を生ずる場合、シノニム／意味論的に等価であり得る。
【００２５】
[0039]いくつかの実施形態では、ＮＬ−ＡＬコーパス６８ａ〜ｂは、複数のエントリを含み、各エントリはセンテンスのタプル（例えば、対）から成り、少なくとも１つのセンテンスが人工言語で形式化され、もう一方のセンテンスが自然言語で形式化される。いくつかの実施形態では、タプルのＡＬ側は、個々のタプルのＮＬ側から、人工言語への翻訳を含む。別の言い方をすれば、タプルの個々のＡＬ側は、個々のタプルのＮＬ側と同一または非常に類似した意味を持つ。一部のＮＬ−ＡＬタプルは１つのＮＬセンテンスおよび複数のシノニム的なＡＬセンテンスから成る場合がある。他のＮＬ−ＡＬタプルは、１つのＡＬセンテンスに対応する複数のＮＬセンテンスを有する場合がある。別個のＮＬ−ＡＬコーパス６８ａ〜ｂは、別個の自然言語（例えば、英語対中国語）に対応する場合がある。別の例では、別個のＮＬ−ＡＬコーパスは、同一の自然言語（例えば、英語）で形式化されたＮＬセンテンスの別個のセットを含む場合がある。そのような一例では、１つのＮＬ−ＡＬコーパスは、英語話者である営業担当によって使用される翻訳機を訓練するために使用され、一方で別のＮＬ−ＡＬコーパスは、英語話者であるデータベース運用者による使用のための翻訳機を訓練するために使用される場合がある。
【００２６】
[0040]訓練モジュール６４は、所望の出力を生成するように、例えば以下でさらに詳細に示す通り自然言語センテンスを人工言語センテンスに正確に翻訳するように、翻訳機モジュール６２を訓練するように構成される。本明細書における訓練は、一般的に所望の結果（例えば、正確な翻訳）を得るための翻訳機モジュール６２のパラメータのセットを調整するプロセスを指す。訓練を図示する例示的な一連のステップが、図６に示される。一連のステップ３０２〜３０４は、コーパス項目（例えば、自然言語センテンス）を選択して、個々のコーパス項目を翻訳機モジュール６２に入力することができる。次に、モジュール６２は、受信した入力に従って出力を生成することができる。ステップ３０８は、個々の出力を所望の出力を比較し、パフォーマンススコア、例えばモジュール６２の実際の結果と所望の結果との類似度を示す翻訳誤りを決定する。パフォーマンススコアを決定したことに応じて、ステップ３１０では訓練モジュール６４は、翻訳機モジュール６２のパフォーマンスを向上させるやり方、例えば翻訳誤りを低減させるやり方でモジュール６２のパラメータを更新することができる。そのようなパラメータ調整は、当分野で既知のあらゆる方法に従って進められる。一部の例としては、勾配降下法を使用するバックプロパゲーション、焼きなまし法、および遺伝的アルゴリズムが挙げられる。いくつかの実施形態では、訓練は何らかの終了条件が満たされると終了する（ステップ３１２）。終了条件についてのさらなる詳細は、以下で示す。
【００２７】
[0041]いくつかの実施形態では、訓練が終了すると、ステップ３１４において翻訳機訓練システム１６は翻訳機パラメータ値６９のセットを出力する。モジュール６２が人工ニューラルネットワークを含む場合、翻訳機パラメータ値６９は、例えばシナプス重みのセットおよび／またはネットワークアーキテクチャパラメータ値（例えば、レイヤ数、レイヤごとのニューロン数、コネクティビティマップなど）のセットを含む場合がある。次いでパラメータ値６９は、クライアントシステム１２ａ〜ｄおよび／またはデータベースサーバ１８に送信される場合があり、自動化された自然−人工言語翻訳を実行する個々のローカルな翻訳機モジュールをインスタンス化するために使用される。
【００２８】
[0042]図７は、本発明のいくつかの実施形態による、翻訳機モジュール６２の例示的な動作を図示している。モジュール６２は、例示的なセンテンス５４などの自然言語（ＮＬ）センテンスを例示的なセンテンス５６などの人工言語（ＡＬ）センテンスに、自動的に翻訳するように構成される。用語「センテンス」は、本明細書では自然言語または人工言語で形式化された語句／トークンのあらゆるセンテンスを指すのに使用される。自然言語の例としては、とりわけ英語、ドイツ語、および中国語が挙げられる。人工言語はトークン（例えば、キーワード、識別子、演算子）のセットと共に、個々のトークンを組み合わせるための規則のセットを含む。規則は、一般的に文法またはシンタックスとして知られており、典型的には言語特有である。例示的な人工言語としては、クエリ言語（例えば、ＳＱＬ）、プログラミング言語（例えば、Ｃ＋＋、Ｐｅｒｌ、Ｊａｖａ（登録商標）、バイトコード）、およびマークアップ言語（例えば、ＸＭＬ、ＨＴＭＬ）などの定型的なコンピュータ言語が挙げられる。ＮＬセンテンスの例としては、とりわけステートメント、質問、およびコマンドが挙げられる。ＡＬセンテンスの例としては、例えばコンピュータコード片、およびＳＱＬクエリが挙げられる。
【００２９】
[0043]いくつかの実施形態では、翻訳機モジュール６２は、ＮＬセンテンスのコンピュータ可読表現を含む入力アレイ５５を受信し、入力ＮＬセンテンスの翻訳から得られたＡＬセンテンスのエンコードを含む出力アレイ５７を生成する。入力および／出力アレイは、例えばｏｎｅ−ｈｏｔ  ｅｎｃｏｄｉｎｇなど当分野で既知のあらゆる方法を使用して計算された数値のアレイを含むことができる。そのような一例では、ＮＬ語彙の各語句には、別個の数値ラベルが割り当てられる。例えば「ｈｏｗ」はラベル２を有する場合があり、「ｍａｎｙ」はラベル３７を有する場合がある。この時、語句「ｈｏｗ」のｏｎｅ−ｈｏｔ表現は、バイナリＮ×１のベクトルを含むことができ、ここでＮは語彙のサイズであり、また全ての要素は１の値を有する第２の要素を除いて０である。一方で、語句「ｍａｎｙ」はバイナリＮ×１のベクトルで表現され得、ここで３７番目を除く全ての要素が０である。いくつかの実施形態では、入力センテンス５４などの一連の語句をエンコードする入力アレイ５５は、Ｎ×Ｍのバイナリアレイを含み、ここでＭは入力センテンスの語句のカウントを表し、入力アレイ５５の各列は入力センテンスの別個の語句を表現する。入力アレイ５５の連続的な列は、入力センテンスの連続的な語句に対応することができる。出力アレイ５７は、入力と出力をエンコードするために使用される語彙が互いに異なる場合があるが、類似のｏｎｅ−ｈｏｔ  ｅｎｃｏｄｉｎｇ手法を使用することができる。入力アレイ５５および出力アレイ５７は、それぞれ入力センテンス５４および出力センテンス５６を表現しているため、出力アレイ５７は、本明細書では入力アレイ５５の翻訳と見なされる。
【００３０】
[0044]ＮＬセンテンス５４から入力アレイ５５への変換、ならびに出力アレイ５７からＡＬセンテンス５６への変換は、パース、トークン化などの動作を含む場合があり、翻訳機モジュール６２とは別個のソフトウェアコンポーネントによって遂行される場合がある。
【００３１】
[0045]いくつかの実施形態では、モジュール６２は図示される翻訳を実行するように訓練される人工ニューラルネットワークなどの人工知能システムを含む。そのような人工知能システムは、当分野で既知のあらゆる方法を使用して構築することができる。図８に図示される好ましい実施形態では、モジュール６２はエンコーダ７０およびエンコーダ７０に結合されるデコーダ７２を含む。エンコーダ７０およびデコーダ７２のそれぞれは、ニューラルネットワーク、例えばリカレントニューラルネットワーク（ＲＮＮ）を含むことができる。ＲＮＮは、ネットワークノード同士の接続が有向グラフを形成する人工ニューラルネットワークの特殊なクラスを形成する。リカレントニューラルネットワークの例としては、とりわけ長・短期記憶（ＬＳＴＭ）ネットワークが挙げられる。
【００３２】
[0046]エンコーダ７０は、入力アレイ５５を受信し、入力センテンス５４の翻訳機モジュール自身の内部表現を含む内部アレイ５９を出力する。実際には、内部アレイ５９は、エンコーダ７０に特有な演算のセットを介した入力アレイ５５の数学的な変換を含む（例えば、行列乗算、活性化関数の適用など）。いくつかの実施形態では、内部アレイ５９のサイズは固定されているが、一方では入力アレイ５５のサイズは入力センテンスに従って変化する場合がある。例えば、長い入力センテンスは、短い入力センテンスと比べて比較的大きな入力アレイを使用して表現される場合がある。この観点から、いくつかの実施形態では、エンコーダ７０は可変サイズの入力を、個々の入力の固定サイズのエンコードに変換すると言うことができる。いくつかの実施形態では、デコーダ７２は、内部アレイ５９を入力として受け取り、出力アレイ５７を数学的な演算の第２のセットにより生成する。出力アレイ５７のサイズは、内部アレイ５９、したがって入力センテンスの内容に応じて変化する場合がある。
【００３３】
[0047]図９は、自動化されたＮＬからＡＬへの翻訳を実行するために翻訳機モジュール６２を訓練する例示のプロセスを図示している。いくつかの実施形態では、訓練は少なくとも２つの工程を含む。ステップ３２２〜３２４によって表現される第１の工程は、翻訳機モジュール６２のインスタンスを人工言語コーパス（例えば、図５のＡＬコーパス６６）で訓練することを含む。いくつかの実施形態では、ステップ３２２はＡＬ入力が与えられるとＡＬ出力を生成するように翻訳機モジュール６２を訓練することを含む。そのような一例では、翻訳機モジュール６２は、個々の人工言語で形式化された入力を再生成するように訓練される。別の例では、モジュール６２はＡＬ入力を与えられると、個々の入力のシノニム／意味論的に等価なものを生成するように訓練される。さらに別の例では、モジュール６２は、その出力が少なくとも文法的に正しい、すなわち出力が個々の人工言語の文法／シンタックス規則を守るように訓練される。
【００３４】
[0048]いくつかの実施形態では、訓練の第１の工程は終了条件のセットが満たされるまで進められる（ステップ３２４）。終了条件は、パフォーマンス基準、例えばモジュール６２の期待出力からの平均的な乖離（すなわち翻訳誤り）が所定の閾値より小さいかどうか、を含む場合がある。別の例示的なパフォーマンス基準は、翻訳モジュール６２の出力がほとんど文法的に正しいか、例えば時間の少なくとも９０％かどうかを含む。モジュール６２の出力がプログラミング言語で形式化される実施形態では、文法的な正確さを試験することは、個々の出力をコンパイルするように試行すること、およびコンパイル誤りがない場合個々の出力が正しいかどうか判定することを含む。他の例示的な終了条件としては、計算機的なコスト基準、例えば訓練が所定の時間限度まで、または繰り返しカウントが超えてしまうまで進むことができること挙げられる。
【００３５】
[0049]いくつかの実施形態では、図９のステップ３２６〜３２８によって図示される訓練の第２の工程は、翻訳機モジュール６２を自然言語から人工言語へのコーパスで、すなわちＮＬ−ＡＬタプルを使用して訓練することを含む。そのような一例では、モジュール６２はタプルのＮＬ側が入力として与えられると、タプルの対応するＡＬ側を出力するように訓練される。代替的な実施形態では、モジュール６２は、少なくとも個々のタプルのＡＬ側のシノニムを出力するように訓練され得る。訓練の第２の工程は、終了基準が満たされるまで（例えば、ＮＬ−ＡＬ翻訳の所望の正しい割合が達成されるまで）進めることができる。次に、ステップ３３０では、翻訳機訓練システム１６は、訓練から得られる翻訳機パラメータ値６９を出力することができる。翻訳機モジュール６２がニューラルネットワークを使用する例示的な実施形態では、パラメータ値６９は訓練を介して得られたシナプス重みの値を含むことができる。
【００３６】
[0050]図１０は、本発明の好ましい実施形態の第１の工程の訓練をさらに図示している。図示される第１の工程の翻訳機モジュール６２ａは、デコーダ７２に接続される人工言語エンコーダ７０ａを含む。ＡＬエンコーダ７０ａは入力アレイ５５ａを受け取り、内部アレイ５９ａを出力し、これはひいてはデコーダ７２によって出力アレイ５７ａに変換される。いくつかの実施形態では、第１の工程の訓練は、翻訳機モジュール６２ａに複数のＡＬ入力を与えること、および個々の提示された入力に類似するＡＬ出力を生成するためにモジュール６２ａのパラメータを微調整することを含む。別の言い方をすれば、いくつかの実施形態では、第１の工程の訓練の目標は、出力を入力により類似させることであり得る。代替的な実施形態では、訓練の目標は、出力が少なくとも個々の入力のシノニムであること、または出力が個々の人工言語において文法的に正しいことであってもよい。
【００３７】
[0051]第１の工程の訓練の一例では、入力／出力アレイの対ごとに、訓練モジュール６４は、出力アレイと入力アレイ（図１０ではそれぞれ５７ａおよび５５ａ）との間の類似度を示す類似性の尺度を計算することができる。類似性の尺度は、当分野で既知のあらゆる方法を使用して、例えば入力アレイと出力アレイとの間のマンハッタン距離またはルービンシュタイン距離に従って、計算することができる。次に訓練モジュール６４は、ＡＬエンコーダ７０ａおよび／またはデコーダ７２のパラメータを調整して、例えばアレイ５５ａと５７ａとの間の平均のマンハッタン距離を小さくして、デコーダ７２の出力とＡＬエンコーダ７０ａの入力との間の類似性を向上させることができる。
【００３８】
[0052]第１の工程の訓練は、第１の工程の終了条件が満たされるまで継続することができる（例えば、所定のパフォーマンスレベルが得られるまで、ＡＬコーパス６６の全てのメンバが訓練で使用されるまで、など）。
【００３９】
[0053]図１１−Ａは、第１の工程の訓練で使用された自然言語と人工言語との間で翻訳するように訓練することを含む、例示的な第２の工程の訓練プロセスを図示している。いくつかの実施形態では、第１から第２の工程に進むことは、既に訓練されたデコーダ７２を保存しつつ、ＡＬエンコーダ７０ａを自然言語エンコーダ７０ｂで置き換えることにより得られた第２の工程の翻訳機モジュール６２ｂに切り替えることを含む。別の言い方をすれば、デコーダ７２は、第１の工程の訓練から得られたパラメータ値でインスタンス化されたままである。ＮＬエンコーダ７０ｂのアーキテクチャおよび／またはパラメータ値は、実質的にＡＬエンコーダ７０ａのそれとは異なっていてもよい。そのような違いの１つの理由は、人工言語と自然言語の語彙は一般的には互いに異なっていることであり、それによってＮＬセンテンスを表現する入力アレイはＡＬセンテンスを表現する入力アレイとは、少なくともサイズが異なっている場合がある。なぜエンコーダ７０ａ〜ｂが別個のアーキテクチャを有する場合があるかの別の理由は、人工言語の文法／シンタックスが一般的に自然言語のそれとは実質的に異なっていることである。
【００４０】
[0054]ＮＬエンコーダ７０ｂはＮＬセンテンスを表現する入力アレイ５５ｂを受け取り、内部アレイ５９ｂを出力する。いくつかの実施形態では、内部アレイ５９ｂは、翻訳モジュール６２ａのＡＬエンコーダ５９ａ（図１０参照）によって出力された内部アレイ５９ａと同じサイズおよび／または構造を有している。次に、内部アレイ５９ｂは入力としてデコーダ７２に与えられ、これがひいてはＡＬセンテンスを表現する出力アレイ５７ｃを生成する。
【００４１】
[0055]いくつかの実施形態では、第２の工程の訓練は、ＮＬ−ＡＬタプルを使用し、ここでタプルのＡＬ側は、個々のタプルのＮＬ側のターゲットＡＬへの翻訳を表現する。第２の工程の訓練は、ＮＬエンコーダ７０ｂに複数のＮＬ入力を与えることであり、各ＮＬ入力が、ＮＬ−ＡＬタプルのＮＬ側を含む、与えること、およびデコーダ７２の出力が個々のタプルのＮＬ−ＡＬタプルのＡＬ側に類似するように翻訳機モジュール６２ｂのパラメータを微調整することを含むことができる。別の言い方をすれば、第２の状態の訓練の目的は、デコーダ７２の出力を個々のＮＬ入力のターゲットＡＬへの翻訳により類似させることである。
【００４２】
[0056]一例示的な実施形態では、各タプルのＮＬ側（図１１−Ａのアレイ５５ｂとして表現される）をＮＬエンコーダ７０ｂに与えたことに応じて、訓練モジュール６４がデコーダ７２の出力（アレイ５７ｃ）を個々のタプルのＡＬ側（アレイ５７ｂ）と比較することができる。比較には、アレイ５７ｂと５７ｃとの間の類似度を示す類似性の尺度を計算することを含む場合がある。次いで訓練モジュール６４は、ＮＬエンコーダ７０ｂおよび／またはデコーダ７２のパラメータを、アレイ５７ｂとアレイ５７ｃとの間の類似性を向上させる方向に調整する。
【００４３】
[0057]第２の工程の訓練についての代替的なシナリオが図１１−Ｂに図示されている。この代替的なシナリオは、第１の工程の訓練により得られる（訓練済）ＡＬエンコーダ（例えば、第１の工程の訓練から得られたパラメータ値でインスタンス化された図１０のＡＬエンコーダ７０ａ）およびＮＬエンコーダ７０ｂの両方を用いる。いくつかの実施形態では、ＮＬエンコーダ７０ｂはＮＬ−ＡＬタプルのＮＬ側を表現する入力アレイ５５ｂを与えられるが、その一方でＡＬエンコーダは個々のタプルのＡＬ側を表現する出力アレイ５７ｂを与えられる。方法は、ＡＬ入力を「適切な」内部アレイ５９ｃに変換し、次いでデコーダ７２が個々のＡＬ入力へ変換し戻すことができるように、ＡＬエンコーダ７０ａが第１の工程の訓練の間に既に構成されているという観測に依拠している。別の言い方をすれば、デコーダ７２について、出力アレイ５７ａを生成するために、その入力はできるだけ（既に訓練済の）ＡＬエンコーダ７０ａの出力に近くなくてはならない。したがって、図１１−Ｂで図示される実施形態では、訓練モジュール６４は、ＮＬエンコーダ７２の出力（すなわち内部アレイ５９ｂ）を内部アレイ５９ｃと比較して、その差異を類似性の尺度として定量化することができる。次いで訓練モジュール６４は、ＮＬエンコーダ７０ｂおよび／またはデコーダ７２のパラメータを、アレイ５９ｂと５９ｃとの間の類似性を向上させる方向に調整することができる。
【００４４】
[0058]図１２は、本発明のいくつかの実施形態による複数の訓練コーパスで翻訳機モジュール６２を訓練する例示的な一連のステップの図である。図示される方法は、デコーダ７２はターゲット人工言語ごとに一度だけ訓練され（上述の第１の工程の訓練を参照）、次いで複数の翻訳機モジュール、例えば複数のソース自然言語（例えば、英語、ドイツ語など）から個々のターゲット人工言語（例えば、ＳＱＬ）への翻訳することができるモジュールを導くために既に訓練済みの形態で再使用され得るという観測に依拠している。
【００４５】
[0059]別の例では、それぞれ別個の翻訳機モジュールは、同一の自然言語（例えば、英語）で形式化されたＮＬセンテンスの別個のセットで訓練される場合がある。この特定の実施形態は、言語が典型的には特殊化され、またタスク固有であること、すなわち一定の課題を解決するために人間のオペレータが使用するセンテンス／コマンドは他の状況で使用されるセンテンス／コマンドとは異なるという観測に依拠している。したがって、いくつかの実施形態は、１つのコーパス（すなわち、ＮＬセンテンスのセット）を用いて営業担当によって使用される翻訳機を訓練し、また別のコーパスを使用して技術担当によって使用される翻訳機を訓練する。
【００４６】
[0060]図１２のステップ３４２〜３４４は、ＡＬエンコーダ７０ａおよび／またはデコーダ７２を訓練することを含む第１の工程の訓練プロセスを図示している。第１の工程の訓練が成功したことに応じて、ステップ３４６はＡＬエンコーダ７０ａをＮＬエンコーダで置き換えている。いくつかの実施形態では、次いでＮＬエンコーダの第２の工程の訓練が利用可能なＮＬ−ＡＬコーパスごとに遂行される。１つのＮＬ−ＡＬコーパスから別のコーパスに切り替える（例えば、英語からスペイン語に切り替える、または「営業用英語」から「技術用英語」に切り替える）際、いくつかの実施形態では、既に訓練されたデコーダ７２を保存しつつ、既存のＮＬエンコーダを、現在のＮＬ−ＡＬコーパスに適切な新しいＮＬエンコーダで置き換える（ステップ３５８）。そのような最適化は、実質的に自動翻訳の訓練を容易にして加速させることができる。
【００４７】
[0061]いくつかの実施形態では、デコーダ７２のパラメータを第１の工程の訓練により得られた値に固定したまま、第２の工程の訓練はＮＬエンコーダ７０ｂ（図１１−Ａ〜図１１−Ｂ参照）のパラメータを調整するだけである。そのような訓練手法はデコーダ７２のパフォーマンスを、ソース自然言語またはＮＬ−ＡＬコーパスの選択に関わらず、第１の工程の訓練を通じて達成されたレベルに保存することを目的としている。訓練がＮＬエンコーダ７０ｂおよびデコーダ７２の両方のパラメータを調整することを含む他の実施形態では、ステップ３５８は、デコーダ７２のパラメータを第１の工程の訓練の終了時に得られた値にリセットすることをさらに含む場合がある。
【００４８】
[0062]上述の例示的なシステムおよび方法により、英語などのソース自然言語からターゲット人工言語（例えば、ＳＱＬ、プログラミング言語、マークアップ言語など）への自動翻訳が可能となる。本発明のいくつかの実施形態の一例示的な応用例により、素人でも自然言語で形式化された平易な質問を使用して、ＳＱＬなどのクエリ言語の知識の必要なくデータベースクエリを実行することができるようになる。例えば、営業オペレータはクライアントマシンに「コロラドでは３０未満の顧客がどれくらいいるか？」と質問することができる。それに応答して、マシンは個々の質問をデータベースクエリに翻訳して個々のクエリを実行してオペレータの質問に対する答えを取り出すことができる。
【００４９】
[0063]いくつかの実施形態は、翻訳機モジュールを使用して一連のＮＬの語句をＡＬセンテンス、例えばデータベースから選択的にデータを取り出すために使用可能な有効なクエリに翻訳する。翻訳機モジュールは、エンコーダネットワークおよびデコーダネットワークなどの人工的なニューラルネットワークのセットを含む場合がある。エンコーダおよびデコーダは、リカレントニューラルネットワーク（ＲＮＮ）または任意の他の人工知能技術を使用して構築することができる。
【００５０】
[0064]いくつかの実施形態では、翻訳機モジュールを訓練することは少なくとも２つの工程を含む。第１の工程では、翻訳機モジュールはＡＬ入力に応じてＡＬ出力を生成するように訓練される。例えば、第１の工程の訓練は、ＡＬ入力を再生成するように翻訳機モジュールを訓練することを含み得る。代替的な実施形態では、翻訳機は、ＡＬ入力に応じて文法的に正しいＡＬセンテンスを生成するように訓練される。便利な隠喩を使用すれば、第１の工程の訓練は個々の人工言語を「話す」ことを翻訳機モジュールに教えると言うことができる。実際には、第１の工程の訓練はＡＬセンテンス（例えばＳＱＬクエリ）の巨大なコーパスを翻訳機に提示することを含む。入力センテンスごとに、翻訳機の出力は、パフォーマンススコアを決定するために評価され、翻訳機のパラメータは訓練中の翻訳機のパフォーマンスを向上させるよう調整される。
【００５１】
[0065]後続の第２の工程は、ソース言語で形式化されたＮＬ入力に応じてＡＬ出力を生成するように翻訳機モジュールを訓練することを含む。訓練の第２の工程は、複数のセンテンスタプル（例えば、対）を含むＮＬ−ＡＬコーパスを用いる場合があり、各タプルは少なくとも１つのＮＬ側と１つのＡＬ側を有する。例示的な実施形態では、タプルの各ＡＬ側は個々のＮＬ側の翻訳、すなわちタプルの個々のＮＬ側を提示されたときの翻訳機の所望の出力を表現することができる。例示的な第２の工程の訓練は次のように進められる：ＮＬ−ＡＬタプルごとに、翻訳機はＮＬ側を入力として受信する。翻訳機の出力は翻訳誤りを判定するためにタプルのＡＬ側と比較され、翻訳機のパラメータは翻訳誤りを低減するように調整される。
【００５２】
[0066]従来の自動翻訳機は典型的には項目の対を使用して訓練され、対のうちの一方のメンバがソース言語で形式化され、対のうちのもう一方のメンバがターゲット言語で形式化される。そのような従来型の訓練が直面する１つの技術的なハードルは、訓練コーパスのサイズである。当分野では、より大きく、より多様なコーパスがより強健でパフォーマンスのよい翻訳機を生成することがよく受け入れられている。妥当な翻訳パフォーマンスを達成することは、数万以上のＮＬ−ＡＬタプルが必要な場合がある。しかし、ＮＬ−ＡＬタプルは一般には自動的には生成することができないため、そのような大きいコーパスをセットアップするために必要とされる熟練した人間の作業量は非現実的である。
【００５３】
[0067]対照的に、ＡＬセンテンスは、膨大な量が自動的に生成され得る。本発明のいくつかの実施形態はこの知見を用いてパフォーマンスを向上させ、訓練を容易にし、翻訳機モジュールの市場投入までの時間を短くする。訓練の第１の工程は、比較的大きな、自動的に生成されたＡＬコーパスで遂行され、ターゲット人工言語で文法的に正しいＡＬセンテンスを確実に生成することができる、部分的に訓練済みの翻訳機が生じる。次いで訓練の第２の工程は、より控えめなサイズのＮＬ−ＡＬコーパスで遂行することができる。
【００５４】
[0068]本明細書において説明されるような２工程による訓練の別の利点は、第１の工程の訓練を繰り返すことなく複数のＮＬ−ＡＬ翻訳機を互いに独立して開発できることである。したがって、翻訳機モジュールのデコーダ部分は、複数の翻訳機においてそのまま再使用することができ（すなわち再訓練することなく）、それにより実質的にその開発コストと市場投入までの時間を低減することができる。それぞれ、そのような別個の翻訳機は、例えば英語、ドイツ語、中国語などの別個のソース自然言語に対応することができる。別の例では、それぞれ別個の翻訳機は、同一の自然言語（例えば、英語）のセンテンスの異なるセットで訓練されてもよい。そのような状況は、各翻訳機が別個のタスク／応用例に用いられる場合に生じることがあり、例えば１つの翻訳機が販売で使用される一方で、別の翻訳機がデータベース管理で使用される場合である。
【００５５】
[0069]本明細書の大部分は、自然言語からＳＱＬなどのクエリ言語への自動翻訳のための訓練を対象としているが、当業者であれば説明されるシステムおよび方法は、他の応用例および人工言語に適合できることを諒解されよう。代替的なクエリ言語としては、ＳＰＡＲＱＬ、および他のリソース記述フォーマット（ＲＤＦ）クエリ言語が挙げられる。そのような翻訳の例示的な応用例としては、ＲＤＦで表現されるデータへのアクセスを容易にすること、例えばＷｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂおよび／またはＷｉｋｉｐｅｄｉａ（登録商標）などの異分野ナレッジベースからの情報を抽出することが挙げられる。本発明のいくつかの実施形態の別の例示的な応用例としては、例えば異分野データを自動的に組織化／構造化するために、またはプログラミングもしくはクエリ言語の専門知識無しにデータをナレッジベースに持ち込むために自動的にＲＤＦコードを生成することが挙げられる。
【００５６】
[0070]ターゲット言語がプログラミング言語であるいくつかの実施形態の応用例は、とりわけ人間−マシン対話を可能にするコード（例えば、シェルスクリプト）を自動的に生成することを含む場合がある。例えば、ユーザはある動作を実行するためにマシンに質問する場合がある（例えば、ある電話番号に電話をかける、あるウェブページにアクセスする、ある対象物をフェッチするなど）。自動翻訳機は、個々のＮＬコマンドを、ユーザのコマンドを受信したことに応じて実行することができるコンピュータ可読命令のセットに翻訳することができる。他の例示的な応用例としては、２つの別個のプログラミング言語同士（例えば、ＰｙｔｈｏｎからＪａｖａ（登録商標）でコードを自動的に翻訳すること、およびリッチなメディアを自動的に処理すること（例えば、画像および動画のアノテーション）が挙げられる。
【００５７】
[0071]さらに別の例では、悪意のあるソフトウェアを検出することに特化している一部のコンピュータセキュリティプロバイダは、専用のプログラミング言語（バイトコードのあるバージョン）を使用してマルウェア検出ルーチンおよび／またはマルウェアを示すサインをエンコードする。本発明のいくつかの実施形態は、オペレータがバイトコードの専門知識無しにバイトコードのルーチンを自動的に生成できるようにすることにより、そのようなマルウェア対策の研究および開発を容易にすることができる。
【００５８】
[0072]当業者にとっては、上述の実施形態は、本発明の範囲を逸脱することなく多くの方法で変更できることが明らかであろう。したがって、本発明の範囲は、以下の特許請求の範囲およびその法的な均等物によって定められるべきである。
【図１】
2021528776.tif 000003
【図２−Ａ】
2021528776.tif 000004
【図２−Ｂ】
2021528776.tif 000005
【図３】
2021528776.tif 000006
【図４】
2021528776.tif 000007
【図５】
2021528776.tif 000008
【図６】
2021528776.tif 000009
【図７】
2021528776.tif 000010
【図８】
2021528776.tif 000011
【図９】
2021528776.tif 000012
【図１０】
2021528776.tif 000013
【図１１−Ａ】
2021528776.tif 000014
【図１１−Ｂ】
2021528776.tif 000015
【図１２】
2021528776.tif 000016
【国際調査報告】
2021528776.tif 000017