识别语料库中的近重复项

NearDuplicatesDetection的Python项目详细描述


#近重复检测(near duplicate detection)

此程序使用康奈尔大学威廉·阿姆斯教授在2012年秋季《信息4300,信息检索》的学生讲座中描述的技术来识别语料库中的近重复。


此程序由帕克·摩尔(PJM336)编写,2012年秋季2012年。




````
pip install git://github.com/parkr/near dup detection.git ```>egg=near duplicatdesdetection
```
`
` ` `
` ` `使用


` ` `




/>` ` ` ` ` ` ` ` `
` ` ` ` ` ` ` ` ` ` ` ` `检测器类
(`detector.py`)。该类包含检测近重复项所需的方法和实例变量,例如“get_jaccard(file1,file2)”方法、“calculate_sketchs()”方法和基本的“create_3grams()”方法。

该程序实现了检测近重复项的标准过程:

1。为每个文档生成n-grams(本例中为3-grams)。根据64位散列给这些
n-grams分配一个唯一的id。
2。根据50个随机选择的
数字和我们之前生成的一些内容为文档创建25个草图:
-`p`是距离n个随机数最接近的素数,在[1,p-1]
-`b`u's`随机数的范围[0,p-1]
-`x`是n-gram id(步骤1中生成的散列)
-使用公式:`f_s(x)=(a_s*x+b_s)%p`
-注意:此公式为每个文档计算25次(每个
随机对'a_s'和'b_s'计算一次),但仅保存25对中每个对
`f_s(x)`的最小结果。因此,在
计算结束时,每个文档有25个“f_min”,每个
对随机数对应一个。浏览每个文档,并使用
jaccard系数估算公式将其与所有其他文档进行比较:`j(d1,d2)=m/n`,其中:
-`m`=两个文档之间相同的草图值数目(必须在相应的
列表中位于同一索引处)
-`n`=样本数目(草图)
4。在定义了任意jaccard系数阈值“0.5”之后,
程序将打印出jaccard系数
大于先前定义的阈值的文档的名称,以及相应的
jaccard系数。

作为项目的附录,前十个
文档的三个“最近邻居”在最后使用相同的方法计算(以及之前
的数据)。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Spring数据elasticsearch@Query嵌套对象注释   java JAXB解组器正在跳过具有其他命名空间的元素   java Web视图文件选择器崩溃问题   macos通过java创建的应用程序访问MacOSX上的麦克风,并打包到。dmg   在子文件夹上使用java设置ACL的文件权限失败(缺少继承)   java Force在AlertDialog中显示软键盘   java如何保存上传的文件   java如何从jpeg文件中的FFC4(DHT)头创建哈夫曼树?   关于高性能流数据处理的java问题   SpringMVC项目中Tiles页面的java集标题   从Java到Webview Javascript的Android回调函数   java无法从循环打印“FlimFlam”   OpenJDK安装时没有java命令