万文多图之搜索引擎使用教程[通俗易懂]

2022-09-01 10:16:28 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

  大家好,我是herosunly,985院校硕士毕业,现担任算法研究员一职。CSDN博客专家,2020年博客之星TOP。曾获得阿里云天池比赛第一名、科大讯飞比赛第一名、CCF比赛第一名等Top名次,拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法行业就业。其中经常被同学和同事夸赞的一项能力就是搜索,所以今天特意给大家分享搜索引擎使用方法,希望能对大家有所帮助。如果大家觉得有用,请帮忙点赞评论收藏(一键三连),谢谢大家的支持~

文章目录

  • 1. 写在前面的话
  • 2. 搜索引擎的选择
  • 3. 搜索符号语言
    • 3.1 精确搜索(双引号)
    • 3.2 指定网站搜索(site:)
    • 3.3 或运算(OR)
    • 3.4 非运算(减号)
    • 3.5 改变运算顺序(小括号)
    • 3.6 同义词(波浪号)
    • 3.7 通配符(星号)
    • 3.8 范围表示符(两个点)
    • 3.9 时间范围表示符(datarange:)
    • 3.10 指定文件格式(filetype:)
    • 3.11 英语单词详细解释(define:)
    • 3.12 查找相关网站(related:)
    • 3.13 在URL、标题、主题、正文中搜索
  • 4. 搜索思维浅谈

1. 写在前面的话

  对于小白编程者来说,无论是在编程过程中,还是在软件安装、配置、使用过程中,往往都会遇到各种意料之外的Bug,但很多时候遇到Bug后不知所措,就很容易从入门走向放弃。

  时至今日,当有同学在群里提问时,也不时会看到下图的解决方案,即通过百度或者其他搜索引擎来解决问题:

  但问题来了,究竟如何使用搜索引擎呢?以及如何更高效的使用搜索引擎呢?

2. 搜索引擎的选择

  简单的说就是一句话,优先谷歌,百度备选。主要原因在于以下几点:

  1. 谷歌广告少,百度广告多。
  2. 在技术问题的解决方案上,谷歌的结果来自全世界的开发者,而百度主要来源于中国的开发者。众人拾柴火焰高,这也就是为什么搜索技术问题优先使用谷歌的最重要原因。

  至于如何能用上谷歌,不在本文讨论范围内。请自行解决

3. 搜索符号语言

  除了最简单而且常用的搜索方法,即在搜索框中输入内容进行搜索以外,还可以通过符号来使用更高级的搜索功能。

3.1 精确搜索(双引号)

  最精确的搜索方法是对关键词加上双引号,就能得到和关键词完全吻合的搜索结果。

  比如在输入”python network” tutorial,此时就会把python和network当成一个整体来进行搜索。

  而不输入双引号,则在第三页出现以下结果:

  精确搜索可使用在形容词 名词或者多个名词构成的地名、人名和专用名词的情况下,帮助用户完成结果筛选,在搜索信息较为常见或者搜索结果较多时使用最佳。

3.2 指定网站搜索(site:)

  对于个人搜索而言,本质上是在合适的来源找到想要的内容。但如果直接使用搜索引擎,往往会得到很多冗余的数据源,所以需要花费大量的时间进行筛选和鉴别,从而得到有效的信息。

  如果平日内进行了大量的积累,直接在指定源上搜索就能够大大提高解决问题的效率,比如在debug时可以在stackoverflow上进行搜索,亦或者在CSDN上寻找优秀学习教程:

  搜索关键词为:module ‘aioredis’ has no attribute ‘create_redis’ site:stackoverflow.com

  搜索关键词为:阿里云冠军经验分享 site:csdn.net

3.3 或运算(OR)

  通过或运算可以同时搜索两个关键词或者关键词组(需要注意的是要用大写的OR):

  或运算可以提高搜索的容错率,尤其是在未能确定哪个关键词是最重要的搜索关键词时使用。值得一提的是,OR的同义运算符为|(竖杠),用OR或者|均可。

3.4 非运算(减号)

  非运算是用在明确排除掉部分信息时使用,比如只想保留多义词中的某一个特定的含义。

  首先以python为例;

  python是个多义词,它不仅是最热门的编程语言,而包含了大蟒蛇的意思。通过非运算可以删除掉大蟒蛇的搜索结果。可以看到搜索结果减少了三千万。

