Xây dựng chatbot Python
Trong bài viết thứ hai của loạt chatbot này, hãy tìm hiểu cách xây dựng một chatbot dựa trên quy tắc và thảo luận về các ứng dụng kinh doanh của chúng Show
Chatbot đã trở nên cực kỳ phổ biến trong những năm gần đây và việc sử dụng chúng trong ngành đã tăng vọt. Họ đã tìm được chỗ đứng vững chắc trong hầu hết mọi tác vụ yêu cầu giao dịch công khai dựa trên văn bản. Ví dụ, chúng đã trở nên quan trọng trong ngành công nghiệp hỗ trợ đến mức gần 25% tất cả các hoạt động dịch vụ khách hàng dự kiến sẽ sử dụng chúng vào năm 2020 Trong phần đầu của Hướng dẫn sử dụng Chatbot cho người mới bắt đầu, chúng ta đã thảo luận về chatbot là gì, mức độ phổ biến của chúng và các trường hợp sử dụng của chúng trong ngành. Chúng tôi cũng đã thấy công nghệ đã phát triển như thế nào trong 50 năm qua Trong phần thứ hai của loạt bài này, chúng tôi sẽ hướng dẫn bạn cách xây dựng một chatbot dựa trên Quy tắc đơn giản trong Python. Trước khi bắt đầu với hướng dẫn, chúng ta cần hiểu các loại chatbot khác nhau và cách chúng hoạt động Các loại chatbotChatbots có thể được phân thành hai loại khác nhau, dựa trên cách chúng được xây dựng Chatbot dựa trên quy tắcChatbots dựa trên quy tắc khá đơn giản. Họ được cung cấp một cơ sở dữ liệu về các câu trả lời và được cung cấp một bộ quy tắc giúp họ tìm ra câu trả lời phù hợp từ cơ sở dữ liệu được cung cấp. Họ không thể tạo ra câu trả lời của riêng mình nhưng với cơ sở dữ liệu rộng lớn về câu trả lời và các quy tắc được thiết kế thông minh, họ có thể làm việc rất hiệu quả và hữu ích Dạng Chatbots dựa trên quy tắc đơn giản nhất có các bảng đầu vào một đối một và phản hồi của chúng. Các bot này cực kỳ hạn chế và chỉ có thể phản hồi các truy vấn nếu chúng khớp chính xác với thông tin đầu vào được xác định trong cơ sở dữ liệu của chúng Chatbot dựa trên AIVới sự gia tăng trong việc sử dụng máy học trong những năm gần đây, một cách tiếp cận mới để xây dựng chatbot đã xuất hiện. Sử dụng trí tuệ nhân tạo, có thể tạo ra các chatbot cực kỳ trực quan và chính xác phù hợp với các mục đích cụ thể Không giống như họ hàng dựa trên quy tắc của chúng, các chatbot dựa trên AI dựa trên các mô hình học máy phức tạp cho phép chúng tự học Bây giờ chúng ta đã quen thuộc với cách thức hoạt động của chatbot, chúng ta sẽ xem xét các thư viện sẽ được sử dụng để xây dựng Chatbot dựa trên quy tắc đơn giản của chúng ta Bộ công cụ ngôn ngữ tự nhiên (NLTK)Bộ công cụ ngôn ngữ tự nhiên là một thư viện Python giúp dễ dàng xử lý dữ liệu ngôn ngữ của con người. Nó cung cấp các giao diện dễ sử dụng cho nhiều tài nguyên dựa trên ngôn ngữ như Mạng từ đa ngôn ngữ mở, cũng như quyền truy cập vào nhiều thư viện xử lý văn bản Cụm từ thông dụng (RegEx) trong PythonCụm từ thông dụng là một chuỗi ký tự đặc biệt giúp bạn tìm kiếm và tìm các mẫu từ/câu/chuỗi ký tự trong các tập hợp chuỗi, sử dụng cú pháp chuyên biệt. Chúng được sử dụng rộng rãi để tìm kiếm và khớp văn bản trong UNIX Python bao gồm hỗ trợ cho biểu thức chính quy thông qua gói 2Bạn muốn nâng cấp khả năng Python của mình? Xây dựng chatbotChatbot dựa trên quy tắc rất đơn giản này sẽ hoạt động bằng cách tìm kiếm từ khóa cụ thể trong thông tin đầu vào do người dùng cung cấp. Các từ khóa sẽ được sử dụng để hiểu hành động mà người dùng muốn thực hiện (ý định của người dùng). Khi mục đích được xác định, bot sẽ chọn ra một phản hồi phù hợp với mục đích Danh sách các từ khóa mà bot sẽ tìm kiếm và từ điển các câu trả lời sẽ được xây dựng thủ công dựa trên trường hợp sử dụng cụ thể của chatbot Chúng tôi sẽ thiết kế một chatbot rất đơn giản cho Ngân hàng. Bot sẽ có thể trả lời lời chào (Xin chào, Xin chào, v.v. ) và sẽ có thể trả lời các câu hỏi về giờ làm việc của ngân hàng Quy trình về cách chatbot sẽ xử lý đầu vào được hiển thị bên dưới;
Chúng tôi sẽ làm theo các bước dưới đây để xây dựng chatbot của chúng tôi
Nhập phụ thuộcĐiều đầu tiên chúng ta cần làm là nhập các gói/thư viện mà chúng ta sẽ sử dụng. 2 là gói xử lý biểu thức chính quy trong Python. Chúng tôi cũng sẽ sử dụng WordNet từ NLTK. WordNet là một cơ sở dữ liệu từ vựng xác định các mối quan hệ ngữ nghĩa giữa các từ. Chúng tôi sẽ sử dụng WordNet để xây dựng một từ điển các từ đồng nghĩa với các từ khóa của chúng tôi. Điều này sẽ giúp chúng tôi mở rộng danh sách từ khóa mà không cần phải giới thiệu thủ công mọi từ có thể mà người dùng có thể sử dụng
Xây dựng danh sách từ khóaKhi chúng tôi đã nhập thư viện của mình, chúng tôi sẽ cần xây dựng danh sách các từ khóa mà chatbot của chúng tôi sẽ tìm kiếm. Danh sách này có thể đầy đủ như bạn muốn. Bạn càng có nhiều từ khóa, chatbot của bạn sẽ hoạt động tốt hơn Như đã thảo luận trước đây, chúng tôi sẽ sử dụng Mạng từ để xây dựng từ điển các từ đồng nghĩa với từ khóa của chúng tôi. Để biết chi tiết về cách cấu trúc Mạng từ, hãy truy cập trang web của họ Mã số
đầu ra
Tại đây, trước tiên, chúng tôi xác định danh sách các từ 1 mà chúng tôi sẽ sử dụng làm từ khóa của mình. Chúng tôi đã sử dụng Mạng từ để mở rộng danh sách ban đầu của mình với các từ đồng nghĩa của từ khóa. Danh sách từ khóa này được lưu trữ trong 2Có thể dễ dàng thêm các từ khóa mới vào 1. Chatbot sẽ tự động kéo các từ đồng nghĩa của chúng và thêm chúng vào từ điển từ khóa. Bạn cũng có thể chỉnh sửa trực tiếp 2 nếu muốn thêm các từ hoặc cụm từ cụ thể mà bạn biết người dùng của mình sẽ sử dụngXây dựng từ điển ý địnhKhi danh sách từ khóa của chúng tôi hoàn tất, chúng tôi cần xây dựng một từ điển khớp từ khóa của chúng tôi với ý định. Chúng tôi cũng cần định dạng lại các từ khóa theo một cú pháp đặc biệt giúp chúng hiển thị với chức năng tìm kiếm của Biểu thức chính quy Mã số
đầu ra ________số 8Từ điển được cập nhật và định dạng được lưu trữ trong 5. Mục đích là chìa khóa và chuỗi từ khóa là giá trị của từ điểnHãy xem xét một cặp khóa-giá trị của từ điển 5 để hiểu cú pháp của Cụm từ thông dụng; 1Vì chúng tôi cần chatbot của mình để tìm kiếm các từ cụ thể trong các chuỗi đầu vào lớn hơn, chúng tôi sử dụng các chuỗi siêu ký tự sau 2Trong trình tự cụ thể này, từ khóa (hullo) được đặt giữa một 7 trình tự. Điều này cho chức năng Tìm kiếm RegEx rằng tham số tìm kiếm là từ khóa (xin chào)Dãy đầu tiên 8 được đặt giữa một dãy sao 9 . Trình tự này yêu cầu chức năng Tìm kiếm RegEx tìm kiếm toàn bộ chuỗi đầu vào từ đầu đến cuối để tìm thông số tìm kiếm (chào bạn)Trong từ điển, nhiều chuỗi như vậy được phân tách bằng toán tử OR 0 . Toán tử này yêu cầu hàm tìm kiếm tìm kiếm bất kỳ từ khóa nào được đề cập trong chuỗi đầu vàoBạn có thể tìm thêm thông tin chi tiết về Biểu thức chính quy và cú pháp của nó tại đây Bạn có thể thêm bao nhiêu cặp khóa-giá trị vào từ điển tùy thích để tăng chức năng của chatbot Xác định câu trả lờiBước tiếp theo là xác định phản hồi cho từng loại ý định. Phần này rất đơn giản. Các câu trả lời được mô tả trong một từ điển khác với mục đích là chìa khóa Chúng tôi cũng đã thêm mục đích dự phòng và phản hồi của mục đích đó. Đây là phản hồi không an toàn trong trường hợp chatbot không thể trích xuất bất kỳ từ khóa có liên quan nào từ đầu vào của người dùng Mã số 7Phù hợp với ý định và tạo phản hồiBây giờ chúng tôi đã hoàn thành phần cuối của chatbot, chúng tôi sẽ chuyển sang lấy thông tin đầu vào từ người dùng và tìm kiếm chuỗi đầu vào cho các từ khóa của chúng tôi Chúng tôi sử dụng chức năng Tìm kiếm RegEx để tìm kiếm thông tin nhập của người dùng cho các từ khóa được lưu trữ trong trường giá trị của từ điển 5. Nếu bạn còn nhớ, các giá trị trong 5 từ điển được định dạng bằng các chuỗi siêu ký tự đặc biệt. Hàm tìm kiếm của RegEx sử dụng các chuỗi đó để so sánh các mẫu ký tự trong từ khóa với các mẫu ký tự trong chuỗi đầu vàoNếu tìm thấy kết quả phù hợp, mục đích hiện tại sẽ được chọn và được sử dụng làm khóa cho từ điển 3 để chọn câu trả lời đúngMã số 1Chatbot đã chọn lời chào từ đầu vào của người dùng đầu tiên ('Xin chào') và trả lời theo mục đích phù hợp. Điều tương tự cũng xảy ra khi nó đặt từ ('thời gian') trong đầu vào thứ hai của người dùng. Đầu vào thứ ba của người dùng ('Làm cách nào tôi có thể mở tài khoản ngân hàng') không có bất kỳ từ khóa nào có trong cơ sở dữ liệu của Bankbot và do đó, nó đã chuyển sang mục đích dự phòng Bạn có thể thêm bao nhiêu từ khóa/cụm từ/câu và ý định tùy thích để đảm bảo chatbot của bạn mạnh mẽ khi nói chuyện với một con người thực tế Sự kết luậnBlog này là phần giới thiệu thực tế về cách xây dựng một chatbot dựa trên quy tắc rất đơn giản trong python. Chúng tôi chỉ làm việc với 2 ý định trong hướng dẫn này để đơn giản. Bạn có thể dễ dàng mở rộng chức năng của chatbot này bằng cách thêm nhiều từ khóa, ý định và phản hồi hơn Như chúng ta đã thấy, xây dựng một chatbot dựa trên quy tắc là một quá trình tốn nhiều công sức. Trong môi trường kinh doanh, một chatbot có thể được yêu cầu phải có nhiều ý định hơn tùy thuộc vào các nhiệm vụ mà nó phải đảm nhận Trong tình huống như vậy, các chatbot dựa trên quy tắc trở nên rất phi thực tế vì việc duy trì một cơ sở quy tắc sẽ trở nên cực kỳ phức tạp. Ngoài ra, chatbot sẽ bị hạn chế nghiêm trọng về khả năng đàm thoại vì gần như không thể mô tả chính xác cách người dùng sẽ tương tác với bot. Chatbots dựa trên AI là một giải pháp thiết thực hơn nhiều cho các tình huống trong thế giới thực. Trong blog tiếp theo của loạt bài này, chúng ta sẽ xem xét cách xây dựng một Chatbot dựa trên AI đơn giản bằng Python Bạn có muốn tìm hiểu thêm về học máy và các ứng dụng của nó không? Làm thế nào để xây dựng AI chatbot?Cách tạo chatbot từ đầu trong 8 bước . Bước 1. Cung cấp cho chatbot của bạn một mục đích. . Bước 2. Quyết định nơi bạn muốn nó xuất hiện. . Bước 3. Chọn nền tảng chatbot. . Bước 4. Thiết kế cuộc trò chuyện chatbot trong trình chỉnh sửa chatbot. . Bước 5. Kiểm tra chatbot của bạn. . Bước 6. Đào tạo chatbot của bạn. . Bước 7. Thu thập phản hồi từ người dùng Khung python nào là tốt nhất cho chatbot?Golem là một khung python để xây dựng chatbot. Nó được xây dựng cho các nhà phát triển python và nó có thể dễ dàng trích xuất các thực thể từ các tin nhắn hiện có. |