Helpex - Trao đổi & giúp đỡ Đăng nhập

Xây dựng một Chatbot: Phân tích và hạn chế của các nền tảng hiện đại

Ngành công nghiệp chatbot vẫn còn trong những ngày đầu, nhưng đang phát triển rất nhanh. Những gì thoạt đầu có thể trông giống như một mốt nhất thời hoặc một chiến lược tiếp thị, đang trở thành một nhu cầu thực sự. Bạn có muốn biết những bộ phim đang thịnh hành trong khu vực của bạn, các rạp chiếu phim gần đó hoặc có thể xem một đoạn giới thiệu không? Bạn có thể sử dụng bot Fandango . Bạn có phải là một người hâm mộ NBA đang cố gắng nhận các điểm nổi bật và cập nhật của trò chơi không? Có lẽ bạn có thể thử bot của NBA . Và những gì về thức ăn hoặc quần áo? Bạn đã thấy bao nhiêu thương hiệu hiện có chatbot cho phép bạn dễ dàng đặt đồ ăn hoặc khám phá quần áo để mua sắm trực tuyến chưa?

Không thể phủ nhận động cơ tiếp thị, nhưng nếu chatbot đáp ứng được kỳ vọng cao của người dùng, chúng sẽ trở thành công cụ không thể thiếu cho nhiều trường hợp sử dụng. Tầm quan trọng mà những gã khổng lồ công nghệ như Google, Facebook, Microsoft, IBM và Amazon dành cho chatbot là một dấu hiệu mạnh mẽ cho thấy công nghệ này sẽ đóng một vai trò quan trọng trong tương lai.

Để tạo ra một chatbot, hiện có rất nhiều nền tảngcông cụ đáng kinh ngạc , với các mức độ phức tạp, sức mạnh biểu đạt và khả năng tích hợp khác nhau. Giả sử bạn muốn phát triển một chatbot. Câu hỏi hàng triệu đô la là: trong số tất cả các nền tảng hiện có, nền tảng nào phù hợp với nhu cầu của tôi nhất?

Năm ngoái tại Tryolabs, chúng tôi đã làm việc rất nhiều về chatbot và chúng tôi phải đối mặt với câu hỏi này mỗi khi một dự án mới bắt đầu. Trong bài đăng này, chúng tôi sẽ cung cấp cho bạn tổng quan về một số nền tảng mà chúng tôi đã nghiên cứu và thử nghiệm. Bạn sẽ thấy rằng, tùy thuộc vào trường hợp sử dụng được chatbot giải quyết, một số nền tảng phù hợp hơn những nền tảng khác. Và vì tất cả những thứ lấp lánh đó không phải là vàng, chúng ta cũng sẽ thấy rằng vẫn còn chỗ để cải thiện và đôi khi các thành phần xử lý ngôn ngữ tự nhiên tùy chỉnh (NLP) và học máy (ML) là cần thiết để đạt được kết quả mong muốn.

Kiến trúc Chatbot chung

Điều đầu tiên cần hiểu là cách một chatbot hoạt động bên trong. Về cơ bản, với một đầu vào của người dùng, một chatbot sẽ trả về một phản hồi. Nguyên tắc thì đơn giản, nhưng trong thực tế mọi thứ không dễ dàng như vậy.

Hiểu người dùng nói gì

Giả sử rằng bạn đang giao dịch với một chatbot du lịch và bạn hỏi những điều sau:

Tôi muốn bay đến Venice, Ý từ Paris, Pháp, vào ngày 31 tháng 1

Đầu tiên, chatbot cần hiểu đầu vào . Có hai kỹ thuật chính để đạt được điều này: đối sánh mẫuphân loại mục đích .

Một cách tiếp cận mô hình phù hợp với nhu cầu một danh sách các mẫu đầu vào càng tốt. Đầu vào ở trên có thể khớp với một mẫu chẳng hạn như:

I want to fly to <CITY> from <CITY> on <DATE>


