Sitemap

我將在本專欄中展示的內容生成技術和技巧似乎來自科幻小說,但它們現在是真實的並且可以免費訪問。

在我完成了編碼實驗並開始寫這篇文章後,我思考了公開分享這些信息的積極和消極影響。

正如您將看到的,現在製作機器生成的內容相對容易,並且幾代人的質量正在快速提高。

這使我得出一個悲慘的結論,即我們會看到比以前更多的垃圾郵件結果。

幸運的是,谷歌最近發布了 2019 年垃圾郵件報告,讓我放心。

曾經查看過您的垃圾郵件文件夾嗎?如果我們不採取措施打擊搜索垃圾郵件,搜索結果可能就是這樣。我們今天的帖子著眼於我們如何努力將垃圾郵件排除在 Google 的搜索結果之外 https://t.co/RA4lUoDXEF

— Google SearchLiaison (@searchliaison) 2020 年 6 月 9 日

“去年,我們發現每天發現的頁面中有超過 250 億個是垃圾頁面。 (如果每一頁都是書中的一頁,那將是每天超過 2000 萬份《戰爭與和平》!)

我們的努力已幫助確保超過 99% 的結果訪問帶來無垃圾郵件的體驗。

在過去的幾年中,我們發現垃圾網站的數量有所增加,這些網站包含自動生成和抓取的內容,這些內容的行為會惹惱或傷害搜索者,例如虛假按鈕、壓倒性廣告、可疑重定向和惡意軟件。這些網站通常具有欺騙性,對人們沒有真正的價值。2019 年,與 2018 年相比,我們能夠將此類垃圾郵件對搜索用戶的影響減少 60% 以上。”

雖然谷歌每天報告的垃圾郵件頁面數量驚人,但他們報告的全面抑制垃圾郵件的成功率高達 99%。

更重要的是,他們在抑制機器生成的垃圾郵件內容方面取得了令人難以置信的進步。

在本專欄中,我將用代碼解釋計算機如何利用 NLG 的最新進展生成內容。

我將介紹理論和一些指導方針,以使您的內容有用。

這將幫助您避免陷入谷歌和必應全天候工作以擺脫的所有網絡垃圾郵件。

精簡內容頁面

在我關於標題和元描述生成的文章中,我分享了一種有效的技術,它依賴於匯總頁面內容來生成元標記。

一旦你按照這些步驟進行操作,你就會發現它運行得非常好,甚至可以產生高質量、新穎的文本。

但是,如果頁面不包含任何要總結的內容怎麼辦?該技術失敗。

讓我告訴你一個非常聰明的技巧來解決這個問題。

如果此類頁面有高質量的反向鏈接,您可以使用錨文本和反向鏈接周圍的文本作為總結的文本。

等待!

但為什麼?

讓我一路回到 1998 年,到 Google 搜索引擎的創立。

在描述他們的新搜索引擎的論文中,佩奇和布林在第 2.2 節分享了一個非常有趣的見解。

“大多數搜索引擎將鏈接的文本與鏈接所在的頁面相關聯。此外,我們將其與鏈接指向的頁面相關聯。這有幾個優點。首先,錨點通常比頁面本身提供更準確的網頁描述。其次,錨點可能存在於無法被基於文本的搜索引擎索引的文檔中,例如圖像、程序和數據庫。這使得返回實際上未被抓取的網頁成為可能。”

以下是技術方案:

  1. 我們將使用新的 Bing 網站管理員工具獲得反向鏈接和相應的錨文本。
  2. 我們將從最高質量的反向鏈接中抓取周圍的文本。
  3. 我們將使用抓取的文本創建摘要和長篇內容。

必應網站管理員工具反向鏈接報告

我喜歡 BWT 的新反向鏈接工具的一個功能是,它不僅可以提供指向您自己網站的鏈接,還可以提供指向其他網站的鏈接。

我希望這將成為付費工具的流行免費替代品。

