翟天臨的噩夢:怎樣用Python檢測抄襲行為?

2020-12-05 讀芯術

全文共3168字,預計學習時長8分鐘

圖源:Google

本教程將介紹如何使用機器學習技術(如word2vec和餘弦相似度等),在Python中用幾行代碼製作抄襲檢測器。搭建完成後,抄襲檢測器將會從文件中載入學生們的作業,然後通過計算相似度來判斷學生有無相互抄襲行為。

要求

本教程需要在計算機上安裝scikit-learn。

安裝

pip install -Uscikit-learn

怎樣分析文本?

如你所知,電腦只能理解0和1。首先需要將文本轉換成數字再對文本數據進行計算。

詞嵌入

將文本數據轉換為數字陣列的過程通常稱為詞嵌入(word embedding),我們將使用sci-kit-learn內置功能來完成此任務。

將文本數據轉換為矢量不是隨機過程,而是遵循某些算法,從而將單詞表示為空間中的位置。這一點將通過使用scikit-learn內置功能來實現。

怎樣檢測文檔的相似性?

這裡需要使用向量、點積的基本概念來確定兩個文本的相似度,也就是計算學生的文本作業的向量代表之間的餘弦相似度值。

此外還需要學生作業中的樣本文檔來測試模型。文本文件必須與腳本位於同一目錄中,擴展名為「.txt」。文件目錄如下:

.

├──app.py

├── fatma.txt

├── image.png

├── john.txt

└──juma.txt

一起來搭建抄襲探測器

· 首先載入所有必要的模塊

import os

from sklearn.feature_extraction.text import TfidfVectorizer

from sklearn.metrics.pairwise import cosine_similarity

使用OS模塊加載文本文件的路徑,然後使用TfidfVectorizer對文本數據和餘弦相似度執行詞嵌入,來計算是否存在抄襲。

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

接下來使用列表推導式來加載項目目錄中所有的路徑文件,如下:

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

· 使用Lambda功能來向量化並計算相似性。

需要創建兩個lambda函數,一個用來將文本轉換成數字數組,另一個用來計算它們的相似性。

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))

創造一個計算相似性的功能。下面是腳本的主要功能,負責管理計算學生之間相似度的整個過程。

defcheck_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_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)

· 輸出:

運行上述app.py,結果如下:

$ python app.py#

__________RESULT ___________

('john.txt', 'juma.txt', 0.5465972177348937)

('fatma.txt', 'john.txt', 0.14806887549598566)

('fatma.txt', 'juma.txt', 0.18643448370323362)

抄襲檢測器完成啦!老師們用起來,廣大中小學生們的美夢就此結束了。

留言點讚關注

我們一起分享AI學習與發展的乾貨

如轉載,請後臺留言,遵守轉載規範

