Sitemap

Tekniken och teknikerna för innehållsgenerering som jag kommer att demonstrera i den här kolumnen verkar vara ur en science fiction-roman, men de är verkliga och fritt tillgängliga nu.

Efter att jag slutfört kodningsexperimenten och började skriva det här stycket, funderade jag på de positiva och negativa konsekvenserna av att dela denna information offentligt.

Som du kommer att se är det relativt enkelt nu att producera maskingenererat innehåll och kvaliteten på generationerna förbättras snabbt.

Detta ledde mig till den tråkiga slutsatsen att vi skulle se mycket fler spamresultat än tidigare.

Lyckligtvis släppte Google nyligen sin spamrapport för 2019 som gjorde mig lugn.

Har du någonsin tittat på din skräppostmapp?Det är så sökresultat kan se ut utan de åtgärder vi vidtar för att bekämpa sökspam.Vårt inlägg idag tittar på hur vi arbetar för att hålla skräppost borta från Googles sökresultat https://t.co/RA4lUoDXEF

— Google SearchLiaison (@searchliaison) 9 juni 2020

"Förra året observerade vi att mer än 25 miljarder av sidorna vi hittar varje dag är skräppost. (Om var och en av dessa sidor var en sida i en bok, skulle det vara mer än 20 miljoner exemplar av "Krig och fred" varje dag!)

Våra ansträngningar har hjälpt till att säkerställa att mer än 99 % av besöken från våra resultat leder till spamfria upplevelser.

Under de senaste åren har vi observerat en ökning av webbplatser med skräppost med automatiskt genererat och skrapat innehåll med beteenden som irriterar eller skadar sökare, som falska knappar, överväldigande annonser, misstänkta omdirigeringar och skadlig programvara.Dessa webbplatser är ofta vilseledande och erbjuder inget verkligt värde för människor.Under 2019 kunde vi minska effekten på sökanvändare från denna typ av skräppost med mer än 60 % jämfört med 2018.”

Medan Google rapporterar ett häpnadsväckande antal skräppostsidor per dag, rapporterar de en imponerande 99 % framgångsgrad för att undertrycka skräppost över hela linjen.

Ännu viktigare, de har gjort otroliga framsteg när det gäller att undertrycka maskingenererat spaminnehåll.

I den här kolumnen ska jag förklara med kod hur en dator kan generera innehåll med hjälp av de senaste framstegen inom NLG.

Jag kommer att gå igenom teorin och några riktlinjer för att hålla ditt innehåll användbart.

Detta hjälper dig att undvika att fastna för all webbspam som Google och Bing arbetar dygnet runt för att bli av med.

Tunna innehållssidor

I min artikel om generering av titel och metabeskrivningar delade jag en effektiv teknik som bygger på att sammanfatta sidinnehåll för att producera metataggar.

När du följer stegen kan du se att det fungerar riktigt bra och till och med kan producera nya texter av hög kvalitet.

Men vad händer om sidorna inte innehåller något innehåll att sammanfatta?Tekniken misslyckas.

Låt mig berätta ett mycket smart knep för att lösa detta.

Om sådana sidor har bakåtlänkar av hög kvalitet kan du använda ankartexten och texten som omger bakåtlänken som text för att sammanfatta.

Vänta!

Men varför?

Låt mig ta tillbaka hela vägen till 1998, till grundandet av Googles sökmotor.

I tidningen som beskrev deras nya sökmotor, delade Page och Brin en mycket intressant insikt i avsnitt 2.2.

"De flesta sökmotorer associerar texten i en länk med sidan som länken är på. Dessutom associerar vi det med sidan länken pekar på. Detta har flera fördelar. För det första ger ankare ofta mer exakta beskrivningar av webbsidor än själva sidorna. För det andra kan det finnas ankare för dokument som inte kan indexeras av en textbaserad sökmotor, såsom bilder, program och databaser. Detta gör det möjligt att returnera webbsidor som faktiskt inte har genomsökts.”

Här är den tekniska planen:

  1. Vi kommer att få bakåtlänkar och motsvarande ankartexter med hjälp av de nya Bing Webmaster Tools.
  2. Vi kommer att skrapa den omgivande texten från bakåtlänkar av högsta kvalitet.
  3. Vi kommer att skapa sammanfattningar och långformat innehåll med hjälp av den skrapade texten.

Rapport för Bing Webmaster Tools bakåtlänkar

En funktion som jag gillar i det nya verktyget för bakåtlänkar i BWT är att det kan ge länkar som inte bara pekar till din egen webbplats, utan även till vissa andra webbplatser.

Jag förväntar mig att detta kommer att bli ett populärt gratisalternativ till de betalda verktygen.

Jag exporterade CSV-filen med den stora listan med länkar och ankare, men när jag försökte ladda den med Python-pandas och hittade ett antal formateringsproblem.

