【问题标题】:How to develop a Plagiarism detector?如何开发抄袭检测器?
【发布时间】:2009-07-28 11:09:53
【问题描述】:

我计划制作一个抄袭检测器作为我计算机科学工程的最后一年项目,为此我想听听你的建议。

如果您能建议我需要关注 CS 中的所有领域以及最适合实施的语言,我将不胜感激。

【问题讨论】:

  • 这个是你从stackoverflow.com/questions/1085048/…偷来的吗?
  • 你是不是从 stackoverflow.com/questions/1085048/... 偷了这个?
  • 你是不是从 stackoverflow.com/questions/1085048/... 偷了这个?
  • 我们可以称之为“抄袭”吗?
  • @skaffman、@MusiGenesis、@Mark - 为什么“偷”???听起来像是“微软从苹果那里窃取了 Windows 创意”

标签: projects


【解决方案1】:

语言几乎无关紧要。 Another questions 存在,对此进行了更多讨论。基本上,建议的方法是使用谷歌。提取部分目标文本,然后在 Google 上搜索。

【讨论】:

    【解决方案2】:

    我正在使用 Python 作为一个爱好项目来制作一个抄袭检查器。 应遵循以下步骤:

    1. 标记文档。

    2. 使用 NLTK 库删除所有停用词。

    3. 使用 GenSim 库并逐行查找最相关的单词。这可以通过创建文档的 LDA 或 LSA 来完成。

    4. 使用 Google Search API 搜索这些词。

    注意: 您可能已经选择使用 Google API 并一次搜索整个文档。当您处理少量数据时,这将起作用。但是,在为网站和网络抓取数据构建抄袭检查器时,我们需要应用 NLTK 算法。

    Google 搜索 API 将生成与 Python 的 GenSim 库函数中的 LDA 或 LSA 具有相同单词的热门文章。

    希望对您有所帮助。

    【讨论】:

      【解决方案3】:

      这是一个简单的代码来匹配两个文件之间的相似度百分比

      import numpy as np
      def levenshtein(seq1, seq2):
          size_x = len(seq1) + 1
          size_y = len(seq2) + 1
          matrix = np.zeros ((size_x, size_y))
          for x in range(size_x):
              matrix [x, 0] = x
          for y in range(size_y):
              matrix [0, y] = y
      
          for x in range(1, size_x):
              for y in range(1, size_y):
                  if seq1[x-1] == seq2[y-1]:
                      matrix [x,y] = min(
                          matrix[x-1, y] + 1,
                          matrix[x-1, y-1],
                          matrix[x, y-1] + 1
                      )
                  else:
                      matrix [x,y] = min(
                          matrix[x-1,y] + 1,
                          matrix[x-1,y-1] + 1,
                          matrix[x,y-1] + 1
                      )
          #print (matrix)
          return (matrix[size_x - 1, size_y - 1])
      
      with open('original.txt', 'r') as file:
          data = file.read().replace('\n', '')
          str1=data.replace(' ', '')
      with open('target.txt', 'r') as file:
          data = file.read().replace('\n', '')
          str2=data.replace(' ', '')
      if(len(str1)>len(str2)):
          length=len(str1)
      else:
          length=len(str2)
      print(100-round((levenshtein(str1,str2)/length)*100,2),'% Similarity')
      

      在同一个目录下创建两个文件“original.txt”和“target.txt”。

      【讨论】:

        【解决方案4】:

        你最好试试python,因为它很容易使用它来开发一个程序。我也在做一个关于剽窃检测器的项目。我建议你先标记字符串。实际上它很复杂,但这是方法如果您正在尝试开发源代码,否则如果您正在为文本文件开发抄袭检测器,请使用余弦相似度方法、LCS 方法或仅考虑位置..

        【讨论】:

          猜你喜欢
          • 2021-07-25
          • 1970-01-01
          • 2012-07-03
          • 2013-12-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-23
          相关资源
          最近更新 更多