Doporučovací systém na základě dějové linie

Feature Engineering for NLP in Python

Rounak Banik

Data Scientist

Doporučovač filmů

Název Přehled
Shanghai Triad Venkovský chlapec spřízněný s šanghajskou zločineckou rodinou je ve 30. letech 20. století strýcem přiveden do Šanghaje jako sluha milenky gangsterského bosse.
Cry, the Beloved Country Jihoafrický kazatel hledá svého zbloudilého syna, který spáchal zločin ve velkém městě.
Feature Engineering for NLP in Python

Doporučovač filmů

get_recommendations("The Godfather")
1178               The Godfather: Part II
44030    The Godfather Trilogy: 1972-1990
1914              The Godfather: Part III
23126                          Blood Ties
11297                    Household Saints
34717                   Start Liquidation
10821                            Election
38030                          Goodfellas
17729                   Short Sharp Shock
26293                  Beck 28 - Familjen
Name: title, dtype: object
Feature Engineering for NLP in Python

Kroky

  1. Předzpracování textu
  2. Generování tf-idf vektorů
  3. Generování matice kosinové podobnosti
Feature Engineering for NLP in Python

Doporučovací funkce

  1. Přijímá název filmu, matici kosinové podobnosti a sérii indexů jako argumenty.
  2. Extrahuje párová skóre kosinové podobnosti pro daný film.
  3. Seřadí skóre sestupně.
  4. Vrátí názvy odpovídající nejvyšším skóre.
  5. Ignoruje nejvyšší skóre podobnosti (hodnotu 1).
Feature Engineering for NLP in Python

Generování tf-idf vektorů

# Import TfidfVectorizer
from sklearn.feature_extraction.text import TfidfVectorizer

# Create TfidfVectorizer object
vectorizer = TfidfVectorizer()

# Generate matrix of tf-idf vectors
tfidf_matrix = vectorizer.fit_transform(movie_plots)
Feature Engineering for NLP in Python

Generování matice kosinové podobnosti

# Import cosine_similarity
from sklearn.metrics.pairwise import cosine_similarity

# Generate cosine similarity matrix
cosine_sim = cosine_similarity(tfidf_matrix, tfidf_matrix)
array([[1.        , 0.27435345, 0.23092036, ..., 0.        , 0.        ,
        0.00758112],
       [0.27435345, 1.        , 0.1246955 , ..., 0.        , 0.        ,
        0.00740494],
       ...,
       [0.00758112, 0.00740494, 0.        , ..., 0.        , 0.        ,
        1.        ]])
Feature Engineering for NLP in Python

Funkce linear_kernel

  • Velikost tf-idf vektoru je 1
  • Kosinové skóre dvou tf-idf vektorů je jejich skalární součin.
  • Může výrazně zkrátit dobu výpočtu.
  • Místo cosine_similarity použijte linear_kernel.
Feature Engineering for NLP in Python

Generování matice kosinové podobnosti

# Import cosine_similarity
from sklearn.metrics.pairwise import linear_kernel

# Generate cosine similarity matrix
cosine_sim = linear_kernel(tfidf_matrix, tfidf_matrix)
array([[1.        , 0.27435345, 0.23092036, ..., 0.        , 0.        ,
        0.00758112],
       [0.27435345, 1.        , 0.1246955 , ..., 0.        , 0.        ,
        0.00740494],
       ...,
       [0.00758112, 0.00740494, 0.        , ..., 0.        , 0.        ,
        1.        ]])
Feature Engineering for NLP in Python

Funkce get_recommendations

get_recommendations('The Lion King', cosine_sim, indices)
7782                      African Cats
5877    The Lion King 2: Simba's Pride
4524                         Born Free
2719                          The Bear
4770     Once Upon a Time in China III
7070                        Crows Zero
739                   The Wizard of Oz
8926                   The Jungle Book
1749                 Shadow of a Doubt
7993                      October Baby
Name: title, dtype: object
Feature Engineering for NLP in Python

Pojďme si to procvičit!

Feature Engineering for NLP in Python

Preparing Video For Download...