Ver temas de noticias asistidos por Python para analizar planes de sitios de noticias – Actu Seo and Web

Los planes de sitios de noticias utilizan protocolos de planes de sitios únicos y diferentes para proporcionar más información a los motores de búsqueda de noticias.

Un plano del sitio de noticias contiene las noticias publicadas durante las últimas 48 horas.

Los planes del sitio de noticias incluyen el título, el idioma, el nombre, el género, la fecha de publicación, las palabras clave e incluso los símbolos bursátiles de la publicación de actualidad.

¿Cómo puede utilizar estos mapas de sitio a su favor para la investigación de contenido y el análisis competitivo?

En este tutorial de Python, aprenderá un proceso de 10 pasos para analizar mapas de actualidad y visualizar tendencias temáticas que se han descubierto.

Las notas de mantenimiento logran ayudarnos a comenzar

Este tutorial fue escrito durante la invasión de Ucrania por Rusia.

Mediante el aprendizaje automático, podemos incluso etiquetar las fuentes de información y los artículos según la fuente de información «objetiva» y la fuente de información «sarcástica».

Pero para simplificar las cosas, nos centraremos en temas con análisis de frecuencia.

Usamos más de 10 fuentes globales de información en los Estados Unidos y el Reino Unido

Nota: nuestro objetivo es incluir las fuentes de noticias rusas, pero no tienen un mapa del sitio de noticias adecuado. Incluso si lo hicieran, bloquearían las demandas externas.

Comparar la competencia del mot de «Invasión» y «liberación» de fuentes de información occidentales y orientales que muestran los beneficios de los métodos de análisis de frecuencia de texto.

Esto requiere que analices el contenido de las noticias de Python.

Las bibliotecas de Python asociadas con la auditoría de un sitio de noticias para comprender la estrategia de contenido de la fuente de noticias se enumeran a continuación:

  • Herramientas publicitarias.
  • pandas.
  • Plotly Express, subtramas y objetos gráficos.
  • Re (regex).
  • Corde.
  • NLTK (Corpus, Mots vides, Ngrams).
  • Datos Unicode.
  • Matplotlib.
  • Comprensión básica de la sintaxis de Python.

10 pasos para analizar el mapa del sitio de Python News

¿Todo está configurado? Allons-y.

1. Ingrese la URL de la noticia del plan del sitio de noticias

Elegimos «The Guardian», «New York Times», «Washington Post», «Daily Mail», «Sky News», «BBC» y «CNN» para examinar las direcciones URL de los mapas de actualidad.

