Skip to content

大学生的迷茫

最近自己为了“修养生息”可以放慢了“前进”的步伐,体会到了朋友们所说的那种大学生独有的“迷茫”。虽然自己没有看过刘同的《谁的青春不迷茫》,但是根据我的“猜测”我想应该更加的侧重于生活中切身体会吧。在这里我想向说的会略微偏向于学术方向的选择。
与友人的午饭交心,让我在自己的“迷茫的朋友”名单上又多加了一个名字。相互叙聊的过程中,我体会到友人的无奈、无助以及对自己浪费自己美好年华的愤恨,而恰好此时的我也处于阶段性的迷茫期,切身的体会。

“我是学金融的,但是我不认识这个圈子里的老师、大牛,所以没有什么实习的机会。”
“我是学金融的,但是我考到证书寥寥无几。”
“我是一个学生,我觉的学习的教学有很大的问题,老师讲的貌似跟社会需求的不一样啊。老师总说上课学习的是基础,下课自学才是王道,但是我们每天满课,下课后就晚上八九点了,该洗洗睡了,明天还要早起上课呢。”
“我是一个项目的负责人,我们去开题答辩,结果专家说:你这个有点难,我建议你们随便研究研究发个论文就好了,何必为难自己呢?答辩学生懵了,原来发个注水的文章我们能就拿到8000块的研究经费和两个学分了。so easy 国家再也不用担心我的学习,难题都交给天生的天才去做吧!走,组员们回宿舍睡觉去,写个水文章还不是几天的事啊。(滑稽脸)”
朋友跟我说,“老师,我想写个论文,您有时间指导我一下吗?老师说,‘没时间啊,我还要炒股呢’(呵呵哒)”。
听着他说的,我心里的得意的想着,还好我有两个好导师一起带我飞,我们亦师亦友。(开心撒花~)

看过上面的“伪”对话,心里的那个朝气蓬勃的朋友,更加迷茫了。本来友人跟我吐口水的,怎么友人自己更加苦了呢?

(下面开始卖弄我的烂文笔)其实在生活中,我们都会间歇性的“迷茫”。有时,我们觉得自己迷茫其实并不是真正的迷茫,而是你不了解自己而导致的生活无趣。例如,我们每天只想看剧、看韩剧、看日剧、看美剧(看我这气势磅礴的排比句),这就是我们的自己的选择,我们自己方向,只不过这个方向会让你产生些许的愧疚感(对家人愧疚、对老师愧疚、对自己愧疚、对时间愧疚),你才会感到自己好迷茫的啊!这种迷茫感是你否认自己的“无能”,拒绝承认自己“无能”而产生的。在你自己心里却清楚的很,自己只不过是没有什么专业实力,觉得碌碌无为罢了。至于外界的质疑与拒绝,也只不过是自己的无能夹杂着旁人的狭隘。

那么如何解决自己的迷茫呢?

  • 欲要成精(功),必先自(用)功。
  • 选对自己的路,先要了解自己的兴趣。
  • 看清未来,还要开阔眼界,多去听听报告、开开会。或者去茶会上吃点小蛋糕吧,遇到“吃友”也是人生的幸福。
  • 入门的方向的是自己选的,真正入门后就成了别人推着你走了。你所能做的,就是在每个岔口按照自己的兴趣选择另一条路,被别人的推着走。(谁说高考后就没有独木桥了!)

老科学家

钱钟书在《围城》中讲,老科学家可以理解成“老的科学家”或者“老科学的家”两种。如果是后者,他们年纪不算老,但是已经落伍,大家必须耐心等他们退休让出位子。毕竟,不是所有人都乐意改变自己的观点,无论对错。为了保证不变成“老科学的家”,实时自己的更新知识,不失为一种有效的方法。

NLP语言歧义的根源与翻译问题的可行性

语言歧义是由文字概念的聚类所导致

在现实生活中,随着文字的不断发展,一个文字符号会拥有多种含义,它们在特定的环境下会表达不同的含义。因而在NLP中,会导致一些歧义的发生。解决这个问题的方法也很简单,就是按照人类的思维根据上下文来做理解识别。
由此可以看出NLP中的语义歧义是不可避免的,因为这是语言从产生就固有的特点。

因为不同的文字系统在记录信息上的能力是等价的,所以使得翻译具有先天的“优势”

文字与所传达的意思是独立的,文字仅作为一种符号来想使用者传达一些特定的、已规定(或已形成共识的)的信息。文字作为一种信息的载体,便于人们使用。因此不同的自然语言之间,仅仅有结构上的差异,但在社会生活中都可以达到同样的信息传递效果。因此,当ML从NL中抽象出来时,ML也就具备了coding与信息独立的特点。

因果与相关


一切思想都始于经过某种程度概括的概念,并由此朝两个方向发展。

  • 一方面,概括的范围越来越宽广,将具有共同特征的现象汇集在一起,那些现象的数量越来越多,从而包含了显示现实世界的更广阔领域。
  • 另一方面,思想越来越接近全部概念、个体和具体单元的汇合点,而我们只能依靠范围不断缩小的思考。

社交媒体,假新闻和你的朋友圈是如何扭曲你的记忆的

原文以How Facebook, fake news and friends are warping your memory为标题
发布在2017年3月7日的《自然》新闻上
原文作者:Laura Spinney

在后事实时代,研究集体记忆的重要性再次凸显。

最近以来,许多怪象屡见报端。光是在今年,美国总统特朗普政府中的官员就曾提起过子虚乌有的“鲍林格林大屠杀”,以及瑞典和美国亚特兰大市不存在的恐怖袭击。

虽然以上错误信息很快就被纠正,但历史上的一些讹传却已被证明很难从人们的记忆中消除。例如,至少从2010年开始,一些网民就坚称在他们的记忆里,曼德拉无疑是在20世纪80年代死于狱中的。但事实上,曼德拉在上世纪90年代出狱,之后成为了南非的首位黑人总统,直到2013年才去世。

记忆的不可靠性已是众所周知,但一些专家担忧一种新的现象正在涌现。“通过Facebook和Instagram等站点,记忆以一种全新的方式在群体之间分享,模糊了个人记忆和集体记忆之间的界限,”哈佛大学研究记忆的心理学家Daniel Schacter说。“基于互联网的假信息传播,比如最近被广泛公开的假新闻站点,可能会以一种令人不安的方式扭曲个人记忆和集体记忆。”

