从《美丽新世界》谈自由

不得不承认,我认为对于人类社会文明的发展来说,《美丽新世界》中描绘的社会的确是一个完美的社会。每一个人都是整体的一部分,极其稳定,人类幸福度高,无忧无虑,安居乐业。但这也是一个及其恐怖的社会。

cover new

在这个完美世界中,「分娩」被认为是淫秽的事情。人类靠试管中的婴儿繁衍后代,「家庭」同样被视为是肮脏的概念,社会中的个人不存在和某个人有特殊的感情。每个男人属于所有的女人,每个女人属于所有的男人。所有的人都可以按照喜好每天选择不同的人性交。每个人都在大剂量的服用性激素和神经类药品(唆麻),一有任何不在「正常范围之内」的小事情就靠药品来逃避。

3fd214221b37441a70a2da45a1a6e041.619x375x1

婴儿还小的时候,育婴室就循环播放录音,达到「洗脑」的效果。例如「母亲是肮脏的」,「历史是废话」,「和家人一起生活将会非常恐怖」等等。书中还提到另一种潜意识的训练——让幼儿去接触鲜花和书籍,然后再给他们电击,以保证他们长大以后不会再碰这些东西。

brave new 1

为了社会稳定,每一个人的个性,感情都被磨灭。个人只是社会的螺丝钉,而社会的等级制度非常森严。从α到ε,分成不同的等级。人们从小的时候就被灌输这种等级制度,在试管里时加入不同的血清使不同等级的人长相区别明显,童年时期穿不同的衣服,玩不同的玩具。这样成年时会有根深蒂固的等级概念。α会觉得自己的工作高雅,看不起ε的体力活。ε会认为自己的工作简单轻松,不像α需要体力劳动。

brave_new_world_social_classes_by_qbark-d4ujz5s

 

这种稳定的社会最怕的就是「个性」。书中说:「文明是绝对不需要高贵行为和英雄主义的。这些事情是政治无能的症状。只有在有战争的时候,英雄主义才会有一点意义。但是现在没有战争,最大的问题就是防止你爱一个人爱的太深。

这个世界看似完美,实际也是。如果这是「文明五」中的一个世界,那么衡量这个社会的所有标准:人口(通过人工繁殖严格控制),经济,科技,幸福度都是无敌的,除了一点——文化。这个社会中人们的娱乐都是「感官刺激」,靠的是唆麻、感观电影。书籍和宗教会让人产生独立于社会体制的思考,所以遭到了根除。但是仔细一想,这样的社会竟然可以正常运作,难道文化在社会中真的没有作用?

不是的。我认为这样的社会完全偏离了方向。社会的终极目标应该是三个哲学问题,如果有重点,那么可能我们最后造出《银河系漫游指南》中的超级计算机来得出答案,可能文化高度发达有人提出并论证了这个答案,可能接触到外星文明,亦或者别的形式的答案。社会总要向着民主,平等的方向发展。文化,是我们存在过的证据,自由和思考,是存在的意义和形式。美丽新世界虽然完美,但这个人们却活的毫无意义。所以书中野蛮人有这样的呐喊:

“可我不想要舒适。我想要上帝,我想要诗歌,我想要真实的危险,我想要自由,我想要善良,我想要罪恶。”

有选择才算是自由,自出生开始被人安排了一切,这和「奴隶制」一样野蛮。世界上不存在不劳而获的幸福,幸福就意味着代价。美丽新世界的幸福,是以牺牲真相为代价的。我宁愿不要这种廉价的幸福,得知真相,痛苦,思考,反省,吸取教训。社会中的每个人都有权利知道真相。这才是自由。

我们现在的科技和网络如此发达,好像我们可以轻易地做自己想做的事情。实则是「美丽新世界」的这种自由。天津爆炸事件之后,大家的焦点仅集中在上面两三天,接着就被娱乐、八卦转移了注意力。相比于独裁政治,这种控制更加可怖。尼尔·波兹曼在《娱乐至死》中一语中的的表达了《美丽新世界》相比于《1984》更加危险:

       在《1984》中,人们受制于痛苦,而在《美丽新世界》中,人们由于享乐失去了自由。奥威尔担心我们憎恨的东西会毁掉我们,而赫胥黎担心的是,我们将毁于我们热爱的东西。

