Sitemap

De technologie en technieken voor het genereren van inhoud die ik in deze column ga demonstreren, lijken uit een sciencefictionroman te komen, maar ze zijn nu echt en vrij toegankelijk.

Nadat ik de coderingsexperimenten had voltooid en dit stuk begon te schrijven, dacht ik na over de positieve en negatieve implicaties van het openbaar delen van deze informatie.

Zoals u zult zien, is het nu relatief eenvoudig om machinaal gegenereerde inhoud te produceren en de kwaliteit van de generaties verbetert snel.

Dit bracht me tot de trieste conclusie dat we veel meer spamachtige resultaten zouden zien dan voorheen.

Gelukkig heeft Google onlangs zijn spamrapport voor 2019 uitgebracht dat me op mijn gemak stelde.

Kijk je wel eens in je spamfolder?Zo zouden zoekresultaten eruit kunnen zien zonder de stappen die we nemen om zoekspam te bestrijden.Ons bericht van vandaag laat zien hoe we spam uit de zoekresultaten van Google houden https://t.co/RA4lUoDXEF

— Google SearchLiaison (@searchliaison) 9 juni 2020

"Vorig jaar hebben we vastgesteld dat meer dan 25 miljard van de pagina's die we elke dag vinden spam bevatten. (Als elk van die pagina's een pagina in een boek zou zijn, zouden dat elke dag meer dan 20 miljoen exemplaren van "Oorlog en vrede" zijn!)

Onze inspanningen hebben ertoe bijgedragen dat meer dan 99% van de bezoeken van onze resultaten leiden tot spamvrije ervaringen.

In de afgelopen jaren hebben we een toename waargenomen van spam-sites met automatisch gegenereerde en geschraapte inhoud met gedrag dat zoekers ergert of schaadt, zoals valse knoppen, overweldigende advertenties, verdachte omleidingen en malware.Deze websites zijn vaak misleidend en bieden geen echte waarde voor mensen.In 2019 hebben we de impact op Search-gebruikers van dit type spam met meer dan 60% kunnen verminderen in vergelijking met 2018.”

Hoewel Google een duizelingwekkend aantal spampagina's per dag rapporteert, rapporteren ze een indrukwekkend succespercentage van 99% bij het onderdrukken van spam over de hele linie.

Wat nog belangrijker is, ze hebben ongelooflijke vooruitgang geboekt bij het onderdrukken van door de machine gegenereerde spam-inhoud.

In deze column ga ik met code uitleggen hoe een computer content kan genereren met behulp van de nieuwste ontwikkelingen in NLG.

Ik zal de theorie en enkele richtlijnen doornemen om uw inhoud nuttig te houden.

Zo voorkom je dat je wordt betrapt op alle webspam die Google en Bing de klok rond proberen te verwijderen.

Pagina's met dunne inhoud

In mijn artikel over het genereren van titels en metabeschrijvingen deelde ik een effectieve techniek die berust op het samenvatten van pagina-inhoud om metatags te produceren.

Zodra u de stappen volgt, kunt u zien dat het heel goed werkt en zelfs nieuwe teksten van hoge kwaliteit kan produceren.

Maar wat als de pagina's geen inhoud bevatten om samen te vatten?De techniek faalt.

Laat me je een heel slimme truc vertellen om dit op te lossen.

Als dergelijke pagina's kwalitatieve backlinks hebben, kunt u de ankertekst en de tekst rondom de backlink gebruiken als samenvattende tekst.

Wacht!

Maar waarom?

Ik ga helemaal terug naar 1998, naar de oprichting van de Google-zoekmachine.

In de paper die hun nieuwe zoekmachine beschrijft, deelden Page en Brin een zeer interessant inzicht in paragraaf 2.2.

