シンプルなチャットボットの構築

ソースノード: 1123058
チャンドラシェカールKP

技術者がチャットボットをどのように構築するのか疑問に思ったことはありますか? Python言語の開発により、わずか数行のコードでシンプルになりました。 私は、PythonとNLPを使用して簡単なチャットボットを構築する方法についていくつかのアイデアを提供しようとしています。これは、アプリやWebサイトとの日常的なやり取りで遭遇します。

最近、ほとんどの種類の初期カスタマーサポートに対する人的対話がこれらのチャットボットによって処理されており、購入した製品やサービスの日常生活で発生する膨大な量のログや苦情が減少しています。 単純で反復的なクエリは非常にうまく処理され、これらのタスクをロボットに任せて、会社に付加価値を与えるより効率的な作業に人間のエネルギーを集中させるのは良いことです。

私たちが一般的に遭遇するチャットボットにはXNUMXつのタイプがあります。

  1. ルールベースのチャットボット:これは意思決定ツリーボットであり、一連の定義済みルールを使用します。 構造と回答はすべて事前定義されており、会話を制御できます。
  2. 人工知能チャットボット:NLP(自然言語処理)を搭載しています。 複雑な種類や多数のクエリに適しています。

チャットボットのいくつかのアプリケーション:

時間を無駄にすることなく、jupyterノートブックに飛び込んで、コーディングで手を汚しましょう。

1.必要なライブラリをインポートする

チャットボットを構築するには、次のXNUMXつの重要なライブラリのみが必要です。
nltk —自然言語処理用の自然言語ツールキット。
文字列—Pythonで文字列を処理します
ランダム—単語または応答をランダムに選択します

2.コーパスをインポートします

簡単に言うと、Courpusは、テキスト(文字列、単語、文など)のコレクションを意味します。 チャットボットが学習するために必要なトレーニングデータです。 コーパスは、応答を決定する上で非常に重要な役割を果たします。 したがって、チャットボットに学習して応答させたいものはすべて、txtファイルに入れて保存する必要があります。

NLTKデータパッケージには、事前トレーニング済みが含まれています パンクトトークナイザー 英語の場合は、tweepy、RegExなどの他のトークナイザーよりも優先されます。

Wordnetは、NLTKライブラリに含まれている意味指向の英語辞書です。

コーパスはチャットボットの中核であり、そこからさらにデータ前処理に進み、テキストの大文字小文字を処理し、単語の誤解を避けるためにすべてのデータ入力を小文字または大文字に変換します。

1. 会話型 AI が顧客サービスを自動化する方法

2. 自動チャット vs ライブチャット: カスタマーサービスの未来はどうなる?

3. COVID-19パンデミックにおける医療アシスタントとしてのチャットボット

4. チャットボット対。 インテリジェント仮想アシスタント — 違いと注意点は?

3。 トークン化

トークン化は、以下に示すように、文を個々の単語のコレクションに変換するプロセスです。 この目的のために、パンクトトークナイザーが使用されます。

トークナイザーを使用して文と単語を分離したら、次のコードで正しく実行されているかどうかを確認しましょう。

0

4.テキストの前処理

補題またはステミングは、同じ語根(補題)の単語を持つ単語の類似性を見つけるプロセスです。 例えば:

5. Bag Of Words(BOW)の生成

前の手順で生成されたトークンからベクトル埋め込みを生成することにより、単語を数値に変換するプロセス。 例えば

ベクトル埋め込み

このベクトル埋め込みに加えて、0つのホットエンコーディングが適用され、すべての単語が1とXNUMXに変換され、MLアルゴリズムの入力として使用されます。

lemmetization / stemmingのコード

6.あいさつ機能の定義

7.応答生成機能

この段階で重要なXNUMXつのライブラリを次のようにインポートします。

Tfidf —用語frequency(tf)は、コーパス内の単語の出現頻度をカウントするために使用され、単語の出現がどれほどまれであるかは、逆ドキュメント頻度(idf)によって識別されます。

単語の袋(BOW)を0と1に変換したら、cosine_similarity関数を使用して正規化された出力を生成し、マシンが理解できるようにします。

次に、特定のデータ(コーパス)を提供していくつかの質問をした後、回答が得られるように、応答生成用の関数を記述します。 ただし、チャットボットがtfidf == 0の意味を理解できないことをユーザーが尋ねた場合、マシンはメッセージに記載されているようにそれに応じて応答する必要があります。

8.会話の開始/終了プロトコルの定義

このセクションでは、ユーザーが挨拶するとすぐにチャットボットはメッセージで応答できるようになり、ユーザーがさようならを言うと終了します。 コーパスに関連する質問の合間に、このチャットボットを面白くするユーザーに返信します。

9.チャットボットのクエリと応答

これで、シンプルなチャットボットがユーザーに応答する準備が整いました。 こんにちはと言っていくつかの入力を入力すると、それをランダム化することによって挨拶入力のいずれかで応答します。 私たちが質問をすると、それは意味のある関連する単語や文章でユーザーに返答します。 チャットボットの相互作用の例を以下に示します

注:これは単純なチャットボットであるため、データサイエンスとは何かなど、直接的な質問の一部には答えられません。

10. まとめ

これは、ほんの数行のコードで構築できる最も単純なチャットボットのXNUMXつです。 もちろん、より洗練されたチャットボットが必要な場合は、トレーニング用に提供するコーパスの規模と広さ、およびチャットボットがユーザーの質問を学習して応答するのに役立つコードの複雑さにすべて依存します。

これらの赤ちゃんのステップが、私の仲間の友人やデータサイエンスの志望者が、要件に従ってより深く掘り下げ、より複雑なチャットボットを構築するのに役立つことを願っています。

このプロジェクトの最終的なコードは私の GitHubの リポジトリ。

ハッピーラーニング!

11。 リファレンス

  1. https://www.nltk.org/_modules/nltk/tokenize/punkt.html
  2. https://www.esparkinfo.com/in-depth-guide-of-chatbot.html
  3. https://en.wikipedia.org/wiki/Data_science
  4. https://nlp.stanford.edu/IR-book/html/htmledition/stemming-and-lemmatization-1.html
  5. https://www.greatlearning.in/academy/courses/261323/52827#?utm_source=share_with_friends

Source: https://chatbotslife.com/building-a-simple-chatbot-f2f64d97cdd?source=rss—-a49517e4c30b—4

タイムスタンプ:

より多くの チャットボットの生活