当前位置: 首页 > 知识库问答 >
问题:

比较木瓦以进行近重复检测

宗翔宇
2023-03-14

我正在编写shingling代码来比较几乎重复的代码。我在比较代码上有点卡住了。这是我迄今为止的粗略尝试。

//shingles are already hashed integers and I'm working on the evaluation to true via the float similar parameter.
public static boolean compareShingles(float similar, CompareObject comp1, CompareObject comp2) {
        int intersections = 0;
        if(comp1.getShingle().size()>=comp2.getShingle().size()){
        for(int i = 0; i < comp1.getShingle().size(); i++){

              if(comp1.getShingle().get(i).equals(comp2.getShingle().get(i))){
              intersections++;
              }

        }
        }
        else{
              for(int i = 0; i < comp2.getShingle().size(); i++){
                    if(comp2.getShingle().get(i).equals(comp1.getShingle().get(i))){
                    intersections++;
                    }

              }
        }
        return true; //not functional still working on when to return true
  }

如果我应该比较阵列中的这些木瓦1-1,或者我应该比较一个木瓦和一个循环中的所有木瓦,我有点困惑。

例如,如果我循环比较每个木瓦和其他木瓦,那么这些文档将是相同的。。。

{blah blah blah, Once upon a, time blah blah}
{Once upon a, time blah blah, blah blah blah}

如果我在相同的文档上进行了位置比较,那么位置1将是“废话废话”,而不是“曾经的”,这将返回false。

我认为循环将更加密集,但它可能是正确的选择。思想?

共有1个答案

鲁建茗
2023-03-14

顺序并不重要...

您基本上制作瓦片集并将它们与Jaccard相似性进行比较。有一个哈希来自动丢弃重复的瓦片会有所帮助。只需计算每个文档之间的匹配项,并找出需要匹配多少个才能认为它们相似。

http://ethen8181.github.io/machine-learning/clustering_old/text_similarity/text_similarity.html

 类似资料:
  • 很抱歉,如果以前有人问过这个问题,但我非常不确定如何制定我的搜索以获得任何相关结果。 基本上,我有一个类“Wheel”,在该类中,我声明==操作符应该如何工作: 除非车轮的半径和转速与其他车轮相同,否则此操作有效,除非已切换。因此,换句话说,对于以下情况,它不会返回true: 2*PI*3*10 vs 2*PI*10*3 即使我把它打印出来,并且它们在控制台中是完全一样的(除非我的基本数学知识完全

  • 问题内容: 这个问题已经在这里有了答案 : Python If == true语句仅在readline的最后一行有效 (1个答案) 2年前关闭。 我试图将我的一行与一个字符串进行比较,但是这行不通。我正在读取一个html文件,我需要解析该文件以将该部分发送到字典,但是当我使用if将行之一与字符串进行比较时,匹配时不会返回True。 这是代码: 问题答案: 我认为这是因为它尝试读取字符串中的换行符:

  • 可能重复: 比较浮点值 比较浮点值有多危险? 我不明白,为什么比较实数是编程中的一种不好的做法?当然,我理解实数可以用一定的精度来表示。你能给我解释一个不比较这类数字的重要理由吗?例子会很好,文章也是受欢迎的。事先谢谢你。

  • 问题内容: 为了比较两个浮点数(float64)在Go中的相等性,我对IEEE 754和浮点数的二进制表示的肤浅理解使我认为这是一个很好的解决方案: 问题是:与旧的hack 相比,这是一种更通用,更精确,更有效的方法来比较两个任意大或小的浮点数以“几乎相等” 吗?我的理由是,如果一个二进制表示形式仅允许一位差异,那么除了严格的相等性(显然可以如注释中所指出的那样)之外,比较的数字当然不能再相等了(

  • 我做错了什么,怎么修复?

  • 我有这个代码: 我的IDE说:这看起来应该简化,即Python链式比较。 什么是链式比较,如何简化?