网站中文分词与智能搜索的尝试
分词需求
默认的WP并没有分词功能,搜索时很难找到自己的结果,除非搜索的用户会使用空格,否则,网站不会自动分词的,因为网站只支持手工空格分词
比如,如果你搜 “保定seo公司”,结果如下

如果你搜 “保定 seo 公司” ,内容很灿烂:

但是一般用户习惯了搜索引擎的自动分词,所以,网站如果不能自动分词,那么,用户体现就会差一些。
分词方案
方法一、搜索的时候提示用户用空格分隔,有点小傻。
方法二、解决思路是对用户的查询字串进行分词,然后用空格隔开,最后送到数据库里查询。
中文分词函数
将分词函数 sea_seg()放入function.php
/**
* 分词
* @param $s 原始句子
* @return string 用空格隔开的分词结果
* @author hankcs
*/
function sae_seg($s)
{
$seg = new SaeSegment();
$ret = $seg->segment($s);//$s是原始查询串
if ($ret)
{
$phrase = '';
foreach ($ret as $word)
{
$phrase .= $word['word'] . ' ';
}
$phrase = substr($phrase, 0, strlen($phrase) - 1);
}
return $phrase;
}
改善搜索功能
通过主题search.php实现搜索语句分词,通过js重定向,发起一次新的搜索:
if(!isset($_GET['seg']))
{
$ret = sae_seg($request_vars['s']);
if ($ret)
{
?>
<script type="text/javascript">
<!--
location.replace("<?php echo get_option('siteurl') . '/?s=' . $phrase .'&seg=done'; ?>");
-->
</script>
<?php
}
}
我们试试看:
结果报错了,原因,本站的主题二开过于复杂,难以直接使用外部的解决方案,稍后会想其他办法更新。
若你使用的是国内主题,不妨修改一下试试。
最终解决办法
用了模板兔开发的插件Erphp Search,使用效果可以直接搜索测试。
终于解决,插件地址:https://qie.me/wordpress/erphp-search
本站支持原创只是产权,请购买正版。联系原创作者,请注明米国生活seo推荐,或许有彩蛋。
对了该插件还集成了百度的NLP功能(接口申请地址:申请地址https://console.bce.baidu.com/ai/?fromai=1#/ai/nlp/overview/index),对模板兔和百度表示支持和感谢。