英文书《用unreal来学习c++》_用机器学习来概括《哈利波特》,四句话总结一场戏...

毒栗子 发自 凹非寺

量子位 出品 | 公众号 QbitAI

34b1776be480b930c445825a92b4b617.png

文章太长读不下去的时候,就想有个TL;DR按钮,用最短的时间,看最关键的部分。

要是视频很长不想看,该怎么挑重点食用?

一位叫做Sagi Shaier的程序猿,用机器学习给《哈利·波特》电影片段,做了一份太长不看的概括版。

(至于是哪个片段,读下去就会知道。)

c17dbcb0b6d153b8a028207df38970a9.gif

他的AI还用四句话,总结了一段11分钟的有声故事。

并且,程序猿已经把算法放上了GitHub。

那么,一起来观察一下,那些没时间看但又必须看的长视频,要怎样用AI概括出要点:

语音转文本:多种工具选择

首先,做好准备工作,就是把音频转换成文本

语音转文本的工具有很多。

该选什么工具?

程序猿先用了Pocketsphinx,免费且易用,只是准确度感人。

然后,少年又想试试谷歌云的语音转文本服务。这应该是最好的工具之一,不过少年因为不想填信用卡,就放弃了。

0f12115d21079ccf8faf8e7404ed6e36.png

△ 谷歌云

最终,他选择了免费且准确率高的IBM沃森语音转文本,注册流程也简单。

c57b0618d6dd6f0655c5713ffeda36df.png

△ 沃森

在Python里面用沃森

一开始你可能会感觉有点复杂,熟悉了就简单了。

只要用这一段代码:

1 IBM_USERNAME = “apikey”2 IBM_PASSWORD = ‘Pass’ #Put your API key here3 stt = SpeechToTextV1(username=IBM_USERNAME, password=IBM_PASSWORD)4 audio_file = open(“new_story.wav”, “rb”) #audio file's name5 with open(‘new_story.json’, ‘w’) as fp: 6 result = stt.recognize(audio_file, content_type=”audio/wav”,7 continuous=True, timestamps=False,8 max_alternatives=1).get_result()9 json.dump(result, fp, indent=2)

把你IBM网站的密码填进去。

把要转换的音频文件名填进去。

(可以给.json文件起个名字,也可以用默认的new_story。)

然后,音频就转换成文本啦:

188eea9a6416229777b3366bd8c51bb6.png

△ 哈利波特的一个段落

当然,语音识别还是有一些错误,后面会讲到怎样处理。

AI是怎么概括的?

有了文本,要让AI来读一读。先写这段代码,让文本变成字符串:

1 with open(‘new_story.json’) as file:2 distros_dict = json.load(file)3 for item in distros_dict[‘results’]:4 print(item[‘alternatives’][0][‘transcript’] +’.’)

这样,就可以用NLP算法来解读了。

程序猿并没有用很复杂的算法,只需要六步:

1、把段落转换成句子。2、文本预处理:删掉所有特殊字符、停用词 (Stop Words) 以及数字。3、给句子做标记:获取句子里出现的所有单词。4、给每个单词算好它出现的加权频率。

第4步得出的加权频率长这样:

af7ae0abc39880062c6ac9038c096bb3.png

后面还有关键的两步:

5、把原始句子里的单词,都替换成加权频率。6、给每个句子算出加权频率之和,按降序排列。

效果还不错

然后,AI对一场戏的总结就做好了:

14403efb775227fb26430a73eb5c697d.png

程序猿对这个结果还是很满意的:他说自己看电影的时候,本来就有些字听不太清。所以,这场戏的总结已经算是友好了。

谷歌翻译长这样:

3e3b499bc830876b922e620f2d67e533.png

不过,不知道你能不能看出,这是哪一场戏 (答案在文末) 。

另外,程序猿也用同样的方法,四句话概括了一个11分钟的有声故事:

cc8a2ee5d0efb8e566cc8b81baaf3272.png

故事的名字叫The Boarded Window,AI的总结和维基百科的情节描述,已经有些接近了。

