如何从文本文档数据库中进行有效抽样?

数据挖掘 数据集 数据库 采样
2022-03-09 08:56:30

问题:我想知道从数据库中执行有效抽样的方法。数据库的大小与250K文本文档有关,在这种情况下,每个文本文档都与一些专业(电气工程、医学等)相关。到目前为止,我已经看到了一些简单的技术,例如简单随机抽样分层抽样但是,我认为应用它们不是一个好主意,原因如下:

  • 例如,在简单随机样本的情况下,数据库中有一些文档涉及海军工程或艺术等专业。因此,我认为他们不太可能使用这种方法进行抽样,但我希望尽可能多地收集每个专业的样本。

  • 在分层抽样的情况下,大多数文件都讨论了多个专业,因此我无法将数据库划分为子组,因为它们不会相互排斥,至少对于每个专业都是子组的情况。

最后,由于昂贵的计算成本处理,我无法使用整个数据库。因此,我非常感谢有关其他采样方法的任何建议。感谢您提前提供任何帮助。

2个回答

在我的脑海中,我至少会考虑两种方法,如下所示。

  • 图形采样。如果您可以(并且有意义)将您的人口(文本文档数据库)建模为图形,那么请考虑图形抽样在Cross Validated site 上查看我关于该主题的相关答案(包含许多参考资料 - 我将从这篇不错的概述论文开始)。

  • 主题建模。另一种选择是主题建模(也称为主题模型)。请参阅这篇介绍性论文以及关于该主题的更详细的论文另外,看看这篇关于文档主题建模的有趣论文(或其他情况,如大型数据库,当无监督解决方案更有意义时)。最后,谈到主题建模软件,虽然确实存在许多选项,但我建议研究MALLET,这是一个有趣的基于 Java 的软件包,用于“统计自然语言处理、文档分类、聚类、主题建模、信息提取和其他机器学习对文本的应用”

您将需要进行简单的随机抽样,但要保持您迄今为止看到的标签的数量。当您达到标签的配额时,您需要从池中剔除所有带有该标签的文档,并从没有该标签的剩余文档中采样。

认为当您的标签重叠时,这将是获取分层样本的一种公平方式。