


Cara menggunakan MongoDB untuk melaksanakan fungsi pengesyoran pintar data
Cara menggunakan MongoDB untuk melaksanakan fungsi pengesyoran pintar data
Pengenalan:
Kini, dengan perkembangan Internet, fungsi pengesyoran pintar telah menjadi bahagian penting dalam banyak aplikasi. Sebagai pangkalan data bukan perhubungan, fleksibiliti model storan MongoDB dan kelajuan pertanyaan menjadikannya alat pilihan untuk merealisasikan fungsi pengesyoran data pintar.
Artikel ini akan memperkenalkan cara menggunakan MongoDB untuk melaksanakan fungsi pengesyoran pintar data, termasuk langkah terperinci seperti pemodelan data, penyimpanan dan pertanyaan serta memberikan contoh kod khusus.
1. Pemodelan Data
Sebelum menggunakan MongoDB untuk melaksanakan fungsi pengesyoran pintar data, kita perlu memodelkan data terlebih dahulu. Terdapat dua kaedah pemodelan biasa: penapisan kolaboratif berasaskan pengguna (Penapisan Kolaboratif berasaskan Pengguna) dan penapisan berasaskan kandungan (Penapisan berasaskan Kandungan).
Penapisan kolaboratif berasaskan pengguna adalah untuk mencari pengguna lain yang mempunyai minat yang serupa dengan pengguna semasa berdasarkan sejarah tingkah laku pengguna, dan kemudian membuat pengesyoran untuk pengguna semasa berdasarkan gelagat pengguna ini. Model data penapisan kolaboratif berasaskan pengguna boleh dimodelkan dengan cara berikut:
{ user_id: "用户ID", item_id: "物品ID", rate: "用户对物品的评分", timestamp: "评分时间" }
Penapisan berasaskan kandungan menganalisis ciri item untuk mencari item lain yang serupa dengan item semasa, dan kemudian berdasarkan ciri item serupa ini Pengguna membuat cadangan. Model data penapisan berasaskan kandungan boleh dimodelkan dengan cara berikut:
{ item_id: "物品ID", features: ["物品特征1", "物品特征2", "物品特征3", ...] }
Kaedah pemodelan khusus boleh dipilih mengikut situasi sebenar di atas hanyalah contoh pemodelan biasa.
2. Penyimpanan data
Selepas memodelkan data, data perlu disimpan dalam MongoDB. Menggunakan MongoDB untuk menyimpan data boleh menyimpan data dalam bentuk objek JSON dengan bantuan model dokumen yang disediakannya.
Mengambil penapisan kolaboratif berasaskan pengguna sebagai contoh, kita boleh menggunakan kod berikut untuk menyimpan data ke dalam MongoDB:
from pymongo import MongoClient client = MongoClient() db = client['recommendation'] collection = db['ratings'] data = [ {"user_id": "user1", "item_id": "item1", "rate": 4, "timestamp": "2019-01-01"}, {"user_id": "user1", "item_id": "item2", "rate": 5, "timestamp": "2019-01-01"}, {"user_id": "user2", "item_id": "item1", "rate": 3, "timestamp": "2019-01-02"}, {"user_id": "user2", "item_id": "item3", "rate": 2, "timestamp": "2019-01-02"}, ... ] collection.insert_many(data)
Untuk penapisan berasaskan kandungan, kita boleh menggunakan kod berikut untuk menyimpan data ke dalam MongoDB:
from pymongo import MongoClient client = MongoClient() db = client['recommendation'] collection = db['items'] data = [ {"item_id": "item1", "features": ["特征1", "特征2", "特征3", ...]}, {"item_id": "item2", "features": ["特征4", "特征5", "特征6", ...]}, {"item_id": "item3", "features": ["特征7", "特征8", "特征9", ...]}, ... ] collection.insert_many(data)
3. Pengesyoran algoritma
Selepas data disimpan, algoritma pengesyoran perlu dilaksanakan. Disebabkan oleh kerumitan algoritma pengesyoran, hanya contoh kod ringkas bagi penapisan kolaboratif berasaskan pengguna dan penapisan berasaskan kandungan diberikan di sini.
Contoh algoritma pengesyoran untuk penapisan kolaboratif berasaskan pengguna:
from pymongo import MongoClient client = MongoClient() db = client['recommendation'] collection = db['ratings'] def user_based_recommendation(user_id, top_k): user_ratings = collection.find({"user_id": user_id}).sort('rate', -1).limit(top_k) recommended_items = [] for rating in user_ratings: item_ratings = collection.find({"item_id": rating["item_id"]}).sort('rate', -1).limit(top_k) for item_rating in item_ratings: if item_rating["user_id"] != user_id and item_rating["item_id"] not in recommended_items: recommended_items.append(item_rating["item_id"]) break return recommended_items user_id = "user1" top_k = 10 recommended_items = user_based_recommendation(user_id, top_k) print(recommended_items)
Contoh algoritma pengesyoran untuk penapisan berasaskan kandungan:
from pymongo import MongoClient client = MongoClient() db = client['recommendation'] collection = db['items'] def content_based_recommendation(items, top_k): recommended_items = [] for item in items: item_features = collection.find_one({"item_id": item["item_id"]})["features"] similar_items = collection.find({"features": {"$in": item_features}}).sort('item_id', 1).limit(top_k) for similar_item in similar_items: if similar_item["item_id"] != item["item_id"] and similar_item["item_id"] not in recommended_items: recommended_items.append(similar_item["item_id"]) return recommended_items items = [ {"item_id": "item1", "features": ["特征1", "特征2", "特征3"]}, {"item_id": "item2", "features": ["特征4", "特征5", "特征6"]}, ... ] top_k = 10 recommended_items = content_based_recommendation(items, top_k) print(recommended_items)
Kesimpulan:
Artikel ini memperkenalkan cara menggunakan MongoDB untuk melaksanakan fungsi pemodelan data yang bijak, termasuk fungsi pengesyoran data. , Langkah terperinci seperti storan dan pertanyaan diberikan, dan contoh kod algoritma pengesyoran untuk penapisan kolaboratif berasaskan pengguna dan penapisan berasaskan kandungan diberikan. Saya harap pembaca boleh mendapat inspirasi daripada artikel ini untuk menggunakan MongoDB untuk melaksanakan fungsi pengesyoran pintar data.
Atas ialah kandungan terperinci Cara menggunakan MongoDB untuk melaksanakan fungsi pengesyoran pintar data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Adalah disyorkan untuk menggunakan versi terkini MongoDB (kini 5.0) kerana ia menyediakan ciri dan penambahbaikan terkini. Apabila memilih versi, anda perlu mempertimbangkan keperluan fungsian, keserasian, kestabilan dan sokongan komuniti Sebagai contoh, versi terkini mempunyai ciri seperti transaksi dan pengoptimuman saluran paip. Pastikan versi itu serasi dengan aplikasi. Untuk persekitaran pengeluaran, pilih versi sokongan jangka panjang. Versi terkini mempunyai sokongan komuniti yang lebih aktif.

