所以我正在研究如何从报告中推断出知识(不是使用特定格式),但在预处理后,我应该有某种格式化的数据。
一个相当基本的推论是: “零售商有X库存。”并且“X是可销售的”。 - > “零售商出售X” 我所关注的知识是面向零售领域的,如果可能的话,我应该在每次迭代时提高效率。
这是科幻(我的一些朋友认为是这样)吗?我在网上找到的相关内容是“专家系统”,它们可以找到异常,模糊推理系统以及一些关于“简单知识”的咆哮。
你能帮助我为我提供一些重点或指导我的研究方向吗?
blueomega
答案 0 :(得分:2)
你当然不是在谈论'科幻',但是很多都不属于软件工程师通常所接触的标准内容。在过去的八年中,我花了很多时间构建并使用规则引擎对零售世界中的半结构化数据进行推理。
对数据进行推理是一个很好的领域。这个领域基本上有四类问题:
对于知识获取,请看: Ripple Down Rules和决策树,它们有很长的路要走,很容易理解。 或者,广阔的领域Machine Learning提供了各种从数据中推导出模型的方法。
对于知识表示,请查看RDF和Owl,以及较低程度Conceptual Graphs。在表现力方面,RDF& CG大致相当。两者背后的基本概念是数据的序列化独立图(三重)表示。
对于模式匹配,Charles Forgy的经典算法是Rete。
推理时,有两种典型策略:Forward chaining和backward chaining。正向链接是在如下规则集上完成的:
数据设置:
Rule 1: If A Then B
Rule 2: If B Then C
Facts: A
执行:
Do {
Newfacts = Eval(RuleSet, Facts)
Facts = Facts + Newfacts
} while (NewFacts.Count > 0)
将数据A提供给这个小算法,由于规则库,您将从数据中“推断”(发现)事实C.请注意,有许多问题需要推理,特别是像non-monotonic reasoning这样的事情(不只是添加事实,而是更改或删除事实,可能会在推理中引起矛盾或循环)。
使用数据库并使用连接来匹配事实(语句)的简单和天真的方式来进行某种推理。对于某些应用来说,这可能就足够了在推理方面,很容易陷入混乱的世界,而不是那里的技术。把事情简单化。
答案 1 :(得分:1)
你写的东西让我想起了一个“规则”。像这样的规则(变量都是名义上的)是所谓的association rule mining的结果。也许这种方法是你应该考虑的方法之一。
您可以使用开源机器学习软件Weka,或者如果您更喜欢R environment,那么rattle gui可能会派上用场。