6

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

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

4

4 回答 4

10

语言几乎无关紧要。存在另一个问题,对此进行了更多讨论。基本上,建议的方法是使用谷歌。提取部分目标文本,并在 Google 上搜索它们。

于 2009-07-28T11:14:05.857 回答
5

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

  1. 标记文档。

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

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

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

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

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

希望它有所帮助。

于 2017-08-03T18:03:53.510 回答
0

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

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”的内容。

于 2020-08-16T17:32:25.553 回答
-4

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

于 2010-10-21T07:41:32.247 回答