我導出了包含大量鏈接和錨點的 CSV 文件,但是當我嘗試使用 Python pandas 加載它時,發現了一些格式問題。

隨機錨文本可能包含逗號並導致逗號分隔文件出現問題。

我通過在 Excel 中打開文件並將其保存為 Excel 格式來解決它們。

使用 Python 抓取周圍的文本

正如您在上面的屏幕截圖中看到的,許多錨文本都很短。

我們可以抓取頁面以獲取包含它們的段落。

首先,讓我們加載從 BWT 導出的報告。

import pandas as pddf = pd.read_excel("www.domain.com_ReferringPages_6_7_2020.xlsx")df.head()

我通過使用的入站鏈接數量查看了目標 URL。

df.groupby("Target Url").count().tail()

我從其中一個頁面中提取了反向鏈接,以使用此代碼評估這個想法。

backlinks = set(df[df["Target Url"] == "https://domain.com/example-page"]["Source Url"])

現在,讓我們看看如何使用目標 URL 和反向鏈接來提取包含錨點的相關錨點文本。

從反向鏈接中獲取文本

首先,讓我們安裝 requests-html。

!pip install requests-htmlfrom requests_html import HTMLSessionsession = HTMLSession()

為了保持代碼簡單,我將手動生成一個 CSS 選擇器來抓取鏈接周圍的文本。

給定頁面上的鏈接和錨點,使用 JavaScript 或 Python 代碼計算這一點並不難。

也許這對你來說是一個好主意,可以作為家庭作業嘗試。

打開一個示例反向鏈接頁面並使用 Chrome 開發人員工具,您可以右鍵單擊感興趣的段落並複制 CSS 選擇器。

這是我使用的選擇器。

with session.get(url) as r:    selector="#entry-78782 > div.asset-content.entry-content > div > p:nth-child(5)"    paragraph = r.html.find(selector, first=True)    text = paragraph.text

這是回來的文字。我將示例錨文本的文本加粗。

我們知道,教師的留任可以改善學生的學習成果,相反,教師的流失會損害學生的成績。每年約有 16% 的教育工作者離開這個領域,我們知道很多老師,像我一樣,會在頭五年內離開。教師們報告說,他們離開的最大原因是缺乏自主權和發言權,以及文化問題,尤其是紀律問題。更重要的是,營業額成本高昂——每年做空的地區高達 22 億美元。

現在,讓我們進入有趣的部分!

神經文本生成

我們將使用在我之前的文章中用於生成標題和元描述的相同摘要代碼,但有所不同。

我們將指定更長的長度,而不是指定比原始段落短的理想摘要長度。那會奏效嗎?讓我們來看看!

!pip install transformersfrom transformers import pipelinesummarizer = pipeline('summarization')generated_text = summarizer(text, min_length=150, max_length=250)print(generated_text)

我收到了這個有趣的警告。

您的 max_length 設置為 250,但您的 input_length 僅為 99。您可能會考慮手動減少 max_length,例如總結器('...',max_length = 50)

讓我們看看生成的文本。

[{'summary_text': "Around 16 percent of educators leave the field every year. Teachers report that the biggest reasons they leave are lack of autonomy and voice, alongside issues of culture and discipline. Turnover is costly, shorting districts upwards of $2.2 billion a year, according to a report by the National Council of Teachers of English, the nation's largest teacher organization. The report also found that teacher retention improves outcomes for students, and conversely, that teacher turnover can harm student achievement. The study was published in the Journal of Education, published by Simon & Schuster, a division of Penguin Random House, on November 14. For more, visit www.simonandschuster.com. For confidential support, call the National Suicide Prevention Lifeline at 1-800-273-8255 or visit http://www.suicidepreventionlifeline.org/."}]

原始文本有 492 個字符,生成的文本有 835 個。

但是,看看生成的文本中出現的質量和新穎的句子。絕對,令人興奮!

這種技術可以生成更長的文本嗎?是的!

