前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >学习笔记CB010:递归神经网络、LSTM、自动抓取字幕

学习笔记CB010:递归神经网络、LSTM、自动抓取字幕

原创
作者头像
利炳根
发布于 2018-03-31 13:51:06
发布于 2018-03-31 13:51:06
1.4K0
举报
文章被收录于专栏:利炳根的专栏利炳根的专栏

递归神经网络可存储记忆神经网络,LSTM是其中一种,在NLP领域应用效果不错。

递归神经网络(RNN),时间递归神经网络(recurrent neural network),结构递归神经网络(recursive neural network)。时间递归神经网络神经元间连接构成有向图,结构递归神经网络利用相似神经网络结构递归构造更复杂深度网络。两者训练属同一算法变体。

时间递归神经网络。传统神经网络FNN(Feed-Forward Neural Networks),前向反馈神经网络。RNN引入定向循环,神经元为节点组成有向环,可表达前后关联关系。隐藏层节点间构成全连接,一个隐藏层节点输出可作另一个隐藏层节点或自己的输入。U、V、W是变换概率矩阵,x是输入,o是输出。RNN关键是隐藏层,隐藏层捕捉序列信息,记忆能力。RNN中U、V、W参数共享,每一步都在做相同事情,输入不同,降低参数个数和计算量。RNN在NLP应用较多,语言模型在已知已出现词情况下预测下一个词概率,是时序模型,下一个词出现取决于前几个词,对应RNN隐藏层间内部连接。

RNN的训练方法。用BP误差反向传播算法更新训练参数。从输入到输出经过步骤不确定,利用时序方式做前向计算,假设x表示输入值,s表示输入x经过U矩阵变换后值,h表示隐藏层激活值,o表示输出层值, f表示隐藏层激活函数,g表示输出层激活函数。当t=0时,输入为x0, 隐藏层为h0。当t=1时,输入为x1, s1 = Ux1+Wh0, h1 = f(s1), o1 = g(Vh1)。当t=2时,s2 = Ux2+Wh1, h2 = f(s2), o2 = g(Vh2)。st = Uxt + Wh(t-1), ht = f(st), ot = g(Vht)。h=f(现有的输入+过去记忆总结),对RNN记忆能力全然体现。

UVW变换概率矩阵,x输入,s xU矩阵变换后值,f隐藏层激活函数,h隐藏层激活值,g输出层激活函数,o输出。时间、输入、变换(输入、前隐藏)、隐藏(变换)、输出(隐藏)。输出(隐藏(变换(时间、输入、前隐藏)))。反向修正参数,每一步输出o和实际o值误差,用误差反向推导,链式求导求每层梯度,更新参数。

LSTM(Long Short Tem Momery networks)。RNN存在长序列依赖(Long-Term Dependencies)问题。下一个词出现概率和非常久远之前词有关,考虑到计算量,限制依赖长度。http://colah.github.io/posts/2015-08-Understanding-LSTMs 。传统RNN示意图,只包含一个隐藏层,tanh为激发函数,“记忆”体现在t滑动窗口,有多少个t就有多少记忆。

LSTM设计,神经网络层(权重系数和激活函数,σ表示sigmoid激活函数,tanh表示tanh激活函数),矩阵运算(矩阵乘或矩阵加)。历史信息传递和记忆,调大小阀门(乘以一个0到1之间系数),第一个sigmoid层计算输出0到1之间系数,作用到×门,这个操作表达上一阶段传递过来的记忆保留多少,忘掉多少。忘掉记忆多少取决上一隐藏层输出h{t-1}和本层的输入x{t}。上一层输出h{t-1}和本层的输入x{t}得出新信息,存到记忆。计算输出值Ct部分tanh神经元和计算比例系数sigmoid神经元(sigmoid取值范围是[0,1]作比例系数,tanh取值范围[-1,1]作一个输出值)。隐藏层输出h计算,考虑当前全部信息(上一时序隐藏层输出、本层输入x和当前整体记忆信息),本单元状态部分C通过tanh激活并做一个过滤(上一时序输出值和当前输入值通过sigmoid激活系数)。一句话词是不同时序输入x,在某一时间t出现词A概率可LSTM计算,词A出现概率取决前面出现过词,取决前面多少个词不确定,LSTM存储记忆信息C,得出较接近概率。

