相关疑难解决方法(0)

使用哪种工具在Python中解析编程语言?

您可以推荐哪种Python工具来解析编程语言?它应该允许源内语言语法的可读表示,并且它应该能够扩展到复杂的语言(具有像Python本身那样复杂的语法).

当我搜索时,我主要找到pyparsing,我将评估,但当然我对其他替代品感兴趣.

编辑:奖励点,如果它附带有良好的错误报告和附加到语法树元素的源代码位置.

python parsing

31
推荐指数
4
解决办法
2万
查看次数

如何最好地解析一个简单的语法?

好的,所以我问过一些关于这个项目的小问题,但我对我想出的设计仍然没有多少信心,所以我会在更广泛的范围内提出一个问题.

我正在解析课程目录的先决条件描述.描述几乎总是遵循某种形式,这使我认为我可以解析其中的大多数.

从文本中,我想生成一个关于课程必备关系的图表.(在我解析数据之后,那部分会很简单.)

一些样本输入和输出:

"CS 2110" => ("CS", 2110) # 0

"CS 2110 and INFO 3300" => [("CS", 2110), ("INFO", 3300)] # 1
"CS 2110, INFO 3300" => [("CS", 2110), ("INFO", 3300)] # 1
"CS 2110, 3300, 3140" => [("CS", 2110), ("CS", 3300), ("CS", 3140)] # 1

"CS 2110 or INFO 3300" => [[("CS", 2110)], [("INFO", 3300)]] # 2

"MATH 2210, 2230, 2310, or 2940" => [[("MATH", 2210), ("MATH", 2230), ("MATH", 2310)], [("MATH", 2940)]] # 3  
Run Code Online (Sandbox Code Playgroud)
  1. 如果整个描述只是一个过程,则直接输出.

  2. 如果课程是连接的("和"),则它们都输出在同一列表中

  3. 如果课程脱离("或"),则它们位于不同的列表中

  4. 在这里,我们有"和"和"或". …

python parsing nlp ply pyparsing

27
推荐指数
3
解决办法
3万
查看次数

调用参数数量未知的函数 Python

我正在尝试读取模糊纯文本规则并将参数传递给 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']。我想不出一种方法来自动读取文本规则并将其转换为函数调用,您有什么想法或建议来实现这个目标吗?任何帮助将不胜感激。谢谢。

python fuzzy-logic scikit-learn

7
推荐指数
1
解决办法
264
查看次数

标签 统计

python ×3

parsing ×2

fuzzy-logic ×1

nlp ×1

ply ×1

pyparsing ×1

scikit-learn ×1