码迷,mamicode.com
首页 > 其他好文 > 详细

【神器】毕业生的法宝,论文一键降重~!

时间:2021-01-02 10:31:01      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:字符   方式   class   平台   响应   --   mamicode   img   text   

技术图片


对代码、编程感兴趣的可以关注老K玩代码和我交流!
技术图片

【神器】毕业生的法宝,论文一键降重~!


“声明:本文旨在技术分享,谢绝以此投机取巧~!
  • 面临毕业的学生,一定有过被查重支配的恐怖经历。万方、turnitin、知网、PP、PT,每个平台的查重率不一而同。
  • 最无奈的是学校对重复率的要求颇高,越是顶尖的学校,对查重的要求就更高。

  • 本人已经毕业十余年,每每回想起为了论文的重复率彻夜苦熬,就不禁不寒而栗。
  • 现在好了,只要淘宝一下,就有各种各样的降重服务。引起我注意的,是一个叫做“AI降重软件”的工具。
  • 出于好奇,我花了点本钱,把软件买了一下,然后研究了一下它背后的代码逻辑。

    技术图片

  • 其实所谓的AI降重,本质上就是通过翻译软件,从中文翻译成外语,然后在翻译回来。这样语义保持不变,但文本上看起来已经变成另外一种表述了。
  • 觉得这个思路还是挺有意思的,便自己着手写起了代码:

    1. 导入需要的第三方库


from selenium.webdriver import Chrome
  • 本次会用到的是selenium的库。它需要搭载webdriver才能运行,可以谷歌搜索一下“webdriver chrome”这个关键词,一般第一个就是了。
  • 把webdriver安装在脚本文件所在目录即可。

    2. 对模拟浏览器做一下初始化设置


dr = Chrome()
dr.implicitly_wait(5)
dr.maximize_window()
  1. 以上是我对浏览器的基本设置。
    • 如果喜欢无浏览器模式的话,可以使用下面这段代码
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument(‘--headless‘)
dr = Chrome(options=options)
dr.implicitly_wait(5)
dr.maximize_window()

3. 检查翻译软件的请求借口


技术图片

  • 我是以百度翻译为样例。

从上述截图,我们可以看出,百度翻译的借口非常简洁,使用get方式写成的。图中zh就是输入语言名,en就是输出语言名,url链接最后就是需要翻译的文本内容。于是我们的请求代码就可以写成这样

url = f"https://fanyi.baidu.com/#{input_lang}/{output_lang}/{text}"
dr.get(url)

4. 获得翻译文本


发出请求后,等待几秒,等页面打开后,将相应的翻译文本保存到变量中
text = dr.find_element_by_class_name("target-output").text.strip()
不同的翻译工具,借口和解析路径不同。还是需要一些前端的选择器知识才行。

5. 用翻译工具译回中文


这一步其实就是之前内容的重复,唯一区别就是把输入语言和输出语言进行对换。这里就不再重复展示代码了。

ex. 总结


以上提及的代码内容,仅用于展示和分享作业思路。完整代码如下:

# encoding: utf-8
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options

def do_repetition(text):
    options = Options()
    options.add_argument(‘--headless‘)
    dr = Chrome(options=options)
    dr.implicitly_wait(5)
    dr.maximize_window()

    for i in range(2):
        if i == 0:
            input_lang = ‘zh‘
            output_lang = ‘en‘
        else:
            input_lang = ‘en‘
            output_lang = ‘zh‘
        url = f"https://fanyi.baidu.com/#{input_lang}/{output_lang}/{text}"
        dr.get(url)
        text = dr.find_element_by_class_name("target-output").text.strip()
    dr.close()
    return text

如果想要真正实现文本降重的功能,可能还需要在细节上打磨一下,诸如:

  • 等待响应的时长设计;
  • 请求失败的处理;
  • 特殊字符的处理;
  • 文本和图片的处理;
  • 文本格式的设置;
  • 回车换行的处理;
  • 专有名词的约束条件;
  • 引用摘抄文本保持不变的需求等...
    要真正实现一键对论文降重,还有很多细节要处理。
    我在这里不详细分享更细节的代码,也不鼓励用这种投机取巧的方法对待学术研究。
    希望本文能给到技术同行以启发。

往期精彩推荐:


  • 11本推荐新手自学入门Python的必看书目
  • 你必须知道的18个Python开源库
  • 学好JavaScript基本功,老K推荐这几本书
  • 深度学习,大家都看哪些社区论坛?
  • 【热荐】必须推荐的7个Python深度学习项目

粉丝福利:


  • 阅读、分享《学好JavaScript基本功,老K推荐这几本书》,有机会获得《JavaScript高级程序设计》1本
  • 阅读、分享《11本推荐新手自学入门Python的必看书目》,有机会获得《Python核心编程》1本
    技术图片

【神器】毕业生的法宝,论文一键降重~!

标签:字符   方式   class   平台   响应   --   mamicode   img   text   

原文地址:https://blog.51cto.com/15069443/2576236

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!