你也来试试

程序猿已经把算法上传到了GitHub。

如果你也有太长不想看的视频,或者太长不想听的音频,让AI帮你总结一下吧。

GitHub传送门:

https://github.com/Shaier/Movie-Summarizer

教程原文传送门:

https://towardsdatascience.com/summarizing-harry-potter-with-ml-e724c024e2a2

以及,如果你还不知道,AI总结的是哪一场戏:

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是负边沿触发_用好示波器必须学会的知识:触发方式

我们先简单回顾下什么是示波器的触发。由于信号无时无刻都在变化,如果一股脑的都把他们显示在示波器上,就会很乱,根本无法让我们看清楚,从而也就无法观察信号来解决问题。考虑到信号大多数时候都是以某种规律周期性出现的&#xf…

html placehonlder属性,HTML input placeholder 属性

HTML placeholder 属性实例 1带有 placeholder 文本的两个输入字段:尝试一下 placeholder 文本也可以指定颜色。实例 2带有 placeholder 文本设置颜色:尝试一下 浏览器支持Internet Explorer 10、Firefox、Opera、Chrome 和 Safari 支持 placeholder 属性…

python画图显示不了中文_完美解决Python matplotlib绘图时汉字显示不正常的问题

Matplotlib是一个很好的作图软件,但是python下默认不支持中文,所以需要做一些修改,方法如下: 1.在python安装目录的Lib目录下创建ch.py文件。 文件中代码为: 保存,以后通过以下代码调用: #-*-co…

监听一个可下拉区域的滚动监听_Flutter 实现一个悬浮的效果

知乎视频​www.zhihu.com在原来的基础布局下修改江景:Flutter 实现钉钉侧边栏​zhuanlan.zhihu.com修改 DTMessageScreen使用 Stack 作为容器且套 SingleChildScrollView ,监听 controller 滚动事件再 Stack 容器中多添加一个DTMessageTopQuick&#xff…

【Hive】——函数案例

1 Hive 多字节分隔符处理 1.1 默认规则 Hive默认序列化类是LazySimpleSerDe,其只支持使用单字节分隔符(char)来加载文本数据,例如逗号、制表符、空格等等,默认的分隔符为”\001”。根据不同文件的不同分隔符&#xf…

qaxwidget传递参数到html,记一次QT使用QAxWidget打开.html文件调用显示离线百度地图不能缩放,自定义图片不能显示解决方法...

主要问题: 一开始用的是在线的,都没有什么问题,自定义图片均可以显示,可是后面试了一下离线百度地图,在qt中运行打开.html文件和在电脑上面直接双击打开此文件显示是有差别的,在qt生成的程序中,…

爬虫找工作要掌握什么_找爬虫工作必须掌握scrapy框架究竟什么?

十个爬虫九个python写,九个python爬虫全部由scrapy写。社会上在招聘爬虫工程师时,百分之百会需要掌握scrapy爬虫框架。但是scrapy十个什么东西你知道吗?什么是scrapy我们先看百科词条scrapyScrapy是我们熟知的爬虫框架,我们用scra…

性能计数器驱动_【Nature Sustainability】机械力驱动的摩擦电高效空气负离子发生器...

空气负离子被称为空气“维他命”,是一种电迁移率在1-2 cm2 V-1 S-1的小离子。就目前的科学研究表明,他们对空气中PM物质的净化,有害有机物的分解,以及细菌的抑制均具有重要的作用。除了自然界中在深林,瀑布和暴雨时产生…

内存缓存LruCache实现原理

自己项目中一直都是用的开源的xUtils框架,包括 BitmapUtils、DbUtils、ViewUtils和HttpUtils四大模块,这四大模块都是项目中比较常用的。最近决定研究一下 xUtils的源码,用了这么久总得知道它的实现原理吧。我是先从先从BitmapUtils模块开始的…

安装gem_Python安装第三方库及常见问题处理方法汇总

