Perhitungan kemiripan string merupakan operasi dasar dalam pembelajaran mesin yang menilai tingkat kemiripan atau perbedaan antara dua string. Perhitungan ini banyak digunakan di berbagai bidang, seperti pengambilan informasi, pemrosesan bahasa alami, dan bioinformatika, dengan memanfaatkan berbagai algoritma dan metrik—seperti Levenshtein Distance dan Cosine Similarity—untuk mengidentifikasi, mencocokkan, atau mengelompokkan data teks yang mirip.
Deskripsi algoritma
Komponen String Similarity mendukung lima metode perhitungan kemiripan: Levenshtein (Levenshtein Distance), LCS (Longest Common Substring), SSK (String Subsequence Kernel), Cosine, dan Simhash_Hamming. Komponen ini mendukung perhitungan berpasangan.
-
Metode Levenshtein mendukung perhitungan jarak dan kemiripan.
-
Jarak direpresentasikan oleh parameter levenshtein.
-
Kemiripan = 1 - Jarak. Kemiripan direpresentasikan oleh parameter levenshtein_sim.
-
-
Metode LCS mendukung perhitungan jarak dan kemiripan.
-
Jarak direpresentasikan oleh parameter lcs.
-
Kemiripan = 1 - Jarak. Kemiripan direpresentasikan oleh parameter lcs_sim.
-
-
Metode SSK mendukung perhitungan kemiripan dan direpresentasikan oleh parameter ssk.
-
Metode Cosine mendukung perhitungan kemiripan dan direpresentasikan oleh parameter cosine.
-
Metode Simhash_Hamming menggunakan algoritma SimHash untuk memetakan teks asli ke fingerprint biner 64-bit, lalu menggunakan Hamming Distance untuk menghitung jumlah bit yang berbeda pada posisi yang sama dalam fingerprint biner tersebut. Metode ini mendukung perhitungan jarak maupun kemiripan.
-
Jarak direpresentasikan oleh parameter simhash_hamming.
-
Kemiripan = 1 - Jarak/64,0. Kemiripan direpresentasikan oleh parameter simhash_hamming_sim.
-
Konfigurasi Komponen
Metode 1: Gunakan GUI
Tambahkan komponen String Similarity ke alur kerja Designer, lalu konfigurasikan parameter pada panel di sisi kanan.
|
Jenis parameter |
Parameter |
Deskripsi |
|
Pengaturan bidang |
Columns to append to output table |
Kolom yang akan ditambahkan ke tabel output. |
|
First column for similarity calculation |
Nilai default adalah nama kolom pertama bertipe STRING dalam tabel. |
|
|
Second column for similarity calculation |
Nilai default adalah nama kolom kedua bertipe STRING dalam tabel. |
|
|
Similarity column in output table |
Nama kolom kemiripan dalam tabel output. |
|
|
Pengaturan parameter |
Similarity calculation method |
Metode perhitungan kemiripan. Nilai yang valid:
Nilai default: levenshtein_sim. |
|
Substring length |
Parameter ini hanya diperlukan ketika parameter Similarity Calculation Method diatur ke ssk, cosine, simhash_hamming, atau simhash_hamming_sim. Nilai yang valid: (0,100). Nilai default: 2. |
|
|
Weight of matching string |
Parameter ini hanya diperlukan ketika parameter Similarity Calculation Method diatur ke ssk, simhash_hamming, atau simhash_hamming_sim. Nilai yang valid: (0,1). Nilai default: 0.5. |
|
|
Penyetelan eksekusi |
Number of cores for computing |
Secara default, ditetapkan oleh sistem. |
|
Memory size per core (MB) |
Secara default, dialokasikan secara otomatis. |
Metode 2: Gunakan perintah PAI
Anda dapat menggunakan perintah PAI untuk mengonfigurasi komponen String Similarity. Komponen SQL script dapat digunakan untuk memanggil perintah PAI. Untuk informasi selengkapnya, lihat SQL Script.
PAI -name string_similarity
-project algo_public
-DinputTableName="pai_test_string_similarity"
-DoutputTableName="pai_test_string_similarity_output"
-DinputSelectedColName1="col0"
-DinputSelectedColName2="col1";
|
Parameter |
Wajib |
Nilai default |
Deskripsi |
|
inputTableName |
Ya |
Tidak ada |
Nama tabel input. |
|
outputTableName |
Ya |
Tidak ada |
Nama tabel output. |
|
inputSelectedColName1 |
Tidak |
Nama kolom pertama bertipe STRING dalam tabel |
Nama kolom pertama untuk perhitungan kemiripan. |
|
inputSelectedColName2 |
Tidak |
Nama kolom kedua bertipe STRING dalam tabel |
Kolom kedua untuk perhitungan kemiripan. |
|
inputAppendColNames |
Tidak |
Tidak ada |
Kolom yang akan ditambahkan ke tabel output. |
|
inputTablePartitions |
Tidak |
Semua partisi |
Partisi dari tabel input. |
|
outputColName |
Tidak |
output |
Nama kolom kemiripan dalam tabel output. Nama tidak boleh mengandung karakter khusus. Hanya boleh terdiri atas huruf (a-z, A-Z), angka, dan garis bawah (_). Nama harus dimulai dengan huruf dan panjangnya tidak lebih dari 128 byte. |
|
method |
Tidak |
levenshtein_sim |
Metode perhitungan kemiripan. Nilai yang valid:
|
|
lambda |
Tidak |
0.5 |
Parameter ini hanya diperlukan ketika parameter Similarity Calculation Method diatur ke ssk. Nilai yang valid: (0,1). |
|
k |
Tidak |
2 |
Parameter ini hanya diperlukan ketika parameter Method diatur ke ssk, cosine, simhash_hamming, atau simhash_hamming_sim. Nilai yang valid: (0,100). |
|
lifecycle |
Tidak |
Tidak ada |
Lifecycle dari tabel output. Nilainya harus berupa bilangan bulat positif. |
|
coreNum |
Tidak |
Sistem secara otomatis mengalokasikan sumber daya. |
Jumlah core untuk komputasi. |
|
memSizePerCore |
Tidak |
Ditentukan sistem |
Ukuran memori per core. |
Referensi
-
Untuk informasi selengkapnya tentang Designer, lihat Designer overview.
-
Anda juga dapat menggunakan komponen String Similarity-Top N untuk menghitung kemiripan string dan mengambil N catatan data paling mirip. Untuk informasi selengkapnya tentang komponen ini, lihat String Similarity-Top N.