Chatbot dựa trên NLP trong PyTorch. Bonus Flask và triển khai JavaScript

Nút nguồn: 1123050
Victoria Maslova

Trong số nhiều cách bạn có thể cải thiện sự hài lòng của khách hàng, chatbot là một giải pháp mạnh mẽ để giúp cơ sở khách hàng. Chatbots có giá cả phải chăng, giúp mở rộng quy mô kinh doanh của bạn, hoàn toàn có thể tùy chỉnh, giúp khách hàng của bạn tìm thấy sản phẩm/dịch vụ phù hợp và giúp tạo niềm tin cho doanh nghiệp của bạn. Để chứng minh điều này tôi sẽ đi qua nội dung sau:

  1. Chatbot máy học là gì?
  2. Tại sao chatbot lại quan trọng trong các lĩnh vực kinh doanh khác nhau?
  3. Xây dựng chatbot dựa trên NLP của riêng bạn bằng PyTorch.
  4. Triển khai chatbot trong Javascript và Flask.

Một chatbot (Trí tuệ nhân tạo đàm thoại) là một chương trình tự động mô phỏng cuộc trò chuyện của con người thông qua tin nhắn văn bản, trò chuyện thoại hoặc cả hai. Nó học cách làm điều đó dựa trên rất nhiều thông tin đầu vào và Xử lý ngôn ngữ tự nhiên (NLP).

Vì lợi ích của ngữ nghĩa, chatbot và trợ lý đàm thoại sẽ được sử dụng thay thế cho nhau trong bài viết này, chúng có nghĩa giống nhau.

Business Insider đã báo cáo rằng thị trường chatbot toàn cầu dự kiến ​​sẽ tăng từ 2.6 tỷ đô la vào năm 2019 lên 9.4 tỷ đô la vào năm 2024, dự báo tốc độ tăng trưởng kép hàng năm là 29.7%. Báo cáo tương tự cũng cho thấy mức tăng trưởng cao nhất trong việc triển khai chatbot sẽ là trong ngành bán lẻ và thương mại điện tử, do nhu cầu cung cấp cho khách hàng trải nghiệm đa kênh liền mạch ngày càng tăng.

Điều đó thôi cũng đủ để thuyết phục bạn rằng chatbot là cách để xử lý các mối quan hệ với khách hàng tiến về phía trước, nhưng chúng cũng sẽ tiếp tục phát triển thành công cụ nội bộ cho công cụ doanh nghiệp và gần như mọi ngành sẽ áp dụng công nghệ này nếu chưa có.

Dưới đây là những lý do chính khiến ngày càng nhiều doanh nghiệp áp dụng chiến lược chatbot và cách chúng trở thành công thức đôi bên cùng có lợi để thu hút và giữ chân khách hàng.

  • Giảm thời gian chờ đợi của khách hàng - 21% người tiêu dùng xem chatbot là cách dễ nhất để liên hệ với doanh nghiệp. Bot là một cách thông minh hơn để đảm bảo rằng khách hàng nhận được phản hồi ngay lập tức mà họ đang tìm kiếm mà không khiến họ phải xếp hàng chờ đợi.
  • Tính khả dụng 24 × 7 — Các bot luôn sẵn sàng thu hút khách hàng bằng câu trả lời ngay lập tức cho các câu hỏi phổ biến mà họ đặt ra. Lợi ích tiềm năng hàng đầu của việc sử dụng chatbot là dịch vụ khách hàng 24 giờ.
  • Tương tác với khách hàng tốt hơn — Các bot trò chuyện có thể thu hút khách hàng suốt ngày đêm bằng cách bắt đầu bảo tồn chủ động và đưa ra các đề xuất được cá nhân hóa để nâng cao trải nghiệm của khách hàng.
  • Tiết kiệm chi phí dịch vụ khách hàng — Chatbots sẽ giúp doanh nghiệp tiết kiệm hơn 8 tỷ USD mỗi năm. Bot có thể dễ dàng mở rộng quy mô giúp tiết kiệm chi phí hỗ trợ khách hàng trong việc thuê thêm tài nguyên, chi phí cơ sở hạ tầng, v.v.
  • Tự động hóa trình độ và bán hàng tiềm năng — Bạn có thể tự động hóa kênh bán hàng của mình bằng chatbot để sơ tuyển khách hàng tiềm năng và hướng họ đến nhóm phù hợp để nuôi dưỡng thêm. Khả năng thu hút khách hàng ngay lập tức làm tăng số lượng khách hàng tiềm năng và tỷ lệ chuyển đổi.

1. Làm thế nào AI hội thoại có thể tự động hóa dịch vụ khách hàng

2. Trò chuyện Tự động và Trực tiếp: Tương lai của Dịch vụ Khách hàng sẽ như thế nào?

3. Chatbots là trợ lý y tế trong đại dịch COVID-19

4. Chatbot Vs. Trợ lý ảo thông minh - Sự khác biệt là gì & Tại sao lại quan tâm?

Có nhiều nền tảng nơi các nhà phát triển, nhà khoa học dữ liệu và kỹ sư máy học có thể tạo và duy trì chatbot như Hộp thoạiAmazon. Nhưng mục tiêu của tôi trong bài viết này là chỉ cho bạn cách tạo một chatbot từ đầu để giúp bạn hiểu các khái niệm về Mạng chuyển tiếp nguồn cấp dữ liệu để xử lý ngôn ngữ tự nhiên.

Băt đâu nao!

Bạn có thể dễ dàng tìm thấy một mã hoàn chỉnh trong Repo GitHub.