Điểm tốt của cách tiếp cận này là con người có thể đọc được các mẫu, do đó, giai đoạn mô hình hóa đầu vào có thể dễ dàng bằng cách nào đó. Vấn đề là các mẫu được xây dựng theo cách thủ công: nó không phải là một nhiệm vụ tầm thường và nó không mở rộng quy mô trong một số trường hợp sử dụng thực tế.

Một cách tiếp cận phân loại ý định dựa vào kỹ thuật máy học. Bạn cần một tập hợp các ví dụ để đào tạo một bộ phân loại sẽ chọn, do người dùng nhập, trong số tất cả các ý định có thể có (ví dụ: mua vé, kiểm tra tình trạng chuyến bay, lấy thông tin cụ thể, v.v.).

Trong mọi trường hợp, ví dụ ở trên, khái niệm về thành phốngày tháng là rất quan trọng để hiểu đầu vào và trả lại câu trả lời thích hợp. Chatbot có thể sẽ thực hiện tìm kiếm trong cơ sở dữ liệu (hoặc truy vấn trực tuyến) để tìm kiếm vé từ Venice đến Paris vào ngày nhất định. Do đó, chatbot cần thực hiện trích xuất thông tin trước đó trên đầu vào để trích xuất các thực thể quan trọng: địa điểm, hãng hàng không, sân bay, ngày tháng, v.v.

Phân loại đầu vào và trích xuất thông tin từ đó là hai khái niệm chính mà bạn phải ghi nhớ.

Phản hồi người dùng

Khi chatbot hiểu người dùng nói gì, nó có thể chọn hoặc tạo phản hồi, dựa trên thông tin đầu vào hiện tại và bối cảnh của cuộc trò chuyện.

Phản hồi tĩnh

Cách đơn giản nhất là có một phản hồi tĩnh, cuối cùng là một danh sách các biến thể, cho mỗi đầu vào của người dùng. Những phản ứng tĩnh có thể là mẫu, chẳng hạn như The flight time is <ft> hours, nơi <ft>là một biến tính một cách nhanh chóng bởi các chatbot.

Phản hồi động

Một cách tiếp cận khác sẽ là sử dụng các tài nguyên, chẳng hạn như cơ sở kiến ​​thức, để có được danh sách các câu trả lời tiềm năng, sau đó cho điểm chúng để chọn câu trả lời tốt hơn. Điều này đặc biệt thích hợp nếu chatbot của bạn hoạt động chủ yếu giống như một hệ thống trả lời câu hỏi.

Câu trả lời đã tạo

Nếu bạn có một kho dữ liệu khổng lồ về các ví dụ về các cuộc hội thoại, bạn có thể sử dụng kỹ thuật học sâu để đào tạo một mô hình tổng quát, được cung cấp một đầu vào, sẽ tạo ra câu trả lời. Bạn sẽ cần hàng triệu ví dụ để đạt được chất lượng tốt và đôi khi kết quả sẽ không như mong đợi, nhưng sẽ rất thú vị và thú vị khi thử nghiệm cách tiếp cận và xem điều gì sẽ xảy ra. Đây là một chủ đề nghiên cứu liên tục, vô cùng hứa hẹn và thú vị.

Đừng quên bối cảnh của cuộc trò chuyện

Đầu vào hiện tại không đủ để đưa ra câu trả lời chính xác cho người dùng. Để mô hình hóa và triển khai logic của chatbot, khái niệm về ngữ cảnh là rất quan trọng. Ví dụ: nếu người dùng nhập đầu vào sau:

Tôi có thể mang theo bao nhiêu túi?

Chatbot chỉ có thể trả lời câu hỏi nếu nó biết chi tiết của vé. Thông thường, thông tin này trước đó đã được lưu trữ trong ngữ cảnh của cuộc hội thoại. Tất nhiên, mỗi chatbot phải mô hình hóa khái niệm ngữ cảnh của riêng mình và quyết định thông tin quan trọng cần nhớ.

