4

簡単なチャットボットを作成するために、どのフレームワークから始めることができますか?ボットの焦点は非常に限られています(私のプロジェクト管理Webサイトhttp://ayeboss.comの場合)。

iPhoneのSIRIと比較することができます。「これまでに完了したすべてのタスクを表示する」、「最後に完了したタスクを表示する」、「保留中のタスクを表示|リスト|表示」などの質問に答える簡単な「応答」チャットを作成したい。質問データをユーザーに提示したい

現在、考えられる質問の正規表現辞書を作成しています。一致するものがない場合は、Lucene検索を実行して最も近いものを見つけます。私はそれを正しくやっていますか?

4

5 に答える 5

5

通常、あなたのような狭い分野のチャットボットは、通常、2つの重要な概念に依存しています。

  • インテント検出:ユーザーが何を要求しているかを特定します
  • エンティティの抽出:ユーザーのリクエストでエンティティを識別します。たとえば、フライト予約ボットのエンティティの例は、出発地、目的地、旅行日です。天気ボットでは、エンティティは天気の希望の日付または天気が必要な場所にすることができます。

完了したタスクのリストを取得し、最後に完了したタスクを取得するという明確な目標を持つ、特定のタイプのチャットボットの場合。これを開発するには、関心のある意図を定義する必要があります。あなたの例から、2つのインテントを簡単に定義できます。

  • COMPLETED_TASKS_REQUEST
  • LAST_COMPLETED_TASK

この2つの意図に基づいて、検出されるエンティティは実際にはありません。サービスAPIにクエリを実行するだけで、各シナリオで要求された情報を取得できます。

次のフェーズは、意図を識別するために分類器をトレーニングすることです。これは、リクエストタイプごとにいくつかのサンプルセンテンスを取得し、それらについてトレーニングすることで実行できます。

その後、フローは次のように削減されます。

  1. ボットはメッセージを受信します
  2. ボットは意図を識別します
  3. ボットは関連するエンティティを抽出します(必要な場合)
  4. インテントが認識された場合、ボットはデータソースにクエリを実行して回答を取得します。そうでない場合、ボットはリクエストを理解していないと文句を言います。または、ボットがリクエストを完了するためにエンティティを必要とする場合、ボットはユーザーに情報の提供を求め、タスクを完了します。これは通常、スロットベースのアプローチと呼ばれます。DialogManagerの動作の詳細を読むことができます。

機械学習やNLPに慣れていない場合は、wit.aiやapi.aiなどのプラットフォームでインテント検出器を簡単にトレーニングできます。このタスクのエンティティ分類部分は単純なhttpAPIリクエストに限定されます。ただし、真に複雑または洗練されたボットを構築する場合は、完全に制御でき、エッジケースをより適切に処理できるため、ほとんどの場合、独自のモデルを構築する方が適切です。wit.aiやapi.aiのようなプラットフォームは、通常、複数の分野でうまく機能する必要がありますが、タスク管理の専門家にすることに集中できます。

お役に立てれば。

PS:ボットをより面白くするために、IDを指定して特定のタスクのステータスを取得するなどのインテントをもう1つ追加できます。たとえば、ユーザーはタスク54のステータスを尋ねることができます。このインテントは次のように呼び出すことができます TASK_STATUS_REQUEST。この例では、インテントには要求されたタスクのIDであるエンティティがあるため、それを抽出する必要があります:)

于 2016-09-30T14:14:42.747 に答える
3

これはNLPタスクであり、このようなシステムを構築するには多くの研究開発が必要です。尋ねられる可能性のある一連の質問を作成することから始めることができます。質問を分析し、質問のタイプごとに単語パターンを考え出します。次のステップは、英語の文を何らかの形式の形式的な構造(SQLまたはラムダ計算など)に変換することです。バックエンドDBには、形式言語で照会できるデータが格納されている必要があります。

主な問題は、英語の文を形式言語に変換することにあります。正規表現から始めて、品詞、入力文の構文構造をチェックすることで、より複雑にすることができます。NLPタスクを実行するためのNLTKパッケージを確認してください。

于 2011-10-21T00:52:02.043 に答える
1

チャットボットライブラリに加えて、Hyphenateなどのインスタントメッセージングライブラリを統合して、モバイルおよびWeb通信用のチャットボットを有効にすることができます。

ここにいくつかの簡単なステップがあります:

  1. ハイフンコンソール:ハイフンコンソール(console.hyphenate.io)でアカウントにサインアップしてチャットボットエンティティを作成し、ボットのハイフンIMアカウントを作成してチャットボットにIDと音声を付与します。
  2. プラットフォームSDK:アプリ(iOS、Android、またはWeb)をHyphenateIMサービスおよびオープンソースUIライブラリと統合します。
  3. Webhook(イベントコールバック):開発者のバックエンドにプッシュするユーザーからのメッセージを受信するようにハイフンWebhookを設定し、チャットボットAIライブラリで処理します。
  4. バックエンドRESTAPI:開発者バックエンドからHyphenateが提供するREST APIを介して、チャットボットのメッセージをユーザーにプッシュします。
  5. やったー!Webhook+バックエンドRESTAPI=チャットボットとユーザーの間でメッセージを中継します。

http://docs.hyphenate.io/docs/chat-bot-integration

于 2016-11-21T23:39:14.247 に答える
1

初心者にとって非常に簡単で使いやすいMicrosoftNLPフレームワークを使用できます。また、以前はLUISとして知られており、Microsoftが提供するコグニティブサービスの1つです。これは基本的にAPI呼び出しの組み合わせです。

于 2019-05-12T08:37:45.293 に答える
0

どの言語に精通しているかはわかりませんが、JavaではApacheOpenNLPライブラリを使用してそれを行うことができます。これは、自然言語処理のための非常に優れた使いやすいライブラリです。非常に基本的なアプローチを提供するために、文を分割して単語にトークン化することができます。次に、単語を語彙化して、基本的な単語形式にすることができます。次に、適切なトレーニングデータを使用してカテゴライザーを使用してそれらを分類または分類できます。トレーニングが優れているほど、チャットボットは賢くなります。また、カテゴリを選択して、チャットボットがより魅力的な方法で会話できるようにすることもできます。これは、詳細な例とデモを含む非常に優れた記事です。

于 2019-05-12T08:29:07.403 に答える