下载此文档

关于文本相似度计算-ardSimilarity和哈希签名函数.doc


文档分类:IT计算机 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
关于文本相似度计算-ardSimilarity和哈希签名函数
在目前这个信息过载的星球上,文本的相似度计算应用前景还是比较广泛的,他可以让人们过滤掉很多相似的新闻,比如在搜索引擎上,相似度太高的页面,只需要展示一个就行了,还有就是,考试的时候,可以用这个来防作弊,同样的,论文的相似度检查也是一个检查论文是否抄袭的一个重要办法。
文本相似度计算的应用场景
过滤相似度很高的新闻,或者网页去重
考试防作弊系统
论文抄袭检查
光第一项的应用就非常广泛。
文本相似度计算的基本方法
文本相似度计算的方法很多,主要来说有两种,一是余弦定律,ardSimilarity方法,余弦定律不在本文的讨论范围之内,ardSimilarity方法。
ardSimilarity方法
ardSimilarity说起来非常简单,容易实现,实际上就是两个集合的交集除以两个集合的并集,所得的就是两个集合的相似度,直观的看就是下面这个图。
数学表达式是:
|S ∩ T|/|S ∪ T|
恩,基本的计算方法就是如此,而两个集合分别表示的是两个文本,集合中的元素实际上就是文本中出现的词语啦,我们需要做的就是把两个文本中的词语统计出来,然后按照上面的公式算一下就行了,其实很简单。
统计文本中的词语
关于统计文本中的词语,可以参考我的另外一篇博文一种没有语料字典的分词方法,文章中详细说明了如何从一篇文本中提取有价值的词汇,感兴趣的童鞋可以看看。
当然,本篇博客主要是说计算相似度的,所以词语的统计使用的比较简单的算法k-shingle算法,k是一个变量,表示提取文本中的k个字符,这个k可以自己定义。
简单的说,该算法就是从头挨个扫描文本,然后依次把k个字符保存起来,比如有个文本,内容是abcdefg,k设为2,那得到的词语就是ab,bc,cd,de,ef,fg。
得到这些词汇以后,然后统计每个词汇的数量,ardSimilarity算法来计算相似度。
具体的简单代码如下:
[python] view plaincopyprint?
file_name_list=["/Users/wuyinghao/Documents/",  
                "/Users/wuyinghao/Documents/",  
                "/Users/wuyinghao/Documents/"]  
hash_contents=[]  
  
#获取每个文本的词汇词频表  
for file_name in file_name_list:  
    ([getHashInfoFromFile(file_name,5),file_name])  
      
  
for index1,v1 in enumerate(hash_contents):  
    for index2,v2 in enumerate(hash_contents):  
        if(v1[1] != v2[1] and index2>index1):  
            intersection=calcIntersecti

关于文本相似度计算-ardSimilarity和哈希签名函数 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
最近更新