SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Tworzenie aplikacji rekomendacji filmów Django za pomocą Jaccard Index

Moje cele w tym projekcie

  • Poznaj kluczowe komponenty frameworka django
  • Opisz podstawowe zasady systemu rekomendacji
  • Utwórz prostą aplikację do rekomendacji filmów, stosując algorytm Jaccard oparty na mechanizmie filtrowania treści

Repozytorium Github https://github.com/jamattey/Django-Movie-Recommendation

Stos techniczny

  • Zaplecze Django
  • Interfejs HTML
  • Bootstrap CSS
  • Baza danych SQLite

O Django Framework

Django dzieli swoją logikę aplikacji na następujące trzy komponenty typu Model-View-Controller:

Model Django zarządza modelowaniem danych i mapowaniem baz danych, a także logiką biznesową do przetwarzania danych

Django View opisuje, jakie dane są prezentowane, ale nie w jaki sposób. Zazwyczaj Django View deleguje i renderuje stronę HTML, która opisuje sposób prezentacji danych

Szablon Django generuje dynamiczne strony HTML do prezentacji danych

Gdy klient wysyła żądanie, serwer Django kieruje żądanie do odpowiedniego widoku na podstawie konfiguracji adresu URL Django i działa jako tradycyjny kontroler

Modele Django
Django używa modeli Django do reprezentowania tabel bazy danych i mapowania ich na obiekty, takie jak proces zwany ORM. Django Models stara się ułatwić życie programistom, abstrahując bazy danych i automatycznie mapując obiekty i metody na tabele i zapytania SQL.

Wystarczy zdefiniować klasy jako modele Django, które zostaną później odpowiednio zmapowane do tabel bazy danych. Następnie możesz po prostu użyć Django Models API do wykonania CRUD na tabelach bazy danych bez pisania ani jednej linii SQL

Widoki Django
W Django widok jest zasadniczo funkcją Pythona. Taka funkcja przyjmuje żądanie sieci Web i stosuje niezbędną logikę do wygenerowania odpowiedzi sieciowej, takiej jak zawartość HTML strony sieci Web, przekierowanie, błąd 404, dokument XML, obraz lub jakakolwiek inna odpowiedź sieciowa. Często View współdziała z modelami Django, aby uzyskać wymagane dane w postaci QuerySetu lub obiektów w celu wygenerowania odpowiedzi sieciowej.

Proces tworzenia aplikacji Django


Najpierw stworzyłem projekt Django, który jest kontenerem na aplikacje i ustawienia Django. Tutaj mogę zdecydować o utworzeniu i dodaniu do projektu jednej lub więcej aplikacji Django.

W Core Development stworzyłem modele Django do modelowania danych i stworzyłem widoki, aby określić, które dane mają być prezentowane w interfejsie użytkownika. Mapuję również adresy URL żądań na nasze widoki, aby Django mogło przekazywać żądania do odpowiednich widoków za pośrednictwem adresów URL. Następnie możemy zacząć projektować i budować interfejs użytkownika.

Te filmy są umieszczane w pliku CSV. Witryna nie zawiera prawdziwych filmów, ale jest to silnik rekomendacji wykorzystujący zwykły kod i bazę danych.

Ten silnik rekomendacji nie korzysta jeszcze z uczenia maszynowego .......

Aby rekomendacja rzeczywiście działała, musiałem najpierw zaznaczyć filmy, które użytkownik obejrzał za pomocą strony Django Admin. Następnie napisałem algorytm rekomendacji na podstawie obejrzanych filmów.

Oznaczanie obejrzanych filmów w Django Admin

  • Uruchom serwer Django
  • odwiedź url administratora app_url/admin
  • Następnie klikasz wpis filmu i oznaczasz go jako obejrzany i naciskasz Zapisz.

Uruchom make_recommendations CMD, aby wygenerować rekomendacje

W przypadku każdego systemu rekomendacji kluczową ideą jest zawsze wymyślenie dobrego algorytmu/modelu, aby przewidzieć, czy określony użytkownik polubi lub nie lubi swojego niewidocznego przedmiotu, jak pokazano na poniższym zrzucie ekranu:

Istnieją prawdopodobnie setki dobrych algorytmów rekomendacji i można je z grubsza podzielić na dwie kategorie:

Na podstawie filtrowania treści:

Algorytmy rekomendacji oparte na filtrowaniu treści zakładają, że nowy film może Ci się spodobać, jeśli wcześniej oglądałeś bardzo podobne filmy. Lub na podstawie Twojego profilu użytkownika (np. wieku, płci, zainteresowań) spróbuje znaleźć nowe filmy pasujące do Twojego profilu.

Filtrowanie oparte na współpracy:

Algorytmy wspólnego filtrowania zakładają, że nowy film może Ci się spodobać, jeśli inni użytkownicy podobni do Ciebie (podobny profil lub oglądali podobne filmy) obejrzeli ten film.

W tym projekcie użyjemy algorytmu opartego na filtrowaniu treści i postaramy się polecić Ci nieobejrzane/nowe filmy, jeśli są podobne do oglądanych przez Ciebie filmów.

Jak obliczyć takie podobieństwo filmów

Tutaj użyjemy podobieństwa Jaccarda, które jest prawdopodobnie najprostszą, ale bardzo skuteczną metodą obliczania podobieństwa między dwoma zestawami.

Podobieństwo Jaccarda jest definiowane jako wielkość przecięcia dwóch zbiorów podzielona przez wielkość połączenia tych dwóch zbiorów.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Radzenie sobie z konfliktami kluczy podstawowych podczas wstawiania danych do SQLite

  2. Jak działa SQLite Upper()

  3. sqlite:jak dodać całkowity czas gg:mm:ss gdzie typ danych kolumny to DATETIME?

  4. Automatyczne zwiększanie wartości „id” podczas wstawiania do sqlite

  5. Jak wyświetlić bieżące ustawienia poleceń kropki w SQLite?