Algoritma Jarak Vektor Semantik mengevaluasi kesamaan kata-kata atau fragmen teks dalam ruang semantik dengan menghitung jarak antara vektor kata yang dihasilkan oleh model penyematan kata seperti Word2Vec. Metode pengukuran jarak umum meliputi Jarak Euclidean, kemiripan kosinus, dan Jarak Manhattan. Algoritma ini banyak digunakan dalam tugas-tugas pemrosesan bahasa alami, seperti pembuatan sinonim, perhitungan kesamaan teks, dan pencarian semantik.
Konfigurasikan komponen
Metode 1: Konfigurasikan komponen pada halaman pipeline
Tambahkan komponen Semantic Vector Distance pada halaman pipeline dan konfigurasikan parameter berikut:
Kategori | Parameter | Deskripsi |
Fields Setting | ID Column |
|
Vector Columns | Nama kolom yang berisi vektor. Contoh: f1,f2. | |
Parameters Setting | Number of Closest Vectors to Output | Jumlah vektor terdekat dalam output. Nilai default: 5. |
Distance Calculation Mode | Metode yang digunakan untuk menghitung jarak antar vektor. Nilai valid:
Nilai default: Euclidean. | |
Distance Threshold | Ambang batas untuk jarak antar vektor. Ambang batas diberikan jika jarak antara dua vektor kurang dari nilai ini. Nilai default: +∞. Hanya vektor dengan jarak kurang dari atau sama dengan ambang batas ini yang dianggap serupa dan di-output. Sebagai contoh, jika ambang batas kemiripan kosinus ditetapkan pada 0,8, hanya vektor dengan kemiripan lebih besar dari atau sama dengan 0,8 yang akan dianggap sebagai vektor serupa. | |
Tuning | Computing Cores | Jumlah inti yang digunakan untuk perhitungan. Nilainya dialokasikan secara otomatis. |
Memory Size per Core (Unit: MB) | Ukuran memori setiap inti. Nilainya dialokasikan secara otomatis. |
Metode 2: Gunakan perintah PAI
Konfigurasikan komponen menggunakan perintah PAI. Anda dapat menggunakan komponen SQL Script untuk memanggil perintah PAI. Untuk informasi lebih lanjut, lihat SQL Script.
PAI -name SemanticVectorDistance
-project algo_public
-DinputTableName="test_input"
-DoutputTableName="test_output"
-DidColName="word"
-DvectorColNames="f0,f1,f2,f3,f4,f5"
-Dlifecycle=30Parameter | Diperlukan | Nilai default | Deskripsi |
inputTableName | Ya | Tidak ada | Nama tabel input. |
inputTablePartitions | Tidak | Semua partisi | Partisi yang dipilih dari tabel input untuk perhitungan. |
outputTableName | Ya | Tidak ada | Nama tabel output. |
idTableName | Tidak | Tidak ada | Nama tabel ID vektor untuk perhitungan vektor. Tabel tersebut hanya berisi satu kolom, dan setiap baris menyimpan ID vektor. Parameter ini kosong secara default, yang menunjukkan bahwa semua vektor dalam tabel input digunakan untuk perhitungan. |
idTablePartitions | Tidak | Tidak ada | Partisi yang dipilih dari tabel ID untuk perhitungan. Secara default, semua partisi dipilih untuk perhitungan. |
idColName | Ya | 3 | Nama kolom ID. |
vectorColNames | Tidak | Tidak ada | Nama kolom yang berisi vektor. Contoh: f1,f2. |
topN | Tidak | 5 | Jumlah vektor terdekat dalam output. Nilai valid: [1,+∞]. |
distanceType | Tidak | euclidean | Metode yang digunakan untuk menghitung jarak antar vektor. |
distanceThreshold | Tidak | +∞ | Ambang batas untuk jarak antar vektor. Ambang batas diberikan jika jarak antara dua vektor kurang dari nilai ini. Nilai valid: (0,+∞). |
lifecycle | Tidak | Tidak ada | Lifecycle tabel output. Nilainya harus bilangan bulat positif. |
coreNum | Tidak | Ditentukan oleh sistem | Jumlah inti yang digunakan untuk perhitungan. Nilainya harus bilangan bulat positif. |
memSizePerCore | Tidak | Ditentukan oleh sistem | Ukuran memori setiap inti. Nilainya harus bilangan bulat positif. |
Contoh output
Tabel output mencakup empat kolom berikut: original_id, near_id, distance, dan rank.
original_id | near_id | distance | rank |
hello | hi | 0,2 | 1 |
hello | xxx | xx | 2 |
Man | Woman | 0,3 | 1 |
Man | xx | xx | 2 |