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
El plan del sitio de la BBC contiene las siguientes columnas.
df_bbc.columns

Las estructuras de datos generales de estas columnas se encuentran a continuación.
df_bbc.info()

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

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.

“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")

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.