看美剧英文字幕学英语的利器——“深蓝英文字幕助手”简介
我从初中开始基本上就是一个英语很烂的人,数理化再好有什么用,工作了,结果发现数理化都没啥用,最有用的还是当年学的最烂的英语。于是在2011年年底开始了学习英语的课程,在学习的过程中,外教经常会放英剧美剧给我们看,看了以后回答问题,讲解,挺有意思的。印象最深刻的就是Neil给我的Doctor Who还有另外一个外教放的Friends。后来在课程快结束的时候,萌发了一个想法,能不能只看英文字幕来看美剧(当然还有英剧),这样没有中文字幕的话才能在看美剧的过程中联系阅读与听力。但是美剧中很多词汇不懂,一旦句子中出现了两个不懂的词汇,那么这句话基本上就不懂是啥意思了。那么我能不能根据我的实际词汇量,对字幕就行修改,如果是认识的单词,那么就不管,如果是不认识的单词,那么就给出其中文意思,这样能够便于理解整个句子,而且在潜移默化中慢慢的提高词汇量。
一年多前萌发的这个想法,于是按照这个思路写了一个字幕注释的小程序,可惜只写了一大半,然后由于工作的原因,就停了,最近突然想起这个东西,于是想能够把这个程序完成。(最近射手网和人人字幕组的关闭,让我觉得这个软件的必要)
整个程序的设计思路是这样的:
1.第一次运行这个程序时,需要设置词汇量,根据柯林斯词典提供的词频分级表,按词频分成5到0级词汇,0级最难最少用,5级最常用。用户根据对自己的估计进行选择,如果英语烂,那么就选择只认识5级词汇。如果英语不错,过了四六级那么可以选择4级或者3级,如果是英语专8水平啥的,可以选择更高级的词汇。选中后就会把这些等级的词汇记录到已认识的词汇表中(如果有些词不认识,可以通过用户词汇管理功能进行调整).
2.提供生词本导入功能,如果用户是开心词场,有道词典之类的软件的用户,那么可以将这些软件的记录导入到这个程序中,便于完善用户自己的认识和不认识的词汇列表。
3.用户下载带有英文字幕的srt或者ass格式的字幕文件,这个字幕文件可以是全英文的,也可以是中文英文都包含的,程序会将中文字幕全部移除,只保留英文字幕部分。
4.对英文字幕中的每个句子进行转换和分解,分解成词汇,然后用分解出的词汇和用户词汇表进行比对,如果发现是用户认识的单词,那么就忽略,如果是用户不认识的单词,那么就查询字典(默认采用的是维科英汉词典10W词汇,基本满足日常词汇需要),得到该单词的中文解释,如果词典中查不到这个词,那么就忽略,查的到就显示出来。
5.用户根据显示出来的所有词,再选择哪些是认识的,如果认识就可以标记为认识,以后也不会被注释。如果是不认识的,那么可能这个词存在多种注释,用户可以选择哪种注释在这个句子中更合理。
6.根据用户选择,把英文字幕进行替代,不认识的词汇会在旁边加上简短的中文注释。如果用户觉得整句话都很难,想把整句话都翻译了,那么可以调用网上的翻译服务(有道,百度,微软,谷歌),对整句话进行翻译。
7.用户可以进一步在界面上手工调整注释后的字幕,然后只需要保存这个替换后的英文字幕,然后用播放软件导入这个新字幕即可。
在编写这个程序的时候,遇到了很多关于英语上的问题,挺有意思的,下面列举一下:
1.如何得到一个单词的原型。
英语单词有很多种变形,比如复数+s/es,过去式+ed,现在进行时+ing,比较级+er等,我们一般不会说认识单词do,却不认识单词doing,程序必须找到doing的原型do,然后再到用户词汇表中去查用户是否认识do这个词。这个我之前的处理办法很复杂,现在的处理办法很高效,很实用。
2.如何知道一个词是人名/地名。
在美剧中必然会大量的出现人名地名啥的,如果人名本身没有其他意义那还好说系统会忽略,但是如果人名有其他意义就会对整个句子的意思造成影响。比如He is Bush.这么一个句子,如果把Bush作为单词,那么就会翻译成“他是灌木丛”,这也太搞了,这里程序应该意识到Bush是人名,对于人名就不需要翻译。怎么知道一个单词是人名呢?我目前的做法简单粗暴直接,维护了一个常见的人名列表,如果首字母大写的,那么就查询这个人名列表,存在则说明是人名,不存在就当普通词汇处理。地名目前没有维护,没有处理,毕竟地名出现的频率没有人名高。
3.对于一词多性多义,怎么判断取哪个意义。
有些单词既可以做动词用,也可以做名词用,当名词时和动词时的意思完全不一样,这是一个问题。比如book,可以做n.那么就是书的意思,也可以做v.那么就是预定的意思。这两个意思毫无关联,那么怎么确定一个句子中的book到底是哪个http://blog.sina.com.cn/s/blog_48b0011f0102v6zc.html意思呢?
一个是看是否变形,如果是booking或者booked,那么这是动词的变形,所以必然取动词的解释:预定。
二是看前后单词的词性,如果book的前面是adj.那么这里的book就是名词。
三分析整个句子,看book是做谓语还是主语/宾语,如果是谓语那就是动词,主语宾语就是名词。
4.对于一词多义,而且词性还相同,那怎么取。
这个有难度,我程序没办法解决,把每个意义都列出来,让用户根据上下文,自己选择。比如I like this date.这里Date可以是日期的意思,可以是约会的意思,也可以是枣子的意思,从语法上讲都是对的,只有根据上下文,让用户自己选择。
5.原型和变形是两个单词,那么怎么决定采用原型还是变形。
比如comforting是令人欣慰的意思,adj.,但是如果查原型comfort,只有n.和v.所以不能将comforting转换成原型再查下其意思,在作为形容词的时候,必须保持这个形式。还是只有从词性入手,如果是形容词,那么后面应该跟名词,如果是动词ing形式,那么应该是现在进行时的语法形式。
看美剧英文字幕学英语的利器——“深蓝英文字幕助手”简介的更多相关文章
- 【学英语~磨耳朵】2013年以来看过的所有美剧&电影&纪录片等等
我看美剧看太多了,而且同一部剧刷很多遍.这种coach potato的做法其实一点也不好,英文会好可能只是意外收获.下面是单子: 美剧: 老友记-情景喜剧-10季全看.至今还在网易云音乐循环10季音频 ...
- Python 爬虫批量下载美剧 from 人人影视 HR-HDTV
本人比較喜欢看美剧.尤其喜欢人人影视上HR-HDTV 的 1024 分辨率的高清双字美剧,这里写了一个脚本来批量获得指定美剧的全部 HR-HDTV 的 ed2k下载链接.并依照先后顺序写入到文本文件, ...
- Python + PyQt5 实现美剧爬虫可视工具(二)
美剧<权力的游戏>终于开播最后一季了,在上周写了个简单的可视化美剧的爬虫软件来爬取美剧,链接:https://www.cnblogs.com/weijiutao/p/10614694.ht ...
- Python + PyQt5 实现美剧爬虫可视工具
美剧<权力的游戏>终于要开播最后一季了,作为马丁老爷子的忠实粉丝,为了能够看得懂第八季复杂庞大的剧情架构,本人想着将前几季再稳固一下,所以就上美剧天堂下载来看,可是每次都上去下载太麻烦了, ...
- BAT,你好!字幕组,再见!——也许要跟美剧说再见了~
对于美剧迷来说,上周的星期六(2014 年11 月 22 日)是黑色的一天. 11 月 22 日,人人影视暂时关站,并发布公告称网站正在清理内容.虽然这不是人人影视第一次关站清理,而且人人影视还给出提 ...
- Python爬虫爬取美剧网站
一直有爱看美剧的习惯,一方面锻炼一下英语听力,一方面打发一下时间.之前是能在视频网站上面在线看的,可是自从广电总局的限制令之后,进口的美剧英剧等貌似就不在像以前一样同步更新了.但是,作为一个宅diao ...
- Node.js 爬虫批量下载美剧 from 人人影视 HR-HDTV
这两天发现了一个叫看知乎的站点.是知乎的苏莉安做的,当中爬虫使用的 Node.js.这里就针对上一篇博客中的美剧小爬虫,改用 nodejs 进行实现一下.体验一下强大的 Node.js. 假设之前没实 ...
- 微软成立反网络犯罪中心,工作环境如美剧CSI情景
微软在总部大楼内设立新网络犯罪中心(Cybercrime Center),旨在针对全球恶意软件.僵尸网络以及其他互联网犯罪行为进行实时追踪并予以打击.微软将“网络犯罪中心”设置在雷德蒙德总部大楼,目的 ...
- scrapy实战--爬取最新美剧
现在写一个利用scrapy爬虫框架爬取最新美剧的项目. 准备工作: 目标地址:http://www.meijutt.com/new100.html 爬取项目:美剧名称.状态.电视台.更新时间 1.创建 ...
随机推荐
- 【Java每日一题】20161019
20161018问题解析请点击今日问题下方的"[Java每日一题]20161019"查看 package Oct2016; import java.util.List; publi ...
- Oracle数据库,join多表关联方式、union结果集合并
join on : 多表关联 内连接 :与其他表连接 from 表1 t join 表2 s on t.字段1 =s.字段2 join 表3 n on n.字段3=t.字段1 或 from 表1 ...
- HDU 4293---Groups(区间DP)
题目链接 http://acm.split.hdu.edu.cn/showproblem.php?pid=4293 Problem Description After the regional con ...
- 市面上常见的javaEE WEB服务软件
常见的市面上web服务软件 Tomcat:轻量级的WEB应用程序服务器(开源),开源组织Apache的产品.免费的.支持部分的JavaEE规范.(servlet.jsp.jdbc,但ejb, rmi不 ...
- 【Effective Java】7、优先考虑泛型方法
package cn.xf.cp.ch02.item27; import java.util.HashSet; import java.util.Set; public class Union { / ...
- Guava学习笔记:EventBus
EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现.对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单解决方案,我们不用创建复杂的类和 ...
- 【循序渐进学Python】14.数据库的支持
纯文本只能够实现一些简单有限的功能.如果想要实现自动序列化,也可以使用 shelve 模块和 pickle 模块来实现.但是,如果想要自动的实现数据并发访问,以及更标准,更通用的数据库(databas ...
- 纯CSS3写的10个不同的酷炫图片遮罩层效果
这个是纯CSS3实现的的10个不同的酷炫图片遮罩层效果,可以欣赏一下 在线预览 下载地址 实例代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1 ...
- vue安装
条件:已安装 node&npm 1.安装 cnpm : $ npm install -g cnpm --registry=https://regis ...
- 前端js文件合并三种方式
最近在思考前端js文件该如何合并,当然不包括不能合并文件,而是我们能合并的文件,想了想应该也只有三种方式. 三个方式如下: 1. 一个大文件,所有js合并成一个大文件,所有页面都引用它. 2. 各个页 ...