语或者是单词为最小原子,进行Stem操作,即象前面所提到的:比如单词Encouraging就转化成Encourage的格式。然后去掉那些Stop Word,比如is ,as等等的单词,这些单词存放在StopWordTbl表中。 然后把所有归整化后的内容放入动态数组word_weight_col中去。
---- 2.对于动态数组word_weight_col中的每一个元素,即结构word_weight_pair(包括单词和该单词的权重),我们从表WordDictionaryTbl中可以找到和这些单词相关的记录,这些记录应该是包括了所有的在word_weight_col中的单词。
---- 进行网页是否和查询相匹配的计算。匹配计算的过程如下:首先我们对所有的记录按URL地址进行排序。因为可能好几条记录对应的是一个URL,然后对每一个网页进行打分,每一条记录的单词权值为INITSCORE*WEIGHT+(TOTALTIMES-1)*WEIGHT* INCREMENT。其中INITSCORE为每一个单词的基准分数,TOTALTIMES为该单词在网页中的出现的次数,WEIGHT是该单词在不同的内容段出现有不同的权值(比如在KEYWORD段,或者是标题段,或者是内容段等等)。INCREMENT是该单词每多出现一次所增加的分数。
---- 3.根据用户指定的m_maxReturnSum,显示匹配程度最高的前m_maxReturnSum页。
---- 四、结束语
---- 我们利用上面所讨论的机制,在WINDOWS NT操作系统下,用VC++和SQL SERVER实现了一个Web搜索引擎的网页搜集过程。在建立了一个基本的搜索引擎的框架以后,我们可以基于这个框架,实现一些我们自己设计的算法,比如如何更好的进行Spider的调度,如何更好的进行文档的归类,如何更好的理解用户的查询,用来使Web搜索引擎具有更好的智能性和个性化的特点。