基于paddlehub的粉圈微博生成

一-前言

灵感来源于中文互联网中的大量垃圾信息与“僵尸粉”,以及大量的粉丝打榜内容。

在自然语言处理的帮助下,我们是否可以创造出能自主行动,甚至与真人用户互动的虚拟用户?人们能否识别ta是人还是ai?会与ta讨论、甚至争斗吗?

本项目以某明星的粉丝为例,尝试生成粉圈微博,并在微博上回复他人,观察人类用户的回复。

希望能将本项目作为一种尝试,引起更多人对社交媒体的反思。

  • 输入:话题,如[XX电视剧],[XX晚安]
  • 输出:对应话题的粉圈微博

Github地址: https://github.com/sunyuqian1997/ghost-on-web

二-模型简介

ERNIE-GEN 是面向生成任务的预训练-微调框架,首次在预训练阶段加入span-by-span 生成任务,让模型每次能够生成一个语义完整的片段。在预训练和微调中通过填充式生成机制和噪声感知机制来缓解曝光偏差问题。此外, ERNIE-GEN 采样多片段-多粒度目标文本采样策略, 增强源文本和目标文本的关联性,加强了编码器和解码器的交互。ernie_gen module是一个具备微调功能的module,可以快速完成特定场景module的制作。

https://www.paddlepaddle.org.cn/hubdetail?name=ernie_gen&en_category=TextGeneration

三-安装环境

! pip install xlrd
! pip install paddlehub==1.8.0
! pip install paddle-ernie==0.0.4.dev1

四-准备数据集

我们使用Weibo-spider爬取了约1w条该明星的粉丝微博,并整理成“话题-正文”的格式。

Ernie-gen要求的格式为"序号\t输入文本\t标签",因此我们按要求处理.xlsx格式的文件,生成数据与验证集。

import pandas as pd
#xlsx数据格式:标签/内容
df = pd.read_excel("train(1).xlsx")
Keys = df["label"].values
Txts = df["text_a"].valueswith open("train.txt", "w") as f:for i, k in enumerate(Keys):t = Txts[i]f.write("{}\t{}\t{}\n".format(i, k, t))df = pd.read_excel("dev.xlsx")
Keys = df["label"].values
Txts = df["text_a"].valueswith open("dev.txt", "w") as f:for i, k in enumerate(Keys):t = Txts[i]f.write("{}\t{}\t{}\n".format(i, k, t))

五-Finetune并训练

  • train_path(str): 训练集路径。
  • dev_path(str): 验证集路径。
  • save_dir(str): 模型保存以及验证集预测输出路径。
  • max_steps(int): 最大训练步数。
  • noise_prob(float): 噪声概率,详见ernie gen论文。
  • save_interval(int): 训练时的模型保存间隔部署。验证集将在模型保存完毕后进行预测。
  • max_encode_len(int): 最长编码长度。
  • max_decode_len(int): 最长解码长度。
import paddlehub as hub
!hub install Versaillesmodule = hub.Module(name="ernie_gen")#finetune参考:https://aistudio.baidu.com/aistudio/projectdetail/1456984?channelType=0&channel=0
result = module.finetune(train_path='train.txt',dev_path='dev.txt',save_dir="Versailles_param",max_steps=1500,noise_prob=0.1,save_interval=500,max_encode_len=200,max_decode_len=200
)
# 将训练参数打包为hub model
module.export(params_path=result['last_save_path'], module_name="Versailles_8", author="lyp")

六- 运行预测

import paddlehub as hubmodule = hub.Module(directory="/home/aistudio/Versailles_8/")test_texts = ['关键词']
results = module.generate(texts=test_texts, use_gpu=True, beam_width=5)
for result in results:print(result)

七- 微博回复测试

待补充

参考链接

手把手教你使用预训练模型ernie_gen进行finetune自己想要的场景

用Paddlepaddle做一个凡尔赛文学生成器

Weibo-spider