3.5 改变运算顺序(小括号)

  涉及到复杂运算后,运算顺序是极其重要的。那如何保证运算顺序是自己想要的呢?可以使用小括号来达到上述效果。

  上文中使用了python book OR java book,那如何进行简化呢?如下图所示:

3.6 同义词(波浪号)

  有时想在保留搜索关键词语义的基础上增加搜索到的结果,那该如何进行操作呢?具体来说比如想查找Python的相关教程,可以搜索python tutorial,但包含教程的关键词不仅为tutorial,也可能是lecture或者seminar。

  由上图可见,使用波浪号即同义词表示后,搜索结果多了四个亿,是不是很有用啊。在搜索结果寥寥无几时,可能是个很不错的选择。

3.7 通配符(星号)

  一般来说,通配符星号(*)主要是用在表示文件路径中。但在搜索引擎中,它可以用来缺失的关键词,比如只记得某个函数名称的一部分时,可以使用星号进行表示。例如,在机器学习常用库Numpu中有个很常用的API:concatenate,但只能隐隐约约想起前几个字母,如下图所示:

3.8 范围表示符(两个点)

  在实际生活或者工作中,往往需要查阅多年的数据,比如1990年到2021年中国的GDP、1974年到2021年的美国总统。那该如何进行表示呢?

  以1974年1974年到2021年的美国总统为例,在输入框中输入American president 1974…2021,如下所示:

  在链接为https://www.loc.gov/rr/print/list/057_chron.html中可以查阅到相关数据,其中第一列为总统,第二列为总统夫人,第三列为副总统。

  范围表示符不仅能表示时间范围,也能够表示其他的范围。但表示时间范围上颗粒度过大,是否有更精确的查询方法呢?

3.9 时间范围表示符(datarange:)

  对于上文中的提问,答案是使用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,如下图所示:

3.10 指定文件格式(filetype:)

  使用该操作符能够快速找到包含指定格式的文件,该操作适用于各种文件格式,例如PDF文件、word文档、PPT幻灯片、excel表格等格式。

  举例来说,我们已知神经网络与深度学习这本书的PDF文件是开源的,想下载后进行深入学习,则可输入搜索关键词为:神经网络与深度学习 filetype:pdf,如下图所示:

  可得到该书的对应下载链接为https://nndl.github.io/nndl-book.pdf。

3.11 英语单词详细解释(define:)

  在学习英语单词时,学习单词对应的中文含义往往并不能准确理解该单词,尤其是部分单词中文含义相同之时,此时最好的学习方法就是查阅它的英文解释。比如我们想查询machine learning对应的详细解释,则可输入搜索关键词为:define: machine learning,如下图所示:

  顺便说一句,百度并不支持上述功能,哈哈。

3.12 查找相关网站(related:)

  如果对谷歌的PageRank算法有所了解的话,就会知道在谷歌的数据中网站之间是相互引用的。所以就可以轻松的查找到相关的网站。比如,我想了解与Python官网相关联的网站,则可输入搜索关键词为:related:python.org,如下图所示:

  可以看到相关网站也是常用的几门编程语言等。但美中不足的是,该功能仅可用在体量较大的国际网站上。

3.13 在URL、标题、主题、正文中搜索

  为了简单起见,方便给大家进行演示,每项的搜索内容均为python。

  • 在URL中搜索:inurl:python
  • 在标题中进行搜索:intitle:python
  • 在主题中进行搜索:insubject:python
  • 在文本中进行搜索:intext:python

4. 搜索思维浅谈

  搜索思维本质上是把自然语言(人类语言)表达成更让机器容易理解的形式。那什么样的表达机器更容易理解呢?相比于复杂的句子而言,机器更容易理解若干个。在早些年使用搜索引擎时,使用若干个词进行搜索效率要比用句子高太多倍。随着自然语言处理领域的蓬勃发展,神经网络模型已经能够理解句子的语义,所以使用句子进行搜索也能够达到较好的效果。但如果发现搜索结果并不如意,不妨尝试自己提取句子中的关键词进行搜索。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143721.html原文链接:https://javaforall.cn

0 人点赞