Data Mining: PENCARIAN DAN PENENTUAN BUKU REFERENSI TUGAS AKHIR MATAKULIAH DENGAN METODE NAÏVE...

7

Click here to load reader

Transcript of Data Mining: PENCARIAN DAN PENENTUAN BUKU REFERENSI TUGAS AKHIR MATAKULIAH DENGAN METODE NAÏVE...

Page 1: Data Mining: PENCARIAN DAN PENENTUAN BUKU REFERENSI TUGAS AKHIR  MATAKULIAH DENGAN METODE NAÏVE BAYES CLASSIFIER DAN  ASSOCIATION RULE

PENCARIAN DAN PENENTUAN BUKU REFERENSI TUGAS AKHIR MATAKULIAH DENGAN METODE NAÏVE BAYES CLASSIFIER DAN

ASSOCIATION RULE

Artha Galang S.1, Riawan Indra P.2, Ramadani3, Adi Warman4 1Jurusan Teknik Informatika, Fakultas Teknologi Industri,Universitas Islam Indonesia

Jl. Kaliurang Km. 14 Yogyakarta 55501 Telp. (0274) 895287 ext. 122, Faks. (0274) 895007ext. 148

2Jurusan Teknik Informatika, Fakultas Teknologi Industri, Universitas Islam Indonesia Jl. Yogyakarta Km 14 Jogja 55558

E-mail: [email protected], [email protected], [email protected], [email protected]

ABSTRAKS Perpustakaan adalah bagian yang penting dari suatu universitas karena menyediakan buku-buku referensi termasuk buku referensi untuk tugas akhir terutama untuk matakuliah konsentrasi. Kesuliatan yang terjadi adalah ketika perpustakaan harus mengidentifikasi buku-buku referensi tugas akhir tersebut sesuai dengan matakuliahnya. Ada beberapa buku yang sering dijadikan referensi bersama dengan beberapa matakuliah, ada juga buku-buku yang dijadikan referensi tunggal suatu matakuliah. Namun bahasan materi matakuliah yang bersangkutan tidak dibahas secara optimal dalam buku referensi tersebut. Proses klasifikasi akan dilakukan menggunakan naïve bayesian classifier (nbc). Proses klasifikasi buku referensi tersebut menggunakan metode nbc memiliki nilai presisi 63%. Untuk pencarian buku referensi tugas akhir tersebut menggunakan metode keyword-based association analysis sebuah metode text mining yang dikembangkan dari metode market basket analysis. Algortima apriori dari market basket analysis digunakan untuk menggali data dalam bentuk compact transaction menjadi rule - rule asosiasi. Compact transaction didapat dari pemrosesan awal terhadap teks abstrak ta menggunakan algoritma porter stemmer for bahasa indonesia. Rule - rule asosiasi yang dihasilkan memberikan informasi asosiasi antar keyword dari sekumpulan abstrak ta yang diproses. Sorting list judul ta yang berasosiasi didasarkan atas simililarity judul tersebut dengan keyword - keyword yang dicari menggunakan rumus minimum distance dari hierarchical clustering. Dari hasil pengujian dapat disimpulkan bahwa dengan penerapan metode keyword-based association analysis, search engine dapat pula menyajikan daftar judul tugas akhir yang bagian judul maupun abtraknya berasosiasi dengan kata - kata yang dicari.

Kata Kunci: Naïve Bayes, Association Rule, Minimum Distance

1. Pendahuluan

Pencarian buku referensi untuk tugas akhir permatakuliah konsentrasi sangat dibutuhkan oleh mahasiswa yang sedang menjalani tugas akhir. Pencarian dapat dilakukan berdasarkan judul, nama penulis, abstrak dan kata kunci (keyword). Kelemahan pada pencarian adalah hanya dapat menampilkan daftar judul buku tugas akhir yang secara explisit mengandung kata yang dicari pada bagian judul, nama pengarang, abstrak dan

keyword-nya. Buku - buku tugas akhir yang memiliki topik sejenis dengan kata yang dicari, namun tidak mengandung kata tersebut didalamnya tidak dapat ditampilkan pada hasil pencarian.

Dalam penentuan buku referensi yang dicari untuk tugas akhir, dilakukan pengklasifikasian buku-buku referensi berdasarkan silabus matakuliah dengan memanfaatkan informasi dari buku berupa daftar isi. Proses klasifikasi akan

