diff options
Diffstat (limited to 'aiml/Utils.py')
-rw-r--r-- | aiml/Utils.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/aiml/Utils.py b/aiml/Utils.py new file mode 100644 index 0000000..75e5a1c --- /dev/null +++ b/aiml/Utils.py @@ -0,0 +1,32 @@ +"""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)
\ No newline at end of file |