使用python分割段落

问题描述 投票:0回答:1

如何有序地分隔一个完整的段落? 例如: 下面是一根绳子

“目的:评估印度斯利那加政府医学院现场实践领域成年人中创伤后应激障碍 (PTSD) 的患病率。方法:本研究本质上是横断面研究,并在现场实践中进行斯利那加政府医学院的区域。选择了斯利那加政府医学院由各个村庄组成的三个实地实习区域。此外,通过随机抽样方法选择了这些村庄中的 10%,然后抽取了 10%的家庭再次采用系统随机抽样的方法,在选定的家庭中,使用一般健康问卷(GHQ)对所有成年人口(18岁及以上)进行选择和筛查,对筛查出PTSD(创伤后应激障碍)阳性的患者进行评估和诊断结果:在总共3400名受试者(年龄>/=18岁)中,一般人群中创伤后应激障碍的患病率为3.76%。女性患病率较高(卡方检验=2.086,p>0.05(无显着性)。大多数病例集中在0-40岁年龄段。大多数病例为未婚、文盲和属于社会经济阶层较低。近一人死亡是主要创伤事件。急性发作的创伤后应激障碍是最常见的类型,12% 的患者有既往精神疾病史,22.6% 的患者存在药物滥用。结论:我们的研究结果清楚地表明表明创伤后应激障碍 (PTSD) 在发展中国家是一种普遍存在的疾病,特别是在灾害多发地区和政治动荡地区。克什米尔多年来对各种创伤事件的恢复能力有所增强,这可能解释了创伤后应激障碍的患病率较低的原因-我们研究中的创伤性障碍(PTSD)。'”

使用python,我想将上面的结果分成这样的几段......

“目的:估计印度斯利那加政府医学院现场实践领域成年人创伤后应激障碍 (PTSD) 的患病率。

方法:本研究是横断面研究,在斯利那加政府医学院的现场实践区域进行。选择了斯利那加政府医学院由各个村庄组成的三个实地实习区。再通过随机抽样的方法抽取这些村庄的10%,然后再通过系统随机抽样的方法再次抽取10%的住户。在选定的家庭中,所有成年人口(18 岁及以上)均通过一般健康问卷(GHQ)进行选择和筛查。对 PTSD(创伤后应激障碍)筛查呈阳性的患者进行评估和诊断。从列出阳性病例的行中计算患病率。

结果:在总共3400名受试者(年龄>/=18岁)中,一般人群创伤后应激障碍的患病率为3.76%。女性患病率较高(卡方检验=2.086,p>0.05(无显着性)。大多数病例集中在0-40岁年龄段。大多数病例为未婚、文盲和属于社会经济阶层较低。主要创伤事件是近一人死亡。急性发作的创伤后应激障碍是最常见的类型,12% 的患者有精神病史,22.6% 的患者存在药物滥用。

结论:我们的研究结果清楚地表明,创伤后应激障碍(PTSD)是发展中国家的一种普遍疾病,特别是在灾害多发地区和政治动荡地区。多年来,克什米尔对各种创伤事件的恢复能力不断增强,这可能解释了我们研究中创伤后疾病 (PTSD) 患病率较低的原因。'"

最后,我想将每个段落存储到一个字符串中,其中包含 obj、方法、结果和结论。 我怎样才能做到这一点?

这是我使用的代码:

   content = repr(content).replace(".", ".\n")

但是有了这些,文本中的百分比例如22.6%将被分成另一行。

编辑:如果字符串属于列表中的对象怎么办?

content = record.get("AB")

content = re.split(r"\B\s(?=[^\s:]+:)", content)

有效吗?

python string replace split paragraph
1个回答
4
投票

您可以在非单词字符(例如标点符号)后面的空格上进行拆分,后跟单个单词,然后是冒号:

obj, method, result, conclusion = re.split(r"\B\s(?=[^\s:]+:)", subject)

如果恰好有四个子字符串遵守这些规则,那么这将起作用。

但是,似乎更具体的方法可能更好:

>>> regex = re.compile(r"""Objective:\s(.*?)Methodology:\s(.*?)
...                        Results:\s(.*?)Conclusion:\s(.*)""", re.S|re.X)
>>> obj, method, result, conclusion = regex.match(subject).groups()

(其中

subject
包含您的输入字符串)。

© www.soinside.com 2019 - 2024. All rights reserved.