Kemiripan dokumen adalah nilai yang dihitung antara artikel atau kalimat berdasarkan kemiripan string. Kalimat atau dokumen dipisahkan oleh spasi. Topik ini menjelaskan cara mengonfigurasi komponen algoritma Kemiripan Dokumen yang disediakan oleh Platform for AI (PAI).
Informasi latar belakang
Kemiripan dokumen dihitung dengan pendekatan yang mirip dengan perhitungan kemiripan string. Kemiripan dokumen mendukung metode perhitungan berikut: Levenshtein Distance (Levenshtein), Longest Common SubString (LCS), String Subsequence Kernel (SSK), Cosine, dan Simhash_Hamming.
Metode Levenshtein mendukung perhitungan jarak dan kemiripan.
Jarak dinyatakan sebagai parameter levenshtein.
Kemiripan dihitung menggunakan rumus berikut: Kemiripan = 1 - Jarak. Kemiripan dinyatakan sebagai parameter levenshtein_sim.
Metode LCS mendukung perhitungan jarak dan kemiripan.
Jarak dinyatakan sebagai parameter lcs.
Kemiripan dihitung menggunakan rumus berikut: Kemiripan = 1 - Jarak. Kemiripan dinyatakan sebagai parameter lcs_sim.
Metode SSK mendukung perhitungan kemiripan dan dinyatakan sebagai parameter ssk.
Metode Cosine mendukung perhitungan kemiripan dan dinyatakan sebagai parameter cosine.
Dalam metode Simhash_Hamming, algoritma SimHash digunakan untuk memetakan dokumen asli ke sidik jari biner 64-bit. Jarak Hamming digunakan untuk menghitung jumlah karakter sidik jari biner pada posisi yang sama. Metode Simhash_Hamming mendukung perhitungan jarak dan kemiripan.
Jarak dinyatakan sebagai parameter simhash_hamming.
Kemiripan dihitung menggunakan rumus berikut: Kemiripan = 1 - Jarak/64.0. Kemiripan dinyatakan sebagai parameter simhash_hamming_sim.
CatatanUntuk informasi lebih lanjut tentang SimHash, lihat Similarity Estimation Techniques from Rounding Algorithms.
Untuk informasi lebih lanjut tentang jarak Hamming, lihat Wikipedia.
Batasan
Komponen Kemiripan Dokumen hanya dapat digunakan dengan sumber daya komputasi MaxCompute.
Mengonfigurasi komponen
Anda dapat menggunakan salah satu dari metode berikut untuk mengonfigurasi komponen Kemiripan Dokumen.
Metode 1: Mengonfigurasi komponen di konsol PAI
Anda dapat mengonfigurasi parameter komponen Kemiripan Dokumen di halaman pipeline Machine Learning Designer. Tabel berikut menjelaskan parameter tersebut.
Tab | Parameter | Deskripsi |
Fields Setting | First Column for Similarity Calculation | Nilai default adalah nama kolom string pertama dalam tabel. |
Second Column for Similarity Calculation | Nilai default adalah nama kolom string kedua dalam tabel. | |
Columns Appended to Output Table | Nama kolom yang ditambahkan ke tabel output. | |
Similarity Column in Output Table | Nama kolom kemiripan di tabel output. Nilai default: output. Catatan Nama kolom dapat memiliki panjang hingga 128 karakter dan dapat berisi huruf, angka, dan garis bawah (_). Harus dimulai dengan huruf. | |
Parameters Setting | Similarity Calculation Method | Metode yang digunakan untuk perhitungan kemiripan. Nilai valid:
|
Substring Length (Available in SSK and Cosine) | Parameter ini berlaku hanya ketika parameter Similarity Calculation Method diatur ke levenshtein, ssk, atau Cosine. Nilai valid: (0,100]. Nilai default: 2. | |
Matching Word Pair Weight (Available in SSK) | Parameter ini berlaku hanya ketika parameter Similarity Calculation Method diatur ke ssk. Nilainya harus antara 0 dan 1. Nilai default: 0.5. | |
Tuning | Computing Cores | Jumlah inti yang digunakan untuk perhitungan. Secara default, sistem menentukan nilainya. |
Memory Size per Core (Unit: MB) | Ukuran memori setiap inti. Secara default, sistem menentukan nilainya. |
Metode 2: Mengonfigurasi parameter menggunakan perintah PAI
Konfigurasikan parameter komponen menggunakan perintah PAI. Bagian berikut menjelaskan parameter tersebut. Anda dapat menggunakan skrip SQL untuk memanggil perintah PAI. Untuk informasi lebih lanjut, lihat Skrip SQL.
PAI -name doc_similarity
-project algo_public
-DinputTableName="pai_test_doc_similarity"
-DoutputTableName="pai_test_doc_similarity_output"
-DinputSelectedColName1="col0"
-DinputSelectedColName2="col1"Parameter | Diperlukan | Deskripsi | Nilai default |
inputTableName | Ya | Nama tabel input. | Tidak tersedia |
outputTableName | Ya | Nama tabel output. | Tidak tersedia |
inputSelectedColName1 | Tidak | Kolom pertama yang digunakan untuk perhitungan kemiripan. | Nama kolom string pertama dalam tabel |
inputSelectedColName2 | Tidak | Kolom kedua yang digunakan untuk perhitungan kemiripan. | Nama kolom string kedua dalam tabel |
inputAppendColNames | Tidak | Kolom yang ditambahkan ke tabel output. | Tidak ada kolom yang ditambahkan |
inputTablePartitions | Tidak | Partisi yang dipilih dari tabel input. | Tabel lengkap |
outputColName | Tidak | Nama kolom kemiripan di tabel output. Catatan Nama kolom dapat memiliki panjang hingga 128 karakter dan dapat berisi huruf, angka, dan garis bawah (_). Harus dimulai dengan huruf. | output |
method | Tidak | Metode yang digunakan untuk perhitungan kemiripan. Nilai valid:
| levenshtein_sim |
lambda | Tidak | Bobot pasangan kata yang cocok. Metode SSK mendukung parameter ini. Nilai valid: (0,1). | 0.5 |
k | Tidak | Panjang substring. Metode SSK dan Cosine mendukung parameter ini. Nilai valid: (0,100]. | 2 |
lifecycle | Tidak | Siklus hidup tabel output. | Tidak tersedia |
coreNum | Tidak | Jumlah inti yang digunakan untuk perhitungan. | Dialokasikan secara otomatis |
memSizePerCore | Tidak | Ukuran memori setiap inti. Unit: MB. | Dialokasikan secara otomatis |
Contoh
Input
Gunakan node ODPS SQL untuk membuat tabel pai_ft_string_similarity_topn_input. Untuk informasi lebih lanjut, lihat Mengembangkan Tugas SQL MaxCompute. Contoh perintah:
drop table if exists pai_doc_similarity_input; create table pai_doc_similarity_input as select * from ( select 0 as id, "Beijing Shanghai" as col0, "Beijing Shanghai" as col1 from dual union all select 1 as id, "Beijing Shanghai" as col0, "Beijing Shanghai Shenzhen" as col1 from dual )tmpSetelah menjalankan perintah, tabel input bernama pai_doc_similarity_input akan terlihat seperti berikut:
id
col0
col1
1
0
Perintah PAI
Anda dapat menggunakan komponen skrip SQL atau node ODPS SQL untuk menjalankan perintah PAI berikut.
drop table if exists pai_doc_similarity_output; PAI -name doc_similarity -project algo_public -DinputTableName=pai_doc_similarity_input -DoutputTableName=pai_doc_similarity_output -DinputSelectedColName1=col0 -DinputSelectedColName2=col1 -Dmethod=levenshtein_sim -DinputAppendColNames=id,col0,col1;Output
Tabel berikut adalah tabel output bernama pai_doc_similarity_output.
id
col0
col1
output
1
Beijing Shanghai
Beijing Shanghai Shenzhen
0,6666666666666667
0
Beijing Shanghai
Beijing Shanghai
1,0
FAQ
Perhitungan kemiripan didasarkan pada hasil segmentasi kata. Kata-kata dipisahkan oleh spasi. Setiap kata berfungsi sebagai unit perhitungan kemiripan. Jika inputnya adalah string secara keseluruhan, gunakan metode kemiripan string.
Dalam parameter method, levenshtein, lcs, dan simhash_hamming digunakan untuk menghitung jarak. levenshtein_sim, lcs_sim, ssk, cosine, dan simhash_hamming_sim digunakan untuk menghitung kemiripan. Jarak dihitung menggunakan rumus berikut: Jarak = 1.0 - Kemiripan.
Jika Anda mengatur parameter method ke cosine atau ssk, parameter k tersedia, yang menunjukkan bahwa k kata digunakan sebagai kombinasi untuk perhitungan kemiripan. Jika nilai k lebih besar dari jumlah kata, dua string dianggap sama. Output kemiripannya adalah 0. Dalam kasus ini, Anda perlu mengubah nilai k menjadi nilai yang lebih kecil atau sama dengan jumlah kata minimum.
Referensi
Untuk informasi lebih lanjut tentang komponen Machine Learning Designer, lihat Ikhtisar Machine Learning Designer.
Anda dapat menggunakan komponen Kemiripan String untuk menghitung kemiripan string. Untuk informasi lebih lanjut, lihat Kemiripan String.
Machine Learning Designer menyediakan berbagai komponen algoritma preset. Anda dapat memilih komponen untuk memproses data berdasarkan skenario yang berbeda. Untuk informasi lebih lanjut, lihat Ikhtisar Komponen Designer.