代码改变世界

随笔档案-2011年12月29日

Trie的应用及拼写检查器的优化

2011-12-29 22:11 by htc开发, 270 阅读, 收藏,
摘要: 之前实现的拼写检查器,是用Hash表来保存语言模型(Language Model)。每个单词插入到Hash表时都要先计算一个Hashcode值来作为Id。因此插入一个单词到Hash表(不冲突的情况下)与查询一个单词的效率都是O(len),其中len是单词的长度。我们也可以用一种叫Trie的树形结构来保存语言模型。Trie的结构非常简单,举个简单的例子,对于下面这些单词:an, ant, all, allot, alloy, aloe, are, ate, be我们可以构建出这样一个Trie树,每条支路都代表一个字母,由根节点出发到叶子节点所经过的路径上的字母就组成一个单词。其中,根节点不包含字 阅读全文