我如何构建一个回答是或否的问答系统

2 投票
1 回答
1137 浏览
提问于 2025-04-17 21:56

我想建立一个问答系统,这个系统只能回答“是”或“否”。

假设我有一个问题和一个文本文件。在这个文本文件里,有4到5段文字。通过这些文字,我可以回答这个问题。

所以,我想建立一个系统,它可以接收一个问题和一个文本文件作为输入,然后提取出一个答案(是或否)。

我该从哪里开始呢?

我使用的工具有:
Python(nltk库)
Prolog
mysql(如果需要的话)

1 个回答

1

Prolog本身就是一个“回答是或否的问题系统”。

你的“文本文件”可以是简单的Prolog事实。然后你只需要在Prolog系统中加载(咨询)你的事实文件,就可以用查询来得到是或否的答案。

举个例子(facts.pl):

prime(2).
prime(3).
prime(5).
prime(7).
capital('Ukraine', 'Kyiv').
capital('Ukraine', 'Kiev').
bird(penguin).
fish(shark).

咨询这个文件:

?- [facts].

问问题。比如:企鹅是鸟吗?鲨鱼是鸟吗?

?- bird(penguin).
true.
?- bird(shark).
false.

SWI-Prolog会用'true'和'false'来回答,而其他系统(比如ECLiPSe CLP http://www.eclipseclp.org/)可能会用'Yes'和'No'。

撰写回答