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?再想一想,这将需要大量的工作。
编辑的
部分中的链接已经失效。