同学:你因作业作弊已被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)读取所有文本文件
接下来使用列表推导式来加载项目目录中所有的路径文件,如下:
student_files =[doc for doc in os.listdir() if doc.endswith( .txt )]
使用Lambda功能来向量化并计算相似性(3):
需要创建两个lambda函数,一个用来将文本转换成数字数组,另一个用来计算它们的相似性。
vectorize =lambda Text: TfidfVectorizer().fit_transform(Text).toarray() similarity = lambda doc1, doc2:cosine_similarity([doc1, doc2])
将文本数据向量化(4):
加入下列两行代码,将加载的学生文件向量。
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 Let’s print plagiarism results for data in check_plagiarism(): print(data)
最终代码如下检测学生作业中是否存在抄袭行为:
import os from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similaritystudent_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_resultsfor data in check_plagiarism(): print(data)
总结![](/assets/blank.gif)
抄袭检测器完成啦!老师们用起来,广大中小学生们的美梦就此结束了。
同学:你因作业作弊已被AI抓获,Python制作一款AI检测抄袭小脚本。相关推荐
- AI开发学习: 第一款AI药物诞生:英国公司“光速”制药碾压传统研发
使用人工智技术开发出第一款药物.这款药物可用来治疗强迫症,不久将开始进入临床测试阶段.需要强调的是,这款药物从提出概念至今不到一年时间.据媒体报道,近期英国初创公司 ExScientia 称,他们已经 ...
- AI 数字人制作(方案一):输入一张图片和一段文字即可生成数字人
方案一: 原文:AI 数字人制作(方案一)_哔哩哔哩_bilibili AI 文字和图片生成数字人(输入一张图片和一段文字即可生成数字人) <用三个开源项目整合成可以商用的数字人项目> 文 ...
- 首个官方气象数据集公开,已训练出20多个“青出于蓝”的AI
郭一璞 发自 凹非寺 量子位 报道 | 公众号 QbitAI 让AI来做天气预报,可能是很有前途的一件事儿. 在今年AI Challenger天气预报赛道的采访中,中国气象局北京气象研究所副所长陈敏 ...
- 专访李开复:人类已打开潘多拉盒子,封堵AI变革只会徒劳
来源:人工智能学家 本文约3623字,建议阅读6分钟. 我们对李开复进行了专访,谈到了众多当前AI领域最受关注的话题. 摘要:近期,李开复新书<AI·未来>在美国同样反响不俗.在荣登多个排 ...
- IEEE专访李开复:人类已打开潘多拉盒子,封堵AI变革只会徒劳
原作 :<IEEE Spectrum> 量子位 转载 | 公众号 QbitAI 近期,李开复新书<AI·未来>在美国同样反响不俗. 在荣登多个排行榜后,IEEE旗下<I ...
- ai二维码插件_送你60款AI脚本插件包,已整合成插件面板的形式,方便在AI中调用...
送你60款AI脚本插件包,已整合成插件面板的形式,方便在AI中调用. (领取方式见文章末尾) [AI脚本插件合集包] 此AI插件包目前有66款ai脚本插件,已经整合成插件面板的形式,方便在AI中调用. ...
- 五节课从零起步(无需数学和Python基础)编码实现AI人工智能框架电子书V1
五节课从零起步 (无需数学和Python 基础) 编码实现AI 人工智能框架 王 家 林 2018/4/15 ...
- 一文看懂“语音识别ASR” | AI产品经理需要了解的AI技术概念
原标题:一文看懂"语音识别ASR" | AI产品经理需要了解的AI技术概念 温馨提示:文末有[重大福利]:优惠券(金额很大) for 三节课<产品经理P2(进阶)系列课程&g ...
- AI时代大点兵——国内外知名AI公司2018年最新盘点【完整版】
导言 其它机器学习.深度学习算法的全面系统讲解可以阅读<机器学习-原理.算法与应用>,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造. 书的购买链接 书的勘误,优化,源代码资源 据 ...
最新文章
- (办公)网页发送到桌面快捷方式怎么做
- 因特尔显卡自定义分辨率_蓝宝石RX 5600XT 6G D6 白金版OC显卡评测:两千价位段好选择...
- 【c语言】蓝桥杯算法训练 大小写转换
- 不借助 Fiori client,直接在手机浏览器里调用 SAP UI5 BarcodeScanner 实现条形码扫描的可能性?
- Dev C++,一个好玩的猜数字游戏
- IIC驱动5150遇到麻烦
- ASP.NET MVC中在 @RenderBody() 或者 @Html.Partial()中需要使用引入外部js,css
- C++socket编程(三):3.6 服务端recv客户端发送的数据
- 团队项目第二周 - 需求规格说明书 - 天冷记得穿秋裤队
- Python strftime()
- 2022短视频去水印小程序带流量主/CPS/资源/工具/批量解析/修改MD5
- 基于superslide的导航栏 效果切换
- 网站备案信息真实性核验单
- 探索MapReduce过程及分组详解
- 星际争霸2的移动机制-初探
- Apache apollo 配置说明及用户名和密码管理
- K8S查看容器日志、进入容器内部
- crsctl命令详解(原创)
- 使用 Nginx 如何部署 web 项目
- Windows下Debug模式的检测和OutputDebugString