附《娱乐至死》漫画节选p25092201

p25092384

p25092404

p25092448

p25092469

 

p25092483

p25092546

p25092553

 

在快钱实习

下午做完了最后的工作——写文档和注释——在快钱的两个月实习就算是全部结束了。其实这项工作可以从六月算起,那时候虽然还没到公司,但现在看起来,日常基本上和在公司工作的时候是一样的。得到这份实习是因为这个学期的操作系统课(我从小学开始就有特别容易和老师混熟的特异功能),李老师介绍了这份实习。其实一开始,我是拒绝的。因为觉得自己对研发(相对于“开发”来说)性的工作不感兴趣,但是暑假又没有别的计划,于是就去面试了。面试的时候吕博给我介绍了工作内容,欣然接受。于是六月就一边应付考试一边准备工作用到的知识,7月2号考试一结束就去上班了。

工作的内容是“文本挖掘”,需要用到自然语言处理(NLP)和爬虫的知识。说的再简单一些,就是公司有一些消费数据,通过这些数据挖掘到更多的信息,给这些数据加上一些能反映用户的消费倾向的信息,进而可以制作用户画像,再进一步就可以做“个性推荐”啦。

这份实习让我学到了不少东西,从一开始没有接触过NLP和Python,现在已经能写出爬虫程序,并且分析文本了。不得不提,我觉得其中最难的是中文编码和中文分词(哭),大多数语言(例如英语,法语,德语)等都是有空格来分词的,但是中日韩文这些亚洲语言,用起来就想这篇文章一样,只有句子之间有间隔,词与词之间是没有间隔的,要多做一份工作。至于中文编码嘛……谁写谁知道,说多都是泪。但是其实最后的成果比我预期的要差,主要是因为我们手里得数据质量太差了,信息有限,只能依靠爬虫去网络上抓取更多信息,但是本来就差的数据,抓回来的也不太高。

对了,上班第一天开的一个会让我现在都记忆犹新,不得不提一下。是一个百分点介绍他们的业务的会议。这是一个专业做大数据的公司,靠在他们的客户网站上挂代码,获得用户行为,在应用到个性推荐上。比如说,你在网站A上浏览了冰箱,那么你下次上B网站,他们就在首页给你推荐冰箱。不仅限于购物网站,新闻网站,门户网站等一切需要流量的网站都有用武之地。这个会议让我对大数据的应用叹为观止,以前就是听说过这么个概念,现在才真正接触到(讽刺的是,人类的一切最新的科技都会首先用在军事和消费上,呵呵)。说起来,我跟朋友们谈这个,他们普遍的反映都是很反感“个性推荐”,觉得这侵犯他们的“隐私”了。我对这个感觉还好,我觉得一个人只要是上网就不存在隐私了,网络上基本所有的数据都是公开的。

公司在浦东浦电路,每天要坐3个半小时地铁来回啊!写代码不累,坐地铁可累死了,而且上下班的时候正是高峰,人特别挤!实习期间经历了公司被万达收购,从陆家嘴投资大厦搬到世纪金融广场,可是距离只变的更远了(哭),给我的经验就是:以后上班宁愿贵一点也一定要住在公司附近,不然太浪费时间了。

20150824_180125

说起来我还是蛮认真的嘿嘿,基本上每天来的都很早很早。

20150810_081854

新公司某办公室发现了这件旗子——别拦着我!为了部落!

20150814_102939

离开学还有十多天,我的假期真正的开始了!我要在这段时间里完成之前写了一半但是没写下去的小玩具,请大家期待吧!这篇文章不谈技术,但是最近我会在博客上写写实习的时候遇到的好玩的东西~

 

 

迷人的嗓音和迷人的故事——《Sleepyhead》

今天更新了博客的主题,用了三栏布局,相比一栏,我觉得同样可以让读者集中精力,而且缩短了行长,在屏幕上阅读起来更加方便。使用柔和的色调,和舒服的顶部图片,希望大家能喜欢。如果有建议可以给我留言~

第一篇就衬托一下这个主题,给大家讲一个故事,和一首歌吧。这是一首Galen Crew的《Sleepyhead》。Galen从小就痴迷音乐,在爱上吉他之前,尝试过单簧管、钢琴和架子鼓,随着吉他越来越厉害,创作激情也越来越高涨,后来发现自己了自己与众不同的嗓音,和其余两人组成了一个独特的声音组合。

