如何生成恰好包含 N 个单词的句子?

数据挖掘 nlp 伯特 文本生成 openai-gpt
2022-01-31 19:33:42

多亏了 GPT2 预训练模型,现在可以生成有意义的带或不带前缀的单词序列。然而,一个句子应该以正确的结尾(.,!,?)结尾。我只是想知道如何生成一个长度为 N 的句子(带有正确的结尾)?

一种可能的方法是后处理,即处理许多序列并选择服务于目的的序列!但是,在任何管道中使用它可能是一项非常艰巨的任务。

是否有任何建议(可能是辅助算法)来调整超参数,使其产生具有更高概率的所需长度的句子。

2个回答

将 od 解码器的输出限制为 N。不确定它有多容易,可能有点深入研究官方实现,但在那之后 GPT2 的主要“骨架”是可用的,这意味着所有的预训练都可以重用以产生有意义的句子。

根据我执行的测试,GPT2 模型足够强大,可以在结尾用有意义的标点符号结束句子。基本上,如果您对其进行微调,则取决于您使用的数据的大小和质量。

关于长度,如果您确定要输出为 N 标记长,那么可以通过在 interact_model 函数中编辑脚本的长度参数来实现。

但是将输出固定到一定长度并不能保证生成具有正确结尾的句子,因为它完全取决于输出的第 N-1 项。