19

让我们想象一下,我有两篇由同一个人写的英文文本。是否可以应用一些马尔可夫链算法来分析每个:根据统计数据创建某种指纹,并比较从不同文本中获得的指纹?假设我们有一个包含 100 个文本的库。有些人写了第 1 个文本,还有一些人也写了其他文本,我们需要通过分析他/她的写作风格来猜测是哪一个。有没有已知的算法可以做到这一点?马尔可夫链可以在这里应用吗?

4

2 回答 2

18

绝对有可能,而且确实在给定文本或部分文本的情况下成功识别作者的记录令人印象深刻。

一些有代表性的研究(警告:链接指向 pdf 文件):

为了帮助您进行网络搜索,这门学科通常称为Stylometry(有时也称为Stylogenetics)。

所以我想两个最重要的问题是:哪些分类器对此有用,哪些数据被馈送到分类器?

我仍然感到惊讶的是,实现非常准确的分类只需要很少的数据。通常数据只是一个词频列表。(这里有一个词频列表目录。)

例如,在机器学习中广泛使用的一个数据集可以从网络上的许多地方获得,它由来自四位作者的数据组成:莎士比亚、简奥斯汀、杰克伦敦、米尔顿。这些作品分为 872 篇(大致对应于章节),换句话说,四位作者中的每一位都有大约 220 篇不同的实质性文本;这些片段中的每一个都成为数据集中的单个数据点。接下来对每个文本进行词频扫描,并使用 70 个最常见的词进行研究,频率扫描的其余结果被丢弃。这是 70 个单词列表中的前 20 个。

['a', 'all', 'also', 'an', 'and', 'any', 'are', 'as', 'at', 'be', 'been',
  'but', 'by', 'can', 'do', 'down', 'even', 'every', 'for', 'from'] 

然后,每个数据点只是 872 章中每章 70 个单词中每个单词的计数。

[78, 34, 21, 45, 76, 9, 23, 12, 43, 54, 110, 21, 45, 59, 87, 59, 34, 104, 93, 40]

这些数据点中的每一个都是作者文学指纹的一个实例。

每个数据点中的最后一项是一个整数 (1-4),代表该文本所属的四个作者之一。

最近,我通过一个简单的无监督 ML 算法运行了这个数据集;结果非常好——几乎完全分离了四个类,你可以在我对 StackOverflow 上一个 Q 的回答中看到,它通常与使用 ML 的文本分类相关,而不是作者识别。

那么使用了哪些其他算法呢?显然,监督类别中的大多数机器学习算法都可以成功解决此类数据。其中,经常使用多层感知器(MLP,又名神经网络)(使用神经网络的作者归因是这样一项经常被引用的研究)。

于 2011-01-28T11:45:49.533 回答
1

您可以从访问Apache Mahout网站开始。有大量关于分类和聚类的文献。本质上,您想运行一个聚类算法,然后希望“哪个作者”确定聚类。

于 2011-01-22T23:30:58.110 回答