Nền tảng hiện có

Trước khi có thể chọn một nền tảng, bạn phải biết loại chatbot bạn đang cố gắng xây dựng. Nó là một chatbot định hướng mục tiêu, trò chuyện hay định hướng mục tiêu với khả năng đàm thoại mạnh mẽ?

Một mục tiêu theo định hướng hoặc giao dịch chatbot là loại thường gặp nhất của chatbot cho doanh nghiệp. Nó giúp người dùng đạt được các nhiệm vụ như mua vé, đặt đồ ăn hoặc nhận thông tin cụ thể.

Một chatbot trò chuyện tập trung vào việc trò chuyện với người dùng. Nó không cần phải hiểu sâu những gì người dùng nói và không cần phải nhớ tất cả bối cảnh của cuộc trò chuyện, nó chỉ cần mô phỏng một cuộc trò chuyện. Chatbots trò chuyện hữu ích cho điều gì? Chà, giải trí có thể là một lý do, nhưng chẳng hạn, bạn có thể tạo một chatbot thay thế Câu hỏi thường gặp cổ điển và cung cấp trải nghiệm năng động hơn cho người dùng.

Sau khi làm rõ điều này, chúng tôi có thể phân biệt ba họ trong số các nền tảng hiện có:

  • Không có nền tảng lập trình.
  • Nền tảng hướng đến cuộc hội thoại.
  • Nền tảng được hỗ trợ bởi những gã khổng lồ công nghệ.

Đây không phải là một cách phân loại chính thức mà là một cách nhóm hoặc phân loại các nền tảng.

Không có nền tảng lập trình

Chúng là những nền tảng hướng tới người dùng phi kỹ thuật. Thông thường, có thể dễ dàng viết mã một chatbot mà không cần có kỹ năng lập trình và không cần có chuyên môn về học máy hoặc xử lý ngôn ngữ tự nhiên. Ý tưởng chính là người dùng không phải lo lắng về các chi tiết kỹ thuật.

Có rất nhiều nền tảng lập trình không có và sẽ không thể liệt kê hết chúng ở đây. Tại Tryolabs chúng tôi đã thử nghiệm một số trong số họ có một hương vị của những ưu và khuyết điểm của họ: Chatfuel , ManyChat , Octane Ái , Massively , và Motion.ai .

Điều đầu tiên phải nói là tất cả đều hướng tới nhiệm vụ, ví dụ phổ biến nhất được trình bày là “đặt một chiếc bánh pizza”. Chúng tôi nhận thấy rằng, ngay cả khi thoạt nhìn chúng có vẻ rất giống nhau, vẫn có những điểm khác biệt quan trọng về độ trưởng thành, khả năng sử dụng GUI và khả năng xử lý ngôn ngữ tự nhiên.

Ưu điểm

  • Bạn có thể phát triển một chatbot rất nhanh chóng.
  • Họ có một đường cong học tập thấp.
  • Chúng lý tưởng cho các bot đơn giản.

Nhược điểm

  • Có rất nhiều nền tảng, với các mức độ trưởng thành và ổn định khác nhau.
  • Đôi khi các GUI không dễ hiểu và khi logic chatbot trở nên phức tạp hơn, nó trở nên khó xử lý.
  • Họ có rất ít hoặc không có khả năng xử lý ngôn ngữ tự nhiên. Ví dụ, một số nền tảng không thể thực hiện trích xuất thông tin. Do đó, khi đưa ra một cụm từ chẳng hạn như “Tôi đang ở Boston”, họ không thể trích xuất thực tế là thành phố Boston (thực thể địa điểm) xảy ra.
  • Chúng dường như không thích hợp với các bot phức tạp.

Phần kết luận

Theo quan điểm của chúng tôi, không có nền tảng lập trình nào thiếu sức mạnh cho các dự án thương mại quy mô lớn. Các cuộc hội thoại không thể rất phức tạp và thường là không thể tích hợp các nguồn lực bên ngoài, chẳng hạn như các thành phần cụ thể NLP và ML.

