centOs 环境下装置 scws
一、装置 bzip2 及 gcc gcc-c++ yum install bzip2 yum -y install gcc gcc-c++ 二、下载 scws-1.2.3 的代码 wget http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2 三、解压 tar xvjf scws-1.2.3.tar.bz2 四、装置 cd scws-1.2.3 ./configure --prefix=/usr/local/scws make ; make install 顺遂的话曾经编译并装置胜利到 /usr/local/scws 中了,执行上面饬令看看文件能否存正在 ls -al /usr/local/scws/lib/libscws.la 五、用 wget 下载并解压辞书,或从主页下载而后自行解压再将 *.xdb 放入 /usr/local/scws/etc 目次中 cd /usr/local/scws/etc wget http://www.xunsearch.com/scws/down/scws-dict-chs-gbk.tar.bz2 wget http://www.xunsearch.com/scws/down/scws-dict-chs-utf8.tar.bz2 tar xvjf scws-dict-chs-gbk.tar.bz2 tar xvjf scws-dict-chs-utf8.tar.bz2 六、php扩大 假如您需求正在 php 中挪用分词,倡议持续浏览本文装置 php 扩大,不然可跳过没有看。 假定您曾经将 scws 按上述步骤装置到 /usr/local/scws 中。 装置此扩大要求您的 php 以及零碎环境装置了相应的 autoconf automake 对象及 phpize 。 1) 进入源码目次的 phpext/ 目次 cd /var/scws-1.2.3/phpext 2) 执行 phpize (正在PHP装置目次的bin/目次下)[不装置phpize 应用 yum install php-devel 装置] 3) 执行 ./configure --with-scws=/usr/local/scws 4) 若 php 装置正在非凡目次 $php_prefix, 则请正在 configure 后加之 --with-php-config=$php_prefix/bin/php-config 5) 正在 php.ini [/etc/php.ini] 中退出如下几行 [scws] extension = scws.so scws.default.charset = utf8 scws.default.fpath = /usr/local/scws/etc
Windows 环境下装置 scws
php 扩大下载地点 1. 依据您以后用的 PHP 版本,下载相应已编译好的 php_scws.dll 扩大库。 今朝支持 PHP-4.4.x 以及 PHP-5.2.x 系列,下载地点辨别为: php-4.4.x: http://www.xunsearch.com/scws/down/php-4.4.x/php_scws.dll php-5.2.x: http://www.xunsearch.com/scws/down/php-5.2.x/php_scws.dll php-5.3.x: http://www.xunsearch.com/scws/down/php-5.3.x/php_scws.dll 2. 将下载后的 php_scws.dll 放到 php 装置目次的 extensions/ 目次中去(一般是:X:/php/extensions/或 X:/php/ext/)。 3. 建设一个内陆目次放规定集文件以及辞书文件,倡议应用:C:/program files/scws/etc 4. 从 scws 主页上下载辞书文件,解压后将 *.xdb 放到上述目次中 辞书系列:http://www.xunsearch.com/scws/down/scws-dict-chs-gbk.tar.bz2 http://www.xunsearch.com/scws/down/scws-dict-chs-utf8.tar.bz2 http://www.xunsearch.com/scws/down/scws-dict-cht-utf8.tar.bz2 5. 从 scws 主页上下载规定集文件,解压后将 *.ini 放到第 3 步建设的目次 规定集文件紧缩包:http://www.xunsearch.com/scws/down/rules.tgz 解压后有三个文件辨别为 rules.ini rules.utf8.ini rules_cht.utf8.ini 将三件文件拷到第 3 步所述的目次中 6. 修正 php.ini 通常位于 C:/windows/php.ini 或 C:/winnt/php.ini 之类的目次, 正在 php.ini 的末尾退出如下几行: [scws] ; ; 留意请反省 php.ini 中的 extension_dir 的设定值能否正确, 不然请将 extension_dir 设为空, ; 再把 php_scws.dll 指定为相对门路。 ; extension = php_scws.dll scws.default.charset = gbk scws.default.fpath = "c:/program files/scws/etc" 5. 重开 web 效劳器便可实现。
php 代码
php 代码 <?php $so = scws_new(); //$so->set_charset('utf-8'); // 这里不挪用 set_dict 以及 set_rule 零碎会主动试挪用 ini 中指定门路下的辞书以及规定文件 $so->send_text("我是一个中国人,我会C++言语,我也有不少T恤衣服 name is hai"); while ($tmp = $so->get_result()) { print_r($tmp); } $so->close(); ?> 预约义常量 ----------- * `SCWS_XDICT_XDB` 辞书文件为 XDB * `SCWS_XDICT_MEM` 将辞书全副加载到内存里 * `SCWS_XDICT_TXT` 辞书文件为 TXT(纯文本) * `SCWS_MULTI_NONE` 没有进行复合分词 * `SCWS_MULTI_SHORT` 短词复合 * `SCWS_MULTI_DUALITY` 散字二元复合 * `SCWS_MULTI_ZMAIN` 首要单字 * `SCWS_MULTI_ZALL` 全副单字 预约义类 --------- 这是一个相似 `Directory` 的内置式伪类操作,类办法建设请应用 `scws_new()` 函数,而不克不及间接用 `new SimpleCWS`。 不然没有会蕴含有 handle 指针,将无奈正确操作。它蕴含的办法有: ```php class SimpleCWS { resource handle; bool close(void); bool set_charset(string charset) bool add_dict(string dict_path[, int mode = SCWS_XDICT_XDB]) bool set_dict(string dict_path[, int mode = SCWS_XDICT_XDB]) bool set_rule(string rule_path) bool set_ignore(bool yes) bool set_multi(int mode) bool set_duality(bool yes) bool send_text(string text) mixed get_result(void) mixed get_tops([int limit [, string xattr]]) bool has_word(string xattr) mixed get_words(string xattr) string version(void) }; ``` > **留意** 类办法的用与支 scws_xxx_xxx 系列函数用法分歧,只不外免去第一参数, > 故没有另外编写阐明,请参见函数列表便可。 **例子1** 应用类办法分词 ```php <?php $so = scws_new(); $so->set_charset('gbk'); // 这里不挪用 set_dict 以及 set_rule 零碎会主动试挪用 ini 中指定门路下的辞书以及规定文件 $so->send_text("我是一个中国人,我会C++言语,我也有不少T恤衣服"); while ($tmp = $so->get_result()) { print_r($tmp); } $so->close(); ?> ``` **例子2** 应用函数提取高频词 ```php <?php $sh = scws_open(); scws_set_charset($sh, 'gbk'); scws_set_dict($sh, '/path/to/dict.xdb'); scws_set_rule($sh, '/path/to/rules.ini'); $text = "我是一个中国人,我会C++言语,我也有不少T恤衣服"; scws_send_text($sh, $text); $top = scws_get_tops($sh, 5); print_r($top); ?> ``` > **留意** 为不便应用,当 `SimpleCWS::send_text` 办法或 `scws_send_text()` 函数被挪用前而且不 > 加载任何辞书以及规定集时,零碎会主动正在 `scws.default.fpath` (ini设置装备摆设)目次中查找相应的字符集辞书。 > 辞书以及规定文件的定名形式为 dict[.字符集].xdb 以及 rules[.字符集].ini ,当字符集是 gbk 时中括号外面的 > 局部则没有需求,间接应用 dict.xdb 以及 rules.ini 而没有是 dict.gbk.xdb 。 > > 别的,输出的文字,辞书、规定文件这三者的字符集必需对立,假如没有是默许的 gbk 字符集请挪用 > `SimpleCWS::set_charset` 或 `scws_set_charset` 来设定,不然可能呈现不测谬误。 函数详解 -------- 1. `mixed scws_new(void)` 创立并前往一个 `SimpleCWS` 类操尴尬刁难象。 > **前往值** 胜利前往类操作句柄,失败前往 false。 2. `mixed scws_open(void)` 创立并前往一个分词操作句柄。 > **前往值** 胜利前往 scws 操作句柄,失败前往 false。 3. `bool scws_close(resource scws_handle)` `SimpleCWS::close(void)` 封闭一个已关上的 scws 分词操作句柄。 > **参数 scws_handle** 即以前由 scws_open 关上的前往值。 > **前往值** 始终为 true > **留意** 前面的 API 中省去引见 scws_handle 参数,含意以及本函数相反。 4. `bool scws_set_charset(resource scws_handle, string charset)` `bool SimpleCWS::set_charset(string charset)` 设定分词辞书、规定集、欲分文本字符串的字符集。 > **参数 charset** 要新设定的字符集,今朝只支持 utf8 以及 gbk。(注:默许为 gbk,utf8没有要写成utf-8) > **前往值** 始终为 true 5. `bool scws_add_dict(resource scws_handle, string dict_path [, int mode])` `bool SimpleCWS::add_dict(string dict_path [, int mode])` 增加分词所用的辞书,新退出的优先查找。 > **参数 dict_path** 辞书的门路,能够是绝对门路或齐全门路。(遵照平安模式下的 open_basedir) > **参数 mode** 可选,示意加载的形式。其值有: > > - SCWS_XDICT_TXT 示意要读取的辞书文件是文本格局,能够以及后2项连系用 > - SCWS_XDICT_XDB 示意间接读取 xdb 文件(此为默许值) > - SCWS_XDICT_MEM 示意将 xdb 文件全副加载到内存中,以 XTree 构造寄存,可用异或连系另外2个应用。 > > **前往值** 胜利前往 true 失败前往 false 6. `bool scws_set_dict(resource scws_handle, string dict_path [, int mode])` `bool SimpleCWS::set_dict(string dict_path [, int mode])` 设定分词所用的辞书并肃清已存正在的辞书列表。 > **参数 dict_path** 辞书的门路,能够是绝对门路或齐全门路。(遵照平安模式下的 open_basedir) > **参数 mode** 可选,示意加载的形式。参见 `scws_add_dict` > **前往值** 胜利前往 true 失败前往 false 7. `bool scws_set_rule(resource scws_handle, string rule_path)` `bool SimpleCWS::set_rule(string rule_path)` 设定分词所用的新词辨认规定集(用于人名、地名、数字工夫年月等辨认)。 > **参数 rule_path** 规定集的门路,能够是绝对门路或齐全门路。(遵照平安模式下的 open_basedir) > **参数 mode** 可选,示意加载的形式。参见 `scws_add_dict` > **前往值** 胜利前往 true 失败前往 false 8. `bool scws_set_ignore(resource scws_handle, bool yes)` `bool SimpleCWS::set_ignore(bool yes)` 设定分词前往后果时能否去除了一些非凡的标点符号之类。 > **参数 yes** 设定值,假如为 true 则后果中没有前往标点符号,假如为 false 则会前往,缺省为 false。 > **前往值** 始终为 true 9. `bool scws_set_multi(resource scws_handle, int mode)` `bool SimpleCWS::set_multi(bool yes)` 设定分词前往后果时能否复式宰割,如“中国人”前往“中国+人+中国人”三个词。 > **参数 mode** 复合分词法的级别,缺省没有复合分词。取值由上面几个常量异或组合(也可用 1-15 来示意): > > - SCWS_MULTI_SHORT (1)短词 > - SCWS_MULTI_DUALITY (2)二元(将相邻的2个单字组分解一个词) > - SCWS_MULTI_ZMAIN (4)首要单字 > - SCWS_MULTI_ZALL (8)全副单字 > > **前往值** 始终为 true 10. `bool scws_set_duality(resource scws_handle, bool yes)` `bool SimpleCWS::set_duality(bool yes)` 设定能否将闲散文字主动以二字分词法聚合 > **参数 yes** 设定值,假如为 true 则后果中多个单字会主动按二分法聚分,假如为 false 则没有解决,缺省为 false。 > **前往值** 始终为 true 11. `bool scws_send_text(resource scws_handle, string text)` `bool SimpleCWS::send_text(string text)` 发送设定分词所要切割的文本。 > **参数 text** 要切分的文本的内容。 > **前往值** 胜利前往 true 失败前往 false > **留意** 零碎底层解决形式为对该文本添加一个援用,故不管多长的文本其实不会造成内存糜费; > 执行本函数时,若未加载任何辞书以及规定集,则会主动试图正在 ini 指定的缺省目次下查找缺省字符集的辞书以及规定集。 12. `mixed scws_get_result(resource scws_handle)` `mixed SimpleCWS::get_result()` 依据 send_text 设定的文本内容,前往一系列切好的辞汇。 > **前往值** 胜利前往切好的辞汇组成的数组,若无更多辞汇,前往 false。前往的辞汇蕴含的键值以下: > > - word _string_ 词自身 > - idf _float_ 逆文本词频 > - off _int_ 该词正在原文本路的地位 > - attr _string_ 词性 > > **留意** 每一次切词后本函数应该轮回挪用,直到前往 false 为止,由于顺序每一次前往的词数是没有确定的。 13. `mixed scws_get_tops(resource scws_handle [, int limit [, string attr]])` `mixed SimpleCWS::get_tops([int limit [, string attr]])` 依据 send_text 设定的文本内容,前往零碎较量争论进去的最要害辞汇列表。 > **参数 limit** 可选参数,前往的词的最年夜数目,缺省是 10 > **参数 attr** 可选参数,是一系列词性组成的字符串,各词性之间以半角的逗号离隔, > 这示意前往的词性必需正在列表中,假如以~扫尾,则示意取反,词性必需没有正在列表中,缺省为NULL,前往全副词性,不外滤。 > **前往值** 胜利前往统计好的的辞汇组成的数组,前往 false。前往的辞汇蕴含的键值以下: > > - word _string_ 词自身 > - times _int_ 词正在文本中呈现的次数 > - weight _float_ 该词较量争论后的权重 > - attr _string_ 词性 14. `mixed scws_get_words(resource scws_handle, string attr)` `mixed SimpleCWS::get_words(string attr)` 依据 send_text 设定的文本内容,前往零碎中词性合乎要求的要害辞汇。 > **参数 attr** 是一系列词性组成的字符串,各词性之间以半角的逗号离隔, > 这示意前往的词性必需正在列表中,假如以~扫尾,则示意取反,词性必需没有正在列表中,若为空则前往全副词。 > **前往值** 胜利前往合乎要求辞汇组成的数组,前往 false。前往的辞汇蕴含的键值参见 `scws_get_result` 15. `bool scws_has_words(resource scws_handle, string attr)` `mixed SimpleCWS::has_words(string attr)` 依据 send_text 设定的文本内容,前往零碎中能否包罗合乎词性要求的要害词。 > **参数 attr** 是一系列词性组成的字符串,各词性之间以半角的逗号离隔, > 这示意前往的词性必需正在列表中,假如以~扫尾,则示意取反,词性必需没有正在列表中,若为空则前往全副词。 > **前往值** 假如有则前往 true,不就前往 false。 16. `string scws_version(void)` `string SimpleCWS::version(void)` 前往 scws 版本号称号信息(字符串)。
以上就是若何装置 php scws(分词组件)?的具体内容,更多请存眷资源魔其它相干文章!
标签: php php开发教程 php开发资料 php开发自学 scws
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!