基于paddlehub的粉圈微博生成相关推荐

  1. 基于PaddleHub的虚拟粉圈微博生成

    基于PaddleHub的虚拟粉圈微博生成 B站演示视频 一-前言 灵感来源于中文互联网中的大量垃圾信息与"僵尸粉",以及大量的粉丝打榜内容. 在自然语言处理的帮助下,我们是否可以创 ...

  2. 【AI创造营】基于PaddleHub与Jetson Nano的智能宠物看护助手

    基于PaddleHub与Jetson Nano的智能宠物看护助手 一.效果展示 二.实现思路 1.训练一个适用于该需求的模型 2.使用PaddleHub预训练模型 三.数据采集 硬件部分 代码部分 四 ...

  3. 基于ssm+mysql的javaee微博博客系统,Java实现类似新浪微博网站、朋友圈分享系统

    基于SSM+mysql的javaee微博博客系统,Java实现类似新浪微博网站.朋友圈分享系统 主要技术 SpringBoot\SSM(两个版本都有) HTML.jQuery.HTML.CSS.JS ...

  4. python+beautifulsoup/xpath实现新浪微博某互粉好友全部好友圈微博爬虫

    主要是懒,想要翻刚刚互粉的好友的全部好友圈微博,然而懒得一个一个去翻,就做了这个. 所谓一切机械性重复工作都可以交给计算机去做,就是我了我这种懒人而生的吧--

  5. 当幻想的小说来到现实——基于stable diffusion的小说插画生成

    当幻想的小说来到现实--基于stable diffusion的小说插画生成 引言 近期文生图大火,而这也激发了我曾经的玄幻小说插画梦,将玄幻带到现实,可惜本人手残,但能用ai作自己梦中的画也是不错的. ...

  6. 基于 Word2Vec 和 SVM 的微博舆情情感演化分析 论文笔记

    目录 论文标题 引言 标题论文学术结构 1.相关研究综述(先前学者的研究) 2.研究方法 3.基于 Word2Vec 和 SVM 的微博情感演化分析 4.基于 Word2Vec 词相似度的舆情主体对象 ...

  7. 基于PaddleHub的QQ聊天机器人

    基于PaddleHub的QQ聊天机器人 一. 项目背景 本项目是参加[AI达人特训营]的作品. 当你在和朋友在QQ群里划水摸鱼时,你是否会感到有一丝枯燥,没事别担心.为了增加群友们的划水乐趣,提高群友 ...

  8. 【毕业设计_课程设计】基于Django和vue的微博用户情感分析系统

    文章目录 0 项目说明 1 系统介绍 2 系统功能介绍 3 系统启动注意事项 4 项目工程 0 项目说明 基于Django和vue的微博用户情感分析系统 提示:适合用于课程设计或毕业设计,工作量达标, ...

  9. java毕业设计——基于java+SSM+Oracle的微博系统设计与实现(毕业论文+程序源码)——微博系统

    基于java+SSM+Oracle的微博系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+SSM+Oracle的微博系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...

最新文章

  1. Ajax全局加载框(Loading效果)的配置
  2. android EnMicroMsg.db安卓微信数据库获得密码的源码
  3. 前端经典案例——购物车,Jquery实现
  4. mysql事务所_MySQL事务,这篇文章就够了
  5. 解决文件上传_使用FastDfs上传头像上传不成功的问题---SpringCloud Alibaba_若依微服务框架改造---工作笔记002
  6. JTable表格内容导出execl表
  7. java string 去掉两边的引号_编写一个简单的java程序
  8. mysql 快日志_Mysql慢查询日志记录更快的查询
  9. 微信小程序——服务器接口
  10. 1133_SICP开发环境搭建
  11. C语言fflush方法
  12. WIN32 API GetLastError()返回值含义列表
  13. 合力亿捷发布云客服3.0,开启全员客服新时代
  14. 【ssl认证、证书】java中的ssl语法API说明(SSLContext)、与keytool 工具的联系
  15. centos7.5换源
  16. Mysql笔试题(转载)
  17. sql注入——布尔注入
  18. HTML语言全称叫超文本标记语言,其中的“标记“如何理解,“超文本”又如何理解?
  19. STM32开发实例 基于STM32单片机的炼钢厂环境检测
  20. 神州八号明日清晨发射

热门文章

  1. ESP32 sample code 编译报错: FAILED: esp-idf/mbedtls/x509_crt_bundle
  2. firefox标签页、书签页改小
  3. Codevs 抄书问题123
  4. 瓷介电容知多少(一)导电胶粘接片式瓷介电容器的探讨
  5. 培训班出身需隐瞒经历吗?商业项目经验怎样写?程序员面试准备大盘点
  6. 仙人掌直径--poj3567/bzoj1023
  7. 解决在word中用mathtype编辑的公式转换成pdf时出现错位现象
  8. 宅家36天咸鱼翻身入职腾讯,吊打面试官系列!
  9. ACPI相关(5)- PCI热插拔(二)
  10. python爬取豆瓣图片