精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何使用Python構建一個抄襲檢測系統?

譯文
開發 前端
構建自己的抄襲檢測工具,領略Difflib模塊的強大功能。

譯者 | 布加迪

審校 | 重樓

隨著數字內容越來越受歡迎,保護它免受復制和濫用變得比以往更加重要。抄襲檢測工具可以幫助教師評估學生的作業,幫助機構審閱研究論文,幫助作家發現知識產權被盜的現象。

構建抄襲檢測工具可以幫助您理解序列匹配、文件操作和用戶界面。您還可以探索自然語言處理NLP技術以改進您的應用程序。

TkinterDifflib模塊

要構建抄襲檢測器,您將使用TkinterDifflib模塊。Tkinter是一個簡單的跨平臺庫,可以用來快速創建圖形用戶界面。

Difflib模塊是Python標準庫的一部分,它提供了用于比較字符串、列表和文件等序列的類和函數。有了它,您可以構建文本自動糾錯器、簡化版本控制系統或文本摘要工具之類的程序。

如何使用Python構建抄襲檢測器?

入所需的模塊。定義一個方法load_file_or_display_contents(),它接受entrytext_widget作為參數。該方法將加載文本文件,并在文本組件中顯示內容。

使用get()方法提取文件路徑。如果用戶沒有輸入任何內容,使用askopenfilename()方法打開文件對話框窗口,選擇想要進行抄襲檢查的文件。如果用戶選擇了文件路徑,從頭到尾清除前一個條目如果有的話,并插入選擇的路徑。

import tkinter as tk
from tkinter import filedialog
from difflib import SequenceMatcher

def load_file_or_display_contents(entry, text_widget):
 file_path = entry.get()

 if not file_path:
 file_path = filedialog.askopenfilename()

 if file_path:
 entry.delete(0, tk.END)
 entry.insert(tk.END, file_path)

以讀取模式打開文件,并將內容存儲在text變量中。清除text_widget的內容,并插入前面提取的文本。

with open(file_path, 'r') as file:
 text = file.read()
 text_widget.delete(1.0, tk.END)
 text_widget.insert(tk.END, text)

定義一個方法compare_text(),您將用它來比較兩段文本并計算它們的相似度百分比。使用DifflibSequenceMatcher()類來比較序列并確定相似。將自定義比較函數設置為None以使用默認比較,并傳遞想要比較的文本。

使用比率方法以浮點格式獲得相似度,可以用來計算相似度百分比。使用get_opcodes()方法檢索一組操作,可以用來高亮顯示文本的相似部分,并將其與相似百分比一返回。

def compare_text(text1, text2):
 d = SequenceMatcher(None, text1, text2)
 similarity_ratio = d.ratio()
 similarity_percentage = int(similarity_ratio * 100)

 diff = list(d.get_opcodes())
 return similarity_percentage, diff

定義一個方法show_similarity()。使用get()方法從兩個文本框中提取文本,并將它們傳遞給compare_text()函數。清除將顯示結果的文本框中的內容,插入相似度百分比。從之前的高亮顯示中刪除same標簽如果有的話。

def show_similarity():
 text1 = text_textbox1.get(1.0, tk.END)
 text2 = text_textbox2.get(1.0, tk.END)
 similarity_percentage, diff = compare_text(text1, text2)
 text_textbox_diff.delete(1.0, tk.END)
 text_textbox_diff.insert(tk.END, f"Similarity: {similarity_percentage}%")
 text_textbox1.tag_remove("same", "1.0", tk.END)
 text_textbox2.tag_remove("same", "1.0", tk.END)

get_opcode()方法返回五個元組操作碼字符串、第一個序列的開始索引、第一個序列的結束索引、第二個序列的開始索引和第二個序列的結束索引。

操作碼字符串可以是四個可能的值之一replacedelete、insertequal。當兩個序列中的一部分文本不同,并且有人把一部分成另一部分時,您將獲得replace。當文本的一部分存在于第一個序列而不存在于第二個序列時,您將獲得delete。

