Python

Сквозной чат-бот с использованием Python

Чат-бот — это компьютерная программа, которая понимает цель вашего запроса и предлагает решение. Чат-боты — самые популярные приложения для обработки естественного языка в отрасли. Итак, если вы хотите создать комплексный чат-бот, эта статья для вас. В этой статье я расскажу вам, как создать сквозной чат-бот, используя питон.

Что такое сквозной чат-бот?

Сквозной чат-бот относится к чат-боту, который может вести полный разговор от начала до конца, не требуя помощи человека. Чтобы создать сквозной чат-бот, вам нужно написать компьютерную программу, которая может понимать запросы пользователей, генерировать соответствующие ответы и предпринимать действия, когда это необходимо. Это включает в себя сбор данных, выбор языка программирования и инструментов НЛП, обучение чат-бота, а также его тестирование и доработку, прежде чем сделать его доступным для пользователей.

После развертывания пользователи могут взаимодействовать с чат-ботом, отправляя ему несколько запросов, и чат-бот может сам обрабатывать весь разговор. Чтобы создать сквозной чат-бот с использованием Python, мы можем выполнить шаги, указанные ниже:

  1. Определить намерения
  2. Создание обучающих данных
  3. Обучите чат-бота
  4. Создайте чат-бот
  5. Протестируйте чат-бот
  6. Разверните чат-бот

Надеюсь, теперь вы поняли, что такое сквозной чат-бот и процесс создания сквозного чат-бота. В разделе ниже я расскажу вам, как создать сквозной чат-бот с помощью Python.

Сквозной чат-бот с использованием Python

Теперь давайте начнем с создания сквозного чат-бота с использованием Python. Я начну эту задачу с импорта необходимых для этой задачи библиотек Python:

import os
import nltk
import ssl
import streamlit as st
import random
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression

ssl._create_default_https_context = ssl._create_unverified_context
nltk.data.path.append(os.path.abspath("nltk_data"))
nltk.download('punkt')

Теперь давайте определим некоторые намерения чат-бота. Вы можете добавить больше намерений, чтобы сделать чат-бота более полезным и функциональным:

intents = [
    {
        "tag": "greeting",
        "patterns": ["Hi", "Hello", "Hey", "How are you", "What's up"],
        "responses": ["Hi there", "Hello", "Hey", "I'm fine, thank you", "Nothing much"]
    },
    {
        "tag": "goodbye",
        "patterns": ["Bye", "See you later", "Goodbye", "Take care"],
        "responses": ["Goodbye", "See you later", "Take care"]
    },
    {
        "tag": "thanks",
        "patterns": ["Thank you", "Thanks", "Thanks a lot", "I appreciate it"],
        "responses": ["You're welcome", "No problem", "Glad I could help"]
    },
    {
        "tag": "about",
        "patterns": ["What can you do", "Who are you", "What are you", "What is your purpose"],
        "responses": ["I am a chatbot", "My purpose is to assist you", "I can answer questions and provide assistance"]
    },
    {
        "tag": "help",
        "patterns": ["Help", "I need help", "Can you help me", "What should I do"],
        "responses": ["Sure, what do you need help with?", "I'm here to help. What's the problem?", "How can I assist you?"]
    },
    {
        "tag": "age",
        "patterns": ["How old are you", "What's your age"],
        "responses": ["I don't have an age. I'm a chatbot.", "I was just born in the digital world.", "Age is just a number for me."]
    },
    {
        "tag": "weather",
        "patterns": ["What's the weather like", "How's the weather today"],
        "responses": ["I'm sorry, I cannot provide real-time weather information.", "You can check the weather on a weather app or website."]
    },
    {
        "tag": "budget",
        "patterns": ["How can I make a budget", "What's a good budgeting strategy", "How do I create a budget"],
        "responses": ["To make a budget, start by tracking your income and expenses. Then, allocate your income towards essential expenses like rent, food, and bills. Next, allocate some of your income towards savings and debt repayment. Finally, allocate the remainder of your income towards discretionary expenses like entertainment and hobbies.", "A good budgeting strategy is to use the 50/30/20 rule. This means allocating 50% of your income towards essential expenses, 30% towards discretionary expenses, and 20% towards savings and debt repayment.", "To create a budget, start by setting financial goals for yourself. Then, track your income and expenses for a few months to get a sense of where your money is going. Next, create a budget by allocating your income towards essential expenses, savings and debt repayment, and discretionary expenses."]
    },
    {
        "tag": "credit_score",
        "patterns": ["What is a credit score", "How do I check my credit score", "How can I improve my credit score"],
        "responses": ["A credit score is a number that represents your creditworthiness. It is based on your credit history and is used by lenders to determine whether or not to lend you money. The higher your credit score, the more likely you are to be approved for credit.", "You can check your credit score for free on several websites such as Credit Karma and Credit Sesame."]
    }
]

