Cách đào tạo một chatbot


10

Tôi muốn bắt đầu thử nghiệm với mạng lưới thần kinh và như một vấn đề về đồ chơi, tôi muốn đào tạo một người để trò chuyện, tức là thực hiện một bot trò chuyện như smartbot. Dù sao cũng không thông minh.

Tôi đã tìm xung quanh một số tài liệu và tôi tìm thấy nhiều hướng dẫn về các nhiệm vụ chung, nhưng ít về chủ đề cụ thể này. Một trong những tôi tìm thấy chỉ đưa ra kết quả mà không đưa ra cái nhìn sâu sắc về việc thực hiện. Những người đã làm, đã làm nó khá nông (trang tài liệu tenorflow trên seq2seq đang thiếu imho).

Bây giờ, tôi cảm thấy tôi có thể đã hiểu nguyên tắc ít nhiều nhưng tôi không chắc và tôi thậm chí không chắc bắt đầu như thế nào. Do đó tôi sẽ giải thích cách tôi sẽ giải quyết vấn đề và tôi muốn phản hồi về giải pháp này, cho tôi biết tôi đã nhầm lẫn ở đâu và có thể có bất kỳ liên kết nào đến các giải thích chi tiết và kiến ​​thức thực tế về quy trình.

  1. Bộ dữ liệu tôi sẽ sử dụng cho nhiệm vụ này là kết xuất của tất cả lịch sử trò chuyện trên facebook và whatsapp của tôi. Tôi không biết nó sẽ lớn như thế nào nhưng có thể vẫn chưa đủ lớn. Ngôn ngữ đích không phải là tiếng Anh, do đó tôi không biết nơi nào nhanh chóng thu thập các mẫu hội thoại có ý nghĩa.

  2. Tôi sẽ tạo ra một vectơ suy nghĩ trong mỗi câu. Vẫn không biết làm thế nào thực sự; Tôi tìm thấy một ví dụ hay cho word2vec trên trang web deeplearning4j, nhưng không có câu nào. Tôi đã hiểu cách các vectơ từ được xây dựng và tại sao, nhưng tôi không thể tìm thấy một lời giải thích thấu đáo cho các vectơ câu.

  3. Sử dụng các vectơ suy nghĩ làm đầu vào và đầu ra Tôi sẽ đào tạo mạng lưới thần kinh. Tôi không biết nó nên có bao nhiêu lớp, và lớp nào phải là lớp lstm.

  4. Sau đó, cần có một mạng lưới thần kinh khác có thể chuyển đổi một vectơ suy nghĩ thành một chuỗi các ký tự sáng tác một câu. Tôi đọc rằng tôi nên sử dụng phần đệm để bù cho các độ dài câu khác nhau, nhưng tôi nhớ cách mã hóa các ký tự (có đủ mật mã không?).

Câu trả lời:


7

Tôi muốn giới thiệu để bắt đầu bằng cách đọc blogpost này . Bạn có thể có thể hủy mã hóa để tạo RNN nhận một câu lệnh của đoạn hội thoại và sau đó tiến hành đưa ra câu trả lời cho câu lệnh đó.

Đó sẽ là phiên bản dễ dàng của dự án của bạn, tất cả không có vectơ từ và vectơ suy nghĩ. Bạn chỉ nhập các ký tự, vì vậy lỗi chính tả không cần phải quan tâm đến bạn.

Bước phức tạp tiếp theo sẽ là nhập vectơ từ thay vì ký tự. Điều đó sẽ cho phép bạn khái quát thành những từ không thuộc dữ liệu đào tạo của bạn. Và nó có lẽ vẫn chỉ là một sửa đổi nhỏ của mã.

Nếu bạn khăng khăng sử dụng các vectơ suy nghĩ, bạn nên bắt đầu đọc lên bản dịch NN . Và có lẽ cố gắng để có được một mạng mã hóa được đào tạo trước. Hoặc tự đào tạo nó trên một kho dịch lớn cho ngôn ngữ của bạn.

Với tập huấn luyện nhỏ của bạn, điều tốt nhất bạn có thể làm là tập trung quá mức cho đến khi hệ thống của bạn tạo lại nguyên văn dữ liệu đào tạo của bạn. Sử dụng vectơ từ sẽ cho phép hệ thống của bạn đưa ra câu trả lời tương tự cho "Tôi đánh bại con mèo ngày hôm nay". như bạn đã đưa ra dữ liệu huấn luyện cho "Tôi đã đá con chó ngày hôm qua."

Tôi không chắc rằng vectơ sẽ tạo ra sự khác biệt lớn. Nếu bạn nhận được bộ giải mã để tìm hiểu tất cả.


Tôi đã đọc bài viết đầu tiên một thời gian trước đây và tôi cảm thấy các nhân vật không phải là mức độ trừu tượng đúng. Tôi đã không nghĩ về việc đi cùng với các vectơ từ một lần nhưng tôi đoán đó cũng là một cách thú vị và ít phức tạp hơn. Tôi sẽ đọc bài báo, đó có lẽ là những gì tôi đã có sau ...
Totem

Tôi đã tìm thấy một lõi bot để sử dụng ... Nhưng tôi bị mắc kẹt trong việc tạo văn bản. ai.stackexchange.com/questions/5963/ Mạnh Điều tôi băn khoăn là mặc dù có vectơ và tốc độ học tập, nó vẫn không hoạt động vì nó ... Tôi lo lắng rằng đây có thể là một thiếu sót của Thư viện bằng cách sử dụng, nhưng tôi không nghĩ rằng có thể có thể có kích thước lớp 300 ... Hoặc là số lượng đào tạo cần thiết có liên quan đến kích thước của lớp? Bất kỳ trợ giúp sẽ được đánh giá cao. Xin lưu ý thư viện đang được sử dụng.
FreezePhoenix

0

Theo khái niệm dự án của bạn, đối với người mới bắt đầu, tôi sẽ yêu cầu bạn áp dụng một số kỹ thuật phát triển theo hướng thử nghiệm. Trước tiên, hãy thử tạo một cơ sở dữ liệu có kích thước nhỏ hơn mà bạn có thể sử dụng để xử lý một lượng nhỏ dữ liệu, có thể mang lại sự cải thiện mong muốn.

Điều đó nói rằng, sử dụng cơ sở dữ liệu đó để tạo nội tuyến cây có tổ chức với dữ liệu của bạn, dưới dạng các nút. Vì vậy, nếu bot bắt đầu tạo một số phản hồi, từ cơ sở dữ liệu, được đánh dấu bằng các điểm dữ liệu từ tập dữ liệu đã chỉ định của bạn. đến nút tiếp theo trong cây.

lưu ý : Đối với người mới bắt đầu, đừng sử dụng toàn bộ lịch sử trò chuyện lớn của bạn, vì đây là một nhiệm vụ đơn giản..ie.too nhiều đầu vào == Quá mức.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.