杨庆荣的博客

工作之余接单:公司产品展示网站建设、电商网站建设、小程序、app开发。+86 13714715608

使用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上传的图片变横着了