Đây là một kế hoạch ngắn mà tôi muốn làm theo để xây dựng một mô hình.

  1. Lý thuyết + khái niệm NLP (Stemming, Tokenization, túi từ)
  2. Tạo dữ liệu đào tạo
  3. Mô hình và đào tạo PyTorch
  4. Lưu/tải mô hình và triển khai trò chuyện

Chúng tôi sẽ xây dựng chatbot cho các nhu cầu của Nhà cung cấp Cà phê và Trà để xử lý các câu hỏi đơn giản về giờ hoạt động, các tùy chọn đặt chỗ, v.v.

Một khung chatbot cần một cấu trúc trong đó ý định đàm thoại được xác định. Một cách rõ ràng để làm điều này là với một tệp JSON, như thế này.

Ý định của Chatbot

Mỗi mục đích đàm thoại chứa:

  • a tag (tên riêng)
  • mô hình (mẫu câu cho trình phân loại văn bản mạng thần kinh của chúng tôi)
  • phản ứng (một sẽ được sử dụng như một phản ứng)

Vì vậy, đường dẫn NLP của chúng tôi trông như thế này

  • Token hóa
  • Hạ + gốc
  • Loại trừ các ký tự dấu câu
  • túi từ

Ta tạo một danh sách các tài liệu (các câu), mỗi câu là một danh sách các từ gốc và mỗi tài liệu được liên kết với một ý định (một lớp). Mã đầy đủ là trong tập tin này.

Sau đó, chúng ta cần thiết lập dữ liệu huấn luyện và siêu tham số.

Sau tất cả các bước tiền xử lý cần thiết, chúng tôi tạo một model.py tệp để xác định Mạng thần kinh FeedForward.

Mạng thần kinh Feedforward là mạng lưới thần kinh nhân tạo nơi các kết nối giữa các đơn vị không tạo thành một chu kỳ. Mạng thần kinh Feedforward là loại mạng thần kinh nhân tạo đầu tiên được phát minh và đơn giản hơn so với đối tác của chúng, mạng nơron tái phát. Chúng được gọi là cho ăn bởi vì thông tin chỉ di chuyển về phía trước trong mạng (không có vòng lặp), đầu tiên thông qua các nút đầu vào, sau đó thông qua nút ẩn (nếu có) và cuối cùng thông qua các nút đầu ra.

Hãy cẩn thận! Cuối cùng, chúng tôi không cần chức năng kích hoạt vì sau này chúng tôi sẽ sử dụng mất entropy chéo và nó sẽ tự động áp dụng chức năng kích hoạt cho chúng tôi.

Tại sao chúng tôi sử dụng ReLU?

Chúng đơn giản, tính toán nhanh và không bị giảm độ dốc, giống như các hàm sigmoid (logistic, tanh, erf, v.v.). Tính đơn giản của việc triển khai khiến chúng phù hợp để sử dụng trên GPU, vốn rất phổ biến hiện nay do được tối ưu hóa cho hoạt động ma trận (cũng cần thiết cho đồ họa 3D).

Sau khi xác định Tổn thất CrossEntropy và Adam, chúng tôi triển khai bước lùi và tối ưu hóa.

Tất cả những dòng này có ý nghĩa gì?

Chúng tôi đặt zero_grad() thành trình tối ưu hóa vì trong PyTorch, đối với mỗi lô nhỏ trong giai đoạn đào tạo, chúng tôi cần đặt rõ ràng độ dốc thành XNUMX trước khi bắt đầu thực hiện lan truyền ngược (nghĩa là cập nhật Trọng số và độ lệch) vì PyTorch tích lũy độ dốc trên các đường lùi tiếp theo.

Gọi .backward() nhiều lần sẽ tích lũy độ dốc (bằng phép cộng) cho từng tham số. Đây là lý do tại sao bạn nên gọi trình tối ưu hóa.zero_grad() sau mỗi cuộc gọi .step(). Lưu ý rằng sau lệnh gọi .backward đầu tiên, lệnh gọi thứ hai chỉ có thể thực hiện được sau khi bạn đã thực hiện một lệnh chuyển tiếp khác.

trình tối ưu hóa.step đang thực hiện cập nhật tham số dựa trên độ dốc hiện tại (được lưu trữ trong thuộc tính .grad của tham số) và quy tắc cập nhật.

Cuối cùng, sau khi chạy tập lệnh train.py, chúng tôi đã nhận được một kết quả tuyệt vời!

Và trong phần cuối cùng, chúng ta cần lưu mô hình của mình. Đây là cách tôi đã làm nó một cách dễ dàng.

Tôi quyết định tiến xa hơn và tạo ra hình ảnh trực quan tuyệt vời này của ChatBot.

Tất cả các tập lệnh HTML, CSS và JavaScript của tôi, bạn sẽ tìm thấy trong repo GitHub của tôi.

Chúc các bạn luôn vui vẻ!

Bây giờ, như bạn đã biết chatbot là gì và công nghệ bot quan trọng như thế nào đối với bất kỳ loại hình kinh doanh nào. Bạn chắc chắn sẽ đồng ý rằng các bot đã thay đổi mạnh mẽ cách các doanh nghiệp tương tác với khách hàng của họ.

Các công nghệ Chatbot sẽ trở thành một phần quan trọng trong chiến lược tương tác với khách hàng trong tương lai. Các bot trong tương lai gần sẽ phát triển để nâng cao khả năng của con người và các tác nhân của con người để trở nên sáng tạo hơn, trong việc xử lý các hoạt động chiến lược.

Source: https://chatbotslife.com/nlp-based-chatbot-in-pytorch-bonus-flask-and-javascript-deployment-474c4e59ceff?source=rss—-a49517e4c30b—4

Dấu thời gian:

Thêm từ Trò chuyện cuộc sống