这首歌就不用多介绍了,下面是我翻的歌词大意,看了就懂,enjoy~

沉睡的公主

in the year of our lord 1239
公元纪年1239年
there once lived a girl of the royal line
曾经有一位有王室血统的女孩
the ancient stories do recall ?
古老的故事中说
she was the fairest of them all
她是世界上最美的女孩
in the castle made of stone
在一个石头城堡里
every night she slept alone
她每夜独自入睡

any noice that would raise the dead
连死人都可以吵醒的声音
couldn’t wake her sleepyhead
都无法唤醒她
the stranger came from the foreign land
从一个遥远的国度来了一位陌生人
asking for the maiden’s hand
希望能牵起女孩的手
her father said no go away
她的父亲说,不行,走开
she’s gonna marry a king one day
她以后要嫁给一个国王
the stranger he came back again
陌生人走了,后来又回来了
riding with 10 thousand men
带着一万骑士
the battle cries few always dread ?
战斗的呼喊,没有人不怕
but couldn’t wake her sleepyhead
但还是无法唤醒她
the fighting lasted all day long
战斗持续了一整天
but the castle wall‘s very thick and strong
但城堡的墙壁又厚又强
the stranger cried let her decide
陌生人哭喊,让她决定吧
where her true affections lie
让她决定选择谁
so the king knocked on her door
于是国王敲响了她的门
only you can end this war
“只有你能结束这场战争”
no one knows how the story ends
没人知道这个故事的结局
did she ever wake up again?
她醒来了么?
will she ever wake up again?
她还会醒来么?
 

Python 的十个自然语言处理工具

1.NLTK

NLTK 在使用 Python 处理自然语言的工具中处于领先的地位。它提供了 WordNet 这种方便处理词汇资源的接口,以及分类、分词、词干提取、标注、语法分析、语义推理等类库。

网站

http://www.nltk.org/

安装

安装 NLTK: sudo pip install -U nltk

安装 Numpy (可选): sudo pip install -U numpy

安装测试: python then type import nltk

2.Pattern

Pattern 拥有一系列的自然语言处理工具,比如说词性标注工具(Part-Of-Speech Tagger),N元搜索(n-gram search),情感分析(sentiment analysis),WordNet。它也支持机器学习的向量空间模型,聚类,向量机。

网站:

https://github.com/clips/pattern

安装:

pip install pattern

3.TextBlob

TextBlob 是一个处理文本数据的 Python 库。它提供了一个简单的 api 来解决一些常见的自然语言处理任务,例如词性标注、名词短语抽取、情感分析、分类、翻译等等。

网站:

http://textblob.readthedocs.org/en/dev/

安装:

pip install -U textblob

4.Gensim

Gensim 是一个 Python 库,用于对大型语料库进行主题建模、文件索引、相似度检索等。它可以处理大于内存的输入数据。作者说它是“纯文本上无监督的语义建模最健壮、高效、易用的软件。”

网站:

https://github.com/piskvorky/gensim

安装:

pip install -U gensim

5.PyNLPI

它的全称是:Python 自然语言处理库(Python Natural Language Processing Library,音发作: pineapple) 是一个用于自然语言处理任务库。它集合了各种独立或松散互相关的,那些常见的、不常见的、对NLP 任务有用的模块。PyNLPI 可以用来处理 N 元搜索,计算频率表和分布,建立语言模型。它还可以处理向优先队列这种更加复杂的数据结构,或者像 Beam 搜索这种更加复杂的算法。

安装:

LInux:sudo apt-get install pymol

Fedora:yum install pymol

6.spaCy

这是一个商业的开源软件。结合了Python 和Cython 优异的 NLP 工具。是快速的,最先进的自然语言处理工具。

网站:

https://github.com/proycon/pynlpl

安装:

pip install spacy

7.Polyglot

Polyglot 支持大规模多语言应用程序的处理。它支持165种语言的分词,196中语言的辨识,40种语言的专有名词识别,16种语言的词性标注,136种语言的情感分析,137种语言的嵌入,135种语言的形态分析,以及69种语言的翻译。

网站:

https://pypi.python.org/pypi/polyglot

安装

