Sitemap

La tecnología y las técnicas de generación de contenido que voy a demostrar en esta columna parecerían sacadas de una novela de ciencia ficción, pero ahora son reales y de libre acceso.

Después de completar los experimentos de codificación y comenzar a escribir este artículo, reflexioné sobre las implicaciones positivas y negativas de compartir esta información públicamente.

Como verá, ahora es relativamente fácil producir contenido generado por máquinas y la calidad de las generaciones está mejorando rápidamente.

Esto me llevó a la triste conclusión de que veríamos muchos más resultados de spam que antes.

Afortunadamente, Google publicó recientemente su informe de spam de 2019 que me tranquilizó.

¿Alguna vez miraste la carpeta de spam de tu correo electrónico?Así es como se verían los resultados de búsqueda sin los pasos que tomamos para combatir el spam de búsqueda.Nuestra publicación de hoy analiza cómo trabajamos para mantener el spam fuera de los resultados de búsqueda de Google https://t.co/RA4lUoDXEF

– Google SearchLiaison (@searchliaison) 9 de junio de 2020

“El año pasado, observamos que más de 25 mil millones de las páginas que encontramos cada día son spam. (¡Si cada una de esas páginas fuera una página en un libro, serían más de 20 millones de copias de “Guerra y paz” cada día!)

Nuestros esfuerzos han ayudado a garantizar que más del 99 % de las visitas de nuestros resultados conduzcan a experiencias libres de spam.

En los últimos años, hemos observado un aumento en los sitios con spam con contenido extraído y generado automáticamente con comportamientos que molestan o dañan a los buscadores, como botones falsos, anuncios abrumadores, redireccionamientos sospechosos y malware.Estos sitios web suelen ser engañosos y no ofrecen ningún valor real a las personas.En 2019, pudimos reducir el impacto de este tipo de spam en los usuarios de búsqueda en más de un 60 % en comparación con 2018”.

Si bien Google informa una cantidad asombrosa de páginas de spam por día, informa una impresionante tasa de éxito del 99% en la supresión del spam en todos los ámbitos.

Más importante aún, han logrado un progreso increíble en la supresión del contenido de spam generado por máquinas.

En esta columna, voy a explicar con código cómo una computadora puede generar contenido utilizando los últimos avances en NLG.

Repasaré la teoría y algunas pautas para mantener su contenido útil.

Esto lo ayudará a evitar que lo atrapen con todo el spam web que Google y Bing están trabajando las 24 horas para deshacerse de él.

Páginas de contenido delgado

En mi artículo sobre la generación de títulos y metadescripciones, compartí una técnica eficaz que se basa en resumir el contenido de la página para producir metaetiquetas.

Una vez que sigues los pasos, puedes ver que funciona muy bien e incluso puede producir textos novedosos de alta calidad.

Pero, ¿y si las páginas no incluyen ningún contenido para resumir?La técnica falla.

Déjame decirte un truco muy inteligente para resolver esto.

Si dichas páginas tienen vínculos de retroceso de calidad, puede usar el texto de anclaje y el texto que rodea el vínculo de retroceso como texto para resumir.

¡Esperar!

¿Pero por qué?

Permítanme regresar a 1998, a la fundación del motor de búsqueda de Google.

En el documento que describe su nuevo motor de búsqueda, Page y Brin compartieron una perspectiva muy interesante en la sección 2.2.

“La mayoría de los motores de búsqueda asocian el texto de un enlace con la página en la que se encuentra el enlace. Además, lo asociamos a la página a la que apunta el enlace. Esto tiene varias ventajas. En primer lugar, los anclajes suelen proporcionar descripciones más precisas de las páginas web que las propias páginas. En segundo lugar, pueden existir anclas para documentos que no pueden indexarse ​​mediante un motor de búsqueda basado en texto, como imágenes, programas y bases de datos. Esto hace posible devolver páginas web que en realidad no han sido rastreadas”.

Este es el plano técnico:

  1. Obtendremos vínculos de retroceso y los textos de anclaje correspondientes utilizando las nuevas Herramientas para webmasters de Bing.
  2. Extraeremos el texto circundante de los vínculos de retroceso de la más alta calidad.
  3. Crearemos resúmenes y contenido de formato largo utilizando el texto raspado.

Informe de vínculos de retroceso de las Herramientas para webmasters de Bing

Una característica que me gusta de la nueva herramienta de backlinks en BWT es que puede proporcionar enlaces no solo que apuntan a su propio sitio, sino también a otros sitios.

Espero que esto se convierta en una alternativa gratuita popular a las herramientas pagas.

Exporté el archivo CSV con la gran lista de enlaces y anclas, pero cuando traté de cargarlo usando pandas de Python y encontré una serie de problemas de formato.

Los textos de anclaje aleatorios pueden incluir comas y causar problemas con un archivo delimitado por comas.

Los resolví abriendo el archivo en Excel y guardándolo en formato Excel.

