Public feed #721886

Someone

public text v1 · immutable
Raw Edit
·published 2007-10-01 16:46 UTC
rendered paste body
public function splitSentences($data) {
		
		// list of common abbreviations
		$skip_array = array ( 
	
		  'Jr', 'Mr', 'Mrs', 'Ms', 'Dr', 'Prof', 'Sr' ,
		  'jr', 'mr', 'mrs', 'ms', 'dr', 'prof', 'sr' ,
	
		  'col','gen', 'lt', 'cmdr',
	
		  'dept', 'univ',
	
		  'inc', 'ltd',
	
		  'arc', 'al', 'ave', 'cl', 'ct', 'cres', 'dr',
		  'la', 'pl', 'plz', 'rd', 'tce',
		  'Ala' , 'Ariz', 'Ark', 'Cal', 'Calif', 'Col', 'Colo', 'Conn',
		  'Del', 'Fed' , 'Fla', 'Ga', 'Ida', 'Id', 'Ill', 'Ind', 'Ia',
		  'Kan', 'Kans', 'Ken', 'Ky' , 'La', 'Me', 'Md', 'Is', 'Mass', 
		  'Mich', 'Minn', 'Miss', 'Mo', 'Mont', 'Neb', 'Nebr' , 'Nev',
		  'Mex', 'Okla', 'Ok', 'Ore', 'Oreg', 'Penna', 'Penn', 'Pa'  , 'Dak',
		  'Tenn', 'Tex', 'Ut', 'Vt', 'Va', 'Wash', 'Wis', 'Wisc', 'Wy',
		  'Wyo', 'USAFA', 'Alta' , 'Man', 'Ont', 'Que', 'Sask', 'Yuk'.
	
		  'jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec', 'sept',
	
		  'vs', 'etc', 'no',
		  );
	
		// build string of shortenings
		$skip = '';
		foreach($skip_array as $abbr) {
		  $skip = $skip . (empty($skip) ? '' : '|') . '\s{1}' . $abbr . '[.!?]';
		}
	
		// split text into sentences
		$sentences = preg_split ("/(?<!$skip)(?<=[.?!])\s+(?=[^a-z])/",
			 $data,
			 -1,
			 PREG_SPLIT_NO_EMPTY);
		return $sentences;
	}