Tuy nhiên, chúng thực sự là nền tảng tốt cho các dự án quy mô nhỏ, chẳng hạn như để nhanh chóng thêm chức năng chatbot vào trang Facebook. Vì vậy, bạn có thể muốn thử họ và xem họ có thể làm gì cho bạn.

Nền tảng hội thoại

Mục tiêu chính ở đây là cho phép người dùng trò chuyện với bot mà không cần xem xét kịch bản theo định hướng nhiệm vụ. Các nền tảng này thường sử dụng các ngôn ngữ đặc tả như AIML (Ngôn ngữ đánh dấu trí tuệ nhân tạo) để mô hình hóa các tương tác với người dùng. Ví dụ dưới đây cho thấy cách viết mã các tương tác với AIML.

<aiml version="1.0.1" encoding="UTF-8">
   <category>
      <pattern>MY DOGS NAME IS *</pattern>
      <template>
         That is interesting that you have a dog named <set name="dog"><star/></set>
      </template>
   </category>
   <category>
      <pattern>WHAT IS MY DOGS NAME</pattern>
      <template>
         Your dog's name is <get name="dog"/>.
      </template>
   </category>
</aiml>


Khi người dùng nói “tên con chó của tôi là Max”, chatbot sẽ nhận ra mẫu đó và trích xuất tên con chó. Cần phải lưu ý rằng việc trích xuất bằng cách so khớp văn bản này rất đơn giản nếu chúng ta so sánh nó với sức mạnh của việc trích xuất thông tin NLP. Chatbot sẽ trả lời với "Thật thú vị khi bạn có một con chó tên là Max". Sau đó, nếu người dùng hỏi tên con chó của mình, chatbot sẽ có thể trả lời "Tên con chó của bạn là Max".

Ví dụ nổi tiếng nhất về loại nền tảng này là Pandorabots .

Ưu điểm

  • AIML là một tiêu chuẩn.
  • Nó rất linh hoạt để tạo ra các cuộc trò chuyện.

Nhược điểm

  • Có thể khó mở rộng quy mô nếu các mẫu được xây dựng theo cách thủ công.
  • Khả năng khai thác thông tin bị hạn chế.
  • Chúng không thực sự thích hợp cho các chương trình định hướng nhiệm vụ.

Phần kết luận

Bạn sẽ không sử dụng các nền tảng này để xây dựng một chatbot để đặt đồ ăn hoặc mua vé, nhưng bạn có thể thấy rằng chúng rất thú vị khi nhanh chóng mô hình một chatbot giải trí hoặc ví dụ: một chatbot thay thế Câu hỏi thường gặp và mang lại trải nghiệm người dùng tốt hơn.

Nền tảng được hỗ trợ bởi những gã khổng lồ công nghệ

Những nền tảng này được phát triển bởi những gã khổng lồ công nghệ và bằng cách nào đó, chúng đã đại diện cho một tiêu chuẩn hoặc ít nhất là đang trên đường trở thành một tiêu chuẩn:

Họ cố gắng có một đường cong học tập thấp, đồng thời, một sức mạnh biểu đạt mạnh mẽ.

Vì nhiều lý do khác nhau, tại Tryolabs, chúng tôi đã tập trung vào Api.ai và Wit.ai. Ấn tượng của chúng tôi là LUIS và Watson đề xuất một khuôn khổ phức tạp hơn một chút (và cuối cùng là mạnh hơn) so với những gì chúng tôi cần. Về Amazon Lex, chúng tôi không có quyền truy cập vào Bản xem trước có giới hạn tại thời điểm viết bài này.

