Robot chat thông minh

Tuesday, January 26, 2010 3 phản hồi

Có những ý tưởng ra đời từ sự điên rồ pha lẫn chút lãng mạn.

Có đôi lúc, tôi tự hỏi mình: khi buồn, vui mình sẽ nói với ai. Dù là người bạn thân nhất cũng không thể hiểu được hết chính mình. Tôi muốn tạo cho mình một người bạn - có thể giúp tôi trong công việc, cũng như có thể cho tôi những điều thú vị những lúc tôi cần.

Ngày cuối tuần lang thang, tôi nhớ lại những năm tháng sinh viên. Ngày đó, một người bạn gợi cho tôi cảm hứng viết một chú robot chat từ học kì thứ 3 ĐH. Chúng tôi loay hoay gần 3h đồng hồ để release một sản phẩm robot chat biết học và trả lời những câu hỏi - viết bằng C++. Cả phòng kí túc xá đông nghẹt những khán giả muốn thử "trí thông minh" của con robot này. Chương trình chỉ dựa trên sự so khớp độ chính xác giữa câu hỏi input và những dữ liệu có sẵn rồi đưa ra câu trả lời tương ứng. Sau đó, chúng tôi bỏ đi uống cafe và để lại con robot cho mọi người tha hồ thử nghiệm. Khi trở về, tôi thử chat lại với con robot thì ... than ôi, mỗi câu hỏi của tôi đều bị nó trả lời bằng những câu chửi hết sức bậy bạ (vì đã được train sau gần 2 tiếng đồng hồ). Chúng tôi bật cười và xem như đây là 1 thử nghiệm thất bại. Sau đó vì bận học, nên chúng tôi cũng dần quên đi ý tưởng này.


Đêm cuối tuần, tôi research một số lý thuyết về xử lý ngôn ngữ và những hướng tiếp cận của robot chat. AIML (ngôn ngữ đặc tả trí thông minh nhân tạo) là hướng tiếp cận phổ biến nhất hiện tại trên TG. Có một số hướng khác để hỗ trợ phân tích ngữ nghĩa cuộc thoại, máy học được bổ trợ để làm cho robot chat thông minh hơn. Tuy nhiên các cách tiếp cận này vẫn còn đang được nghiên cứu.

Tôi download được một bộ AIML parser viết trên C# và bắt tay vào những dòng code đầu tiên. Tôi release version 0.1 của robotchat với các tính năng để xử lý một cuộc thoại cơ bản chỉ có chào hỏi. Robot có thể nói với người về những đặc điểm riêng của chủ nó.

Ngày thứ hai, tôi phát hiện AIML vẫn thiếu những syntax mà tôi cần để phát triển ý tưởng. Tôi bắt tay customize AIML parser và hỗ trợ thêm một số tag cần thiết.

...
Dưới đây là các version tôi đã release internal sau 2 ngày coding:
v0.2: robot có thể tìm kiến thức trên wiki/google để trả lời cho người hỏi về những lĩnh vực nó không biết.









v0.3: nếu chủ nó buồn, hoặc vui (tùy theo tâm trạng lúc chat), robot có thể tìm ngẫu nhiên các bài hát, video vui nhộn để play giúp chủ nó relax.


Sản phẩm này sẽ open source vì tôi tin rằng còn có nhiều người điên rồ hơn có thể giúp tôi phát triển thành công sản phẩm này. Và hơn tất cả, tôi luôn tin rằng sự chia sẻ có thể đem lại những giá trị hữu ích cho con người.
Thời điểm công bố bản public release sẽ được thông báo sau. :)