部分转发某语丝帖子一个:对XX作品进行作者身份识别的科学方法   作者 龙哥

为了不参与任何关于某个SB的讨论,删掉部分内容,向原作者致歉。

……

一、作者身份的谜团

  由于种种原因,历史上很多文章或作品的作者身份留下了疑云,比如一直存
疑的莎士比亚的某些作品、《红楼梦》后四十回、《静静的顿河》的作者等。在
缺乏充足历史证据的前提下,文本分析就成为识别作者真实身份的有力工具。

  一个著名的案例是英国的“朱尼厄斯信件”。1769-1771年间,伦敦的报社
陆续收到署名朱尼厄斯的一系列信件,对英国内阁和君王乔治三世进行了激烈的
批评。报纸刊出这些信件后引起了较大的反响,但没有人知道这个朱尼厄斯是谁。
从信件中的信息来看,这个人应该是内阁成员,并且是持不同政见的内阁成员。
文体学家仔细分析后,确定以“朱尼厄斯”经常重复的词和短语作为统计对象,
制作出一个“朱尼厄斯词语表”。然后将持不同政见的内阁成员作为比较对象,
发现菲利普男爵的文体风格与“朱尼厄斯词语表”高度重合,因此菲利普男爵被
认为就是朱尼厄斯。虽然词汇分析的结果并不是直接证据,但得出的结论却显示
出作者身份的最大可能性指向。

  完成于16世纪末期的《The Reign of Edward III》是一部表现骑士精神的
剧作,作者到底为何人是英国戏剧界的谜团之一,并为此争论了几百年。伦敦大
学的Brian Vickers教授使用软件对比了《The Reign of Edward III》和莎士比
亚的其它作品。在《The Reign of Edward III》中检测出了200个能匹配莎士比
亚其它作品的字符串,通常两个不同作者的作品只能找到20个匹配的字符串。结
论显示该作品的真实作者是莎士比亚,是他的早期作品。Vickers教授认为作家
惯于重复使用相同的短语或隐喻,莎剧专家认为,作品所表现出的深刻人性、博
大精神和文辞语言的华丽,无可辩驳地是莎士比亚的文字。

  这种分析方法是基于作品风格的相对一致性、语言特点的统一性,也就是说,
作家在运用词汇、句式、音律、辞格等语言材料时有鲜明的个人色彩,在表达方
法上也存在着一定的个人特征。量化统计会发现明确的数量关系,并通过对比得
出最为接近事实的结果。

  二、留在文字中的作者“指纹”

  每个人都有自己独特行为特征,是一个人的基本属性并往往形成个性化的行
为定势。一个人的行为特征基于个体的客观条件、环境和习惯,具有一定的规律
性。文字表达的规律性属于行为特征的一部分,其客观基础是一个人的知识结构、
生活背景、思维方式、文字能力和表达习惯等,同样具有显著的个性化和定势。
在一个人的文字中,这样的规律性特征就是作者留下的“指纹”。以数理统计方
法进行的文本分析可以识别出这些“指纹”,并揭示作者的文字表达规律,为作
者身份的识别提供量化的有力证据。

  语言和文字是最能体现作者个性的特征,作者在写作时对于词和句的运用、
配置必须进行选择,从而形成自己的风格特征。不同的作者存在着明显的差别,
而作者自己则往往又意识不到。真正的模仿是很难的,除非全面掌握了文本特征
的数量关系。如果文学作品的语言结构的种种数量关系得以精确测定,准确识别
作者身份的概率就相当大。

  根据文体风格识别作者身份是一个应用广泛的研究领域, 关键问题是从作品
中提取出代表文体风格的识别特征。对这些特征进行精确的数量统计,并对比不
同作品之间的风格相似程度。文体特征可以分为词汇特征、语法特征、修辞特征、
虚字特征、标点符号及排版特征等基本单位。

  词汇特征包括词条、单词和短语,在同一个作者的作品中通常表现为规律性