Chúng tôi sẽ không so sánh toàn bộ Api.ai và Wit.ai hay đi sâu vào từng nền tảng, mà là cung cấp cho bạn phản hồi về kinh nghiệm của chúng tôi. Khi bạn lập mô hình một chatbot, bạn sẽ hiểu ngay rằng một trong những phần khó nhất, nếu không muốn nói là khó nhất, là mô hình hóa luồng hội thoại. Chính điều này xác định, về cơ bản, hành vi của chatbot. Hãy xem Api.ai và Wit.ai giải quyết khía cạnh quan trọng này như thế nào.

Api.ai

Hành vi Chatbot

IntentsContexts là những khái niệm chính để mô hình hóa hành vi của một chatbot với Api.ai. Ý định tạo ra các liên kết giữa những gì người dùng nói và hành động nên được thực hiện bởi bot. Contexts là các giá trị chuỗi, hữu ích để phân biệt các yêu cầu có thể có ý nghĩa khác nhau tùy thuộc vào các yêu cầu trước đó.

Về cơ bản, khi Api.ai nhận được yêu cầu của người dùng, trước tiên nó được phân loại để xác định xem nó có phù hợp với một mục đích đã biết hay không. Api.ai đề xuất “Ý định dự phòng mặc định” để giải quyết các yêu cầu không phù hợp với bất kỳ ý định nào của người dùng.

Giao diện Api.ai


Bạn có thể hạn chế việc đối sánh một ý định bằng cách chỉ định danh sách các ngữ cảnh phải hoạt động. Đồng thời, sự phù hợp của một ý định có thể tạo và xóa bối cảnh.

Trong ví dụ trên, khi người dùng nói "Tôi muốn gọi một chiếc bánh pizza lớn", yêu cầu này khớp với mục đích được đặt tên order, có thể tạo ra một ngữ cảnh được đặt tên ordering. Khi người dùng đã chỉ định loại bánh pizza, kích thước, v.v., bạn có thể tạo ngữ cảnh có tên pizza_selected(và giữ cho orderingngữ cảnh tồn tại). Sau đó, nếu người dùng nói "Thời gian giao hàng là bao nhiêu?" bot có thể khớp với một ý định được đặt tên get_order_infochỉ khi ngữ cảnh được đặt tên pizza_selectedtồn tại.

Cơ chế ý định và ngữ cảnh này cho phép tạo ra các máy trạng thái mô hình hóa các luồng lớn và phức tạp. Tuy nhiên, bạn không thể mô hình hóa rằng một ý định có thể được so khớp chỉ khi một ngữ cảnh nhất định không có mặt. Đây là một hạn chế hiện tại của Api.ai và chúng tôi nghĩ rằng rất có thể họ sẽ giải quyết vấn đề này.

Thực thể

Bạn có thể xác định các thực thể của riêng mình và sử dụng những thực thể do nền tảng đề xuất. Trong ví dụ “đặt bánh pizza” ở trên, loạikích thước của bánh pizza là các thực thể do người dùng xác định, trong khi địa chỉ và số lượng là các thực thể hệ thống.

Khả năng lấp đầy khe

Đây là điểm chính của Api.ai, đồng thời mang lại sự linh hoạt và sức mạnh. Việc điền vào vị trí cho phép bạn chỉ ra, đối với một mục đích nhất định, các trường đóng vai trò gì và chúng có bắt buộc hay không.

Điều này thật tuyệt vì bạn không phải xử lý thông tin bị thiếu vì nó được thực hiện ở phía Api.ai. Trong ví dụ trên, Api.ai sẽ yêu cầu từng trường bắt buộc cho đến khi người dùng điền chúng: loại và kích cỡ bánh pizza, địa chỉ và thời gian giao hàng. Như bạn có thể thấy, trường “số” có thể là một phần của mục đích nhưng nó không bắt buộc.

Mã hóa kích thước máy chủ

