同学:你因作业作弊已被AI抓获,Python制作一款AI检测抄袭小脚本。

同学:你因作业作弊已被AI抓获,Python制作一款AI检测抄袭小脚本。

​导语

你的童年我的童年好像都一样

小小身体大大书包上呀上学堂

世界上本没有喜欢上学的小孩

被爸妈打多了,也就有了~

同学:你因作业作弊已被AI抓获,Python制作一款AI检测抄袭小脚本。

上学意味着什么呢~意味着开始做作业

假期作业没写怎么办?赶紧拿姐妹的来抄,你心里悄咪咪的笑了,终于赶上了最后学委去办公室的那趟高速。

同学:你因作业作弊已被AI抓获,Python制作一款AI检测抄袭小脚本。

​哈哈哈这很可以,童年的真实情况一览无余了。今天我还看到一个笑话:

为防抄作业,爸爸要求将五胞胎分在五个班 。

同学:你因作业作弊已被AI抓获,Python制作一款AI检测抄袭小脚本。

这操作真神了,但是哪用这么麻烦撒!

今天小编带大家写一款抄袭检测小脚本,在家就能知道你孩子的作业都互相抄袭了没~

正文

首先载入所有必要的模块(1):

import os
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity

使用OS模块加载文本文件的路径,然后使用TfidfVectorizer对文本数据和余弦相似度执行词嵌入,来计算是否存在抄袭。(2):

用列表推导式(List Comprehension)读取所有文本文件

同学:你因作业作弊已被AI抓获,Python制作一款AI检测抄袭小脚本。
student_files =[doc for doc in os.listdir() if doc.endswith( .txt )]

使用Lambda功能来向量化并计算相似性(3):

同学:你因作业作弊已被AI抓获,Python制作一款AI检测抄袭小脚本。
vectorize =lambda Text: TfidfVectorizer().fit_transform(Text).toarray()
similarity = lambda doc1, doc2:cosine_similarity([doc1, doc2])

同学:你因作业作弊已被AI抓获,Python制作一款AI检测抄袭小脚本。

加入下列两行代码,将加载的学生文件向量。

vectors =vectorize(student_notes)
s_vectors = list(zip(student_files,vectors))

同学:你因作业作弊已被AI抓获,Python制作一款AI检测抄袭小脚本。
def check_plagiarism():
    plagiarism_results = set()
    global s_vectors
    for student_a, text_vector_a in s_vectors:
        new_vectors=s_vectors.copy()
        current_index = new_vectors.index((student_a,text_vector_a))
        del new_vectors[current_index]
        for student_b , text_vector_b in new_vectors:
            sim_score =similarity(text_vector_a, text_vector_b)[0][1]
            student_pair= sorted((student_a, student_b))
            score = (student_pair[0], student_pair[1],sim_score)
            plagiarism_results.add(score)
    return plagiarism_results
Let's print plagiarism results
for data in check_plagiarism():
    print(data)

同学:你因作业作弊已被AI抓获,Python制作一款AI检测抄袭小脚本。
import os
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity

student_files = [doc for doc in os.listdir() if doc.endswith( .txt )]
student_notes=[open(File).read() for File in student_files]

vectorize = lambda Text:TfidfVectorizer().fit_transform(Text).toarray()
similarity = lambda doc1, doc2: cosine_similarity([doc1,doc2])

vectors = vectorize(student_notes)
s_vectors= list(zip(student_files, vectors))

def check_plagiarism():
    plagiarism_results = set()
    global s_vectors
    for student_a, text_vector_a in s_vectors:
        new_vectors=s_vectors.copy()
        current_index = new_vectors.index((student_a,text_vector_a))
        del new_vectors[current_index]
        for student_b , text_vector_b in new_vectors:
            sim_score =similarity(text_vector_a, text_vector_b)[0][1]
            student_pair= sorted((student_a, student_b))
            score = (student_pair[0], student_pair[1],sim_score)
            plagiarism_results.add(score)
        return plagiarism_results

for data in check_plagiarism():
    print(data)

同学:你因作业作弊已被AI抓获,Python制作一款AI检测抄袭小脚本。

抄袭检测器完成啦!老师们用起来,广大中小学生们的美梦就此结束了。

同学:你因作业作弊已被AI抓获,Python制作一款AI检测抄袭小脚本。

Original: https://blog.csdn.net/weixin_55822277/article/details/119969771
Author: 顾木子吖
Title: 同学:你因作业作弊已被AI抓获,Python制作一款AI检测抄袭小脚本。

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/545121/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球