的出现频率。比如词汇丰富性度量、特色词和罕见词的比例等,也包括声调和韵
律分布等。也可以选择更全面的词汇,如形容词、连词、副词、感叹词、成语、
习语、数词、名词、拟声词、介词、量词、代词、助词、动词、语气词等。

  语法特征包括句子长度、被动态使用频率、特征句式的分布等句型特点。例
如修饰语是形容词性的、定语性的、短语性的还是分句性的。

  修辞特征涉及辞格的运用,如隐喻或词序变化、倒装以及其他强调的方式等。

  虚字特征通常与作者造句时的心性吻合, 自然流露出写作个性。如句尾虚字、
白话虚字、文言虚字、转折虚字等。

  标点符号特征主要指标点符号的使用频率。

  排版特征包括段落长度、行首空格等。

  从修辞学角度来说,文学作品所展现的雄壮、婉约等风格正是由于作品中包
含不同概率的特定词汇造成的。其他影响作品风格的语言特点如句式、音律、辞
格等也能够体现出作者写作的风格。

  其中标点符号的使用频率、功能词频数、特色词汇分布和句子长度等特征受
到了广泛的认同。这些特征反映了作者的词汇和句法特点,体现了作者组织句子
的习惯,与文章描述的内容,讨论的主题无关。

  三、识别作者“指纹”的科学方法

  二十世纪的科技革命促使社会科学领域内发生了方法论的变革, 并引发了科
学一体化的趋势,这对于文学研究大有裨益。传统的文学研究仅限于定性分析,
而系统科学为人文学科提供了数学模型和思维程序。借助统计学及定量分析等科
学方法, 文学研究也逐渐显露出精确化与工程化的趋势

  随着数学方法与计算机技术的普遍应用,计算文体学或计算风格学
(Computational Stylistics)应运而生。也即建立文本信息的数量关系统计模
型,从数量关系上把握作者的文体特征。作者的写作风格可以通过其作品的统计
特征上表现出来, 换句话说, 文体风格可以在数量上有所体现, 是可以量化的。
而文体风格是一个作者区别于其他作者的本质特征。

  由于计算机技术的发展,大规模的文学作品精确定量统计分析成为可能。抽
取文本特征并统计后与特定对象进行比对,包括简单模板匹配法、朴素贝叶斯法、
贝叶斯网络法、K最近邻法方法、多层感知器法和序贯最小优化法
等。一个理想
的作品风格识别模型应该能够排除干扰,得出最接近事实的结论。理论上,如果
特征抽取有足够的代表性,两部作品是否为同一作者的结论是非常具有说服力的。

转某语丝帖子:“人文社会科学”不是科学

“人文社会科学”不是科学
  ——一次同学网络聚会上的发言

  作者:后悔读史

  所以要提衣俊卿与女博士后的故事给大家听,并不是为了那些八卦,而是该
文通过一位女性细腻的笔触揭露那些我一直怀疑而又无法求证、却天天发生在学
界的肮脏交易。我对常艳女士所披露的国家基金项目评审、国家级奖项评审中打
招呼的事耳有所闻却未曾亲睹,现在这些事情得到了证实。

  如果认为我想佐证上述这些舞弊行为并把它讲给大家仅仅是为了让那些在学
界混饭的同学不要“太天真”,或者为了让那些不在学界混饭的同学知道“学术”
既不干净也不崇高——那是过低的理解了我的初衷。

  我真正想说的是:千万不要让自己的孩子再读文科。孟夫子有言“术不可不
慎”,大众化的语言就是“男怕选错行”。因为学文科必然要在“人文社会科学”
领域混。我用十二年的时间(从2000年读历史学研究生开始)明白了一个道理:
人文社会科学不是科学,它缺乏“科学成立”的许多要件,比如严密的逻辑、供
共同体内交流的专业并固化的表述语言、可证伪的学术途径等等,套用一句俗语
——缺乏共同体范式。那么,我们经常称道的历史学、政治学、哲学等到底是什
么呢?它们仅仅是一些散在的知识群团,而不是一个严整的科学体系,所以是
“非科学”。我怀疑,只有经济学、社会学和语言学才具有一定的科学性,姑且
称为“半科学”。

  有了上述理论前设并在其烛照之下,我们才能对“人文社会科学界”频频发
