Python 3.x 如何在python中从字符串中提取文本?
假设我有代码Python 3.x 如何在python中从字符串中提取文本?,python-3.x,Python 3.x,假设我有代码txt=“你好,我的名字是鲍勃。我真的很喜欢馅饼。”,我如何分别提取每个句子并将其添加到列表中。我创建了一个凌乱的脚本,它给了我一个字符串中的一些句子 sentences = 0 capitals = [ 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S', 'T','U','V','W','X','Y','Z' ] finish_markers = [ '.'
txt=“你好,我的名字是鲍勃。我真的很喜欢馅饼。”
,我如何分别提取每个句子并将其添加到列表中。我创建了一个凌乱的脚本,它给了我一个字符串中的一些句子
sentences = 0
capitals = [
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S',
'T','U','V','W','X','Y','Z'
]
finish_markers = [
'.','?','!'
]
newTxt = txt.split()
for x in newTxt[1:-1]:
for caps in capitals:
if caps in x:
for fin in finish_markers:
if fin in newTxt[newTxt.index(x) - 1]:
sentences += 1
for caps in capitals:
if caps in newTxt[0]:
sentences += 1
print("Sentence count...")
print(sentences)
它正在使用上面提到的txt
变量。然而,我现在想把每一句话都摘录出来,并把它们放到一个列表中,这样最终的产品看起来就像这样
['Hello my name is bob.','I really like pies.']
我不希望使用任何非标准的软件包,因为我希望这个脚本独立于所有内容并脱机工作。谢谢你的帮助 使用
这将为您提供一个句子列表。您可以对所有结尾字符(“.”、“?”、“!”)使用正则表达式,然后将其拆分为不同的字符串。您正在尝试将字符串拆分为句子,这对于正则表达式或字符串函数处理来说有点困难。对于您的用例,我推荐一个NLP库,如。然后,看看这个。按
拆分字符串。
?--><代码>“你好,我叫鲍勃。我真的很喜欢馅饼。”.split(“.”@Rakesh,并不总是有效的。例如:“这个问题被标记为python-3.x”-将被分成两部分。你可能会想。如果是这样的话,@Austin可能会重复,那么确定这是这句话的结尾的方法是什么谢谢你,因为现在我将使用@Rakesh的第一个选项,因为它正在工作,但是我将研究nltk
,但正如我所说的,我正试图避免使用任何额外的包。
import nltk
sentences = nltk.sent_tokenize(txt)