Теперь давайте подготовим намерения и обучим модель машинного обучения для чат-бота:

# Create the vectorizer and classifier
vectorizer = TfidfVectorizer()
clf = LogisticRegression(random_state=0, max_iter=10000)

# Preprocess the data
tags = []
patterns = []
for intent in intents:
    for pattern in intent['patterns']:
        tags.append(intent['tag'])
        patterns.append(pattern)

# training the model
x = vectorizer.fit_transform(patterns)
y = tags
clf.fit(x, y)

Теперь давайте напишем функцию Python для общения с чат-ботом:

def chatbot(input_text):
    input_text = vectorizer.transform([input_text])
    tag = clf.predict(input_text)[0]
    for intent in intents:
        if intent['tag'] == tag:
            response = random.choice(intent['responses'])
            return response

На данный момент мы создали чат-бота. После запуска кода вы можете взаимодействовать с чат-ботом в самом терминале. Чтобы превратить этого чат-бота в сквозного чат-бота, нам нужно развернуть его для взаимодействия с чат-ботом с помощью пользовательского интерфейса. Для развертывания чат-бота я буду использовать обтекаемый библиотека на Python, которая предоставляет удивительные возможности для создания пользовательского интерфейса для приложения машинного обучения всего за несколько строк кода.

Итак, вот как мы можем развернуть чат-бот с помощью Python:

counter = 0

def main():
    global counter
    st.title("Chatbot")
    st.write("Welcome to the chatbot. Please type a message and press Enter to start the conversation.")

    counter += 1
    user_input = st.text_input("You:", key=f"user_input_{counter}")

    if user_input:
        response = chatbot(user_input)
        st.text_area("Chatbot:", value=response, height=100, max_chars=None, key=f"chatbot_response_{counter}")

        if response.lower() in ['goodbye', 'bye']:
            st.write("Thank you for chatting with me. Have a great day!")
            st.stop()

if __name__ == '__main__':
    main()

Чтобы запустить этого чат-бота, используйте указанную ниже команду в своем терминале:

  • Streamlit запустить имя файла.py

После выполнения команды вы увидите пользовательский интерфейс вашего чат-бота в веб-браузере, как показано ниже:

Сквозной чат-бот
Выходное видео

Итак, вот как вы можете создать сквозной чат-бот, используя язык программирования Python.

Краткое содержание

Сквозной чат-бот относится к чат-боту, который может вести полный разговор от начала до конца, не требуя помощи человека. Создание сквозного чат-бота включает в себя сбор данных, выбор языка программирования и инструментов НЛП, обучение чат-бота, а также его тестирование и доработку, прежде чем сделать его доступным для пользователей. Надеюсь, вам понравилась эта статья о создании комплексного чат-бота с использованием Python. Не стесняйтесь задавать ценные вопросы в разделе комментариев ниже.

Source link

Похожие статьи

Кнопка «Наверх»