2010-08-01 41 views
6

LISP hay một thứ gì đó giống như Jess là lựa chọn tốt nhất? Tôi quan tâm đến việc viết chương trình tạo đề xuất dựa trên câu trả lời của người dùng. Cân nhắc tính toán không thực sự là một yếu tố này là khá nhiều một mô hình phù hợp với động cơ. Ngoài ra tôi muốn tạo một ứng dụng cho việc này và đưa nó lên web.Ngôn ngữ tốt nhất để viết một hệ thống chuyên gia là gì?

CẬP NHẬT: Tôi muốn đăng nội dung này lên blog hoặc trang web và cho phép mọi người sử dụng nó từ đó. Tôi đoán câu hỏi của tôi sau đó là có một công cụ suy luận cụ thể mà làm việc với gia đình NET, hoặc PHP, hoặc một cái gì đó để có hiệu lực? Một số ưu và khuyết điểm của mỗi tùy chọn, v.v.

+1

"Tốt nhất" là cờ đỏ. Tốt hơn để hỏi sau khi thuận và chống, nhưng ngay cả sau đó bạn đang ở trong lãnh thổ chủ quan với một nguy cơ lập luận ... – dmckee

+0

Tôi đồng ý: sự thật riêng biệt từ giải thích và định giá. – LennyStackOverflow

Trả lời

6

Bước 1. Chọn công cụ suy luận. Có rất nhiều sự lựa chọn. Dưới đây là danh sách: http://en.wikipedia.org/wiki/Expert_system#Shells_or_Inference_Engine

Bước 2. Sử dụng ngôn ngữ giao tiếp với công cụ suy luận.

Bạn sẽ hạnh phúc hơn khi tận dụng một công cụ suy luận cho các hệ thống chuyên gia hoạt động.


Tôi muốn đặt này lên trên một blog hoặc trang web và cho phép người sử dụng nó từ đó

Trivial.

là có một công cụ suy luận cụ thể hoạt động với gia đình .NET hoặc PHP hoặc một cái gì đó có hiệu lực không?

Không quan trọng.

Đây là sự nhầm lẫn. "Trang web" của bạn và "ứng dụng suy luận" của bạn KHÔNG có ý nghĩa gì với nhau. Không có gì.

Trang web của bạn có thể được thực hiện trong bất kỳ bộ công cụ nào bạn có thể tìm thấy. Nó không quan trọng.

Ứng dụng suy luận của bạn có thể được thực hiện trong bất kỳ bộ công cụ nào bạn có thể tìm thấy. Nó không quan trọng.

Trang web của bạn sẽ gọi ứng dụng suy luận thông qua bất kỳ API nào có ý nghĩa. Mẫu số chung thấp nhất trong API (lý do mà không có sự lựa chọn nào quan trọng) là làm điều này.

  1. Viết ứng dụng suy luận của bạn làm công cụ dòng lệnh độc lập.

  2. Viết ứng dụng web của bạn để chạy công cụ độc lập, thu thập đầu ra và chuyển đầu ra thành trang HTML.

Lưu ý rằng việc triển khai đa porocess này có thể nhanh hơn và sử dụng tốt hơn bộ xử lý đa lõi. Nó buộc các hệ điều hành để quản lý các máy chủ web (Apache HTTPD, ví dụ), các ứng dụng web và hệ thống chuyên gia như tiềm năng ba, riêng biệt, quy trình song song.

+0

Tôi đã sử dụng CLIPS để lấy nguyên mẫu và chạy nhưng tôi không biết làm cách nào để làm cho trang web đó có thể truy cập được hoặc đưa vào ứng dụng. Bất kỳ đề xuất? – ihtkwot

+0

@nmr: "Tôi không biết làm cách nào để làm cho trang web đó có thể truy cập được". Đó không phải là câu hỏi của bạn, phải không? Vui lòng cập nhật câu hỏi của bạn hoặc đặt câu hỏi khác. –

2

Bạn sẽ nghe thấy nhiều ý kiến ​​chủ quan ở đây, vì rất ít người có kinh nghiệm trong nhiều hệ thống chuyên gia viết ngôn ngữ.

Tôi có thể đề nghị Common Lisp, vì có khá nhiều tài liệu và mã sẵn có trong ngôn ngữ này, và nó là một ngôn ngữ rất mạnh và không quá khó học (đọc "Thực hành chung Lisp" của Peter Seibel). Tất nhiên, bất kỳ ngôn ngữ cấp cao mới nào cũng đòi hỏi một số nỗ lực để học. Đối với ứng dụng web, bạn có thể sử dụng, ví dụ: Hunchentoot và CL-WHO và có rất nhiều liên kết cơ sở dữ liệu (Tôi thích Postmodern và CL-SQLite).

4

Bạn cũng có thể xem Prolog. SWI-Prolog (http://www.swi-prolog.org) là rất đầy đủ và có một thư viện hỗ trợ HTTP bao gồm (http://www.swi-prolog.org/pldoc/package/http.html). Bài viết này có thể hữu ích trong việc sử dụng SWI-Prolog trên web ("SWI-Prolog và các trang web" http://dare.uva.nl/record/285350)

Và, bạn có thể tìm thấy một hướng dẫn về việc xây dựng hệ thống chuyên gia với prolog tại địa chỉ: http://www.amzi.com/ExpertSystemsInProlog/

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