我正在尝试实施一个Web应用程序,该应用程序将允许用户根据一组规则定义规则并提出问题以查看语句是合法的还是非法的。我想到的领域是小社区或俱乐部的规则。
例如,假设可能的规则集包含规则:
Only cars with valid registration tags may park anywhere indefinitely.
Cars without valid registration tags may only park in a visitor spot for up to 3 days.
然后有人问"Can I park my Honda here?"
系统会首先尝试按照类似的问答树进行回答:
"Is a Honda a car?"
=>Yes
"Does it have a valid registration tag?"
=>Yes
"Yes"
=>No
"Are you parking in a visitor spot?"
=>Yes
"Have you parked in that spot for more than 3 days?"
=>Yes
"No"
=>No
"Yes"
=>No
"No"
=>Define "visitor spot"?
"A visitor spot is a parking spot. A parking spot is spatial rectangular area of asphault with a width of 8 feet and a length of 15 feet with a variation of 1 foot. It has either another parking spot or a curb adjacent to it. It has the words "Visitor" painted on it. It ressembles <img>."
=>Define "parking"?
"Parking is the act of placing a vehicle within the spatial area of a parking spot. The state of a parked image ressembles <img>."
=>Define "valid registration tag"?
"A valid registration tag ressembles <img>"
=>No
"No"
=>Define "car"?
"A car is a 4 wheeled vehicle weighing less than 3 tons."
用户在每个节点选择一个答案,系统会根据答案询问下一个问题,直到到达叶子节点,表示“最终”答案。
在每个节点,用户可以要求系统解释或定义问题中使用的术语。解释将是一系列包含术语的陈述,这些陈述本身可以进一步解释或定义。
在获得足够的经验后,系统可以自动跳过某些节点,例如第一个“本田是一辆车吗?”当它了解到在“停车”的情况下,“本田”总是意味着“汽车”。
虽然未在此树中显示,但某些树可能具有“未定义”叶节点,表示规则未提供足够覆盖以完全创建树的情况,需要将问题重定向到人类专家以进行说明或修改规则。
目标是在数据库中定义规则,然后根据需要动态生成这些Q&amp; A树。
尽管此处显示的规则和问题表示为自然语言,但初始系统将使用符号逻辑,因为除了此逻辑解析之外,执行NLP会使初始系统极为复杂。规则最初可以作为自然语言起草,但在输入系统之前,它们可以手动转换为离散规则。问题将显示为简单的自然语言陈述,答案将是多种选择。
这看起来像是一个实用的项目吗?有没有先前的艺术?到目前为止,我还没有读过这样的内容,但我不确定哪些搜索关键字能充分描述这个系统。
我应该使用哪些工具?我不确定是否应该使用决策树或某种专家系统来将问题与规则相匹配并缩小问题的范围。
答案 0 :(得分:1)
您需要“决策树”软件才能根据目标生成规则。如果你要开源我会建议使用带有rpart扩展名的“R”包。我还建议您使用文本分析包开始对文档进行分类。 “R”也有tm扩展,可以帮助解决这个问题。 这些是一些开源选项。商业软件也有很多不错的选择。
-Ralph Winters
答案 1 :(得分:0)