“De meeste zoekmachines associëren de tekst van een link met de pagina waarop de link staat. Bovendien associëren we het met de pagina waarnaar de link verwijst. Dit heeft meerdere voordelen. Ten eerste bieden ankers vaak nauwkeurigere beschrijvingen van webpagina's dan de pagina's zelf. Ten tweede kunnen er ankers bestaan ​​voor documenten die niet kunnen worden geïndexeerd door een op tekst gebaseerde zoekmachine, zoals afbeeldingen, programma's en databases. Dit maakt het mogelijk om webpagina's te retourneren die niet daadwerkelijk zijn gecrawld.”

Hier is het technische plan:

  1. We krijgen backlinks en bijbehorende ankerteksten met behulp van de nieuwe Bing Webmaster Tools.
  2. We schrapen de omringende tekst van backlinks van de hoogste kwaliteit.
  3. We zullen samenvattingen en lange inhoud maken met behulp van de geschraapte tekst.

Een eigenschap die ik leuk vind in de nieuwe backlinks-tool in BWT, is dat het links kan bieden die niet alleen naar je eigen site verwijzen, maar ook naar enkele andere sites.

Ik verwacht dat dit een populair gratis alternatief wordt voor de betaalde tools.

Ik heb het CSV-bestand geëxporteerd met de grote lijst met links en ankers, maar toen ik het probeerde te laden met Python-panda's, ontdekte ik een aantal opmaakproblemen.

Willekeurige ankerteksten kunnen komma's bevatten en problemen veroorzaken met een door komma's gescheiden bestand.

Ik heb ze opgelost door het bestand in Excel te openen en op te slaan in Excel-formaat.

Omliggende tekst schrapen met Python

Zoals je kunt zien in mijn screenshot hierboven, zijn veel van de ankerteksten vrij kort.

We kunnen de pagina's schrapen om de alinea te krijgen die ze bevat.

Laten we eerst het rapport laden dat we vanuit BWT hebben geëxporteerd.

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

Ik heb de doel-URL beoordeeld op het aantal inkomende links dat wordt gebruikt.

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

Ik heb de backlinks van een van de pagina's gehaald om het idee te evalueren met behulp van deze code.

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

Laten we nu eens kijken hoe we een doel-URL en een backlink kunnen gebruiken om de relevante ankertekst op te halen die het anker bevat.

Laten we eerst verzoeken-html installeren.

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

Om de code eenvoudig te houden, ga ik handmatig een CSS-selector maken om de tekst rond de link te pakken.

Het is niet moeilijk om dit te berekenen gezien de link en het anker op de pagina met behulp van JavaScript of Python-code.

Misschien is dat een goed idee om als huiswerk te proberen.

Open een voorbeeld-backlinkpagina en met behulp van de Chrome Developer Tools kunt u met de rechtermuisknop op de betreffende alinea klikken en een CSS-selector kopiëren.

Dit is de selector die ik heb gebruikt.

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

Dit is de tekst die terugkwam.Ik heb de tekst van onze voorbeeldankertekst vetgedrukt.

We weten dat het vasthouden van docenten de resultaten voor studenten verbetert, en omgekeerd, dat lerarenverloop de prestaties van studenten kan schaden.Elk jaar verlaat ongeveer 16 procent van de docenten het veld en we weten dat veel docenten, zoals ik, binnen de eerste vijf jaar vertrekken.Leraren melden dat de belangrijkste redenen voor hun vertrek een gebrek aan autonomie en stem zijn, naast culturele kwesties en in het bijzonder discipline.Bovendien is de omzet kostbaar - waardoor districten meer dan $ 2,2 miljard per jaar worden kortgesloten.

Laten we nu naar het leuke gedeelte gaan!

Neurale tekst genereren

We gaan dezelfde samenvattende code gebruiken die we gebruikten om titels en metabeschrijvingen te genereren in mijn vorige artikel, maar met een twist.

In plaats van een gewenste lengte van de samenvatting op te geven die korter is dan de oorspronkelijke alinea, zullen we een langere lengte specificeren.Zal dat werken?Laten we eens kijken!

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

Ik krijg deze interessante waarschuwing.

