Sitemap

Die Technologien und Techniken zur Generierung von Inhalten, die ich in dieser Kolumne demonstrieren werde, scheinen aus einem Science-Fiction-Roman zu stammen, aber sie sind jetzt real und frei zugänglich.

Nachdem ich die Codierungsexperimente abgeschlossen und mit dem Schreiben dieses Artikels begonnen hatte, dachte ich über die positiven und negativen Auswirkungen nach, wenn diese Informationen öffentlich geteilt werden.

Wie Sie sehen werden, ist es heute relativ einfach, maschinengenerierte Inhalte zu produzieren, und die Qualität der Generationen verbessert sich schnell.

Dies führte mich zu dem traurigen Schluss, dass wir viel mehr Spam-Ergebnisse sehen würden als zuvor.

Glücklicherweise hat Google kürzlich seinen Spam-Bericht für 2019 veröffentlicht, der mich beruhigt hat.

Haben Sie jemals in Ihren E-Mail-Spamordner geschaut?So könnten Suchergebnisse aussehen, ohne dass wir Schritte unternehmen, um Suchspam zu bekämpfen.In unserem heutigen Beitrag geht es darum, wie wir daran arbeiten, Spam aus den Suchergebnissen von Google fernzuhalten https://t.co/RA4lUoDXEF

— Google SearchLiaison (@searchliaison) 9. Juni 2020

„Letztes Jahr haben wir festgestellt, dass mehr als 25 Milliarden der Seiten, die wir täglich finden, Spam sind. (Wenn jede dieser Seiten eine Seite in einem Buch wäre, wären das jeden Tag mehr als 20 Millionen Exemplare von „Krieg & Frieden“!)

Unsere Bemühungen haben dazu beigetragen, dass mehr als 99 % der Besuche über unsere Ergebnisse zu spamfreien Erlebnissen führen.

In den letzten Jahren haben wir eine Zunahme von Spam-Websites mit automatisch generierten und gekratzten Inhalten mit Verhaltensweisen beobachtet, die Suchende stören oder schädigen, wie z. B. gefälschte Schaltflächen, überwältigende Werbung, verdächtige Weiterleitungen und Malware.Diese Websites sind oft irreführend und bieten den Menschen keinen wirklichen Wert.Im Jahr 2019 konnten wir die Auswirkungen dieser Art von Spam auf Suchbenutzer um mehr als 60 % im Vergleich zu 2018 reduzieren.“

Während Google eine erstaunliche Anzahl von Spam-Seiten pro Tag meldet, berichten sie von einer beeindruckenden Erfolgsquote von 99 % bei der Unterdrückung von Spam auf breiter Front.

Noch wichtiger ist, dass sie unglaubliche Fortschritte bei der Unterdrückung von maschinell generierten Spam-Inhalten gemacht haben.

In dieser Kolumne werde ich mit Code erklären, wie ein Computer mithilfe der neuesten Fortschritte in NLG Inhalte generieren kann.

Ich werde die Theorie und einige Richtlinien durchgehen, damit Ihre Inhalte nützlich bleiben.

So vermeiden Sie, von all dem Web-Spam erwischt zu werden, an dessen Beseitigung Google und Bing rund um die Uhr arbeiten.

Dünne Inhaltsseiten

In meinem Artikel über die Generierung von Titeln und Meta-Beschreibungen habe ich eine effektive Technik vorgestellt, die auf der Zusammenfassung von Seiteninhalten beruht, um Meta-Tags zu erstellen.

Wenn Sie den Schritten folgen, können Sie sehen, dass es wirklich gut funktioniert und sogar qualitativ hochwertige, neuartige Texte produzieren kann.

Was aber, wenn die Seiten keinen zusammenzufassenden Inhalt enthalten?Die Technik versagt.

Lassen Sie mich Ihnen einen sehr cleveren Trick verraten, um dies zu lösen.

Wenn solche Seiten qualitativ hochwertige Backlinks haben, können Sie den Ankertext und den Text, der den Backlink umgibt, als zusammenzufassenden Text verwenden.

Warten!

Aber warum?

Lassen Sie mich zurückgehen bis ins Jahr 1998, zur Gründung der Suchmaschine Google.

In dem Artikel, der ihre neue Suchmaschine beschreibt, teilten Page und Brin in Abschnitt 2.2 einen sehr interessanten Einblick mit.

