[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月