首页 > 建站百科 > 网站建设 > ThinkPHP 3.2 中文分词 提取关键字

ThinkPHP 3.2 中文分词 提取关键字

时间:2015-04-20 22:50:57 来源:西安网站建设
由于业务的需求,公司研发团队正在基于ThinkPHP为底层框架的CMS系统。今天遇到了提取标题中的关键词这一个功能,我们在一起研究了很长时间。决定用Pscws4中文分词开源系统。中建出了一些小小的问题,所以委托小编我在此记录一下,为各位PHPer提供一下参考。

SCWS 中文分词

SCWS 是 Simple Chinese Word Segmentation 的首字母缩写(即:简易中文分词系统)。

这是一套基于词频词典的机械式中文分词引擎,它能将一整段的中文文本基本正确地切分成词。 词是中文的最小语素单位,但在书写时并不像英语会在词之间用空格分开, 所以如何准确并快速分词一直是中文分词的攻关难点。

SCWS 采用纯 C 语言开发,不依赖任何外部库函数,可直接使用动态链接库嵌入应用程序, 支持的中文编码包括 GBK、UTF-8 等。此外还提供了 PHP 扩展模块, 可在 PHP 中快速而方便地使用分词功能。

分词算法上并无太多创新成分,采用的是自己采集的词频词典,并辅以一定的专有名称,人名,地名, 数字年代等规则识别来达到基本分词,经小范围测试准确率在 90% ~ 95% 之间, 基本上能满足一些小型搜索引擎、关键字提取等场合运用。首次雏形版本发布于 2005 年底。

第一步:准备好Pscws4资料

下载 XDB 词典文件简体中文(UTF-8)
下载PSCWS4pscws4-20081221.tar.bz2
下载规则集文件【rules.tgz

第二步:将下载的文件解压,其中的 dict.utf8.xdb 和 规则集文件 按照下图放置



第三步:将解压出来的PSCWS4类Pscws4.class.php 和 xdb_r.class.php 放到 ThinkPHP/Library/Vendor/Pscws下

第四步:在控制器里面实力类。


function get_tags($title,$num){
	import("Vendor.Pscws.Pscws4");
	$pscws = new \PSCWS4('utf8');
	$pscws->set_dict(CONF_PATH . 'etc/dict.utf8.xdb');
	$pscws->set_rule(CONF_PATH . 'etc/rules.utf8.ini');
	$pscws->set_ignore(true);
	$pscws->send_text($title);
	$words = $pscws->get_tops($num);
	$pscws->close();

	$tags = array();
	foreach ($words as $val) {
		$tags[] = $val['word'];
	}
	
	return implode(',', $tags);
}
本来到这个时候就应该做好了,实现我们需要的分词功能了,但是却出现乱码了。这个问题折腾我们技术很长时间,怎么调试都不对,什么文件的读取权限之类的,全部都试一遍都不行。最后只好看源码。最终发现问题
在PSCWS4的构造函数中。

将构造函数修改为:function __construct($charset = 'gbk') { $this->PSCWS4($charset); }

ThinkPHP整合PSCWS4到此完满结束。

请登录网站了解更多陕西企尚网络科技有限公司西安网站建设公司http://www.sxqswl.net相关信息 

阅读过此文章的读者,还阅读过下面的文章

2015-04-20 22:50:57      在西安网站建设在备案中需要注意一些什么呢?
2015-04-20 22:50:57      什么样的网站能吸引用户浏览
2015-04-20 22:50:57      西安网站建设之现在什么样的内容百度会喜欢
2015-04-20 22:50:57      一般企业网站建设需要哪些流程?
2015-04-20 22:50:57      目标用户都喜欢什么样的英文网站呢?
2015-04-20 22:50:57      西安手机网站建设公司
2015-04-20 22:50:57      https安装证书方法
2015-04-20 22:50:57      怎么选择陕西西安网站建设公司?
2015-04-20 22:50:57      为什么要写网站建设方案呢?
2015-04-20 22:50:57      西安网站公司在高端网站建设前期需要做一些什么?
2015-04-20 22:50:57      西安网站建设告诉你餐饮食品行业为什么要做网站
2015-04-20 22:50:57      网站建设前期的时候需要做什么