如何使用python从随机的文本行中组合出正确表述的句子



假设我有一个包含200,000行诗歌的数据库,我想随机组合这些行,以生成语法正确且易读的三行诗歌。

有办法吗?我目前正在试验language_tool_python,但它只帮助一般拼写和一些格式建议。我正在寻找的东西,将确保每3行诗组合正确阅读和语法意义。

例如,下面是一个三行数组,包含我当前代码库生成的一首诗:['OVER THE SEA, THE SEA HIS ROD OBEYS', 'IS DEAD', 'BUT LET MY LAST DAYS BE MY BEST']我想找到一个解决办法,让我发现这首诗是不可接受的,因为"IS dead"在语法上是不合理的;"越过大海,大海跟着他"。

另一个我想自动检测为无效的诗的例子:['THERE NEVER LACKS A BONE OF THE BEST', 'BUT CRUEL IS SHE', 'THEN MAY YOUR QUEEN']

我需要在客户端解决这个问题;我不能使用任何在线api即服务

提前感谢您的任何建议!

这是一项非常困难的任务,因为所采用的任何系统都必须理解文本内聚才能产生连贯的输出。当你想把这些系统应用到诗歌上时,事情就变得更加复杂了,诗歌与传统散文(几乎从定义上来说)的独特之处在于缺乏凝聚力。引用诗歌维基百科页面:

诗歌……是一种文学形式,它利用语言的美学和节奏特征——如语音美学、声音象征主义和韵律——来唤起意义,或代替平淡的表面意义。

为了让你开始解决基本上是一个句子排序问题的方法,我建议你阅读Chowdhury等人[1]和Ghosal等人[2]的这些论文,他们提供了他们的STaCK和ReBART实现的开源实现,你可以尝试使用。为了更好地处理诗歌,你可能需要对特定的模型进行微调,但你可能会感到惊喜。

引用

[1]张晓明,张晓明,张晓明,等。一切正常吗?一个简单的句子排序方法。arXiv预印arXiv:2104.07064. [2]李建军,李建军,李建军,等。堆栈:句子排序与时间常识知识。arXiv预印arXiv:2109.02247.

最新更新