top of page

Creare un sistema di raccomandazione notizie con Python

Un sistema di raccomandazione è un'applicazione popolare della Data Science.

Quasi tutti i siti Web popolari che visiti utilizzano sistemi di raccomandazione. Come suggerisce il nome, un sistema di raccomandazione di notizie è un'applicazione che consiglia articoli di notizie in base alle notizie che un utente sta già leggendo. Quindi, se vuoi imparare come creare un sistema di raccomandazione di notizie, questo articolo è per te. In questo articolo, ti illustrerò come creare un sistema di raccomandazione di notizie utilizzando Python.


Creare un sistema di raccomandazione notizie con Python
Creare un sistema di raccomandazione notizie con Python

Introduzione ai sistemi di raccomandazione

Negli ultimi decenni, con l'ascesa di Youtube, Amazon, Netflix e molti altri servizi web simili, i sistemi di raccomandazione hanno preso sempre più posto nelle nostre vite. Dall'e-commerce (suggerire agli acquirenti articoli che potrebbero interessarli) alla pubblicità online (suggerire agli utenti i contenuti giusti, abbinandoli alle loro preferenze), i sistemi di raccomandazione sono oggi inevitabili nei nostri viaggi online quotidiani.

In modo molto generale, i sistemi di raccomandazione sono algoritmi volti a suggerire elementi rilevanti agli utenti (oggetti come film da guardare, testo da leggere, prodotti da acquistare o qualsiasi altra cosa a seconda dei settori).


I sistemi di raccomandazione sono davvero critici in alcuni settori in quanto possono generare un'enorme quantità di entrate quando sono efficienti o anche essere un modo per distinguersi in modo significativo dalla concorrenza. A riprova dell'importanza dei sistemi di raccomandazione, possiamo ricordare che, alcuni anni fa, Netflix ha organizzato una sfida (il "premio Netflix") in cui l'obiettivo era quello di produrre un sistema di raccomandazione che funzionasse meglio del proprio algoritmo con un premio di 1 milione di dollari da vincere.



Come funziona un sistema di raccomandazione delle notizie?

Quando visiti un sito Web, consiglia contenuti simili in base a ciò che stai già guardando o leggendo. La raccomandazione del contenuto basata sul contenuto che l'utente sta già consumando è una tecnica per creare un sistema di consigli noto come filtro basato sul contenuto.


Tutti i siti Web di notizie popolari utilizzano sistemi di raccomandazione basati sui contenuti progettati per trovare somiglianze tra le notizie che stai leggendo e altri articoli di notizie sul loro sito Web per consigliare gli articoli di notizie più simili.


Spero che ora tu abbia capito come funziona un sistema di raccomandazione delle notizie. Nella sezione seguente, ti illustrerò come creare un sistema di raccomandazione di notizie utilizzando il linguaggio di programmazione Python.


Creare un sistema di raccomandazione notizie con Python

Il set di dati che sto usando per creare un sistema di raccomandazione di notizie è di Microsoft. Poiché i dati richiedevano molta pulizia e preparazione, ho scaricato i dati e li ho preparati per creare un sistema di consigli basato sul contenuto.


Ora iniziamo con l'importazione delle librerie Python necessarie e del set di dati di cui abbiamo bisogno per costruire un sistema di raccomandazione delle notizie:



import numpy as np
import  as pd
from sklearn.feature_extraction import text
from sklearn.metrics.pairwise import cosine_similarity
import plotly.express as px
import plotly.graph_objects as go

Nel caso non hai installato queste librerie in locale lancia questo comando sul terminale.


#per python
pip install numpy pandas sklearn plotly

#per python >= 3
pip install numpy pandas sklearn plotly

#per google colab
pip install numpy pandas sklearn plotly

ora carichiamo i dati



data = pd.read_csv("/content/News.csv")
print(data.head())

Output:

ID News Category                                              Title  \ 0  N88753     lifestyle  The Brands Queen Elizabeth, Prince Charles, an...    1  N45436          news    Walmart Slashes Prices on Last-Generation iPads    2  N23144        health                      50 Worst Habits For Belly Fat    3  N86255        health  Dispose of unwanted prescription drugs during ...    4  N93187          news  The Cost of Trump's Aid Freeze in the Trenches...                                                  Summary Unnamed: 4 Unnamed: 5  \ 0  Shop the notebooks, jackets, and more that the...        NaN        NaN    1  Apple's new iPad releases bring big deals on l...        NaN        NaN    2  These seemingly harmless habits are holding yo...        NaN        NaN    3                                                NaN        NaN        NaN    4  Lt. Ivan Molchanets peeked over a parapet of s...        NaN        NaN       Unnamed: 6 Unnamed: 7   0        NaN        NaN   1        NaN        NaN   2        NaN        NaN   3        NaN        NaN   4        NaN        NaN  

Non molto chiaro , ma abbiamo 4 colonne :

  1. ID News

  2. Categoria

  3. Titolo

  4. Riepilogo


Diamo un'occhiata alle categorie di notizie in questo set di dati:


categories = data["News Category"].value_counts()
label = categories.index
counts = categories.values
figure = px.bar(data, x=label, 
                y = counts, 
            title="Types of News Categories")
