-
问题描述
-
根据一组关键词,在一段文本中找出一段话作为文本的摘要,摘要有指定长度
-
摘要中要尽可能多的包含不同的关键词
-
在不同关键词一样多的情况下,包含关键词总数比较多的优先级高
-
在以上条件都相同的情况下,出现在文本前面的段落优先
-
基本思路
-
找到各个关键词出现的位置,并记录下来
-
统计在指定的长度范围内的两个关键词之间的段落最符合条件的段落(即关键词种类越多,出现的频率越高,段落越靠前的段落)
-
具体实现
-
为了方便的实现这个功能,程序预先给每个关键词设定了权重为100(即第一次出现一个关键词,段落的权重+100),重复关键词的权重为1(即重复出现一个关键词,段落的权重+1)
-
统计关键词在文本中出现的位置并记录下来 $arrwords是关键词组,$content是文本内容,由于是中文文本,所以用mb_的方法去操作字符串
-
统计两个关键词之间的段落的权重,类似冒泡排序的方式去统计两两关键词之间的段落, MAX_DESC_LEN是指定的摘要长度
-
按照权重排序($rst是以weight的值为key)排序,取第一个值就得到了想要的结果
-