文本的一部分在第一個序列中不存在但在第二個序列中存在時,您將獲得insert。當文本的部分相同時,您將獲得equal。將所有這些值存儲在適當的變量中。如果操作碼字符串是equal,向文本序列添加same標簽。

for opcode in diff:
 tag = opcode[0]
 start1 = opcode[1]
 end1 = opcode[2]
 start2 = opcode[3]
 end2 = opcode[4]

 if tag == "equal":
 text_textbox1.tag_add("same", f"1.0+{start1}c", f"1.0+{end1}c")
 text_textbox2.tag_add("same", f"1.0+{start2}c", f"1.0+{end2}c")

初始化Tkinter根窗口。設置窗口的標題,并在其中定義一個框架。在兩個方向用適當的填充組織框架。定義兩個標簽顯示Text 1Text 2。設置它應該駐留的父元素和它應該顯示的文本。

定義三個文本框,兩個用于要比較的文本,一個用于顯示結果。聲明父元素、寬度和高度,并將換行選項設置為tk.WORD,以確保程序在最近的邊界處單詞換行,并不中斷中間的任何單詞。

root = tk.Tk()
root.title("Text Comparison Tool")
frame = tk.Frame(root)
frame.pack(padx=10, pady=10)

text_label1 = tk.Label(frame, text="Text 1:")
text_label1.grid(row=0, column=0, padx=5, pady=5)
text_textbox1 = tk.Text(frame, wrap=tk.WORD, width=40, height=10)
text_textbox1.grid(row=0, column=1, padx=5, pady=5)
text_label2 = tk.Label(frame, text="Text 2:")
text_label2.grid(row=0, column=2, padx=5, pady=5)
text_textbox2 = tk.Text(frame, wrap=tk.WORD, width=40, height=10)
text_textbox2.grid(row=0, column=3, padx=5, pady=5)

定義三個按鈕,兩個用于加載文件,一個用于比較。定義父元素、它應該顯示的文本,以及它在被點擊時應該執行的函數。創建兩個輸入組件來輸入文件路徑,并定義父元素及其寬度。

使用網格管理器以行和列的形式組織所有這些元素。使用pack來組織compare_button和text_textbox_diff。在必要的地方添加適當的填充。

file_entry1 = tk.Entry(frame, width=50)
file_entry1.grid(row=1, column=2, columnspan=2, padx=5, pady=5)
load_button1 = tk.Button(frame, text="Load File 1", command=lambda: load_file_or_display_contents(file_entry1, text_textbox1))
load_button1.grid(row=1, column=0, padx=5, pady=5, columnspan=2)
file_entry2 = tk.Entry(frame, width=50)
file_entry2.grid(row=2, column=2, columnspan=2, padx=5, pady=5)
load_button2 = tk.Button(frame, text="Load File 2", command=lambda: load_file_or_display_contents(file_entry2, text_textbox2))
load_button2.grid(row=2, column=0, padx=5, pady=5, columnspan=2)
compare_button = tk.Button(root, text="Compare", command=show_similarity)
compare_button.pack(pady=5)
text_textbox_diff = tk.Text(root, wrap=tk.WORD, width=80, height=1)
text_textbox_diff.pack(padx=10, pady=10)

用黃色背景和紅色字體高亮顯示標記為相同的文本。

text_textbox1.tag_configure("same", foreground="red", background="lightyellow")
text_textbox2.tag_configure("same", foreground="red", background="lightyellow")

mainloop()函數告訴Python運行Tkinter事件循環并監聽事件,直到關閉窗口。

root.mainloop()

把它們放在一起,然后運行代碼檢測抄襲

抄襲檢測器的輸出示例

