Sitemap

La technologie et les techniques de génération de contenu que je vais démontrer dans cette chronique sembleraient sortir d'un roman de science-fiction, mais elles sont réelles et librement accessibles maintenant.

Après avoir terminé les expériences de codage et commencé à écrire cet article, j'ai réfléchi aux implications positives et négatives du partage public de ces informations.

Comme vous le verrez, il est maintenant relativement facile de produire du contenu généré par des machines et la qualité des générations s'améliore rapidement.

Cela m'a conduit à la triste conclusion que nous verrions beaucoup plus de résultats de spam qu'auparavant.

Heureusement, Google a récemment publié son rapport de spam 2019 qui m'a mis à l'aise.

Avez-vous déjà consulté votre dossier de courrier indésirable ?Voilà à quoi pourraient ressembler les résultats de recherche sans les mesures que nous prenons pour lutter contre le spam de recherche.Notre article d'aujourd'hui examine comment nous travaillons pour empêcher le spam d'apparaître dans les résultats de recherche de Google https://t.co/RA4lUoDXEF

– Google SearchLiaison (@searchliaison) 9 juin 2020

"L'année dernière, nous avons observé que plus de 25 milliards de pages que nous trouvons chaque jour sont du spam. (Si chacune de ces pages était une page dans un livre, cela représenterait plus de 20 millions d'exemplaires de "Guerre & Paix" chaque jour !)

Nos efforts ont permis de garantir que plus de 99 % des visites issues de nos résultats mènent à des expériences sans spam.

Au cours des dernières années, nous avons observé une augmentation des sites de spam avec du contenu généré automatiquement et récupéré avec des comportements qui dérangent ou nuisent aux internautes, tels que de faux boutons, des publicités accablantes, des redirections suspectes et des logiciels malveillants.Ces sites Web sont souvent trompeurs et n'offrent aucune valeur réelle aux gens.En 2019, nous avons pu réduire l'impact de ce type de spam sur les utilisateurs de la recherche de plus de 60 % par rapport à 2018."

Alors que Google signale un nombre impressionnant de pages de spam par jour, ils signalent un taux de réussite impressionnant de 99 % dans la suppression du spam à tous les niveaux.

Plus important encore, ils ont fait des progrès incroyables dans la suppression du contenu de spam généré par les machines.

Dans cette colonne, je vais expliquer avec du code comment un ordinateur est capable de générer du contenu en utilisant les dernières avancées de NLG.

Je vais passer en revue la théorie et quelques lignes directrices pour que votre contenu reste utile.

Cela vous aidera à éviter de vous faire prendre avec tous les spams Web que Google et Bing travaillent 24 heures sur 24 pour se débarrasser.

Pages de contenu léger

Dans mon article sur la génération de titre et de méta description, j'ai partagé une technique efficace qui repose sur la synthèse du contenu de la page pour produire des balises méta.

Une fois que vous avez suivi les étapes, vous pouvez voir que cela fonctionne très bien et peut même produire des textes originaux de haute qualité.

Mais que se passe-t-il si les pages n'incluent aucun contenu à résumer ?La technique échoue.

Laissez-moi vous dire une astuce très astucieuse pour résoudre ce problème.

Si ces pages ont des backlinks de qualité, vous pouvez utiliser le texte d'ancrage et le texte entourant le backlink comme texte à résumer.

Attendre!

Mais pourquoi?

Permettez-moi de remonter jusqu'en 1998, à la création du moteur de recherche Google.

Dans l'article décrivant leur nouveau moteur de recherche, Page et Brin ont partagé un aperçu très intéressant dans la section 2.2.

"La plupart des moteurs de recherche associent le texte d'un lien à la page sur laquelle se trouve le lien. De plus, nous l'associons à la page vers laquelle pointe le lien. Cela présente plusieurs avantages. Premièrement, les ancres fournissent souvent des descriptions plus précises des pages Web que les pages elles-mêmes. Deuxièmement, des ancres peuvent exister pour des documents qui ne peuvent pas être indexés par un moteur de recherche textuel, tels que des images, des programmes et des bases de données. Cela permet de renvoyer des pages Web qui n'ont pas été explorées.

