时事激发了一个思想实验:
前几天我在新闻中看到一个标题,说一位教授因为使用 AI 写期末论文而让班上一半的学生不及格。 事实证明,标题比实际故事更令人兴奋:具有讽刺意味的是,教授滥用 AI 来检测 AI 的使用。 无论如何,这让我开始思考:JMP 能否确定文本正文的作者,它能否为不太了解文本分析的人执行此操作? 事实证明,JMP Pro 可以,如下图所示:

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

数据清理包括删除每本书开头的空白行和标题信息,以及为每本书的作者创建一个列名。 为此,我非常依赖内置公式列,尤其是第一个单词公式列。 我附上了一份最终数据文件的副本作为 Cleaned Text.jmp,因此阅读的任何人都应该能够理解分析。
运行分析:
要进行分析,请选择 Analyze...Text Explorer,然后将 Text 和 File Name 列放入对话框中,如下图所示。 将所有其他选项保留为默认值,然后选择确定继续。

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

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

初步结果到最终结果:
在“分类摘要”部分,起初看起来不太乐观 — 该模型错误分类了 64.5% 的线。 但请记住,每行最多是 80 个字符的文本,而每本书都是数千行。 我们需要一种查看全局的方法,这涉及花时间查看误分类率部分下方的预测率表。

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

使用图形生成器,预测作者与作者的热图显示每个作者的最高预测是正确的,但右上角的 Oscar Wilde 除外。 这很好,但并不完美。

另一个可以在这里提供帮助的平台是分析...多变量方法...多重对应分析。 如下所示运行它会创建一个非常有用的图表,它表明预测作者非常接近实际作者。 奥斯卡王尔德再一次不像其他人那样接近预测,但它足够接近做出一个好的决定。


结论和进一步思考:
虽然判别分析工具一开始并没有清楚地预测出每本书的作者是谁,但对输出的进一步探索显示出更有希望的结果:无需了解文本浏览器或判别分析中的选项,JMP Pro能够很好地预测每本书的作者。
奥斯卡王尔德预测的不确定性比其他人大一点,但可能是由于
- 他在数据集中有两本书,
- 我只是接受默认设置——也许可以调整模型,或者
- 事实上,《认真的重要性》是作为戏剧而不是小说来写的,这是我在分析之后才发现的事实。
我的猜测是选项 c 是原因。 与其他作者和其他样书一起重复这个实验可能会很有趣。 如果你重新运行实验,我对你得到的任何结果都很感兴趣。 请在评论中发布您的结果!