pip install polyglot

8.MontyLingua

MontyLingua 是一个免费的、功能强大的、端到端的英文处理工具。在 MontyLingua 输入原始英文文本 ,输出就会得到这段文本的语义解释。它适用于信息检索和提取,请求处理,问答系统。从英文文本中,它能提取出主动宾元组,形容词、名词和动词短语,人名、地名、事件,日期和时间等语义信息。

网站:

http://web.media.mit.edu/~hugo/montylingua/

9.BLLIP Parser

BLLIP Parser(也叫做 Charniak-Johnson parser)是一个集成了生成成分分析器和最大熵排序的统计自然语言分析器。它包括命令行和python接口。

10.Quepy

Quepy 是一个 Python 框架,提供了将自然语言问题转换成为数据库查询语言中的查询。它可以方便地自定义自然语言中不同类型的问题和数据库查询。所以,通过 Quepy,仅仅修改几行代码,就可以构建你自己的自然语言查询数据库系统。

网站

https://github.com/machinalis/quepy
http://quepy.machinalis.com/

最新的列表请点击这里。

 

记一个愚蠢的bug

我们操作系统的大作业是模拟一个文件系统,我的想法是搞一个二进制文件出来,然后针对这个二进制文件模拟操作系统的管理方式。但是在 login 的时候,我就遇到了麻烦。这个bug我查到凌晨三点才发现,最后真是哭笑不得,觉得很有必要写一写。bug虽然很蠢,但是对我的教训却是很深啊。

我想要实现的是,将用户id和名字密码等信息永久地保存在一个二进制文件中。用的文件操作函数是 fwrite函数 和 fread函数,将一个用户结构体直接写到文件里面去,用到的时候再读出来。我的 user 结构体是这样写的:

然后就发现了这样的错误:登陆之前必须初始化文件,然后添加用户,删除用户,切换用户登陆都没有问题。但是一旦退出再次进行调试,保准会运行异常挂掉。不能做到永久存储。

再扯一下我试过的调试方法吧。因为对二进制读写用的不是很多,所以就以为是文件读写有问题,于是查了一堆fwrite和fread的用法和参考,搞了一堆demo来测试——都没问题。然后以为是流程问题,搞了堆输出来测试,也没问题。后来才用了跟踪调试,老老实实一步步跟进去,才发现了问题。

答案就是:string类型存放的其实是一个指针,并不是实际的字符串。而fwrite是将整个结构体作为二进制写进去的,也就是说存了个指针。一旦退出程序,下次启动,这个string存放的地址就不再是用户名和密码了,变得毫无意义。正确地方式是,使用char型数组来存放。如下:

发现这个的时候,凌晨三点,周围很静。我一下子想起来一周之前在机房问Wii要用什么语言写,他说C,我嘲笑说pure  C? low。现在终于吃到了苦头。对着屏幕傻笑了好一会儿。

教训总结:

  1. 以为STL会带来很多便捷,就想当然地使用了C++来写,太愚蠢了。最近看的一些系统的书,都提到要使用C,甚至是汇编。即使是pure C,从0实现的时候,也不能使用printf这种函数,甚至还要针对gcc等编译器进行优化,相当底层。我都有点觉得,汇编才是最好的编程语言了!
  2. 一定要区分C和C++的区别。这点仁者见仁吧,我以前把秋波老师的话奉为信条,他就说过:我管你是C还是C++,能写出程序来就行了,老朱也说过,除了io的时候用C,别的混用无所谓的,AC就行。现在自己觉得,区分开来很重要!C++面向对象,拥有丰富的STL。C效率高,偏底层。该用什么用什么,用C++,就要用C++的风格,比如用迭代器替换i++之类的。
  3. Always ask WHY.学知识一定要学的明白,懂基本原理,使用这方面,倒是可以一点一点来熟练。基本不扎实,是我花了这么长时间调试的根本原因。string是个对象啊!那它存的就是个指针啊!二进制写进去这么个对象,怎么能类似”深拷贝“地把对象也写进去呢?从逻辑上想想,这真的是一个很白痴的错误。现在想想,是很简单,但是在学习的时候想到”这里保存的是指针“这一点会引发什么样的后果,却很难。需要认真思考。

很多东西,说说简单,不自己吃点亏,是记不住的。