如何利用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论文降重工具内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Python做文本按行去重的实现方法
文本: 每行在promotion后面包含一些数字,如果这些数字是相同的,则认为是相同的行,对于相同的行,只保留一行. 思路: 根据字典和字符串切割. 建立一个空字典. 读入文本,并对每行切割前半部分,在读入文本的过程中循环在这个字典中查找,如果没找到,则写入该行到字典.否则,则表示该行已经被写入过字典了(即出现重复的行了),不再写入字典,这就实现了对于重复的行只保留一行的目的. 文本如下: /promotion/232 utm_source /promotion/237 LandingPage/
-
对python读写文件去重、RE、set的使用详解
如下所示: # -*- coding:utf-8 -*- from datetime import datetime import re def Main(): sourcr_dir = '/data/u_lx_data/fudan/muying/muying_11yue_all.txt' target_dir = '/data/u_lx_data/fudan/muying/python/uid_regular_get.txt' uset = set() #去重 print("开始.....&q
-
Python统计文件中去重后uuid个数的方法
本文实例讲述了Python统计文件中去重后uuid个数的方法.分享给大家供大家参考.具体如下: 利用正则表达式按行获取日志文件中的的uuid,并且统计这些uuid的去重个数(去重利用set) import re pattern=re.compile(r'&uuid=.*&') uuidset=set() with open('request.log.2015-05-26','rt') as f: for line in f: all=pattern.findall(line) if len
-
python读取TXT到数组及列表去重后按原来顺序排序的方法
本文实例讲述了python读取TXT到数组及列表去重后按原来顺序排序的方法.分享给大家供大家参考.具体如下: #################################################################### # python 读取TXT到数组 列表去重,不打乱原来的顺序 # 刚学写的不好请大家见谅 #################################################################### def open_tx
-
python实现文本去重且不打乱原本顺序
代码也是在网上找的,效率挺不错的,特别适合字典文件的去重 #coding=utf-8 import sys def open_txt(): #打开TXT文本写入数组 try: xxx = file(sys.argv[1], 'r') for xxx_line in xxx.readlines(): passlist.append(xxx_line) xxx.close() except: return 0 def write_txt(): #打开TXT文本写入数组 try: yyy = file
-
Python实现的txt文件去重功能示例
本文实例讲述了Python实现的txt文件去重功能.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #! python2 import shutil a=0 readDir = "/Users/Administrator/Desktop/old.txt" #old writeDir = "/Users/Administrator/Desktop/new.txt" #new # txtDir = "/home/Administ
-
如何利用Python实现一个论文降重工具
前言 时值毕业季,有不少小伙伴深受论文查重的困扰.因此我便想到做一个简单的自动去重的工具,先看看效果,我们再对原理或是代码实现做进一步的分析. 首先需要输入appid以及key,这些可以在百度翻译开放平台申请一个账号,可以免费申请一个账号.接着将需要进行降重的文本内容复制到相应的输入框内,点击开始按钮,即可输出不同但意思相近的语句,即达到降重去重的作用.点击复制按钮便可以将得到的新文本复制到剪贴板上,点击清楚按钮可以重新输入需要降重的文本,并且循环往复地进行. 去重原理 论文查重的粒度是句子,两
-
利用Python实现一个简易的截图工具
这是工作期间同事想要个截完图之后可以显示并且永远前置的截图小工具(即不会被其他程序覆盖)直接上代码: # # -*- coding: utf-8 -*- import tkinter as tk import pyautogui import tkinter from PIL import ImageTk from PIL import Image root = tk.Tk() root.wm_attributes('-topmost', 1) root.overrideredirect(Tru
-
利用python生成一个导出数据库的bat脚本文件的方法
实例如下: # 环境: python3.x def getExportDbSql(db, index): # 获取导出一个数据库实例的sql语句 sql = 'mysqldump -u%s -p%s -h%s -P%d --default-character-set=utf8 --databases mu_ins_s%s > %s.s%d.mu_ins_%d.sql' %(db['user'], db['pwd'], db['host'], db['port'], index, db['serv
-
Python实现一个论文下载器的过程
在科研学习的过程中,我们难免需要查询相关的文献资料,而想必很多小伙伴都知道SCI-HUB,此乃一大神器,它可以帮助我们搜索相关论文并下载其原文.可以说,SCI-HUB造福了众多科研人员,用起来也是"美滋滋". 然而,当师姐告诉我:"xx,可以帮我下载几篇文献嘛?".乐心助人的我自当是满口答应了,心想:"这种小事就交给我叭~" 于是乎,我收到了一个excel文档,66篇论文的列表安静地趟在里面(此刻心中碎碎念:"这尼玛,是几篇嘛...&q
-
利用Python打造一个多人聊天室的示例详解
一.实验名称 建立聊天工具 二.实验目的 掌握Socket编程中流套接字的技术,实现多台电脑之间的聊天. 三.实验内容和要求 vii.掌握利用Socket进行编程的技术 viii.必须掌握多线程技术,保证双方可以同时发送 ix.建立聊天工具 x.可以和多个人同时进行聊天 xi.必须使用图形界面,显示双方的语录 四.实验环境 PC多台,操作系统Win7,win10(32位.64位) 具备软件python3.6 . 五.操作方法与实验步骤 服务端 1.调入多线程.与scoket包,用于实现多线程连接
-
利用 Python 开发一个 Python 解释器
目录 1.标记(Token) 2.词法分析器(Lexer) 3.巴科斯-诺尔范式(Backus-Naur Form,BNF) 4.解析器(Parser) 前言: 计算机只能理解机器码.归根结底,编程语言只是一串文字,目的是为了让人类更容易编写他们想让计算机做的事情.真正的魔法是由编译器和解释器完成,它们弥合了两者之间的差距.解释器逐行读取代码并将其转换为机器码. 在本文中,我们将设计一个可以执行算术运算的解释器. 我们不会重新造轮子.文章将使用由 David M. Beazley 开发的词法解析
-
利用Python编写一个闹钟,治好你的拖延症
目录 一.小科普 1)time模块 2)messagebox模块 二.准备中 1)环境安装 2)素材(音乐+背景可修改) 三.开始敲代码 1)导入模块 2)界面设置 3)获取当前实时时间 4)设置开始.退出按钮 5)设置到点播放音乐 6)额外设置的一个弹窗提醒 四.效果展示 总结 导语 相信有不少人的闹钟是设成这样的: 6:20 6:30 6:35 6:37 …… 起床真是令人困扰的事情,有的人根本不用定闹钟,但有的人提前半个小时闹钟都叫不醒,你的闹钟怎么定的? 举个粒子: 现在这天气真的就很需
-
利用Python编写一个记忆翻牌游戏
目录 导语 开发工具 环境搭建 先睹为快 原理简介 导语 昨天看到有留言竟然说我是月更博主,我明明更新地这么勤快(心虚.jpg).看吧,昨天刚更新过,今天又来更新了. 今天还是带大家写个小游戏吧,不过老是用pygame也没啥意思,这次我们换点新花样,用python自带的tkinter包写一个记忆翻牌小游戏呗. 废话不多说,让我们愉快地开始吧~ 开发工具 Python版本:3.7.4 相关模块: pygame模块: tkinter模块: pillow模块: 以及一些python自带的模块. 环境搭
-
利用Python制作一个MOOC公开课下载器
目录 导语 开发工具 环境搭建 先睹为快 原理简介 导语 记得很久以前写过一些中国大学MOOC上的视频下载器,不过好像都已经年久失修了.正好最近有需要,所以重新写了一个,顺便上来分享一波,寒假大家也可以用它来下载点课程内卷一下: 废话不多说,让我们愉快地开始吧~ 开发工具 Python版本:3.7.8 相关模块: DecryptLogin模块: tqdm模块: click模块: argparse模块: 以及一些python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的
-
利用Python绘制一个可爱的米老鼠
目录 一.效果展示 二.代码详解 1.导入库 2.播放音乐 3.画米老鼠头部外轮廓 4.画衣服和耳朵 5.画眼睛.鼻子.嘴 杨紫和肖战的<余生请多指教>于3月15日起腾讯视频全网独播,湖南卫视金鹰独播剧场晚8:20播放.对于杨紫的纯剧粉(战长沙入的坑图片),想要用Python制作一份独特的宣传视频. 一.效果展示 在介绍代码之前,先来看下本文的实现效果. 视频链接 二.代码详解 python绘制米老鼠的原理是:应用turtle库首先绘制头的外轮廓,然后绘制耳朵.手.衣服.裤子.脚.鞋子等不同
随机推荐
- Angular.JS中指令ng-if的注意事项小结
- python实现文件分组复制到不同目录的例子
- PHP中redis的用法深入解析
- js正则查找match()与替换replace()用法实例
- JavaWeb中的简单分页完整代码(推荐)
- Repeater控件实现编辑、更新、删除等操作示例代码
- yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
- 浅谈C语言之字符串处理函数
- C++读取到回车换行符问题处理
- 在Windows下利用Squid开设代理服务器
- 详解Linux下Nginx+Tomcat整合的安装与配置
- ubuntu临时或永久修改hostname的方法
- PHP实现linux命令tail -f
- Boostrap实现的登录界面实例代码
- Bootstrap插件全集
- javascript 精确获取样式属性(上)
- Java虚拟机装载和初始化一个class类代码解析
- PHP在引号前面添加反斜杠(PHP去除反斜杠)
- 实例讲解java的纯数字加密解密
- 详解iOS App开发中UIViewController的loadView方法使用