Voici le plan technique :

  1. Nous obtiendrons des backlinks et des textes d'ancrage correspondants à l'aide des nouveaux outils Bing pour les webmasters.
  2. Nous allons gratter le texte environnant des backlinks de la plus haute qualité.
  3. Nous créerons des résumés et du contenu long en utilisant le texte gratté.

Une fonctionnalité que j'aime dans le nouvel outil de backlinks de BWT, c'est qu'il peut fournir des liens pointant non seulement vers votre propre site, mais aussi vers d'autres sites.

Je m'attends à ce que cela devienne une alternative gratuite populaire aux outils payants.

J'ai exporté le fichier CSV avec la grande liste de liens et d'ancres, mais lorsque j'ai essayé de le charger à l'aide de pandas Python, j'ai trouvé un certain nombre de problèmes de formatage.

Les textes d'ancrage aléatoires peuvent inclure des virgules et causer des problèmes avec un fichier délimité par des virgules.

Je les ai résolus en ouvrant le fichier dans Excel et en l'enregistrant au format Excel.

Gratter le texte environnant avec Python

Comme vous pouvez le voir dans ma capture d'écran ci-dessus, de nombreux textes d'ancrage sont assez courts.

Nous pouvons gratter les pages pour obtenir le paragraphe qui les contient.

Commençons par charger le rapport que nous avons exporté depuis BWT.

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

J'ai examiné l'URL cible en fonction du nombre de liens entrants utilisés.

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

J'ai extrait les backlinks de l'une des pages pour évaluer l'idée en utilisant ce code.

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

Voyons maintenant comment nous pouvons utiliser une URL cible et un lien retour pour extraire le texte d'ancrage pertinent qui inclut l'ancre.

Tout d'abord, installons requests-html.

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

Afin de garder le code simple, je vais produire manuellement un sélecteur CSS pour saisir le texte entourant le lien.

Il n'est pas difficile de calculer cela étant donné le lien et l'ancre sur la page en utilisant du code JavaScript ou Python.

C'est peut-être une bonne idée pour vous d'essayer comme devoir.

Ouvrez un exemple de page de backlink et à l'aide des outils de développement Chrome, vous pouvez cliquer avec le bouton droit sur le paragraphe qui vous intéresse et copier un sélecteur CSS.

C'est le sélecteur que j'ai utilisé.

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

Voici le texte qui est revenu.J'ai mis en gras le texte de notre exemple de texte d'ancrage.

Nous savons que la rétention des enseignants améliore les résultats des élèves et, inversement, que le roulement des enseignants peut nuire à la réussite des élèves.Environ 16 % des éducateurs quittent le domaine chaque année, et nous savons que de nombreux enseignants, comme moi, partent au cours des cinq premières années.Les enseignants signalent que les principales raisons de leur départ sont le manque d'autonomie et de voix, ainsi que des problèmes de culture et, en particulier, de discipline.De plus, le chiffre d'affaires est coûteux - court-circuitant les districts jusqu'à 2,2 milliards de dollars par an.

Passons maintenant à la partie amusante !

Génération de texte neuronal

Nous allons utiliser le même code de synthèse que nous avons utilisé pour générer des titres et des méta descriptions dans mon article précédent, mais avec une torsion.

Au lieu de spécifier une longueur de résumé souhaitable plus courte que le paragraphe d'origine, nous spécifierons une longueur plus longue.Ça marchera?Voyons voir!

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

Je reçois cet avertissement intéressant.

Votre max_length est défini sur 250, mais votre input_length n'est que de 99.Vous pourriez envisager de diminuer max_length manuellement, par ex. résumé('...', max_length=50)