generated_text = summarizer(text, min_length=300, max_length=600)print(generated_text)[{'summary_text': "Around 16 percent of educators leave the field every year. Teachers report that the biggest reasons they leave are lack of autonomy and voice, alongside issues of culture and discipline. Turnover is costly, shorting districts upwards of $2.2 billion a year, according to a report by the National Council of Teachers of English, the nation's largest teacher organization. The report also found that teacher retention improves outcomes for students, and conversely, that teacher turnover can harm student achievement. The study was published in the Journal of Education, published by Simon & Schuster, a division of Penguin Random House, on November 14. For more, visit www.simonandschuster.com. For confidential support, call the National Suicide Prevention Lifeline at 1-800-273-8255 or visitxa0http://www.suicidepreventionlifeline.org/. For support in the U.S., call the Samaritans on 08457 90 90 90 or visit a local Samaritans branch, see www.samaritans.org for details. In the UK, contact the National College of Education on 0300 123 90 90, orxa0 visitxa0the Samaritansxa0in the UK. For help in the United States, callxa0thexa0National Suicide Prevention Line on 1xa0800xa0273xa08255,xa0orxa0inxa0the UK on 0800xa0123xa09255. For support on suicide matters in thexa0U.S. call thexa0Nationalxa0Collegexa0of Education,xa0Englandxa0on 08457xa090 90 90. For information on suicide prevention in the UK andxa0Europe, visit the Nationalxa0College of England and Wales."}]

這個生成的文本有 1,420 個字符並保持邏輯流!

推動這項技術的野獸是來自 Facebook 的名為 BART 的模型。

該論文的作者將其描述為 BERT 的一種廣義形式。

讓我們看看這是如何工作的。

神經文本生成的工作原理

你是否參加過能力傾向或智商測試,你會看到一系列數字,你需要猜測下一個數字嗎?

本質上,當我們提供一些初始文本並要求我們的模型預測接下來會發生什麼時,這就是我們的模型在上面所做的。

它將我們的初始文本變成了一個數字序列,猜測下一個數字,並獲取包含猜測數字的新序列,並再次重複相同的過程。

這一直持續到達到我們指定的長度限制。

現在,這些不僅僅是常規數字,而是向量,更具體地說(在 BERT 和 BART 的情況下)雙向詞嵌入。

我在深度學習文章第 1 部分和第 2 部分中使用 GPS 類比解釋了向量和雙向詞嵌入。請務必檢查它們。

總之,嵌入編碼了關於它們所代表的單詞的豐富信息,這極大地提高了預測的質量。

因此,這是一個如何工作的示例。

給定文本:“對於 SEO 執行重複性任務的最佳編程語言是 ____,而對於 SEO 進行前端審計的最佳編程語言是 ____”,我們要求模型完成句子。

第一步是將單詞轉換為數字/嵌入,其中每個嵌入標識上下文中的單詞。

然後,把它變成一個計算機可以解決的難題,以找出可以填補給定上下文空白的數字/嵌入。

可以解決這些類型難題的算法稱為語言模型。

語言模型類似於英語或任何其他語言的語法規則。

例如,如果文本是一個問題,它必須以問號結尾。

不同之處在於所有單詞和符號都由數字/嵌入表示。

現在,有趣的是,在深度學習(我們在這裡使用的)中,您不需要手動創建一大堆語法規則。

該模型通過有效的反複試驗來憑經驗學習規則。

這是在所謂的預訓練階段完成的,在這個階段,模型在海量數據上進行了幾天的訓練,並使用了非常強大的硬件。

對我們來說最好的部分是這些努力的結果可以免費供任何人使用。

我們真的不是很幸運嗎?

BERT 是語言模型的一個例子,GPT-2 和 BART 也是如此。

如何永遠使用它

正如我上面提到的,這些東西真的很強大,可以用來以相對便宜的方式大規模生產無用的內容。

我個人不想在搜索時浪費時間在垃圾中涉水。

