94hwan-PHP框架基本原理

Source:94hwan 与众不同  Author:网络部
2011-09-20 15:14

    phpanalysis 类的词典是用unicode编码编译为二叉树结构的,如果需要修改词条,需要重新编译,国内目前的分词系统大多数都是原生gbk编码 的,phpanalysis是唯一一个用unicode原生分词的分词程序,更适合我们公司的常规项目应用,有需要的项目可以使用,并且环境最好配置 php-apc 这样可以达到最佳性能。

    phpanalysis 类放在 library 文件夹,由于不是直接放在非标准存放路径,因此使用时需要用
    require PATH_LIBRARY.'/phpanalysis/phpanalysis.class.php';
    引入类文件
  
phpanalysis 类基本用法如下:

1、構造函數
public function __construct($source_charset='utf-8', $target_charset='utf-8', $load_all=false, $source='')
$source_charset='utf-8'   源字符串的编码
$target_charset='utf-8'     输出目标的编码
$load_all=false                 是否载入所有词条(false的情况下只载入基本的head)
$source=''                         源字符串

2、設置待分詞的源字符串
public function SetSource( $source, $source_charset='utf-8', $target_charset='utf-8' )

3、執行分詞
public function StartAnalysis($optimize=true)
$optimize 是否对分词结果进行消岐优化

4、獲得最終的分詞結果
public function GetFinallyResult($spword=' ', $word_meanings=false)
$spword 分隔符,通常是空格
$word_meanings 是否包含词义?

5、重新編譯詞典
public function MakeDict( $sourcefile, $maxWordLen=16, $target='' )
$sourcefile  未编译的词典文件(phpanalysis/dict/not-build/base_dic_full.txt)
$maxWordLen 最大词长($maxWordLen/2 个unicode汉字)
$target  目标文件(phpanalysis/dict/base_dic_full.dic)

使用範例:

  1. //岐義處理 
  2. $do_fork = true; 
  3. //新詞識別 
  4. $do_unit = true; 
  5. //多元切分 
  6. $do_multi = false; 
  7. //詞性標注 
  8. $do_prop = false; 
  9. //是否預載全部詞條 
  10. $pri_dict = false; 
  11.  
  12. //初始化類 
  13. $pa = new PhpAnalysis('utf-8''utf-8'$pri_dict); 
  14. $pa->differMax = $do_multi
  15. $pa->unitWord = $do_unit
  16.  
  17. //執行分詞 
  18. $pa->SetSource($str); 
  19. $pa->StartAnalysis( $do_fork ); 
  20. $okresult = $pa->GetFinallyResult(' '$do_prop); 


  >>點擊此浏覽分詞程序的實例演示>>
 

...