Voyons le texte généré.

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

Le texte original avait 492 caractères et le texte généré 835.

Mais, regardez la qualité et les nouvelles phrases qui apparaissent dans le texte généré.Absolument, époustouflant !

Cette technique peut-elle générer un texte encore plus long ?Oui!

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

Ce texte généré comporte 1 420 caractères et maintient le flux logique !

La bête qui alimente cette technique est un modèle de Facebook appelé BART.

Les auteurs de l'article le décrivent comme une forme généralisée de BERT.

Voyons comment cela fonctionne.

Comment fonctionne la génération de texte neuronal

Avez-vous passé des tests d'aptitude ou de QI où l'on vous présente une séquence de chiffres et vous devez deviner le suivant ?

C'est essentiellement ce que notre modèle a fait ci-dessus lorsque nous avons fourni un texte initial et demandé à nos modèles de prédire ce qui se passerait ensuite.

Il a transformé notre texte initial en une séquence de nombres, a deviné le nombre suivant, a pris la nouvelle séquence qui inclut le nombre deviné et a répété le même processus.

Cela continue jusqu'à ce qu'il atteigne la limite de longueur que nous avons spécifiée.

Maintenant, ce ne sont pas seulement des nombres réguliers, mais des vecteurs et plus spécifiquement (dans le cas de BERT et BART) des incorporations de mots bidirectionnelles.

J'ai expliqué les vecteurs et l'intégration de mots bidirectionnels à l'aide d'une analogie GPS dans mes articles d'apprentissage en profondeur, parties 1 et 2.Veuillez vous assurer de les vérifier.

En résumé, les intégrations encodent des informations riches sur les mots qu'elles représentent, ce qui augmente considérablement la qualité des prédictions.

Donc, voici un exemple de la façon dont cela fonctionne.

Étant donné le texte : "Le meilleur langage de programmation pour les référenceurs effectuant des tâches répétitives est ____ et pour les référenceurs effectuant des audits frontaux est ____", nous demandons au modèle de compléter la phrase.

La première étape consiste à convertir les mots en nombres/incorporations, où chaque intégration identifie le mot dans son contexte.

Ensuite, transformez cela en un casse-tête que l'ordinateur peut résoudre pour déterminer les nombres/incorporations qui peuvent combler les blancs en fonction du contexte.

L'algorithme qui peut résoudre ces types d'énigmes s'appelle un modèle de langage.

Un modèle de langue est similaire aux règles grammaticales en anglais ou dans toute autre langue.

Par exemple, si le texte est une question, il doit se terminer par un point d'interrogation.

La différence est que tous les mots et symboles sont représentés par des nombres/incorporations.

Maintenant, là où ça devient intéressant, c'est que dans l'apprentissage en profondeur (ce que nous utilisons ici), vous n'avez pas besoin de créer manuellement une grande liste de règles de grammaire.

Le modèle apprend les règles de manière empirique par des essais et des erreurs efficaces.

Cela se fait lors de ce qu'on appelle une phase de pré-formation où les modèles sont entraînés sur un corpus massif de données pendant plusieurs jours et à l'aide de matériel très puissant.

La meilleure partie pour nous est que les résultats de ces efforts sont mis gratuitement à la disposition de tous.

N'avons-nous pas vraiment de la chance ?

BERT est un exemple de modèle de langage, tout comme GPT-2 et BART.

Comment l'utiliser pour de bon

Comme je l'ai mentionné ci-dessus, ce truc est vraiment puissant et pourrait être utilisé pour générer du contenu inutile à une échelle relativement peu coûteuse.

Personnellement, je ne voudrais pas perdre de temps à patauger dans les ordures pendant que je cherche.

Au fil du temps, j'ai réalisé que pour que le contenu fonctionne dans la recherche, il doit :

  • Sois utile.
  • Répondre à un besoin réel.

