如何解决如何用 BNF 写一个句子?
用BNF写一个句子的语法是什么?它的结构或正确性无关紧要。我只关心它是否有 1 个或多个单词,可以用空格或不可以用空格分隔,可以包含或不包含符号或数字。
解决方法
用 BNF 写一个句子的语法是什么?
Backus-Naur 格式 (BNF) 不是像 JSON 或 PDF 那样的数据格式,它是定义给定格式的语法的描述。你不会用 BNF 写一个句子,但你可以用 BNF 来描述一个句子是什么。该描述可能会枚举句子中可接受的字符,告诉您单词由非空白字符组成,并且句子是由空格分隔并以句子终止标点符号结尾的单词序列。当然,关于如何在英语等自然语言中构成有效句子有很多规则,因此如果您沿着这条路线走下去,您可能还需要为 subject-phrase
、{{1} 之类的内容创建实体}、verb-phrase
等
用 BNF 表达的完整英语语法肯定会非常复杂。 BNF 更适合计算机语言和格式的语法。例如,您可能有 JSON 的 BNF 描述,或者 C 或 Java 中允许的语法。
我只关心它是否有 1 个或多个单词,可以用空格分隔也可以不用空格分隔,可以包含也可以不包含符号或数字。
BNF 的规则可在 See this for more info. 等地方找到。同样,你不会用 BNF 写一个特定的句子,但你会说出一个句子允许的内容。所以你可能有这样的规则:
object-phrase
每个规则都是由其他规则构建的,或者有时是递归构建的......例如<char> ::= "A" | "B" | "C" | "D" ...
<word> ::= <char>*
<terminator> ::= "." | "!" | "?"
<phrase> ::= <word> | <word> " " <phrase>
<sentence> ::= <phrase> <terminator>
的规则是说一个词组是一个词或一个词加一个空格加一个词组,因此您可以有任意数量的空格分隔词。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。