时事激发了思想实验
前几天,我在新闻中看到一个标题,称一名教授因使用人工智能撰写期末论文而让班上一半的学生不及格。 事实证明,标题比实际故事更令人兴奋:讽刺的是,这位教授在检测人工智能的使用过程中滥用了人工智能。 不管怎样,这让我开始思考,JMP 能否确定谁写了一段文本——对于不太了解文本分析的人来说,它能做到这一点吗? 事实证明 JMP Pro 可以,如下图所示:

获取文本进行分析
由于我无法获得大量学生论文,因此我使用了古腾堡计划,其中托管版权已过期的书籍。 我选择了五位作者的六本书作为候选书:
- F·斯科特·菲茨杰拉德的《了不起的盖茨比》
- 赫尔曼·梅尔维尔的《白鲸》
- 玛丽·雪莱的《弗兰肯斯坦》
- 杰克·伦敦的《野性的呼唤》
- 奥斯卡·王尔德的《道林·格雷的画像》
- 奥斯卡·王尔德的《认真的重要性》
这些书都是由美国或英国作家写的,其原始语言是英语。 我做出这个选择是因为我不想因为不小心选择了同一个人的译者的书而毁了事情。
导入和清理
导入文本很简单:只需将所有书籍作为单独的文本文件放在一个文件夹中,然后使用多文件导入工具,如下图所示。 我确保选择了为文件名添加一列、每行添加一行以及堆叠类似文件的选项。 最终结果是一张包含大约 53,000 行的数据表。

数据清理涉及删除每本书开头的空白行和标题信息,以及为每本书的作者创建列名称。 为此,我严重依赖内置公式列,尤其是“第一个单词”公式列。 我附上了最终数据文件的副本,名为 Cleaned Text.jmp,因此任何阅读的人都应该能够跟踪分析。
运行分析
要进行分析,请选择“分析...文本资源管理器”,然后将“文本”和“文件名”列放置在对话框中,如下图所示。 将所有其他选项保留为默认值;选择“确定”继续。

接下来,从文本浏览器的红色三角形菜单中,选择判别分析,然后在显示的第一个对话框中选择作者列,告诉 JMP Pro 您想要确定每行的作者。 请注意,文本判别分析仅在 JMP Pro 中可用。

单击第二个对话框中的“确定”(如下图所示)接受默认值并开始分析。 此步骤可能需要大约一分钟左右才能完成,因为 JMP 在后台进行数学运算。

初步结果到最终结果
在分类摘要部分,一开始情况看起来不太乐观——模型对 64.5% 的线进行了错误分类。 但请记住,每一行最多是 80 个字符的文本,而每本书都有数千行。 我们需要一种纵观全局的方法,其中包括花时间研究错误分类率部分下方的预测率表。

右键单击“预测速率”表并选择“生成数据表”,然后快速堆叠数据表,创建如下图所示的表(并附加为“分类摘要 - Stacked.jmp”)。

使用 Graph Builder,预测作者与作者的热图显示,每个作者的最高预测都是正确的,但右上角的奥斯卡·王尔德 (Oscar Wilde) 除外。 这很好,但并不完美。

另一个有用的平台是分析...多元方法...多重对应分析。 如下所示运行它会创建一个非常有用的图表,该图表显示预测作者与实际作者非常接近。 奥斯卡·王尔德的预测再一次不像其他人那样接近,但足够接近,足以做出正确的决定。


结论和进一步的思考
虽然判别分析工具一开始似乎并没有清楚地预测每本书的作者是谁,但对输出的进一步探索显示出更有希望的结果:无需了解文本浏览器或判别分析中的选项,JMP Pro能够对每本书的作者做出很好的预测。奥斯卡·王尔德的预测的不确定性比其他预测稍大一些,但可能是由于:
- 数据集中有他的两本书。
- 只需接受默认设置 - 也许可以调整模型,或者
- 《认真的重要性》是戏剧而不是小说,这是我分析之后才发现的。
我的猜测是选项C就是原因。 与其他作者和其他样书一起重复这个实验可能会很有趣。 如果您重新运行实验,我对您得到的任何结果感兴趣。 请在评论中发布你的结果!
这很有趣,杰德。由于“Wilde”文件的大小比其他文件小,我想知道这是否可以解释预测准确性稍差的原因。样本越大,预测越好?再说一遍,这非常酷。使用这个方法,你可能会揭穿代笔作家的真面目!
@chuck_boiler这绝对是有可能的。 我认为更大的因素是《认真的重要性》是一部戏剧,这意味着它的写作风格与其他所有作品有很大不同。 事实上,当我想得更多时,这种搭配更令人印象深刻,因为它跨越了流派。