集体记忆构成了历史的基础,而人们对历史的理解影响了他们对未来的思考。例如,虚构的恐怖袭击被用来为对7个“特别关注国家”公民的入境禁令辩护。虽然历史的诠释常常服务于政治目的,但现在,心理学家正在研究集体记忆形成的基本过程,以了解为什么集体记忆那么容易扭曲。他们表明,社交网络会强有力地塑造记忆,人们不需要多少暗示就会服从主流记忆——即使那是错的。不过,并非所有发现都是悲观的。这项研究也指出了消除错误记忆,或在一开始就防止其形成的方法。

苏黎世大学的记忆研究者Micah Edelson表示,要对抗假新闻的影响,“重要的不仅是了解这些假新闻站点的形成,还要了解人们对它们的反应”。

集体记忆

沟通塑造记忆。研究发现,在两个人一起谈论过去时,一方可以通过有选择的重复来强化一起事件的某些方面。这是可以理解的。被提到的事情会被记住——对于说者和听者而言均是如此。这项研究还有一个并不那么明显的推论:比起不相关的信息,未被提及的相关信息更易被遗忘,这种效应被称为“提取诱发遗忘”。

这些个体级别的认知现象被视为一种记忆趋同机制——两个或以上的人对已发生的事情达成一致认识的过程。但是在过去几年,有线索表明群体级别的力量也会影响记忆趋同。2015年,普林斯顿大学的心理学家Alin Coman和纽约新学院的心理学家William Hirst报告称,如果说者来自与听者相同的社会群体,比如是同一所大学的学生,而不是局外人,那么听者更易出现诱发遗忘的情况。

也就是说,记忆趋同发生在社会群体内部的可能性大于社会群体之间。这是一项重要的发现,因为已有调查数据表明,62%的美国成年人通过社交媒体获取新闻,而在社交媒体中一般存在着明显而强大的群体划分。

群体也会扭曲记忆。2011年,当时任职于以色列魏茨曼科学研究所的Edelson向30名志愿者播放了一个纪录片。志愿者以五人一组观看影片,几天后单独回答有关影片的问题。观看影片一个星期后,被试者被要求再次回答问题,但在回答前先阅读了他们以为是本组其他成员给出的回答。

这些编造出来的回答大部分都是错误的,但被试者在70%的情况下给出了同样的错误回答——尽管他们第一次回答时答对了。但是,即使被试者知道了之前看到的回答只是随机生成的,也只在60%的情况下更改了错误的回答。“我们发现,在初次接收到错误信息期间发生的过程会导致之后纠正其错误影响十分困难,”Edelson说。

由于集体记忆是通过对话塑造的,人们一直以来都很难在较大的群体中实时研究这类过程。5年前,监测10人或更大的小组沟通需要多个可以进行私密对话的房间,以及大量的研究助理和时间。现在,多位被试可以通过数字方式进行实时互动。Coman的小组开发出了一个软件平台,它能追踪志愿者在一系列计时交谈中的对话情况。“这样只需要一位研究助理花费20分钟的时间和一间实验室就够了,”Coman说。

去年,他的小组使用这一软件,首次研究了社会网络的结构是如何在较大的群体中影响集体记忆形成的。研究招募了140位来自普林斯顿大学的被试,将他们分为10人一组,并向他们提供了有关4名虚构的美国和平队志愿者的信息。首先,被试被要求独立回忆起尽可能多的信息。然后,他们与本组内的成员进行三次对话(每次持续几分钟的在线聊天),以集体回忆信息。最后,他们再次尝试独立回忆信息。

研究人员研究了两种场景:在第一种场景下,10人小组被分成了两个子集群,几乎所有对话都在子集群内部进行;在第二种场景下,10人小组本身组成了一个大集群(参见“你好,接线员,我找……”)。Coman表示,虽然单集群中的被试者就同一套信息达成了一致,但在第一种场景下,两个子群往往会分别就有关这些虚构志愿者的不同“事实”达成共识。


Source: Coman, A., Momennejad, I., Drach, R. D. & Geana, A. Proc. Natl Acad. Sci. USA 113, 8171–8176 (2016).

这一效应在现实世界中明显存在。在1948年和1967年的中东战争期间被迫背井离乡,分别生活在以色列和约旦河西岸的巴勒斯坦人虽然拥有共同的巴勒斯坦-阿拉伯人身份认同,但却对自己的过去持有不同的认知。柏林墙建成后,人们对真相的认知也出现了类似的分歧。

在实验室中,Coman可以操控社会网络,并考察由此形成的记忆。对比两种场景后,他发现了“弱连接”在信息传播中的重要性。这些连接存在于网络之间而非网络内部(比如是熟人而非朋友的关系)。它们有助于同步不同社会网络所持的认知。“它们可能是驱动整个社区形成集体记忆的动因,”他说。

提醒人们在记忆趋同过程被消除的信息或许是弱连接的功能之一。但时机也具有重要作用。在一项未发表的研究中,Coman发现如果弱连接在网络成员互相讨论前提供了信息,那么该信息将更有可能塑造他们的集体记忆。一旦社会网络对过去发生的事情达成了一致认识,集体记忆就会对与之相左的信息产生一定的抵抗。

Coman认为记忆趋同会强化群体凝聚力。“由于拥有相同的记忆,我们就有更强的身份认同,而且很有可能对彼此更加关心,”他说。大量研究将强烈的群体身份认同感与自我报告的更强的个人幸福感联系在一起。有关家族的研究也体现了这一点。美国埃默里大学的心理学家Robyn Fivush研究的是家族历史的传承。“我们发现,对家族历史了解较多的少年和青年人心理更健康,”她说。

虽然共有记忆或许可以促进人们形成关系更紧密的群体,但它们也可能会扭曲局外人的角色,在不同群体之间产生隔阂。记忆塑造群体身份,群体身份反过来又塑造记忆,这是一个潜在的恶性循环。弱连接具有重要的矫正效果,但在没有弱连接的情况下,不同群体也可能就相互矛盾的历史版本达成一致认识。这样的历史共识可能存在于雕像和历史书籍中,传承给子孙后代。但它们也可能会随着时间的流逝而发生变化。

制造记忆,制造历史

比利时奥斯坦德市有一座比利时国王利奥波德二世的公共纪念碑,碑中国王的身边围着两群恭顺的子民——一群是比利时人,一群是刚果人。2004年,一群抗议者认为该纪念碑误传历史,砍下了其中一个刚果人人像的一只手。他们匿名向一家当地报纸解释说,断手更准确地反映了利奥波德二世在比利时非洲殖民地中扮演的角色:不是善良的保护者,而是残忍的暴君。

