1、為什么要將文章分割成句子?
這里可能有多種原因,比如采集的文章語料,需要把他們重新排列組合作為內容素材;比如需要獲取文章中最長的一段話,用來作為文章概述或者用于標識唯一性;比如……總之,你可能會遇到并需要將文章分割成句子的哈哈~
2、怎么將文章分割成句子?
這一點主要還是看你的需求,比如之間做相似度查詢,我們大都是按30字符來分割(原因是百度搜索最大字符數就是30個),這種分割方法很簡單就能實現:直接substr($str,$start,30)即可。
這樣最其實并不理想,分割出來的句子有很多歧義或者沒有主題,所以我后來的做法是先按標點符合分割,再按30字符分割,這里就需要另外一種方法,其實也很簡單,用split或mb_split即可實現。前者用于英文,后者適用于中文。php把文章按標點符號分割成多個句子的具體方法如下:
$rst=mb_split('[!?;.???;。]',$cont);
split的用法與此相同,也就是在[]中指定需要的符號即可,我這里取的是傳統意義上的一整句話,而不是所有標點符號。
3、split語法
array split ( string $pattern, string $string [, int $limit] )。
例如:
list($user, $pass, $uid, $gid, $extra) = split (":", $passwd_line, 5);
如果字符串中有 n 個與 pattern 匹配的項目,則返回的數組將包含 n+1 個單元。例如,如果沒有找到 pattern,則會返回一個只有一個單元的數組。當然,如果 string 為空也是這樣。
再例如:
// 分隔符可以是斜線,點,或橫線
$date = "04/30/1973";
list($month, $day, $year) = split ('[/.-]', $date);
echo "Month: $month; Day: $day; Year: $year<br />\n";
© 致遠 2020-12-07,原創內容,轉載請注明出錯:php把文章按標點符號分割成多個句子