Slumpmässiga ankartexter kan innehålla kommatecken och orsaka problem med en kommaavgränsad fil.

Jag löste dem genom att öppna filen i Excel och spara den i Excel-format.

Skrapa omgivande text med Python

Som du kan se i min skärmdump ovan är många av ankartexterna ganska korta.

Vi kan skrapa sidorna för att få stycket som innehåller dem.

Låt oss först ladda rapporten vi exporterade från BWT.

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

Jag granskade måladressen efter antalet inkommande länkar som användes.

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

Jag drog bakåtlänkarna från en av sidorna för att utvärdera idén med den här koden.

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

Låt oss nu se hur vi kan använda en måladress och en bakåtlänk för att dra den relevanta ankartexten som inkluderar ankaret.

Hämtar text från bakåtlänkar

Låt oss först installera requests-html.

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

För att hålla koden enkel kommer jag att manuellt producera en CSS-väljare för att ta tag i texten som omger länken.

Det är inte svårt att beräkna detta givet länken och ankaret på sidan med hjälp av JavaScript eller Python-kod.

Det kanske är en bra idé för dig att prova som läxa.

Öppna ett exempel på en bakåtlänkssida och med hjälp av Chrome Developer Tools kan du högerklicka på stycket av intresse och kopiera en CSS-väljare.

Det här är väljaren jag använde.

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

Det här är texten som kom tillbaka.Jag har fetstilt texten i vår exempelankartext.

Vi vet att lärarbehållning förbättrar resultaten för eleverna, och omvänt, att läraromsättning kan skada elevernas prestationer.Omkring 16 procent av pedagogerna lämnar fältet varje år, och vi vet att många lärare, som jag, slutar inom de första fem åren.Lärare rapporterar att de största anledningarna till att de lämnar är brist på autonomi och röst, vid sidan av frågor om kultur och i synnerhet disciplin.Dessutom är omsättningen dyr – förkortar distrikten uppemot 2,2 miljarder dollar per år.

Nu kommer vi till det roliga!

Generering av neural text

Vi kommer att använda samma sammanfattningskod som vi använde för att generera titlar och metabeskrivningar i min tidigare artikel, men med en twist.

Istället för att ange en önskvärd sammanfattningslängd som är kortare än det ursprungliga stycket, kommer vi att ange en längre längd.Kommer det att fungera?Låt oss se!

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

Jag får denna intressanta varning.

Din max_längd är inställd på 250, men din input_length är bara 99.Du kan överväga att minska max_length manuellt, t.ex. summerizer('...', max_length=50)

Låt oss se den genererade texten.

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

Den ursprungliga texten hade 492 tecken och den genererade texten 835.

Men titta på kvaliteten och de nya meningarna som dyker upp i den genererade texten.Absolut, häpnadsväckande!

Kan den här tekniken generera ännu längre text?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."}]

Denna genererade text har 1 420 tecken och upprätthåller det logiska flödet!

Odjuret som driver denna teknik är en modell från Facebook som heter BART.

Författarna till artikeln beskriver det som en generaliserad form av BERT.

Låt oss se hur detta fungerar.

Hur neural textgenerering fungerar

Har du gjort begåvnings- eller IQ-tester där du får en sekvens av siffror och du behöver gissa nästa?

I grund och botten är det vad vår modell gjorde ovan när vi gav lite inledande text och bad våra modeller att förutsäga vad som händer härnäst.

Den förvandlade vår första text till en sekvens av siffror, gissade nästa nummer och tog den nya sekvensen som inkluderar det gissade numret och upprepade samma process igen.

Detta fortsätter tills det når längdgränsen vi angav.

Nu är dessa inte bara vanliga tal, utan vektor och mer specifikt (i fallet med BERT och BART) dubbelriktade ordinbäddningar.

Jag förklarade vektorer och dubbelriktad ordinbäddning med hjälp av en GPS-analogi i mina djupinlärningsartiklar del 1 och del 2.Se till att kolla in dem.

Sammanfattningsvis kodar inbäddningar rik information om orden de representerar, vilket dramatiskt ökar kvaliteten på förutsägelserna.

Så här är ett exempel på hur detta fungerar.

Med tanke på texten: "Det bästa programmeringsspråket för SEOs som gör repetitiva uppgifter är ____ och för SEO:s som gör frontend-revisioner är ____", ber vi modellen att slutföra meningen.

Det första steget är att omvandla orden till siffror/inbäddningar, där varje inbäddning identifierar ordet i sitt sammanhang.

Förvandla sedan detta till ett pussel som datorn kan lösa för att ta reda på siffrorna/inbäddningar som kan fylla i tomrummen givet sammanhanget.

Algoritmen som kan lösa dessa typer av pussel kallas en språkmodell.

