我有以下代码:
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.实际上只有两个句子。我知道我是因为'。'在第二句末尾。在不删除“。”的情况下,以正确方式教授程序计数句子的最佳方法是什么?从第二句末尾开始?
谢谢
答案 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]