识别语料库中的近重复项

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什么会导致程序在它似乎拥有的监视器上被阻止?   java Android studio设置视图的背景色   java我可以保存一个文本文件而不给用户修改它的能力吗?   pdfbox PDFBOX2。0:java堆堆栈错误   java是维护和操作AllowList的有效方法   JAVAsql。SQLException:找不到适合jdbc的驱动程序:mysql://localhost:3306/asd性爱   如何使用java。lang.NullPointerException:void 安卓。支持v7。应用程序。ActionBar。setElevation(float)“”在空对象引用上'   java调试空指针异常   java正则表达式,以按令牌的特定匹配项拆分,同时忽略其他匹配项   java为JPanel设置边框上的笔划   并发@Schedule方法的java行为   如何在Java中使用泛型与语言运算符和泛型类扩展数   java Rhino Javascript如何为异常堆栈跟踪标记字符串源   运行可执行jar时发生java错误,无法找到或加载主类