From 66307d2f6fa7c011c750588f708cfc1deff74e1c Mon Sep 17 00:00:00 2001 From: Aleksey Lim Date: Tue, 14 Apr 2009 23:34:23 +0000 Subject: Merge HabarConSara branch --- (limited to 'Speak.activity/bot/aiml/Utils.py') diff --git a/Speak.activity/bot/aiml/Utils.py b/Speak.activity/bot/aiml/Utils.py new file mode 100755 index 0000000..75e5a1c --- /dev/null +++ b/Speak.activity/bot/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 -- cgit v0.9.1