„Die meisten Suchmaschinen verknüpfen den Text eines Links mit der Seite, auf der sich der Link befindet. Außerdem ordnen wir es der Seite zu, auf die der Link verweist. Dies hat mehrere Vorteile. Erstens liefern Anker oft genauere Beschreibungen von Webseiten als die Seiten selbst. Zweitens können Anker für Dokumente existieren, die nicht von einer textbasierten Suchmaschine indiziert werden können, wie beispielsweise Bilder, Programme und Datenbanken. Dadurch ist es möglich, Webseiten zurückzugeben, die nicht wirklich gecrawlt wurden.“

Hier der technische Plan:

  1. Backlinks und entsprechende Ankertexte erhalten wir über die neuen Bing Webmaster Tools.
  2. Wir werden den umgebenden Text von den qualitativ hochwertigsten Backlinks entfernen.
  3. Wir werden Zusammenfassungen und Langform-Inhalte unter Verwendung des geschabten Textes erstellen.

Eine Funktion, die mir am neuen Backlinks-Tool in BWT gefällt, ist, dass es Links bereitstellen kann, die nicht nur auf Ihre eigene Website verweisen, sondern auch auf einige andere Websites.

Ich gehe davon aus, dass dies eine beliebte kostenlose Alternative zu den kostenpflichtigen Tools wird.

Ich habe die CSV-Datei mit der großen Liste von Links und Ankern exportiert, aber als ich versuchte, sie mit Python Pandas zu laden, fand ich eine Reihe von Formatierungsproblemen.

Zufällige Ankertexte können Kommas enthalten und Probleme mit einer durch Kommas getrennten Datei verursachen.

Ich habe sie gelöst, indem ich die Datei in Excel geöffnet und im Excel-Format gespeichert habe.

Scraping von umgebendem Text mit Python

Wie Sie in meinem obigen Screenshot sehen können, sind viele der Ankertexte ziemlich kurz.

Wir können die Seiten kratzen, um den Absatz zu erhalten, der sie enthält.

Laden wir zunächst den Bericht, den wir aus BWT exportiert haben.

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

Ich habe die Ziel-URL anhand der Anzahl der eingehenden Links überprüft.

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

Ich habe die Backlinks von einer der Seiten gezogen, um die Idee mit diesem Code zu bewerten.

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

Lassen Sie uns nun sehen, wie wir eine Ziel-URL und einen Backlink verwenden können, um den relevanten Ankertext abzurufen, der den Anker enthält.

Lassen Sie uns zuerst "requests-html" installieren.

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

Um den Code einfach zu halten, werde ich manuell einen CSS-Selektor erstellen, um den Text zu erfassen, der den Link umgibt.

Es ist nicht schwierig, dies angesichts des Links und der Verankerung auf der Seite mithilfe von JavaScript- oder Python-Code zu berechnen.

Vielleicht ist das eine gute Idee für Sie, es als Hausaufgabe zu versuchen.

Öffnen Sie eine Backlink-Beispielseite und verwenden Sie die Chrome-Entwicklertools, um mit der rechten Maustaste auf den gewünschten Abschnitt zu klicken und einen CSS-Selektor zu kopieren.

Dies ist der Selektor, den ich verwendet habe.

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

Das ist der Text, der zurückkam.Ich habe den Text unseres Beispiel-Ankertextes fett gedruckt.

Wir wissen, dass die Lehrerbindung die Ergebnisse der Schüler verbessert und dass umgekehrt die Lehrerfluktuation die Leistung der Schüler beeinträchtigen kann.Etwa 16 Prozent der Pädagogen verlassen das Feld jedes Jahr, und wir wissen, dass viele Lehrer, wie ich, innerhalb der ersten fünf Jahre aufhören.Lehrer berichten, dass die Hauptgründe für ihren Austritt neben kulturellen und insbesondere disziplinarischen Problemen der Mangel an Autonomie und Mitsprache sind.Darüber hinaus ist der Umsatz kostspielig – Leerverkäufe von Distrikten in Höhe von mehr als 2,2 Milliarden US-Dollar pro Jahr.

Kommen wir nun zum lustigen Teil!

Neuronale Textgenerierung

Wir werden denselben Zusammenfassungscode verwenden, den wir in meinem vorherigen Artikel zum Generieren von Titeln und Meta-Beschreibungen verwendet haben, aber mit einer Wendung.

Anstatt eine wünschenswerte Zusammenfassungslänge anzugeben, die kürzer als der ursprüngliche Absatz ist, werden wir eine längere Länge angeben.Wird es funktionieren?Mal sehen!

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

Ich bekomme diese interessante Warnung.

