总结大型语料库中的句子结构
用 Wolfram语言可轻松分析大型数据集。下面的例子使用 ExtendedEntityClass 从网站 english.stackexchange.com 上的帖子中提取和调查超过一百万个句子的语法结构。
导入根据 english.stackexchange.com 创建的 EntityStore。
注册实体库以便在 EntityValue 中使用。
对于被分类为 "single-word-requests" 的帖子,找出 50 个最常被引用、斜体、粗体或被链接的单词,并为结果制作词云。
可以通过检查帖子中使用的句子结构来对网站进行更大范围的调查。首先使用属性扩展帖子实体类型以提取简单的句子。
用新属性从帖子中提取超过一百万个句子。
通过空格或标点符号的分隔来查找每个句子中的单词。
据一篇文章称,书面散文的每个句子的字数统计遵循对数正态分布。用 FindDistributionParameters 求出语料库每个句子中单词分布的拟合参数,并将它们绘制在一起进行比较。
求每个单词出现的频率。
用 DeleteStopwords 清理数据集。
在对数-对数图中可视化清理后的字数。
主要考虑前 50 个单词,用 Callout 标识每个单词。
用 TextStructure 分析语料库中的所有句子,完成后将结果追加到文件中。注意,此过程需要很长时间,计算时间可能长达数天。
从文件中读取数据。
来看一个具体的实例。
构建一个函数来提取句子的核心结构。
提取所有句子的核心结构。
找出数据中的所有语法单位以及它们出现的频率。
求每对相邻语法单位的变迁次数。
以下是名词和介词之间的变迁次数。
用 MatrixPlot 可视化每种变迁的频率。
将结构相同的句子分为一组。
可视化最常见的句子结构。
查看一些有趣结构的例句。
创建一些最常见的句子结构的网络,如果它们通过插入一个语法单元共享父子关系,则将两个结构连接在一起。