Je max_length is ingesteld op 250, maar je input_length is slechts 99.Je zou kunnen overwegen om max_length handmatig te verkleinen, b.v. summum(‘…’, max_length=50)

Laten we de gegenereerde tekst eens bekijken.

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

De originele tekst had 492 tekens en de gegenereerde tekst 835.

Maar kijk eens naar de kwaliteit en de nieuwe zinnen die in de gegenereerde tekst verschijnen.Absoluut, geestverruimend!

Kan deze techniek nog langere tekst genereren?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."}]

Deze gegenereerde tekst heeft 1420 karakters en handhaaft de logische flow!

Het beest dat deze techniek aandrijft, is een model van Facebook genaamd BART.

De auteurs van het artikel beschrijven het als een gegeneraliseerde vorm van BERT.

Laten we eens kijken hoe dit werkt.

Hoe neurale tekstgeneratie werkt

Heb je een bekwaamheids- of IQ-test gedaan waarbij je een reeks getallen krijgt en je de volgende moet raden?

In wezen is dat wat ons model hierboven deed toen we wat eerste tekst gaven en onze modellen vroegen om te voorspellen wat er daarna gaat gebeuren.

Het veranderde onze oorspronkelijke tekst in een reeks getallen, raadde het volgende nummer en nam de nieuwe reeks die het geraden nummer bevat en herhaalde hetzelfde proces opnieuw.

Dit gaat door totdat het de door ons opgegeven lengtelimiet bereikt.

Dit zijn niet alleen gewone getallen, maar vector en meer specifiek (in het geval van BERT en BART) bidirectionele woordinbeddingen.

Ik legde vectoren en bidirectionele woordinbedding uit met behulp van een GPS-analogie in mijn deep learning-artikelen, deel 1 en deel 2.Zorg ervoor dat u ze bekijkt.

Samengevat, inbeddingen coderen rijke informatie over de woorden die ze vertegenwoordigen, wat de kwaliteit van de voorspellingen drastisch verhoogt.

Dus, hier is een voorbeeld van hoe dit werkt.

Gezien de tekst: "De beste programmeertaal voor SEO's die repetitieve taken uitvoeren is ____ en voor SEO's die front-end audits doen is ____", vragen we het model om de zin aan te vullen.

De eerste stap is om de woorden om te zetten in cijfers/inbeddingen, waarbij elke inbedding het woord in context identificeert.

Verander dit vervolgens in een puzzel die de computer kan oplossen om de cijfers/inbeddingen te achterhalen die de lege plekken kunnen invullen gezien de context.

Het algoritme dat dit soort puzzels kan oplossen, wordt een taalmodel genoemd.

Een taalmodel is vergelijkbaar met de grammaticale regels in het Engels of een andere taal.

Als de tekst bijvoorbeeld een vraag is, moet deze eindigen met een vraagteken.

Het verschil is dat alle woorden en symbolen worden weergegeven door cijfers/inbeddingen.

Nu, waar het interessant wordt, is dat je bij deep learning (wat we hier gebruiken) niet handmatig een grote lijst met grammaticaregels hoeft te maken.

Het model leert de regels empirisch door middel van efficiënt vallen en opstaan.

Dit wordt gedaan tijdens wat een pre-trainingsfase wordt genoemd, waarbij de modellen meerdere dagen worden getraind op een enorm gegevenscorpus en met behulp van zeer krachtige hardware.

Het beste voor ons is dat de resultaten van deze inspanningen voor iedereen gratis te gebruiken zijn.

Hebben we niet echt geluk?

BERT is een voorbeeld van een taalmodel en dat geldt ook voor GPT-2 en BART.

Hoe u dit ten goede kunt gebruiken?

Zoals ik hierboven al zei, is dit spul echt krachtig en kan het worden gebruikt om nutteloze inhoud relatief goedkoop op grote schaal te karnen.

Persoonlijk zou ik geen tijd willen verspillen aan het waden door afval terwijl ik zoek.

In de loop van de tijd ben ik me gaan realiseren dat om inhoud te laten presteren in de zoekresultaten, deze het volgende moet doen:

  • Wees nuttig.
  • Voldoen aan een reële behoefte.