Page 2: Data Mining: PENCARIAN DAN PENENTUAN BUKU REFERENSI TUGAS AKHIR  MATAKULIAH DENGAN METODE NAÏVE BAYES CLASSIFIER DAN  ASSOCIATION RULE

dilakukan dengan menggunakan metode Naïve Bayesian Classifier (NBC).

2. Tinjauan Pustaka a. Data Mining

Data mining mempunyai pengertian sebagai proses penemuan pengetahuan yang bermanfaat dan menarik di dalam keumpulan data yang besar (Jiawei Han dan Micheline Kamber, 2001:5). Tujuan utama data mining, yaitu prediksi (prediction) dan uraian (description). Beberapa tugas utama dari Data Mining antara lain (Mehmed, 2003:2) adalah classification (klasifikasi), regression (regresi), clustering (pengelompokan), summarization (ringkasan), dependency modeling (pemodelan ketergantungan), change and deviation detection (pendeteksi perubahan dan deviasi). b. Text Mining : Keyword-Based

Association Analysis

Keyword-Based Association Analysis, sebuah metode Text Mining yang dikembangkan dari Market Basket Analysis, merupakan sebuah analisa yang mengumpulkan keywords atau terms (istilah) yang sering muncul secara bersamaan dan kemudian menemukan hubungan asosiasi dan korelasi di antara keywords atau terms itu.

Seperti halnya metode data mining yang lain, sebelumnya association analysis perlu melakukan pre-processing terhadap text data dengan cara parsing, stemming, removing stopwords, dan sebagainya. Setelah itu baru menjalankan algoritma association mining. Di dalam sebuah document database, setiap dokumen dapat dianggap sebagai sebuah transaksi, sedangkan sekumpulan keywords di dalam document dapat dianggap sebagai sekumpulan items di dalam sebuah transaksi. Sehingga pada database akan mempunyai format sebagai berikut: {document_id, a_set_of _keywords}. Format seperti ini biasa disebut format Compact Transaction.

c. Association Rule Mining

Association rule mining adalah suatu prosedur untuk mencari hubungan antar item dalam suatu data set yang ditentukan. Association Rule Mining meliputi dua tahap:

Mencari kombinasi yang paling sering terjadi dari suatu itemset (frequent itemset).

Meng-generate Association Rule dari frequent itemset yang telah dibuat sebelumnya.

Umumnya ada dua ukuran kepercayaan (interestingness measure) yang digunakan dalam menentukan suatu association rule, yaitu Support dan Confidence.

d. Algoritma Apriori untuk Menemukan Frequent Itemsets

Apriori adalah suatu algoritma untuk melakukan pencarian frequent itemsest untuk mendapatkan association rules. Sesuai dengan namanya, algoritma ini menggunakan prior knowledge mengenai frequent itemset properties yang telah diketahui sebelumnya, untuk memproses informasi selanjutnya. Apriori menggunakan pendekatan secara iterative yang disebut juga sebagai level-wise search dimana k-itemset digunakan untuk mencari (k+1)-itemset.

e. Hierarchical Cluster pada Text Mining

Hierarchical Cluster menggunakan pendekatan berbasis set (set-based approach). Root dari hirarkinya adalah sebuat set untuk semua koleksi dokumen, dan Leaf-nya adalah set - set yang berisi sebuah dokumen saja. Teknik pengelompokan yang digunakan berbasis pada kesamaan (similarity) dari keyword - keyword yang ada pada dua buah dokumen. Ada beberapa cara yang dapat digunakan untuk mengukur jarak (distance) atara dua cluster, salah satunya adalah rumus berikut ini:

Page 3: Data Mining: PENCARIAN DAN PENENTUAN BUKU REFERENSI TUGAS AKHIR  MATAKULIAH DENGAN METODE NAÏVE BAYES CLASSIFIER DAN  ASSOCIATION RULE

Minimum Distance: dmin(Ci, Cj) = minpCi,p'Cj |p - p'| ........................ (1)

Dimana: |p - p'| adalah jarak dari 2 point obyek di dalam dua Cluster yang berbeda Ci dan Cj.

f. Naïve Bayesian Classifier (NBC)

