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

标签 python nlp nltk

假设我有一个包含 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/

相关文章:

python - 使用组合解析文本不返回任何结果

python - 有开发聊天机器人的教程吗?

python - 无法加载 spacy 英语模型 - 'WindowsPath' 对象没有属性 'read'

nlp - 如何从 NLTK 中的文本中提取关系

nlp - nltk 词干分析器 : string index out of range

Python - 从 pandas 的聚合结果中获取组名称

python - python 中的 NumPy ImportError - Dll 加载失败

python - 正则表达式python数据提取

python - 对标记文本进行分类时出现问题,预测错误?

python - 如何在 NLTK 词性 (POS) 标记中仅获取所选标记的单词?