Python ile Öneri Motorları Geliştirme
Rob O'Callaghan
Director of Data

$$ \Large{\text{TF-IDF} = \frac{\frac{\text{Kelimelerin görülme sayısı}}{\text{Belgedeki toplam kelime}}}{\log({\frac{\text{Kelimenin geçtiği belge sayısı}}{\text{Toplam belge sayısı}}})}} $$
book_summary_df:
| Kitap | Açıklama |
|---|---|
| The Hobbit | "Bilbo Baggins, Shire’da diğer hobbitlerle sade bir hayat sürer..." |
| The Great Gatsby | "Caz Çağı New York’unda geçen roman, Jay’in trajik hikâyesini anlatır ..." |
| A Game of Thrones | "Robert’ın isyanının üzerinden 15 yıl geçmiştir; dokuz yıl süren ..." |
| Macbeth | "Cesur bir İskoç generali, üç cadıdan bir kehanet alır ..." |
| ... | ... |
from sklearn.feature_extraction.text import TfidfVectorizer
tfidfvec = TfidfVectorizer( , )
from sklearn.feature_extraction.text import TfidfVectorizer
tfidfvec = TfidfVectorizer(min_df=2, )
from sklearn.feature_extraction.text import TfidfVectorizer
tfidfvec = TfidfVectorizer(min_df=2, max_df=0.7)
vectorized_data = tfidfvec.fit_transform(book_summary_df['Descriptions'])print(tfidfvec.get_feature_names)
['age', 'ancient', 'angry', 'brave', 'battle', 'fellow', 'game', 'general', ...]
print(vectorized_data.to_array())
[[0.21, 0.53, 0.41, 0.64, 0.01, 0.02, ...
[0.31, 0.00, 0.42, 0.03, 0.00, 0.73, ...
[..., ..., ..., ..., ..., ..., ...
tfidf_df = pd.DataFrame(vectorized_data.toarray(), columns=tfidfvec.get_feature_names())tfidf_df.index = book_summary_df['Book']print(tfidf_df)
| 'age'| 'ancient'| 'angry'| 'brave'| 'battle'| 'fellow'|...
|------------------|------|----------|--------|--------|---------|---------|...
| The Hobbit | 0.21| 0.53| 0.41| 0.64| 0.01| 0.02|...
| The Great Gatsby | 0.31| 0.00| 0.42| 0.03| 0.00| 0.73|...
| A Game of Thrones| 0.61| 0.42| 0.77| 0.31| 0.83| 0.03|...
| ...| ...| ...| ...| ...| ...| ...|...
Kosinüs uzaklığı: $$cos(\theta)=\frac{A.B }{||A||\cdot||B||}$$

from sklearn.metrics.pairwise import cosine_similarity
# Tüm öğeler arasındaki benzerliği bulun
cosine_similarity_array = cosine_similarity(tfidf_summary_df)
# İki öğe arasındaki benzerliği bulun
cosine_similarity(tfidf_df.loc['The Hobbit'].values.reshape(1, -1),
tfidf_df.loc['Macbeth'].values.reshape(1, -1))
Python ile Öneri Motorları Geliştirme