Pencarian semantik sadar kata kunci menggabungkan pencocokan kata kunci dan pemahaman semantik dalam satu kueri DashVector. Dengan menyimpan vektor jarang (untuk frekuensi kata) dan vektor padat (untuk makna semantik) dalam satu koleksi, Anda memperoleh recall yang lebih kuat tanpa perlu menjalankan dua sistem pencarian terpisah.
Konsep Utama
Sparse vectors merepresentasikan kata kunci beserta frekuensi kemunculannya. Vektor ini sebagian besar berisi nilai nol, dengan beberapa nilai bukan nol yang masing-masing mewakili satu kata kunci dalam dokumen. Di DashVector, vektor jarang {1:0.4, 10000:0.6, 222222:0.8} memiliki tiga kata kunci (elemen 1, 10000, dan 222222), di mana nilainya merupakan bobot masing-masing kata kunci tersebut.
Dense vectors merepresentasikan makna semantik dari konten. Model penyematan mengonversi teks menjadi larik bilangan titik mengambang dengan panjang tetap, menangkap hubungan konseptual yang tidak dapat ditangkap melalui pencocokan kata kunci.
| Sparse vectors | Dense vectors | |
|---|---|---|
| Merepresentasikan | Kata kunci dan frekuensi kemunculannya | Makna semantik |
| Struktur | Sebagian besar nol, sedikit nilai bukan nol | Sebagian besar nilai bukan nol |
| Dibangun dengan | Indeks terbalik, TF-IDF, BM25 | Model penyematan |
| Keunggulan | Pencocokan kata kunci eksak | Kesamaan konseptual |
| Contoh celah | Tidak dapat mencocokkan "raining heavily" dengan "rain cats and dogs" | Tidak dapat mencocokkan "rice irrigating" dengan "irrigating rice" jika model belum dilatih |
Pencarian semantik sadar kata kunci mengatasi kedua kelemahan tersebut sekaligus. Skor akhir untuk setiap hasil merupakan jumlah dari hasil kali titik (dot product) antara vektor kueri dan vektor dokumen—skor dari vektor padat dan vektor jarang dijumlahkan bersama.
Kapan Menggunakan Pencarian Semantik Sadar Kata Kunci
Gunakan pencarian semantik sadar kata kunci ketika:
Kueri menggabungkan bahasa alami dengan istilah spesifik (nama Produk, kode kesalahan, ID)
Pengguna mencari idiom, sinonim, atau konsep yang diparafrase
Korpus Anda memerlukan recall kata kunci yang presisi sekaligus pemahaman kontekstual
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Kluster DashVector (Create a cluster)
Kunci API (Manage API keys)
SDK DashVector versi terbaru yang telah diinstal (Install DashVector SDK)
Jalankan Pencarian Semantik Sadar Kata Kunci
Langkah-langkah berikut membuat koleksi, memasukkan dokumen dengan kedua jenis vektor, dan menjalankan kueri hibrida.
Hanya koleksi yang menggunakan metric='dotproduct' yang mendukung vektor jarang.
Langkah 1: Buat koleksi
import dashvector
# Ganti YOUR_API_KEY dengan kunci API Anda (lihat Manage API keys).
# Ganti YOUR_CLUSTER_ENDPOINT dengan titik akhir kluster Anda (lihat halaman detail kluster).
client = dashvector.Client(
api_key='YOUR_API_KEY',
endpoint='YOUR_CLUSTER_ENDPOINT'
)
# dimension=4 digunakan di sini demi kesederhanaan.
# Atur nilai ini agar sesuai dengan dimensi output model penyematan Anda.
ret = client.create('hybrid_collection', dimension=4, metric='dotproduct')
collection = client.get('hybrid_collection')
assert collectionLangkah 2: Masukkan dokumen dengan vektor jarang
from dashvector import Doc
collection.insert(Doc(
id='A',
vector=[0.1, 0.2, 0.3, 0.4],
sparse_vector={1: 0.3, 10: 0.4, 100: 0.3}
))Bidang sparse_vector memetakan ID kata kunci ke bobotnya. Gunakan penyandi vektor jarang seperti DashText untuk menghasilkan vektor ini dari teks mentah — lihat Sparse vector encoder.
Langkah 3: Kueri dengan kedua jenis vektor
Berikan baik vector maupun sparse_vector dalam kueri yang sama. DashVector memberi skor setiap hasil dengan menjumlahkan hasil kali titik dari kedua jenis vektor tersebut.
docs = collection.query(
vector=[0.1, 0.1, 0.1, 0.1],
sparse_vector={1: 0.3, 20: 0.7}
)Hasil diurutkan berdasarkan skor hasil kali titik gabungan — semakin tinggi nilainya, semakin relevan hasilnya.
Sparse Vector Encoder
DashText adalah penyandi vektor jarang yang direkomendasikan untuk DashVector. Alat ini mengonversi teks mentah ke format sparse_vector seperti yang ditunjukkan di atas. Lihat DashText quick start untuk instruksi penyiapan.
Langkah Selanjutnya
DashText quick start — hasilkan vektor jarang dari teks
Create a cluster — siapkan kluster DashVector Anda
Manage API keys — kelola otentikasi