Als dat niet het geval is, of het nu door een computer of door mensen is geproduceerd, krijgt het geen betrokkenheid of validatie van eindgebruikers.

De kansen op ranking en presteren zijn erg laag.

Daarom geef ik de voorkeur aan technieken als samenvatten en vertalen of vraag/beantwoorden waarbij je meer controle hebt over de generatie.

Zij kunnen u helpen ervoor te zorgen dat u nieuwe waarde toevoegt.

Gemeenschapsprojecten en leermiddelen

Ik heb geprobeerd dit artikel licht in code te houden en de uitleg zo eenvoudig mogelijk te houden, zodat meer mensen in de gemeenschap mee kunnen doen aan het plezier.

Maar als je meer technisch aangelegd bent, denk ik dat je deze meer gedetailleerde en wiskundige uitleg van het onderwerp leuk zult vinden.

Zorg ervoor dat u ook de links volgt in het gedeelte 'Meer lezen' in het gelinkte artikel hierboven.

Nu, naar wat opwindend nieuws.

Ik heb de community gevraagd om de Python-projecten waar ze aan werken te delen.Ik verwachtte misschien een handvol, en ik was helemaal weggeblazen door hoeveel ik terug kreeg. #WACHT NIET

Dit zijn Python en JS, maar ik zal het toch plaatsen!Chrome-extensie om spam op Google Maps tegen te gaan.De servercode is in Python en doet adresvalidatie en classificatie. pic.twitter.com/Rvzfr5ku4N

— zchtodd (@zchtodd) 8 juni 2020

1.RPA in python om repetitieve screenshots te automatiseren https://t.co/zyaafY0bcd
2.Zoekconsole-API + NLP om te controleren op pagina's waar het woord in de metatitel niet overeenkomt met de zoekopdrachten die door bezoekers worden gebruikt: https://t.co/KsYGds7w1r

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

3.Controleer de statuscode van alle url's met zoekconsole-vertoningen met behulp van de zoekconsole-API https://t.co/qX0FxSoqgN

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

Hallo Hamlet!

Ik werk aan een omleidingscontrole met fuzzy-matching-mogelijkheden.

Er zal een @GoogleColab-notebook zijn, maar idealiter zou ik ook in @streamlit willen implementeren, zodat mensen de kwaliteit van hun omleidingen met één klik kunnen beoordelen, via slepen en neerzetten.

Ik zal het binnenkort delen

— Charly Wargnier (@DataChaz) 9 juni 2020

@hamletbatista https://t.co/oPt5M393Lu
Hier aan gewerkt met @streamlit
Schrijf boeiendere metatitels.
Uitlegvideo: https://t.co/YvVoFMQ4FS

— Anubhav Bittoo Narula (@anubhavn22) 9 juni 2020

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

— JaviLázaro (@JaviLazaroSEO) 8 juni 2020

1.Het lezen van de logbestanden en het posten van 5xx/4xx op realtime basis om te verslappen!
2.Zoekwoordintentie versus URL-overeenkomstscore.

— Venus Kalra (@venuskalra) 9 juni 2020

https://t.co/9we85HXJgJ

— Marat Gaziev (@MaratGaziev) 9 juni 2020

Ik bouw een pakket voor #SEO's & online marketeers, met daarin onder andere:
– Crawler
– robots.txt-tester
– SERP-checker
– Sitemap naar DataFrame-converter
– URL naar DataFrame-converter

en meer 🙂 https://t.co/BMVeeQaTxE

— Elias Dabbas (@eliasdabbas) 9 juni 2020

Wat inhoudsanalyse met Beautiful Soup + de Knowledge box API + Cloud Entity API!🐍🐍🐍

— Jess maar 2 meter verderop (@jessthebp) 8 juni 2020

Meer middelen:


Afbeeldingscredits

Alle screenshots gemaakt door auteur, juni 2020

Tutte le categorie: Blog