En språkmodell liknar de grammatiska reglerna på engelska eller något annat språk.

Om texten till exempel är en fråga måste den avslutas med ett frågetecken.

Skillnaden är att alla ord och symboler representeras av siffror/inbäddningar.

Nu, där det blir intressant är att i djupinlärning (det vi använder här), behöver du inte manuellt skapa en stor lista med grammatikregler.

Modellen lär sig reglerna empiriskt genom effektiv trial and error.

Detta görs under en så kallad förträningsfas där modellerna tränas över en massiv datakorpus under flera dagar och med mycket kraftfull hårdvara.

Det bästa för oss är att resultaten av dessa ansträngningar är fria för alla att använda.

Har vi inte riktigt tur?

BERT är ett exempel på en språkmodell och likaså GPT-2 och BART.

Hur man använder detta för gott

Som jag nämnde ovan är den här grejjen riktigt kraftfull och kan användas för att churna värdelöst innehåll i skala relativt billigt.

Jag personligen skulle inte vilja slösa tid på att vada genom sopor medan jag letar.

Med tiden har jag insett att för att innehåll ska fungera i sökningar måste det:

  • Var användbar.
  • Tillfredsställa ett verkligt behov.

Om det inte gör det, oavsett om det är dator- eller mänskligt producerat, kommer det inte att få något engagemang eller validering från slutanvändarna.

Chanserna att ranka och prestera är riktigt låga.

Det är därför jag föredrar tekniker som sammanfattning och översättning eller frågor/svar där du har större kontroll över generationen.

De kan hjälpa dig att se till att du tillför nytt värde.

Samhällsprojekt och lärresurser

Jag försökte hålla den här artikeln lätt i koden och förklaringarna så enkla som möjligt så att fler människor i samhället kan delta i det roliga.

Men om du är mer tekniskt lagd tror jag att du kommer att njuta av denna mer detaljerade och matematiska förklaring av ämnet.

Se till att du också följer länkarna i avsnittet "Vidare läsning" i den länkade artikeln ovan.

Nu till några spännande nyheter.

Jag bad samhället att dela Python-projekten de arbetar med.Jag väntade mig kanske en handfull, och jag blev helt imponerad av hur många jag fick tillbaka. #VÄNTA 🐍🔥

Den här är Python och JS, men jag lägger ut den ändå!Chrome-tillägg för att ta bort spam på Google Maps.Serverkoden är i Python och gör adressvalidering och klassificering. pic.twitter.com/Rvzfr5ku4N

— zchtodd (@zchtodd) 8 juni 2020

1.RPA i python för att automatisera repetitiva skärmdumpar https://t.co/zyaafY0bcd
2.Sök i konsolens API + NLP för att söka efter sidor där ordet i metatiteln inte matchar sökfrågorna som används av besökarna: https://t.co/KsYGds7w1r

— Michael Van Den Reym (@vdrweb) 8 juni 2020

3.Kontrollera statuskoden för alla webbadresser med sökkonsolvisningar med sökkonsolens API https://t.co/qX0FxSoqgN

— Michael Van Den Reym (@vdrweb) 8 juni 2020

Hej Hamlet!

Jag arbetar på en omdirigeringskontroll med fuzzy-matchningsfunktioner.

Det kommer att finnas en @GoogleColab-anteckningsbok, men helst skulle jag också vilja distribuera i @streamlit så att folk kan bedöma kvaliteten på sina omdirigeringar med ett klick, genom att dra och släppa.

Jag delar med mig inom kort 🙂

— Charly Wargnier (@DataChaz) 9 juni 2020

@hamletbatista https://t.co/oPt5M393Lu
Arbetade med detta med @streamlit
Skriv mer övertygande metatitlar.
Förklaringsvideo: 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 (@JaviLazaroSEO) 8 juni 2020

1.Läser loggfilerna och postar 5xx/4xx i realtid för att slappna av!
2.Sökordsavsikt kontra URL-matchningsresultat.

— Venus Kalra (@venuskalra) 9 juni 2020

https://t.co/9we85HXJgJ

— Marat Gaziev (@MaratGaziev) 9 juni 2020

Jag bygger ett paket för #SEO:er och onlinemarknadsförare, som innehåller bland annat:
– Crawler
– robots.txt-testare
– SERP-checkare
– Konverterare för webbplatskarta till DataFrame
– URL till DataFrame-konverterare

och mer 🙂 https://t.co/BMVeeQaTxE

— Elias Dabbas (@eliasdabbas) 9 juni 2020

Lite innehållsanalys med Beautiful Soup + Knowledge box API + Cloud Entity API!🐍🐍🐍

— Jess men 6 fot bort (@jessthebp) 8 juni 2020

Fler resurser:


Bildkrediter

Alla skärmdumpar tagna av författare, juni 2020

Tutte le categorie: Blogg