Raspado de texto circundante con Python

Como puede ver en mi captura de pantalla anterior, muchos de los textos de anclaje son bastante cortos.

Podemos raspar las páginas para obtener el párrafo que las contiene.

Primero, carguemos el informe que exportamos de BWT.

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

Revisé la URL de destino por la cantidad de enlaces entrantes que usaba.

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

Saqué los backlinks de una de las páginas para evaluar la idea usando este código.

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

Ahora, veamos cómo podemos usar una URL de destino y un vínculo de retroceso para extraer el texto del ancla relevante que incluye el ancla.

Obtener texto de vínculos de retroceso

Primero, instalemos request-html.

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

Para mantener el código simple, voy a producir manualmente un selector de CSS para capturar el texto que rodea el enlace.

No es difícil calcular esto dado el enlace y el ancla en la página usando código JavaScript o Python.

Tal vez sea una buena idea que pruebes como tarea.

Abra una página de vínculo de retroceso de ejemplo y, con las herramientas para desarrolladores de Chrome, puede hacer clic con el botón derecho en el párrafo de interés y copiar un selector de CSS.

Este es el selector que usé.

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

Este es el texto que volvió.Puse en negrita el texto de nuestro texto ancla de ejemplo.

Sabemos que la retención de maestros mejora los resultados de los estudiantes y, por el contrario, que la rotación de maestros puede perjudicar el rendimiento de los estudiantes.Alrededor del 16 por ciento de los educadores dejan el campo cada año, y sabemos que muchos maestros, como yo, lo dejan dentro de los primeros cinco años.Los maestros informan que las principales razones por las que se van son la falta de autonomía y voz, junto con cuestiones de cultura y, en particular, disciplina.Lo que es más, la rotación es costosa: reducir los distritos por más de $ 2.2 mil millones al año.

Ahora, ¡vayamos a la parte divertida!

Generación de texto neuronal

Vamos a usar el mismo código de resumen que usamos para generar títulos y meta descripciones en mi artículo anterior, pero con un giro.

En lugar de especificar una longitud de resumen deseable más corta que el párrafo original, especificaremos una longitud más larga.¿Eso funcionará?¡Veamos!

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

Recibo esta interesante advertencia.

Su max_length está configurado en 250, pero input_length es solo 99.Podría considerar disminuir max_length manualmente, p. resumidor('...', max_length=50)

Veamos el texto generado.

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

El texto original tenía 492 caracteres y el generado 835.

Pero observe la calidad y las oraciones novedosas que aparecen en el texto generado.¡Absolutamente, alucinante!

¿Puede esta técnica generar texto aún más largo?¡Sí!

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

¡Este texto generado tiene 1420 caracteres y mantiene el flujo lógico!

La bestia que impulsa esta técnica es un modelo de Facebook llamado BART.

Los autores del artículo lo describen como una forma generalizada de BERT.

Veamos cómo funciona esto.

Cómo funciona la generación de texto neuronal

¿Ha realizado pruebas de aptitud o de coeficiente intelectual en las que se le presenta una secuencia de números y necesita adivinar el siguiente?

En esencia, eso es lo que hizo nuestro modelo arriba cuando proporcionamos un texto inicial y le pedimos a nuestros modelos que predijeran lo que sucederá a continuación.

Convirtió nuestro texto inicial en una secuencia de números, adivinó el siguiente número y tomó la nueva secuencia que incluye el número adivinado y repitió el mismo proceso nuevamente.

Esto continúa hasta que alcanza el límite de longitud que especificamos.

Ahora, estos no son solo números regulares, sino vectores y, más específicamente (en el caso de BERT y BART), incrustaciones de palabras bidireccionales.

Expliqué los vectores y la incrustación bidireccional de palabras usando una analogía de GPS en mis artículos de aprendizaje profundo, parte 1 y parte 2.Por favor, asegúrese de revisarlos.

En resumen, las incrustaciones codifican información rica sobre las palabras que representan, lo que aumenta drásticamente la calidad de las predicciones.

Entonces, aquí hay un ejemplo de cómo funciona esto.

Dado el texto: “El mejor lenguaje de programación para SEO que realizan tareas repetitivas es ____ y ​​para SEO que realizan auditorías front-end es ____”, le pedimos al modelo que complete la oración.

El primer paso es convertir las palabras en números/incrustaciones, donde cada incrustación identifica la palabra en contexto.

Luego, convierta esto en un rompecabezas que la computadora pueda resolver para descubrir los números/incrustaciones que pueden llenar los espacios en blanco dado el contexto.

El algoritmo que puede resolver este tipo de acertijos se llama modelo de lenguaje.

Un modelo de lenguaje es similar a las reglas gramaticales en inglés o cualquier otro idioma.

Por ejemplo, si el texto es una pregunta, debe terminar con un signo de interrogación.

La diferencia es que todas las palabras y símbolos están representados por números/incrustaciones.

