Kore.aiのバーチャルアシスタントを多言語対応させるためのアドバイスその2



 前回、多言語対応バーチャルアシスタント(VA)作成に関して、特に言語を追加して、応対をさせるところを中心にご紹介しました。今回は、少しだけ深く立ち入って、言語を追加する部分や翻訳機の設定についてご紹介します。これらは、必要なビジネス要件に見合ったVAを作成するうえでの手助けとなるでしょう。


関連記事:Kore.aiのバーチャルアシスタントを多言語対応させるためのアドバイスその1はこちら


NLUの選択:言語構造の理解を活用するかどうか


 さて、前回の投稿では、Kore.aiで作成したバーチャルアシスタント(以下VA)が複数の言語を扱って応対することができることをお伝えしました。改めて、言語を追加するときの画面を見てみましょう。


言語定義モードの選択画面

 ここで、1番目にNLUモデルを選択というメニューがあります。この画面ではEnglishを追加する際にEnglishのNLUモデルが選択されている、ということになります。


 そもそもNLUとはなんでしょうか?これは、自然言語理解(Natural Language Understanding)と訳されるもので、自然言語処理(NLP)に含まれるコンセプトであるとご理解頂ければと思います。詳しいことは他文献に譲りますが、明確な意図を持ってNLUと言う際には、これが「発話や文章から、その文の文法的構造を解析し、文が持っている意図を、意味として理解する」という部分に注目して議論している、ということのほうが多いようです。

 そのため、先程の画面で選択するNLUモデルは、言語を構造として理解することができるかどうかに関係してきます。

 一つ整理しておきたいのは、「Kore.aiは100言語以上をサポートしている」という事実です。この100言語というのは、ボット言語としてこれら多くの言語を追加設定できる、という意味です。一方で、言語の構造まで理解できるNLUモデルは、執筆現在26言語をサポートしています。

 ここまで説明すると、1つ重要な疑問が湧いてきます(湧いてきましたよね?!)・・・追加しようとする言語と、NLUモデルが違う場合はどうなるのか?この疑問に以降でお答えします。

 NLUモデルの選択には、大別すると3つのパターンが考えられます。

  1. 追加する言語と同じNLUモデル(今回の例の場合English)

  2. 追加する言語と違うNLUモデル(例えばデフォルト言語のJapanese)

  3. 複数言語をサポートするNLUモデル:Multilingualモデル

これらを選択する場合について、それぞれの要点を、メリット・デメリットなどを交えて説明します。


1. 追加する言語と同じNLUモデルを選ぶ

 通常はこのパターンが多いです。追加した言語によるVAのメッセージの作成や発話トレーニングによるMLモデルの作成を行うことが必要になり、一つのボットの中に複数言語に対応したシナリオが作成されることになります。


2. 追加する言語と違うNLUモデルを選ぶ

 VAのデフォルト言語は、それを新規作成するときに選ぶことができ、また作成途中で言語追加を行うことができます。例えば、まずは日本語で開発を一通り完成し、それをベースに英語を追加する、といった場合に、VAの発話トレーニングによるモデルは、日本語で行ったものをそのまま適用することができます。これを行うと、追加した言語(英語)を用いた発話トレーニングデータの準備やトレーニングそのものを行うタスクから解放されるメリットがあります。

 しかし一方で、ユーザーの発話(英語)はデフォルト言語(日本語)に翻訳する必要があり、翻訳された発話に対して、MLモデルを用いて意図認識の計算を行うため、翻訳機の精度に依存する可能性があります。翻訳機の出力結果によって、意図認識の精度に影響がでないようなトレーニングを行う必要があります。また翻訳機については、VAからの応答時にも利用されることが多いです。つまり日本語で作られた回答を、英語に翻訳したうえで、応答としてユーザーに返すということです。


