假设我有一个包含 200,000 行诗歌的数据库,我想以生成语法正确且清晰的 3 行诗的方式随机组合这些诗行。
有办法做到这一点吗?我目前正在尝试 language_tool_python但它仅有助于一般拼写和一些格式建议。我正在寻找能够确保每首 3 行诗都能正确阅读并具有语法意义的东西。
例如,这是一个三行数组,其中包含由我当前的代码库生成的一首诗:
['在海上,他的杆服从大海','死了','但让我最后的日子成为我最好的']
我想找到一个解决方案,让我能够发现这首诗 Not Acceptable ,因为在“OVER THE SEA,THE HIS ROD OBEYS”之后出现“IS DEAD”在语法上没有意义。
我想自动检测为无效的一首诗的另一个示例:
['那里永远不缺乏最好的骨头','但她很残酷','那么愿你的女王']
我需要在客户端解决这个问题;我无法使用任何在线 API 即服务。
预先感谢您的任何建议!
最佳答案
这是一项非常困难的任务,因为所使用的任何系统都必须了解 text cohesion以产生连贯的输出。当您想要将这些系统应用于诗歌时,事情会变得更加复杂,诗歌与传统散文(几乎按照定义)的独特区别在于缺乏凝聚力。引用Poetry Wikipedia page :
Poetry ... is a form of literature that uses aesthetic and often rhythmic qualities of language − such as phonaesthetics, sound symbolism, and metre − to evoke meanings in addition to, or in place of, a prosaic ostensible meaning.
为了让您开始从根本上解决句子排序问题,我建议您阅读 Chowdhury 等人的这些论文。 [1]和戈萨尔等人。 [2]谁提供了其 STaCK 的开源实现和 ReBART您可以尝试使用的实现。您可能需要微调特定模型才能更好地处理诗歌,但您可能会感到惊喜。
引用文献
[1] Chowdhury, S.B.R.、Brahman, F. 和 Chaturvedi, S.,2021。一切都井然有序吗?一种简单的句子排序方法。 arXiv 预印本 arXiv:2104.07064。
[2] Ghosal, D.、Majumder, N.、Mihalcea, R. 和 Poria, S.,2021。Stack:利用时间常识知识进行句子排序。 arXiv 预印本 arXiv:2109.02247。
关于python - 如何使用 python 从随机文本行中组装出正确表达的句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75154149/