2010年,来自布鲁塞尔自由大学法语校区的社会心理学家Laurent Licata和Olivier Klein开展了一项调查,研究各代人对比利时殖民历史的态度。他们发现,对于现在的刚果民主共和国,比利时学生的集体愧疚程度和对弥补措施的支持程度高于其父母,而他们的父母与其父辈相比也是如此。

研究人员认为,导致这种变化的一个重要因素是Adam Hochschild影响力极高的著作——《利奥波德国王的鬼魂》(霍顿•米夫林出版公司,1998年)一书的出版。书中描述的殖民时代远比人们此前接受的更加黑暗。“该书刚出版时年纪较轻的人受其影响尤其显著,”Licata说,“而年纪较大的比利时人则是在不同的事实环境下成长起来的。”


从左上按顺时针方向:G. Tomasevic/Reuters; A. Hussein/Getty; D.Berehulak/NYT/Redux/eyevine; Rolls Press/Popperfoto/Getty; J. Pitts/Afropean; D. Mitidieri/Getty

并不是所有的集体记忆都成为了历史。加拿大阿尔伯塔大学的认知心理学家Norman Brown和哥伦比亚大学的认知心理学家Connie Svob提出,除了认知和社会过程之外,还有另一个因素决定了一个事件是否能在代际间传递:事件本身的性质。“最关键的是个人日常生活形态的变化程度,”Svob说。

在去年发表的一项研究中,他们报告称,经历了20世纪90年代南斯拉夫内战的克罗地亚人的子女更有可能回忆起来父母与战争相关的经历,而不是自己与战争无关的经历:前者如被枪击或房子被炸,后者如结婚或第一个孩子的出生。Svob表示,战争和移民一样会带来巨变,因此非常容易被记住。

她说,这种“传递理论”也能解释西方人20世纪集体记忆中的最大空白之一——为什么他们能够轻易记起两次世界大战,但却难以想起1918-20年的西班牙流感,后者造成的死亡人数可能比任何一次大战都多。“战争带来的变化程度一般大于流行性疾病,”Svob说。另外一些人认为这种解释也令人困惑:“如果你在流感中失去了一位深爱的人,”Fivush说,“那一定会破坏你的日常生活。”

一个群体所保存的一系列集体记忆显然会随着时间的变化而变化。原因之一是人们一般受少年或青年时期发生的事件影响最大,这种现象被称为“记忆突点”。随着新一代人的成长,发生在他们青年时期的事件会覆盖此前主导社会的事件,从而“更新”集体记忆。

据皮尤研究中心2016年的一项调查显示,美国婴儿潮(译注:1946年到1964年间出生)一代人眼中的代表性历史时刻是肯尼迪总统遇刺和越南战争,而对1965年以后出生的人来说则是2001年的911事件和前总统奥巴马的当选。

随着时间的流逝,每一代人在记住一些事件的同时也会忘却另一些事件。例如,华盛顿大学的心理学家Henry Roediger和心理科学学会的心理学家Andrew DeSoto报告表示,一代代的美国人有规律地遗忘过去的总统,这种规律可以用一个幂函数表示。

根据他们的预测,杜鲁门(1945-1953年担任美国总统)将在2040年被遗忘,就像今天的人们已遗忘威廉·麦金利(1897–1901年)一样。

人们对待未来的态度变化反映了这种演变。Roediger和同样来自华盛顿大学的人类学家James Wertsch观察到,就美国本世纪初入侵伊拉克展开辩论的美国政客分成了两派:提倡派认为萨达姆·侯赛因就像希特勒一样必须被阻止,反对派则担心它会演变成另一场血腥而又旷日持久的越战。虽然两派可能都出于政治理由选择了历史先例,但这反过来也在听众的记忆中强化了这些先例。

辨认真伪

对集体记忆的研究指出了为集体利益塑造集体记忆的方式。在2014年开展的对先前研究的跟进研究中,Edelson及其团队给出了保持乐观的理由。他们报告称,虽然一些错误的记忆不易改变,但保留错误记忆的人仍能被可靠信息的影响。团队使用了功能性核磁共振成像技术,在志愿者回忆某电影的信息时扫描了他们的大脑。

他们在扫描中发现了脑激活变化,这种变化与对不准确记忆的信心,以及志愿者是否会改回最初的准确的记忆相关。“在告诉人们该信息不可靠后,在大多数情况下,他们都会将这一点纳入考虑,”Edelson说。“在60%的情况下,人们会改变答案。但即使维持错误的答案不变,他们对答案的信心也降低了。”

根据他的发现,Coman提出了两条建议。第一条是针对司法系统的。美国的某些州禁止陪审员将其在审理期间所做的笔记带进评议室,这是过去高文盲率的历史遗留产物,也出于相信群体记忆比个人记忆更可靠的观点。Coman说,事实上,使用笔记可以防止陪审员出现提取诱发偏见和受到群体社会影响。他的团队希望能更加深入地研究这类规定的影响。

他的第二条建议则是关于紧急情况下(如发生流行病)如何向大众传播关键信息的。根据他的观察,提取诱发遗忘在高度焦虑的情况下会上升,因此他向政府官员提出了一些建议:起草一份简明扼要的要点清单,确保所有官员采用同一清单,经常重复这些要点,并密切监视流传中的有害信息。

举例来说,在2014年埃博拉病毒爆发期间,一条错误信息就增加了美国人的恐慌:与埃博拉感染者同处一室就能被感染。Coman说,终结谣言的最佳方法应该是经常解释埃博拉只能通过体液传播。“如果知道错误信息的性质,你只需提起在概念上与之相关,但事实准确的信息,就能有的放矢地遏制它,”他说。

集体记忆是一把双刃剑。毫无疑问,有人会利用它来误导他人。“信息在社会中的自由传播一直被视为开放的民主社会最重要、也是最具建设性的特征之一,”Coman说,“但是,建设这样的社会并不能保证正面的结果。”捍卫言论自由的代价可能是错误的集体记忆。但如果知道它们是如何形成的,当人们再次听说一个从未发生过的大屠杀时,这样的知识或许就能为他们提供某种防御。

Nature|doi:10.1038/543168a

点击“阅读原文”阅读英文原文

版权声明:
本文由施普林格·自然上海办公室负责翻译。中文内容仅供参考,一切内容以英文原版为准。欢迎转发至朋友圈,如需转载,请邮件Chinapress@nature.com。未经授权的翻译是侵权行为,版权方将保留追究法律责任的权利。