Ahora, lo interesante es que en el aprendizaje profundo (lo que estamos usando aquí), no es necesario crear manualmente una gran lista de reglas gramaticales.

El modelo aprende las reglas empíricamente a través de prueba y error eficientes.

Esto se hace durante lo que se llama una fase de preentrenamiento en la que los modelos se entrenan sobre un corpus masivo de datos durante varios días y utilizando un hardware muy potente.

La mejor parte para nosotros es que los resultados de estos esfuerzos son gratuitos para que cualquiera los use.

¿No somos realmente afortunados?

BERT es un ejemplo de un modelo de lenguaje y también lo son GPT-2 y BART.

Cómo usar esto para siempre

Como mencioné anteriormente, este material es realmente poderoso y podría usarse para generar contenido inútil a gran escala de manera relativamente económica.

Personalmente, no me gustaría perder el tiempo rebuscando entre la basura mientras busco.

Con el tiempo, me di cuenta de que para que el contenido funcione en la búsqueda, debe:

  • Sé útil.
  • Satisfacer una necesidad real.

Si no es así, no importa si es una computadora o una producción humana, no obtendrá ningún compromiso o validación por parte de los usuarios finales.

Las posibilidades de clasificación y desempeño son realmente bajas.

Es por eso que prefiero técnicas como resumen y traducción o preguntas/respuestas donde tienes un mayor control sobre la generación.

Pueden ayudarlo a asegurarse de que está agregando un nuevo valor.

Proyectos comunitarios y recursos de aprendizaje

Traté de mantener este artículo ligero en el código y las explicaciones lo más simples posible para permitir que más personas en la comunidad se unan a la diversión.

Pero, si tiene una inclinación más técnica, creo que disfrutará de esta explicación más granular y matemática del tema.

Asegúrese de seguir también los enlaces en la "Sección de lectura adicional" en el artículo vinculado anterior.

Ahora, algunas noticias emocionantes.

Le pedí a la comunidad que compartiera los proyectos de Python en los que están trabajando.Esperaba tal vez un puñado, y me quedé completamente impresionado por la cantidad que recibí. #NO ESPERES 🐍🔥

Este es Python y JS, ¡pero lo publicaré de todos modos!Extensión de Chrome para eliminar el spam en Google Maps.El código del servidor está en Python y aborda la validación y la clasificación. pic.twitter.com/Rvzfr5ku4N

– zchtodd (@zchtodd) 8 de junio de 2020

1.RPA en python para automatizar capturas de pantalla repetitivas https://t.co/zyaafY0bcd
2.Consola de búsqueda API + NLP para verificar páginas donde la palabra en el metatítulo no coincide con las consultas utilizadas por los visitantes: https://t.co/KsYGds7w1r

– Michael Van Den Reym (@vdrweb) 8 de junio de 2020

3.Verifique el código de estado de todas las URL con impresiones de la consola de búsqueda usando la API de la consola de búsqueda https://t.co/qX0FxSoqgN

– Michael Van Den Reym (@vdrweb) 8 de junio de 2020

¡Hola, Hamlet!

Estoy trabajando en un verificador de redirección con capacidades de coincidencia aproximada.

Habrá un cuaderno de @GoogleColab, pero idealmente también me gustaría implementarlo en @streamlit para que la gente pueda evaluar la calidad de sus redireccionamientos con 1 clic, arrastrando y soltando.

Lo compartiré en breve 🙂

– Charly Wargnier (@DataChaz) 9 de junio de 2020

@hamletbatista https://t.co/oPt5M393Lu
Trabajé en esto usando @streamlit
Escribe metatítulos más atractivos.
Vídeo explicativo: https://t.co/YvVoFMQ4FS

– Anubhav Bittoo Narula (@ anubhavn22) 9 de junio de 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 de junio de 2020

1.Leer los archivos de registro y publicar 5xx/4xx en tiempo real para holgura.
2.Intención de palabra clave frente a puntuación de coincidencia de URL.

– Venus Kalra (@venuskalra) 9 de junio de 2020

https://t.co/9we85HXJgJ

– Marat Gaziev (@MaratGaziev) 9 de junio de 2020

Estoy creando un paquete para #SEO y vendedores en línea, que contiene, entre otras cosas:
– rastreador
– Probador de robots.txt
– Comprobador SERP
– Conversor de Sitemap a DataFrame
– Conversor de URL a DataFrame

y más 🙂 https://t.co/BMVeeQaTxE

– Elías Dabbas (@eliasdabbas) 9 de junio de 2020

¡Un poco de análisis de contenido con Beautiful Soup + Knowledge Box API + Cloud Entity API!🐍🐍🐍

– Jess pero a 6 pies de distancia (@jessthebp) 8 de junio de 2020

Más recursos:


Créditos de imagen

Todas las capturas de pantalla tomadas por el autor, junio de 2020

Todas las categorias: Blog