NBC menggunakan pendekatan probabilitas untuk menghasilkan classifier. NBC menggunakan gabungan probabilitas kata/term dengan probabilitas kategori untuk menentukan kemungkinan kategori bagi dokumen yang diberikan. Naive bayes memanfaatkan teori peluang, yakni jika diketahui suatu hipotesa H dengan kejadian tentang hipotesa E, maka kita dapat mengkalkulasi probabilitas dari H dengan formula:

Atau secara sederhana dapat dikatakan bahwa probabilitas dari hipotesa kita terhadap suatu kejadian sama dengan probabilitas kejadian yg memberikan hipotesis dikalikan dengan probabilitias hipotesa yang kemudian dinormalkan.

3. Desain Sistem Pencarian Buku Referensi

daftar kata penting

association rules

frequent itemset

minimum confidence

minimum support count

input jurusan

input keyword

hasil search

data & abstrak ta

kata kata penting yang berasosiasi (association rules)

generated association rules

frequent itemset

generated frequent itemset

data transaksi D

kata penting(items) per transaksi(abstrak)

daftar kata penting

kata penting atau keywords

abstrak ta

data & abstrak ta

stoplist

stopword yang akan diedit

data stopword

input stopword

kata penting per abstrak

input jurusan yang akan diproses

raw data

Administrator

User

1Proses

Persiapan Data Abstrak

2Proses

Pendataan Stopword

3Proses

Preprocessing Abstrak TA

4

Proses Generate Association Rules

5

Proses Search Keywords

tabel stopwordtabel ta abstak

tabel kata penting

tabel transaksi

tabel frequent itemset

tabel association rules

Administrator

Gambar 1: DFD Level 1 untuk Sistem Text Mining

Pada paper ini hanya membahas tentang tahap Proses Generate Association Rules dan Proses Search Keyword.

3.1 Tahap Proses Generate Association Rules

Desain dari proses ini dapat dilihat pada gambar 2. Tahap proses ini terdiri dari dua subproses yaitu subproses Generate Frequent Itemsets dengan Apriori dan subproses Generate Association Rules dari Frequent Itemsets.

1. Subproses Generate Frequent Itemsets memproses input data berupa data dari tabel transaksi dan minimum support count dari administrator, untuk menghasilkan output data frequent itemsets yang disimpan pada tabel Frequent Itemset. Algoritma yang digunakan untuk mendapatkan Frequent Itemset adalah algortima AprioriTID yang diciptakan oleh Agrawal dan Srikant pada tahun 1994. Isi tabel transaksi dapat dilihat pada gambar 3.

2. Pada subproses Generate Association Rule, Frequent itemsets dari tabel diproses untuk menghasilkan data output berupa rule - rule asosiasi, dan disimpan pada tabel association rules. Untuk memproses rule - rule asosiasi, administrator perlu menentukan minimum confidence terlebih dahulu. Untuk meng-generate rule asosiasi ini digunakan prosedur Ap-Genrules yang diciptakan oleh Agrawal dan Srikant, tahun 1994.

association rules

frequent itemsetsminimum support count

minimum confidencegenerated frequent itemset

generated association rules

frequent itemsetdata transaksi D

tabel transaksi tabel frequent itemset tabel association rules

1

Proses Generate Frequent Itemset

dengan Apriori

2Proses Generate

Association Rules dari

Frequent ItemsetAdministrator

Gambar 2: DFD Level 2 Proses Generate Association Rules

3.2 Tahap Proses Search Keywords

Page 4: Data Mining: PENCARIAN DAN PENENTUAN BUKU REFERENSI TUGAS AKHIR  MATAKULIAH DENGAN METODE NAÏVE BAYES CLASSIFIER DAN  ASSOCIATION RULE

Tahap ini didisain dalam bentuk aplikasi berbasis Web dan dibangun dengan pemrograman web PHP3 menggunakan software Dreamweaver MX.

Mula - mula inputan dari user yang berupa string dikenai proses Parsing, yaitu memilah string tersebut kata per kata. Selanjutnya dilakukan proses Stemming dan Stopwords Removal, sehingga yang tersisa dari inputan user adalah keyword - keyword saja. Pemrosesan string inputan user ini sama dengan tahap pre-processing sistem, dan dibahas tersendiri dalam paper yang ditulis oleh penulis yang sama dengan judul "Algoritma Porter Stemmer For Bahasa Indonesia untuk Pre-Processing Text Mining berbasis metode Market Basket Analysis ". Desain dari proses ini dapat dilihat pada gambar 4.