© 2017 Macmillan Publishers Limited, part of Springer Nature. All Rights Reserved

Tagged , ,

使用python自动提取内容摘要

利用计算机将大量的文本进行处理,产生简洁、精炼内容的过程就是文本摘要,人们可通过阅读摘要来把握文本主要内容,这不仅大大节省时间,更提高阅读效率。但人工摘要耗时又耗力,已不能满足日益增长的信息需求,因此借助计算机进行文本处理的自动文摘应运而生。近年来,自动摘要、信息检索、信息过滤、机器识别、等研究已成为了人们关注的热点。

自动摘要(Automatic Summarization)的方法主要有两种:Extraction和Abstraction。其中Extraction是抽取式自动文摘方法,通过提取文档中已存在的关键词,句子形成摘要;Abstraction是生成式自动文摘方法,通过建立抽象的语意表示,使用自然语言生成技术,形成摘要。由于自动摘要方法需要复杂的自然语言理解和生成技术支持,应用领域受限。,抽取式摘要成为现阶段主流,它也能在很大程度上满足人们对摘要的需求。

目前抽取式的主要方法:

  • 基于统计:统计词频,位置等信息,计算句子权值,再简选取权值高的句子作为文摘,特点:简单易用,但对词句的使用大多仅停留在表面信息。
  • 基于图模型:构建拓扑结构图,对词句进行排序。例如,TextRank/LexRank
  • 基于潜在语义:使用主题模型,挖掘词句隐藏信息。例如,采用LDA,HMM
  • 基于线路规划:将摘要问题转为线路规划,求全局最优解。

2007年,美国学者的论文《A Survey on Automatic Text Summarization》(Dipanjan Das, Andre F.T. Martins, 2007)总结了目前的自动摘要算法。其中,很重要的一种就是词频统计。这种方法最早出自1958年的IBM公司科学家 H.P. Luhn的论文《The Automatic Creation of Literature Abstracts》

Luhn博士认为,文章的信息都包含在句子中,有些句子包含的信息多,有些句子包含的信息少。”自动摘要”就是要找出那些包含信息最多的句子。句子的信息量用”关键词”来衡量。如果包含的关键词越多,就说明这个句子越重要。Luhn提出用”簇”(cluster)表示关键词的聚集。所谓”簇”就是包含多个关键词的句子片段。

上图就是Luhn原始论文的插图,被框起来的部分就是一个”簇”。只要关键词之间的距离小于”门槛值”,它们就被认为处于同一个簇之中。Luhn建议的门槛值是4或5。也就是说,如果两个关键词之间有5个以上的其他词,就可以把这两个关键词分在两个簇。下一步,对于每个簇,都计算它的重要性分值。

以上图为例,其中的簇一共有7个词,其中4个是关键词。因此,它的重要性分值等于 ( 4 x 4 ) / 7 = 2.3。

然后,找出包含分值最高的簇的句子(比如5句),把它们合在一起,就构成了这篇文章的自动摘要。具体实现可以参见 《Mining the Social Web: Analyzing Data from Facebook, Twitter, LinkedIn, and Other Social Media Sites》(O’Reilly, 2011)一书的第8章,python代码见github

Luhn的这种算法后来被简化,不再区分”簇”,只考虑句子包含的关键词。下面就是一个例子(采用伪码表示),只考虑关键词首先出现的句子。

类似的算法已经被写成了工具,比如基于Java的Classifier4J库的SimpleSummariser模块、基于C语言的OTS库、以及基于classifier4J的C#实现python实现

参考文章:

TextTeaser

TextTeaser 原本是为在线长文章(所谓 tl;dr:too long; didn’t read)自动生成摘要的服务,其原本的收费标准是每摘要 1000 篇文章付费 12 美元或每月 250 美元。巴尔宾称 TextTeaser 可以为任何使用罗马字母的文本进行摘要,而且比同类工具如 Cruxbot 和 Summly(在 2013 年 3 月被 雅虎斥资 3000 万美元收购)更准确。其创造者霍洛•巴尔宾(Jolo Balbin)表示,在“发现一些扩展问题,特别是 API 中的问题后”,他决定将 TextTeaser 代码开源。

TextTeaser开源的代码一共有三个class,TextTeaser,Parser,Summarizer。

  • TextTeaser,程序入口类。给定待摘要的文本和文本题目,输出文本摘要,默认是原文中最重要的5句话。
  • Summarizer,生成摘要类。计算出每句话的分数,并按照得分做排序,然后按照原文中句子的顺序依次输出得分最高的5句话作为摘要。
  • Parser,文本解析类。对文本进行去除停用词、去除标点符号、分词、统计词频等一些预处理操作。

其中打分模型分为四部分:

  • 句子长度,长度为20的句子为最理想的长度,依照距离这个长度来打分。
  • 句子位置,根据句子在全文中的位置,给出分数。(巴尔宾认为一篇文章的第二句比第一句更重要,因为很多作家都习惯到第二句话引入关键点)备注:用段落效果会怎样?
  • 文章标题与文章内容的关系,句子是否包含标题词,根据句子中包含标题词的多少来打分。
  • 句子关键词打分,文本进行预处理之后,按照词频统计出排名前10的关键词,通过比较句子中包含关键词的情况,以及关键词分布的情况来打分(sbs,dbs两个函数)。

开源版本:

自己尝试这个调用Python版本。主要:不要使用pip install textteaser进行安装,该安装方式安装的是这个项目:

https://github.com/jgoettsch/py-textteaser,该项目并非算法实现,而是API实现。直接下载代码即可:https://github.com/DataTeaser/textteaser

下载完成后在Windows下运营test.py会报错,报错信息如下:

Traceback (most recent call last):
  File "D:/textteaser/test.py", line 12, in <module>
    sentences = tt.summarize(title, text)
  File "D:\textteaser\textteaser\__init__.py", line 13, in summarize
    result = self.summarizer.summarize(text, title, source, category)
  File "D:\textteaser\textteaser\summarizer.py", line 11, in summarize
    sentences = self.parser.splitSentences(text)
  File "D:\textteaser\textteaser\parser.py", line 62, in splitSentences
    tokenizer = nltk.data.load('file:' + os.path.dirname(os.path.abspath(__file__)) + '/trainer/english.pickle')
  File "C:\Python27\lib\site-packages\nltk\data.py", line 806, in load
    resource_val = pickle.load(opened_resource)
ImportError: No module named copy_reg

