Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何在python中从字符串中提取文本?_Python 3.x - Fatal编程技术网

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)