Gambar 4: DFD Level 2 Proses Search Keywords

Ada dua tahap pada proses pencarian abstrak TA, yaitu:

a. Tahap Pertama, pencarian abstrak TA yang mengandung keyword - keyword inputan user. Pada tahap ini keyword inputan user dibandingkan dengan tabel transaksi, yang berisi nomor TA dan keyword - keyword pada abstrak TA tersebut, bila ada maka judul TA akan ditampilkan pada user. Daftar judul TA ini diurutkan secara descending, bobot yang digunakan adalah banyaknya macam keyword user yang terkandung didalam abstrak TA itu ( dalam tabel transaksi).

b. Tahap kedua adalah pencarian abstrak TA yang berasosiasi dengan keyword - keyword inputan user. Pada tahap ini keyword dari user dibadingkan dengan sisi premis (IF) dari rule - rule asosiasi yang disimpan pada tabel association rules. Bila sebuah rule telah diketemukan, maka semua kata yang berada pada sisi konklusi (THEN) rule tersebut akan disimpan pada penyimpan sementara. Hal ini terus dilakukan berulang - ulang sampai semua rule asosiasi telah dibandingkan. Selanjutnya daftar kata yang berasosiasi dengan keyword - keyword user itu, kata yang berada pada sisi konklusi rule, dibandingkan dengan isi tabel transaksi, bila ada maka judul TA akan ditampilkan pada user. Daftar judul TA ini diurutkan secara descending, bobot yang digunakan adalah derajat asosiasi (confidence) dari keyword - keyword yang ada pada abstrak TA terhadap keyword inputan user.

3.3 Mengukur derajat asosiasi keyword abstrak TA dan keyword User

Metode yang digunakan untuk menentukan bobot pengurutan data judul TA yang ber-asosiasi dengan keyword - keyword dari user diadopsi dari metode Hierarchical Cluster untuk Text Mining. Dalam hal ini kumpulan keyword dari user dan juga kumpulan keyword pada abstrak - abtrak TA yang ada dianggap sebagai sekumpulan Cluster Of Keywords. Cluster yang berisi keyword - keyword dari user dianggap sebagai cluster pusat, kemudian diukur derajat asosiasi antara cluster ini dengan cluster - cluster yang lain (abstrak TA) menggunakan rumus Minimum Distance. Untuk menghitung nilai jarak antara dua point keyword pada Cluster-User-Keyword dan Cluster-Abstrak-TA digunakan rumus:

|p - p'| = 1 - Confidence(Rule: IF Ki THEN Kj) ............................................ (2)

Page 5: Data Mining: PENCARIAN DAN PENENTUAN BUKU REFERENSI TUGAS AKHIR  MATAKULIAH DENGAN METODE NAÏVE BAYES CLASSIFIER DAN  ASSOCIATION RULE

Dimana: Ki adalah keyword inputan dari user dan Kj adalah keyword pada abstrak TA.

Rule yang valid adalah bila sisi premis rule tersebut berisi keyword dari user dan sisi konklusi berisi keyword pada dokumen. Untuk lebih jelasnya, dapat dilihat ilustrasi pada gambar 5.

Gambar 5: Ilustrasi perhitungan derajat asosiasi

4 Rancangan Sistem Penentuan Buku Referensi

Data yang digunakan dalam penelitian ini adalah silabus dari 45 matakuliah. Pemilihan 45 matakuliah ini dilakukan berdasarkan hubungan yang ada antara matakuliah-matakuliah tersebut. Selain itu, matakuliah-matakuliah tersebut merupakan inti dari program studi teknik informatika. Pemilihan 5 matakuliah wajib dari total matakuliah wajib 35 matakuliah adalah dengan pertimbangan bahwa dari 5 matakuliah tersebut berkaitan erat dengan matakuliah-matakuliah konsentrasi. Dapat dikatakan bahwa matakuliah wajib tersebut merupakan sumber dari matakuliah-matakuliah konsentrasi. Sedangkan untuk matakuliah bebas merupakan pengembangan matakuliah konsentrasi.

Adanya kesinambungan antara matakuliah-matakuliah tersebut menyebabkan ada kemiripan materi yang dibahas didalamnya. Dengan begitu,