针对报错信息,做如下修改:

1、将”D:\textteaser\textteaser\parser.py”第62行进行修改:

#tokenizer = nltk.data.load('file:' + os.path.dirname(os.path.abspath(__file__)) + '/trainer/english.pickle')
tokenizer = nltk.data.load('file:' + os.path.dirname(os.path.abspath(__file__)) + os.sep + 'trainer' + os.sep + 'english.pickle')

2、找到”\Lib\site-packages\nltk\data.py”第924行,将

return find(path_, ['']).open()

修改为:

file_path = find(path_, [''])
data = open(file_path, 'rb').read()
newdata = data.replace("\r\n", "\n")
if newdata != data:
    f = open(file_path, "wb")
    f.write(newdata)
    f.close()
f = open(file_path, "rb")
return f

注意:TextTeaser目前只支持英文摘要。

TextRank

TextRank算法是一种用于文本的基于图的排序算法。其基本思想来源于谷歌的PageRank算法, 通过把文本分割成若干组成单元(单词、句子)并建立图模型, 利用投票机制对文本中的重要成分进行排序, 仅利用单篇文档本身的信息即可实现关键词提取、文摘。和 LDA、HMM 等模型不同, TextRank不需要事先对多篇文档进行学习训练, 因其简洁有效而得到广泛应用。

TextRank 一般模型可以表示为一个有向有权图 G =(V, E), 由点集合 V和边集合 E 组成, E 是V ×V的子集。图中任两点 Vi , Vj 之间边的权重为 wji , 对于一个给定的点 Vi, In(Vi) 为 指 向 该 点 的 点集合,Out(Vi) 为点 Vi 指向的点集合。点 Vi 的得分定义如下:

其中, d 为阻尼系数, 取值范围为 0 到 1, 代表从图中某一特定点指向其他任意点的概率, 一般取值为 0.85。使用TextRank 算法计算图中各点的得分时, 需要给图中的点指定任意的初值, 并递归计算直到收敛, 即图中任意一点的误差率小于给定的极限值时就可以达到收敛, 一般该极限值取 0.0001。

基于TextRank的关键词提取

关键词抽取的任务就是从一段给定的文本中自动抽取出若干有意义的词语或词组。TextRank算法是利用局部词汇之间关系(共现窗口)对后续关键词进行排序,直接从文本本身抽取。其主要步骤如下:

  1. 把给定的文本T按照完整句子进行分割,
  2. 对于每个句子,进行分词和词性标注处理,并过滤掉停用词,只保留指定词性的单词,如名词、动词、形容词,其中是保留后的候选关键词。
  3. 构建候选关键词图G = (V,E),其中V为节点集,由2生成的候选关键词组成,然后采用共现关系(co-occurrence)构造任两点之间的边,两个节点之间存在边仅当它们对应的词汇在长度为K的窗口中共现,K表示窗口大小,即最多共现K个单词。
  4. 根据上面公式,迭代传播各节点的权重,直至收敛。
  5. 对节点权重进行倒序排序,从而得到最重要的T个单词,作为候选关键词。
  6. 由5得到最重要的T个单词,在原始文本中进行标记,若形成相邻词组,则组合成多词关键词。例如,文本中有句子“Matlab code for plotting ambiguity function”,如果“Matlab”和“code”均属于候选关键词,则组合成“Matlab code”加入关键词序列。

基于TextRank的自动文摘

基于TextRank的自动文摘属于自动摘录,通过选取文本中重要度较高的句子形成文摘,其主要步骤如下:

  1. 预处理:将输入的文本或文本集的内容分割成句子得,构建图G =(V,E),其中V为句子集,对句子进行分词、去除停止词,得,其中是保留后的候选关键词。
  2. 句子相似度计算:构建图G中的边集E,基于句子间的内容覆盖率,给定两个句子,采用如下公式进行计算:若两个句子之间的相似度大于给定的阈值,就认为这两个句子语义相关并将它们连接起来,即边的权值:
  3. 句子权重计算:根据公式,迭代传播权重计算各句子的得分;
  4. 抽取文摘句:将3得到的句子得分进行倒序排序,抽取重要度最高的T个句子作为候选文摘句。
  5. 形成文摘:根据字数或句子数要求,从候选文摘句中抽取句子组成文摘。

参考资料:

玻森自动摘要

玻森采用的是最大边缘相关模型(Maximal Marginal Relevance)的一个变种。MMR是无监督学习模型,它的提出是为了提高信息检索(Information Retrieval)系统的表现。例如搜索引擎就是目前大家最常用的信息检索系统。大家可能经常会碰到,对于我们输入的一个关键词,搜索引擎通常会给出重复的或者内容太接近的检索的情况。为了避免这个现象,搜索引擎可以通过MMR来增加内容的多样性,给出多方面考虑的检索结果,以此来提高表现。这样的思想是可以被借鉴用来做摘要的,因为它是符合摘要的基本要求的,即权衡相关性和多样性。不难理解,摘要结果与原文的相关性越高,它就接近全文中心意思。而考虑多样性则使得摘要内容更加的全面。非常的直观和简单是该模型的一个优点。

相比于其他无监督学习方法,如TextRank(TR), PageRank(PR)等,MMR是考虑了信息的多样性来避免重复结果。TR,PR是基于图(Graph)的学习方法,每个句子看成点,每两个点之间都有一条带权重(Weighted)的无向边。边的权重隐式定义了不同句子间的游走概率。这些方法把做摘要的问题看成随机游走来找出稳态分布(Stable Distribution)下的高概率(重要)的句子集,但缺点之一便是无法避免选出来的句子相互之间的相似度极高的现象。而MMR方法可以较好地解决句子选择多样性的问题。具体地说,在MMR模型中,同时将相关性和多样性进行衡量。因此,可以方便的调节相关性和多样性的权重来满足偏向“需要相似的内容”或者偏向“需要不同方面的内容”的要求。对于相关性和多样性的具体评估,玻森是通过定义句子之间的语义相似度实现。句子相似度越高,则相关性越高而多样性越低。

自动摘要的核心便是要从原文句子中选一个句子集合,使得该集合在相关性与多样性的评测标准下,得分最高。数学表达式如下:

需要注意的是,D,Q,R,S都为句子集,其中,D表示当前文章,Q表示当前中心意思,R表示当前非摘要,S表示当前摘要。可以看出,在给定句子相似度的情况下,上述MMR的求解为一个标准的最优化问题。但是,上述无监督学习的MMR所得摘要准确性较低,因为全文的结构信息难以被建模,如段落首句应当有更高的权重等。为了提高新闻自动摘要的表现,玻森在模型中加入了全文结构特征,将MMR改为有监督学习方法。从而模型便可以通过训练从“标准摘要”中学习特征以提高准确性。

