赞
踩
转自:http://blog.sina.com.cn/s/blog_a1304cff0101aj29.html
由于工作需要,我需要判断一篇文章是否是你喜欢的文章。
这涉及到文本分析,有一个简单的方法可供参考。向量空间模型(VSM)算法。
在该方法中,我们把一篇文章抽象成一个向量。
假设向量由n个词组成,每个词的权重是kn。假设文章D是你喜欢的文章,那么
文章 D=(k1,k2,k3,k4,k5.....kn),这是一个多维的向量。
如果维数很多,将来计算起来很麻烦,我们需要降维处理,所谓的降维就是,选出有代表性的特征词,这样就降低了维数。 可以人工选择。也可以自动选择,自动选择的话,可以采用开方拟和检验方法,如果有时间,我会在以后详细介绍该方法。
选择特征词后,就需要计算它的权重了,可以采用词频来计算,Term frequency TF = N/M M为文章的词数,N为该特征词出现的词数。 当然了,如果你选择的特征词是 “的” 这个很一般的词 ,我们还需要为其修正。计算Inverse documentfrequency 逆向文本频率,是用于衡量关键词权重的指数 IDF = log(D/Dw) (手画的公式,请多包涵。) 其中D为总文章数,Dw为关键词 出现过的文章数。
这样一来,就需要一群你喜欢的文章,才可以计算IDF。
计算结束后,我们得出你喜欢的文章D = (w1,w2,w3....wm); 共有m个关键词,权重依次为w1,w2...wm。
好,下面,重点来了,给出一篇文章E,判断它和你喜欢的D 的相似度是多少,如果相似度很高的话,则可以认为E也是你喜欢的文章。
采用上面的方法,计算出E = (q1,q2,q3...qm);
我们来通过两个多维向量的夹角的余弦值来表征 2个文章的相似度。 为啥?两个向量的夹角越小,它们越靠近,我们就认为2个文章越相似呗。夹角越小,越相似,余弦值越高。
2个多维向量的夹角余弦计算公式:cosθ = (公式还是手画的。呵呵。)
亲,你知道的,就是两个向量的点积 除以 2个向量的模的积。
计算过后,就可以得到相似度了。 我们可以事先人工选择2个相似度高的文档,计算相似值,然后规定其为阀值。
编外:这是判定一个文章和你喜欢的文章的相似度,但是如何判定一个文章和一群你喜欢的文章的相似度呢?就是如何判定一个文章和一类文章相似度的问题。我们可以一一计算,然后取平均值。但是我希望找到几何上能够表征一群向量的中心的方法,这样,计算给定向量和中心向量的余弦似乎更合理。
编外的编外:向量空间模型(VSM)算法把一个语言的问题转化成了一个数学问题,这种思想非常的好,我们可以尝试着,把一些问题转化为数学问题,用数学的手段来解决。这就需要我们赋予问题,数学上的意义,例如本文,将文章赋予 多维向量的意义。
编外的编外的编外: 为啥那个你喜欢的文章我取名叫D? 有没有看过《吸血鬼猎人D》主角的名字就叫做D,他是吸血鬼王和人类女人的儿子,所以不怕阳光,还有吸血鬼的能力,专门猎杀吸血鬼,而且永远不老。超酷的动画电影,画风精致。