上文已经讲了关于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(); //关闭 ?>