请问如何计算文本相似度? 在网上搜索过资料,但是很多地方不明白例如使用余弦定理,首先要对文本分词处理,怎么才能比较好的分词呢?分词后还要用VSM向量化,请问如何向量化?可否举个例子?而且听说这个方法计算出来的相似度准确度不高,经常误差很大,难道没有解决办法的吗?或者还有没有其他计算方法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 本帖最后由 viena 于 2008-07-31 10:24:47 编辑 本帖最后由 viena 于 2008-07-31 10:25:02 编辑 你要简单的话不需要采用向量匹配, google "编辑距离"算法. 你google "中科院中文分词系统" 不要考虑太多,我到现在都没找到有谁实现了VSM的最原始的算法的呢,都在论文里面吹得昏天黑地的,可是具体想想到用程序实现时才发现都有很多问题,也不知他们怎么弄的,讲的都是千篇一律,什么首先特征词选取,然后赋权重,得到空间向量,利用余弦公式进行计算即可。唉,我就是不懂:比如现在就是有两篇英文文章(VSM起源于英语文章的研究),怎样利用VSM算法比较他们的相似度?解题思路:1.对第一篇文章统计所有出现的单词及其出现的次数,利用TF-IDF赋权重。然后用权重作为向量值。2.对第二篇文章也进行这样的处理,此时有个问题,第二篇文章中的单词顺序必须与第一批文章相同吗?因为向量的内积就要求只有相应的项才可以运算,在第一篇出现的词若第二篇没出现就直接记为0吗?一旦这两个向量构造出来,那就没问题了,直接利用余弦公式计算即可。 所以,请高手们讲讲这两个向量怎么构造呢?不要考虑什么其他的语义的了,现在就是先要实现VSM算法... 一般第二步要按权重进行排序,然后只取前N个,N自己定吧。d1,d2中有一方没出现某个词,相应项的乘积自然就是0;只要出现了1个相同的词,整体就不会得到0值,0值意味着d1,d2毫不相干。相同的词越多=>内积越大=》cos值越小=>夹角越小=>d1,d2越相似。?解题思路:1.对第一篇文章统计所有出现的单词及其出现的次数,利用TF-IDF赋权重。然后用权重作为向量值。2.对第二篇文章也进行这样的处理,此时有个问题,第二篇文章中的单词顺序必须与第一批文章相同吗?因为向量的内积就要求只有相应的项才可以运算,在第一篇出现的词若第二篇没出现就直接记为0吗?一旦这两个向量构造出来,那就没问题了,直接利用余弦公式计算即可。 楼主问题解决了没?我现在在做这个,如果解决了,也告诉我一下啊!不过对于这个我也查了很多资料,对于24楼所说的表示人认同,但是如果是英文可以统计单词出现次数,如果是中文,就设计中文分词的内容,中文分词又可以用基于字符串匹配(有正向,逆向,最小切分,还需要海量词典),有基于语义理解,有基于统计分词的(统计相邻词语出现次数),还有现成的包比如lucene,该怎么进行中文分词比较妥当呢? vs2005 用OleDbDataAdapter不能从存贮过程取到数据 C# ComboBox问题 窗体不能响应keydown事件 如何进行文件名匹配? DataGrid 请问如何把一个已经存在的DataSet更新到数据库? 我将常用的用户信息保存在cache中:HttpRuntime.Cache.Insert(key, item);但怎样可修改它而不影响其它用户对它的访问? 请问一个关于格式化日期的问题 大家来看看呀! c# 怎么实现接收笔记本触摸板的指纹识别信息 c#.net中windowsform加了一个webBrowser,请问该如何在程序中更改URL? 程序提交表单,返回提交后的html
唉,我就是不懂:比如现在就是有两篇英文文章(VSM起源于英语文章的研究),怎样利用VSM算法比较他们的相似度?解题思路:
1.对第一篇文章统计所有出现的单词及其出现的次数,利用TF-IDF赋权重。然后用权重作为向量值。
2.对第二篇文章也进行这样的处理,此时有个问题,第二篇文章中的单词顺序必须与第一批文章相同吗?因为向量的内积就要求只有相应的项才可以运算,在第一篇出现的词若第二篇没出现就直接记为0吗?
一旦这两个向量构造出来,那就没问题了,直接利用余弦公式计算即可。
所以,请高手们讲讲这两个向量怎么构造呢?不要考虑什么其他的语义的了,现在就是先要实现VSM算法...
d1,d2中有一方没出现某个词,相应项的乘积自然就是0;只要出现了1个相同的词,整体就不会得到0值,0值意味着d1,d2毫不相干。相同的词越多=>内积越大=》cos值越小=>夹角越小=>d1,d2越相似。
?解题思路:
1.对第一篇文章统计所有出现的单词及其出现的次数,利用TF-IDF赋权重。然后用权重作为向量值。
2.对第二篇文章也进行这样的处理,此时有个问题,第二篇文章中的单词顺序必须与第一批文章相同吗?因为向量的内积就要求只有相应的项才可以运算,在第一篇出现的词若第二篇没出现就直接记为0吗?
一旦这两个向量构造出来,那就没问题了,直接利用余弦公式计算即可。
不过对于这个我也查了很多资料,对于24楼所说的表示人认同,但是如果是英文可以统计单词出现次数,如果是中文,就设计中文分词的内容,中文分词又可以用基于字符串匹配(有正向,逆向,最小切分,还需要海量词典),有基于语义理解,有基于统计分词的(统计相邻词语出现次数),还有现成的包比如lucene,该怎么进行中文分词比较妥当呢?