Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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 把文本分成句子_Python_Regex_Python 3.x_Text Segmentation - Fatal编程技术网

Python 把文本分成句子

Python 把文本分成句子,python,regex,python-3.x,text-segmentation,Python,Regex,Python 3.x,Text Segmentation,我想把课文分成几个句子。有人能帮我吗 我还需要处理缩写词。然而,我的计划是在早期阶段替换这些。先生 import re import unittest class Sentences: def __init__(self,text): self.sentences = tuple(re.split("[.!?]\s", text)) class TestSentences(unittest.TestCase): def testFullStop

我想把课文分成几个句子。有人能帮我吗

我还需要处理缩写词。然而,我的计划是在早期阶段替换这些。先生

import re  
import unittest    

class Sentences:

    def __init__(self,text):
        self.sentences = tuple(re.split("[.!?]\s", text))

class TestSentences(unittest.TestCase):

    def testFullStop(self):
        self.assertEquals(Sentences("X. X.").sentences, ("X.","X."))

    def testQuestion(self):
        self.assertEquals(Sentences("X? X?").sentences, ("X?","X?"))

    def testExclaimation(self):
        self.assertEquals(Sentences("X! X!").sentences, ("X!","X!"))

    def testMixed(self):
        self.assertEquals(Sentences("X! X? X! X.").sentences, ("X!", "X?", "X!", "X."))
谢谢, 巴里


编辑:首先,我会很高兴满足我上面包含的四个测试。这将帮助我更好地理解regex是如何工作的。现在,我可以将一个句子定义为X等,就像我在测试中定义的那样。

句子分割可能是一项非常困难的任务,尤其是当文本包含虚线缩写时。它可能需要使用已知缩写的列表,或者训练分类器来识别它们

我建议您使用NLTK-it,它是一套开源Python模块,专为自然语言处理而设计

您可以阅读有关使用NLTK进行句子切分的内容, 自己决定这个工具是否适合你

编辑:或者更简单的,这里是
这是PUNKT语句标记器,包含在NLTK中。

也许你应该描述你所说的句子。看看使用Python 3的IM,NLTK还没有为此建立。我已经有了大量的缩写,我相信我可以在早期处理这个问题。。。也许您可以使用Punkt源代码,并将其调整为Python 3?再想一想,这将需要大量的工作。
编辑的
部分中的链接已经失效。