Ihre max_length ist auf 250 gesetzt, aber Ihre input_length ist nur 99.Sie könnten erwägen, max_length manuell zu verringern, z. summarer(‘…’, max_length=50)

Sehen wir uns den generierten Text an.

[{'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/."}]

Der Originaltext hatte 492 Zeichen und der generierte Text 835.

Aber schauen Sie sich die Qualität und die neuartigen Sätze an, die im generierten Text auftauchen.Absolut, überwältigend!

Kann diese Technik noch längeren Text erzeugen?Ja!

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."}]

Dieser generierte Text hat 1.420 Zeichen und behält den logischen Fluss bei!

Das Biest, das diese Technik antreibt, ist ein Modell von Facebook namens BART.

Die Autoren der Arbeit beschreiben es als eine verallgemeinerte Form von BERT.

Mal sehen, wie das funktioniert.

Wie die neuronale Textgenerierung funktioniert

Hast du Eignungs- oder IQ-Tests gemacht, bei denen dir eine Zahlenfolge präsentiert wird und du die nächste erraten musst?

Im Wesentlichen hat das unser Modell oben getan, als wir einen anfänglichen Text bereitgestellt und unsere Modelle gebeten haben, vorherzusagen, was als nächstes passiert.

Es verwandelte unseren ursprünglichen Text in eine Folge von Zahlen, erriet die nächste Zahl und nahm die neue Folge, die die erratene Zahl enthält, und wiederholte denselben Vorgang erneut.

Dies wird fortgesetzt, bis die von uns angegebene Längenbegrenzung erreicht ist.

Nun, das sind nicht nur normale Zahlen, sondern Vektor- und genauer gesagt (im Fall von BERT und BART) bidirektionale Worteinbettungen.

Ich habe Vektoren und bidirektionale Worteinbettung anhand einer GPS-Analogie in meinen Deep-Learning-Artikeln Teil 1 und Teil 2 erklärt.Bitte stellen Sie sicher, dass Sie sie überprüfen.

Zusammenfassend kodieren Einbettungen umfangreiche Informationen über die Wörter, die sie darstellen, was die Qualität der Vorhersagen dramatisch erhöht.

Also, hier ist ein Beispiel dafür, wie das funktioniert.

Angesichts des Textes: „Die beste Programmiersprache für SEOs, die sich wiederholende Aufgaben erledigen, ist ____ und für SEOs, die Front-End-Audits durchführen, ist ____“, bitten wir das Modell, den Satz zu vervollständigen.

Der erste Schritt besteht darin, die Wörter in Zahlen/Einbettungen umzuwandeln, wobei jede Einbettung das Wort im Kontext identifiziert.

Verwandeln Sie dies dann in ein Puzzle, das der Computer lösen kann, um die Zahlen/Einbettungen herauszufinden, die die Lücken angesichts des Kontexts füllen können.

Der Algorithmus, der diese Art von Rätseln lösen kann, wird als Sprachmodell bezeichnet.

Ein Sprachmodell ähnelt den grammatikalischen Regeln in Englisch oder jeder anderen Sprache.

Wenn der Text beispielsweise eine Frage ist, muss er mit einem Fragezeichen enden.

Der Unterschied besteht darin, dass alle Wörter und Symbole durch Zahlen/Einbettungen dargestellt werden.

Nun wird es interessant, dass Sie beim Deep Learning (was wir hier verwenden) keine große Liste von Grammatikregeln manuell erstellen müssen.

Das Modell lernt die Regeln empirisch durch effizientes Ausprobieren.

Dies geschieht während einer sogenannten Pre-Training-Phase, in der die Modelle mehrere Tage lang mit einem riesigen Datenkorpus und unter Verwendung sehr leistungsfähiger Hardware trainiert werden.

Das Beste für uns ist, dass die Ergebnisse dieser Bemühungen für jedermann kostenlos zur Verfügung gestellt werden.

Haben wir nicht wirklich Glück?

BERT ist ein Beispiel für ein Sprachmodell, ebenso wie GPT-2 und BART.

Wie man dies zum Guten nutzt

Wie ich oben erwähnt habe, ist dieses Zeug wirklich mächtig und könnte verwendet werden, um relativ billig nutzlose Inhalte in großem Maßstab zu erzeugen.

Ich persönlich möchte keine Zeit damit verschwenden, während der Suche durch Müll zu waten.

Im Laufe der Zeit ist mir klar geworden, dass Inhalte Folgendes tun müssen, damit sie bei der Suche erfolgreich sind:

  • Nützlich sein.
  • Befriedige ein echtes Bedürfnis.

Wenn dies nicht der Fall ist, unabhängig davon, ob es sich um einen Computer oder einen von Menschen erstellten Code handelt, wird er von den Endbenutzern weder engagiert noch bestätigt.

Die Chancen auf Platzierung und Leistung sind wirklich gering.

Aus diesem Grund bevorzuge ich Techniken wie Zusammenfassung und Übersetzung oder Frage/Antwort, bei denen Sie eine größere Kontrolle über die Generierung haben.

Sie können Ihnen helfen sicherzustellen, dass Sie neuen Wert hinzufügen.

Gemeinschaftsprojekte und Lernressourcen

Ich habe versucht, diesen Artikel im Code leicht und die Erklärungen so einfach wie möglich zu halten, damit mehr Menschen in der Community am Spaß teilhaben können.

Aber wenn Sie eher technisch veranlagt sind, denke ich, dass Ihnen diese detailliertere und mathematischere Erklärung des Themas gefallen wird.

Folgen Sie auch den Links im Abschnitt „Weiterführende Literatur“ im oben verlinkten Artikel.

Nun zu einigen aufregenden Neuigkeiten.

Ich habe die Community gebeten, die Python-Projekte zu teilen, an denen sie arbeiten.Ich hatte vielleicht eine Handvoll erwartet, und ich war völlig überwältigt davon, wie viele ich zurückbekam. #WARTET NICHT 🐍🔥

Das hier ist Python und JS, aber ich werde es trotzdem veröffentlichen!Chrome-Erweiterung zum Zerstören von Spam auf Google Maps.Der Servercode ist in Python und befasst sich mit Validierung und Klassifizierung. pic.twitter.com/Rvzfr5ku4N

– zchtodd (@zchttodd) 8. Juni 2020

1.RPA in Python zur Automatisierung wiederholter Screenshots https://t.co/zyaafY0bcd
2.Suchkonsolen-API + NLP, um nach Seiten zu suchen, bei denen das Wort im Metatitel nicht mit den von Besuchern verwendeten Suchanfragen übereinstimmt: https://t.co/KsYGds7w1r

– Michael Van Den Reym (@vdrweb) 8. Juni 2020

3.Überprüfen Sie den Statuscode aller URLs mit Suchkonsolenimpressionen mithilfe der Suchkonsolen-API https://t.co/qX0FxSoqgN

– Michael Van Den Reym (@vdrweb) 8. Juni 2020

Hallo Hamlet!

Ich arbeite an einem Redirect-Checker mit Fuzzy-Matching-Fähigkeiten.

Es wird ein @GoogleColab-Notizbuch geben, aber idealerweise möchte ich es auch in @streamlit bereitstellen, damit die Leute die Qualität ihrer Weiterleitungen mit einem Klick per Drag-and-Drop beurteilen können.

Ich werde in Kürze teilen 🙂

– Charly Wargnier (@DataChaz) 9. Juni 2020

@hamletbatista https://t.co/oPt5M393Lu
Habe mit @streamlit daran gearbeitet
Schreiben Sie überzeugendere Metatitel.
Erklärvideo: https://t.co/YvVoFMQ4FS

– Anubhav Bittoo Narula (@anubhavn22) 9. Juni 2020

Scrapear redes sociales y pasarlo por npl o Red neuronal para sabre 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 (@JaviLázaroSEO) 8. Juni 2020

1.Lesen der Protokolldateien und Posten von 5xx/4xx in Echtzeit an Slack !
2.Keyword-Intent vs. URL-Match-Score.

– Venus Kalra (@venuskalra) 9. Juni 2020

https://t.co/9we85HXJgJ

– Marat Gaziev (@MaratGaziev) 9. Juni 2020

Ich stelle ein Paket für #SEOs und Online-Vermarkter zusammen, das unter anderem Folgendes enthält:
– Raupe
– robots.txt-Tester
– SERP-Checker
– Sitemap-zu-DataFrame-Konverter
– URL-zu-DataFrame-Konverter

und mehr 🙂 https://t.co/BMVeeQaTxE

– Elias Dabbas (@eliasdabbas) 9. Juni 2020

Etwas Inhaltsanalyse mit Beautiful Soup + der Knowledge Box API + Cloud Entity API!🐍🐍🐍

– Jess aber 6 Fuß entfernt (@jessthebp) 8. Juni 2020

Mehr Ressourcen:


Bildnachweis

Alle Screenshots vom Autor, Juni 2020

Alle Kategorien: Blog