sangat memungkinkan menemukan frase-frase yang sama di matakuliah yang berbeda. Sebagai contohnya adalah computer network, secara spesifik computer network dibahas pada matakuliah Jaringan Komputer. Tetapi pada matakuliah Router dan Routing dasar, Bridging, dan Switching atau matakuliah lain yang membahas mengenai jaringan juga akan membahas computer network.

Dari tiap matakuliah telah dilakukan observasi manual dan diambil 5 frase unik. Pemakaian 5 frase untuk tiap kali matakuliah dianggap cukup untuk membedakan mana frase yang mewakili materi dan mana frase yang berhubungan dengan matakuliah lain. Untuk selanjutnya, daftar frase ini akan digunakan sebagai daftar frase untuk dasar pembobotan data training dan data test.

4.1 Analisis Sistem Penentuan Buku Referensi

Data data test berjumlah 100 dokumen, diperoleh nilai presisi yaitu 63%. Hasil presisi 63% menyatakan ada 63 dokumen dikategorikan benar dan 4 dokumen yang dikategorikan salah. Jumlah dokumen yang tidak dapat dikategorikan adalah 33 dokumen. Nilai presisi dihitung dengan cara dokumen yang tidak dapat dikategorikan dianggap sebagai dokumen yang salah.

Adanya beberapa dokumen yang tidak dapat dikategorikan, disebabkan karena hasil Pr(x|class=n) dengan n untuk semua kategorinya bernilai 0. Hasil ini diperoleh dari Pr(w|class)*Pr(class) dengan w adalah frase dan class kategori. Jadi apabila salah satu saja dari Pr(x|class) ada bernilai 0, maka hal inilah yang akan menimbulkan Pr(x|class) akan bernilai0. Untuk jumlah kategori yang banyak kemungkinan munculnya Pr(w|class)=0 akan semakin besar karena untuk 2 kategori saja hal ini bisa terjadi. Selain itu, vektor yang dihasilkan dari data training

Page 6: Data Mining: PENCARIAN DAN PENENTUAN BUKU REFERENSI TUGAS AKHIR  MATAKULIAH DENGAN METODE NAÏVE BAYES CLASSIFIER DAN  ASSOCIATION RULE

juga memiliki kemungkinan untuk Pr(w|class)=0.

Berikut merupakan contoh dari buku yang dijadikan referensi bersama untuk matakuliah Sistem Pakar dan Pengantar Kecerdasan Buatan.

a. ISBN : 0672224437 Judul : Crash Course in Artificial Intelligence and Expert Systems.

b. ISBN : 013482928X Judul : Introduction to Artificial Intelligence and Expert Systems.

Untuk buku-buku ini, hasil klasifikasinya yaitu tidak dapat dikategorikan. Berikut akan diberikan contoh mengenai buku yang cocok dijadikan referensi beberapa kategori.

a. Buku dengan ISBN 9630573199 berjudul The Behavior and Simplicity of Finite Moore Automata. Jika dilihat dari judul bukunya, buku ini adalah buku untuk matakuliah Teori Bahasa Otomata. Setelah diproses dengan sistem penentuan buku, maka sistem menyarankan bahwa buku ini cocok dijadikan referensi untuk matakuliah Teori Bahasa Otomata, Teknik Kompiler, Pengolahan Bahasa Natural, Eksperimental Roborika, dan Pemrograman Kecerdasan Buatan. Jika dilihat dari nilai probabilitas tertinggi, buku ini lebih cocok digunakan sebagai referensi matakuliah Teori Bahasa dan Otomata.

b. Buku dengan ISBN 1587050552 berjudul Cisco WAN Switching Professional Reference. Jika dilihat dari judul bukunya, buku ini adalah buku untuk matakuliah Bridging dan Switching dan matakuliah Teknologi WAN. Setelah diproses dengan sistem penentuan buku, maka sistem menyarankan bahwa buku ini cocok dijadikan referensi untuk matakuliah Teknologi WAN dan Pemeliharaan Jaringan. Jika dilihat dari nilai probabilitas tertinggi, buku ini lebih

cocok digunakan sebagai referensi matakuliah Teknologi WAN.

