見出し画像

アドベントカレンダー2023#02:プラットフォーム紹介:NLU(自然言語理解)、DM(対話管理)、NLG(自然言語生成)が必要

はじめに


本日は、今回使用する主要なプラットフォームであるDialogflowについて紹介します。なぜ選ばれたのか、その理由を簡単に説明します。

アーキテクチャ設計


Chatbotのアーキテクチャを調べていくと、フロントエンド(ユーザーとのインターフェース)からバックエンド(データ処理とロジック)の中に、NLU(自然言語理解)、DM(対話管理)、NLG(自然言語生成)の3つのコンポーネントが統合されていることが必要だということを理解した。NLUはユーザーの言葉を解釈し、DMは対話の流れを管理し、NLGは人間らしいレスポンスを生成します。これらを効率的に実装するために、対話サーバーという概念があり、Dialogflowのような開発フレームワークが存在している。

全体構成


今日調べた感じだと以下のような環境が定石になると思っている。
すこし古い記事ですが以下を参考にしてます。

全体構成

対話サーバーの整理


NLU(自然言語理解)
NLUは、チャットボットに入力されたテキスト(ユーザーの言葉)を解釈する役割を担います。これは、入力内容から「意図(何をしたいのか)」と「エンティティ(重要なキーワードやフレーズ)」を識別するプロセスです。例えば、入力内容が「東京の天気は?」と尋ねた場合、NLUは「天気を知りたい」という意図と「東京」というエンティティを抽出します。
DM(対話管理)
DMは、それまでの会話を通じて得られた情報を基に、対話の流れを制御し適切な応答を決定する役割を担います。例えば、「東京の天気は?」の前に、「東京に出張に行く」と言及していた場合、DMはこの情報を捉えて、移動先が東京であると理解します。これに基づき、DMは転記以外にも、東京に関連する情報やサービス(例えば、東京の天気予報、おすすめのレストラン、交通手段の情報など)を提供するアクションを選択することができます。DMはこのように、会話の文脈を把握し、ニーズに応じた適切な対話の方向性を導きます。
NLG(自然言語生成)
NLGは、DMによって決定された応答を人間らしい言葉で生成します。これにより、チャットボットは自然で理解しやすいテキストレスポンスを提供できます。例えば、「東京の今日の天気は晴れです」というような応答を生成します。

Dialogflowについて


Dialogflowは、GoogleのAPIとの統合が容易で、Google ChatとBigQueryやGoogle Cloudの他のツールやサービスとの連携もスムーズにできることに期待してみました。ほかの人のレビューを拝見する限りでは、対話管理と自然言語理解(NLU)の能力もよく、ノーコードで対話フローを構築できるため、開発の敷居が低く、迅速なプロトタイピングが可能なようです。Google Cloudのマシンラーニング技術を使うことで、チャットの内容に対する理解を深め、より自然で人間らしい対話ができるみたいなので、今から楽しみです。

Dialogflowを触ってみて


helloworld的なことですが、こんにちは、の入力に、こんにちは、たきぼっとです。と回答させることをしてみた。統合環境なのでテストもしやすくノーコード開発は初めてですが、何ができるのか楽しみです。

Dialogflowの開発画面

いくつかの資料を参考にさせていただきました。

DialogflowのガイドよりChatとの統合ができそうだと思っています。


この記事が気に入ったらサポートをしてみませんか?