马丁传奇

导航

SCWS中文分词,demo演示

上文已经讲了关于SCSW中文分词的安装配置,本节进入demo演示:

<?php
header('Content-Type:text/html;charset=UTF-8');
echo '<pre>';
//////////////////////////////////////////////////////////////////////////////
echo $text="我是一个中国人,我会C++语言,我也有很多T恤衣服,我想知道奥迪A6与第八代索纳塔哪个油耗低,谢谢花好月圆二手奥拓芽菜好吃悦翔V3怎么样卧槽日系车Q5";
echo '<br />';

$so = scws_new();           //创建并返回一个 `SimpleCWS` 类操作对象
$so->set_charset('utf8');   //设定分词词典、规则集、欲分文本字符串的字符集(utf8 和 gbk)
//$so->set_dict('D:/Program Files/AppServ/scws/etc/dict.utf8.xdb');  //强行设定分词所用的词典(注:如果做此设置会使php.ini中已设置的词典失效,如无需要可不设此项)
//$so->set_rule('D:/Program Files/AppServ/scws/etc/rules.utf8.ini'); //强行设定分词所用的新词识别规则集(用于人名、地名、数字时间年代等识别)(注:如果做此设置会使php.ini中已设置的规则失效,如无需要可不设此项)
$so->set_ignore('yes');     //设定分词返回结果时是否去除一些特殊的标点符号之类
$so->set_duality(false);    //设定是否将闲散文字自动以二字分词法聚合

//设定分词返回结果时是否复式分割,如“中国人”返回“中国+人+中国人”三个词。
//也可用 1-15 来表示:(1)短词  (2)二元(将相邻的2个单字组合成一个词) (4)重要单字  (8)全部单字
$so->set_multi(0);

//发送设定分词所要切割的文本
//执行本函数时,若未加载任何词典和规则集,则会自动试图在 ini 指定的缺省目录下查找缺省字符集的词典和规则集
$so->send_text($text);

$getWords = $so->get_words('~v'); //n,nz,un,ns,i
/*
   根据 send_text 设定的文本内容,返回系统中词性符合要求的关键词汇
   > **参数 attr** 是一系列词性组成的字符串,各词性之间以半角的逗号隔开,
   > 这表示返回的词性必须在列表中,如果以~开头,则表示取反,词性必须不在列表中,若为空则返回全部词。  
   > **返回值** 成功返回符合要求词汇组成的数组,返回 false。返回的词汇包含的键值参见 `scws_get_result`
*/
print_r($getWords);

echo '<br />---------------------------------------------------------------------<br />';

$getTops = $so->get_tops(20,'~v,~r');
/*
  根据 send_text 设定的文本内容,返回系统计算出来的最关键词汇列表
   > **参数 limit** 可选参数,返回的词的最大数量,缺省是 10  
   > **参数 attr** 可选参数,是一系列词性组成的字符串,各词性之间以半角的逗号隔开,
   > 这表示返回的词性必须在列表中,如果以~开头,则表示取反,词性必须不在列表中,缺省为NULL,返回全部词性,不过滤。  
   > **返回值** 成功返回统计好的的词汇组成的数组,返回 false。返回的词汇包含的键值如下:
   >   word   _string_ 词本身
   >   times  _int_   词在文本中出现的次数
   >   weight _float_ 该词计算后的权重
   >   attr   _string_ 词性
*/
print_r($getTops);

echo '<br />/////////////////////////////////////////////////////////////////////<br />';

while($getResult = $so->get_result()){
    /*
      根据 send_text 设定的文本内容,返回一系列切好的词汇
       > word _string_ 词本身
       > off  _int_    该词在原文本路的位置-
       > len  _int_    词长度 
       > idf  _float_  逆文本词频 
       > attr _string_ 词性
    */
    print_r($getResult);
}


echo $version = $so->version(); //获取版本

$so->close(); //关闭

?>

 

 

posted on 2013-07-23 23:57  马丁传奇  阅读(1163)  评论(0编辑  收藏  举报