正确的搜索查询是一个金发姑娘式的努力:不太具体,你不会得到结果,也不太广泛,你会得到太多。
同时,语义搜索是关于理解搜索者将什么放入搜索框。
换句话说,通过语义搜索,我们在搜索者所在的地方与他们见面,而不是要求他们在我们所在的地方和我们见面。
输入查询放宽和查询范围。
搜索引擎通过同义词、查询词删除和查询范围等技术让搜索者立即找到正确的内容。
我们避免遗漏其他情况下不会出现的相关信息,并且我们遗漏了不相关的信息。
查询松弛和范围界定与精确性和召回的概念密切相关。
Precision度量返回的结果是否相关,recall度量是否返回相关结果。
提高召回率的一种方法是通过查询扩展。
查询扩展
查询扩展就是扩展查询将匹配的内容,以获得更好的结果。
搜索引擎可能应用查询扩展的主要原因是,有一些迹象表明,没有查询扩展的“基本”搜索结果对搜索者来说并不令人满意。
在本系列中,我们已经看到了一些扩展查询的方法。
拼写错误容忍、复数忽略、词干和引申都是提高搜索召回率的方法。
我们已经看到了这些查询
泛化方法是搜索的基础,但其他查询扩展方法也同样重要。
2008年《搜索引擎杂志》上的一篇文章介绍了谷歌如何进行查询扩展!
本文讨论的不仅仅是词干和排版公差,还包括翻译、单词删除和同义词。
同义词和替代词
乔治·奥威尔(George Orwell)在他的小说《1984》中引入了新话,这是有原因的,也是为什么它在一个关于完全控制到平淡的生活的故事中引起共鸣的原因。
语言的丰富性是由用不同的词和短语说出相同或几乎相同的东西的能力驱动的。“伟大”可以是“了不起的”,“低成本”是“便宜”的近邻
同时,这些不同的词可以帮助我们更准确地指代除最小方式外所有相似的项目。
这些差异有时非常小,以至于这种精确性反而会导致混乱,不太可能找到我们想要的东西。
想要摇椅的客户可能不知道是搜索“摇椅”、“摇椅”还是简单的“椅子”
这就是同义词和替代词提供价值的地方。
它们帮助我们扩大搜索结果中的召回。
同义词和替代词相似,但不相同。
(你可以说它们不是同义词。)
同义词指两个意思相同的词或短语。
替代词指的是相似的词或短语,但有一定程度的差异。
同义词
通常,同义词通过同义词列表进入搜索引擎。
这些列表可以来自预定义的列表,例如通用电子商务术语。
预定义列表的问题
一家公司的搜索引擎的同义词不一定适用于另一家公司。
什么是控制台?你可能会立即想到视频游戏,但其他人可能会想到汽车或音乐。
因此,许多同义词列表都是内部创建的。
在搜索实现过程的开始,内部主题专家会考虑所有可能是其他词同义词的词,并将它们添加到搜索引擎配置中。
(事实上,这通常是对发生的事情的理想化看法。通常,创建同义词列表的人不是主题专家,而是实现搜索引擎的人。)
通常,这个初始列表将提供一个良好的起点,但肯定会缺少同义词。
发现搜索者将使用哪些术语的唯一真正方法是让他们搜索。
使用分析发现同义词
您将很快在分析查询中看到可能使用新同义词的信息。
这些查询返回的结果为零,这表明搜索者正在寻找他们找不到的东西。
现在,并不是所有这些查询都会为您提供一个新的同义词。
有时,搜索者会寻找你没有的项目。
尽管如此,你会看到一些问题,你会立即想到,“哦,我们有一个,”和“我不知道有人这样要求。”
有时查询也会返回结果,但不是搜索者想要的结果。
如果您跟踪“搜索优化”,这些查询还可以为您提供同义词的概念
搜索细化表示搜索者搜索然后再次搜索的时间。
这意味着
chers第一次没有找到他们想要的东西,再次尝试寻找更好的东西。
有人搜索“戴尔笔记本电脑”并跟踪“戴尔笔记本”,称“笔记本电脑”和“笔记本电脑”,但搜索“笔记本”的结果不够充分。
虽然手动在分析中寻找这些趋势没有什么错(这可能是一项很好的活动,可以慢慢进入工作周),但如果你有一个主动为你寻找这些趋势的系统,你会更有效率。
有些系统甚至可以代表您应用同义词,但这并不总是有用的。
人类可以发现不显示有效同义词的改进,或者可能看到系统建议的同义词类型不正确。
同义词的类型
没错:同义词有不同的类型。
这个概念一开始可能看起来很奇怪,但可能与大多数人的想法相去甚远。
“双向”是第一类同义词。这些同义词是彼此的直接替代。
“小”和“迷你”是彼此的双向同义词。
这些词不需要是完美的替代词,但可以足够接近,人们可能会用其中一个来代替另一个。
例如,“绳子”和“绳子”描述的不是同一件事,但它们足够接近,值得成为双向同义词。
考虑通过使用同义词创建的查询可能很有用。
如果我们对“小奶酪比萨饼”进行查询并将其展开,您可以将该查询视为“(小或迷你)和“奶酪和比萨饼”
“单向”是下一种同义词。
这种类型通常用于指属于较大类别的对象的词。
“PlayStation”是一种视频游戏“控制台”,但“控制台”不是“PlayStatio”的类型
如果在搜索配置中添加单向同义词,则可以在有人搜索“控制台”时显示PlayStations
为什么这两个术语之间没有双向同义词?
因为双向同义词是可传递的。
如果术语一和术语二是双向同义词,术语二和术语三是双向同义语,则术语一和三是双向的。
在一个更直接的例子中,“PlayStation”和“控制台”以及“Xbox”和“console”作为两组双向同义词意味着“PlayStationandXbox”是同义词,搜索者在搜索Xbox时会看到Playstations,反之亦然。
“替代修正”是最终类型。
当单词不是彼此的精确替换,并且您希望精确匹配显示得高于替代时,可以使用这些选项。
例如,您可能会说“裤子”是“短裤”的替代品,但当有人搜索“短裤”一词时,所有短裤通常都应高于裤子。
所有同义词类型,就其性质而言,都会扩展回忆。
然而,对精度的影响应该是最小的,因为这些同义词是指向类似概念的“指针”。
你会期待更好的搜索体验
最终用户的友好关系。
查询词删除
有时搜索者会使用不返回任何内容的查询,因为查询太具体或使用了任何记录中都不存在的单词。
从查询中删除一个或两个单词,就会返回非常好的结果。
这是使用查询词删除的好时机。
停止语
也许最常见的查询词删除步骤是删除“停止词”
停止词是非常常见的词,为交流提供了意义,但无助于检索。诸如“the”或“an”之类的词可以删除其他良好的匹配项。
这在面向自然语言的查询中更常见,例如语音搜索查询。
例如,在产品搜索引擎上搜索“橙色衬衫”。
如果搜索引擎搜索标题、颜色和类别,可能会有大量记录以“衬衫”作为类别,以“橙色”作为颜色,但没有一条记录包含“安”一词
现在,真的,“安”这个词在这里提供了有用的信息吗?
不,它不会,搜索引擎可以安全地删除它,而不会丢失精度。
与同义词不同,您通常不想创建自己的停止词列表,大多数搜索引擎都内置了每种语言的停止词。
但是,有时您会希望在内置列表上展开,例如,如果您有一个行业术语非常常见,因此无法为查询提供任何值。
如果没有结果,则删除单词
然后有一些查询,其中所有的词都带来了值,但搜索到一起,却没有返回结果。
搜索者通常会对不太精确的结果感到满意,以换取更高的召回率。在这些情况下,我们希望删除单词,将结果显示在用户面前。
有两种主要方法可以做到这一点:使所有查询词都是可选的或从查询中删除词。
如果在没有结果的情况下将所有查询词设置为可选,则假设匹配更多词的记录更相关,其他条件相同。
另一种方法是逐个删除查询词,直到找到匹配的记录或查询中没有剩余的词。
您可以从删除第一个单词或最后一个单词开始。最后一个词的删除更为常见。
使所有查询词都是可选的,然后根据匹配词的数量进行排序通常是更好的方法,特别是当与删除停止词相结合时。
然而,当精度很重要时,这是一种不太理想的方法,您希望表明,实际上,没有匹配所有查询词的结果。
一个人可以看到优衣库的v领毛衣来查询“Gucci v领毛衣”,而另一个人则认为这些结果完全无关。
当然,另一个场景是知道哪些词实际上为查询提供了最大的值,并将它们标记为可选。
这在keywo中通常看不到
基于研发的搜索引擎,但也有一些搜索引擎会对停止词采取类似的方法。
例如,一些搜索引擎已经尝试使用反向文档频率,在没有停止词列表的情况下自动打折常用词。
与同义词一样,查询词删除将扩大召回率,通常不会影响精度。因为停止词不会为结果提供太多的价值,所以您不会因为不包含它们而失去良好的结果。
类似地,当没有结果时删除单词不会降低精度,因为没有可能精确的结果。
查询范围
我们主要研究了搜索者过于精确,搜索引擎需要扩展查询以提高召回率的情况。
同样,有时搜索引擎可以理解用户意图,查询范围可以提高精度。
搜索专家DanielTunkelang称查询范围界定为“捕捉查询意图的最有效方法之一”
他确定了查询范围界定的两个主要步骤。首先是查询标记,然后是范围本身。
查询标记用可能属于的属性标识查询的部分。
例如,“Marcia”最可能匹配“name”属性,而“Brady Bunch”则映射到“show title”属性。
查询范围采用这种映射并限制这些查询部分的属性搜索。
搜索引擎不会在“name”属性中搜索“Brady”,也不会在“show title”属性中查找“Marcia”。
这种查询范围缩小了召回率,因为我们不会在其他att中看到具有该文本的结果
流言。
然而,结果应该是我们有更高的精度,因为我们没有搜索不相关的属性。
通过使用已知属性值过滤结果,我们可以进一步提高精度。
这甚至不需要机器学习,因为搜索引擎可以在查询中的方面值和文本之间进行简单匹配。
这大大降低了召回率,因此我们也可以找到一个很好的平衡,我们使用匹配值而不是过滤来提高结果。
增强的结果往往是最好的匹配结果,因为查询过滤器匹配会给您一个信号,表明它是搜索者想要的。
通过您的分析或实践经验,如果您发现您的搜索缺少用户意图,并要求搜索“恰到好处”,那么查询扩展和查询范围是校准精度和召回率的两种方法。
这些方法将引入应该存在的结果,而忽略不应该存在的。