文本游戏命令解析?

3 投票
1 回答
1206 浏览
提问于 2025-04-16 17:41

我想写一个解析引擎,类似于Inform里的那种,功能非常强大。

我尝试过几种不同的方法:

  • 正则表达式(regex)。用正则表达式,我只能匹配 {动词} {名词1 可选名词2} {可选介词} {间接名词1 可选间接名词2},这个效果不是很好。
  • 预定义的动词列表以及它们对应的介词和名词。这个方法太复杂了,因为需要预定义很多数据。
  • 把句子拆分成不同的单词,然后通过字典进行匹配。这个方法同样太复杂,而且不实用,因为某些词的意思模糊,比如“look”或“put (on, out)”。

我对语言处理有一些了解,但其实不知道从哪里开始,有些东西太复杂了。(我没有计算机科学背景,现在只是自学。)

我想到的一些点子:

  • 正如我所说的,自然语言处理。
  • 设计一个解析器,解析类似SQL的内容。

还有其他的想法吗?我该如何设计和实现这些想法呢?

顺便提一下,我使用的是Python作为编程语言。如果你没注意到,我并不是在设计一种编程语言,我只是想解析用户的命令,比如“向北走”或者更复杂的指令,比如“用毯子把火扑灭”。

1 个回答

2

除了提到的pyparsing,这个工具看起来非常合适(我只用过一点点),你还应该看看nltk。这是一个很棒的自然语言处理工具集合,甚至还有一本

撰写回答