相關焦點

  • 演員翟天臨文章疑似抄襲?北電成立「翟天臨事件調查組」
    來源:北京青年報演員翟天臨近日被曝出北京電影學院博士研究生在讀期間,發表的一篇學術性質文章有疑似抄襲行為。北京電影學院已經對這一事件成立調查組。昨日晚間,北京大學也發布聲明:對近日媒體關注的「翟天臨涉嫌學術不端」一事,我院高度重視。
  • 翟天臨「學術造假」坐實了?原文作者:論文被整段抄襲
    讀博期間,翟天臨公開發表的一篇題為 《談電視劇中「白孝文」的表演創作》,遭論文作者黃立華譴責,「我十幾年前(發表的論文),被其整段整段抄襲,事實勝於雄辯」。翟天臨的《談電視劇《白鹿原》中「白孝文」的表演創作》,發表於2018年08期,《廣電時評》。
  • 告訴你,是誰害了翟天臨?用NLP心理學來解讀翟天臨學術不端事件
    翟天臨,到底是誰害了你?下面我們用NLP心理學,來解讀翟天臨學術不端事件,看看到底是什麼害了翟天臨!一、每個人都會選擇是自己最佳利益的行為。人是自私的,所以,每個人都會選擇是自己最佳利益的行為。當一份利益擺在你的面前,讓你放棄一些準則,估計很多人會動心,一些人會放棄,部分人會迷失。而翟天臨就迷失在一份虛榮裡。
  • 演員翟天臨被曝讀博期間文章疑抄襲 北影調查
    演員翟天臨近日被爆出北京電影學院博士研究生在讀期間,發表的一篇學術性質文章有疑似抄襲行為。北京電影學院已經對這一事件成立調查組。由直播時的一句「知網是什麼東西」,翟天臨在過去兩天裡一直佔據熱搜,被網友戲稱是「得罪了全國碩士博士」。由於他的《談電視劇<白鹿原>中「白孝文」的表演創作》一文的查重檢測報告顯示相似度超過50%、知網上文字重複比為40.4%,總字數2783的文章中重複字數多達1125個。
  • 翟天臨學術不端調查:碩士論文被指抄襲陳坤本科論文
    隨後,有網友公開演員翟天臨在北京電影學院博士研究生在讀期間發表的一篇學術性質文章查重率達40%,存在抄襲的嫌疑。翟天臨是否達到博士畢業條件、是否有資格被錄用為博士後,引發廣泛討論。 不僅如此,翟天臨的碩士論文也被指存在抄襲嫌疑,抄襲的對象之一包括同是演員的陳坤的本科論文。
  • 翟天臨論文被指抄襲?連北大都被拖下水
    翟天臨論文被指抄襲?連北大都被拖下水  翟天臨的這個年大概是沒有過好。以往大家熟知的翟天臨是「站在了整個娛樂圈學歷之巔」的人。  有網友統計,翟天臨在讀博四年期間,「至少主演了11部戲、參演了7部戲,做了24個代言、錄了17個綜藝」。對此,有學術界人士質疑翟天臨「哪有時間搞學術研究?」
  • 寫畢業論文的你需要注意:哪些行為算「抄襲」?
    今年年初,翟天臨論文抄襲一事引起多米諾骨牌般的連鎖反應,一連串學術不端行為被揭發。其實,每到畢業季,網絡上便流傳著這樣一個段子「博士生研究生本科生生生不息,上一屆這一屆下一屆屆屆發愁」,學生們最愁的,就是怕論文被打上「抄襲」標籤,影響到畢業。那麼,畢業論文在什麼情況下會被認定為「抄襲」呢?
  • 又一位女星被曝論文抄襲!重複率高達99%,網友:比翟天臨還牛
    大家還記得翟天臨論文抄襲的事件嗎?翟天臨被曝出論文的查重率超過20%,因此葬送了自己大好的事業前途。但沒想到韓國有一位藝人的抄襲嚴重度吊打翟天臨,她就是洪真英,最近關於35歲的韓國女星洪真英論文抄襲重複率高達99%一事引發了不少熱議。
  • 翟天臨論文抄襲?重複率達40%,本科生笑了
    翟天臨論文抄襲?重複率達40%,本科生笑了!近日,關於翟天臨論文涉嫌抄襲的新聞引發了網友的一番熱議,四川大學也在自己的官網上宣布了翟天臨論文抄襲的問題,將翟天臨列入了學術不端的案例,據了解,翟天臨的論文的查重的結果顯示,40%的內容都是重複的,本科生看到之後,都笑了!
  • 翟天臨碩士論文又被扒,3萬字重複1萬,還抄襲陳坤本科論文8處
    近段時間,翟天臨不知知網一事被曝出之後,關於他的瓜是一個接一個。從來開始被質疑論文不是自己所寫,被原作者親自出面打假,到近日,翟天臨又被爆碩士論文重複率竟高達36.2%,其中抄襲最多的還是來自師哥陳坤的論文,而陳坤團隊則表示不回應。
  • 她靠抄襲拿到新概念作文大賽二等獎,網友:又一個翟天臨?
    然而最近新概念作文大賽卻面臨「抄襲風波」,一位二等獎得主的作品《古董》被指抄襲某網文作家已發表的作品,一時間輿論譁然。抄襲王者?她靠抄襲拿到新概念作文二等獎,網友:又一個翟天臨!這位深陷抄襲風波的學生名為許如珵,她在高三時參加新概念作文比賽,獲得二等獎,並且憑藉這個二等獎通過了中國傳媒大學自主招生的初審,一時間風光無限。
  • 博士抄襲畢業論文會怎樣?我以為只是撤銷學位和取消畢業證?
    博士抄襲畢業論文會怎樣?我以為只是撤銷學位和取消畢業證。當我們看到別人光線的學位,和淵博的知識,總是非常羨慕和尊敬。但是總有人為了這份虛榮,弄虛作假。而在考試中作弊或被發現有剽竊、抄襲等學術不端行為的,在校學生會被開除學籍,往屆學生則會被撤銷學位、吊銷畢業證書。據了解,此次處理的2006屆博士畢業生趙某,因為被發現其博士學位論文有嚴重抄襲行為,不僅丟了博士學位,而且其博士畢業證書也被吊銷。
  • 「70後」女廳官被指碩博論文均抄襲 複製比趕超翟天臨
    7天後,董嵐再被曝出,碩士論文亦為抄襲。↑據知網檢測數據,董嵐涉事碩士論文總文字複製比52.3%據知網檢測數據,董嵐2002年1月上傳的湖南大學碩士學位論文《文票據市場的發展及其主要法律對策》總文字複製比52.3%,去除本人已發表文獻複製比42.6%。
  • 翟天臨碩士論文被扒,三萬字的論文有一萬字重複,還是抄襲陳坤的
    近期翟天臨在學術方面的問題很受關注,很多人都開始質疑他的學歷,還是不少人覺得他的學歷並不真實,目前他還沒有做出回應,但是有消息指出在這幾天裡,他曾經139次登錄微博,看來他本人也很關注這件事情,估計他很想這次的風波能儘快過去,這樣才能將影響降到最低,不過隨著更多的人關注這件事情,更多跟他相關的內容被也扒出來了
  • 論文降重|從韓春雨到翟天臨,學術不端層出不窮,應該如何避免?
    學術不端的行為一般包括捏造數據、篡改數據和剽竊,2016年教育部對學術不端行為進行了界定:第二十七條 經調查, 確認被舉報人在科學研究及相關活動中有下列行為之一的, 應當認定為構成學術不端行為:(一)剽竊、抄襲、侵佔他人學術成果;(二)篡改他人研究成果;
  • 翟天臨學術不端事件再起質疑,其碩士論文被指重複字數過萬
    近日,北京電影學院博士研究生、演員翟天臨涉學術不端備受關注。繼翟天臨博士期間論文涉嫌抄襲之後,其碩士論文也難逃質疑。全文對比顯示,翟天臨和陳坤論文共13處相似,除去5處引用文獻外,另有8處高度重合。根據《北京電影學院學位論文學術不端行為處理辦法》第八條規定,論文相似比(去除本人已發表的論文及著作)在 30%(含)——60%之間的學位論文視為未通過檢測,一般作延期答辯處理,研究生須在導師指導下對論文進行重大修改或重新選題,延期重新申請學位。
  • 北大博士後翟天臨論文抄襲,丟人到海外去?
    問題是:翟天臨和自己工作室以及粉絲死!不!承!認!又!作!死粉絲們全力發揮想像力,試圖將偶像的行為合理化,其中一位小粉絲兒是這麼解釋的:翟天臨還親自回復這條微博,打算把自己「知網是什麼東西」的言論,和稀泥給和過去。
  • 翟天臨論文抄襲,卻襯出他才是北影真學霸,論文被20多個碩士引用
    前段時間身為博士的翟天臨因在直播中說不知道知網被網友質疑,後來經調查證實了其抄襲博士論文事件引發了軒然大波,然而近日他又被曝光碩士論文居然也是抄的,這下可是給吃瓜群眾們一個大西瓜,可謂是一瓜未「平」一瓜又「起」呀。最讓人震驚的是,翟天臨碩士論文居然是抄襲同為北影的陳坤的本科論文。
  • 北京電影學院成立翟天臨事件調查組 論文被從知網撤下
    演員翟天臨近日被爆出北京電影學院博士研究生在讀期間,發表的一篇學術性質文章有疑似抄襲行為。北京電影學院已經對這一事件成立調查組。  由直播時的一句「知網是什麼東西」,翟天臨在過去兩天裡一直佔據熱搜,被網友戲稱是「得罪了全國碩士博士」。
  • 英國留學,抄襲論文後果很嚴重,你可能會坐牢……
    19年初演員翟天臨被指論文抄襲上了熱搜,好不容易積累起來的人氣和學霸形象毀於一旦。而在英國留學,論文抄襲是件很後果亦是相當嚴重。最壞的結果是觸犯法律譬如替考,替考行為屬於詐騙罪範疇一旦被起訴,將按照情結輕重被判處刑期不等的監禁並留有案底。