figure.show()

Output:

Creare un sistema di raccomandazione notizie con Python
Creare un sistema di raccomandazione notizie con Python

Esistono due modi per creare un sistema di raccomandazioni utilizzando questo set di dati:

  1. Se scegliamo la colonna Categoria notizie come feature che utilizzeremo per trovare somiglianze, i consigli potrebbero non aiutare ad attirare l'attenzione dell'utente per un periodo di tempo più lungo. Supponiamo che un utente stia leggendo notizie sugli sport in base a una partita di cricket e riceva consigli su altri sport come il wrestling, l'hockey, il calcio ecc., che potrebbero essere inappropriati in base al contenuto che l'utente sta leggendo.

  2. L'altro modo è utilizzare il titolo o il riepilogo come funzionalità per trovare somiglianze. Fornirà consigli più accurati poiché il contenuto consigliato sarà basato sul contenuto che l'utente sta già leggendo.

Quindi possiamo utilizzare il titolo o il riepilogo dell'articolo di notizie per trovare somiglianze con altri articoli di notizie. Qui userò la colonna del titolo. Se desideri utilizzare la colonna di riepilogo, elimina prima le righe con valori nulli, poiché la colonna di riepilogo contiene più di 5000 valori nulli.



Di seguito è riportato come possiamo trovare somiglianze tra gli articoli di notizie convertendo i testi della colonna del titolo in vettori numerici e quindi trovando somiglianze tra i vettori numerici utilizzando l'algoritmo di similarità del coseno:



feature = data["Title"].tolist()
tfidf = text.TfidfVectorizer(input=feature, stop_words="english")
tfidf_matrix = tfidf.fit_transform(feature)
similarity = cosine_similarity(tfidf_matrix)

Ora imposterò la colonna del titolo come indice dei dati in modo da poter cercare consigli sui contenuti fornendo il titolo come input:



indices = pd.Series(data.index, index=data['Title']).drop_duplicates()

Di seguito è riportato come creare un sistema di suggerimenti per le notizie:


def news_recommendation(Title, similarity = similarity):
    index = indices[Title]
    similarity_scores = list(enumerate(similarity[index]))
    similarity_scores = sorted(similarity_scores, 
    key=lambda x: x[1], reverse=True)
    similarity_scores = similarity_scores[0:10]
    newsindices = [i[0] for i in similarity_scores]
    return data['Title'].iloc[newsindices]

Ora vediamo come usare questa magica funzione per ottenere suggerimenti sulla base di un titolo dato come input :


print(news_recommendation("Walmart Slashes Prices on Last-Generation iPads"))

Output:

1          Walmart Slashes Prices on Last-Generation iPads 
2132          CEO slashes own salary to pay employees $70K 
9377         Meet the Next Generation of Texas Pit Masters 
15042                      Gas Prices Drop Across Michigan 
4511     Next-generation Kia Optima spied for the first... 
6108     Six pack abs are the biggest scam of our gener... 
10469    Kirby Corp. profits rise as it slashes manufac... 
3131     NASA to show world next generation spacesuit d... 
5240     10 Amazing Things at Walmart You Can't Buy Any... 
7261             How To Judge The Prices Of Collector Cars 

Name: Title, dtype: object 

Ecco come puoi creare un sistema di raccomandazione di notizie usando il linguaggio di programmazione Python.





Riepilogo su come Creare un sistema di raccomandazione notizie con Python

Tutti i siti Web di notizie popolari utilizzano sistemi di raccomandazione basati sui contenuti progettati per trovare somiglianze tra le notizie che stai leggendo e altri articoli di notizie sul loro sito Web per consigliare gli articoli di notizie più simili. Spero che questo articolo ti sia piaciuto su come creare un sistema di raccomandazione di notizie usando Python. Sentiti libero di porre domande preziose nella sezione commenti qui sotto.





PCR (5).gif
PCR (4).gif
PCR.gif
PCR.gif
PCR.gif
PCR.gif
PCR (5).gif
3.gif
Vediamo se riesci a cliccarmi ! Nascondo una Sorpresa... (2).png

Ciao 

🤗 Articoli consigliati dalla nostra
Intelligenza Artificiale in base ai tuoi interessi

Correlazione Alta

Correlazione Media

Correlazione Bassa

Iscriviti

VUOI DIVENTARE UN MEMBRO DI INTELLIGENZA ARTIFICIALE ITALIA GRATUITAMENTE E TRARNE I SEGUENTI BENEFICI?

Corsi Gratis

più di 150 lezioni online

Dataset Gratis

più di 150o dataset

Ebook Gratis

più di 10 libri da leggere

Editor Gratis

un editor python online

Progetti Gratis

più di 25 progetti python

App Gratis

4 servizi web con I.A.

Unisciti Ora a oltre
1.000.000
di lettori e appassionanti d'I.A.

Tutto ciò che riguarda l'intelligenza Artificiale, in unico posto, in italiano e gratis.

MEGLIO DI COSI' NON SI PUO' FARE

Dopo l'iscrizione riceverai diversi Regali

VUOI SCRIVERE ARTICOLI INSIEME A NOI.

Grazie

bottom of page