要看你讲的是什么代码。像我们做数据分析的话,用R写数据分析也是代码,这个有很多年了。但是要和社交媒体相关的话,差不多我来这边工作第一年就开始学,当时是为了写Information, Communication Society那个文章[1]而开始学习。写Python代码就是为了研究微博和中国集体行动两者关系这个问题,当时把用户的微博抓取下来以后,建构一个社会网络,再做社会网络分析。我当时也是基本上从零开始学语言,收集线上数据,有大半个学期集中学了一下。
学代码的过程总归是越来越容易。很多时候,所有的编程都有类似一个思路,只是句法不一样,所以如果你学过编程,对整个编程有一个整体的了解。然后你再来写这个代码就会简单很多,所以基本上说,学语言这个东西,开始学总归是痛苦的。越学越简单。
引擎:其实像这种技术或者代码应用现在越来越广了,但是本科教育阶段我们不是很强调这方面的,你是怎么看这个现象和学习代码的意义?不同学科有它的分工,所有的学科都教写代码也不现实。但从另一个角度来说,现在社交媒体这么发达,编程本身非常重要,那么学习也就很重要。不管未来从事研究工作还是就业,都非常鼓励大家学一点相关的技能,这种技能对未来发展可能也很重要。我们在下个学期我们会开一个“互联网与社会”的课,下学期会增加一些跟编程有关的,比如自然语言处理,非结构化数据存储分析等等,社会网络分析可能会涉及到。
增加这些内容的意义是什么?第一,如果你要研究这个社交媒体的话,这个是绕不开的。第二个也是非常鼓励我们的学生去学习代码。随着外部社会环境变化的时候,我们的研究对象和研究的手段工具都需要跟着变化。虽然我们也不知道以后会发展什么样,但是我们需要往这个方面去探索,可能有一天,这样一种基于文本的分析会成为社会科学的一个很重要研究路径。如果那时候零基础零准备的话,那我们就会落后源码,所以我们现在是先做起来。当然,基于大数据和社交媒体的研究也可能是一个“不归之路”。但是不管怎样,我还是愿意用一个更加积极的角度来看,所以我们先做好准备。
第三个方面的考虑,有关互联网的问题现在也会有很多计算机学科背景的人来做。我们最近在开全国社会媒体处理大会(Social Media Processing,下简称SMP),跟计算机的一些同仁去交流经验。我们会发现他们在技术上非常成熟,但是他们的技术用来解决我们社会科学,或者社会学的一些问题的话,还是蛮大的缺口(gap)。这个缺口在于源码,我们做社会学的和他们所关心的问题互不相同。我们直接把我们的问题提出来,要他们处理,他们现有的工具是处理不了的。但是他们会跟你说,他们的东西如果根据研究问题做一些调整,可能能用。所以问题就在于说,如果我们不参与,不交流他们永远不会做这个调整。
比如,他们在做一些情感分析的时候会做一些正情感,负情感,好评、差评的评估。如果你在商业应用里面,比如这个餐馆是好评还是差评,算一下评论多少好评就够了,但对我们来说,其实问题要更复杂。比如现在我们要研究一个政治态度,有多少是民族主义,多少民粹主义,多少是爱国主义,有多少是打酱油的。你会发现,这样的一个东西,粗粗听上去跟他们正负蛮类似的,但是你就是找不到一些最起码中文上现有的工具直接拿来可以用。
所以我们也希望在技术这个方面一定要有一些社会科学的人参与进来,看看理工科有哪些工具,做到什么程度?有哪些是不能做,我们更好地跟他们交流,说我们觉得哪些东西做好,哪些东西是我们想要的技术研发上还没有提供。通过这个交流的话,我们希望能够促进这个交叉学科。也是为以后有更多,能够成为现成的工具包能发展出来。所以必须有这样的人去做这样的事。