我建立这个应用程序的Mac OS X v10.6中简单的自然语言解析器在Objective-C
我建立一个基于文本的冒险,我创建了一个非常简单的自然语言解析器,可以处理用户输入的命令。到目前为止,它很好,可以解析句子,如:“拿剑”或“在框中查找”
我想要做的是创建一个不同的单词的别名列表,使打字命令不那么严格。因此,例如“采取”可以有一个别名的“抢”或“去”可以有别名“移动,走路或旅行”
我试过创建一个NSDictionary,其中的关键是单词和值是一个NSArray的别名。问题是,当确定输入的命令是否与可用的命令匹配时,我将不得不使用用于该密钥的单词来引用别名。
我想能够使用任何别名来引用任何其他别名。有谁知道这样做的好方法吗?
我有另一种想法(但它似乎效率低下)是将每组别名存储在一个数组中。解析时,我会找到包含我想匹配的单词的数组,并尝试将该数组中的所有其他单词与它匹配。
我不完全理解你的意思:“并且数值上编码解释或指导解释的信息在上下文中。” –
该值可能是一些枚举值。一个例子是,单词take,grab和get可能最初被锁定到一个OBTAIN值,但是你可以修改get的值,因此它既可以用作take(获得剑)的同义词,也可以用作move(get到门)。 –
这是一个好主意!我会试着设置它。谢谢。 –