Tất nhiên, để xác định logic đầy đủ của chatbot của bạn, bạn sẽ cần thêm một số mã tùy chỉnh ở phía máy chủ. Api.ai đề xuất tích hợp webhook thực sự làm cho quá trình trở nên rất đơn giản. Về cơ bản, Api.ai chuyển thông tin từ một mục đích phù hợp vào một dịch vụ web và nhận được kết quả từ nó. Một tính năng rất hữu ích là kết quả được gửi đến Api.ai có thể thay đổi ngữ cảnh và phản hồi của chatbot, cả ở cấp độ văn bản và giọng nói, vì vậy bạn không chỉ có thể triển khai logic phía máy chủ mà còn có thể sửa đổi, ở một mức độ nào đó, logic bên chatbot. Bạn có thể quyết định ý định nào sẽ gọi webhook và liệu webhook có được gọi trong quá trình lấp đầy vị trí hay không. Sự kết hợp này là một công cụ mạnh mẽ và linh hoạt để tùy chỉnh hành vi chatbot của bạn.

Ưu điểm

  • Api.ai đề xuất một cách mạnh mẽ để lập mô hình các luồng lớn và phức tạp bằng cách sử dụng Intents và Contexts.
  • Slot-fill là một tính năng tích hợp. Do đó, một phần logic tốt có thể được giải quyết bởi chatbot, làm giảm mã hóa phía máy chủ.
  • Tên miền có sẵn, đó là các thông số kỹ thuật có thể đối phó với một số trường hợp sử dụng và ứng dụng phổ biến (ví dụ như trò chuyện nhỏ, thông thái, lịch trình chuyến bay, lời nhắc…).
  • Một phần “Đào tạo” (trong phiên bản beta) được đề xuất để đào tạo chatbot với các ví dụ.
  • Tích hợp một cú nhấp chuột với một số nền tảng: Facebook Messenger, Slack, Twitter, Telegram…

Nhược điểm

  • Không thể chặn đối sánh ý định nếu có ngữ cảnh.
  • Phần đào tạo vẫn đang trong giai đoạn thử nghiệm.

Wit.ai

Hành vi Chatbot

Câu chuyện là khái niệm chính để mô hình hóa hành vi của một chatbot với Wit.ai. Mỗi câu chuyện đại diện cho một ví dụ về một cuộc trò chuyện có thể xảy ra. Cần lưu ý rằng "ý định" không còn là một khái niệm mà là một thực thể người dùng, không bắt buộc. Đây là một sự thay đổi có tác động lớn đến Wit.ai, được thúc đẩy bởi thực tế là một chatbot phức tạp cần rất nhiều ý định, theo một cách nào đó, có thể được nhóm thành các câu chuyện.

Các nhà phát triển bot về cơ bản dạy Wit.ai bằng ví dụ. Ý tưởng phụ là khi người dùng viết các yêu cầu “tương tự”, Wit.ai sẽ xử lý yêu cầu, trích xuất các thực thể và áp dụng logic do nhà phát triển xác định.

Giao diện Wit.ai


Một câu chuyện có thể được xem như một biểu đồ về ý định của người dùng. Bạn có thể thêm các nhánh được kích hoạt dựa trên các điều kiện, chẳng hạn như sự tồn tại hoặc không của các giá trị biến cụ thể, được trích xuất từ ​​đầu vào của người dùng. Điều này cho phép bạn xác định luồng hội thoại. Hơn nữa, bạn có một cơ chế đánh dấu , được sử dụng để chuyển giữa các ý định và cũng như giữa các câu chuyện.

Để tương tác với phía máy chủ, bạn có các lệnh "Bot gửi", về cơ bản là các lệnh gọi đến các hàm. Một điểm rất thú vị là bạn có thể đặt vai trò của các thực thể trong một cụm từ. Ví dụ: trong “Tôi muốn bay đến Venice, Ý từ Paris, Pháp, vào ngày 31 tháng 1”, bạn có thể nói rằng thành phố đầu tiên là nơi khởi hành và thành phố thứ hai là điểm đến.

Thực thể

Wit.ai cho phép bạn xác định các thực thể của riêng mình hoặc sử dụng các thực thể được xác định trước.

Mã hóa kích thước máy chủ

