在网上搜索过资料,但是很多地方不明白例如使用余弦定理,首先要对文本分词处理,怎么才能比较好的分词呢?分词后还要用VSM向量化,请问如何向量化?可否举个例子?而且听说这个方法计算出来的相似度准确度不高,经常误差很大,难道没有解决办法的吗?或者还有没有其他计算方法?

解决方案 »

  1.   

    本帖最后由 viena 于 2008-07-31 10:24:47 编辑
      

  2.   

    本帖最后由 viena 于 2008-07-31 10:25:02 编辑
      

  3.   

    你要简单的话不需要采用向量匹配, google "编辑距离"算法.
      

  4.   

    你google "中科院中文分词系统"
      

  5.   

    不要考虑太多,我到现在都没找到有谁实现了VSM的最原始的算法的呢,都在论文里面吹得昏天黑地的,可是具体想想到用程序实现时才发现都有很多问题,也不知他们怎么弄的,讲的都是千篇一律,什么首先特征词选取,然后赋权重,得到空间向量,利用余弦公式进行计算即可。
    唉,我就是不懂:比如现在就是有两篇英文文章(VSM起源于英语文章的研究),怎样利用VSM算法比较他们的相似度?解题思路:
    1.对第一篇文章统计所有出现的单词及其出现的次数,利用TF-IDF赋权重。然后用权重作为向量值。
    2.对第二篇文章也进行这样的处理,此时有个问题,第二篇文章中的单词顺序必须与第一批文章相同吗?因为向量的内积就要求只有相应的项才可以运算,在第一篇出现的词若第二篇没出现就直接记为0吗?
    一旦这两个向量构造出来,那就没问题了,直接利用余弦公式计算即可。  
    所以,请高手们讲讲这两个向量怎么构造呢?不要考虑什么其他的语义的了,现在就是先要实现VSM算法...
      

  6.   

    一般第二步要按权重进行排序,然后只取前N个,N自己定吧。
    d1,d2中有一方没出现某个词,相应项的乘积自然就是0;只要出现了1个相同的词,整体就不会得到0值,0值意味着d1,d2毫不相干。相同的词越多=>内积越大=》cos值越小=>夹角越小=>d1,d2越相似。
    ?解题思路:
    1.对第一篇文章统计所有出现的单词及其出现的次数,利用TF-IDF赋权重。然后用权重作为向量值。
    2.对第二篇文章也进行这样的处理,此时有个问题,第二篇文章中的单词顺序必须与第一批文章相同吗?因为向量的内积就要求只有相应的项才可以运算,在第一篇出现的词若第二篇没出现就直接记为0吗?
    一旦这两个向量构造出来,那就没问题了,直接利用余弦公式计算即可。   
      

  7.   

    楼主问题解决了没?我现在在做这个,如果解决了,也告诉我一下啊!
    不过对于这个我也查了很多资料,对于24楼所说的表示人认同,但是如果是英文可以统计单词出现次数,如果是中文,就设计中文分词的内容,中文分词又可以用基于字符串匹配(有正向,逆向,最小切分,还需要海量词典),有基于语义理解,有基于统计分词的(统计相邻词语出现次数),还有现成的包比如lucene,该怎么进行中文分词比较妥当呢?