python专家系统
experta的Python项目详细描述
expert a是一个python库,用于构建受强烈启发的专家系统 通过CLIPS。
fromrandomimportchoicefromexpertaimport*classLight(Fact):"""Info about the traffic light."""passclassRobotCrossStreet(KnowledgeEngine):@Rule(Light(color='green'))defgreen_light(self):print("Walk")@Rule(Light(color='red'))defred_light(self):print("Don't walk")@Rule(AS.light<<Light(color=L('yellow')|L('blinking-yellow')))defcautious(self,light):print("Be cautious because light is",light["color"])
>>>engine=RobotCrossStreet()>>>engine.reset()>>>engine.declare(Light(color=choice(['green','yellow','blinking-yellow','red'])))>>>engine.run()Becautiousbecauselightisblinking-yellow
从pyknow迁移
experta是一个pyknow叉子。只需替换您的 代码/示例到experta,所有的工作都应该相同。
示例
你可以在GitHub上找到更多的例子。
待办事项
更改日志
1.9.1
- 解决3.规则不应与已经收回的事实一起调用
1.9.0
- 放弃Python3.4支持。
- 使用setup.cfg保存所有包元数据
1.8.0-1.8.2
- 更名为Experta。
1.7.0
- 实现了模板系统。
- 将警告替换为观察者消息
- 修复了冻结对象的冻结()
- 修复了使用解冻对象的unfreeze()。
- 通过reset()kwargs参数化deffacts。
1.6.0
- 提高了整体性能。
1.5.0
- 在tox.ini中添加了python版本3.7。
- 猴子和香蕉的例子。
- 修正了这个错误,数值索引参数以一种奇怪的方式重复出现在1.4.0中。
- 仅传递定义的参数,而不传递kwargs。
1.4.0
- 复制后对整数事实键进行排序。
- 作为事实的方法
- 冻结和解冻方法文档。
- 在pyknow.utils中解冻方法。
- 剪辑中的斑马示例。
1.3.0
- pyknow.operator模块
- 嵌套匹配。
- 将“Sistemas Expertos en Python Con Pyknow-PyCones 2017”添加到文档中 文件夹。
1.2.0
- 冻结事实值作为解决问题9的默认行为。
- 添加了pyknow.utils.anyof以缓解问题7。
- 如果在declare()之后修改了事实值,则引发runtimeerror。
- 添加了MATCH和AS对象
1.1.1
- 去除p域约束的borg优化。
- 在节点排序中使用签入的哈希值始终 生成网络的相同alpha部分
1.1.0
- 允许任何类型的可调用谓词字段约束(p())。
1.0.1
- AND或规则中的OR子句的DNF实现错误
1.0.0
- rete匹配算法。
- 更好的规则装饰系统。
- 事实就是字典。
- 文件。
<;1.0.0
- 不稳定的API。
- 匹配算法错误
- 性能不佳
- 请不要用这个。