2016-06-06 12 views
5

Câu hỏi của tôi liên quan đến dự án tôi vừa bắt đầu làm việc và đó là ChatBot.Đặt vé xem phim với ChatBot

Bot tôi muốn xây dựng có nhiệm vụ khá đơn giản. Nó phải tự động hóa quá trình mua vé xem phim. Đây là miền khá gần và bot có tất cả quyền truy cập cần thiết vào cơ sở dữ liệu điện ảnh. Tất nhiên nó là okay cho bot để trả lời như "Tôi không biết" nếu tin nhắn người dùng không liên quan đến quá trình đặt vé xem phim.

Tôi đã tạo bản trình diễn đơn giản chỉ để hiển thị cho một vài người và xem họ có quan tâm đến một sản phẩm như vậy hay không. Bản demo sử dụng phương pháp DFA đơn giản và một số văn bản dễ dàng khớp với gốc. Tôi đã tấn công nó trong một ngày và hóa ra người dùng đã rất ấn tượng rằng họ có thể đặt mua vé thành công mà họ muốn. (Bản demo sử dụng kết nối tới cơ sở dữ liệu điện ảnh để cung cấp cho người dùng tất cả thông tin cần thiết để đặt mua vé mà họ mong muốn).

Mục tiêu hiện tại của tôi là tạo phiên bản tiếp theo, phiên bản nâng cao hơn, đặc biệt là về hiểu biết ngôn ngữ tự nhiên. Ví dụ: phiên bản demo yêu cầu người dùng chỉ cung cấp một thông tin trong một tin nhắn duy nhất và không công nhận liệu họ có cung cấp thêm thông tin có liên quan (tiêu đề phim và thời gian chẳng hạn) hay không. Tôi đọc rằng một kỹ thuật hữu ích ở đây được gọi là "Ngữ nghĩa khung và khe", và nó có vẻ hứa hẹn, nhưng tôi đã không tìm thấy bất kỳ chi tiết nào về cách sử dụng phương pháp này.

Hơn nữa, tôi không biết phương pháp nào là tốt nhất để cải thiện Hiểu ngôn ngữ tự nhiên. Đối với hầu hết các phần, tôi xem xét:

  1. Sử dụng kỹ thuật NLP "chuẩn" để hiểu rõ hơn về thông điệp người dùng. Ví dụ, cơ sở dữ liệu đồng nghĩa, sửa lỗi chính tả, một phần của thẻ lời nói, đào tạo một số phân loại dựa trên thống kê để nắm bắt các điểm tương đồng và quan hệ khác giữa các từ (hoặc giữa toàn bộ câu nếu có thể?), V.v.
  2. Sử dụng AIML để lập mô hình luồng hội thoại . Tôi không chắc liệu bạn có nên sử dụng AIML trong miền đóng như vậy hay không. Tôi chưa bao giờ sử dụng nó, vì vậy đó là lý do tôi yêu cầu.
  3. Sử dụng cách tiếp cận "hiện đại" hơn và sử dụng mạng thần kinh để huấn luyện một trình phân loại cho phân loại thư của người dùng. Tuy nhiên, có thể yêu cầu nhiều dữ liệu được dán nhãn
  4. Bất kỳ phương pháp nào khác mà tôi không biết?

Phương pháp nào phù hợp nhất với mục tiêu của tôi?

Bạn có biết nơi tôi có thể tìm thêm tài nguyên về “Chi tiết ngữ nghĩa khung và khe” hoạt động như thế nào? Tôi đang đề cập đến điều này PDF from Stanford khi nói về cách tiếp cận khung và khe.

+0

Bản sao của http://datascience.stackexchange.com/q/12095/8820 –

+0

Nếu có thể, vui lòng sửa đổi câu hỏi thành không dựa trên ý kiến. – Tor

Trả lời

0

Câu hỏi khá rộng, nhưng dưới đây là một số suy nghĩ và lời khuyên thực tế, dựa trên trải nghiệm với NLP và học máy dựa trên văn bản trong các miền vấn đề tương tự.

Tôi giả định rằng mặc dù đây là phiên bản "nâng cao hơn" của chatbot của bạn, phạm vi công việc có khả năng thực hiện được trong đó khá hạn chế. Theo tôi, đây là một yếu tố rất quan trọng vì các phương pháp khác nhau khác nhau về số lượng và loại nỗ lực thủ công cần thiết để chúng hoạt động, và các kỹ thuật tiên tiến có thể nằm ngoài tầm với của chúng tôi.

