使用rong framework + socket做php快速中文分词
点击 1283 创建时间 2014-07-29 18:46:04
rong framework 最新版下载:http://rong.wudimei.com/
通过socket server分词的原理是,用php写的服务器启动时把词典加载到内存中。以后不用再加载了,从而节省了磁盘访问时间。于时分词就明显加快了。
首先你要建一个ChineseSegment.php,内容如下:
<?php
ini_set("display_errors",1);
error_reporting(E_ALL |E_NOTICE|E_ERROR|E_WARNING);
define( "ROOT" , dirname(dirname(dirname(dirname( __FILE__ )))) );
set_include_path( "." . PATH_SEPARATOR .
ROOT."/lib". PATH_SEPARATOR.
get_include_path()
);
ini_set("memory_limit","256M");
require_once "Rong/Search/Analyzer/CS/Server.php";
$server = new Rong_Search_Analyzer_CS_Server("127.0.0.1",5050);
$server->driver ="Chinese";
$server->config = array('dictionary_path' => dirname(__FILE__) . "/../data/chinese_dict-1.0.dat");
$server->start();
//请修改'dictionary_path'的值,指向词典的路径。词典是一个一行一个词语的文本文件。
然后建一个ChineseSegmentServer.bat
用来执行上面的那个文件,内容为:
D:\\AppServ\\php-5.4.8\\php.exe -c D:\\AppServ\\php-5.4.8\\php.ini ChineseSegmentServer.php
接下来,我们就可以在任意php中调用服务器的分词方法:
<?php
define( "ROOT" , dirname( __FILE__ ) . "/../../../" );
set_include_path( "." . PATH_SEPARATOR .
ROOT."/lib". PATH_SEPARATOR.
get_include_path()
);
require_once "Rong/Search/Analyzer/CS/Client.php";
$client = new Rong_Search_Analyzer_CS_Client();
$ret =$client->segment($text="杨庆荣你好,how are you yang qing rong?");
print_r( $ret );
上一篇: 通达信极端指标
下一篇: iphone上传的图片变横着了