玻森采用摘要公认的Bi-gram ROUGE F1方法来判断自动生成的摘要和“标准摘要”的接近程度。经过训练,玻森在训练数集上的表现相对于未学习的摘要结果有了明显的提升——训练后的摘要系统F1提高了30%。值得一提的是,在特征训练中,为了改善摘要结果的可读性,玻森加指代关系特征,使得模型表现提高了8%。

相关链接:

其他相关开源项目

转载自:《使用Python自动提取内容摘要》钱魏

Tagged , ,

离开社会谈人的价值,是不是一句空话

有回在外吃饭,餐厅里人不多,忽一个清晰的女声传来:“人的价值不就是社会价值吗?”很是突兀,也不知此前是何铺陈。环顾四周,只见不远处坐了一对中年男女,男人仪表平平,女人着装时尚却似不够协调。见我注意他们,声音于是低下去。但我的听力却随之灵敏了许多。男的接着说:“不一样,我跟你说的真的是不一样。”女的说:“怎么不一样?”男的抽烟,呆望着飘摇的烟缕。女的慢慢咀嚼,似胸有成竹。半天,男的又说:“你认为人的价值,仅仅是社会认定吗?”女的紧跟着问:“那你倒是说说,还有什么?”男的反问:“那你也说说,你所谓的社会价值都是指什么?”这下轮到女的语塞了。很久,可能是发现有人仍在偷听,他们起身换了个座位;女的走过我身旁时不轻不重地扫了一眼。

我当然不能跟过去,但天生的毛病——我开始在心里替那个女人问,然后帮那个男人答。那女人的问题简单说是这样:除了社会价值,莫非人还有什么单独的价值?也就是说:离开社会谈人的价值,是不是一句空话?但正如那男人所问,社会价值又是指什么呢?我想来想去,觉得只能是指社会贡献。故那女人的问题可以总结为:除了以社会贡献来衡量人的价值,不可能还有什么其他标准。是呀,人除了是社会的人,就剩下生理的人,总不会说还有个生理价值吧?

这么一绕可真是有点儿晕。不以社会贡献而论的“人的价值”,可有吗?是什么?这样一想还真是有点儿空。

那女人的声音忽又大起来:“那好,你举个例子!”

举个例子?什么例子?唔,我想我可以帮帮那个男人了。

透析,听说过吗?一种疗法。比如说你得了尿毒症,要死,有种疗法叫“透析”,透了你就能活,不透你很快就死。但这疗法价格昂贵,十几年前我开始透析的时候,人分两类——有公费医疗的和没有公费医疗的,后者若非“大款”,肯定是负担不起每年十几万的透析费。这样就有问题了:假定公费医疗确实体现了社会贡献,那么没有公费医疗或尚无社会贡献的人,就该死吗?我曾亲眼看见一农村青年,跟着他憔悴的母亲来透了几次,就打算结账回家了。那一刻透析室里一无声息,所有人都知道这意味着什么。那时人们都在想什么?社会贡献,还是人的价值?(谢天谢地,据说就要实行“全民医保”了,但愿它能成功。)再比如这次汶川大地震,救人时,料也不会有谁去想,压在废墟下的人社会价值如何吧。事实上,即便在那个阶级斗争最为疯狂的年代,在人们心底,人的价值也是独立于社会价值的——雷锋在帮助陌生人时,可曾想过他的社会贡献吗?

人的价值是神定的标准,即人一落生就已被认定的价值。想来,神的标准也有上下线之分,即“下要保底”——平等的人权,“上不封底”——理想或信仰的无限主球。所以,人除了是社会的人,并不只剩下生理的人,人还是享有人权的人、追求理想和信仰的人。

而社会价值是人定的标准,是针对人性的缺憾而设的奖惩措施,想来实为无奈之举。比如多劳多得,根本还是名与利的鼓舞。比如在种种名或利的排行榜,就像股市大盘;据说在股市中,投资与投机皆属必要,二者协同而成一双看不见的手,推动着我们丰衣足食。其实还有第三只手,即操纵股市的人——造假相以乱规则,伺机猎取暴利:这真与弄排行榜者同心同“德”——设虚衔以惑人心,从中收获权名。

有位大慈善家说过:富人之富(也可引申到名人之名),是社会发展的副产品,独占是不道德的行为。我理解这意思是说:社会发展不可不赖于竞争,而竞争必致人分贫富,所以竞争乃富人与穷人的合作,合作的副产品岂可归一方享有?换个角度,穷人之穷也是这合作的副产品,自然也不该由一方承担。隐隐地我们听到上帝的声音了。

或许可以这样说吧:人的价值即神的标准。社会价值是人的弱点使然。对社会价值斤斤计较或耿耿于怀,是不道德的行为。慈善事业,是以神的标准来弥补人的缺陷。而第三只手,从来就是偷儿的别名。

作者:史铁生
来源:选自人民文学出版社《扶轮问路》

Tagged ,

量子大脑 量子计算机 量子编程

【前记】看完第四季的《神盾局特工》,感觉中间部分跟篇名“幽灵特工”越来越远,有开始新分支——人工智能,可能编剧眼红《西部世界》的大火,又在利益的驱动下导致剧情偏离了最初设想。奈何我脑洞巨大的编剧估计会在本季末将剧情线拉回来吧新分支的主人公——艾达(Ida)量子机器人,可谓是吸睛,我都设想在开学后追修几门量子物理学的课程来过过“脑瘾”。今天我们就来从学术的角度扒一扒量子机器人的前世今生,以及未来的发展前景。下图是剧中的“坏doctor”的量子计算机大脑。

一、量子计算的时代与社会分析

以问题为导向来开展这一小节的叙述。question1:量子计算机目前的发展状况如何?;question2:量子计算机有什么实用价值?;question3:量子计算机应该如何实现(以大规模的应用为目标)?;

1、量子计算机目前的发展状况如何?

