如何从句子语料库中获取单词覆盖原始语料库中最大句子的最小句子?

How to get minimum sentences from sentences corpus whose words covers the maximum sentences in the original corpus?

大家。

我有一个 "optimization" 问题,我真的不知道应该从哪条路开始。这是我的问题的描述:

我有一个包含大量文本句子的语料库。现在,我需要获得最少的句子来记录(作为音频文件),但同时要最大化由记录的句子形成的原始语料库中的句子数量 - 更确切地说,来自记录的单词。

我需要做的一个非常简短的例子:

语料库:

覆盖原始语料库最大值的最小句子示例:

从上面的 3 个句子(和它们的单词)我们可以在语料库中形成其余的句子。当然,我正在寻找一些计算上最优的方法,因为我的语料库包含数千个句子。您知道适合这个问题的方法吗?

感谢您的回答!

变形

如果你的语料库像你展示的那样简单,而且你真的不需要造句,你可以只计算一元字母组。如果比较复杂,运行一种主题建模的形式。主题建模将 return 语料库中常见的词。您需要将语料库包含在一组文档中。在您的情况下,每个 'document' 都可以是一个句子。一个好的主题建模算法称为 "Latent Dirichlet Allocation" (LDA)。

有关 LDA 的技术论文,请参阅 Latent Dirichlet Allocation

有关使用 gensim 库的示例 Python 代码的文章,请参阅 Experiments on the English Wikipedia

Jordan Barber 的以下文章和示例代码 Latent Dirichlet Allocation (LDA) with Python 使用 NLTK 为 LDA 创建语料库和 gensim。此代码比维基百科代码更适用于其他应用程序。