[ad_1]
确保客户获得更多SEO流量的一种surefire方法是将以404结尾的有价值的URL重定向到等效的URL。
这些URL通常仍会获得访问量,或者有价值的外部链接进入其中,或者两者都有。
映射404 URL的一种懒惰且无效的方法是将所有URL重定向到主页或动态搜索结果。 ?
例如,Smarthome 302将不存在的页面重定向到其主页。此类重定向通常标记为 软404错误 在Google Search Console中。
正确的方法是将每个页面分别映射到等效页面(如果存在)。
但是,如果您需要手动执行此过程,则可能会非常繁琐,耗时且昂贵。
通常,您需要依靠网站的默认内部搜索引擎,这几乎没有好处。
在本专栏中,我们将学习如何使用神经匹配方法来自动化这一有价值的技术。
这是我们的行动计划:
- 我们将收集两个要映射的URL列表:一个包含404 URL,一个包含网站的规范URL。
- 我们会将URL转换为短语,以为我们的神经匹配过程做准备。
- 我们将使用利用神经网络的通用句子编码器方法。
- 我将解释使之成为可能的一些高级概念。
- 我还将分享社区项目和资源以了解更多信息。
下载URL集
有很多获取404 URL的方法。您可以运行网站爬网,从Google或Bing Search Console下载404,等等。
我最喜欢的获得404 URL的地方之一是 Ahrefs损坏的反向链接工具 因为它会将404过滤到具有外部链接的页面。
不过,Google Search Console可能会映射更多404。如果您希望映射所有404,并且下载的数量超过一千,则可能需要考虑使用我们的 Cloudflare应用 没有这样的限制。
将其连接到Google云端硬盘时,您最多可以导出100,000个URL,也可以导出尽可能多的URL。
接下来,您需要一组所有有效的网站URL,最好是规范的URL。
获取此类列表的一种简单方法是下载XML网站地图URL。
如果您的客户端没有XML站点地图,则可以执行传统的SEO抓取来获取URL。
如果您喜欢代码,可以找到一些可以改编自我的文章的内容 XML网站地图。
将网址集上传到Google云端硬盘
有多种方法可以从 Google合作实验室,包括直接从硬盘上载它们。我最近最喜欢的选择是将它们上传到Google云端硬盘,然后从Colab访问它们。
如果您从Google云端硬盘获得可共享的链接,则可以使用以下代码将文件下载到您的Google Colab环境中。
如果您的文件需要保密,那么以下代码可能是更好的选择。
将URL路径转换为短语
我们可以尝试使用其内容来匹配页面,但是404页面没有可用于匹配目的的内容。
帕特里克·斯托克斯 使用Wayback Machine分享了一种巧妙的方法。实际上,他的技术适用于覆盖范围广的网站,如果这些网站很受欢迎的话。但是,对于我们合作的许多网站来说,这种方法并没有达到我们想要的效果。
对我们来说行之有效的一个关键想法是,通过利用大多数URL中提供的丰富信息,将404页与网站上的相关页进行匹配。
这种方法非常简单,并且在实践中效果很好。值得注意的例外是,当网站选择糟糕的URL时,说它们仅包含数字。
我们遵循两个简单步骤:
- 仅获取URL的路径。
- 将斜杠,下划线和连字符转换为空格,以提取URL中的文本。
这是该代码:
这是转换的样子。
通用句子编码器
现在,我们将开始有趣的部分!我们将利用深度学习来开发另一个强大的用例:语义文本相似性(STS)。我们将利用STS通过包含在其中的短语来匹配URL。
请随时参考我以前的 深度学习文章 为了了解这些概念,我们将在这里进行重新讨论。
对于我们的匹配任务,我们将利用 Google的通用句子编码器。
根据他们的描述:
“通用句子编码器(USE)将文本编码为高维向量,可用于文本分类,语义相似性,聚类和其他自然语言任务。
对模型进行了训练和优化,以处理长度超过单词的文本,例如句子,短语或短段落。它针对各种数据源和各种任务进行了培训,目的是动态适应各种自然语言理解任务。输入是可变长度的英文文本,输出是512维向量。我们将此模型应用于STS基准以实现语义相似性,结果可从提供的示例笔记本中看到。通用句子编码器模型是使用深度平均网络(DAN)编码器进行训练的。”
我们之所以使用这种方法,是因为它比幼稚的文本匹配功能更强大。 USE允许以相等的含义匹配页面/短语,即使它不是以相同的方式准确编写的也是如此。当用不同语言编写的短语时,您甚至可以匹配它们。
这是实际操作的示例代码片段:
基本上,USE允许我们在虚拟空间中对完整句子进行编码(请记住我在 我的第一篇深度学习文章?),以使相似的短语接近,而完全不同的短语相距甚远。
您可以使用USE解决各种自然语言问题。对于我们的特定问题,最合适的任务是语义文本相似性。
当我们使用语义相似性时,我们想要匹配含义完全相同但短语可能不同的句子。
让我们开始吧。
请去 使用页面 然后单击以打开示例Google Colab 笔记本。
使用文件菜单将副本保存在您的Google云端硬盘中。将运行时类型更改为GPU。
然后单击“运行时”菜单以运行所有单元。
向下滚动笔记本时,您几乎可以在结尾处找到这种有趣的可视化效果。
这是一个热图矩阵,以红色显示最相似的词组。
您可以看到有关电话,天气,健康状况和年龄的短语如何聚集在一起。这是一个非常强大的工具!
准备短语语料库
现在,我们将一些自定义代码添加到笔记本中,以将这种技术与我们从之前上传的URL生成的短语结合起来使用。
这些简单的代码更改可帮助我们将自己的URL /短语聚类。这是我们自己的可视化效果。
URL示例集中的产品非常相似,因此,红色方块比黄色方块多得多。
当结果接近时,我们会为每场比赛生成前5名列表,并将其交给我们的团队成员之一进行手动审核并选择最佳比赛。这种方法仍然减少了很多手动时间。
计算相似性建议
上面的热图虽然很漂亮,但并不能帮助我们为每个404 URL获取实际建议。我们将为此创建一个自定义函数。
在这里,我们有一些TensorFlow代码,我们将编码后的短语传递给USE模型,并获取最接近匹配项的嵌入。它需要一些解释。
此代码将编码后的短语传递给USE,并取回所有匹配的嵌入内容。
to_find_embeddings = session.run(相似性消息编码,feed_dict = {相似性输入占位符:(短语)})
由于嵌入只是向量,因此可以通过计算点积来找到最接近的向量。
结果= np.inner(message_embeddings,to_find_embeddings)
点积是可以用来测量两个向量之间距离的技术之一。
您可能要检查一下 维基百科文章 进一步了解其运作方式。
其余代码将匹配项限制在前5位。
社区项目和资源以了解更多信息
在过去的一个月中,社区共享的项目让我感到非常震惊。
首先,让我大声疾呼克里斯汀·廷斯基(Kristin Tynski),他改进了我的意图分类工作,提出了一个 更快,更好,更便宜的技术。
来自LocalSEOGuide的Dan Leibson 共享脚本 可以自动使用BigQuery,Python和Posgres构建关键字分类。
HülyaÇoban集合了一个了不起的机器学习模型来 预测页面速度得分。
图片积分
语义相似度图像: TensorFlow集线器
作者截取的所有屏幕截图,2019年12月