这个程序员通过几行代码,20小时习得了一门外语
![](http://static.careerengine.us/api/aov2/http%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_jpg_%7C_LNT2wcdKyiak6GP6eyhmW3N42GLKXtFTOTa9xiaH9EGnPv2iacDwJRml5NO7t2eA6SPukpoibUsGj1E48n0K5OHpXQ_%7C_0%3Fwx_fmt%3Djpeg.jpg)
![](http://static.careerengine.us/api/aov2/http%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_jpg_%7C_LNT2wcdKyiak6GP6eyhmW3N42GLKXtFTOTa9xiaH9EGnPv2iacDwJRml5NO7t2eA6SPukpoibUsGj1E48n0K5OHpXQ_%7C_0%3Fwx_fmt%3Djpeg.jpg)
编译丨Linsa
原作丨Tomi Mester
半年前我跟女友一起搬到了瑞典。
由于这里几乎每个人都会说英文,我们这些外派人员的日子并不难熬。但尽管如此,我们还是想入乡随俗学习一些日常瑞典语对话。
学瑞典语对于我来说只是个爱好,所以我也不想逼得自己太紧。于是我通过简单的设想和计划,明确了我目标是花10 - 20个小时学到80%的日常对话。
随后,我利用初级的数据科学思维来帮助自己完成这个看似不可能的任务。
![](http://static.careerengine.us/api/aov2/http%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_jpg_%7C_LNT2wcdKyiak6GP6eyhmW3N42GLKXtFTOCY4zsbMaURicZcial779xTnfKPSk4OaTgoYyYcJOQPibvaSCsrG5CFD4g_%7C_0%3Fwx_fmt%3Djpeg.jpg)
基本概念
下面是我用数据科学的创意玩法:
- 首先,我选了两部热门电视剧,分别是《老友记》和《老爸老妈的浪漫史》
- 然后,我下载到了这两部电视剧每一集的瑞典字幕
- 之后,我分析出最常出现的单词,并且按照出现频率对词汇进行了排序
- 最后,我选择出现频率最高的1000个单词
那么问题来了,究竟这1000个单词能帮我达到一个什么样的水平呢?或者说,这1000个单词到底能覆盖多少日常中的对话呢?为了解决心中疑惑,我给自己写了一小段数据脚本。另外,我这个方法适用于任何一种欧洲语言。
代码
第一步就是先找到字幕,这可以是来自任何你喜欢的一部或多部的电影。由于之前我看过这两部剧的英文版,并且我想选两部用词贴近生活的影片,于是最后敲定了《老友记》和《老爸老妈的浪漫史》。
在有了字幕之后,我们需要一个工具去完成文本分析。我们在这一步可以选择Python、R、SQL和Bash中的任一语言,但我选了最简单的Bash,简单到只需要一行代码就可以完成整个分析。在下面的截图中我把代码分解成了14行,以便大家理解。
![](http://static.careerengine.us/api/aov2/http%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_png_%7C_PHPylvibSIvHPBcus9ogRUg0VSz9caeOXZVW5dUE9geT8Pzxxmrno9kzsv5mPrbazjxBuagts3uqicwB02rQLByg_%7C_0%3Fwx_fmt%3Dpng.jpg)
那么这些代码什么意思呢?总体来说,前9行是起数据清洗(data cleaning)作用,剩下5行是起分析作用,下面我一行行来解释:
第一行:读取所有保存在我数据服务器里的字幕文件。从现在起,把这所有字幕当做一个整体的临时文本文件,之后我做的所有进一步的改动都是基于这个整体文本上的。
第二行:删除所有以数字开头的行(比如,时间戳)
第三行:替换所有的问号,感叹号,句号,竖线分隔符成为空格
第四行:替换所有连续空格为一个空格
第五行:删除所有除字母,撇号和空格以外的一切
第六行:删除每行开头不必要的空格
第七行:把所有空格变成换行符,也就是每个单词占一行
第八行:删除所有空行
第九行:把所有大写字母变成小写字母
于是我就得到了下图所展示的列表。当然,不少单词都出现了不止一次。
![](http://static.careerengine.us/api/aov2/http%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_png_%7C_PHPylvibSIvHPBcus9ogRUg0VSz9caeOXgAaWxVOuIh2yjRICJ560OpeRSrmPIBgl2aRH2zLzFia8YbgVzH0LDhg_%7C_0%3Fwx_fmt%3Dpng.jpg)
第十行:把这些单词按照首字母顺序排列
第十一行:列出所有出现过的单词,以及它们分别出现的次数
第十二行:按照出现的频率把这些单词从高到低排列
第十三行:删除行开头的空格
第十四行:把前1000个单词写入一个名为“1000.csv”的文件里
大功告成!
分析结果
现在我已经有了所需要的1000个单词。下一个问题就是:如果我只学这1000个单词,我能明白多少日常对话?为了回答这个问题,我需要两个数据:
- 我需要算出字幕里的总单词数(重复出现的单词也重复累加)
- 我需要算出这1000个单词在总单词数中占的比例
对比这两个数据会得出这1000个单词的使用率。
我们再回到代码上,为了得到第一个数据,我把第14行换成以下代码:
awk ‘{sum += $1} END {print sum}’
可以得出所有字数统计:1131360,然后同样的,把新建的1000.csv文件也进行统计:
awk ‘{sum += $1} END {print sum}’ 1000.csv
可以得出这1000个单词总的出现次数:964682
然后见证奇迹的时刻到了!
964682/1131360= 85.26%
没错,这说明了如果我学会了从《老友记》和《老爸老妈的浪漫史》提取出的这1000个单词,我就可以明白其中85%的字幕!
![](http://static.careerengine.us/api/aov2/http%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_jpg_%7C_PHPylvibSIvHPBcus9ogRUg0VSz9caeOX0FurPCWF53Ldmic9DXvBo0e3ycXAuveWNGzdIbaib2TE0pLaT2b0nFuw_%7C_0%3Fwx_fmt%3Djpeg.jpg)
用实际的例子说明,这张是我周末在宜家拍的照片,实际上只需要把列表上前200个单词学会就能看得懂这图上标题里的所有单词。
下表说明了当你学会了列表中最常出现的X个单词,相对应的,你就能理解Y%字幕。
![](http://static.careerengine.us/api/aov2/http%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_png_%7C_PHPylvibSIvHPBcus9ogRUg0VSz9caeOXqZz6TnjJmibQC7Ao6ka8mzr5ibUM84UdrtHlJRDDe4e2nI2EWrTYgPmg_%7C_0%3Fwx_fmt%3Dpng.jpg)
数据结果呈现出一条未经加工过的完美对数函数线!非常明显的是,学会这1000个单词,你会得到85%的效益!边际成本太惊人了!
后台回复“资源”即可下载海量免费学习资源
你可能错过了:
![](http://static.careerengine.us/api/aov2/http%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_jpg_%7C_LNT2wcdKyial2e8q60fuiaR04d3SI8kCkvzX6Hd1TQre9nJiaHNkIqLXaCJx4aiaI6tMIiaIeEwib0jEX4tImHa7bYAw_%7C_640%3Fwx_fmt%3Djpeg.jpg)
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。