如何利用Python實現一個論文降重工具
前言
時值畢業季,有不少小夥伴深受論文查重的困擾。因此我便想到做一個簡單的自動去重的工具,先看看效果,我們再對原理或是代碼實現做進一步的分析。
首先需要輸入appid以及key,這些可以在百度翻譯開放平臺申請一個賬號,可以免費申請一個賬號。接著將需要進行降重的文本內容復制到相應的輸入框內,點擊開始按鈕,即可輸出不同但意思相近的語句,即達到降重去重的作用。點擊復制按鈕便可以將得到的新文本復制到剪貼板上,點擊清楚按鈕可以重新輸入需要降重的文本,並且循環往復地進行。
去重原理
論文查重的粒度是句子,兩個句子的相似度主要取決於句子包含哪些詞,以及詞在句子中的位置。句子相似度隻是文字上的對比,不考慮語義上的相近。
正因如此,我們可以采取的措施便是變換句子結構,使用近似詞替換。
為瞭完成這些句子的自動替換,從而達到降重的目的,這裡很容易便想到利用不同語種之間的互相轉換來生成新文本。比如在本工具中,我采用瞭中文→英文→韓文→中文的策略,你也可以采取更長的轉換路徑,但那樣似乎會在很大程度上降低文本的可讀性。
開放平臺的使用
語句的翻譯我采用瞭百度翻譯開放平臺的接口,簡單地申請之後就可以獲取每個月200萬的免費字符翻譯權限。
此API的接入方式略微有些麻煩,需要生成簽名sign並且拼接完整的url。
def translate(q,lan_from,lan_to): url = 'http://api.fanyi.baidu.com/api/trans/vip/translate' salt = random.randint(1, 65536) sign = hashlib.md5((str(appid)+str(q)+str(salt)+str(key)).encode('utf-8')).hexdigest() params = { 'from' :lan_from, 'to' :lan_to, 'salt' : salt, 'sign' : sign, 'appid' : appid, 'q': q } r = requests.get(url,params=params) txt = r.json() if txt.get('trans_result', -1) == -1: print('ERROR Code:{}'.format(txt)) return q return txt['trans_result'][0]['dst']
總結
在弄清楚原理以及API的調用方法之後,我們可以輕松地寫出一個GUI界面,也就是這個降重工具。當然這個工具非常初級,大傢可以進行更加全面的擴展。
到此這篇關於如何利用Python實現一個論文降重工具的文章就介紹到這瞭,更多相關Python論文降重工具內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- python批量翻譯excel表格中的英文
- C#調用百度翻譯API實現一個翻譯功能
- Python調用騰訊雲短信服務發送手機短信
- C#調用百度翻譯實現翻譯HALCON的示例
- python 實現有道翻譯功能