Node.js ialah masa jalan JavaScript bahagian pelayan, manakala Vue.js ialah rangka kerja JavaScript sisi klien untuk mencipta antara muka pengguna interaktif. Node.js digunakan untuk pembangunan bahagian pelayan, seperti pembangunan API perkhidmatan belakang dan pemprosesan data, manakala Vue.js digunakan untuk pembangunan sisi klien, seperti aplikasi satu halaman dan antara muka pengguna yang responsif.

Data pangkalan data MongoDB disimpan dalam direktori data yang ditentukan, yang boleh terdapat dalam sistem fail tempatan, sistem fail rangkaian atau storan awan Lokasi khusus adalah seperti berikut: Sistem fail tempatan: Laluan lalai ialah Linux/macOS: /data/db, Windows: C:\data\db. Sistem fail rangkaian: Laluan bergantung pada sistem fail. Storan Awan: Laluan ditentukan oleh pembekal storan awan.

Pangkalan data MongoDB terkenal dengan fleksibiliti, skalabiliti dan prestasi tingginya. Kelebihannya termasuk: model data dokumen yang membolehkan data disimpan dengan cara yang fleksibel dan tidak berstruktur. Skala mendatar kepada berbilang pelayan melalui sharding. Fleksibiliti pertanyaan, menyokong pertanyaan kompleks dan operasi pengagregatan. Replikasi data dan toleransi kesalahan memastikan lebihan data dan ketersediaan tinggi. Sokongan JSON untuk penyepaduan mudah dengan aplikasi bahagian hadapan. Prestasi tinggi untuk respons pantas walaupun semasa memproses sejumlah besar data. Sumber terbuka, boleh disesuaikan dan percuma untuk digunakan.

MongoDB ialah sistem pangkalan data teragih berorientasikan dokumen yang digunakan untuk menyimpan dan mengurus sejumlah besar data berstruktur dan tidak berstruktur. Konsep terasnya termasuk penyimpanan dan pengedaran dokumen, dan ciri utamanya termasuk skema dinamik, pengindeksan, pengagregatan, pengurangan peta dan replikasi. Ia digunakan secara meluas dalam sistem pengurusan kandungan, platform e-dagang, laman web media sosial, aplikasi IoT dan pembangunan aplikasi mudah alih.

Pada Linux/macOS: Cipta direktori data dan mulakan perkhidmatan "mongod". Pada Windows: Cipta direktori data dan mulakan perkhidmatan MongoDB daripada Pengurus Perkhidmatan. Dalam Docker: Jalankan arahan "docker run". Pada platform lain: Sila rujuk dokumentasi MongoDB. Kaedah pengesahan: Jalankan arahan "mongo" untuk menyambung dan melihat versi pelayan.

Fail pangkalan data MongoDB terletak dalam direktori data MongoDB, iaitu /data/db secara lalai, yang mengandungi .bson (data dokumen), ns (maklumat pengumpulan), jurnal (tulis rekod operasi), wiredTiger (data apabila menggunakan WiredTiger enjin storan ) dan konfigurasi (maklumat konfigurasi pangkalan data) dan fail lain.

Penyelesaian untuk menyelesaikan isu tamat tempoh Navicat termasuk: memperbaharui lesen dan menyahpasang semula kemas kini automatik, hubungi Navicat Premium Essentials;
