我刚入门,收藏一个基础问题:什么是倒排索引

在多篇文章中寻找一个词有两种方法,一种是字符串匹配,即在每篇文章中做字符串匹配,查找该字符串是否存在。字符串匹配有多种方法,可以参见《算法导论》的32章《String Matching》,这里就不细表了。

    另一种方法就是先做倒排索引,再查找。什么是倒排索引呢?请看下面的例子:
假设文章1的内容是:aaa bbb ccc ddd
文章2的内容是:bbb ddd yyy

    上面的对应关系是:“文章号”对“文章中所有关键词”。倒排索引把这个关系倒过来,变成:“关键词”对“拥有该关键词的所有文章号”。文章1,2经过倒排后变成:
aaa 1
bbb 1,2
ccc 1
ddd 1,2
yyy 2

    当建好了上面所示的倒排索引后,一旦我们要查找哪些文章中含有某个关键字时,只需取出该关键词所对应的文章号就行了。
    比如我们查找aaa,返回1.查找ddd,返回1,2

    一个使用倒排索引的经典例子是:但凡英文的技术书籍,书的最后面都有一个index,你可以通过它找到一个关键词出现在哪些页面里。这个就是关键词对拥有该关键词的页面的索引。

    web搜索引擎中所用的倒排索引就是这样的。首先对一篇文章分词,去掉“的、啊、哦”等等停用词,然后对剩下的关键词建立倒排索引。

posted @ 2007-11-06 22:26  何随风  阅读(527)  评论(0编辑  收藏  举报
@ilovexiao