- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在使用 Prolog DCG 解析输入时,最好有一个语法的 BNF 伴随。
例如:
BNF
<Sentence> ::= <Noun_phrase> <Verb_phrase>
<Noun_phrase> ::= <Determiner> <Noun>
<Verb_phrase> ::= <Verb> <Phrase>
<Determiner> ::= a
<Determiner> ::= the
<Noun> ::= cat
<Noun> ::= mouse
<Verb> ::= scares
<Verb> ::= hates
作为 Prolog DCG
sentence --> noun_phrase, verb_phrase.
verb_phrase --> verb, noun_phrase.
noun_phrase --> determiner, noun.
determiner --> [a].
determiner --> [the].
noun --> [cat].
noun --> [mouse].
verb --> [scares].
verb --> [hates].
但是 Prolog DCG 也可以有如下参数
在此示例中,Number
表示单数
或复数
sentence(Number) --> noun_phrase(Number), verb_phrase(Number).
verb_phrase(Number) --> verb(Number), noun_phrase(Number).
noun_phrase(Number) --> determiner(Number), noun(Number).
determiner(singular) --> [a].
determiner(singular) --> [the].
determiner(plural) --> [the].
noun(singular) --> [cat].
noun(plural) --> [cats].
noun(singular) --> [mouse].
noun(plural) --> [mice].
verb(singular) --> [scares].
verb(plural) --> [scare].
verb(singular) --> [hates].
verb(plural) --> [hate].
是否有包含非终结符参数的标准或可接受的 BNF 扩展?
如果是这样,我需要一个链接。
我怀疑 ATN(增强转换网络)已经在大致范围内,并且可能是唯一的标准答案,但我希望得到线性文本而不是某种形式的顶点/边图。
最佳答案
我认为feature structures的概念就是您正在寻找的;您在示例中显示的参数共享是更通用的特征结构统一方法的特例。
我不知道 BNF 的具体特征结构扩展,但有合理接受的符号将它们添加到其他语法形式中。 NLTK(Python 自然语言处理库)的文档有 an example here他们使用的符号。以下是他们的一些规则,大致对应于您示例中的前几个产品:
S -> NP[CASE=nom, AGR=?a] VP[AGR=?a]
VP[AGR=?a] -> TV[OBJCASE=?c, AGR=?a] NP[CASE=?c]
NP[CASE=?c, AGR=?a] -> Det[CASE=?c, AGR=?a] N[CASE=?c, AGR=?a]
?x
是逻辑变量的表示法。 NLTK 手册的整个章节包含对特征结构的一般描述,并包括一些文献引用。
关于prolog - 是否存在带有非终结符参数的 BNF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41575278/
我正在写一个小语法作为类练习,我的教授并没有真正具体说明什么是合法的 BNF 表达式。 BNF 语法应该识别这种形式的字符串:AB、AABB、AAABBB、A...B...(一般形式:AnBn) 所以
如何将此 BNF 转换为 EBNF? ::= var ; ::= {;} ::= {,} : ::= {} ::= | | _ 最佳答案 EBNF 或 Extended Back
我正在开展一个学校项目,需要我解析 BNF 语法。我有点困惑管道符 (|)(我认为它的意思是“或”)在规则中扮演什么角色。 例如,如果我有以下内容: ::= b c d | e f g 哪个终端是
我需要将以下语法转换为 EBNF: -> = -> A|B|C -> + | * | * |( ) | 我目前取得的进展如下: -> = =
我正在尝试学习 BNF 并尝试组装一些 Z80 ASM 代码。由于我对这两个领域都是新手,我的问题是,我是否走在正确的轨道上?我正在尝试将 Z80 ASM 的格式编写为 EBNF,以便我可以找出从哪里
有谁知道我在哪里可以获得 LOGO 的 BNF 或 EBNF编程语言? 最佳答案 BNF 语法在某些情况下可能不太有用...... 编写一个与现有/历史实现准确兼容的 LOGO 并不是一件容易的事(我
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 1 年前。
最近在想下面的BNF A -> x | yA | yAzA where x,y,z are terminals. 我很确定这个语法是模棱两可的,但是如何使它不含糊呢? 最佳答案 如果一个特定的字符串可
是否有正则表达式的 BNF 语法? 最佳答案 你可以看到一个 Perl regexp (显示 a little more in detail here ,由 edg 发布) 关于正则表达式 BNF 语
我使用这个 BNF 来解析我的脚本: {identset} = {ASCII} - {"\{\}}; //<--all ascii charset except '\"' '{' and '}
无法为字符序列(可能为空)提出 BNF 语法,以逗号分隔,但不以逗号开头或结尾, 所以这没问题: ::= | , | 但这会产生类似 A, :-( 最佳答案 空字符序列给你带来了麻烦。您
我有一项作业要纠正一个不明确的 BNF,但我完全迷失了。我知道这不是一个真正的编程问题,如果这不是这些板的合适问题,我会很乐意删除它。有没有什么好的网站可以让我了解更多有关 BNF 的信息?我正在处理
我该如何描述语言 A → AA | ( A ) | ε 使用正则表达式生成? 最佳答案 正则表达式接受来自正则语言的字符串。 FSM 也可以接受常规语言。 在您的语言中,您必须匹配的括号数量可能是无限
在使用 Prolog DCG 解析输入时,最好有一个语法的 BNF 伴随。 例如: BNF ::= ::= ::= ::= a ::= the ::= cat ::= mou
我需要迭代形式的产生规则的符号: 例如:输入 ::= = | <> | = | > | in ::= | ; 所以我需要派生一个正则表达式来分割文本。这是我到目前为止所拥有的 (?:\s|^
我继承了一个 ANTLR 语法,现在我需要编写一个很好的、古老的、类似 YACC/BISON 的解析器(具体来说,我使用 PLY for python)。有许多奇怪的规则,我现在正在努力解决以下问题:
我需要解析一个不是我设计的简单专有语言,所以我不能改变语言。我需要 C# 中的结果,所以我一直在使用 TinyPG,因为它非常易于使用,并且不需要外部库来运行解析器。 TinyPG 生成一个简单的 L
最近我发现了 python 模块 pyparsing,这是一个通过编写语法而不是解析器来解析数据的好工具。我对上下文无关语法的概念还很陌生,所以请纠正这个问题中的任何错误假设。 Pyparsing 可
好吧,我不确定我应该如何使用递归下降解析来编写一个函数来解析如下语法。事实上,我不确定我是否做对了...... BNF: A : B | A '!' B : '[' ']' 伪代码: f() {
有一个我可以找到流行语言的Backus -Naur形式或BNF语法吗?每当我进行搜索时,我都不会出现太多,但是我认为它们必须在某个地方出版。我最有兴趣看到一个用于Objective-C和MySQL的一
我是一名优秀的程序员,十分优秀!