PHP函数实现从一个文本字符串中提取关键字的方法
发布:smiling 来源: PHP粉丝网 添加日期:2021-06-06 14:40:31 浏览: 评论:0
本文实例讲述了PHP函数实现从一个文本字符串中提取关键字的方法,分享给大家供大家参考,具体分析如下:
这是一个函数定位接收一个字符串作为参数(连同其他配置可选参数),并且定位该字符串中的所有关键字(出现最多的词),返回一个数组或一个字符串由逗号分隔的关键字。功能正常工作,但我正在改进,因此,感兴趣的朋友可以提出改进意见。
- /**
- * Finds all of the keywords (words that appear most) on param $str
- * and return them in order of most occurrences to less occurrences.
- * @param string $str The string to search for the keywords.
- * @param int $minWordLen[optional] The minimun length (number of chars) of a word to be considered a keyword.
- * @param int $minWordOccurrences[optional] The minimun number of times a word has to appear
- * on param $str to be considered a keyword.
- * @param boolean $asArray[optional] Specifies if the function returns a string with the
- * keywords separated by a comma ($asArray = false) or a keywords array ($asArray = true).
- * @return mixed A string with keywords separated with commas if param $asArray is true,
- * an array with the keywords otherwise.
- */
- function extract_keywords($str, $minWordLen = 3, $minWordOccurrences = 2, $asArray = false)
- {
- function keyword_count_sort($first, $sec)
- {
- return $sec[1] - $first[1];
- }
- $str = preg_replace('/[^\\w0-9 ]/', ' ', $str);
- $str = trim(preg_replace('/\s+/', ' ', $str));
- $words = explode(' ', $str);
- $keywords = array();
- while(($c_word = array_shift($words)) !== null)
- {
- if(strlen($c_word) <= $minWordLen) continue;
- $c_word = strtolower($c_word);
- if(array_key_exists($c_word, $keywords)) $keywords[$c_word][1]++;
- else $keywords[$c_word] = array($c_word, 1);
- }
- usort($keywords, 'keyword_count_sort');
- $final_keywords = array();
- foreach($keywords as $keyword_det)
- {
- if($keyword_det[1] < $minWordOccurrences) break;
- array_push($final_keywords, $keyword_det[0]);
- }
- return $asArray ? $final_keywords : implode(', ', $final_keywords);
- }
- //How to use
- //Basic lorem ipsum text to extract the keywords
- $text = "
- Lorem ipsum dolor sit amet, consectetur adipiscing elit.
- Curabitur eget ipsum ut lorem laoreet porta a non libero.
- Vivamus in tortor metus. Suspendisse potenti. Curabitur
- metus nisi, adipiscing eget placerat suscipit, suscipit
- vitae felis. Integer eu odio enim, sed dignissim lorem.
- In fringilla molestie justo, vitae varius risus lacinia ac.
- Nulla porttitor justo a lectus iaculis ut vestibulum magna
- egestas. Ut sed purus et nibh cursus fringilla at id purus.
- ";
- //Echoes: lorem, suscipit, metus, fringilla, purus, justo, eget, vitae, ipsum, curabitur, adipiscing
- echo extract_keywords($text);
Tags: PHP函数 PHP字符串提取关键字
相关文章
- ·php中禁止危险php函数的例子(2014-08-21)
- ·php页面函数设置超时限制(2014-09-22)
- ·PHP中使用addslashes函数转义的安全性原理分析(2021-04-21)
- ·利用PHP脚本在Linux下用md5函数加密字符串的方法(2021-06-05)
- ·PHP函数超时处理方法(2021-07-09)
- ·PHP使用函数静态变量实现指定迭代次数的方法(2021-09-05)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)