Python 创建包含文本中所有句子的列表

Python 创建包含文本中所有句子的列表,python,regex,Python,Regex,我如何创建一个包含所有句子的列表,其中一个句子至少需要3个单词,来自文本。这些句子被“?”分开。 例如: text = "Hi! How are you? I am fine." 列表将是:[“你好吗”,“我很好”]您可以对regex使用split函数 重新导入 你好!你好吗?我很好 打印([如果len(sen)>2,则在重新拆分(“\.\124;!\ 124;\?”,s\u nums)中的sen代表sen) 您可以试试 import re txt = "Hi! How

我如何创建一个包含所有句子的列表,其中一个句子至少需要3个单词,来自文本。这些句子被
“?”
分开。 例如:

text = "Hi! How are you? I am fine."

列表将是:
[“你好吗”,“我很好”]

您可以对regex使用
split
函数

重新导入
你好!你好吗?我很好
打印([如果len(sen)>2,则在重新拆分(“\.\124;!\ 124;\?”,s\u nums)中的sen代表sen)
您可以试试

import re

txt = "Hi! How are you? I am fine."
print([i[0].strip() for i in re.findall(r"((\W\w+){3,}(?=(\.|\!|\?)))", txt)])
输出

['How are you', 'I am fine']

此正则表达式从给定字符串中提取以分隔的所有三个或更多单词。或或者?

你试过什么?你能分享你的代码吗?thanksi建议使用or作为基础,senetnce拆分并不像re.split那么简单,因为有很多假阳性案例。结帐“一个句子至少需要3个单词”你可以在后面加上一个简单的检查,检查至少3个单词,但主要的问题是,当出现“早上好,ABC先生在早上说”这样的句子时,它就错了。这会给你“早上好,ABC先生在早上说”和“ABC先生在早上说”,但这是错误的wrong@cerofrais你是对的。但我没有想出比明确定义所有缩写更好的解决方案。这是不实际的。这就是为什么我建议使用基于ML的句子标记器,它可以做更好的概括