CFG和googlen-gram如何组合生成句子

How CFG and google n-gram can be combined to generate sentences

我有有效的语法和词汇项目列表,用于生成语法正确但毫无意义的短语。我想结合 google n-gram 只生成有效的句子。是否可行,有没有这方面的论文。我正在使用 NLTK 和 Stanford 核心 nlp 工具。

不,不可行。真实句子的结构和意义依赖性远远超出了 ngrams 所能捕捉到的范围。

我想您正在考虑通过扩展您的 CFG 来生成一个随机结构,然后在可能的词汇选择中使用 ngrams select。编写代码非常简单:在词性级别砍掉你的语法,用你的 CFG 生成一个 "sentence" 作为一串 POS 标签,然后使用 ngrams 一个一个地填充它们。

要使用 google 的整个 5 克集合,您需要大量磁盘 space 和大量 RAM 或一些巧妙的编程,因此我建议您尝试NLTK 的标记语料库之一(例如,带有 "universal" 标记集的 Brown 语料库)。从任何文本开始,不难收集它的 ngram,编写一个随机文本生成器,并确认它产生半连贯但不可否认的不连贯(并且仍然大部分不符合语法)的废话。