1701009236
如果令,其中θi为单位向量x和θi之间的夹角。
1701009237
1701009238
对于我们的例子,有:
1701009239
1701009240
1701009241
1701009242
1701009243
由于y5=0.635为y中最接近1的元素,说明搜索向量x接近q5的方向,因此模块5应当是最接近搜索标准的一个。接下来最接近搜索标准的一个应该依次是模块6(y6=0.577)和模块3(y3=0.567)。注意到一个模块不包括符合要求的搜索关键词,当且仅当它对应的数据库矩阵列向量与搜索向量x正交。例如,模块1和模块7不包含所需要的搜索关键词,因此有:
1701009244
1701009245
1701009246
1701009247
1701009248
本例说明了一些数据库搜索的基本思想,即利用现代矩阵方法,我们可以对搜索过程进行显著改善,并加快了搜索速度,同时纠正多义词或同义词可能导致的错误。这一新的技术被称为潜语义索引方法,它依赖于矩阵分解及奇异值分解等矩阵方法。
1701009249
1701009250
采用MATLAB软件进行编程计算,编程如下:
1701009251
1701009252
clc,clear,close all %清屏和清除变量 warning off %消除警告 Q=[0,6,3,0,1,0,1,1; %矩阵Q 0,0,0,0,0,5,3,2; 5,4,4,5,4,0,3,3; 6,5,3,3,4,4,3,2; 0,0,0,0,3,0,4,3; 0,0,0,0,3,0,4,3; 0,0,5,2,3,3,0,1; 5,3,3,2,4,2,1,1; 0,0,0,5,1,3,1,0; 0,4,4,3,4,1,0,3]; for i=1
:8 Q1(
:,i)=Q(
:,i)./norm(Q(
:,i)); % qj=aj/‖aj‖ end Q1 x=[0,0,0,0,0,1,1,0,0,1]’; x1 = x./sqrt(3) %单位搜索向量
1701009253
1701009254
运行程序如下:
1701009255
1701009256
Q1 = 0 0.5941 0.3273 0 0.1037 0 0.1270 0.1459 0 0 0 0 0 0.6250 0.3810 0.2917 0.5392 0.3961 0.4364 0.5735 0.4148 0.5000 0.3810 0.2917 0.6470 0.4951 0.3273 0.3441 0.4148 0 0.3810 0.4376 0 0 0 0 0.3111 0 0.5080 0.4376 0 0 0 0 0.3111 0 0.5080 0.4376 0 0 0.5455 0.2294 0.3111 0.3750 0 0.1459 0.5392 0.2970 0.3273 0.2294 0.4148 0.2500 0.1270 0.1459 0 0 0 0.5735 0.1037 0.3750 0.1270 0 0 0.3961 0.4364 0.3441 0.4148 0.1250 0 0.4376 x1 = 0 0 0 0 0 0.5774 0.5774 0 0 0.5774
1701009257
1701009258
1701009259
1701009260
1701009262
我和数学有约:趣味数学及算法解析 7.7 中文自动分词方法
1701009263
1701009264
自动分词在互联网有着极其广泛的应用。当你在搜索引擎中搜索“我和数学有约”时,搜索引擎通常会帮你找出同时含有“我和”、“数学”和“有约”的网页,即使这三个词在输入时中间有空格。一个好的新闻网站通常会有“相关文章推荐”的功能,这也要依赖于自动分词的算法。不过,要想让计算机准确切分一句话,并不是那么容易。
1701009265
1701009266
我就曾经看到过,某网站报道西南交大学生怎么样怎么样,结果相关文章里列出的全是西南交通大学的新闻。这多半是分词算法错误地把标题中的“西南交大学生”当成了一个词。
1701009267
1701009268
中文自动分词技术是以“词”为基础,但汉语书面语不是像西方文字那样有天然的分隔符(空格),而是在语句中以汉字为单位,词与词之间没有明显的界限。因此,对于一段汉字,人可以通过自己的知识来明白哪些是词,哪些不是词,但如何让计算机也能理解?其处理过程词,就要应用到中文自动分词技术。
1701009269
1701009270
【问题】那么,如何让计算机准确地切分一句话呢?
1701009271
1701009272
【分析】
1701009273
1701009274
自动分词的主要困难在于分词歧义。“结婚的和尚未结婚的”,应该分成“结婚/的/和/尚未/结婚/的”,还是“结婚/的/和尚/未/结婚/的”?
1701009275
1701009276
我们来判断很容易,要交给计算机来处理就麻烦了。
1701009277
1701009278
问题的关键就是,“和尚未”里的“和尚”也是一个词,“尚未”也是一个词。从计算机的角度看上去,两者似乎都有可能。对于计算机来说,这样的分词困境就叫做“交集型歧义”。
1701009279
1701009280
有时候,交集型歧义的“歧义链”有可能会更长。
1701009281
1701009282
“中外科学名著”里,“中外”、“外科”、“科学”、“学名”、“名著”全是词,光从词库的角度来看,随便切几刀下去,得出的切分都是合理的。类似的例子数不胜数,“提高产品质量”、“鞭炮声响彻夜空”、“努力学习语法规则”和“中国企业主要求解决”等句子都有这样的现象。在这些极端例子下,分词算法谁优谁劣可谓是一试便知。
1701009283
1701009284
最简单的,也是最容易想到的自动分词算法,便是“最大匹配法”了。也就是说,从句子左端开始不断匹配最长的词(组不了词的单字则单独划开),直到把句子划分完。算法的理由很简单:人在阅读时也是从左往右逐字读入的,最大匹配法是与人的习惯相符的。而在大多数情况下,这种算法也的确能侥幸成功。不过,这种算法并不可靠,构造反例可以不费吹灰之力。例如,“西南交通大学生前来应聘”本应是“西南交通/大学生/前来/应聘”,却会被误分成“西南交通大学/生前/来/应聘”。
1701009285
[
上一页 ]
[ :1.701009236e+09 ]
[
下一页 ]