Revision: 18291
Updated Code
at September 27, 2009 07:43 by cocomo
Updated Code
class String def split_sentence ary = self.gsub(/\n/," ").split(/([^\.\?\!]+[\.\?\!])/) ary.delete("") sentences = Array.new str = "" for i in 0..ary.size-1 next if ary[i].size == 0 || ary[i] =~ /^\s*$/ str << ary[i] next if str =~ /Mr|Mrs|Ms|Dr|Mt|St\.$/ if (i < ary.size-1) next if ary[i] =~ /[A-Z]\.$/ next if ary[i+1] =~ /^\s*[a-z]/ end if ary[i+1] =~ /^\"/ str << '"' ary[i+1].sub!(/^\"/,"") elsif ary[i+1] =~ /^\)/ str << ')' ary[i+1].sub!(/^\)/,"") end sentences << str.sub(/^\s+/,"") str = "" end sentences end end
Revision: 18290
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at September 27, 2009 07:13 by cocomo
Initial Code
class String def split_sentence ary = self.split(/([^\.\?\!]+[\.\?\!])/) ary.delete("") sentences = Array.new str = "" for i in 0..ary.size-1 next if ary[i].size == 0 || ary[i] =~ /^\s*$/ str << ary[i] next if str =~ /Mr|Mrs|Ms|Dr|Mt|St\.$/ if (i < ary.size-1) next if ary[i] =~ /[A-Z]\.$/ next if ary[i+1] =~ /^\s*[a-z]/ end if ary[i+1] =~ /^\"/ str << '"' ary[i+1].sub!(/^\"/,"") elsif ary[i+1] =~ /^\)/ str << ')' ary[i+1].sub!(/^\)/,"") end sentences << str.sub(/^\s+/,"") str = "" end sentences end end
Initial URL
Initial Description
A monkey patch splitting a string into sentences.
Initial Title
Split String into Sentences
Initial Tags
ruby
Initial Language
Ruby