2011-10-10 98 views
2

我建立這個應用程序的Mac OS X v10.6中簡單的自然語言解析器在Objective-C

我建立一個基於文本的冒險,我創建了一個非常簡單的自然語言解析器,可以處理用戶輸入的命令。到目前爲止,它很好,可以解析句子,如:「拿劍」或「在框中查找」

我想要做的是創建一個不同的單詞的別名列表,使打字命令不那麼嚴格。因此,例如「採取」可以有一個別名的「搶」或「去」可以有別名「移動,走路或旅行」

我試過創建一個NSDictionary,其中的關鍵是單詞和值是一個NSArray的別名。問題是,當確定輸入的命令是否與可用的命令匹配時,我將不得不使用用於該密鑰的單詞來引用別名。

我想能夠使用任何別名來引用任何其他別名。有誰知道這樣做的好方法嗎?

我有另一種想法(但它似乎效率低下)是將每組別名存儲在一個數組中。解析時,我會找到包含我想匹配的單詞的數組,並嘗試將該數組中的所有其他單詞與它匹配。

回答

2

概念,我想你可能會發現它生產的治療在同一基礎上的所有單詞。讓你的詞典從你的詞彙中取出任何詞作爲關鍵詞,並且數值編碼解釋或指導解釋的信息。

+0

我不完全理解你的意思:「並且數值上編碼解釋或指導解釋的信息在上下文中。」 –

+2

該值可能是一些枚舉值。一個例子是,單詞take,grab和get可能最初被鎖定到一個OBTAIN值,但是你可以修改get的值,因此它既可以用作take(獲得劍)的同義詞,也可以用作move(get到門)。 –

+0

這是一個好主意!我會試着設置它。謝謝。 –

6

檢查NSLinguisticTagger類(在iOS 5中新)

+0

謝謝你的提示(我一定會檢查出來),但我忘了提,我建立這個適用於Mac OS X v10.6中 –