前言
時(shí)值畢業(yè)季,有不少小伙伴深受論文查重的困擾。因此我便想到做一個(gè)簡(jiǎn)單的自動(dòng)去重的工具,先看看效果,我們?cè)賹?duì)原理或是代碼實(shí)現(xiàn)做進(jìn)一步的分析。
首先需要輸入appid以及key,這些可以在百度翻譯開(kāi)放平臺(tái)申請(qǐng)一個(gè)賬號(hào),可以免費(fèi)申請(qǐng)一個(gè)賬號(hào)。接著將需要進(jìn)行降重的文本內(nèi)容復(fù)制到相應(yīng)的輸入框內(nèi),點(diǎn)擊開(kāi)始按鈕,即可輸出不同但意思相近的語(yǔ)句,即達(dá)到降重去重的作用。點(diǎn)擊復(fù)制按鈕便可以將得到的新文本復(fù)制到剪貼板上,點(diǎn)擊清楚按鈕可以重新輸入需要降重的文本,并且循環(huán)往復(fù)地進(jìn)行。
去重原理
論文查重的粒度是句子,兩個(gè)句子的相似度主要取決于句子包含哪些詞,以及詞在句子中的位置。句子相似度只是文字上的對(duì)比,不考慮語(yǔ)義上的相近。
正因如此,我們可以采取的措施便是變換句子結(jié)構(gòu),使用近似詞替換。
為了完成這些句子的自動(dòng)替換,從而達(dá)到降重的目的,這里很容易便想到利用不同語(yǔ)種之間的互相轉(zhuǎn)換來(lái)生成新文本。比如在本工具中,我采用了中文→英文→韓文→中文的策略,你也可以采取更長(zhǎng)的轉(zhuǎn)換路徑,但那樣似乎會(huì)在很大程度上降低文本的可讀性。
開(kāi)放平臺(tái)的使用
語(yǔ)句的翻譯我采用了百度翻譯開(kāi)放平臺(tái)的接口,簡(jiǎn)單地申請(qǐng)之后就可以獲取每個(gè)月200萬(wàn)的免費(fèi)字符翻譯權(quán)限。
此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']
總結(jié)
在弄清楚原理以及API的調(diào)用方法之后,我們可以輕松地寫(xiě)出一個(gè)GUI界面,也就是這個(gè)降重工具。當(dāng)然這個(gè)工具非常初級(jí),大家可以進(jìn)行更加全面的擴(kuò)展。
到此這篇關(guān)于如何利用Python實(shí)現(xiàn)一個(gè)論文降重工具的文章就介紹到這了,更多相關(guān)Python論文降重工具內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Python實(shí)現(xiàn)的txt文件去重功能示例
- Python做文本按行去重的實(shí)現(xiàn)方法
- python實(shí)現(xiàn)文本去重且不打亂原本順序
- python讀取TXT到數(shù)組及列表去重后按原來(lái)順序排序的方法
- Python統(tǒng)計(jì)文件中去重后uuid個(gè)數(shù)的方法
- 對(duì)python讀寫(xiě)文件去重、RE、set的使用詳解