隨著時間的推移,我開始意識到,為了讓內容在搜索中發揮作用,它需要:

  • 有用。
  • 滿足真正的需要。

如果沒有,無論是計算機還是人工製造的,都不會得到最終用戶的任何參與或驗證。

排名和表現的機會非常低。

這就是為什麼我更喜歡總結和翻譯或問答等技術,在這些技術中你可以更好地控制生成。

他們可以幫助您確保您正在增加新的價值。

社區項目和學習資源

我試圖讓這篇文章的代碼和解釋盡可能簡單,以讓社區中更多的人參與其中。

但是,如果你更傾向於技術,我想你會喜歡這個更細化和數學化的主題解釋。

確保還遵循上面鏈接文章中“進一步閱讀部分”中的鏈接。

現在,有一些令人興奮的消息。

我要求社區分享他們正在從事的 Python 項目。我期待著可能有一把,我完全被我回來的數量所震撼。 #不要等待🐍🔥

這個是 Python 和 JS,但無論如何我都會把它放在那裡!用於在 Google 地圖上清除垃圾郵件的 Chrome 擴展程序。服務器代碼在 Python 中,並且確實解決了驗證和分類問題。 pic.twitter.com/Rvzfr5ku4N

— zchtodd (@zchtodd) 2020 年 6 月 8 日

1.Python 中的 RPA 可自動執行重複截圖 https://t.co/zyaafY0bcd
2.搜索控制台 API + NLP 檢查元標題中的單詞與訪問者使用的查詢不匹配的頁面:https://t.co/KsYGds7w1r

- 邁克爾范登雷姆 (@vdrweb) 2020 年 6 月 8 日

3.使用搜索控制台 API https://t.co/qX0FxSoqgN 使用搜索控制台印象檢查所有 url 的狀態代碼

- 邁克爾范登雷姆 (@vdrweb) 2020 年 6 月 8 日

嗨哈姆雷特!

我正在開發具有模糊匹配功能的重定向檢查器。

將會有一個@GoogleColab 筆記本,但理想情況下,我還想在@streamlit 中進行部署,這樣人們就可以通過拖放操作一鍵評估他們的重定向質量。

我會盡快分享🙂

——查理·沃尼 (@DataChaz) 2020 年 6 月 9 日

@hamletbatista https://t.co/oPt5M393Lu
使用@streamlit 處理此問題
編寫更引人注目的元標題。
解說視頻:https://t.co/YvVoFMQ4FS

— Anubhav Bittoo Narula (@anubhavn22) 2020 年 6 月 9 日

Scrapear redes sociales y pasarlo por npl o Red neuronal para saber el sentimiento del escrito y de ahí sacar gráficas con datastudio o kibana (perdona que responda en español pero mi inglés es bastante mejorable)

— JaviLázaro (@JaviLazaroSEO) 2020 年 6 月 8 日

1.讀取日誌文件並實時發布 5xx/4xx 到 slack !
2.關鍵字意圖與網址匹配分數。

——維納斯卡拉 (@venuskalra) 2020 年 6 月 9 日

https://t.co/9we85HXJgJ

- Marat Gaziev (@MaratGaziev) 2020 年 6 月 9 日

我正在為#SEO 和在線營銷人員構建一個軟件包,其中包括:
– 履帶式
– robots.txt 測試器
- SERP檢查器
– 站點地圖到 DataFrame 轉換器
– URL 到 DataFrame 轉換器

還有更多🙂 https://t.co/BMVeeQaTxE

— 埃利亞斯·達巴斯 (@eliasdabbas) 2020 年 6 月 9 日

使用 Beautiful Soup + Knowledge box API + Cloud Entity API 進行一些內容分析!🐍🐍🐍

— 傑西,但 6 英尺外 (@jessthebp) 2020 年 6 月 8 日

更多資源:


圖片來源

作者截取的所有屏幕截圖,2020 年 6 月

所有類別: 部落格