如何开发抄袭探测器?

时间:2009-07-28 11:09:54

标签: projects

我打算将抄袭探测器作为我的计算机科学工程最后一年项目,我想就此采取建议。

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

4 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:0)

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

  1. 对文档进行标记。

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

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

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

  5. 注意: 您可能已选择使用Google API并立即搜索整个文档。当您处理较少量的数据时,这将起作用。但是,当为网站和网页编制数据构建抄袭检查程序时,我们需要应用NLTK算法。

    Google搜索API将导致顶级文章具有与Python的GenSim库函数中的LDA或LSA相同的单词。

    希望它有所帮助。

答案 2 :(得分: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”。

答案 3 :(得分:-2)

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