Si ce n'est pas le cas, qu'il s'agisse d'un ordinateur ou d'une production humaine, il n'obtiendra aucun engagement ni validation de la part des utilisateurs finaux.

Les chances de classement et de performance sont vraiment faibles.

C'est pourquoi je préfère les techniques comme le résumé et la traduction ou les questions/réponses où vous avez un plus grand contrôle sur la génération.

Ils peuvent vous aider à vous assurer que vous ajoutez une nouvelle valeur.

Projets communautaires et ressources d'apprentissage

J'ai essayé de garder cet article léger dans le code et les explications aussi simples que possible pour permettre à plus de personnes dans la communauté de se joindre à la fête.

Mais, si vous êtes plus enclin à la technique, je pense que vous apprécierez cette explication plus granulaire et mathématique du sujet.

Assurez-vous également de suivre les liens dans la section "Autres lectures" dans l'article lié ci-dessus.

Passons maintenant à des nouvelles passionnantes.

J'ai demandé à la communauté de partager les projets Python sur lesquels ils travaillent.Je m'attendais peut-être à une poignée, et j'ai été complètement époustouflé par le nombre de retours. #N'ATTENDEZ PAS 🐍🔥

Celui-ci est Python et JS, mais je le publierai quand même !Extension Chrome pour éliminer les spams sur Google Maps.Le code du serveur est en Python et traite la validation et la classification. pic.twitter.com/Rvzfr5ku4N

– zchtodd (@zchtodd) 8 juin 2020

1.RPA en python pour automatiser la prise de capture d'écran répétitive https://t.co/zyaafY0bcd
2.API de la console de recherche + NLP pour vérifier les pages où le mot dans le méta-titre ne correspond pas aux requêtes utilisées par les visiteurs : https://t.co/KsYGds7w1r

– Michael Van Den Reym (@vdrweb) 8 juin 2020

3.Vérifiez le code d'état de toutes les URL avec les impressions de la console de recherche à l'aide de l'API de la console de recherche https://t.co/qX0FxSoqgN

– Michael Van Den Reym (@vdrweb) 8 juin 2020

Salut Hamlet !

Je travaille sur un vérificateur de redirection avec des capacités de correspondance floue.

Il y aura un bloc-notes @GoogleColab, mais idéalement, je voudrais également le déployer dans @streamlit afin que les gens puissent évaluer la qualité de leurs redirections en 1 clic, par glisser-déposer.

Je partagerai sous peu 🙂

– Charly Wargnier (@DataChaz) 9 juin 2020

@hamletbatista https://t.co/oPt5M393Lu
J'ai travaillé dessus en utilisant @streamlit
Écrivez des méta-titres plus convaincants.
Vidéo explicative : https://t.co/YvVoFMQ4FS

– Anubhav Bittoo Narula (@ anubhavn22) 9 juin 2020

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) 8 juin 2020

1.Lire les fichiers journaux et poster 5xx/4xx en temps réel pour se détendre !
2.Intention de mot-clé vs score de correspondance d'URL.

– Vénus Kalra (@venuskalra) 9 juin 2020

https://t.co/9we85HXJgJ

– Marat Gaziev (@MaratGaziev) 9 juin 2020

Je suis en train de créer un package pour les #SEO et les spécialistes du marketing en ligne, contenant entre autres :
-Crawler
– testeur robots.txt
– Vérificateur SERP
– Convertisseur Sitemap en DataFrame
– Convertisseur URL vers DataFrame

et plus 🙂 https://t.co/BMVeeQaTxE

– Elias Dabbas (@eliasdabbas) 9 juin 2020

Quelques analyses de contenu avec Beautiful Soup + l'API Knowledge box + l'API Cloud Entity !🐍🐍🐍

– Jess mais à 6 pieds (@jessthebp) 8 juin 2020

Davantage de ressources:


Crédits image

Toutes les captures d'écran prises par l'auteur, juin 2020

Toutes catégories: Blogs