1701009141
1701009142
对于简单的匹配分析,只需要在数据库中使用0和1,而不必考虑关键字出现的频率,因此矩阵中,aij=1表示第i个单词出现在第j个书名中,反之,aij=0表示第i个单词没有出现在第j个书名中。
1701009143
1701009144
假设搜索引擎足够的优秀,它可以识别同一个中文字的不同形式(如名词、形容词和副词等),如B1、B2、B3和B4四本书名中,对应的数据库矩阵可以表示如表7-1所示。
1701009145
1701009146
表7-1 书籍陈列数据库的阵列表示
1701009147
1701009148
1701009149
1701009150
1701009151
如果搜索的关键词为“智能算法和MATLAB”,则数据库矩阵和搜索向量分别为:
1701009152
1701009153
1701009154
1701009155
1701009156
1701009157
则相应的得,
1701009158
1701009159
1701009160
1701009161
1701009162
其中y中第一个元素0就是搜索关键字在第一个书名中的数量,y中第二个元素2就是搜索关键字在第二个书名中的数量,y中第三个元素1就是搜索关键字在第三个书名中的数量,y中第四个元素0就是搜索关键字在第四个书名中的数量,如果搜索设置为匹配所有搜索单词,那么搜索引擎返回B2:MATLAB智能算法应用分析——余胜威,接下来相应的网页上逐个显示B3:MATLAB之车辆工程应用实战——余胜威、B1:我和数学有约——余胜威和B4:数学建模案例分析——余胜威。
1701009163
1701009164
相应的MATLAB程序如下:
1701009165
1701009166
clc,clear,close all %清屏和清除变量 warning off %消除警告 A=[1,0,0,1; %矩阵A 0,1,1,0; 0,1,0,0; 0,0,1,0; 0,0,0,1; 0,0,0,1; 1,1,1,1]; x = [0,1,1,0,0,0,0]’; y=A’*x %矩阵乘法
1701009167
1701009168
运行程序如下:
1701009169
1701009170
y = 0 2 1 0
1701009171
1701009173
7.6.2 相对频率搜索
1701009174
1701009175
非营利数据库的搜索通常会包含所有关键字的文档,并将这些文档按照相对频率进行排列。
1701009176
1701009177
此时,数据库矩阵的元素能够反应出关键字在文档中出现的频率。例如,假设数据库所有的关键字的字典中第6个关键字为“案例”,第7个为“余胜威”,字典中的单词采用字母排序排列,如果“案例”和“余胜威”在文档中各出现6次和10次,而整个数据库中第4个文档中包含关键词的次数为100次,则“案例”的相对频率为0.06,“余胜威”出现的相对频率为0.1,并且它们对应的数据库矩阵A有对应元素a64=0.06和a74=0.06。
1701009178
1701009179
1701009180
1701009181
未来搜索这两个关键词,我们取向量x,使得x6=x7=1,且对于不等于6和7的下标i,在此取。然后计算。
1701009182
1701009183
1701009184
y中对应于文档4的元素为,这说明文档4中出现关键词的总数为16次,占关键词出现总数100的0.16。如果y4为向量y中最大分量,则说明数据库中的文档j包含关键词的相对频率最大,那么搜索引擎(如百度和Google等)返回的结果中该文档4出现在其他文档最前面,表示该文档与用户查询的最匹配。
1701009185
1701009187
7.6.3 潜语义索引搜索
1701009188
1701009189
1701009190
[
上一页 ]
[ :1.701009141e+09 ]
[
下一页 ]