
Moed.aiはイスラエルの新興企業であり、サービスプロバイダーは、任意のデバイスからアクセス可能な単一のクラウドプラットフォームを使用して、仕事のカレンダーを管理し、新しいイベントを追加できます。
Moed.aiコントロールパネルを使用すると、ユーザーはサービスの実行、リソースの使用、その他のイベントを計画できます。 ここで、リソースとは、自動車や会議室などのオブジェクト、およびテストドライバーや自動車ディーラーの営業担当者などの労働者と理解されます。 Moed.aiプラットフォームを使用すると、各リソースの使用を計画し、クライアントとの会議を可用性に合わせて調整できます。
Moed.aiは現在、各顧客のチャットボットの作成に取り組んでおり、これらの企業のクライアントは、通常の方法(Facebookメッセンジャー、Skype、Slackなど)で好きな言語でサービスの実装を計画できます。
問題
Moed.aiはイスラエルの会社であるため、多くの顧客にとって母国語はヘブライ語です。 チャットボットMoed.aiの英語版はユーザーのメッセージから意図と本質を抽出することができ、会社は同じ機能を持つヘブライ語プログラムを作成したいと考えています。 残念ながら、会社が意図や実体を強調するために使用する予定のLUISプラットフォームには、現在ヘブライ語の公式サポートがありません。
解決策
Moed.aiを使用する目的は、 Translation Cognitive Serviceを使用してLUISにヘブライ語のサポートを追加する方法を見つけることでした。 作業中に、ヘブライ語のサポートを提供する2つの方法を比較しました。 最初の方法- コグニティブサービスによって翻訳されたテキストを英語の既存のLUISモデルに直接ロードすると、満足な結果が得られませんでしたが、より成功した方法を作成することができました。
LUISモデルの学習プロセスに新しい方法でアプローチしました。英語のフレーズを差し引く代わりに、未編集の機械翻訳を例として使用しました。 このアプローチにより、機械翻訳と正しい人間の音声との大きな違いを克服することができました。
この方法が機能する理由を理解するには、次の状況を考慮してください。
ユーザーが4つのヘブライ語の文でプログラムにアクセスするとします。
אני רוצה לקבוע פגישה אני רוצה לקבוע נסיעת מבחן אני רוצה לקבוע נסיעת מבחן למחר אפשר לקבוע נסיעת מבחן למחר?
これらの文章の正しい英語翻訳は次のとおりです。
I want to schedule a meeting. I want to schedule a test drive. I want to schedule a test drive for tommorrow. Can I schedule a test drive tomorrow?
ただし、機械翻訳サービスは次の結果を生成します。
I want to schedule an appointment. I want to schedule a test drive. I want to make a test tomorrow. Can set a test tomorrow?
最初の2つのフレーズの翻訳はそれらの意味とほとんど同じですが、3番目と4番目の文の翻訳の間(「 明日テスト をインストールしますか? 」、「 明日テストをインストールできますか? 」)、そしてその本当の意味(「 明日のために ”、” 明日のために 試乗をスケジュールできますか? )大きな違いがあります。
たとえば、両方のフレーズで、翻訳システムは「 test drive 」という概念を「 test 」という単語に置き換えました。これは形式は似ていますが、ソーステキストの意味からはかけ離れています。 LUISモデルは、「明日のテストドライブをスケジュールしたい」などの正しい文章のみでトレーニングを行いましたが、この置換は文章をヘブライ語から英語に翻訳する場合に典型的であるため、この置換の背後に隠された意味をほとんど推測できません 2つの言語の文法と使用法の違いにより、この特定の言語ペアに特徴的な同じ不正確さの翻訳が出現します。
ヘブライ語から翻訳された文で最初にモデルをトレーニングすると、サービスは、誤った翻訳と元の値との矛盾を識別することをすぐに学習します。 時間が経つにつれて、モデルはヘブライ語からの翻訳のどのエラーを正確に記憶し、翻訳サービスは各特定のコンテキストで行い、より頻繁にリクエストに正しく応答します。
ユーザーガイド
このセクションでは、サイトモジュールを学習して使用し、ロボットプログラムの追加言語のサポートを追加するプロセスについて説明します。 ユーザーがすでにLUISアプリケーションを作成し、認知翻訳システム( Translation Cognitive Service )のキーを生成していることを前提としています。
- 必要な言語(この場合はヘブライ語)でコマンドのリストを作成します。 例:
אני רוצה לקבוע פגישה // I want to schedule an appointment אני רוצה לקבוע נסיעת מבחן // I want to schedule a test drive אני רוצה לקבוע נסיעת מבחן למחר // I want to schedule a test drive for tomorrow אפשר לקבוע נסיעת מבחן למחר? // Can I schedule a test drive tomorrow?
- スクリプト「 一括翻訳とLUISへのインポート 」を実行します。
- LUISポータルを使用して、翻訳、意図、およびエンティティを強調表示します。
- LUISポータルの自動トレーニングおよびテストプログラムを使用して 、新しい言語の翻訳とその意味を比較することを学習するまで、モデルを再試行してください。
- LUIS npmモジュールを使用して、トレーニング済みのLUISモデルを使用し、それをアプリケーションに統合します。
コード
GitHubで説明されているメソッドの使用に関するソースコードとメモを見つけることができます。
使用する機会
この記事で説明した方法を使用して、コグニティブ翻訳サービスでサポートされている任意の自然言語のテキスト内の意図とエンティティを検出できます。 また、「プラットフォームとしてのコミュニケーション」タイプの多くの製品のローカライズにも適用できるため、ロボットプログラムとの会話がより自然になります。
Azureを無料で試すことができます 。
広告の分 。 プロジェクトで新しいテクノロジを試してみたいが、実際に試していない場合は、Microsoft Tech Accelerationプログラムにアプリケーションを残してください。 その主な機能は、お客様と一緒に必要なスタックを選択し、パイロットの実装を支援し、成功した場合、市場全体がお客様について知るよう最大限の努力を払うことです。