c. Buku dengan ISBN 0135995728 berjudul Computer Graphics Mathematical First Steps. Jika dilihat dari judul bukunya, buku ini adalah buku untuk matakuliah Grafika Komputer. Setelah diproses dengan sistem penentuan buku, maka sistem menyarankan bahwa buku ini cocok dijadikan referensi untuk matakuliah Grafika Komputer, Pengolahan Citra Digital, dan Multimedia Internet. Jika dilihat dari nilai probabilitas tertinggi, buku ini lebih cocok digunakan sebagai referensi matakuliah Grafika Komputer.

d. Buku dengan ISBN 1584882441 berjudul A First Course in Fuzzy and Neural Control. Jika dilihat dari judul bukunya, buku ini adalah buku matakuliah Jaringan Syaraf Tiruan dan Logika Samar. Setelah diproses dengan sistem penentuan buku, maka sistem menyarankan bahwa buku ini cocok dijadikan referensi untuk matakuliah Jaringan Syaraf Tiruan Pemrograman Kecerdasan Buatan, Logika Samar, dan Pengantar Kecerdasan Buatan. Jika dilihat dari nilai probabilitas tertinggi, buku ini lebih cocok digunakan sebagai referensi matakuliah Jaringan Syaraf Tiruan.

Dengan begitu, sistem penentuan buku ini dapat digunakan untuk mengkategorikan buku-buku yang jadikan referensi bersama atau buku-buku yang memiliki bahasan materi untuk beberapa kategori. Dalam penelitian ini, telah dibuat sistem penentuan buku yang tidak menggunakan teori probabilitas sebagai dasar klasifikasinya. Sistem tersebut menggunakan perhitungan jumlah frase untuk tiap kategori sebagai dasar klasifikasinya.

5. Kesimpulan

Dari penelitian yang dilakukan menggunakan metode klasifikasi naïve

Page 7: Data Mining: PENCARIAN DAN PENENTUAN BUKU REFERENSI TUGAS AKHIR  MATAKULIAH DENGAN METODE NAÏVE BAYES CLASSIFIER DAN  ASSOCIATION RULE

bayesian classifier dan association rule untuk kasus penentuan buku referensi matakuliah maka dapat ditarik kesimpulan sebagai berikut :

a. Semakin tinggi batasan minimum support count yang ditentukan maka association rules yang dihasilkan semakin sedikit sehingga menurunkan kuantitas dari keyword rekomendasi yang dihasilkan namun lebih meningkatkan asosiasi di antara user’s keyword dengan keyword rekomendasi.

b. Metode Keyword-Based Association Analysis dapat digunakan untuk mendapatkan judul – judul TA yang ‘direkomendasikan’ (memiliki asosiasi) dengan keyword – keyword inputan dari user.

c. Klasifiaksi menggunakan metodeNaive Bayesian Classifier untuk program bantu dapat dilakukan pada kasus ini dengan hasil presisi yang diperoleh adalah 63%.

d. Metode Bayesian memerlukan pengetahuan awal untuk dapat mengambil suatu keputusan. Tingkat keberhasilan metode ini sangat bergantung pada pengetahuan awal yang diberikan.

e. Untuk buku-buku yang dijadikan referensi bersama dapat mengklasifikasikan dengan baik berdasarkan nilai probabilitas tertingginya.

PUSTAKA

1. Nurani. A. Implementasi naive bayes classifier pada program bantu penentuan buku referensi matakuliah. Jurnal informatika.: 1-5

2. Kurniawan, h. (2006). Otomatisasi pengelompokkan koleksi perpustakaan dengan pengukuran cosine similarity dan euclidean distance. Snati 2006, 19-22.

3. Astuti, l. Sistem pendukung kebutuhan untuk promosi katalog buku baru dengan menggunakan algoritma agglomerative clustering. Jurnal teknik informatika. 1- 8

4. Gunawan, ibnu. Penggunaan metode market basket analysis untuk meningkatkan kemampuan search engine online buku tugas akhir pada perpustakaan uk petra. Jurnal teknik informatika. 1-10.

5. Agrawal, Rakesh, Ramakrishnan Srikant, 1994, Fast Algorithms for Mining Association Rules, Proceeding Of The 1994 International Conference Very Large Data Bases, Santiago, Chile, September 1994.

6. Han, Jiawei, Micheline Kamber, 2001, Data Mining : Concepts and Techniques. Morgan Kaufmann.