专属客服15058525901 在线咨询 留言/需求提交

搜索不到微信小程序?看完这篇你就知道了

想必大家这两天都已经体验到了微信的小程序,不过还有一些小伙伴在后台留言回复,说搜索不到小程序,或者不知道怎么使用小程序,还有细心的观众发现了一些问题:

1.小程序名字怎么都奇奇怪怪的?

2.怎么也搜不到自己想要的小程序?

比如下面,简直惨不忍睹,如果不是提前知道完整全名,几乎搜不出来。

于是,犀利的网友开始吐槽:

对于一个APP重度使用者来说,小程序意味着一早上起来就解英格玛密码

有的小程序只有通过全文才能搜索出来,然而搜索「京东」却能出来「京东购物」、搜索「滴滴」也能出来「滴滴出行DiDi」、搜索「携程」也能出来「携程酒店机票火车票」,这又是为何?

这里就涉及到了一个「中文分词」技术和「模糊匹配」技术了。(对技术科普没兴趣的可直接跳过,后面有小程序名单和商店)

中文分词技术

我们知道,在英文的行文中,单词之间有空格作为自然分界符,比如下面这句:

I am very handsome !

可以轻松地分成i、am、very、handsome四个单词。而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符。

比如这一句广告语:

南京市长江大桥欢迎您!

你可以理解为:南京,市长,江大桥,欢迎,您;也可以理解为:南京市,长江大桥,欢迎,你。不同的分词方法得到的结果就截然不同。

现代汉语的基本表达单元虽然为“词”,且以双字或者多字词居多,但由于人们认识水平的不同,对词和短语的边界很难去区,比如:

对随地吐痰者给予处罚

“随地吐痰者”本身是一个词还是一个短语,不同的人会有不同的标准,同样的“海上”“酒厂”等等,即使是同一个人也可能做出不同判断,如果汉语真的要分词书写,必然会出现混乱,难度很大。

中文分词(Chinese Word Segmentation)指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。和英文相比,中文分词难得多得多!

然而这并难不倒程序员们。

常见的分词算法分类

目前的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法

字符匹配

又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。

这是种常用的分词法,字符串匹配的分词方法,又分为几种不同的分词方法。同样以“不知道你在说什么”为例,不同的匹配法有不同的结果:

用正向最大匹配法,也就是把一个词从左至右来分词,就是:“不知道,你,在,说什么”。

用反向最大匹配法:也反向最大匹配法就是从右至左,就会分成:“不,知道,你在,说,什么”

用最短路径分词法:也就是说一段话里面要求切出的词数是最少的,就会分成:“不知道,你在,说什么”,这就是最短路径分词法,分出来就只有3个词了。

用双向最大匹配法:如果关键词前后组合内容被认为粘性相差不大,而搜索结果中也同时包含这两组词的话,进行正反向同时进行分词匹配。

简单来说,就是正着拆、反着拆、简单拆,和来来回回拆,总之各种姿势来一遍。

理解法

人工智能兴起,于是这种新的方式开始流行,理解分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。

它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。

由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段。

目前Siri、微软小冰等等都充分运用了人工智能来尝试“理解”人的语句,另外三角兽为锤子手机提供的“Bigbang”分词功能、科大讯飞的语音输入法等都有运用人工智能来实现语义分析。

统计分词法

根据词组的统计,就会发现两个相邻的字出现的频率最多,那么这个词就很重要。就可以作为用户提供字符串中的分隔符,这样来分词。

比如,“我的,你的,许多的,这里,这一,那里”等等,这些词出现的比较多,就从这些词里面分开来。

无论用何种方法,分出来的“词”,一般进入预先录入好的“词典”(词库、数据库)中进行匹配,比如“南京市长江大桥欢迎您”,

可以切分输出:南京市/长江/大桥/欢迎/您

也可切分输出:南京/市长/江大桥/欢迎/您

通常情况下,搜索“长江”就可以搜出来这句话,但如果词库中有”张大桥”这个人名,则也可以通过“张大桥”也可以检索出来。

科普完毕,回到话题本身

1.为什么小程序的名字都“怪怪”的?为什么「滴滴」非要叫「滴滴出行DiDi」?

为什么好奇心日报非要叫「Qdaily」?

为什么「饿了么」非要叫「饿了么外卖服务」?

难道是故意想让用户搜不到她们?瞎扯!

真正的原因,据「京东购物」小程序的一个开发者分析,是因为小程序和公众号在同一套体系之下,而公众号原本就不允许名字重复。这也就可以完美解释为什么小程序的名字看起来奇奇怪怪的了,因为好名字已经都让公众号起了。

2.为什么搜不出来我要的小程序?

既然小程序和公众号在同一体系下,而公众号搜索是支持模糊匹配的,想必小程序肯定是支持模糊匹配的,而且滴滴、京东、美的等许多公司小程序都是可以只通过品牌名检索出来的,因此必定是支持模糊搜索的。

在提交小程序的时候,开发者是可以自己填写关键词的,但是最后这些关键词通不通过,可能需要微信方面来审核。

至此可以得出结论,小程序是支持模糊匹配的,至于为什么有的可以通过品牌名搜得出来,有的却搜不出来,唯一的解释只能是「饿了么」、「好奇心日报」这些词并没有被添加到检索的词库中,也许是开发者忘了添加,也许是没提交了没有通过审核,具体原因不得而知。

但小程序刚刚上线第一天,即使是出现小问题也很正常,正如和菜头在其公众号所言:

既然搜不到,那我如何找到想要的应用?

既然小程序本身目前并没有提供完整的模糊搜索,那么如果在这期间你想要找到想要的应用,唯一的办法就是提前知道小程序的全名了,雷锋网整理了目前较新的“微信小程序大全”以及流传较广的“小程序商店”,可以帮助大家找到自己心仪的小程序。(来源:雷锋网)


想知道最新最全的小程序,可在阅读原文中查看小程序清单。