它适用于您的机器吗? 我不知道如何使用它 - 每次都会出错。请告诉我如何使用它....
链接到来源:http://ai-programming.com/prolog_bot_tutorial.htm
代码:
% Program Name: chatterbot1
% Description: this is a very basic example of a chatterbot program
%
% Author: Gonzales Cenelia
% Date: 7 august 2009
%
response_database([
['I HEARD YOU!'],
['SO, YOU ARE TALKING TO ME.'],
['CONTINUE, IM LISTENING.'],
['VERY INTERESTING CONVERSATION.'],
['TELL ME MORE...']]).
select(0, [H|T], H).
select(N, [H|T], L) :- N > 0, N1 is N - 1, select(N1, T, L).
quit_session(X):- X = 'bye',
nl, write('IT WAS NICE TALKING TO YOU USER, SEE YOU NEXT TIME!').
write_string([H|T]):- write(H).
chatterbot1:-
repeat,
nl, write('>'),
read_string(Input),
response_database(ListOfResponse),
IndexOfResponse is integer(random * 5),
select(IndexOfResponse, ListOfResponse, Response),
write_string(Response),
quit_session(Input).
我已经尝试过一些写作的方法,也许我不知道这是多么正确的错误:
1? - 嗨。
错误:顶级:未定义 程序:hi / 0(DWIM不能 正确的目标)
2? - [hi]。
错误: source_sink`hi'不存在true。
3? - '嗨'。
错误:顶级:未定义 程序:hi / 0(DWIM不能 正确的目标)
4? - ['hi']。
错误: source_sink`hi'不存在true。
答案 0 :(得分:3)
主要问题是您的代码是Prolog方言,与您正在使用的SWI Prolog略有不同。你可以尝试这样的事情:
response_database([
['I HEARD YOU!'],
['SO, YOU ARE TALKING TO ME.'],
['CONTINUE, IM LISTENING.'],
['VERY INTERESTING CONVERSATION.'],
['TELL ME MORE...']]).
select(0, [H|_], H).
select(N, [_|T], L) :- N > 0, N1 is N - 1, select(N1, T, L).
quit_session(X):- X = 'bye',
nl, write('IT WAS NICE TALKING TO YOU USER, SEE YOU NEXT TIME!').
write_string([H|_]):- write(H).
chatterbot1:-
repeat,
nl, write('>'),
read(Input),
response_database(ListOfResponse),
IndexOfResponse is integer(random(5)),
select(IndexOfResponse, ListOfResponse, Response),
write(Response),
quit_session(Input).
正如其他人所说,请确保编译代码然后运行它:
chatterbot1.
然后它会要求你提供一些意见。输入类似
的内容hi.
看到回复。 如果有效,请告诉我。
答案 1 :(得分:0)
在聊天之前,您需要启动该程序。为此你输入:
chatterbot1.
然后你应该看到程序的提示:
>
现在您可以与该计划聊天。
答案 2 :(得分:0)
您应首先编译该程序,然后运行chatterbot1。 类似的东西:
>[the program's name].
>chatterbot1.
btw read_string / 1不是我的prolog方言(swi-prolog)中的默认谓词,所以我无法测试它。
dunno关于你的