史蒂芬·威斯纳在1969年最早提出“基于量子力学的计算设备”。而关于“基于量子力学的信息处理”的最早文章则是由亚历山大·豪勒夫(1973)、帕帕拉维斯基(1975)、罗马·印戈登(1976)和尤里·马尼(1980)年发表。史蒂芬·威斯纳的文章发表于1983年。1980年代一系列的研究使得量子计算机的理论变得丰富起来。1982年,理查德·费曼在一个著名的演讲中提出利用量子体系实现通用计算的想法。紧接着1985年大卫·杜斯提出了量子图灵机模型。人们研究量子计算机最初很重要的一个出发点是探索通用计算机的计算极限。当使用计算机模拟量子现象时,因为庞大的希尔伯特空间而数据量也变得庞大。一个完好的模拟所需的运算时间则变得相当可观,甚至是不切实际的天文数字。理查德·费曼当时就想到如果用量子系统所构成的计算机来模拟量子现象则运算时间可大幅度减少,从而量子计算机的概念诞生。

尽管量子计算机实用化依旧遥远,但业界普遍对此持乐观态度,这从行业巨头在量子计算机方面的“军备竞赛”就可见一斑。例如,1994年,贝尔实验室的专家彼得·秀尔(Peter Shor)证明量子计算机能做出离散对数运算,而且速度远胜传统电脑。;2011年5月11日,加拿大的D-Wave 系统公司发布了一款号称“全球第一款商用型量子计算机”的计算设备“D-Wave One”;2013年5月,谷歌和NASA在加利福尼亚的量子人工智能实验室发布D-Wave Two;2016年5月份,IBM的科学家首次将该公司的量子计算机接入云端服务向大众公开……

一方面,摩尔定律成功指导了计算机行业的发展,但依照目前行业的实际情况来看这个定律很有可能在未来十到十五年内失效(始终遵循这个周期的Intel如今把时间延长到了2.5年)。另一方面,芯片生产存在物理上的基本限制。当晶体管集成度越来越高,越来越小的纳米级晶体管容易出现量子力学中的隧道效应(quantumtunneling),电子从源极穿到漏极,导致电流泄露,芯片无法工作。于是部分研究人员纷纷将眼光瞄向量子计算机。因为传统比特位(bit)的状态非0即1,n bits的经典计算机只能一次运算2^n个数中的一个;而量子比特位(qubit)却可以处于0和1的叠加态(superposition),2 qubits就可以叠加出4种态 00 01
10 11,以此类推,n qubits就可以一次性同时运算2^n个数。位数越多,量子计算的速度相较于经典计算机的速度会呈指数级增长。

2、量子计算机有什么实用价值?

商业级量子计算机会成为未来科技的引擎。就像蒸汽机是工业文明的象征一样,量子计算机带来的计算能力突破将会有类似的意义,他是人类跨过那7nm鸿沟的桥梁。

人工智能

D-Wave的董事会成员Rose认为:“最近在认知科学上已经取得进展,让我们可以在工程系统中尝试模仿人类的学习方式。为建造表现和模仿人类智能的工程系统服务。那种智能不仅仅是说做事情更快,而且还要模仿人类的创造力、判断力等。我相信这是有史以来第一次理解如何做这件事情的框架已经就绪,我相信我们的系统非常适合突破此类问题的瓶颈。”跟定义传统计算业增长速度的摩尔定律一样,罗斯定律(量子领域的摩尔定律)意味着量子计算机的计算能力会有更加强悍的指数级增长。而这种增长速度对于人工智能、医疗、互联网搜索等领域的意义十分重大。

加密与解密

自1994年彼得·秀尔(Peter Shor)提出量子质因数分解算法后,其对于现在通行于银行及网络等处的RSA加密算法可以造成威胁。因此用来做大数因子分解的量子算法Shor’s
algorithm,在一台拥有足够量子位并且量子位能够不受环境能量干扰的量子计算机上,它可以破解目前的RSA公共密钥加密系统。然而技术往往具有两面性,一方面量子技术的应用会使普通密码不攻自破,另一方面,基于量子技术的量子密钥分配技术使密码安全性有了质的飞跃。因为在量子计算机的运行过程中,量子必须始终处于封闭空间(现在我理解了在第十二集剧中为什么菲兹在打开“量子大脑”时,会对机器人产生不可逆的损害),一但打开就会使外部能量干扰了量子态,量子干涉就会被破坏,那你观察到的量子数据就会变成一坨乱码,窃听也会留下量子测量痕迹。不仅无法窃取,截获也不太可能。因为量子不可克隆定理决定了任何复制都得不到一模一样的量子态。基于这些特性,保证了量子密码的完整性与唯一性等。

其他领域——不熟悉,不敢臆测

3、量子计算机应该如何实现?

量子计算机的商业化现在看起来还是满有难度的。一方面现在的量子计算机最有可能的实现方式是超导,但是超导目前位置做到的最高温度也没有到达200K。另外量子算法也还是蛮复杂的,涉及到很多物理方面的知识,而现在的程序员呢有一个新方向,那就是大数据。

以D-Wave的Qbsolv为例。使用者不需要具备专业量子物理知识也可以给D-Wave量子计算机编程,这使得开发和使用量子计算机的门槛大大降低。因此不妨设想一下,一个由超级计算机与量子计算机的混合系统,这或许就是将来商业计算的一种模式,另外就编程语言而言,当前有一些类似C语言或者C++的量子计算语言已经被开发出来。但是当前基于冯诺依曼架构的量子计算机已经得到实现,应该会有类似的底层驱动之类的东西。

二、量子编程

随着量子计算机的发展,量子编程这个“互补品”也越来越受到关注。目前有以D-Wave的Qbsolv为代表的图像化的操作界面。以及命令式编程的QCL,函数式编程的Quipper。QCL的语法和C相似,让传统程序员可以用一种熟悉的形式来给量子计算机编程。最基本数据类型是qureg,类似于队列。QCL支持用户自定义操作符和函数。Quipper在函数式编程语言里算是最新成员,是一种嵌入式语言,宿主语言为Haskell。由于QCL编译器用的是qlib仿真库,所以程序在运行中的qubit量子态可以被看到,但这在真正的量子计算机上是不可能的,只能在模拟器上可以实现。总之如果你考虑开始为量子编程做准备,初级的软件和语言都是有的。如果为了科研目的,那么效率至上,用这些现成的软件和语言就够了。但如果你为了未来的新计算时代做准备,那么学习量子编程和经典编程不同,除了软件和语言以外,最好先了解量子物理和量子计算的原理。(本人才疏学浅,还未有深刻的了解,就退下啦~)

参考文献:

【1】WIKI百科——量子计算机

【2】给IBM的黑科技跪了:量子计算机强势来袭!

【3】你有没有考虑过为量子编程做准备?

