GHW*_*WHG 7 python fuzzy-logic scikit-learn
我正在尝试读取模糊纯文本规则并将参数传递给 SciKit-Fuzzy 函数调用以创建模糊规则。例如,如果我在此文本规则中阅读:
IF service IS poor OR food IS rancid THEN tip IS cheap
Run Code Online (Sandbox Code Playgroud)
然后函数调用将是:
ctrl.Rule(service ['poor'] | food ['rancid '], tip ['cheap'])
Run Code Online (Sandbox Code Playgroud)
如果文本规则是:
IF service IS good THEN tip IS average;
Run Code Online (Sandbox Code Playgroud)
然后函数调用将是:
ctrl.Rule(service ['good '] , tip ['average'])
Run Code Online (Sandbox Code Playgroud)
由于每个规则可以有无限数量的输入变量,例如用户还可以说:
IF service IS good AND food IS good AND mood IS happy THEN tip IS high
Run Code Online (Sandbox Code Playgroud)
其中包含 3 个输入变量service['good']、food['good']、和mood['happy']和 1 个输出变量tip['high']。我想不出一种方法来自动读取文本规则并将其转换为函数调用,您有什么想法或建议来实现这个目标吗?任何帮助将不胜感激。谢谢。
你可以尝试这样的事情:
string_input = "IF service IS poor OR food IS rancid THEN tip IS cheap"
string_input = string_input.replace(" THEN ", '"], ').replace(' IS ', '["').strip("IF ").replace(" OR ", '"] | ') +'"]'
eval('ctrl.Rule({})'.format(string_input))
Run Code Online (Sandbox Code Playgroud)
但请注意,您在使用 eval 时需要非常非常小心。这是一个安全风险,因为用户可以通过这种方式执行代码!在使用它之前,您可能会研究如何防止此安全问题。
| 归档时间: |
|
| 查看次数: |
264 次 |
| 最近记录: |