前言 本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。 又到一年畢業季 時值畢業季,有不少小伙伴深受論文查重的困擾。因此我便想到做一個簡單的自動去重的工具,先看看效果,我們再對原理或是代碼實現做進一步的分析。 首先需要輸入appi ...
前言
本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。
又到一年畢業季
時值畢業季,有不少小伙伴深受論文查重的困擾。因此我便想到做一個簡單的自動去重的工具,先看看效果,我們再對原理或是代碼實現做進一步的分析。
首先需要輸入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軟體工具和2020最新入門到實戰教程。加群695185429即可免費獲取。