源码安装Python第三方库几乎都可以在github或者 pypi上找到源码。源码包格式大概有zip 、 tar.zip、 tar.bz2。解压这些包,进入解压好的文件夹,通常会有一个setup.py的文件。打开命令行,进入该文件夹。运行以下命令,就能把这个第三…

No style sheet with given id found错误

在chrome中打开html页面,报错No style sheet with given id found,解决方如下 转载于:https://www.cnblogs.com/lcyuhe/p/5439832.html

查询2021高考成绩位次,云南一分一段表查询2021-云南高考位次查询(文科、理科)...

云南高考一分一段表是同学们在填报高考志愿时的重要参考资料之一。根据一分一段表,大家不仅可以清楚地了解自己的高考成绩在全省的排名,还可以结合心仪的大学近3年在云南的录取位次变化,判断出自己被录取的概率大概是多少。根据考试院公布的数…

c语言goto语句用法_C语言32个关键字9种控制语句34种运算符整理

相信这么努力的你 已经星标了我 老九学堂 你身边的IT导师32个关键字,如下表所示:关键字说明auto声明自动变量short声明短整型变量或函数int声明整型变量或函数long声明长整型变量或函数float声明浮点型变量或函数double声明双精度变量或函数char声明字符…

人生苦短python作伴_“人生苦短,我用Python”

经过人机大战,AlphaGo一战成名,Python也确立了人工智能时代头牌开发语言的地位,国家相关教育部门更是把它纳入到了传统教育体系中。对于有跨界转型需求的小伙伴来说,get这门技能是个不错的切入点。这一篇文章,就来和大…

《Java编程思想》第四版读书笔记 第四章

2019独角兽企业重金招聘Python工程师标准>>> 4.3 逗号操作费仅用于for循环控制表达式的初始化部分和步进控制部分。初始化部分用于定义任意多个具有相同类型的变量&#xff1a; for(int i 1, j i 10; i <5; i, j i* 2) for循环控制表达式可以使用对象而不仅仅…

access 导入txt 找不到可安装的isam_由浅入深:Python 中如何实现自动导入缺失的库?...

? “Python猫” &#xff0c;一个值得加星标的公众号在写 Python 项目的时候&#xff0c;我们可能经常会遇到导入模块失败的错误&#xff1a;ImportError: No module named xxx或者ModuleNotFoundError: No module named xxx。导入失败问题&#xff0c;通常分为两种&#xff1…

英语计算机单词mp3,[听单词] 计算机专业英语词汇音频51,计算机英语单词MP3

calcd adj.已计算的interrupt data block&#xff0c;IDB 中断资料块ZBR Zero BRanch 零转移〖指令〗characteristic signal 特性信号processor cycle time 处理机周期时间plug-and-go integration 即插即拨集成relocating linkage loader n.浮动装入程序dispersiveness n.色散…

怎么判断私网地址_判断本机IP地址是公网地址还是私网地址

对于ip是否是公网ip&#xff0c;网上已经有很多文章进行了描述。但我每次都记不太住&#xff0c;总要查找一下才又清楚。因此决定在这里记录下来&#xff0c;方便以后查询&#xff1a;)ip地址分为五类。E类为保留为今后使用&#xff0c;D类为组播地址。用于主机网络地址的就是A…

pycharm中python版本_在 Pycharm(2019,.3)里配置 Anaconda3 的 Python 版本

先说配置方法&#xff1a; 一 在已有项目中配置&#xff1a; Virtualenv Environment 里选择 Existing environment 在 interpreter 输入或跟着路径找&#xff1a; /Users/***/opt/anaconda3/python.app/Contents/MacOS/python ***是用户名&#xff0c; 我这个应该默认的安装路…

Struts2 ActionWildcard(通配符配置)约定优于配置

新建web project&#xff1a;struts2_0500_actionwildcard Build Path 项目图&#xff1a; src&#xff1a; StudentAction.java TeacherAction.java struts.xml WebRoot: index.jsp Student_add.jsp Student_delete.jsp Student_edit.jsp Student_find.jsp …