如何从句子语料库中获得最小句子,其句子包含原始语料库中的最大句子?

时间:2017-02-16 18:47:52

标签: string algorithm optimization nlp mathematical-optimization

大家。

我有一个"优化"问题,我真的不知道应该采取哪种方式。这是我的问题描述:

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

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

语料库:

  • 黑狗
  • 灰猫
  • 大狗
  • 灰鼠
  • 大老鼠

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

  • 黑狗
  • 大老鼠
  • 灰猫

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

感谢您的回答!

Morphid

1 个答案:

答案 0 :(得分:0)

如果您的语料库就像您显示的那样简单,并且您不需要创建句子,那么您可以只计算unigrams。如果它更复杂,请运行主题建模。主题建模将返回语料库中共同的单词。您需要将您的语料库放在一组文档中。在你的情况下,每个'文件'可以是一个句子。一个好的主题建模算法称为“潜在Dirichlet分配”(LDA)。

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

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

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