联系信息

php把文章按标点符号分割成多个句子

2020-12-07 12:56 By 致远 3937
当前位置: 企业网站建设 > ThinkPHP > php把文章按标点符号分割成多个句子

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把文章按标点符号分割成多个句子

留下您的评论

>