wordpress php 中文分词 开源,WordPress中文分词与智能搜索
问题
WordPress的搜索功能非常简陋,如果用户搜索“日语综合教程+第六册”,WordPress会机械地构造一个wp_posts.post_title LIKE '%日语综合教程+第六册%'的SQL查询送到数据库里,结果十有八九找不到任何文章。因为我的文章里并没有直接出现这种句子,我一般给“日语综合教程”加了书名号,并且“第六册”前面一般有空格。
解决思路
解决思路是对用户的查询字串进行分词,然后用空格隔开,最后送到数据库里查询。
中文分词
调用方法
/**
* 分词
* @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;
}
这样就可以将“日语综合教程+第六册”拆分为“日语 综合 教程 第六册”。
整合WordPress
目前有多种整合方式:
通过filter实现
function rebuild_search_query($request_vars)
{
if (!empty($request_vars['s']))
{
$request_vars['s'] = sae_seg($request_vars['s']);
}
return $request_vars;
}
add_filter('request', 'rebuild_search_query');
这种方式在最大限度上优化了用户体验,但是每个页面都会触发rebuild_search_query,在效率上稍微有点浪费。毕竟不是每个页面都是搜索,也不是每个人都要搜索,更何况大部分搜索都有结果。
通过主题search.php实现
由此,我的想法是,当没有搜索结果的时候,就将搜索语句分词,通过js重定向,发起一次新的搜索:
if(!isset($_GET['seg']))
{
$ret = sae_seg($request_vars['s']);
if ($ret)
{
?>
}
}
这样最大限度保证了效率,用户会看到屏幕闪烁了一下才出结果。
效果
就算你用再奇怪的句子,也能搜索到结果:
wordpress php 中文分词 开源,WordPress中文分词与智能搜索相关推荐
- 北大开源了中文分词工具包,准确度远超Jieba,提供三个预训练模型
车栗子 发自 凹非寺 量子位 报道 | 公众号 QbitAI "土地,快告诉俺老孙,俺的金箍棒在哪?" "大圣,您的金箍,棒就棒在特别适合您的发型." 中文分词 ...
- 公司开源的java分词,Java开源项目cws_evaluation:中文分词器分词效果评估
通过对前文<word分词器.ansj分词器.mmseg4j分词器.ik-analyzer分词器分词效果评估>中写的评估程序进行重构改进,形成了一个新的Java开源项目cws_evaluat ...
- 几款开源的中文分词系统
以下介绍4款开源中文分词系统 python环境下,jieba也不错,实现词性分词性能据说不错. 1.ICTCLAS – 全球最受欢迎的汉语分词系统 中文词法分析是中文信息处理的基础与关键.中国科学院计 ...
- wordpress中文主题,开源wordpress中文免费主题模板
wordpress中文主题,虽然说Wordpress主题语言对网站本身影响并不是太大,但是如果能够满足要求的话,站长还是更偏向于使用国内主题,一方面是wordpress中文主题使用起来都比较容易上手, ...
- NLP(2) | 中文分词分词的概念分词方法分类CRFHMM分词
NLP(1) | 词向量one hot编码词向量编码思想 分词的概念 简单来说就是把词进行分开,分词的难点: 1.如何避免歧义,如:"白开水不如果汁甜".如何让机器避免将" ...
- 中文信息处理(二)—— 分词
文章目录 中文信息处理核心技术 中文分词 NLP任务层次 一.为什么分词? 二.分词为什么难? 三.常见的分词系统 四.几种分词方法 1. 基于词表的分词 1.1 主要思想 1.2 最大匹配分词法关键 ...
- java lucene 中文分词_Lucene的中文分词器IKAnalyzer
分词器对英文的支持是非常好的. 一般分词经过的流程: 1)切分关键词 2)去除停用词 3)把英文单词转为小写 但是老外写的分词器对中文分词一般都是单字分词,分词的效果不好. 国人林良益写的IK Ana ...
- python统计词频瓦尔登湖_自然语言处理之中文分词器-jieba分词器详解及python实战...
(转https://blog.csdn.net/gzmfxy/article/details/78994396) 中文分词是中文文本处理的一个基础步骤,也是中文人机自然语言交互的基础模块,在进行中文自 ...
- python 分词工具_「分词工具」干货 | 史上最全中文分词工具整理 - seo实验室
分词工具 作者 | fendouai 分词服务接口列表 二.准确率评测: THULAC:与代表性分词软件的性能对比 我们选择LTP-3.2.0 .ICTCLAS(2015版) .jieba(C++版) ...
最新文章
- Ubuntu中安装DiscuzX2
- openvidu部署
- jsp 中forward 和 Redirect 的用法区别
- ios取两个数之间的随机小数_如果取到小数区间内的任一数字?
- python观察日志(part8)--文件名和路径
- Hibernate异常之关键字错误
- 简单的光线追踪教程(一)
- CSS颜色代码,二进制颜色代码
- php解析微信emoji字符
- 全球及中国出版行业发展动态与运营盈利前景分析报告2022版
- ch341a编程和ttl刷机区别_USB转TTL(CH341A)的注意事项及说明 -
- 基于JAVA工作流流程编辑OA系统计算机毕业设计源码+数据库+lw文档+系统+部署
- 腾讯秀丽江山之长歌行服务器维护,37秀丽江山之长歌行服务器正式关服公告
- 求生之路2服务器无限尸潮插件,Left 4 Dead 2求生之路2 服务器多特插件8特插件特殊感染无限插件...
- java cms 知乎_可能是史上最全面的学习资源 — VUE 开源库篇(二)
- 7-12 打印倒直角三角形图案
- PyDev Eclipse使用技巧说明
- 用python画一个糖葫芦
- 微信小程序文件目录介绍
- 毛毛雨的博客乐园—内容简介