Rasa core および Rasa nl の公式ドキュメントからrasaについて理解しようとしましたが、あまり推測できませんでした。私が理解できるのは
Rasaコアは会話の流れをガイドするために使用され、Rasa nluはテキストを理解および処理して情報(エンティティ)を抽出します
2番目に、 Rasaコア と Rasa nl の両方でチャットボットを構築する例がありますが、どちらもチャットボットの構築に使用できますが、2つのアプローチの違いといつ、どれに従うか。
より良い方法で理解するのを手伝ってください。
正解です。両方とも連携しますが、明確な目標があります。簡単に言えば、Rasa Coreは会話の流れ、発話、アクションを処理し、Rasa NLUはエンティティとインテントを抽出します。
2番目の質問について:
最初の例は、ボットを作成するためのワークフロー全体を示しています。ドメインとストーリーのセットアップ方法を示しています。これらはRasa NLUではなく、Rasa Coreの機能です。この例の項目2(インタプリタの定義と呼ばれる)で、著者はRasa NLUをインタプリタとして使用していることを明示的に述べています(ただし、別のエンティティ抽出フレームワークを使用することもできます)。
2番目の例(Rasa NLUの1つ)は、エンティティとインテント抽出プログラムのみをトレーニングする方法を示しています。ドメインとストーリーに関する情報はなく、会話フローに関する情報もありません。これは純粋なNLUの例です(たとえRasa Coreのデフォルトの実行方法を使用してボットを実行していても)。
Rasaを勉強し始めたとき、ボットを開発するための概念を理解するのは少し大変でした。しかし、コーディングを開始すると、明確になりました。使用するプラットフォームに関係なく、NLUはエンティティとインテントを処理し、会話の流れは別のものになります。
1つのライブラリを使用してボットのコアを処理し、別のライブラリを使用してNLUを処理することもできます。
ボットの中核を構築するために使用できるほとんどのツールとは異なり、Rasa Coreは機械学習を使用して対話の流れをより一般化します。会話の可能なノードごとにコードを記述する代わりに、可能な会話パスのデータセットを使用し、コアをトレーニングしてそれを一般化できます。これは非常にクールで強力な機能です:)
それが役に立てば幸い。
初心者向けの非常に一般的な説明:Rasa NLU:入力を理解するインタープリター。基本的にエンティティを把握し、意図にラベルを付けます。
Rasa Core:ボットにしたい残りの作業を行います。会話の流れが最も重要です。
例:ボットに「こんにちは」と言います。 Rasa NLUは入力の意図を「挨拶」として理解し、Rasa Coreはボットに挨拶で返信するように指示します。
PS *:ボットをトレーニングする場合の返信は挨拶になりますが、それ以外の場合もあります。
簡単な言葉で説明すると、Rasa NLUはNLP(Natural Language Processing)を使用して、ボットに伝える内容を理解します。
あなたの言うことを理解し、あなたが定義した何らかの意図と一致させます。
一方、Rasa Coreは会話フローを処理します。ストーリーのマークダウンファイルには、インテントとそのアクションがリストされています。
したがって、NLUがインテントを与えると、コアはそれに対応するアクションを実行し、ボットはそのアクションで応答します。