【技术揭秘】为什么你搜索不到小程序,原来秘密是... ...

2018-02-28 13:48:02 浏览数 (1)

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

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

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

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

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

然而细心的读者朋友可能又发现了,搜索「京东」能出来「京东购物」、搜索「滴滴」能出来「滴滴出行DiDi」、搜索「携程」能出来「携程酒店机票火车票」,这又是为何?

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

中文分词技术

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

I am very handsome !

可以轻松地分成 i 、am 、very、handsome 四个单词。

而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符。

比如这一句广告语:

南京市长江大桥欢迎您!

你可以理解为:南京,市长,江大桥,欢迎,您 ;

也可以理解为:南京市,长江大桥,欢迎,你;

这样不同的分词方法得到的结果就截然不同。

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

“对随地吐痰者给予处罚”

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

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

然而这并难不倒程序员们

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

字符匹配

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

这是种常用的分词法,字符串匹配的分词方法,又分为3种分词方法。

同样以“不知道你在说什么”为例,不同的匹配法有不同的结果:

  • 正向最大匹配法,也就是把一个词从左至右来分词,就是:“不知道,你,在,说什么”。
  • 反向最大匹配法:也反向最大匹配法就是从右至左,就会分成:“不,知道,你在,说,什么”
  • 最短路径分词法:也就是说一段话里面要求切出的词数是最少的,就会分成:“不知道,你在,说什么”,这就是最短路径分词法,分出来就只有3个词了。
  • 双向最大匹配法:如果关键词前后组合内容被认为粘性相差不大,而搜索结果中也同时包含这两组词的话,进行正反向同时进行分词匹配。

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

理解法

人工智能兴起,于是这种新的方式开始流行,理解分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。

其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。

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

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

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

统计分词法

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

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

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

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

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

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

科普完毕,回到话题本身

1. 为什么小程序的名字都“怪怪”的?

  • 为什么「滴滴」非要叫「滴滴出行DiDi」?
  • 为什么好奇心日报非要叫「Qdaily」?
  • 为什么「饿了么」非要叫「饿了么外卖服务」?

难道是故意想让用户搜不到她们?瞎扯!怎么可能会有这种奇怪的想法……

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

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

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

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

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

但小程序上线第一天,即使是出现这样的情况也是无可厚非,正如和菜头所言:

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

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

0 人点赞