運行這個程序時,它會顯示一個窗口。點擊Load File 1按鈕后,將打開文件對話框,要求您選擇一個文件。選擇一個文件后,程序第一個文本框內顯示內容。在輸入路徑并點擊Load File 2后,程序將第二個文本框內顯示內容。在點擊Compare按鈕,得到的相似度為100%,它高亮顯示相似度100%整個文本。

如果您其中一個文本框添加另一行并點擊Compare,程序將高亮顯示相似的部分,并忽略其余部分。

如果幾乎沒有相似度,程序會高亮顯示一些字母或單詞,但相似度百分比非常低。

使用NLP進行抄襲檢測

雖然Difflib是一種功能強大的文本比較方法,但它對微小的變化很敏感,對上下文的理解有限,并且對于龐大文本而言通常無效。這時候您應該考慮探自然語言處理,因為它可以執行文本的語義分析,提取有意義的特征,而且能夠理解上下文。

此外,您可以針對不同的語言訓練模型,并對其進行優化以提高效率??梢杂糜?/span>抄襲檢測的一些技術包括Jaccard相似性、余弦相似性、詞嵌入、潛在序列分析以及序列到序列模型。

您可以在這個GitHub代碼倉庫中找到使用Python構建抄襲檢測器的全部源代碼:https://github.com/makeuseofcode/Plagiarism-Detector-using-Python

原文標題:How to Build a Plagiarism Detector Using Python,作者:Sai Ashish Konchada

責任編輯:華軒 來源: 51CTO
相關推薦

2009-11-11 10:38:11

2023-03-10 13:38:00

Python文檔掃描器

2016-09-21 12:54:10

CAAS系統鏡像

2022-02-07 19:59:54

CMakeVSCodium編程語言

2014-02-26 10:14:51

OpenStack測試系統

2023-02-13 14:47:32

人工智能機器學習ChatGPT

2023-09-21 08:00:00

ChatGPT編程工具

2023-10-31 07:21:05

開源安全工具

2023-09-19 08:00:00

Python開發

2025-07-11 07:49:07

2015-12-04 11:36:04

SaaS架構設計可持續

2017-01-12 20:37:03

公共云云存儲云計算

2018-08-27 17:05:48

tensorflow神經網絡圖像處理

2025-04-01 09:31:34

PyTorch自動語音識別ASR系統

2018-09-18 09:38:11

RPC遠程調用網絡通信

2022-04-12 14:00:05

元宇宙人工智能安全

2024-06-13 08:36:11

2020-03-04 17:04:00

業務異常人工智能

2020-02-28 08:00:33

企業異常損失

2018-11-14 19:00:24

PythonRedis共享單車
點贊
收藏

51CTO技術棧公眾號