Wit.ai đề xuất tích hợp webhook : nó chuyển thông tin cho mỗi lệnh “Bot gửi” vào một dịch vụ web và nhận kết quả từ đó. Ở phía máy chủ, bạn thường sẽ tạo hoặc mở rộng ngữ cảnh của cuộc trò chuyện. Kết quả được gửi đến Wit.ai có thể thêm, sửa đổi và xóa các biến ngữ cảnh được sử dụng ở phía chatbot.

Ưu điểm

  • Khái niệm về câu chuyện là mạnh mẽ.
  • Wit.ai cho phép điều khiển luồng hội thoại bằng cách sử dụng các nhánh và các điều kiện về hành động (ví dụ: chỉ hiển thị thông báo này nếu một số biến cụ thể được xác định).
  • Việc gán vai trò cho các thực thể giúp xử lý phía máy chủ.
  • Một phần "Hiểu" được đề xuất để đào tạo chatbot với các ví dụ.
  • Một “Hộp thư đến” tồn tại, nơi các yêu cầu mà chatbot không thể xử lý được liệt kê, vì vậy các nhà phát triển có thể dạy cho bot.

Nhược điểm

  • Truyện đang trong giai đoạn thử nghiệm.
  • Ngay cả khi câu chuyện là một khái niệm mạnh mẽ, vẫn có những trường hợp khó kiểm soát luồng của cuộc trò chuyện và bot có xu hướng hiểu sai yêu cầu của người dùng.

Hạn chế hiện tại: Cải thiện với NLP và ML

Như chúng ta đã thấy, để tạo mô hình một chatbot, chúng ta cần cung cấp logic và các nguồn ngôn ngữ, chủ yếu là các cụm từ đầu vào và đầu ra và các thực thể. Điều này đặc biệt đúng với Api.ai và Wit.ai. Đối với các chatbot nhỏ, điều này không thành vấn đề, nhưng nếu bạn đang có kế hoạch xử lý một thuật ngữ lớn và nhiều biến thể cho các cụm từ, bạn nên cân nhắc sử dụng NLP và ML. Chúng tôi đề cập đến một số ví dụ mà chúng có thể hữu ích.

Dạng số ít và số nhiều

Nếu bạn muốn chatbot của mình trích xuất “pizza” dưới dạng một thực thể, thì việc xác định “pizza” là chưa đủ, bạn cần cung cấp cả “pizza”.

Api.ai có một tính năng được gọi là “mở rộng tự động” và Wit.ai có các thực thể “văn bản tự do”. Chúng là những cơ chế sẽ cố gắng bắt các mục mới, dựa trên ngữ cảnh của từ. Vì vậy, nếu bạn đã huấn luyện cho chatbot của mình những cụm từ như “Tôi muốn gọi một chiếc bánh pizza”, thì có khả năng nó sẽ hiểu rằng trong “Tôi muốn gọi 3 chiếc bánh pizza”, từ “bánh pizza” là một thực thể. Nhưng độ chính xác của tính năng này sẽ phụ thuộc vào quá trình đào tạo và bạn không thể chắc chắn về mức độ ồn mà nó mang lại.

Một giải pháp thay thế chắc chắn là cung cấp cho mỗi khái niệm dạng số ít và số nhiều. Bạn có thể tạo chúng bằng cách sử dụng các công cụ NLP được gọi là bộ chuyển đổi .

Từ đồng nghĩa, Siêu nghĩa và Từ trái nghĩa

Giả sử rằng người dùng yêu cầu một lon nước ngọt , nhưng chatbot của bạn chỉ biết các thuật ngữ cụ thể như coca-cola hoặc pepsi , đó là những từ trái nghĩa của soda. Các từ đồng nghĩa, từ đồng nghĩa và từ trái nghĩa có thể được xử lý bằng tiếng Anh vì có rất nhiều nguồn NLP, được gọi là từ điển đồng nghĩa và bản thể học, nhưng chúng thường dành cho ngôn ngữ chung. Do đó, coca-cola, một thuật ngữ miền rất cụ thể, khó có thể là một phần của loại tài nguyên này.