生的舞弊事件有正确的认识,即我们不能纠结于某些掌控学术资源的人或团体的
人性劣根,而应该深刻的认识到,由于“人文社会科学”先在的病理不足,而使
得从业共同体的正能量不能在学术前行的路上得到释放,难免会走旁门左道。换
句话讲,“人文社会科学” 界鱼龙混杂,而又缺乏基本的学术评价标准,这自
然会走向邪路。

  最后,我想用大家都熟知的丘成桐证明卡拉比猜想的故事来说明这个道理。
1977年,28岁的丘成桐证明了卡拉比猜想(在封闭的空间,存在没有物质分布的
引力场)。而此前,他曾宣称自己找到了证明卡拉比猜想错误的方法。随即,收
到了来自卡拉比的亲笔信,卡拉比教授在信中指出,用他所说的方法无法证明卡
拉比猜想的错误之处,希望丘成桐证明给他看。丘成桐承认了自己的错误,并最
终证明了卡拉彼猜想是正确的。

  大家熟知,在“人文社会科学”界,这样的事情不会发生,而相反,我们会
看到太多各持己见、没有意义的争论。之所以正误难判,归根到底还是因为“人
文社会科学”本就不是科学。

吴金闪注:计算语言学、博弈论理论与实验,甚至更多的社会科学领域,只要其工作方法是:观察与实验->模型、假设->可计算、可操作、可测量的理论(退到底线,我们要求一个理论是可证伪的——也就是说这个理论不成立则得到的理论结果与实验和观察不符)->实验,则仍然是科学。作为一个正面的例子,可以参考这个关于计算文体学的帖子。当然,按照这个要求,大多数“人文社会科学”的工作,确实是垃圾。不过,不能表明“人文社会科学”是垃圾,将来还是有希望科学化的。对于问為什麼要科学化的人,不要理我,我推荐你冻几块豆腐,随时用。

招学生的要求

  • 对学术研究的浓厚兴趣,混毕业的不要找我
  • 勤奋或者聪明,要占一条
  • 做一个有良心的科学家的愿望
  • 反应慢点,不是很sharp没关系,有点悟性

我认为一个好的科学家的影响因素

  • 对研究生活的兴趣,对研究对象的兴趣
  • 悟性,看到事物之间联系的广度与深度,思维习惯
  • 勤奋的程度,看文献,想问题,坐板凳的时间
  • 知识涉猎的多少,内化(随时想得到的,想起来用的)的知识的多少
  • 技能技术了解的多少,内化技能的多少
  • 聪明,花招,技巧

服务器上安装的软件

系统:Ubuntu 12.04LTS 64位 英语
语言:C (gcc), C++(g++),Fortran (gfortran), python, perl, linux-shell, make, install
科学计算工具包:Python-numpy, Python-scipy, Python-matplotlib, networksX, Python-setuptools, igraph, fftw, xdms2, gsl, r, blas, lapack, atlas, petsc, slepc, gnuplot, sprng2
并行计算:openmpi, mpich2 (mpiexec)
其他:latex, latex-cjk
大部分软件有两个版本,系统自带的,从源程序编译以后安装在/opt/目录下的。

注意:多核心并行运算必须用/opt/mpich2/bin/mpiexec,不能用系统默认的mpiexec。后者实际上是多核心重复计算。

需要高质量随机数的话,可以考虑用sprng2,一般情况gsl也基本够用。

线性代数:BLAS, lapack, atlas单核心;Petsc, Slepc并行
科学计算(积分、插值、特殊函数、随机数):gsl
傅立叶变换:fftw
网络:networkX, igraph

Linux下通常库函数的用法:已经安装在标准库函数的工具,直接引用头文件,然后编译的时候加一个相应的-lXXX,其中XXX为库的名字;安装在特定位置的软件包含用户在自己目录下安装的软件,需要-I头文件地址,-L库函数地址。

如果需要查看某一个软件包的编译参数,可以利用pkg-config命令,例如:
pkg-config –libs –cflags igraph