3. Multilingual NLUを選ぶ

 このモデルでは、100以上の言語を理解することができ、言語に依存しないMLモデルを作成できるものです。そのため、ボット言語のサポートはしているけどもNLUとして言語特化のものが無い場合など、Multilingualを選ぶことができます。このモデルの場合、ユーザー発話に対して翻訳機を使う必要はなく、そのままモデルで意図認識を行うことができます。

選択するモデル

メリット

デメリット

処理の流れ

1

追加言語と同じNLUモデル

直感的で分かりやすい。トレーニングを追加言語で構成できる。

追加言語でトレーニングを行う必要がある。

ユーザー発話(入力)→NLUモデル→ボット応答(入力と同じ言語)

2

追加言語と異なるNLUモデル

デフォルト言語のトレーニングデータをそのまま使える

意図検出の入力に、翻訳機を介した入力が使われるため翻訳機の精度に依存する

ユーザー発話(入力)→翻訳→NLUモデル→(翻訳)→ボット応答。出力発話前の翻訳は必須ではないが、実利用上は必要となる場合がほとんど。

3

Multilingualモデル

デフォルト言語のトレーニングデータをそのまま使える

機械学習チューニングなどの設定パラメーター調整が限定される

ユーザー発話(入力)→NLUモデル→ボット応答


カスタム翻訳ツールの設定


 さて、NLUの設定にいくつかのパターンがあることをこれまで見てきました。その中には、翻訳機を使うことで自動的に言語を翻訳して処理するため、またVAの応答をユーザーに返すときに、ユーザーが理解する言語にするために活用されます。

 翻訳機の設定については、この前回のブログ に触れていますが、Google Translator とMicrosoft Translatorの設定が標準でできるようになっています。

 ここで、カスタム翻訳機の指定についても触れておきます。例えば、DeepLなどを使いたいケースが多いかと思います。

 Botプラットフォームのメニューから、「構築」ー「構成」ー「言語」ー「翻訳設定」のカスタム項目にて、新規追加ができます。「カスタムエンジンを追加」を選ぶと新規追加できます。DeepLの場合は、

メソッド:POST

URL:DeepLのAPIページより取得できたURL。URLのクエリとして以下を指定する。

  auth_key:APIを利用する認証キー(DeepLの管理コンソールより取得できる0

  text:翻訳対象の文章。以下を指定することでボットの動きと連動できる。

koreUtil.conversation.sourceText()

target_lang:翻訳したい言語の略称名称。英語の場合はENとなるが、以下を設定することで他の言語でも対応できる。

koreUtil.conversation.TargetLanguage()

URLの例:

https://api-free.deepl.com/v2/translate?auth_key=<<ここに認証キーが入る>>&text=koreUtil.conversation.sourceText()&target_lang=koreUtil.conversation.getTargetLanguage()


カスタム翻訳エンジンの追加

 これらの設定が終わると、Test Requestタブにてテストを行うことが可能です。なお、このテストにより、DeepLのサービスへ問い合わせし使用量に影響することになるでご注意ください。以下がテストの手順です。

  1. テストの際は、例えばgetTargetLanguage()にENを、sourceText() に「今年の休日一覧を知りたい」などと翻訳したい文章を入力し、画面右上の「テスト」をクリックします。

  2. クリックすると、レスポンスが画面真ん中に出力され、body.translations[].textに翻訳済文章が出力されます。

  3. さらに、画面下のExtractボタンを押下して、OUTPUTセクションにその翻訳済文章(I would like to confirm the list of holidays for this year.)が出力されると、設定が正しくできていることが確認できたことになります。


DeepL翻訳テストの様子



お客さまの心を掴むお問い合わせ体験を


今回は、Kore.aiのVA作成において、多言語対応を行う際に選択するNLUモデルと、翻訳機のカスタム設定についてお伝えしました。前回の言葉と同様に、多言語に対応することは、言語による障壁を取り除いたり、企業競争力を向上させたり、社内を横断的にサポートできることに繋がります。このエントリーがお役に立てれば何よりです。

閲覧数:9回0件のコメント