"""This file contains assorted general utility functions used by other
modules in the PyAIML package.
"""
def sentences(s):
"""Split the string s into a list of sentences."""
try: s+""
except: raise TypeError, "s must be a string"
pos = 0
sentenceList = []
l = len(s)
while pos < l:
try: p = s.index('.', pos)
except: p = l+1
try: q = s.index('?', pos)
except: q = l+1
try: e = s.index('!', pos)
except: e = l+1
end = min(p,q,e)
sentenceList.append( s[pos:end].strip() )
pos = end+1
# If no sentences were found, return a one-item list containing
# the entire input string.
if len(sentenceList) == 0: sentenceList.append(s)
return sentenceList
# Self test
if __name__ == "__main__":
# sentences
sents = sentences("First. Second, still? Third and Final! Well, not really")
assert(len(sents) == 4)
|