大家好,我是herosunly,985院校硕士毕业,现担任算法研究员一职。CSDN博客专家,2020年博客之星TOP。曾获得阿里云天池比赛第一名、科大讯飞比赛第一名、CCF比赛第一名等Top名次,拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法行业就业。其中经常被同学和同事夸赞的一项能力就是搜索
,所以今天特意给大家分享搜索引擎使用方法,希望能对大家有所帮助。如果大家觉得有用,请帮忙点赞评论收藏(一键三连),谢谢大家的支持~
对于小白编程者来说,无论是在编程过程中,还是在软件安装、配置、使用过程中,往往都会遇到各种意料之外的Bug,但很多时候遇到Bug后不知所措,就很容易从入门走向放弃。
时至今日,当有同学在群里提问时,也不时会看到下图的解决方案,即通过百度或者其他搜索引擎来解决问题:
但问题来了,究竟如何使用搜索引擎呢?以及如何更高效的使用搜索引擎呢?
简单的说就是一句话,优先谷歌,百度备选。主要原因在于以下几点:
至于如何能用上谷歌,不在本文讨论范围内。请自行解决。
除了最简单而且常用的搜索方法,即在搜索框中输入内容进行搜索以外,还可以通过符号来使用更高级的搜索功能。
最精确的搜索方法是对关键词加上双引号,就能得到和关键词完全吻合的搜索结果。
比如在输入"python network" tutorial,此时就会把python和network当成一个整体来进行搜索。
而不输入双引号,则在第三页出现以下结果:
精确搜索可使用在形容词+名词或者多个名词构成的地名、人名和专用名词的情况下,帮助用户完成结果筛选,在搜索信息较为常见或者搜索结果较多时使用最佳。
对于个人搜索而言,本质上是在合适的来源找到想要的内容。但如果直接使用搜索引擎,往往会得到很多冗余的数据源,所以需要花费大量的时间进行筛选和鉴别,从而得到有效的信息。
如果平日内进行了大量的积累,直接在指定源上搜索就能够大大提高解决问题的效率,比如在debug时可以在stackoverflow上进行搜索,亦或者在CSDN上寻找优秀学习教程:
搜索关键词为:module ‘aioredis’ has no attribute ‘create_redis’ site:stackoverflow.com
搜索关键词为:阿里云冠军经验分享 site:csdn.net
通过或运算可以同时搜索两个关键词或者关键词组(需要注意的是要用大写的OR):
或运算可以提高搜索的容错率,尤其是在未能确定哪个关键词是最重要的搜索关键词时使用。值得一提的是,OR的同义运算符为|(竖杠),用OR或者|均可。
非运算是用在明确排除掉部分信息时使用,比如只想保留多义词中的某一个特定的含义。
首先以python为例;
python是个多义词,它不仅是最热门的编程语言,而包含了大蟒蛇的意思。通过非运算可以删除掉大蟒蛇的搜索结果。可以看到搜索结果减少了三千万。
涉及到复杂运算后,运算顺序是极其重要的。那如何保证运算顺序是自己想要的呢?可以使用小括号来达到上述效果。
上文中使用了python book OR java book,那如何进行简化呢?如下图所示:
有时想在保留搜索关键词语义的基础上增加搜索到的结果,那该如何进行操作呢?具体来说比如想查找Python的相关教程,可以搜索python tutorial,但包含教程的关键词不仅为tutorial,也可能是lecture或者seminar。
由上图可见,使用波浪号即同义词表示后,搜索结果多了四个亿,是不是很有用啊。在搜索结果寥寥无几时,可能是个很不错的选择。
一般来说,通配符星号(*)主要是用在表示文件路径中。但在搜索引擎中,它可以用来缺失的关键词,比如只记得某个函数名称的一部分时,可以使用星号进行表示。例如,在机器学习常用库Numpu中有个很常用的API:concatenate,但只能隐隐约约想起前几个字母,如下图所示:
在实际生活或者工作中,往往需要查阅多年的数据,比如1990年到2021年中国的GDP、1974年到2021年的美国总统。那该如何进行表示呢?
以1974年1974年到2021年的美国总统为例,在输入框中输入American president 1974…2021,如下所示:
在链接为https://www.loc.gov/rr/print/list/057_chron.html中可以查阅到相关数据,其中第一列为总统,第二列为总统夫人,第三列为副总统。
范围表示符不仅能表示时间范围,也能够表示其他的范围。但表示时间范围上颗粒度过大,是否有更精确的查询方法呢?
对于上文中的提问,答案是使用datarange:time1-time2,需要注意的是time1和time2的时间格式为朱利安(Julian time format)。可点击链接http://www.longpelaexpertise.com.au/toolsJulian.php将时间进行转换。比如想查询2021年1月1日到2021年10月24日新冠感染人数,输入则应为COVID-19 infected number daterange:21001-21141,如下图所示:
使用该操作符能够快速找到包含指定格式的文件,该操作适用于各种文件格式,例如PDF文件、word文档、PPT幻灯片、excel表格等格式。
举例来说,我们已知神经网络与深度学习这本书的PDF文件是开源的,想下载后进行深入学习,则可输入搜索关键词为:神经网络与深度学习 filetype:pdf,如下图所示:
可得到该书的对应下载链接为https://nndl.github.io/nndl-book.pdf。
在学习英语单词时,学习单词对应的中文含义往往并不能准确理解该单词,尤其是部分单词中文含义相同之时,此时最好的学习方法就是查阅它的英文解释。比如我们想查询machine learning对应的详细解释,则可输入搜索关键词为:define: machine learning,如下图所示:
顺便说一句,百度并不支持上述功能,哈哈。
如果对谷歌的PageRank算法有所了解的话,就会知道在谷歌的数据中网站之间是相互引用的。所以就可以轻松的查找到相关的网站。比如,我想了解与Python官网相关联的网站,则可输入搜索关键词为:related:python.org,如下图所示:
可以看到相关网站也是常用的几门编程语言等。但美中不足的是,该功能仅可用在体量较大的国际网站上。
为了简单起见,方便给大家进行演示,每项的搜索内容均为python。
搜索思维本质上是把自然语言(人类语言)表达成更让机器容易理解的形式。那什么样的表达机器更容易理解呢?相比于复杂的句子而言,机器更容易理解若干个词。在早些年使用搜索引擎时,使用若干个词进行搜索效率要比用句子高太多倍。随着自然语言处理领域的蓬勃发展,神经网络模型已经能够理解句子的语义,所以使用句子进行搜索也能够达到较好的效果。但如果发现搜索结果并不如意,不妨尝试自己提取句子中的关键词进行搜索。