Bạn có thể cố gắng tìm một từ đồng nghĩa hiện có phù hợp với vấn đề của bạn hoặc tự xây dựng nó. Các tài nguyên do các chuyên gia miền xây dựng tuy tốn kém nhưng độ chính xác cao. Với Học máy, bạn có thể tạo các nguồn ngôn ngữ, đặc biệt là với các kỹ thuật Học sâu, có thể đủ tốt cho trường hợp sử dụng của bạn.

Phân tích cảm xúc

Bạn có muốn thêm một số mức độ phản ứng cảm xúc vào chatbot của mình không? Chà, bạn có thể thử thực hiện phân tích cảm xúc ở phía máy chủ để điều chỉnh các phản hồi do đó.

Tuy nhiên, nó có thể không phải là một nhiệm vụ dễ dàng nếu bạn đang sử dụng Api.ai hoặc Wit.ai. Nếu bạn muốn có một chatbot rất linh hoạt và phong phú, có lẽ bạn nên cân nhắc việc phát triển chatbot ngay từ đầu.

Kết luận / Suy nghĩ cuối cùng

Rõ ràng, chatbot đang là một xu hướng gia tăng và tại Tryolabs, chúng tôi đang chứng kiến ​​nhu cầu ngày càng tăng nhanh đối với chúng. Nếu được thực hiện đúng, kênh giao tiếp này với người dùng của bạn có thể tăng mức độ tương tác, mang lại trải nghiệm tốt hơn và cũng tiết kiệm chi phí. Tuy nhiên, làm cho chúng đúng không phải là tầm thường.

Hiện tại, có rất nhiều nền tảng có thể hỗ trợ bạn khi tạo một chatbot. Một số nền tảng này đã được xây dựng với các trường hợp sử dụng khác nhau, vì vậy rõ ràng là tùy thuộc vào trường hợp kinh doanh mà chatbot của bạn giải quyết, một số nền tảng có thể phù hợp hơn những nền tảng khác. Với mục đích giúp bạn chọn công cụ tốt nhất, chúng tôi đã xem xét một số điểm mạnh và điểm yếu của các dịch vụ hiện có để xây dựng chatbot.

Nếu bạn đang có kế hoạch xây dựng một chatbot phức tạp, bạn nên xem xét nghiêm túc các khía cạnh về tính ổn định, khả năng mở rộng và tính linh hoạt. Nếu bạn không chú ý đến sự phức tạp của ngôn ngữ con người, một cuộc trò chuyện có thể nhanh chóng đi chệch hướng. Bạn có thể được yêu cầu xây dựng giải pháp của riêng mình từ đầu hoặc sử dụng kết hợp một công cụ để giải quyết các vấn đề NLP chung (tức là Api.ai) cộng với logic phía máy chủ tùy chỉnh để có các tính năng mạnh mẽ hơn.

Nhìn chung, hệ sinh thái chatbot đang phát triển rất nhanh và các tính năng mới đang được phát hành mỗi ngày bởi rất nhiều nền tảng hiện có. Cho đến ngày nay, rõ ràng là khi cố gắng xây dựng một chatbot đầy tham vọng , có thể xử lý các cuộc trò chuyện phức tạp và thực hiện các hành động (tức là thanh toán), người ta không thể dựa 100% vào nền tảng và cần phát triển NLP tùy chỉnh. Những tiến bộ gần đây trong kỹ thuật Học sâu có thể sẽ giúp ích rất nhiều trong tương lai gần và chúng tôi rất mong đợi điều đó.

Bạn có bất kỳ câu hỏi / nhận xét nào liên quan đến việc xây dựng một chatbot không? Hãy chia sẻ chúng với chúng tôi trong phần bình luận.

4 hữu ích 0 bình luận 26k xem chia sẻ

Có thể bạn quan tâm

loading