600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > python文章抄袭检测_怎样用Python检测抄袭行为?广大中小学生们的美梦就此结束...

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

时间:2020-10-12 04:29:18

相关推荐

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

原标题:怎样用Python检测抄袭行为?广大中小学生们的美梦就此结束

本教程将介绍如何使用机器学习技术(如word2vec和余弦相似度等),在Python中用几行代码制作抄袭检测器。搭建完成后,抄袭检测器将会从文件中载入学生们的作业,然后通过计算相似度来判断学生有无相互抄袭行为。

要求

本教程需要在计算机上安装scikit-learn。

安装

pip install -Uscikit-learn

怎样分析文本?

如你所知,电脑只能理解0和1。首先需要将文本转换成数字再对文本数据进行计算。

词嵌入

将文本数据转换为数字阵列的过程通常称为词嵌入(word embedding),我们将使用sci-kit-learn内置功能来完成此任务。

将文本数据转换为矢量不是随机过程,而是遵循某些算法,从而将单词表示为空间中的位置。这一点将通过使用scikit-learn内置功能来实现。

怎样检测文档的相似性?

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

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

一起来搭建抄袭探测器

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

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

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

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

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

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

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

· 将文本数据向量化

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

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

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

· 最终代码

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

· 输出:

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

抄袭检测器完成啦!老师们用起来,广大中小学生们的美梦就此结束了。返回搜狐,查看更多

责任编辑:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。