Tôi có dự án C++ cá nhân này của tôi và hiện tôi đang bị kẹt. Có vẻ như rất nhiều người đã đặt câu hỏi về chủ đề này và tôi muốn xin lỗi nếu đó là câu hỏi lặp lại.C++ chat bot xếp hạng dựa trên trả lời?
Dù sao, dự án này là bot trò chuyện sẽ trả lời dựa trên dữ liệu nhập của người dùng. Hiện tại là vì nó là viết tắt của nó, nó lấy toàn bộ truy vấn và tìm kiếm một kết quả phù hợp sử dụng các dòng dài, không hiệu quả của các câu lệnh if
. Nếu nó tìm thấy một trận đấu, nó sẽ trả lời với một câu trả lời nhất định.
Lý do tại sao tôi đến đây là vì tôi bị bệnh và mệt mỏi khi viết các câu lệnh rất tốn thời gian và không hiệu quả với các câu hỏi if
thậm chí không bắt được tất cả các biến thể của cùng một câu hỏi. Tôi không tìm kiếm mã hoặc giải pháp lấy dữ liệu từ Wikipedia hoặc một cái gì đó như thế. Những gì tôi muốn là cho bot trò chuyện để chỉ trả lời một số câu hỏi đơn giản.
Trong thời gian tôi bị vứt bỏ với các câu lệnh if, tôi nảy ra ý tưởng. Tại sao tôi không sử dụng các từ khóa giống như một công cụ tìm kiếm xếp hạng các trang web?
Tôi đã viết mã cho đến nay để đếm số lần một từ khóa (hoặc một vài từ khóa khác nhau) tồn tại trong truy vấn. Vấn đề là làm thế nào để đi về xếp hạng chúng để tìm câu trả lời tốt nhất? Tôi sẽ cho rằng các câu trả lời và từ khóa sẽ cần phải được lưu trữ một cách đặc biệt.
danh sách của tôi về câu trả lời cho câu hỏi chính của tôi cho đến nay là:
1. Khi một truy vấn được nhận, xếp hạng nó thông qua một tập tin này, nơi nó có từ khóa (s) trong khóa, và trả lời như giá trị của nó. Nếu có nhiều câu trả lời, hãy thực hiện một từ khóa khác và tìm kiếm từ khóa đó cũng như từ khóa gốc (giảm phạm vi). Làm điều này đủ thời gian sẽ mang lại câu trả lời đúng.
Ưu điểm: Phù hợp với những gì tôi cần làm và đó là điều tôi có thể nắm bắt trong C++.
Nhược điểm: vẻ dài và không hiệu quả, gần như lặn vào nếu báo cáo một lần nữa ...
2. Sử dụng một cơ sở dữ liệu SQL, nói với nó để tìm ra câu trả lời thích hợp. Tuy nhiên, bạn không chắc chắn về cách thực hiện điều đó.
Ưu điểm: Nó sẽ có trọng lượng nhẹ, vì máy tính cơ sở dữ liệu sẽ xử lý tìm kiếm và có thể khá chi tiết.
Nhược điểm: Có thể gây ra một chút đau đớn đối với tôi vì tôi đã treading nước khá cao với C++. Tuy nhiên, tôi bắt đầu nghĩ rằng nó sẽ kết thúc giống như các câu lệnh if.
3. Câu trả lời hay nhất mà ai đó có thể đề xuất ở đây là AIML (là discussed here).
Ưu điểm: Được sử dụng để phát triển chương trình trò chuyện thông minh và khá mạnh mẽ.
Nhược điểm: Có vẻ quá "nặng" đối với dự án đơn giản của tôi và tôi không thể tìm ra một mã tìm hiểu dễ dàng cho một bot lấy AIML.
Tôi hy vọng một người nào đó có thể đề xuất một tuyến đường thông minh để thực hiện vì tôi không thực sự là người hâm mộ của C++ và tôi cảm thấy như tôi đã giẫm nước sâu với dự án này. Tuy nhiên vào mùa hè này, tôi cảm thấy như cắn lưỡi, đi ra khỏi vùng thoải mái của mình và một khi đã làm một cái gì đó hữu ích trong C++. Tôi có thể làm điều này một cách nhanh chóng trong PHP, nhưng để gửi tin nhắn, tôi phải sử dụng C++.
Nếu bạn có thể thực hiện nó trong php, điều gì khiến bạn không thể làm điều đó trong C++? Ngoài ra, bạn có lẽ nên tập trung nhiều hơn vào ngữ cảnh hơn xếp hạng từ khóa nếu bạn muốn nó xuất hiện thông minh. – gcochard
Khi nói đến việc tạo ra trí tuệ nhân tạo ít nhất là "thông minh", sẽ có rất nhiều công việc liên quan. Giai đoạn đầu của đau buồn là sự chấp nhận. –
Bối cảnh sẽ là một cái gì đó đơn giản, tôi đã nghĩ nó qua. Nó chỉ là làm thế nào để tìm câu trả lời chính xác hoặc tốt nhất. Khi Alex lớn lên, tôi sợ rằng bất kỳ loại trí thông minh nhân tạo nào cũng không dễ dàng làm được. Tôi không giỏi nhất ở C++, nhưng đồng thời tôi cũng không thu thập thông tin. Tôi không được sử dụng để C + + và tôi vẫn gói đầu của tôi xung quanh một số khái niệm. –