個人專案-論文查重

息息系發表於2024-09-15
這個作業屬於哪個課程 計科22級1班
這個作業要求在哪裡 要求
這個作業的目標 設計軟體

GitHub連結

PSP表格

PSP2.1 Personal Software Process Stages 預估耗時(分鐘) 實際耗時(分鐘)
Planning 計劃 30 30
Estimate 估計這個任務需要多少時間 200 200
Development 開發 500 600
Analysis 需求分析 (包括學習新技術) 200 100
Design Spec 生成設計文件 50 60
Design Review 設計複審 50 60
Coding Standard 程式碼規範 (為目前的開發制定合適的規範) 50 20
Design 具體設計 30 30
Coding 具體編碼 100 120
Code Review 程式碼複審 10 20
Test 測試(自我測試,修改程式碼,提交修改) 30 20
Reporting 報告 30 30
Test Repor 測試報告 20 10
Size Measurement 計算工作量 10 5
Postmortem & Process Improvement Plan 事後總結, 並提出過程改進計劃 20 30
合計 1330 1335

模組的設計

專案結構如下圖

基本思路是海明演算法,透過hanlp模組將檔案分詞,透過MD5演算法來得到雜湊值,然後for計算得到詞頻進行加權,最後合併再降維得到海明距離

效能改進

開始想做餘弦演算法,但是這個知識點沒有現成的資料來進行研究,,於是選擇了更加尋常的simhash演算法,其實感覺使用兩個演算法一起進行的會使得程式的效能更強大
對應效能分析圖

其中消耗最大的演算法是得到雜湊值的getsimhash演算法

單元測試

對應程式碼覆蓋率

測試程式碼

主程式測試程式碼

對提供的文字內容進行查重處理
結果如下圖

產生海明距離的程式碼測試

透過simhash演算法進行海明距離的運算

異常處理

對文字內容文字數量的異常

對文字型別的異常

相關文章