国产精品视频xxx| 亚洲天堂男人的天堂| 久草免费福利在线| 视频一区 中文字幕| 久久精品成人| xvideos国产精品| 久久久老熟女一区二区三区91| 亚洲黄色免费av| 一区视频在线播放| 久久精彩视频| 国产又粗又猛视频免费| 亚洲激情专区| 精品久久久999| 色噜噜在线观看| 最新亚洲国产| 日韩欧美在线观看| 一级特黄妇女高潮| 国产在线日本| 成人免费黄色大片| 国产精品成人va在线观看| 国产一级视频在线| 久久亚洲在线| 亚洲精品一区中文| av影片在线播放| 激情欧美一区二区三区黑长吊| 亚洲一线二线三线久久久| 亚洲国内在线| 四虎在线视频| 不卡一区在线观看| 亚洲最大的网站| 亚洲精品无码久久久久| 在线亚洲观看| 久久99久久亚洲国产| 黄色国产在线播放| 美女网站一区| 亚洲黄色有码视频| 黄页网站在线看| 亚洲精品伦理| 欧美亚洲国产一区二区三区va| 久在线观看视频| 超碰97免费在线| 亚洲精品国产精品乱码不99| 亚洲自拍偷拍二区| 国产在线中文字幕| 久久精品欧美一区二区三区麻豆| 国产手机精品在线| 国精产品一品二品国精品69xx | 欧美激情亚洲一区| 成人黄色短视频| 日韩精品免费一区二区三区| 亚洲跨种族黑人xxx| 久久免费精品国产| 黄色免费大全亚洲| 亚洲成人精品久久久| 欧美日韩一区二区区别是什么 | 日韩午夜在线播放| 青娱乐国产精品视频| 91麻豆精品| 欧美精品v日韩精品v韩国精品v| 在线观看免费黄网站| 日韩av一级| 精品视频免费在线| 污污的视频免费| 四虎视频在线精品免费网址| 欧美日韩的一区二区| 色呦色呦色精品| 国产精品久久久久久久久久久久久久久| 欧美精三区欧美精三区| 超碰91在线播放| 亚洲精品午夜| 亚洲精品91美女久久久久久久| aaaa黄色片| 女人av一区| 色偷偷av亚洲男人的天堂| 永久免费看片视频教学| 亚洲午夜精品一区二区国产| 久久久久女教师免费一区| 日本少妇裸体做爰| 午夜在线视频观看日韩17c| 日本不卡视频在线播放| 中文字幕在线日亚洲9| 国模娜娜一区二区三区| 99超碰麻豆| 亚洲aⅴ乱码精品成人区| 久久久蜜桃精品| 亚洲一区精彩视频| 日本动漫理论片在线观看网站| 亚洲成va人在线观看| 亚洲人成色77777| 电影中文字幕一区二区| 亚洲成av人乱码色午夜| 九九九视频在线观看| 欧美69视频| 51精品在线观看| 一级特黄aaa大片在线观看| 成人免费视频免费观看| 欧美日韩电影一区二区| av片在线观看| 欧美午夜精品在线| 成人高清在线观看视频| 国产欧美日韩精品一区二区免费 | 一区二区三区四区高清视频| 亚洲男人天堂网| 青青青在线免费观看| 一本色道久久综合亚洲精品不| 国产精品久久久久影院日本| 欧性猛交ⅹxxx乱大交| 国产精品天干天干在线综合| 亚洲熟妇无码一区二区三区导航| 亚洲www啪成人一区二区| 精品国产百合女同互慰| 老司机深夜福利网站| 一区二区三区国产在线| 91传媒视频免费| 在线激情免费视频| 日韩欧美精品网址| 佐佐木明希电影| 国产精品毛片久久| 国产精品999| 五月天丁香视频| 一级做a爱片久久| 91 视频免费观看| 国产99久久| 97不卡在线视频| 亚洲欧美另类日韩| 亚洲卡通动漫在线| 依人在线免费视频| 精品freesex老太交| 97视频在线观看免费| av中文字幕免费在线观看| 国产欧美日韩激情| 精品人妻一区二区三区四区在线| 亚洲三级av| 久热精品视频在线| 中文字幕人妻互换av久久| 久久久99免费| 日韩avxxx| 亚洲最好看的视频| 91高清在线免费观看| 熟妇高潮一区二区高潮| 亚洲精品久久久久久国产精华液| 国产精品嫩草影院8vv8| 日韩精品欧美激情一区二区| 日韩免费黄色av| 精品亚洲综合| 日韩欧美亚洲范冰冰与中字| 欧美黑人欧美精品刺激| 亚洲精品一级| 国产一区视频观看| 成人免费观看在线观看| 精品福利一区二区三区| 国产精品23p| 99久久伊人久久99| 无码精品a∨在线观看中文| 欧美精品中文字幕亚洲专区| 亚洲**2019国产| 天天av天天翘| 欧美性极品xxxx做受| 日本黄色网址大全| 日韩在线a电影| 午夜老司机精品| 亚洲精品aa| 欧美情侣性视频| 色呦呦视频在线| 色999日韩国产欧美一区二区| 中文字幕在线观看免费高清 | 国产精品久久久久久久美男 | 亚洲黄色片免费看| 欧美日韩ab| 国产一区二区免费电影| 日韩av中字| 久久精品91久久香蕉加勒比| xxxx国产精品| 精品久久久久久久久中文字幕| 国产黄色网址在线观看| 男男视频亚洲欧美| 99热都是精品| 欧美日韩精品一区二区三区在线观看| 日本久久久久久久| aⅴ在线视频男人的天堂| 日韩午夜中文字幕| 日韩人妻精品中文字幕| 中文字幕一区二区在线观看| 亚洲av无一区二区三区久久| 国产精品视频| 一区二区三区av| 白嫩白嫩国产精品| 国产成人激情视频| 黄页视频在线播放| 日韩福利在线播放| 中文字幕一区二区三区波野结| 亚洲激情六月丁香| 久久亚洲AV无码专区成人国产| 精品一区二区日韩| 亚洲 欧美 日韩 国产综合 在线| 日本欧美视频| 国产精品免费一区二区三区观看| 裤袜国产欧美精品一区| 美日韩丰满少妇在线观看| 深夜福利在线视频| 91精品免费在线| 亚洲 欧美 成人| 中文字幕巨乱亚洲| 国产综合内射日韩久| 蜜臀av性久久久久蜜臀aⅴ| 人体内射精一区二区三区| 成人在线亚洲| 久久精品日产第一区二区三区乱码 | 性生活在线视频| 日韩中文字幕91| 国产精品69久久久| 欧美国产小视频| 欧美日韩免费观看一区| 久久69av| 成人国产精品久久久| 二区三区不卡| 97av在线视频| 黄色成人在线网| 久久久国产成人精品| 国产h在线观看| 日韩精品在线看| 懂色av蜜臀av粉嫩av分享吧| 91精品婷婷国产综合久久性色 | 日韩高清av电影| 精品国产一区二区三区成人影院 | 香蕉久久精品日日躁夜夜躁| 爱情岛论坛亚洲入口| 97精品资源在线观看| 国产成人综合精品在线| 中文字幕影音在线| 亚州成人av在线| www欧美xxxx| 色综合色综合网色综合| 久草资源在线| 精品国内亚洲在观看18黄| 又爽又大又黄a级毛片在线视频| 亚洲欧美激情另类校园| 欧洲天堂在线观看| 日韩国产精品视频| 无码精品一区二区三区在线| 精品国精品自拍自在线| 国产成人三级在线播放| 日韩一级免费一区| 99热在线只有精品| 欧美一级黄色片| 精品国产免费无码久久久| 欧美一区二区三区日韩| 国产精品一区二区免费视频| 欧美狂野另类xxxxoooo| 97caocao| 日韩美女天天操| 亚洲毛片欧洲毛片国产一品色| 日韩欧美国产精品一区| 亚洲国产精品一| 欧美精品一区二区三区蜜桃视频| 亚洲精品喷潮一区二区三区| 精品国产精品一区二区夜夜嗨| 丰满人妻av一区二区三区| 337p日本欧洲亚洲大胆色噜噜| 老熟妇高潮一区二区高清视频| 精品久久国产97色综合| 丝袜+亚洲+另类+欧美+变态| 亚洲人a成www在线影院| 国产福利第一视频在线播放| 日韩中文有码在线视频| 成人福利网站| 97热精品视频官网| xxxxxx欧美| 成人福利免费观看| 亚洲天堂中文字幕在线观看| 国产一区国产精品| 九九久久电影| 一区二区不卡视频| 欧美日韩一区二区高清| 国产特级淫片高清视频| 日韩精彩视频在线观看| 成人亚洲免费视频| 高清不卡在线观看| 黄瓜视频污在线观看| 中文成人综合网| 欧美成人精品欧美一| 丁香五六月婷婷久久激情| 中文人妻熟女乱又乱精品| 日韩女优电影在线观看| 亚洲av毛片成人精品| 日韩在线观看免费网站| 国产色婷婷在线| 国产精品日本精品| 99精品在免费线中文字幕网站一区| 美乳视频一区二区| 国产精品99一区二区三区| 成年人午夜视频在线观看| 奇米精品一区二区三区在线观看一| 韩国三级丰满少妇高潮| 久久久av毛片精品| 久久国产精品波多野结衣| 日本韩国一区二区| 亚洲国产剧情在线观看| 一区三区二区视频| 国产极品人妖在线观看| 国产精品免费视频久久久| 精品网站aaa| 国产成年人在线观看| 性欧美精品高清| 欧美熟妇精品一区二区| 国产精品久久久久永久免费观看| 日韩伦理在线视频| 欧美放荡的少妇| 成人性生交大片免费看午夜 | 亚洲啊啊啊啊啊| 日韩国产成人精品| 超碰caoprom| 亚洲日韩欧美一区二区在线| 7799精品视频天天看| 欧美精品一区视频| 影音先锋男人在线资源| 国产日韩欧美电影在线观看| 亚洲第一二三区| 欧美成人免费在线观看视频| 国产精品亚洲午夜一区二区三区| 亚洲午夜精品久久久久久高潮| 午夜天堂影视香蕉久久| www夜片内射视频日韩精品成人| www.亚洲成人| 韩日一区二区| 日本不卡免费新一二三区| 最新亚洲视频| 精品1卡二卡三卡四卡老狼| 亚洲丝袜自拍清纯另类| 6—12呦国产精品| 一区二区日韩精品| 免费看av不卡| 免费看国产精品一二区视频| 国产日韩欧美一区二区三区在线观看| 女人扒开双腿让男人捅| 亚洲欧美日韩系列| 国产又粗又长视频| 久久亚洲综合国产精品99麻豆精品福利| 欧亚一区二区| 日韩中文一区二区三区| 日韩影院在线观看| 亚洲精品国产91| 欧美熟乱第一页| eeuss影院www在线播放| 国产精品第七影院| 欧美日韩一区二区三区视频播放| 不要播放器的av网站| 久久久久久亚洲综合影院红桃 | 欧美日韩国产精品综合| 欧美一卡二卡三卡四卡| 羞羞污视频在线观看| 91久久久一线二线三线品牌| 欧美在线黄色| 色哟哟视频在线| 黄色成人在线免费| 男人的天堂在线免费视频| 国产精品91免费在线| 日韩精品一区二区三区免费观看| gogogo高清免费观看在线视频| 国产精品福利在线播放| 精品国产无码一区二区三区| 午夜精品福利在线观看| 美女少妇全过程你懂的久久 | 成人激情免费电影网址| 国产成人自拍视频在线| 日韩精品视频免费| 台湾成人免费视频| 在线看成人av电影| 国产成人日日夜夜| 国产成人无码精品| 一区二区三区天堂av| 日韩精品成人在线观看| 秋霞无码一区二区| 国产午夜精品久久久久久久 | 久久久久久久极品| 亚洲网址你懂得| 电影中文字幕一区二区| 日韩av综合在线观看| 久久久精品天堂| 99在线观看免费| 欧美孕妇性xx| 99精品全国免费观看视频软件| 国产sm在线观看| 欧日韩精品视频| 色yeye免费人成网站在线观看| 狼狼综合久久久久综合网| 蜜臀精品久久久久久蜜臀 | 亚洲福利免费| 国产传媒在线看| 欧美不卡一二三| 欧美色片在线观看| 欧美黄色免费网址| 国产欧美日韩另类视频免费观看| www.av导航| 国产精品91在线观看| 韩国精品一区二区三区| 亚洲AV无码成人精品区明星换面| 日韩免费一区二区| 色综合一本到久久亚洲91| 国产一区二区三区小说|