在做文章系统的时候,很多时候需要为这篇文章推荐最相近的文章。
解决思路是:给文章设定关键词然后模糊查询进行匹配。找到包含这个关键词的标题,然后给显示出来,作为最接近的文章。
但是有问题:这样的文章,排列顺序并不是我们想要的。
例如:两篇文章:第一篇:“用灵芝泡茶的功效”,第二篇:“泡茶的功效与作用”。我们发布一篇文章设定的关键词是:“茶”“功效”。
通过这样进行匹配,查询出来的结果是包含“茶”和“功效”的所有文章。
在显示上,第一篇排在第二篇的上面。
但是:很明显第二篇文章比第一篇的相似度更高。对“茶”和“功效”的相似度更高。
那么,如何做到最匹配的文章呢?
我想到一个简单的方法:计算关键词在标题上出现的位置的大小进行排序;
$words = "茶,功效";
$oTitle = "用灵芝泡茶的功效";
$oTitleTwo = "泡茶的功效与作用";
echo(strpos($oTitle,'茶'))."
";
echo(strpos($oTitle,'功效'))."
";
echo "
";
echo(strpos($oTitleTwo,'茶'))."
";
echo(strpos($oTitleTwo,'功效'))."
";
echo "