gpt4 book ai didi

python - 如何将字符串拆分为给定长度的子字符串但不破坏句子?

转载 作者:行者123 更新时间:2023-12-01 01:40:20 25 4
gpt4 key购买 nike

我有一个包含大文本的字符串,需要将其拆分为多个长度 <= N 个字符的子字符串(尽可能接近 N;N 始终大于最大的句子),但我也不需要断句。

例如,如果我有 N = 80 并给出文本:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer in tellus quam. Nam sit amet iaculis lacus, non sagittis nulla. Nam blandit quam eget velit maximus, eu consectetur sapien sodales. Etiam efficitur blandit arcu, quis rhoncus mauris elementum vel.

我想获取字符串列表:

"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer in tellus quam."
"Nam sit amet iaculis lacus, non sagittis nulla."
"Nam blandit quam eget velit maximus, eu consectetur sapien sodales."
"Etiam efficitur blandit arcu, quis rhoncus mauris elementum vel."

而且我希望它能够支持英语和俄语。

如何实现这一目标?

最佳答案

我要采取的步骤:

  • 启动一个列表来存储行,并启动一个当前 line 变量来存储当前行的字符串。
  • 将段落拆分为句子 - 这需要您对 '.' 进行.split,删除结尾的空句子 ("") ,去掉前导和尾随空格 (.strip),然后添加句号。
  • 循环这些句子并:
    • 如果该句子可以添加到当前行,则添加它
    • 否则将当前工作行字符串添加到行列表中,并将当前行字符串设置为当前句子
<小时/>

所以,在 Python 中,类似:

para = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer in tellus quam. Nam sit amet iaculis lacus, non sagittis nulla. Nam blandit quam eget velit maximus, eu consectetur sapien sodales. Etiam efficitur blandit arcu, quis rhoncus mauris elementum vel."
lines = []
line = ''
for sentence in (s.strip()+'.' for s in para.split('.')[:-1]):
if len(line) + len(sentence) + 1 >= 80: #can't fit on that line => start new one
lines.append(line)
line = sentence
else: #can fit on => add a space then this sentence
line += ' ' + sentence

指定为:

[
"Lorem ipsum dolor sit amet, consectetur adipiscing elit.Integer in tellus quam.",
"Nam sit amet iaculis lacus, non sagittis nulla.",
"Nam blandit quam eget velit maximus, eu consectetur sapien sodales."
]

关于python - 如何将字符串拆分为给定长度的子字符串但不破坏句子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51952833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com