选自Medium
作者:David Foster
机器之心编译
参与:Panda、张倩
在使用搜索引擎的时候,引号、星号、加减号等都能帮我们更快地搜到自己想要的结果,那你有没有试过在搜索词后边加个「VS」呢?近日,一位 medium 博主就介绍了「搜索词」 「VS」的妙用。利用该技巧创建的 ego graph 能帮你学习下棋、购买宠物,甚至是追剧。
你是否尝试过在搜索引擎里输入一个关键词,然后再输入「vs」,看看它能给你自动匹配出什么东西?
事实证明这还挺好玩的,而且还算得上是一种实用技巧,能帮你快速找到你感兴趣的事物的其它对应选项或替代选项。
不仅如此,如果你想要了解一项技术、一款产品或一个概念,这个技巧也能为你提供很有效的帮助。原因有三点:
- 学习新事物的最好方法是了解它与你已经很熟悉的事物的异同点。当在搜索引擎返回的列表中看到你熟悉的事物时,你心中立马就会浮现出「原来如此」感觉。
- 操作很简单,几秒钟就搞定了。
- 在你输入「vs」之后,搜索引擎会认为你想对「vs」前后的事物进行直接比较。你也可以使用「or」,但这样表达的态度远不如 vs 坚决,此时谷歌返回的可选项就可能脱离我们想要的范围,如下所示:
「bert or」返回的结果大都和儿童节目《芝麻街》有关,而「bert vs」返回的结果就是和 BERT 模型相关的了。
在这一观察的基础上,如果将谷歌自动填充的关键词再继续使用「vs」来进一步执行「vs」搜索并不断继续,就能得到一个由关键词连接而成的图网络——自我中心图(ego graph):
BERT 的自我中心图——半径 25
这一技巧可以很好地用于创建技术、产品或想法之间的心理映射图,并让我们了解它们之间的相关关系。
你也可以自己动手构建这样的图网络。
vs 技巧自动化
你可以使用下面这个 URL 来获取 XML 格式的自动填充建议。这个看起来并不很正式,所以最好别尝试向其发送大量查询。
- http://suggestqueries.google.com/complete/search&output=toolbar?&gl=us&hl=en&q=<search_term>
其中,output=toolbar 会以 XML 格式返回响应结果,gl=us 设定的是国家或地区,hl=en 设定了语言,q=<search_term> 是你想要自动填充的关键词。
gl 和 hl 可以分别使用标准的两字母国家地区代码或语言代码。
那就上手试试看吧。
首先选择一个初始关键词,我们这里选择 tensorflow。
首先将 q=tensorflow vs 放入到以上 URL 的对应位置:
- http://suggestqueries.google.com/complete/search?&output=toolbar&gl=us&hl=en&q=tensorflow vs
然后访问它。
这时我们得到了返回的 XML。现在我们需要通过一些标准来判断是否应当保留各个自动填充建议。
这里使用的标准是:
- 自动填充的关键词不应包含我们输入的搜索关键词,即 tensorflow;
- 自动填充的关键词不应重复,比如 pytorch;
- 不应包含有多个 vs 的选项。
筛选之后,我们得到 5 个合适的关键词,然后丢掉其它的。
这只是清理返回建议列表的一种方法,也可以包含仅有一个词的返回项。但究竟采用什么方法取决于具体用例。
使用这套标准后,我们可以得到以下 5 个经过加权的连接:
然后继续。把这 5 个关键词加上「vs」并再次通过以上 URL 搜索自动建议,同样在过滤后保存前 5 个连接。
如此不断继续,扩展 target 列中尚未被探索的词。
这样操作的次数足够多之后,我们可以得到一个包含加权边的表格,并且非常适合使用图来可视化。
自我中心图
前面我们已经提到了自我中心图(ego graph)。下面是 tensorflow 的自我中心图。这里的自我中心图是指所有节点与 tensorflow 节点的距离小于特定值的图。
不过,这里的距离是指什么?
首先我们看看这个图:
tensorflow 的自我中心图——半径 22
我们已经知道从关键词 A 到关键词 B 的边的权重,根据自动建议列表取值 1 到 5。为了得到无向图,我们只需要将两个方向(A→B 和 B→A)的权重加起来即可,这时权重范围为 1 到 10。
那么,每条边的距离就简单地等于「11 - 权重」。选择 11 的原因是边的最大权重为 10,此时两个关键词都出现在彼此的自动建议列表最上方。基于这一定义,关键词之间的最小距离为 1。每个节点的大小和颜色都由边的数量决定,这表示其出现在自动建议列表中的次数。因此,节点越大,这个概念就越重要。
上面的自我中心图的半径为 22,这表示以 tensorflow 为起点,抵达任何一个节点的距离不超过 22。如果将半径增大至 50,情况又如何呢?
tensorflow 的自我中心图——半径 50
很不错吧?这个图包含了 AI 工程师需要了解的大多数已有技术,而且按逻辑进行了聚类。
而这一切都始于一个关键词。
怎样画出这样好看的图?
这要用到一个在线工具 Flourish:https://flourish.studio
它的 GUI 简洁易用,能让你轻松构建图网络与其它图表。值得一试。
如何构建给定半径的自我中心图?
这要用到一个 Python 软件包:networkx,其中有一个很好用的函数:ego_graph。你需要指定半径作为该函数的输入参数。
- ego_grap:hhttps://gist.github.com/davidADSP/35648e480685c6b57ce1efad50170c26#file-ego_graph-py
这里还用到了另一个函数 k_edge_subgraphs 来移除一些偏离主题的关键词。
举个例子,storm 是一个开源的分布式实时计算系统,但同时也是漫威宇宙的一个角色(暴风女)。如果在谷歌搜索框里输入「storm vs」,你猜会出现什么结果?
k_edge_subgraphs 函数可以发现无法被少于或等于 k 次切割分开的节点分组——一般来说 k=2 或 k=3 效果较好。仅保留 tensorflow 所在的子图就能确保我们接近目标,不会偏离到幻想世界去。
使用自我中心图来组织日常生活
不看 TensorFlow 的例子了,我们来看看另一个自我中心图:国际象棋的西班牙开局。
学习国际象棋开局!
这一技巧能让你很快得到最常用开局思路的图,以便你组织研究。
好了,现在来点好玩的。
吃得更健康!
羽衣甘蓝(kale)很健康,但你可能想要换个口味?那就用「kale vs」找到 kale 的自我中心图寻找新的健康食材吧。
kale 的自我中心图——半径 25
想买只宠物狗!
但狗狗品种那么多,时间有限,选哪个好呢?
寻找真爱!
宠物狗和甘蓝还不够,还想找个伴侣?这里有个约会应用 coffee meets bagel 的自我中心图。
你甚至还可以用这个技巧来找可能爱看的剧,比如下面这个英剧《The Office(办公室)》的自我中心图。
谷歌 vs,原来如此好用!
原文链接:https://medium.com/applied-data-science/the-google-vs-trick-618c8fd5359f