从段落的句子形成的列表长度

时间:2013-12-02 11:53:31

标签: python

我有以下代码:

def splitParagraphIntoSentences(paragraph):
    import re
    sentenceEnders = re.compile('[.!?]')
    sentenceList = sentenceEnders.split(paragraph)
    return sentenceList

sentenceList=splitParagraphIntoSentences (u"""I have a bicycle. I want the car.
""")
print len(sentenceList)

Python将返回句子列表的长度为3.实际上只有两个句子。我知道我是因为'。'在第二句末尾。在不删除“。”的情况下,以正确方式教授程序计数句子的最佳方法是什么?从第二句末尾开始?

谢谢

1 个答案:

答案 0 :(得分:0)

而不是拆分,计算结束:

len(sentenceEnders.findall(paragraph))

或减去1以说明最后一句分割后的空行:

len(splitParagraphIntoSentences(paragraph)) - 1

或返回已过滤的列表,删除空项:

return filter(None, sentenceList)

或者,当使用Python 3(filter()返回生成器时):

return [s for s in sentenceList if s]