我有兴趣编写一个解析引擎,比如Inform这样的解析引擎,它非常强大。文本游戏命令解析?
我已经尝试了几种不同的方法:
- 正则表达式。对于正则表达式,我只能匹配
{verb} {noun1 optional-noun2} {optional-preposition} {indirect-noun1 optional-indirect-noun2}
这不起作用。 - 预定义动词列表及其匹配的介词和名词。这种方法太复杂了,因为必须有大量的预定义数据。
- 拆分成不同的单词并通过字典映射运行它们。再次,这是太复杂,不实际,由于某些词的含糊不清,如“看”或“放(上,下)”
我知道语言处理,但我实际上不知道如何开始和有些东西太复杂了。 (没有CS背景,我现在只是自己学习)。
的一些想法,我有:
- 我已经说过了,自然语言处理。
- 设计一个解析器,解析类似于SQL的东西。
还有其他想法吗?我将如何去设计和实施它们?
注意我使用Python作为我的语言。如果你错过了,我不会设计一种编程语言,我只是解析用户命令,比如“go north”或复杂的东西,比如“用毯子把火扑灭”
您可能想看看pyparsing模块pyparsing.wikispaces.com – 2011-05-15 23:06:49
我觉得写我自己的解析器会让我受益更多,因为我会学到更多东西。 – Pwnna 2011-05-15 23:07:37
我的观点是编写pyparsing模块,以便了解它是如何完成的。 – Pwnna 2011-05-15 23:09:47