不是故意迫害新浪微博,也不是对新浪微博不满,在这里指手画脚。我是一个过路人,秉承技术学习的态度,来和大家分析新浪微博搜索分词的不足。
迭词是非常重要的测试元素,我们以“阿里巴 巴”作为测试词汇,去评测效果:
效果是惊人的不令人满意。那么真实的测试“阿里巴巴”效果应该是这样子的:
可见“阿里巴 巴”和“阿里巴巴”这两个看似相同的词,但是在新浪微博的搜索中,差异竟然这么明显。其原因据我推测是:没有做全局分词。例如,“阿里巴 巴”至少应该分为三个词组,但是通过观察,它只用了专业名词词库。阿里巴巴应该切分的5个词组“阿里”,“巴”,“巴”,“巴巴”“阿里巴巴”。如果没有这样做,将会直接导致搜索“阿里巴 巴”效果非常差,几乎搜索不到“阿里巴 巴”相关词汇。
同理,搜索“阿里 巴巴”效果也会很差,事实也证明如此:
当然,他们这样分词也有自己的道理,那就是用户给定的空格,那一定是词与词的分隔符,或者他们自己分词用的分隔符就是空格。在以前可以这样解释,但是搜索在N年前就进入了语义时代,如果还保留以前思想,那一定会落伍。尤其是:你把这三个case放入到百度、360、搜狗搜索里面去,他们都能很好处理。让若你把“QQ”、“Q Q”放入新浪微博搜索,结果会更差。可见新浪微博的搜索非常依赖于词库,可是呢,往往是细节决定成败!