SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Tạo ứng dụng đề xuất phim Django bằng chỉ mục Jaccard

Mục tiêu của tôi cho dự án này

  • Hiểu các thành phần chính của khung django
  • Mô tả các Nguyên tắc Cơ bản của hệ thống khuyến nghị
  • Xây dựng một ứng dụng đề xuất phim đơn giản bằng cách áp dụng Thuật toán Jaccard dựa trên cơ chế lọc nội dung

Kho lưu trữ Github https://github.com/jamattey/Django-Movie-Recommendation

Tủ công nghệ

  • Phần phụ trợ Django
  • Giao diện người dùng HTML
  • Bootstrap CSS
  • Cơ sở dữ liệu SQLite

Giới thiệu về Django Framework

Django chia logic ứng dụng của nó thành ba thành phần giống như Model-View-Controller sau:

Django Model quản lý mô hình dữ liệu và ánh xạ cơ sở dữ liệu cũng như logic nghiệp vụ để xử lý dữ liệu

Django View mô tả dữ liệu nào được trình bày, nhưng không mô tả dữ liệu đó được trình bày như thế nào. Thông thường, Django Xem đại biểu và hiển thị trang HTML, trang này mô tả cách dữ liệu được trình bày

Django Template tạo các trang HTML động để trình bày dữ liệu

Khi khách hàng gửi yêu cầu, máy chủ Django định tuyến yêu cầu đến chế độ xem thích hợp dựa trên cấu hình URL Django và hoạt động như một Bộ điều khiển truyền thống

Mô hình Django
Django sử dụng Mô hình Django để đại diện cho các bảng cơ sở dữ liệu và ánh xạ chúng thành các đối tượng, chẳng hạn như quy trình được gọi là ORM. Django Models cố gắng làm cho cuộc sống của nhà phát triển dễ dàng hơn bằng cách trừu tượng hóa cơ sở dữ liệu và ánh xạ các đối tượng và phương thức thành bảng và truy vấn SQL một cách tự động.

Bạn chỉ cần xác định các lớp dưới dạng Mô hình Django và sau đó sẽ được ánh xạ tới các bảng cơ sở dữ liệu tương ứng. Sau đó, bạn có thể chỉ cần sử dụng Django Models API để thực hiện CRUD trên các bảng cơ sở dữ liệu mà không cần viết một dòng SQL nào

Lượt xem Django
Trong Django, View về cơ bản là một hàm Python. Một hàm như vậy nhận yêu cầu Web và áp dụng logic cần thiết để tạo phản hồi Web, chẳng hạn như nội dung HTML của trang Web, chuyển hướng, lỗi 404, tài liệu XML, hình ảnh hoặc bất kỳ phản hồi Web nào khác. Thông thường, View tương tác với Django Models để nhận dữ liệu cần thiết ở dạng QuerySet hoặc các đối tượng để tạo phản hồi Web.

Quy trình phát triển ứng dụng Django


Đầu tiên, tôi đã tạo một dự án Django, đây là một vùng chứa cho các ứng dụng và cài đặt Django. Tại đây, tôi có thể quyết định tạo và thêm một hoặc nhiều ứng dụng Django vào dự án.

Trong phần Phát triển cốt lõi, tôi đã tạo các mô hình Django để lập mô hình dữ liệu và tạo các khung nhìn để xác định dữ liệu nào cần được hiển thị cho giao diện người dùng. Tôi cũng ánh xạ các URL yêu cầu tới các chế độ xem của chúng tôi để Django có thể chuyển tiếp các yêu cầu đến các chế độ xem tương ứng thông qua URL. Sau đó, chúng tôi có thể bắt đầu thiết kế và xây dựng giao diện người dùng.

Phim này được điền trong một CSV. Trang web không lưu trữ các bộ phim thực tế nhưng nó là một công cụ đề xuất sử dụng mã thông thường và cơ sở dữ liệu.

Công cụ đề xuất này chưa sử dụng Học máy ....... 😂😂

Để đề xuất thực sự hoạt động, trước tiên tôi cần đánh dấu những bộ phim mà người dùng đã xem bằng trang web Quản trị viên Django. Sau đó, tôi đã viết một thuật toán đề xuất dựa trên các bộ phim đã xem.

Đánh dấu phim đã xem trong quản trị viên Django

  • Chạy Máy chủ Django
  • truy cập url quản trị app_url / admin
  • Sau đó, bạn nhấp vào mục nhập phim và đánh dấu phim là đã xem và nhấn Lưu.

Chạy make_recommendations CMD để tạo đề xuất

Đối với bất kỳ hệ thống đề xuất nào, ý tưởng chính là luôn đưa ra một thuật toán / mô hình tốt để dự đoán xem một người dùng cụ thể sẽ thích hay không thích mặt hàng không nhìn thấy của họ, như thể hiện trong ảnh chụp màn hình sau:

Có lẽ có hàng trăm thuật toán đề xuất tốt và có thể được chia thành hai loại:

Lọc nội dung:

Các thuật toán đề xuất dựa trên lọc nội dung giả định rằng bạn có thể thích một bộ phim mới nếu bạn đã xem những bộ phim tương tự trước đó. Hoặc dựa trên hồ sơ người dùng của bạn (như tuổi, giới tính, sở thích), nó sẽ cố gắng tìm những bộ phim mới phù hợp với hồ sơ của bạn.

Dựa trên lọc cộng tác:

Các thuật toán lọc cộng tác giả định rằng bạn có thể thích một bộ phim mới nếu những người dùng khác tương tự như bạn (tiểu sử tương tự hoặc đã xem các bộ phim tương tự) đã xem phim này.

Trong dự án này, chúng tôi sẽ sử dụng thuật toán lọc nội dung và chúng tôi sẽ cố gắng giới thiệu những bộ phim chưa xem / mới cho bạn nếu chúng giống với những bộ phim bạn đã xem.

Làm cách nào để chúng tôi tính toán độ tương đồng của các bộ phim như vậy

Ở đây chúng ta sẽ sử dụng độ tương tự Jaccard có lẽ là phương pháp đơn giản nhất nhưng rất hiệu quả để tính độ tương tự giữa hai tập hợp.

Jaccard Độ tương tự được định nghĩa là kích thước giao của hai tập hợp chia cho kích thước hợp của hai tập hợp đó.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách / thứ tự được đề xuất để đọc dữ liệu từ một dịch vụ web, phân tích cú pháp dữ liệu đó và chèn nó vào db SQLite

  2. Cách lưu trữ cơ sở dữ liệu sqlite trực tiếp trên sdcard

  3. Android sqlite, giới hạn số hàng trong cơ sở dữ liệu

  4. Robolectric truy cập cơ sở dữ liệu gặp lỗi

  5. Tìm giá trị không chứa số trong SQLite