用Python进行语言指纹识别

Python语言指纹识别

使用标点热图归因作者

黄色调中的单一法医指纹,带有蓝色分号(图片由DALL-E2和作者提供)

文体学是通过计算机文本分析对文学风格进行定量研究的学科。它基于这样一个观点,即我们在写作中都有独特、一致且可辨识的风格。这包括我们的词汇、标点符号的使用、我们词语和句子的平均长度等等。

文体学的一个典型应用是作者归因。这是识别文档作者的过程,比如在调查抄袭或解决历史文档起源争议时。

在这个快速成功的数据科学项目中,我们将使用Python、seaborn和自然语言处理工具包(NLTK)来查看亚瑟·柯南·道尔是否在他的小说《失落的世界》中留下了一个语言指纹。更具体地说,我们将使用分号来确定是亚瑟·柯南·道尔还是他的同时代人H.G.威尔斯更有可能是该书的作者。

猎犬、战争和失落的世界

亚瑟·柯南·道尔(1859–1930)以福尔摩斯系列故事而闻名。H.G.威尔斯(1866–1946)则以几部开创性的科幻小说而著名,比如《隐形人》。

1912年,《连环杂志》发表了《失落的世界》,这是一部科幻小说的连载版本。尽管其作者已知,但让我们假设这是有争议的,我们的工作就是解开这个谜团。专家已经将候选人缩小到两位作者:道尔和威尔斯。威尔斯稍微占优势,因为《失落的世界》是一部科幻作品,其中包含类似于他1895年的作品《时间机器》中的穴居人。

为了解决这个问题,我们需要每位作者的代表作品。对于道尔,我们将使用1901年出版的《巴斯克维尔的猎犬》。对于威尔斯,我们将使用1898年出版的《世界大战》。

对我们来说,幸运的是,这三部小说都属于公共领域,并且可以通过Project Gutenberg获得。为了方便起见,我已经将它们下载到了这个Gist中,并去除了许可信息。

流程

作者归因需要应用自然语言处理(NLP)。NLP是一种…