我正在尝试实现一个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."用户在每个节点上选择一个答案,系统将根据该答案提出下一个问题,直到到达一个叶节点,表示一个“最终”答案。
在每个节点,用户可以要求系统解释或定义问题中使用的术语。解释将是一系列包含术语的陈述,这些术语本身可以进一步解释或定义。
在获得足够的经验后,系统可以自动跳过某些节点,例如第一个“本田是一辆车吗?”当它了解到在“停车”的上下文中,"Honda“总是意味着”汽车“。
虽然在此树中没有显示,但一些树可能具有“未定义”的叶节点,表示规则没有提供足够的覆盖范围来完全创建树的情况,需要将问题重定向到人类专家以澄清或更正规则。
目标是在数据库中定义规则,然后根据需要动态生成这些Q&A树。
虽然这里显示的规则和问题是用自然语言表示的,但初始系统将使用符号逻辑,因为除了这种逻辑解析之外,执行NLP将使初始系统变得非常复杂。规则最初可能是作为自然语言起草的,但在进入系统之前,它们将被手动转换为离散的规则。问题将显示为简单的自然语言陈述,答案将是多项选择。
这看起来像是一个实际的项目吗?有没有什么先天的技术?到目前为止,我还没有读到任何这样的东西,但我不确定什么搜索关键字能充分描述这个系统。
我应该使用什么工具?我不确定是否应该使用决策树或某种类型的专家系统来匹配问题和规则,并缩小问题的范围。
发布于 2011-03-11 23:44:12
您将需要“决策树”软件来根据您的目标生成规则。如果你打算开源,我建议你使用带有rpart扩展的"R“包。我还建议您使用文本分析包来开始对您的文档进行分类。"R“也有tm扩展名,它可以帮助你做到这一点。这些是一些开源选项。商业软件也有很多很好的选择。
-Ralph Winters
发布于 2011-03-11 02:53:24
国际商业机器公司刚刚花了3年时间和数百人编写了一款可以在Jeopardy比赛中获胜的super-computer。
在我看来,你提出的不是一个实际的项目。
IBM所做的和您正在进行的较小规模的尝试称为语义处理。
https://stackoverflow.com/questions/5262449
复制相似问题