Nói chung, hai phương pháp chính cần xem xét sẽ dựa trên quy tắc và thống kê.Đầu tiên theo truyền thống tập trung nhiều hơn vào kết hợp mẫu, và trong thiết lập bạn mô tả (nỗ lực hạn chế có thể được đầu tư), sẽ liên quan đến việc xử lý thủ công các quy tắc và/hoặc mẫu. Một ví dụ cho cách tiếp cận này sẽ sử dụng một tập hợp mẫu (nhưng lớn) đã đóng để phù hợp với đầu vào của người dùng (ví dụ: sử dụng cụm từ thông dụng). Cách tiếp cận này thường có một "trần kính" về hiệu suất, nhưng có thể dẫn đến kết quả khá tốt tương đối nhanh.

Cách tiếp cận thống kê giúp tiết kiệm một số dữ liệu và cho phép trích xuất các quy tắc từ nó, tập trung nỗ lực thủ công trong việc thu thập và gắn nhãn một bộ huấn luyện tốt. Theo ý kiến ​​của tôi, để có được "đủ tốt", lượng dữ liệu bạn cần có thể rất lớn, trừ khi bạn có thể dễ dàng thu thập một lượng lớn dữ liệu được dán nhãn một phần.

Thực tế Tôi sẽ đề xuất xem xét phương pháp kết hợp ở đây. Sử dụng một số công cụ tổng hợp thống kê dựa trên ML để trích xuất thông tin từ đầu vào của người dùng, sau đó áp dụng các quy tắc/mẫu được tạo thủ công. Ví dụ: bạn có thể sử dụng Parsey McParseface của Google để thực hiện phân tích cú pháp, sau đó áp dụng một số công cụ quy tắc trên kết quả, ví dụ: khớp với động từ đối với danh sách các hành động có thể như "mua", sử dụng các mối quan hệ ngữ pháp được trích xuất để tìm các ứng cử viên cho tên phim, v.v. Điều này sẽ giúp bạn có kết quả khá tốt một cách nhanh chóng, vì sức mạnh của trình phân tích cú pháp sẽ cho phép "hiểu" thậm chí các câu phức tạp và có khả năng gây nhầm lẫn.

Tôi cũng khuyên bạn nên hoãn một số yếu tố mà bạn nghĩ đến, như sửa lỗi chính tả và thậm chí là cả từ và đồng nghĩa DB - vì vấn đề tương đối bị đóng, bạn có thể có ROI tốt hơn từ đầu tư vào quy tắc/tạo khuôn mẫu và tạo quy tắc thủ công. Lời khuyên này cũng áp dụng cho mô hình hóa rõ ràng luồng lưu lượng cuộc trò chuyện.

+0

Cảm ơn câu trả lời. Thật không may, tôi không thể sử dụng Parsey McParsefase, bởi vì bot được nhắm mục tiêu không cho ngôn ngữ tiếng Anh. Tuy nhiên, vì tôi cho rằng tin nhắn của người dùng khá ngắn, tôi nghĩ rằng xem xét tất cả các phân vùng có thể của một tin nhắn thành các cụm từ và cho mỗi cụm từ đó cố gắng phân loại nó thành "tiêu đề phim", "datetime", "loại phim ", và các ý định khác có thể hữu ích. Hơn nữa, tôi xem xét một số loại phân loại động từ thành các lớp tương ứng với các hành động để thực hiện. – pkacprzak

+0

Có các trình phân tích cú pháp cú pháp cho hầu hết các ngôn ngữ, ví dụ: Trình phân tích cú pháp của Stanford (http://nlp.stanford.edu/software/lex-parser.shtml) có các mô hình cho tiếng Trung, tiếng Đức, tiếng Ả Rập, tiếng Ý và hơn thế nữa, vì vậy cách tiếp cận nói chung vẫn nên khả thi (ngôn ngữ nào) bạn nhắm mục tiêu?). Từ kinh nghiệm của tôi, đầu vào của người dùng, ngay cả trong miền đóng, có thể cực kỳ biến, tôi sẽ suy nghĩ hai lần về việc đi với phương pháp không có cấu trúc mà bạn xem xét – etov

Các vấn đề liên quan