将文本分割成句子

2024-09-27 20:17:40 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我还需要处理缩写。不过,我的计划是在早期阶段替换它们。先生->;先生

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。etc,就像我的测试中定义的那样。


Tags: textimportgtselfre定义defsentences
1条回答
网友
1楼 · 发布于 2024-09-27 20:17:40

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

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

您可以使用NLTKhere阅读句子分段, 你自己决定这个工具是否适合你。

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

相关问题 更多 >

    热门问题