All Products
Search
Document Center

Platform For AI:PMI

Last Updated:Apr 02, 2026

Komponen PMI menghitung pointwise mutual information (PMI) untuk seluruh pasangan kata dalam korpus dokumen, mengukur seberapa kuat dua kata saling terkait berdasarkan frekuensi kemunculan bersamanya. Gunakan komponen ini dalam pipeline Machine Learning Designer untuk mengidentifikasi asosiasi kata yang bermakna.

Cara kerja PMI

Dalam teori informasi, mutual information (MI) mengukur seberapa besar pengetahuan tentang satu variabel acak mengurangi ketidakpastian mengenai variabel lainnya. PMI memperluas konsep ini ke pasangan kata dan menghasilkan satu skor asosiasi untuk setiap pasangan.

Rumus: PMI(x,y) = ln(p(x,y) / (p(x) × p(y))) = ln(#(x,y) × D / (#x × #y))

Di mana:

  • #(x,y) — jumlah kemunculan bersama pasangan kata (x, y)

  • D — jumlah total pasangan

  • #x, #y — jumlah kemunculan masing-masing kata

Setiap kali kata x dan y muncul bersama dalam jendela yang sama, komponen ini menambahkan nilai #x, #y, dan #(x,y) masing-masing sebesar 1.

Interpretasi skor PMI:

Nilai PMIMakna
PositifKedua kata muncul bersama lebih sering daripada yang diprediksi secara acak — kemungkinan besar memiliki asosiasi bermakna
Mendekati nolTidak ada asosiasi kuat
NegatifKedua kata muncul bersama lebih jarang daripada yang diprediksi secara acak
Tanpa penyaringan frekuensi, kata langka dapat menghasilkan skor PMI yang terlalu tinggi secara artifisial karena hanya muncul dalam konteks yang sangat terbatas. Atur parameter minCount untuk menyaring kata-kata yang terlalu jarang muncul sehingga tidak menghasilkan statistik yang tidak andal.

Untuk latar belakang algoritma ini, lihat Pointwise mutual information.

Konfigurasi komponen

Metode 1: Konfigurasi di Konsol PAI

Pada halaman pipeline Machine Learning Designer, konfigurasikan parameter berikut:

TabParameterDeskripsi
Fields settingColumns of documents with words separated with spacesKolom dokumen yang kata-katanya dipisahkan oleh spasi
Parameters settingMinimum frequency of wordsKata yang muncul lebih sedikit dari ambang batas ini akan disaring. Nilai default: 5. Tingkatkan nilai ini untuk mengecualikan kata langka yang meningkatkan skor PMI secara tidak proporsional.
Parameters settingWindow sizeJumlah kata di sebelah kanan kata saat ini yang membentuk jendela kemunculan bersama. Misalnya, ukuran jendela 5 akan memasangkan kata saat ini dengan masing-masing dari 5 kata yang berada tepat di sebelah kanannya.
TuningComputing coresJumlah core CPU untuk perhitungan. Default: ditentukan oleh sistem.
TuningMemory size per core (unit: MB)Memori yang dialokasikan untuk setiap core. Default: ditentukan oleh sistem.

Metode 2: Konfigurasi menggunakan perintah PAI

Gunakan komponen SQL Script atau node ODPS SQL untuk menjalankan perintah PAI. Nama perintahnya adalah PointwiseMutualInformation.

PAI -name PointwiseMutualInformation
    -project algo_public
    -DinputTableName=maple_test_pmi_basic_input
    -DdocColName=doc
    -DoutputTableName=maple_test_pmi_basic_output
    -DminCount=0
    -DwindowSize=2
    -DcoreNum=1
    -DmemSizePerCore=110;

Parameter

ParameterWajibDeskripsiDefault
inputTableNameYaTabel input
outputTableNameYaTabel output
docColNameYaNama kolom dokumen setelah segmentasi kata; kata harus dipisahkan oleh spasi
windowSizeTidakJumlah kata di sebelah kanan kata saat ini yang membentuk jendela kemunculan bersama. Misalnya, nilai 5 menunjukkan lima kata berdekatan di sebelah kanan kata saat ini.Semua kata dalam baris
minCountTidakFrekuensi minimum kata. Kata yang muncul lebih sedikit dari nilai ini akan disaring. Tingkatkan nilai ini jika kata berfrekuensi rendah menghasilkan skor PMI yang tidak andal.5
inputTablePartitionsTidakPartisi yang digunakan dari tabel input, dalam format Partition_name=value. Tentukan beberapa partisi sebagai name1=value1/name2=value2. Pisahkan beberapa entri dengan koma.Semua partisi
lifecycleTidakSiklus hidup tabel output
coreNumTidakJumlah core CPU. Nilai valid: 1–9999.Ditentukan oleh sistem
memSizePerCoreTidakMemori per core, dalam MB. Nilai valid: 1024–65536.Ditentukan oleh sistem

Contoh

Contoh ini menunjukkan alur kerja lengkap: membuat tabel input, menjalankan perintah PMI, dan memeriksa output.

Input

Buat tabel bernama maple_test_pmi_basic_input menggunakan node ODPS SQL. Untuk detailnya, lihat Develop a MaxCompute SQL task.

CREATE TABLE maple_test_pmi_basic_input AS
SELECT * FROM (
    SELECT "w1 w2 w3 w4 w5 w6 w7 w8 w8 w9" AS doc
    UNION ALL SELECT "w1 w3 w5 w6 w9" AS doc
    UNION ALL SELECT "w0" AS doc
    UNION ALL SELECT "w0 w0" AS doc
    UNION ALL SELECT "w9 w1 w9 w1 w9" AS doc
) tmp;

Tabel hasil memiliki satu dokumen per baris, dengan kata-kata dipisahkan oleh spasi:

doc
w1 w2 w3 w4 w5 w6 w7 w8 w8 w9
w1 w3 w5 w6 w9
w0
w0 w0
w9 w1 w9 w1 w9

Jalankan perintah

Jalankan perintah berikut menggunakan komponen SQL Script atau node ODPS SQL:

PAI -name PointwiseMutualInformation
    -project algo_public
    -DinputTableName=maple_test_pmi_basic_input
    -DdocColName=doc
    -DoutputTableName=maple_test_pmi_basic_output
    -DminCount=0
    -DwindowSize=2
    -DcoreNum=1
    -DmemSizePerCore=110;

Output

Tabel output maple_test_pmi_basic_output berisi satu baris per pasangan kata:

KolomDeskripsi
word1, word2Pasangan kata
word1_count, word2_countJumlah total kemunculan masing-masing kata di seluruh korpus
co_occurrences_countJumlah kemunculan bersama pasangan tersebut dalam jendela
pmiLogaritma natural dari rasio kemunculan bersama. Nilai positif menunjukkan kata-kata yang muncul bersama lebih sering daripada prediksi acak; nilai negatif menunjukkan lebih jarang daripada prediksi acak; nol menunjukkan tidak ada asosiasi.

Contoh output untuk maple_test_pmi_basic_output:

word1word2word1_countword2_countco_occurrences_countpmi
w0w02212.0794415416798357
w1w110101-1.1394342831883648
w1w210310.06453852113757116
w1w31072-0.08961215868968704
w1w51081-0.916290731874155
w1w9101240.06453852113757116
w2w33710.4212134650763035
w2w43410.9808292530117262
w3w47410.13353139262452257
w3w57820.13353139262452257
w3w6771-0.42608439531090014
w4w54810.0
w4w64710.13353139262452257
w5w68720.13353139262452257
w5w78410.0
w5w98121-1.0986122886681098
w6w77410.13353139262452257
w6w8771-0.42608439531090014
w6w97121-0.9650808960435872
w7w84720.8266785731844679
w8w8771-0.42608439531090014
w8w97122-0.2719337154836418
w9w912122-0.8109302162163288

Langkah selanjutnya