💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[Xunsearch PHP-SDK](http://www.xunsearch.com) v1.4.8 权威指南 1. [用法简单说明](#) 1. [使用注意事项](#) # 在 Xunsearch 使用 SCWS 为了便于用户在安装完 `Xunsearch` 后可以通过服务端内置的 scws[1](http://www.xunsearch.com/scws/) 实现分词,而不需要另外再安装 scws 的 php 扩展。从 `1.3.1` 版本起,`Xunsearch` 的 PHP-SDK 中加入 [XSTokenizerScws](#) 类,可通过搜索服务端执行分词功能。 ### 1. 用法简单说明[?]() 这儿只做简单介绍和示范,更多详细的用法请点击阅读类参考手册 [XSTokenizerScws](#)。 #### 创建分词对象 ~~~ $xs = new XS(...); // 必须先创建一个 xs 实例,否则会抛出异常 $tokenizer = new XSTokenizerScws; // 直接创建实例 ~~~ ### 获取分词结果 调用 [XSTokenizerScws::getResult](#) 对参数指定的文本字符串执行分词,并返回词汇数组,每个词汇包含 3 个元素,其中: - *off* 表示这个词汇在源参数文本 *$text* 中的起始偏移位置 - *attr* 这个词汇的词性,使用北大标注 - *word* 分好的词条 ~~~ $text = '迅搜(xunsearch)是优秀的开源全文检索解决方案'; $words = $tokenizer->getResult($text); print_r($words); ~~~ ### 提取重要词汇 调用 [XSToenizerScws::getTops](#) 可以简单提取重要词汇,它支持三个参数,返回的词汇数组元素和分词结果类似,只是把 *off* 替换为 *times* 表示这个词在文本中出现的总次数。 ~~~ $text = '迅搜(xunsearch)是优秀的开源全文检索解决方案'; // 提取前 5 个重要词,要求词性必须是 n 或v 或 vn $tops = $tokenizer->getTops($text, 5, 'n,v,vn'); print_r($tops); ~~~ ### 判断是否包含指定词性的词汇 这项功能通过 [XSTokenizerScws::hasWord](#) 完成,主要目的是用于类似黑词判断。您可以自制一个词典,并将黑词统一设置为一个独特的属性,比如 "@",那么就可以用该功能判断一段文本是否包含黑词。 ~~~ $text = '...'; if ($tokenizer->hasWord($text, '@')) { // 包含词性为 '@' 的词 } else { // 为包含词性为 '@' 的词 } ~~~ ### 2. 使用注意事项[?]() - 这个分词类底层实现是与搜索服务端通讯完成的,因此在使用前必须先初始化一个 [XS](#) 对象 - 这个分词器虽然实现了 [XSTokenizer::getTokens](#),但不推荐直接指定到配置文件的tokenizer 选项中,因为这样做只会让性能更低。 $Id$ [« 同义词搜索功能](#) Copyright © 2008-2011 by [杭州云圣网络科技有限公司](http://www.xunsearch.com) All Rights Reserved. ![](https://box.kancloud.cn/2015-09-10_55f11d0600452.gif) ![](https://box.kancloud.cn/2015-09-10_55f11d060a22e.gif) ![](https://box.kancloud.cn/2015-09-10_55f11d0610dd3.gif)