【4】如果量子计算机大规模应用后 现有的编程语言会有什么下场 ?诞生量子处理器专用语言?量子处理器能否小型化?

【5】谷歌量子计算机,为什么会加速 AI 竞赛?

【6】D-Wave量子计算机有可能引爆人工智能革命吗?

Tagged , ,

正则化处理

在机器学习中最大的危险就是过拟合,为了解决过拟合问题,通常有两种办法,第一是减少样本的特征(即维度),第二就是我们这里要说的“正则化”(又称为“惩罚”,penalty)。

从多项式变换和线性回归说起
在非线性变换小节中,我们有讨论Q次多项式变换的定义和其包含关系,这里如果是10次多项式变换,那么系数的个数是11个,而2次多项式的系数个数是3。从中我们可以看出,所有的2次多项式其实是10次多项式加上一些限制,即w3=w4=…=w10=0。

基于上面的讨论,我们希望能将二次多项式表示成十次多项式再加上一些约束条件,这一步的目的是希望能拓宽一下视野,在推导后面的问题的时候能容易一些。

这个过程,我们首先要将二次多项式的系数w拓展到11维空间,加上w3=w4=…=w10=0这个条件得到假设集合H2;然后为了进一步化简,我们可以将这个条件设置的宽松一点,即任意的8个wi为0,只要其中有三个系数不为0就行,得到一组新的假设空间H2’,但这个问题的求解是一个NP-hard的问题,还需要我们修正一下;最后,我们还需要将这个约束条件进一步修正一下得到假设集合H(C),给系数的平方的加和指定一个上限,这个假设集合H(C)和H2’是有重合部分的,但不相等。
最后,我们把H(C)所代表的假设集合称为正则化的假设集合。
下图表示了这个约束条件的变化:

正则化的回归问题的矩阵形式

由上图所示,我们现在要求解的是在一定约束条件下求解最佳化问题,求解这个问题可以用下面的图形来描述。

本来要求解Ein的梯度,相当于在一个椭圆蓝色圈中求解梯度为零的点,而下面这个图表示,系数w在半径是根号C的红色球里面(w需要满足的约束条件),求解蓝色区域使得梯度最小的点。

那么,最优解发生在梯度的反方向和w的法向量是平行的,即梯度在限制条件下不能再减小。我们可以用拉格朗日乘数的方法来求解这个w。

Ridge Regression
Ridge Regression是利用线性回归的矩阵形式来求解方程,得到最佳解。

Augmented Error
我们要求解这个梯度加上w等于0的问题,等同于求解最小的Augmented Error,其中wTw这项被称为regularizer(正则项)。我们通过求解Augmented Error,Eaug(w)来得到回归的系数Wreg。这其实就是说,如果没有正则项的时候(λ=0),我们是求解最小的Ein问题,而现在有了一个正则项(λ>0),那么就是求解最小的Eaug的问题了。

不同的λ造成的结果

从上图可以看出,当λ=0的时候就会发生过拟合的问题,当λ很小时(λ=0.0001),结果很接近理想的情况,如果λ很大(λ=1),会发生欠拟合的现象。所以加一点正则化(λ很小)就可以做到效果很好。

正则化和VC理论
我们要解一个受限的训练误差Ein的问题,我们将这个问题简化成Augmented Error的问题来求解最小的Eaug。

原始的问题对应的是VC的保证是Eout要比Ein加上复杂度的惩罚项(penalty of complexity)要小。而求解Eaug是间接地做到VC Bound,并没有真正的限制在H(C)中。

wTw可以看成是一个假设的复杂度,而VC Bound的Ω(H)代表的是整个假设集合有多么的复杂(或者说有多少种选择)。

这两个问题都好像是计算一个问题的复杂度,我们该怎么联系着两种复杂度的表示方式呢?其理解是,一个单独的很复杂的多项式可以看做在一类很复杂的假设集合中,所以Eaug可以看做是Eout的一个代理人(proxy),这其实是我们运用一个比原来的Ein更好一点点代理人Eaug来贴近好的Eout。

一般性的正则项
L1 Regularizer
L1 Regularizer是用w的一范数来算,该形式是凸函数,但不是处处可微分的,所以它的最佳化问题会相对难解一些。

L1 Regularizer的最佳解常常出现在顶点上(顶点上的w只有很少的元素是非零的,所以也被称为稀疏解sparse solution),这样在计算过程中会比较快。

L2 Regularizer
L2 Regularizer是凸函数,平滑可微分,所以其最佳化问题是好求解的。

最优的λ
噪声越多,λ应该越大。由于噪声是未知的,所以做选择很重要,我将在下一小节中继续接受有关参数λ选择的问题。

总结
过拟合表现在训练数据上的误差非常小,而在测试数据上误差反而增大。其原因一般是模型过于复杂,过分得去拟合数据的噪声和异常点。正则化则是对模型参数添加先验,使得模型复杂度较小,对于噪声以及outliers的输入扰动相对较小。

正则化符合奥卡姆剃刀原理,在所有可能选择的模型,能够很好的解释已知数据并且十分简单才是最好的模型,也就是应该选择的模型。从贝叶斯估计的角度看,正则化项对应于模型的先验概率,可以假设复杂的模型有较小的先验概率,简单的模型有较大的先验概率。

参考资料
机器学习中的范数规则化之(一)L0、L1与L2范数
http://blog.csdn.net/zouxy09/article/details/24971995

机器学习中的范数规则化之(二)核范数与规则项参数选择
http://blog.csdn.net/zouxy09/article/details/24972869

作者Jason Ding
http://blog.csdn.net/jasonding1354/article/details/44006935#comments

Tagged ,

关于NLTK机器翻译(MT)的babelizer无法使用原因

问题说明:

在《使用python进行自然语言处理》2009 年六月:第一版 47页中有如下图片的内容:

可能图片不是很清晰,简单来说就是使用babelizer来做机器翻译。但是按照作者的代码,出现如下错误:

解决问题:

      1、问度娘——度娘冲着我摆摆手,跟我说,我这里都是一堆复制粘贴的帖子,对你没有帮助,建议你去google一下。
      2、google:nltk babelizer can’t work。排名第一的是:python – babelize_shell() not working – Stack Overflow,下面是问题的回答。

根据回答可知nltk已经裁掉了babelizer翻译模块。不过有大神在讨论移植babelizer,使用google translate api、microsoft translate api 、yahoo translate api具体详情可以参考NLTK github关于这个问题的链接:https://github.com/nltk/nltk/issues/265

Tagged , ,