欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php中文分词与自动获取关键词的方法

程序员文章站 2022-03-15 15:28:37
...
  1. header("Content-Type:text/html; charset=utf-8");
  2. define('APP_ROOT', str_replace('\\', '/', dirname(__FILE__)));
  3. $test = '中文测试代码!';
  4. function get_tags_arr($title)
  5. {
  6. require(APP_ROOT.'/pscws4.class.php');
  7. $pscws = new PSCWS4();
  8. $pscws->set_dict(APP_ROOT.'/scws/dict.utf8.xdb');
  9. $pscws->set_rule(APP_ROOT.'/scws/rules.utf8.ini');
  10. $pscws->set_ignore(true);
  11. $pscws->send_text($title);
  12. $words = $pscws->get_tops(5);
  13. $tags = array();
  14. foreach ($words as $val) {
  15. $tags[] = $val['word'];
  16. }
  17. $pscws->close();
  18. return $tags;
  19. }
  20. print_r(get_tags_arr($test));
  21. //=--------------------------------
  22. function get_keywords_str($content){
  23. require(APP_ROOT.'/phpanalysis.class.php');
  24. PhpAnalysis::$loadInit = false;
  25. $pa = new PhpAnalysis('utf-8', 'utf-8', false);
  26. $pa->LoadDict();
  27. $pa->SetSource($content);
  28. $pa->StartAnalysis( false );
  29. $tags = $pa->GetFinallyResult();
  30. return $tags;
  31. }
  32. print(get_keywords_str($test));
复制代码

SCWS – 简易中文分词系统

SCWS 在概念上并无创新成分,采用的是自行采集的词频词典,并辅以一定程度上的专有名称、人名、地名、数字年代等规则集,经小范围测试大概准确率在 90% ~ 95% 之间,已能基本满足一些中小型搜索引擎、关键字提取等场合运用。 SCWS 采用纯 C 代码开发,以 Unix-Like OS 为主要平台环境,提供共享函数库,方便植入各种现有软件系统。此外它支持 GBK,UTF-8,BIG5 等汉字编码,切词效率高。

系统平台:Windows/Unix 开发语言:C 使用方式:PHP扩展

演示网址:http://www.ftphp.com/scws/demo.php 开源官网:http://www.ftphp.com/scws/

注:作为PHP扩展,容易与现有的基于PHP架构的Web系统继续集成,是其一大优势。

PhpanAlysis - PHP无组件分词系统

PhpanAlysis分词系统是基于字符串匹配的分词方法 ,这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配 和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。

系统平台:PHP环境

开发语言:PHP

使用方式:HTTP服务

演示网址:http://www.itgrass.com/phpanalysis/ 开源官网:http://www.itgrass.com/phpanalysis/

注:实现简单,容易使用,能做一些简单应用,但大数据量的计算效率不如前几种。 试用了几个系统,基本分词功能都没什么问题,只是在个别一些词的划分上存在一些差异;对于词性的确定,系统间有所不同。