聊天机器人是范问答系统。

语料库获取。范问答系统,一般从互联网收集语料信息,比如百度、谷歌,构建问答对组成语料库。语料库分成多训练集、开发集、测试集。问答系统训练在一堆答案里找一个正确答案模型。训练过程不把所有答案都放到一个向量空间,做分组,在语料库里采集样本,收集每一个问题对应500个答案集合,500个里面有正向样本,随机选些负向样本,突出正向样本作用。

基于CNN系统设计,sparse interaction(稀疏交互),parameter sharing(参数共享),equivalent respresentation(等价表示),适合自动问答系统答案选择模型训练。

通用训练方法。训练时获取问题词向量Vq(词向量可用google word2vec训练,和一个正向答案词向量Va+,和一个负向答案词向量Va-, 比较问题和两个答案相似度,两个相似度差值大于一个阈值m更新模型参数,在候选池里选答案,小于m不更新模型。参数更新,梯度下降、链式求导。测试数据,计算问题和候选答案cos距离,相似度最大是正确答案预测。

神经网络结构设计。HL hide layer隐藏层,激活函数z = tanh(Wx+B),CNN 卷积层,P 池化层,池化步长 1,T tanh层,P+T输出是向量表示,最终输出两个向量cos相似度。HL或CNN连起来表示共享相同权重。CNN输出维数取决做多少卷积特征。论文《Applying Deep Learning To Answer Selection- A Study And An Open Task》。

深度学习运用到聊天机器人中,1. 神经网络结构选择、组合、优化。2. 自然语言处理,机器识别词向量。3. 相似或匹配关系考虑相似度计算,典型方法 cos距离。4. 文本序列全局信息用CNN或LSTM。5. 精度不高可加层。6. 计算量过大,参数共享和池化。

聊天机器人学习,需要海量聊天语料库。美剧字幕。外文电影或电视剧字幕文件是天然聊天语料,对话比较多美剧最佳。字幕库网站www.zimuku.net。

自动抓取字幕。抓取器代码(https://github.com/warmheartli/ChatBotCourse)。在subtitle下创建目录result,scrapy.Request

方法调用时增加传参 dont_filter=True:

# coding:utf-8

import sys

import importlib

importlib.reload(sys)

import scrapy

from subtitle_crawler.items import SubtitleCrawlerItem

class SubTitleSpider(scrapy.Spider):

name = "subtitle"

allowed_domains = ["zimuku.net"]

start_urls = [

"http://www.zimuku.net/search?q=&t=onlyst&ad=1&p=20",

"http://www.zimuku.net/search?q=&t=onlyst&ad=1&p=21",

"http://www.zimuku.net/search?q=&t=onlyst&ad=1&p=22",

]

def parse(self, response):

hrefs = response.selector.xpath('//div[contains(@class, "persub")]/h1/a/@href').extract()

for href in hrefs:

url = response.urljoin(href)

request = scrapy.Request(url, callback=self.parse_detail, dont_filter=True)

yield request

def parse_detail(self, response):

url = response.selector.xpath('//li[contains(@class, "dlsub")]/div/a/@href').extract()[0]

print("processing: ", url)

request = scrapy.Request(url, callback=self.parse_file, dont_filter=True)

yield request

def parse_file(self, response):

body = response.body

item = SubtitleCrawlerItem()

item['url'] = response.url

item['body'] = body

return item

# -*- coding: utf-8 -*-

class SubtitleCrawlerPipeline(object):

def process_item(self, item, spider):

url = item['url']

file_name = url.replace('/','_').replace(':','_')+'.rar'

fp = open('result/'+file_name, 'wb+')

fp.write(item['body'])

fp.close()

return item

ls result/|head -1 , ls result/|wc -l , du -hs result/ 。

字幕文件解压,linux直接执行unzip file.zip。linux解压rar文件,http://www.rarlab.com/download.htm 。wget http://www.rarlab.com/rar/rarlinux-x64-5.4.0.tar.gz 。tar zxvf rarlinux-x64-5.4.0.tar.gz

./rar/unrar 。解压命令,unrar x file.rar 。linux解压7z文件,http://downloads.sourceforge.net/project/p7zip 下载源文件,解压执行make编译 bin/7za可用,用法 bin/7za x file.7z。

程序和脚本在https://github.com/warmheartli/ChatBotCourse 。第一步:爬取影视剧字幕。第二步:压缩格式分类。文件多无法ls、文件名带特殊字符、文件名重名误覆盖、扩展名千奇百怪,python脚本mv_zip.py:

import glob

import os

import fnmatch

import shutil

import sys

def iterfindfiles(path, fnexp):

for root, dirs, files in os.walk(path):

for filename in fnmatch.filter(files, fnexp):

yield os.path.join(root, filename)

i=0

for filename in iterfindfiles(r"./input/", "*.ZIP"):

i=i+1

newfilename = "zip/" + str(i) + "_" + os.path.basename(filename)

print(filename + " <===> " + newfilename)

shutil.move(filename, newfilename)

#sys.exit(-1)

扩展名根据压缩文件修改*.rar、*.RAR、*.zip、*.ZIP。第三步:解压。根据操作系统下载不同解压工具,建议unrar和unzip,脚本来实现批量解压:

i=0; for file in `ls`; do mkdir output/${i}; echo "unzip $file -d output/${i}";unzip -P abc $file -d output/${i} > /dev/null; ((i++)); done

i=0; for file in `ls`; do mkdir output/${i}; echo "${i} unrar x $file output/${i}";unrar x $file output/${i} > /dev/null; ((i++)); done

第四步:srt、ass、ssa字幕文件分类整理。字幕文件类型srt、lrc、ass、ssa、sup、idx、str、vtt。第五步:清理目录。自动清理空目录脚本clear_empty_dir.py :

import glob

import os

import fnmatch

import shutil

import sys

def iterfindfiles(path, fnexp):

for root, dirs, files in os.walk(path):

if 0 == len(files) and len(dirs) == 0:

print(root)

os.rmdir(root)

iterfindfiles(r"./input/", "*.srt")

第六步:清理非字幕文件。批量删除脚本del_file.py :

import glob

import os

import fnmatch

import shutil

import sys

def iterfindfiles(path, fnexp):

for root, dirs, files in os.walk(path):

for filename in fnmatch.filter(files, fnexp):

yield os.path.join(root, filename)

for suffix in ("*.mp4", "*.txt", "*.JPG", "*.htm", "*.doc", "*.docx", "*.nfo", "*.sub", "*.idx"):

for filename in iterfindfiles(r"./input/", suffix):

print(filename)

os.remove(filename)

第七步:多层解压缩。第八步:舍弃剩余少量文件。无扩展名、特殊扩展名、少量压缩文件,总体不超过50M。第九步:编码识别与转码。utf-8、utf-16、gbk、unicode、iso8859,统一utf-8,get_charset_and_conv.py :

import chardet

import sys

import os

if __name__ == '__main__':

if len(sys.argv) == 2:

for root, dirs, files in os.walk(sys.argv[1]):

for file in files:

file_path = root + "/" + file

f = open(file_path,'r')

data = f.read()

f.close()

encoding = chardet.detect(data)["encoding"]

if encoding not in ("UTF-8-SIG", "UTF-16LE", "utf-8", "ascii"):

try:

gb_content = data.decode("gb18030")

gb_content.encode('utf-8')

f = open(file_path, 'w')

f.write(gb_content.encode('utf-8'))

f.close()

except:

print("except:", file_path)

第十步:筛选中文。extract_sentence_srt.py :

# coding:utf-8

import chardet

import os

import re

cn=ur"([u4e00-u9fa5]+)"

pattern_cn = re.compile(cn)

jp1=ur"([u3040-u309F]+)"

pattern_jp1 = re.compile(jp1)

jp2=ur"([u30A0-u30FF]+)"

pattern_jp2 = re.compile(jp2)

for root, dirs, files in os.walk("./srt"):

file_count = len(files)

if file_count > 0:

for index, file in enumerate(files):

f = open(root + "/" + file, "r")

content = f.read()

f.close()

encoding = chardet.detect(content)["encoding"]

try:

for sentence in content.decode(encoding).split('n'):

if len(sentence) > 0:

match_cn = pattern_cn.findall(sentence)

match_jp1 = pattern_jp1.findall(sentence)

match_jp2 = pattern_jp2.findall(sentence)

sentence = sentence.strip()

if len(match_cn)>0 and len(match_jp1)==0 and len(match_jp2) == 0 and len(sentence)>1 and len(sentence.split(' ')) < 10:

print(sentence.encode('utf-8'))

except:

continue

第十一步:字幕中句子提取。

# coding:utf-8

import chardet

import os

import re

cn=ur"([u4e00-u9fa5]+)"

pattern_cn = re.compile(cn)

jp1=ur"([u3040-u309F]+)"

pattern_jp1 = re.compile(jp1)

jp2=ur"([u30A0-u30FF]+)"

pattern_jp2 = re.compile(jp2)

for root, dirs, files in os.walk("./ssa"):

file_count = len(files)

if file_count > 0:

for index, file in enumerate(files):

f = open(root + "/" + file, "r")

content = f.read()

f.close()

encoding = chardet.detect(content)["encoding"]

try:

for line in content.decode(encoding).split('n'):

if line.find('Dialogue') == 0 and len(line) < 500:

fields = line.split(',')

sentence = fields[len(fields)-1]

tag_fields = sentence.split('}')

if len(tag_fields) > 1:

sentence = tag_fields[len(tag_fields)-1]

match_cn = pattern_cn.findall(sentence)

match_jp1 = pattern_jp1.findall(sentence)

match_jp2 = pattern_jp2.findall(sentence)

sentence = sentence.strip()

if len(match_cn)>0 and len(match_jp1)==0 and len(match_jp2) == 0 and len(sentence)>1 and len(sentence.split(' ')) < 10:

sentence = sentence.replace('N', '')

print(sentence.encode('utf-8'))

except:

continue

第十二步:内容过滤。过滤特殊unicode字符、关键词、去除字幕样式标签、html标签、连续特殊字符、转义字符、剧集信息:

# coding:utf-8

import sys

import re

import chardet

if __name__ == '__main__':

#illegal=ur"([u2000-u2010]+)"

illegal=ur"([u0000-u2010]+)"

pattern_illegals = [re.compile(ur"([u2000-u2010]+)"), re.compile(ur"([u0090-u0099]+)")]

filters = ["字幕", "时间轴:", "校对:", "翻译:", "后期:", "监制:"]

filters.append("时间轴:")

filters.append("校对:")

filters.append("翻译:")

filters.append("后期:")

filters.append("监制:")

filters.append("禁止用作任何商业盈利行为")

filters.append("http")

htmltagregex = re.compile(r'<[^>]+>',re.S)

brace_regex = re.compile(r'{.*}',re.S)

slash_regex = re.compile(r'\w',re.S)

repeat_regex = re.compile(r'[-=]{10}',re.S)

f = open("./corpus/all.out", "r")

count=0

while True:

line = f.readline()

if line:

line = line.strip()

# 编码识别,不是utf-8就过滤

gb_content = ''

try:

gb_content = line.decode("utf-8")

except Exception as e:

sys.stderr.write("decode error: ", line)

continue

# 中文识别,不是中文就过滤

need_continue = False

for pattern_illegal in pattern_illegals:

match_illegal = pattern_illegal.findall(gb_content)

if len(match_illegal) > 0:

sys.stderr.write("match_illegal error: %sn" % line)

need_continue = True

break

if need_continue:

continue

# 关键词过滤

need_continue = False

for filter in filters:

try:

line.index(filter)

sys.stderr.write("filter keyword of %s %sn" % (filter, line))

need_continue = True

break

except:

pass

if need_continue:

continue

# 去掉剧集信息

if re.match('.*第.*季.*', line):

sys.stderr.write("filter copora %sn" % line)

continue

if re.match('.*第.*集.*', line):

sys.stderr.write("filter copora %sn" % line)

continue

if re.match('.*第.*帧.*', line):

sys.stderr.write("filter copora %sn" % line)

continue

# 去html标签

line = htmltagregex.sub('',line)

# 去花括号修饰

line = brace_regex.sub('', line)

# 去转义

line = slash_regex.sub('', line)

# 去重复

new_line = repeat_regex.sub('', line)

if len(new_line) != len(line):

continue

# 去特殊字符

line = line.replace('-', '').strip()

if len(line) > 0:

sys.stdout.write("%sn" % line)

count+=1

else:

break

f.close()

pass

参考资料:

《Python 自然语言处理》

http://www.shareditor.com/blogshow?blogId=103

http://www.shareditor.com/blogshow?blogId=104

http://www.shareditor.com/blogshow?blogId=105

http://www.shareditor.com/blogshow?blogId=112

欢迎推荐上海机器学习工作机会,我的微信:qingxingfengzi

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
薅鹅毛啦 |《我与视频云的2020》用户故事有奖征集
《我与视频云的2020》用户故事征集活动就要结束啦,参与就有盲盒送! 小伙伴们快来参加吧~ 活动详情请微信扫码或搜索"shipinyun0925"视频云小姐姐进行咨询!
腾讯云音视频
2021/01/18
4210
腾讯云智能体开发平台×DeepSeek最佳实践有奖征文活动
作者获奖名单公布 获奖名单请移步官网文档查看:https://cloud.tencent.com/document/act 届时会发站内信和短信通知获奖,请获奖
腾讯云开发者社区
2025/02/14
23.4K16
玩转腾讯混元 | 腾讯混元大模型AIGC系列产品技术有奖征文活动
作者获奖名单公布 获奖名单请移步官网文档查看:https://cloud.tencent.com/document/act 届时会发站内信和短信通知获奖,请获奖
腾讯云开发者社区
2024/09/03
11.4K7
玩转OCR | 腾讯云智能结构化识别最佳实践有奖征文活动
作者获奖名单公布 获奖名单请移步官网文档查看:https://cloud.tencent.com/document/act 届时会发站内信和短信通知获奖,请获奖
腾讯云开发者社区
2024/12/13
60K15
有奖征文丨腾讯云+社区【玩转腾讯云】征文大赛来啦!
为活跃腾讯云+社区的技术氛围,同时鼓励广大程序员们更好的学习和分享腾讯云技术,云+社区联合腾讯云免费体验馆及各产品团队举办【玩转腾讯云】征文活动。只要是与「腾讯云」产品相关的原创干货技术内容,都可以参加这次活动。腾讯云全产品体验季,赶快整理并分享你的经验和文字,将有机会获得大奖哟~ 分享有礼 分享奖: 分享活动海报到微信朋友圈集赞并保留至活动截稿日5月5日,截图发送给云+社区小编(微信号:haloikea222)即可获得。 50 - 99 个赞:腾讯鼠年生肖公仔 *1个 ≥100个赞:腾讯视频 V
腾讯即时通信IM
2020/06/19
1.8K0
腾云先锋【技术出题官,等你来挑战】有奖问答活动
成功参与,就有机会可以获得:丰富的实物礼包、大额的腾讯云代金券、腾云先锋(TDP)反馈交流群的丰厚积分
TDP 官方运营
2021/09/27
1.8K4
腾云先锋【技术出题官,等你来挑战】有奖问答活动
有奖活动 | 企点和我的故事征文
智能大数据时代,企业如何利用腾讯企点产品完成自身的数字化转型升级?如何全面覆盖全渠道,更好地连接与沟通客户?如何基于企点功能更精准地触达客户?如何解决实际工作中大大小小的痛点以及难题? 即日起,腾讯企点面向广大企业客户,征集“企点和我的故事”。可以是使用企点工作的小分享;可以是独家的企点使用技能经验;可以是企点给你带来了某种改变的小故事。不论是工作中的小细节,还是企业长远的升级转型,只要是你与企点的故事,我们都期待万分! 腾讯企点愿携手大家一“企”成长! 活动日期:11月29日~12月30日 参与方式
腾讯企点
2020/06/10
7560
有奖征集 | 《我与视频云的2020》用户故事
描述你初次接触视频云的欣喜、印象深刻的代码之夜、直播应用发版的当天等重要瞬间,分享更多视频云记忆如产品体验、技术分享、开发经历、服务沟通等等。
腾讯云音视频
2021/01/04
1.5K1
有奖征集 | 《我与视频云的2020》用户故事
一起来看视频云2020征文完结篇!谁不是个有故事的开发人呢~
感谢大家参与本次[我与视频云的2020]年度征文活动!在此期间,我们收到很多小伙伴们的投稿,也看到了各种开发历程、技术分享、以及有趣的瞬间。我们精选了3篇“WOW”故事与大家分享,也期待更多小伙伴在2021能与我们并肩同行,一起创造更多美好的瞬间~ 1. 我为什么选择了腾讯云? —— by Danny 我刚进公司的时候,公司还没有做直播业务的项目,而我们公司的业务也都是一些惠卡通,惠民服务的一些项目,当时对于云端先是用了其他供应商的服务器,后面我们领导组织了一次会议,会议内容大概是我们后面需要在之前的
腾讯云音视频
2021/01/25
2K0
【玩转腾讯云】征文活动获奖名单公布
由云+社区联合腾讯云免费体验馆及各产品团队举办【玩转腾讯云】征文活动,吸引入驻作者积极参加,非常感谢各位作者的参与。经过评委老师从产品创新性、实用性、可借鉴性、代码规范度、与云计算能力的结合这几个维度的评分以及阅读数、分享数、评论数、收藏数四个维度的指标,综合得出获奖作者名单如下:
腾讯云开发者社区
2020/05/12
12.2K11
一年了,说几件大事!
大家好,我是鲏。祝大家元宵节快乐呀,今天记得多陪陪家人、要一起吃元宵哦~ 今天对我来说也是个特殊的日子,自己的编程知识星球已运营 365 天、成员数 1.5 万、内容数量 11 万,都是整数哈哈! 如图: 也是借这个日子,给大家分享我最近已做或者正在做的几件事情,说不定会对大家有参考呢。 1、假日计划完成 前段时间我不是请了很多天年假嘛,给自己定了一个很清晰的假期计划表(见这篇文章:我放假啦!这 22 天干点啥呢)。 今天我又复盘了一下自己的假期,惊喜地发现假期定的计划竟然完成了 80%!因为计划是一直在
程序员鱼皮
2023/03/29
3860
一年了,说几件大事!
2024腾讯云开发者社区年度表彰|更有 3 大新春有奖活动等你参与🎁
图片 2024 年,腾讯云开发者与千万名开发者们,携手共创了一个崭新的社区。从技术交流到知识共享,从线下相聚到线上互动,我们一起走过了意义非凡的旅程。转眼间,腾
腾讯云开发者社区
2025/01/10
12.6K59
2024腾讯云开发者社区年度表彰|更有 3 大新春有奖活动等你参与🎁
【TDP年终活动part 1】——我是“云服务体验官”有奖问卷
想必各位使用腾讯云产品的小伙伴们都体验过腾讯云的服务吧!腾讯云一直致力于为大家提供专业的服务,7*24小时的快速响应,希望大家能够轻松上云,及时解决遇到的技术难题。
TDP 官方运营
2022/12/22
1.4K1
【TDP年终活动part 1】——我是“云服务体验官”有奖问卷
【有奖课程互动-十一月期-节点管理】看视频,贴截图,知识打包,好学到饱
知识赠与好学人,本期打包了蓝鲸节点管理使用视频汇总,每个视频都包含了该产品的基础使用功能,快来看看运维大牛们平时都是怎么使用蓝鲸节点管理的~
腾讯蓝鲸助手
2021/12/02
4661
【七夕活动】七夕表白日,大声说出你的爱~
仔细回想起来,你们与腾讯云已经认识很久了吧,值此七夕佳节,这个表白的好日子,希望你们能把对腾讯云产品或服务的爱,大声的说出来!让她知道你们的爱!
TDP 官方运营
2021/08/10
1.6K63
【七夕活动】七夕表白日,大声说出你的爱~
【有奖课程互动-十一月期-配置平台】看视频,贴截图,知识打包,好学到饱
知识赠与好学人,本期打包了蓝鲸CMDB使用视频汇总,每个视频都包含了该产品的基础使用功能,快来看看运维大牛们平时都是怎么使用蓝鲸CMDB的~
腾讯蓝鲸助手
2021/11/25
9722
【有奖课程互动-十一月期-配置平台】看视频,贴截图,知识打包,好学到饱
【云+社区年度征文】回顾与腾讯云的点点滴滴
参加征文比赛,原计划用一些api或cps之类的文章进行投稿,但经过对比查询其他选手的帖子后,果断转移方向,单纯的讲述技术,实在没信心能赢过论坛中的诸多大神。
霍常亮
2020/12/22
11.4K20
【云+社区年度征文】回顾与腾讯云的点点滴滴
重磅!微信 3.0 客户端支持刷朋友圈了!从此爱上上班还是无心上班?
对于众多苹果粉来说,今天是一个眉飞色舞的好日子,微信Mac版客户端终于支持查看朋友圈啦!!!
程序猿DD
2021/03/26
4590
AI颠覆前端和原画师?云上探索实验室为你加速AI开发
近期,AI领域不断涌现出重大的变革和创新,其中包括大规模模型的问世和AIGC技术的快速迭代发展。每天都有新技术、新算法不断涌现,更大型的模型也层出不穷。AI技术已经渗透到了各行各业,对开发者、设计师、文字工作者等职业都产生了深刻影响。AI正在改变着我们的工作生产方式,这已成为行业的共识。因此,了解和掌握AI的重要技术变革和趋势对于开发者来说至关重要。 为了让更多的开发者了解和真正参与到技术的开发与应用中,我们推出了一项名为【云上探索实验室】的活动,希望可以和开发者一起从实践中探索技术的边界。本期实验室主题围
AI科技大本营
2023/04/14
8340
AI颠覆前端和原画师?云上探索实验室为你加速AI开发
直播预告 | 视频云推广大使招募强势来袭!
双11激励加码,视频云推广者招募直播上线啦! 现在成为视频云推广大使, 最高获35%现金奖励及1000元京东卡。 ---- 大咖齐聚,跟大家分享视频直播中最有料的话题。 直播看点抢先预告: 1. 流量当道,云直播如何助力企业抓住直播风口 2. 云点播在长短视频领域中的破局之道 3. 云点播&云直播推广策略全方位解析 直播时间: 10月15日 19:00-20:00 直播抽奖: 本次直播过程中将有3轮抽奖提问,最先在评论区给出正确答案的小伙伴们将获得腾讯云定制旅行三件套、QQ定制蓝牙音箱及腾讯定制
腾讯云音视频
2020/10/14
1.2K0
推荐阅读
相关推荐
薅鹅毛啦 |《我与视频云的2020》用户故事有奖征集
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档