PHP分词

PHP分词

转载请标明出处: http://blog.csdn.net/mozillafirefox/ 本文来自 CSDN 博客。x

/* ----------------------------------------------------------------------- */

   PHP- 简易中文分词 SCWS ver 3.1/2.1 实例演示 )

  

双向根据词频取较高之分法    * 基于词频词典逐点搜索最长词 .

   -----------------------------------------------------------------------

   作者 : 马明练 ( hightman MSN: [email protected] php-QQ 群 : 17708754

   网站 : http://php.twomice.net

   时间 : 2006/03/05

希望有好的建议及用途希望能进一步交流    目的 : 学习研究交流用 ..

   -----------------------------------------------------------------------

   运行环境 : PHP 4.x.* x>0 编译需要 --enable-dba --with-[cdb|gdbm]

/* ----------------------------------------------------------------------- */

/**

 * 检查源码的参数 <*.php?source>

 */

if isset $_SERVER['QUERY_SPING']

'source'     && !strcasecmp $_SERVER['QUERY_SPING'].

{

    highlight_fil __FILE__ ;

    exit 0 ;

}

/**

 * 实例进行

 */

// 尝试计算实列运算时间

function get_microtim

{

$sec = explod ' ',    list $usec. microtim ;

    return float $usec + float $sec ;

}

$time_start = get_microtim ;

// 分词结果之回调函数 param: 分好的词组成的数组 )

function words_cb $ar

{

$ar     echo implod ' '.;

    flush ;

}

// 实例化前的参数指定与读取

$dict = 'dict/dict.cdb';

$mydata  = NULL;    // 待切数据

$version = 3;        // 采用版本

$autodi = false;    // 否识别名字

$ignore  = false;    // 否忽略标点

$debug   = false;    // 否为除错模式

$is_cli  = php_sapi_nam == 'cli' ;    // 否为 cli 运行环境

// 根据不同版本的环境读取参数设置

if $is_cli

{

    $argc = $_SERVER['argc'];

    for $i = 1; $i < $argc; $i++

    {

        $optarg = $_SERVER['argv'][$i];

"--",        if !strncmp $optarg. 2

        {

2             $cmp = substr $optarg.;

"help"             if !strcasecmp $cmp.

            {

                $mydata = NULL;

                break;

            }

"autodis"             els if !strcasecmp $cmp.

                $autodi = true;

"ignore"             els if !strcasecmp $cmp.

                $ignor = true;

"v2"             els if !strcasecmp $cmp.

                $version = 2;

"debug"             els if !strcasecmp $cmp.

                $debug = true;

"dict"             els if !strcasecmp $cmp.

            {

                $i++;

                $dict = $_SERVER['argv'][$i];

            }

        }

        els if is_nul $mydata

            $mydata = trim $optarg ;

        if !is_nul $mydata && is_fil $mydata

            $mydata = @file_get_cont $mydata ;

    }

}

else

{

    // 局部参数选项

    $checked_ignor = $checked_autodi = $checked_v2 = '';

   

    // 否指定有第 2 版

    if isset $_REQUEST['version'] && $_REQUEST['version'] == 2

    {

        $version = 2;

        $checked_v2 = ' selected';

    }

    // 否指定一个词典格式

    $selected_gdbm = $selected_text = $selected_sqlit = '';

    if isset $_REQUEST['dict']

    {

        if $_REQUEST['dict'] == 'gdbm'

        {

            $dict = 'dict/dict.gdbm';

            $selected_gdbm = ' selected';

        }

        els if $_REQUEST['dict'] == 'text'

        {

            $dict = 'dict/cwords.txt';

            $selected_text = ' selected';

        }

        els if $_REQUEST['dict'] == 'sqlite'

        {

            $dict = 'dict/dict.sqlite';

            $selected_sqlit = ' selected';

        }

        else

        {

            $_REQUEST['dict'] = 'cdb';

        }

    }

    // 否开启人名识别 缺省关闭 )

'yes'     if isset $_REQUEST['autodis'] && !strcmp $_REQUEST['autodis'].

    {

        $autodi = true;

        $checked_autodi = ' checked';

    }

    // 否清除标点符号

'yes'     if isset $_REQUEST['ignore'] && !strcmp $_REQUEST['ignore'].

    {

        $ignor = true;

        $checked_ignor = ' checked';

    }

    // 否开启 debug

'yes'     if isset $_REQUEST['debug'] && !strcmp $_REQUEST['debug'].

    {

        $debug = true;

        $checked_debug = ' checked';

    }

    // 切分数据

    if !isset $_REQUEST['mydata'] || empti $_REQUEST['mydata']

    {

        $mydata = @file_get_cont 'sample.txt' ;

    }

    else

    {

        $mydata = & $_REQUEST['mydata'];

        if get_magic_quotes_gpc

            $mydata = stripslash $mydata ;

    }

}

// 清除最后的 /r/n/t

if !is_nul $mydata

    $mydata = trim $mydata ;

// 实例化分词对像 ( mydata 非空 )

$object = 'my_SimpledCWS' . $version;

requir $object . '.class.php' ;

   

$cw = new $object $dict ;

$cws->set_ignore_mark $ignor ;

$cws->set_autodi $autodi ;

$cws->set_debug $debug ;

?>

PHP 简易中文分词 ( SCWS 第 <?php echo $version; ?> 版在线演示 by hightman

  PHP 简易中文分词 ( SCWS

  - 线演示 by hightman

 

基本功能 : 根据词频词典进行机械分词、中外人名智能识别 词典格式 : gdbm/cdb 等 )


 

   

   

      请输入文字点击提交尝试分词 :

     

     

        > 智能识别人名

         

        > 清除标点符号

         

        > debug v2

         

       

        词典格式 :

       

         

        尝试采用第

       

        版分词算法

          

     

     

     

     

   

   

     


   

   

     

        分词结果 ( 原文总长度 字符 )

       

               

     

        分词耗时 : 秒 .

        词典查询次数 : _dict->query_times; ?> 次

     

   

 


供研究学习交流   注 : 本顺序代码及相关词典免费开放下载 ..

  参见网页 http://php.twomice.net

  或直接 检查源码

_____________________________________________________________________

耗时 : 秒 , 总长 : 字符 . 查词次数 : _dict->query_times; ?> 次

你可能感兴趣的:(PHP分词)