一个是对用户输入的关键词进行分词,如何才能分的比较准确而且占用较少的系统资源另一个就是如何判断搜索结果同用户关键词的相关性,我看现在百度和google都强调相关性的,我就有点怀疑,程序能不能真正具有这样的智能?

解决方案 »

  1.   

    中文分词技术去看看二元切割法的原理吧。置于相关性,你说的是google和百度的那个:"你是不是要找xx?"。php提供了一个比较两个词相似度的函数:
    int similar_text ( string first, string second [, float &percent] )下面是对它的描述:
    This calculates the similarity between two strings as described in Oliver [1993]. Note that this implementation does not use a stack as in Oliver's pseudo code, but recursive calls which may or may not speed up the whole process. Note also that the complexity of this algorithm is O(N**3) where N is the length of the longest string. 你可以定义一个标准,比如相似度大于50的2个词具有相关性,不过这只能根据字面来判断,无法根据其意判断,如果要实现按照意思来判断就只能建立词表了。医生,大夫:这两个词具备相关性,但是从字面根本没有一点相似度。所以就要建立个词表另这两个词相对应。要想实现智能化的相关性判断,我觉得要两种方法混合用,即先判断两个词判断字面的相似度,否则再判断是否处于一个词表。这些技术说起来轻松,实际上是很复杂和浩大的一项工程