zoukankan      html  css  js  c++  java
  • 文章伪原创工具制作

    文章伪原创工具制作

    什么是伪原创?

    简单点来说,就是将原创文章进行加工后得到一篇意思和原文章相近的原创文章。常见于网站发文,自媒体创作,媒体搬运等。因为个体用户创作经历有限,而为了达到目的需要采取伪原创手法

    常见伪原创平台

    • 5118
    • 奶盘
    • 小发猫

    有付费平台也有免费的,效果可能差强人意吧

    伪原创原理

    最为正途的,当然就是AI中,自然语言处理分支。利用语言模型进行 分词,计算词义相似度,DNN语言模型(句子通顺度)等等一系列功能整合之后而达到目的。

    核心特点:

    • 近义词,同义词替换
    • 保证句子通顺度

    实际应用

    有意思的是,我用了两种方式各研究了一下。

    • 第一种,自然语言处理,通过使用百度AI的NLP开发了一个开源项目。项目地址:language-ai , 这种可以达到目的,但很快我就发现了问题,分词,DNN语言模型倒还好,但是同义词,近义词替换这个太影响性能,而且对于同义词库的要求比较高。简单来说,就是伪原创速度慢
    • 第二种,采用语言翻译,我们学习过英语都知道,一次多义很正常 ,这就是同义词最常见的地方。所以我们将中文翻译成英文,就会得到意思相近的文章,而且可能每篇都会不一样。然后将英文再翻译会中文,就能完成同义词,近义词替换了,并且效率很高,几千字的文章也不用多久。

    第二种方式虽然有点投机取巧,但在文章伪原创上却是殊途同归

    工具开发

    素材:

    • Python3.8
    • PyQt5
    • 其他依赖包

    实操

    1. 先用PyQt5的designer画一个界面

    这里大致画一下界面

    成品效果如下

    1. 生成py文件

    画好之后,按Ctrl + s 保存成 **.ui文件

    在ui文件在所在目录打开cmd, 输入生成.py文件命令: pyuic5 -o fast-artcile.py fast-article.ui

    这样就会看到一个同名称的py文件,这时候将py拷贝到项目工程中

    1. 调用谷歌翻译

    初始化请求头,设置tkk值等

     def __init__(self):
            self.url = 'https://translate.google.cn/translate_a/single'
            self.TKK = "434674.96463358"  # 随时都有可能需要更新的TKK值
            
            self.header = {
                "accept": "*/*",
                "accept-language": "zh-CN,zh;q=0.9",
                "cookie": "NID=188=M1p_rBfweeI_Z02d1MOSQ5abYsPfZogDrFjKwIUbmAr584bc9GBZkfDwKQ80cQCQC34zwD4ZYHFMUf4F59aDQLSc79_LcmsAihnW0Rsb1MjlzLNElWihv-8KByeDBblR2V1kjTSC8KnVMe32PNSJBQbvBKvgl4CTfzvaIEgkqss",
                "referer": "https://translate.google.cn/",
                "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36",
                "x-client-data": "CJK2yQEIpLbJAQjEtskBCKmdygEIqKPKAQi5pcoBCLGnygEI4qjKAQjxqcoBCJetygEIza3KAQ==",
            }
            
            self.data = {
                "client": "webapp",  # 基于网页访问服务器
                "sl": "auto",  # 源语言,auto表示由谷歌自动识别
                "tl": "vi",  # 翻译的目标语言
                "hl": "zh-CN",  # 界面语言选中文,毕竟URL都是cn后缀了,就不装美国人了
                "dt": ["at", "bd", "ex", "ld", "md", "qca", "rw", "rm", "ss", "t"],  # dt表示要求服务器返回的数据类型
                "otf": "2", 
                "ssel": "0",
                "tsel": "0",
                "kc": "1",
                "tk": "",  # 谷歌服务器会核对的token
                "q": ""  # 待翻译的字符串
            }
            
            with open('token.js', 'r', encoding='utf-8') as f:  
                self.js_fun = execjs.compile(f.read())
                
                
    
    

    翻译, 需要注意,返回的内容是个数组,需要将数组拼接回字符串

    def query(self, q, lang_to=''): 
        self.data['q'] = urllib.parse.quote(q)
        self.data['tk'] = self.js_fun.call('wo', q, self.TKK) 
        self.data['tl'] = lang_to
        url = self.construct_url()
        req = urllib.request.Request(url=url, headers=self.header)
        response = json.loads(urllib.request.urlopen(req).read().decode("utf-8"))
        # 拼接数据
        targetText = []
        results = response[0]
        for result in  results:
            if result[0]:
                targetText.append(result[0])
                # 将数组转成字符
                str = '
    '.join(targetText)
    
                originalText = response[0][0][1]
                originalLanguageCode = response[2]
                print("翻译前:{},翻译前code:{}".format(originalText, originalLanguageCode))
                print("翻译后:{}, 翻译后code:{}".format(str, lang_to))
                return originalText, originalLanguageCode, str, lang_to
    
    1. 给界面中的按钮添加事件
            # 绑定 开始 事件
            self.pushButton.clicked.connect(self.startTrans)
    
    1. 添加事件处理方法
    def startTrans(self):
        # 这里写处理逻辑
        # 1. 获取用户输入的源文本
        # 2. 将文本 中 译 英, 然后 英 译 中
        # 3. 将伪原创之后的内容设置回结果输入框即可
        pass
    

    这样,一个伪原创工具就完成啦

    项目源码

    项目源码,托管于github, 部份谷歌翻译内容,参考GitHub中的项目

    项目成品

    如果有一闪而过的黑窗口,那应该是打包成exe的时候,参数没填好

    成品下载

    方式一:关注vx公~号, GitHub严选 , 回复 “伪原创”即可下载,不限次数,永久免费。如果tkk失效,可回来看项目更新。

    方式二:可自己根据源码包进行打包

    温馨提示

    如果报毒,很正常,只要没有发布在360,安全管家等安全平台就会报毒。大家添加信任,或者暂时关闭杀毒软件即可

  • 相关阅读:
    4.24成果(冲刺1.7)
    4.23成果(冲刺1.6)
    4.22成果(冲刺1.5)
    4.21成果(冲刺1.4)
    4.20成果(冲刺1.3)
    4.19成果(冲刺1.2)
    4.18成果(冲刺1.1)
    计划会议
    需求评审
    电梯演讲
  • 原文地址:https://www.cnblogs.com/amazingjava/p/14097229.html
Copyright © 2011-2022 走看看