一直在做自然语言处理相关的应用开发工作,一直没能抽时间做相关的系统组件或是算法分析工作,最近有时间,将自然语言处量相关的分词、 搜索、各种计算统计分析模型都看了下,收获不少,因时间关系,就以自己的见解来解释下好像挺复杂的vsm吧,其实超简单。
1、 vsm,即向量空间模型(vector space model)的意思,本身是一种数学模型,来解决NLP(自然语言处理的简称,Nature Language Processing)遇到的问题,主要是相似性计算,应用方向为数据分类等,应用范围很广,比如爬虫中的相似性网页去重、文本信息分类等。
2、 以文本分类为例,来判断网页A和网页B是不是属于新闻类的内容
?
这样的情景对于爬虫来说是经常见的,比如抓取的很多网页,尤其是在内容方面,是属于哪一类的网页,如新闻类、体育类等等。对于像google、百度总体上都是采用这种模型来进行相似性计算,从而得到A、B的相似性,进而达到分类的目的。具体做法如下:
(1)向量空间模型的建立。vsm的应用是建立在大量的训练集为基础,在新闻类的训练文本基础之上,得到n个关键词的特征(包括关键词word,以及对应的权重weight)集合(t1,weight1),(t2,weight2),(t3,weight3)...(tn,weightn),以此建立n维特征向量空间。
(2)权重的计算可由TF/IDF的IDF来获得,从而也可以得到每篇文章对应的向量空间模型值,设经过训练得到的模型的阀值,定阀值为平均数thresHold=0.7。
(3)对A、B进行分词操作,分别得到各自对应的t1、t2、t3.....tn特征值,如包括t1=3次,t2=0次.....tn=x次,从页得到各自的特征向量空间值,然分别进行加权取总和,S(A)=times(t1)*weigh1+times(t2)*weight2+....times(tn)*weightn= 0.9, S(B)=0.8,可知S(A)>S(B)>thresHold,A、B属于同一类,且都属于新闻类。
3、小2中的问题和解决方法是一个典型的应用,如果要计算A、B的相似性呢?就要用到传说中的余弦定理,通过计算二者的向量空间的夹角来得到余弦值,当然是越大代表相似越高,0代表没关系,1可以代表是相同的。
在2的分析基础之上,给出余弦计算公式为: 其中A、B对应的每一维的向量值为x1,y1。
以上均为今天所学之理解,不当之处欢迎交流纠正~