我想使用像“。”这样的句号将文本分成句子。. 但是如果文本中存在“博士”、“夫人”、“美国”等词,那么拆分器可能会混淆。例如,考虑以下文本:
憨豆先生是一部英国喜剧电视连续剧。
这分为两句话:1:先生2:Bean是一部英国喜剧电视连续剧。
在不使用此类特殊单词的字典/数组的情况下,是否有一种聪明的方法可以在 PHP 中解决这个问题?
顺便说一句,我使用以下代码检查给定单词是否有句号。这段代码工作正常,但我需要用很多这样的词填充字典/数组。我正在寻找不需要任何字典的解决方案。现在,有什么想法吗?
public function doesWordHasFullstop($word){
if(in_array(strtolower(trim($word)), array('dr.','mr.','mrs.','prof.','ms.','sr.','jr.','m.sc.'
,'b.sc.','ph.d.','st.', 'gen.','sen.','rep.','jan.',
'feb.','mar.', 'apr.','jun.','jul.','aug.','sep.',
'oct.','nov.','dec.','drs.','m.d.','b.a.','m.a.','d.d.s.',
'u.s.a','u.a.e','u.k.','p.m.','a.m.'))){
return FALSE;
}
preg_match('/[.,;):>\]?!@#|]+/', $word, $matches);
if(count($matches)>0){
return TRUE;
}else{
return FALSE;
}
}