python作业抄袭_怎样用Python检测抄袭行为?广大中小学生们的美梦就此结束

这篇博客介绍了如何使用Python检测文本相似性,通过计算余弦相似度来判断作业是否存在抄袭。首先,文章载入所需模块,如TfidfVectorizer,然后利用列表推导式读取所有.txt文本文件。接着,使用Lambda函数将文本向量化并计算相似性。最终,通过运行脚本,可以检测学生作业的抄袭情况,为教师提供帮助。
摘要由CSDN通过智能技术生成

怎样检测文档的相似性?

这里需要使用向量、点积的基本概念来确定两个文本的相似度,也就是计算学生的文本作业的向量代表之间的余弦相似度值。

356c1861ed581a58bd83795988eb38da.png

此外还需要学生作业中的样本文档来测试模型。文本文件必须与脚本位于同一目录中,扩展名为“.txt”。文件目录如下:

036016b53fbab4c5adae09f0a7b89b80.png

一起来搭建抄袭探测器

· 首先载入所有必要的模块

2d9b9865045000a9b2e64f54001caf2b.png

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

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

接下来使用列表推导式来加载项目目录中所有的路径文件,如下:

student_files =[doc for doc in os.listdir() if doc.endswith( .txt )]

· 使用Lambda功能来向量化并计算相似性。

需要创建两个lambda函数,一个用来将文本转换成数字数组,另一个用来计算它们的相似性。

285ae64f7a6507de050751016d03a0aa.png

· 将文本数据向量化

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

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

创造一个计算相似性的功能。下面是脚本的主要功能,负责管理计算学生之间相似度的整个过程。

d5a7b37cec3e1c31d10bedf20f899512.png

· 最终代码

完成上述所有操作后会得到如下脚本,可以检测学生作业中是否存在抄袭行为。

3b1d463d2768e91db59b49dc31438a56.png

· 输出:

运行上述app.py,结果如下:

85f06f9e64426fa027375913502b1e55.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值