df_guardian = adv.sitemap_to_df("
df_nyt = adv.sitemap_to_df("
df_wp = adv.sitemap_to_df("
df_bbc = adv.sitemap_to_df("
df_dailymail = adv.sitemap_to_df("
df_skynews = adv.sitemap_to_df("
df_cnn = adv.sitemap_to_df("

2. Examine un mapa del sitio de muestra de eventos actuales con Python

Usé la BBC como ejemplo para demostrar lo que tenemos que extraer de estos planes de sitios de noticias.

df_bbc
Ver el marco de datos del plano del sitio

El plan del sitio de la BBC contiene las siguientes columnas.

df_bbc.columns
Balizas del plano del sitioSaldos del mapa del sitio, así como bloques de datos.

Las estructuras de datos generales de estas columnas se encuentran a continuación.

df_bbc.info()
Plano del sitio de noticias como marco de datosTipos de datos y columnas del mapa del sitio

La BBC no utiliza la columna «news_publication» y otras.

3. Encuentra las palabras más utilizadas en la URL de las publicaciones de noticias

Para ver las palabras más utilizadas en las URL de los sitios de noticias, debemos usar los métodos «str», «explode» y «split».

df_dailymail["loc"].str.split("/").str[5].str.split("-").explode().value_counts().to_frame()
loc
article
176
Russian
50
Ukraine
50
says
38
reveals
38
...
...
readers
1
Red
1
Cross
1
provide
1
weekend.html
1
5445 rows × 1 column

Parece que para el «Daily Mail», «Rusia y Ucrania» son el tema principal.

4. Encuentra el idioma más utilizado en las publicaciones de actualidad

La estructura de URL o la sección «idioma» de la publicación de noticias se puede utilizar para ver los idiomas más utilizados en las publicaciones de noticias.

En esta muestra, usamos «BBC» para ver su prioridad lingüística.

df_bbc["publication_language"].head(20).value_counts().to_frame()
idioma_publicación
en
698
fa
52
sr
52
ar
47
mr
43
hi
43
gu
41
ur
35
pt
33
te
31
ta
31
cy
30
ha
29
tr
28
es
25
sw
22
cpe
22
ne
21
pa
21
yo
20
20 rows × 1 column

Para llegar a la población rusa a través de Google News, todas las fuentes de información occidentales deben utilizar el idioma ruso.

Algunas instituciones internacionales de prensa han comenzado a adoptar esta perspectiva.

Si es reportero de noticias, es útil ver las publicaciones en ruso de sus competidores para difundir información objetiva en Rusia y ser competitivo dentro de la industria de la información.

5. Revisa los títulos de las noticias para conocer la frecuencia de las palabras

Usamos la BBC para ver los «titulares de noticias» y qué palabras son las más frecuentes.

df_bbc["news_title"].str.split(" ").explode().value_counts().to_frame()
news_title
to
232
in
181
-
141
of
140
for
138
...
...
ፊልም
1
ብላክ
1
ባንኪ
1
ጕሒላ
1
niile
1
11916 rows × 1 columns

El problema aquí es que tenemos «todos los tipos de palabras en los titulares», al igual que las «palabras vacías sin contexto».

Necesitamos poner en red este tipo de términos no categóricos para comprender mejor su objetivo.

from nltk.corpus import stopwords
stop = stopwords.words('english')
df_bbc_news_title_most_used_words = df_bbc["news_title"].str.split(" ").explode().value_counts().to_frame()
pat = r'b(?:{})b'.format('|'.join(stop))
df_bbc_news_title_most_used_words.reset_index(drop=True, inplace=True)
df_bbc_news_title_most_used_words["without_stop_words"] = df_bbc_news_title_most_used_words["words"].str.replace(pat,"")
df_bbc_news_title_most_used_words.drop(df_bbc_news_title_most_used_words.loc[df_bbc_news_title_most_used_words["without_stop_words"]==""].index, inplace=True)
df_bbc_news_title_most_used_words
Supresión de palabras vides del análisis de textoLa columna «sin_stop_words» implica los valores del texto neto.

Hemos eliminado la mayoría de las palabras usando el método «regex» y «reemplazar» de Pandas.

La segunda preocupación es eliminar los «pinchazos».

Para ello, utilizaremos el módulo «string» de Python.

import string
df_bbc_news_title_most_used_words["without_stop_word_and_punctation"] = df_bbc_news_title_most_used_words['without_stop_words'].str.replace('[{}]'.format(string.punctuation), '')
df_bbc_news_title_most_used_words.drop(df_bbc_news_title_most_used_words.loc[df_bbc_news_title_most_used_words["without_stop_word_and_punctation"]==""].index, inplace=True)
df_bbc_news_title_most_used_words.drop(["without_stop_words", "words"], axis=1, inplace=True)
df_bbc_news_title_most_used_words
news_title
without_stop_word_and_punctation
Ukraine
110
Ukraine
v
83
v
de
61
de
Ukraine:
60
Ukraine
da
51
da
...
...
...
ፊልም
1
ፊልም
ብላክ
1
ብላክ
ባንኪ
1
ባንኪ
ጕሒላ
1
ጕሒላ
niile
1
niile
11767 rows × 2 columns

Sí, use df_bbc_news_title_most_used_words[“news_title”].to_frame () »para tomar una imagen más clara de los datos.

news_title
Ukraine
110
v
83
de
61
Ukraine:
60
da
51
...
...
ፊልም
1
ብላክ
1
ባንኪ
1
ጕሒላ
1
niile
1
11767 rows × 1 columns

Vemos 11 767 palabras únicas en la URL de la BBC, y Ucrania es la más popular, con 110 apariciones.

Hay diferentes frases relacionadas con Ucrania en el bloque de datos, como «Ucrania:».

El «Tokenize NLTK» se puede utilizar para unir estos diferentes tipos de variaciones.

La siguiente sección utiliza un método diferente para unir.

Nota: si desea facilitar las tareas, use Adtools como se muestra a continuación.

adv.word_frequency(df_bbc["news_title"],phrase_len=2, rm_words=adv.stopwords.keys())

El resultado está abajo.

Análisis de texto y WordAnálisis de texto con Adtools

“Adv.word_frequency” tiene los atributos “phrase_len” y “rm_words” para determinar la longitud de la frase y eliminar las palabras con vocales.

¿Puedes decirme por qué no lo usé en primer lugar?

Me gustaría mostrarle un ejemplo educativo con «regex, NLTK y la cadena» para que pueda entender lo que sucede detrás de escena.

6. Muestra las palabras más utilizadas en los titulares de las noticias

Para visualizar las palabras más utilizadas en los titulares de las noticias, puede utilizar el bloque de código a continuación.

df_bbc_news_title_most_used_words["news_title"] = df_bbc_news_title_most_used_words["news_title"].astype(int)
df_bbc_news_title_most_used_words["without_stop_word_and_punctation"] = df_bbc_news_title_most_used_words["without_stop_word_and_punctation"].astype(str)
df_bbc_news_title_most_used_words.index = df_bbc_news_title_most_used_words["without_stop_word_and_punctation"]
df_bbc_news_title_most_used_words["news_title"].head(20).plot(title="The Most Used Words in BBC News Titles")
Noticias Mapa del sitio Análisis PythonVisualización de NGrams

Descubrirá que hay una «línea discontinua».

¿Recuerda «Ucrania» y «Ucrania:» en el bloque de datos?

Cuando eliminamos el «pinchazo», el segundo y el primer valor se vuelven idénticos.

Es por eso que el gráfico lineal indica que Ucrania aparece 60 veces y 110 veces por separado.

Para evitar tal divergencia de datos, use el bloque de código a continuación.

df_bbc_news_title_most_used_words_1 = df_bbc_news_title_most_used_words.drop_duplicates().groupby('without_stop_word_and_punctation', sort=False, as_index=True).sum()
df_bbc_news_title_most_used_words_1
news_title
without_stop_word_and_punctation
Ukraine
175
v
83
de
61
da
51
и
41
...
...
ፊልም
1
ብላክ
1
ባንኪ
1
ጕሒላ
1
niile
1
11109 rows × 1 columns

Las líneas duplicadas se eliminan y se agregan sus valores.

Mantener, visualizarlo de nuevo.

7. Extraerlos…

Deja una respuesta

Tu dirección de correo electrónico no será publicada.