IDENTIFIKASI TOPIK PADA KOLEKSI DOKUMEN MENGGUNAKAN ALGORITMA PENGKLASTERAN HYPERGRAPH PARTITIONING Diana Purwitasari, Gestyana Ari Restanti Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember Jl. Raya ITS – Gedung Teknik Informatika ITS Sukolilo Surabaya 60111 Telp : (+6231) 5939214, Fax : (+6231) 5913804 email: [email protected] Abstract: The objective of topic extraction is grouping keywords within documen collection that will be used for identifying topics based on information of word occurrences called frequent itemsets. Word occurences describing relationship between words will be modeled into hypergraph, a graph which its edge connects more than two vertices. After representing words into hypergraph then the next step is dividing the graph into a number of subgraphs called partitioning. Basically, hypergraph partioning is a graph clustering algorithm. This paper discussed about Hypergraph Partioning by comparing the results of Fiduccia-Mattheyeses (FM) and k-way Spectral Clustering (k-way) using standard data set of 20 Usenet newsgroups - UCI KDD Archive. Experiment results of relevance between grouped words in a topic and defined topics in the data set have showed that k-way is better than FM for identifying topics. Unsatisfactory partitioning result is influenced by values of support and confidence which become frequent itemsets criterias. If the criterias are set into smaller values then the selected words could not represent discussion within topic. FM attempts to impose the same proportion between partitions or to make grouped words between subgraphs have almost the same value. This attempt affected to the lower relevance of identified topics for FM. Keywords: Topic Extraction, Frequent Itemsets, Hypergraph Partioning, Clustering. 1. Pendahuluan Fenomena information overload akibat banyaknya informasi tersedia di dunia Internet membuat pengoptimalan pengambilan informasi relevan menjadi semakin penting. Identifikasi topik adalah salah satu usaha untuk mengurangi banyaknya informasi dengan mengelompokkan informasi yang memiliki bahasan sejenis. Langkah-langkah dalam identifikasi topik dapat dianggap sebagai modifikasi proses ekstraksi kata kunci dengan memilih kata-kata yang relatif sering muncul dan membuang kata-kata yang terlalu sering atau bahkan sangat jarang muncul (Andrews, 2004). Makalah ini membahas tentang identifikasi topik berdasarkan informasi kemunculan bersama dari kata yang direpresen-tasikan sebagai graph (Clifton dkk., 2004; D’hondt dkk, 2011). Teknik identifikasi topik dapat digunakan dalam pengklasteran baik data teks (Qu dkk., 2008) maupun data citra (Wu dkk., 2010) dan bahkan digunakan lebih lanjut sebagai solusi suatu domain permasalahan seperti e-learning (Purwitasari dkk., 2009). Dasar pemikiran identifikasi topik pada suatu koleksi dokumen adalah kata – kata yang sering muncul pada suatu bahasan akan menjadi kata – kata penting pada topik dalam bahasan tersebut. Ekstraksi topik bertujuan untuk mengelompokkan kata–kata kunci pada suatu koleksi dokumen yang akan digunakan dalam iden-tifikasi topik berdasarkan informasi kemunculan bersama dari kata atau disebut frequent itemsets. Kemunculan bersama dari kata atau hubungan antar kata dalam koleksi dokumen akan dimodelkan menjadi hypergraph yaitu graph dengan edge yang dapat menghubungkan lebih dari dua vertex. Kemudian dilakukan penge-lompokkan kata untuk identifikasi topik dengan membagi graph menjadi beberapa subgraph disebut proses partitioning (Clifton dkk., 2004). Makalah ini membahas tentang Hyper-graph Partioning sebagai algoritma untuk identifikasi topik dengan membandingkan hasil dari algoritma Fiduccia-Mattheyeses (FM) (Fiduccia dan Mattheyses, 1982) dan algoritma k-way Spectral Clustering (k-way) (Luxburg, 2006) menggunakan data set standard 20 Usenet newsgroups milik UCI KDD Archive (Hettich dan Bay, 1999). 2. Pemodelan Hypergraph Hypergraph adalah suatu bentuk graph yang memiliki edge disebut hyperedge karena dapat menghubungkan lebih dari dua vertex. Sedangkan hypergraph partitioning adalah suatu proses untuk membagi hypergraph ke dalam subgraph dengan permasalahan utama adalah mekanisme pembagian hypergraph sedemikian hingga jumlah hyperedge yang dihilangkan adalah minimal. Identifikasi kandidat vertex atau node dari koleksi dokumen dan identifikasi relasi antar node menjadi proses utama pembentukan hypergraph. Permasalahan awal pada pembentukan graph adalah (i) menentukan vertex pada hypergraph yang berasal dari kata-kata dalam koleksi dokumen dan (ii) menentukan edge berupa relasi antar kata. Langkah pertama identifikasi kandidat vertex adalah melakukan pemrosesan teks pada dokumen dalam koleksi mulai dari pengindeksan dokumen, tokenisasi untuk memisahkan kata serta membuang kata–kata tidak penting seperti kata penghubung (disebut stopword), stemming dan pembobotan kata (Manning dkk., 2008). Skema pembobotan yang dipilih adalah TF-IDF pada Persamaan (1) (Salton dan Gambar 1. Langkah-langkah pemodelan hypergraph. Buckley, 1988). Bobot kata i, π‘π , dalam dokumen j, ππ , dengan notasi πππ dihitung dari hasil perkalian frekuensi kemunculan kata π‘πππ dengan nilai log banyaknya dokumen, π(π‘ π ), yang memiliki kata tersebut. Nilai log juga dipengaruhi jumlah dokumen dalam koleksi, N. Nilai frekuensi π‘πππ dapat dinormalisasikan menjadi kisaran 0-1 dengan pembagian nilai maxπ π‘πππ . πππ = π‘πππ × log π π .................................................................................................................................................. (1) (π‘ π ) Identifikasi kandidat vertex dari koleksi dokumen memilih kata–kata yang sering muncul (frequent-itemsets) (Clifton dkk., 2004). Kata yang diperhitungkan adalah kata dengan nilai bobot TF-IDF lebih besar dari nilai 30% bobot tertinggi. Nilai bobot akan semakin besar jika frekuensi kemunculan kata dalam dokumen semakin tinggi namun tidak banyak dijumpai pada setiap dokumen dalam koleksi. Identifikasi relasi antar kata akan mengamati setiap pasangan kata (2-frequent-itemsets untuk kata i, π‘π , dan kata j, π‘π ) beserta bobot kekuatan relasinya yang dipengaruhi dengan nilai support s (Persamaan (2)) dan confidence c (Persamaan (3)) (Clifton dkk., 2004).Nilai π ππ menunjukkan support antara kata i, π‘π , dan kata j, π‘π dihitung dari jumlah dokumen yang yang memiliki kedua kata tersebut, π(π‘ π ,π‘ π ) . Nilai s memastikan perhatian lebih diberikan pada pasangan kata yang sering muncul. Kemudian nilai c menganalisa suatu 2-frequent-itemsets yang memiliki minimal nilai s akan memungkinkan untuk menjadi frequent-itemsets potensial. Nilai s dan c harus lebih dari nilai threshold, πΏπ dan πΏπ . Batas confidence dan support ditentukan dengan memilih nilai terendah dari 30% nilai teratas. Nilai πππ menunjukkan confidence antara π‘π dan π‘π yang dihitung berdasarkan probabilitas π (π‘π , π‘π ), π (π‘π ) dan π (π‘π ). π ππ = π (π‘ ,π‘ ) π π π ≥ πΏπ ....................................................................................................................................................... (2) π (π‘π , π‘π ) = π ππ , π (π‘π ) = π (π‘ ) π , π (π‘π ) π = π (π‘ ) π π π (π‘ π ,π‘ π ) πππ = log 2 π (π‘ )× π (π‘ ) ≥ πΏπ ............................................................................................................................................ (3) π π Gambar 1 menunjukkan langkah–langkah yang harus dilakukan untuk melakukan pemodelan hypergraph. 3. Hypergraph Partitioning pada Pengklasteran Graph Banyak library tersedia untuk proses hypergraph partitioning seperti hMetis (Karypis, 2007), MLPart (Caldwell dkk, 2006), Mondriaan (Bisseling, 2008), Parkway (Trifunovic, 2006) dan PaToH (Catalyurek, 2009). Namun kesemua library tersebut hanya dalam bentuk binary sehingga tidak dapat diketahui secara jelas proses yang terjadi serta memiliki batasan format masukan yang harus dipenuhi sehingga untuk identifikasi topik tidak bisa langsung digunakan. Algoritma yang Partisi 1 Partisi 2 +2 +1 0 -1 A B C D Gambar 2. Ilustrasi penghitungan nilai gain pada FM. menjadi dasar sebagian besar pembuatan library tersebut adalah Fiduccia-Mattheyeses (FM) (Fiduccia dan Mattheyses, 1982) dan k-way Spectral Clustering (k-way) (Luxburg, 2006). FM dimulai dengan inisialisasi random dan membagi kesemua vertex menjadi dua partisi. Pada awal iterasi semua vertex diberikan flag unlocked yang artinya vertex bebas untuk bergerak. Setiap kemungkinan pergerakan vertex ditandai dengan nilai gain yang positif atau negatif untuk mempengaruhi biaya pembentukan partisi. Kemungkinan pergerakan dengan gain positif akan mengurangi biaya dan begitu pula sebaliknya. Pada Gambar 2 terlihat 4 vertex pada 2 partisi. Vertex A di Partisi 1 memiliki 2 edge terhubung dengan vertex di Partisi 2. Apabila vertex A berpindah ke Partisi 2 maka nilai gainnya = 2. Sedangkan vertex D terhubung dengan 1 edge ke vertex C di partisi sama yaitu Partisi 2. Apabila vertex D berpindah partisi maka akan mendapatkan nilai gain negatif = -1. Secara berulang vertex dengan nilai gain terbesar akan berpindah posisi partisinya dan nilai flag menjadi locked sehingga tidak diperbolehkan untuk berpindah lagi. Perpindahan tersebut mengakibatkan perhitungan ulang nilai gain setiap vertex. Iterasi terus dilakukan sampai flag semua vertex berubah menjadi locked. Algoritma k-way dimulai dengan set vertex v1,... vn dengan nilai similarity untuk semua vertex. Tujuan dari pengklasteran adalah membagi vertex ke beberapa kelompok sehingga vertex dalam suatu kelompok akan lebih mirip dibanding vertex yang berada di kelompok lain. Nilai kemiripan (similarity) menjadi perwakilan dari bobot edge yang diambil dari confidence πππ yaitu kemiripan antara vertex vi atau kata ti dengan vertex vj atau kata tj. Pertama dibuat Adjacency Matrix Aπ×π sebagai representasi graph kemiripan antar vertex dan menghitung Degree Matrix Dπ×π berdasarkan nilai matrix A. Diagonal pada matrix A pasti berisi nilai 0 sedangkan diagonal pada matrix D adalah satu-satunya sel yang memiliki nilai. Sel selain sel diagonal bernilai 0. Ilustrasi pembuatan matrix A dan matrix D ditunjukkan pada Gambar 3. Kemudian dihitung Laplacian Matrix L dengan Persamaan (4). πΏ = π· − π΄ ................................................................................................................................................................ (4) Lalu hitung Eigenvalue matrix χπ×π = λπ π ∈π dan Eigenvector matrix Λπ ×1 dari matrix L yang menunjukkan karakteristik utama matriks. Menggunakan Eigenvalue yang diurutkan dari terkecil sampai terbesar akan diambil kterkecil pertama dari eigenvector untuk menyusun matrix π ∈ βπ ×π dengan eigenvector λ1 .... λπ sebagai kolom. Nilai k adalah jumlah cluster yang ingin dibentuk. Proses tersebut mengurangi dimensi matriks representasi kata pada hypergraph dari π × π menjadi π × π. Selanjutnya susun matrix π ∈ βπ ×π sebagai hasil normalisasi matrix X sesuai Persamaan (5). π¦ππ = π₯ ππ 2 π π₯ ππ ............................................................................................................................................................ (5) 2 0.1 0.8 5 1 0.8 0.6 2 0.8 6 4 0.7 3 0.2 HYPERGRAPH 0.8 x1 x2 x3 x4 x5 x6 x1 0 0.8 0.6 0 0.1 0 x2 0.8 0 0.8 0 0 x3 0.6 0.8 0 0.2 0 x4 0 x5 0.1 x6 0 0 0 0 0.2 0 0 0 0.8 0.7 0.8 0 0.8 ADJACENCY MATRIX A x1 x2 x3 x4 x5 x6 x1 1.5 0 0 0 0 0 0 x2 0 1.6 0 0 0 0 0 x3 0 0 1.6 0 0 0 0.7 x4 0 0 0 1.7 0 0 x5 0 0 0 0 1.7 0 x6 0 0 0 0 0 1.5 0.8 0 DEGREE MATRIX D Gambar 3. Ilustrasi representasi adjacency matrix A dan degree matrix D dari hypergraph. Untuk pengklasteran digunakan algoritma K-Means pada data sejumlah n berdimensi k diambil dari matrix Y. Setiap baris pada matrix Y akan menjadi representasi satu data. Apabila terdapat sejumlah k cluster maka vertex vi atau kata ti akan dijadikan anggota cluster c jika data dari baris ke i pada matrix Y masuk ke dalam cluster c. 4. Uji Coba dan Evaluasi Uji coba dilakukan untuk mengukur tingkat ketepatan identifikasi topik dengan algoritma FM dan k-way menggunakan data set standard 20 Usenet newsgroups milik UCI KDD Archive (Hettich dan Bay, 1999) sejumlah 108 dokumen berbahasa Inggris dengan 4 kategori topik dan 8 kategori subtopik. Uji coba dilakukan menggunakan hasil implementasi algoritma FM dan k-way pada lingkungan: Pentium(R) Dual-Core CPU T4200 @2.00GHz, Memori 1GB DDR2, Sistem Operasi Microsoft Windows XP Professional Version 2000 (SP2), bahasa pemrograman Java, compiler Netbeans 6.7 dengan JDK 1.6 dan PHP mySQL sebagai basis data. Beberapa library digunakan dalam proses implementasi seperti: (i) Algoritma Lovins-Stemmer untuk stemming dokumen (http://snowball.tartarus.org), (ii) Java Library jmatharray.jar untuk proses mendapatkan nilai-nilai eigen (http://jmatharray.googlecode.com), dan (iii) Java Library lingpipe.jar untuk proses pada matriks dalam implementasi algoritama k-way (http://alias-i.com). Kategori topik dan subtopik dalam uji coba ditunjukkan pada Tabel 1 dan Tabel 2 antara lain seperti kategori topik Computers (28 dokumen) dengan subtopik Computers.Graphics (12 dokumen) dan Computers.OS (16 dokumen). Untuk tiga kategori topik yang lain adalah Politics (27 dokumen), Sport (26 dokumen), dan Science (27 dokumen). Pengujian dengan algoritma FM dan k-way akan mencoba membagi set dokumen uji coba menjadi 4 dan 8 kategori. Hasil pembagian (cluster) dianggap sebagai topik yang berhasil diidentifikasi dan diamati relevansi similarity berdasarkan cosine similarity serta relevansi precisionnya (Manning dkk., 2008). Cluster hasil pembagian sebenarnya belum memiliki label sehingga pelabelan dilakukan melalui pengamatan manual. Selanjutnya berdasarkan partisi topik yang telah diketahui akan digunakan dalam menghitung relevansi. Hasil relevansi ditunjukkan pada Tabel 1 dan Tabel 2. Tabel 1. Hasil perhitungan similarity pada identifikasi topik. TOPIK ALGORITMA FM k-way 1,43 2,40 1,25 0,52 0,85 2,77 0,90 2,21 TOPIK & SUBTOPIK Computer.Graphics Computers.OS Rata2 Sub Topik: Politics.Gun Politics.MidEast Rata2 Sub Topik: Sports.Hockey Sports.Baseball Rata2 Sub Topik: Science.Medics Science.Electronics Rata2 Sub Topik: 1,11 1,98 RATA2 : Computers (Partisi 1) Politics (Partisi 2) Sport (Partisi 3) Science (Partisi 4) RATA2 : ALGORITMA FM k-way 0,26 0,19 1,21 1,86 0,74 1,03 1,38 0,06 1,01 2,21 1,20 1,14 0,21 1,16 1,17 2,30 0,69 1,73 0,77 1,23 0,64 0,36 0,71 0,80 0,83 1,17 Tabel 2. Hasil perhitungan precision pada identifikasi topik. TOPIK ALGORITMA FM k-way 41,4% 61,4% 45,0% 80,6% 22,0% 75,0% 53,6% 75,0% TOPIK & SUBTOPIK Computer.Graphics Computers.OS Rata2 Sub Topik: Politics.Gun Politics.MidEast Rata2 Sub Topik: Sports.Hockey Sports.Baseball Rata2 Sub Topik: Science.Medics Science.Electronics Rata2 Sub Topik: 40,5% 73,0% RATA2 : Computers (Partisi 1) Politics (Partisi 2) Sport (Partisi 3) Science (Partisi 4) RATA2 : 1. ALGORITMA FM k-way 18,8% 40,0% 42,4% 53,5% 30,6% 46,7% 45,8% 50,0% 45,5% 53,7% 45,6% 51,9% 23,1% 71,4% 31,3% 84,6% 27,2% 78,0% 28,6% 100,0% 48,0% 25,0% 38,3% 62,5% 35,4% 59,8% Nilai similarity dihitung dengan menganggap daftar kata (vertex) yang masuk dalam satu partisi atau topik sebagai hasil dari hypergraph partitioning menjadi kata di satu dokumen besar semisal disebut di. Nilai i adalah 1...4 untuk uji coba 4 kategori atau 1...8 untuk uji 8 kategori. Dokumen pembanding adalah kumpulan dokumen-dokumen di suatu topik disebut dj. Persamaan (6) menghitung similarity berdasarkan cosine similarity. Nilai π(πππ‘π)π π adalah ada atau tidaknya kata dalam dokumen di (π(π‘ππππ ππππ‘)π π = 1 atau π(π‘ππππ ππππ‘)π π = 0). Misalkan terdapat tiga dokumen uji coba d1, d2, dan d3 untuk topik Computers. Untuk kata transport dengan kemunculan di dokumen d1=0, d2=4, dan d3=5 maka nilai π(π‘ππππ ππππ‘)π π = 2. Kata adalah semua kata yang berhasil diindeks dari koleksi dokumen. π πππ π ,π π = π (πππ‘π )π ×π (πππ‘π )π π π (πππ‘π )π 2 π π π (πππ‘π ) π 2 ......................................................................................................................... (6) π Nilai precision menunjukkan persentase dokumen relevan yang berhasil dikenali. Misalkan pada Partisi 2 terdapat kata firearms. Apabila nilai terbesar dari bobot TF-IDF kata firearms dimiliki oleh dokumen yang masuk dalam topik Politics maka dokumen tersebut dianggap relevan. Nilai precision dihitung dari jumlah dokumen relevan pada satu topik dibagi jumlah keseluruhan dokumen dalam koleksi. Analisa nilai similarity dan precision dilakukan di setiap topik, subtopik maupun rata-rata per subtopik dan rata-rata akhir. Hasil analisa menunjukkan partisi kata-kata untuk identifikasi topik dengan algoritma k-way menghasilkan kumpulan kata yang lebih mirip (similar) dibanding topik aslinya. Selain itu dokumen yang mengandung kata-kata anggota partisi juga lebih relevan dengan label topiknya. Hanya beberapa kategori seperti Politics khususnya Politics.Gun, Science.Electronics atau Computer.Graphics yang menunjukkan tingkat similarity pada FM lebih baik. Sedangkan precision dengan k-way selalu lebih baik dibandingkan FM kecuali pada kategori Science.Electronics. Pembagian subgraph atau partitioning yang tidak sempurna dipengaruhi nilai support dan confidence yang menjadi kriteria pada frequent itemsets. Apabila nilai kriteria tersebut terlalu rendah maka kata – kata yang terpilih bukanlah kata yang mewakili koleksi dokumen. Kemungkinan penyebab rendahnya precision pada FM terjadi karena keseimbangan jumlah partisi menjadi suatu batasan. Artinya FM akan “memaksakan” agar anggota partisi berjumlah seimbang. Hal ini menjadi permasalahan karena untuk memenuhi batasan keseimbangan ada kalanya terjadi kata yang seharusnya berada di partisi “A” terpaksa berada di partisi “B”. Meskipun k-way menghasilkan nilai precision lebih baik, namun ada suatu partisi yang hanya memiliki dua anggota. Kekurangan yang terjadi dari k-way bisa disebabkan dari penentuan jumlah iterasi pada K-Means yang belum mencapai konvergen (pada uji coba digunakan iterasi = 100). 5. Simpulan Metode Hypergraph Partitioning (FM dan k-way) terbukti dapat digunakan untuk memperoleh kelompok kata dalam identifikasi topik. Hasil uji coba terkait relevansi kata – kata pendukung topik dengan topik yang terdaftar pada data set menunjukkan bahwa identifikasi dengan k-way lebih baik dibandingkan dengan FM. Proses FM yang berusaha memaksakan adanya keseimbangan antar partisi yaitu banyaknya kata – kata yang berjumlah relatif sama pada hasil subgraph mempengaruhi rendahnya relevansi identifikasi topik. 6. Daftar Pustaka [1] Andrews, P. 2004. Semantic Topic Extraction and Segmentation for Efficient Document Visualization. Tesis Tidak Diterbitkan. Lausanne-Swiss: School of Computer & Communication Sciences, Swiss Federal Institute of Technology. [2] Bisseling, R. 2008. Mondriaan for Sparse Matrix Partitioning. (Online). (http://www.staff.science.uu.nl/~bisse101/Mondriaan, diakses 26 Agustus 2009). [3] Caldwell, A. Kahng, A.B. dan Markov, I. 2006. MLPart: High-Performance Min-Cut Bi-sector. (Online). (http://vlsicad.ucsd.edu/, diakses 26 Agustus 2009). [4] Catalyurek, U.V. 2009. PaToH - Partitioning Tools for Hypergraph. (Online). (http://bmi.osu.edu/~umit/software.html, diakses 26 Agustus 2009). [5] Clifton, C., Cooley, R., dan Rennie, J. 2004. TopCat: Data Mining for Topic Identification in a Text Corpus. IEEE Trans. on Knowledge & Data Engineering (TKDE), 16(8): 949-964. [6] D’hondt, J., Verhaegen, P.A., Vertommen, J., Cattrysse, D. dan Duflou, J.R. 2011. Topic Identification based on Document Coherence and Spectral Analysis. Infor-mation Sciences, 181(18): 3783 –3797. [7] Fiduccia, C.M. dan Mattheyses, R.M. 1982. A Linear-time Heuristic for Improving Network Partitions. Proc. of the 19th Design Automation Conference (DCA) 1982, Piscataway - USA, hal: 175-181. [8] Hettich, S. dan Bay, S.D. 1999. The UCI KDD Archive. (Online). (http://kdd.ics.uci.edu/, diakses 26 Agustus 2009). [9] Karypis, G. 2007. hMETIS - Hypergraph and Circuit Partitioning. (Online). (http://glaros.dtc.umn.edu, diakses 26 Agustus 2009). [10] Luxburg, U. 2006. A Tutorial on Spectral Clustering. Statistics and Computing, 17(4): 395 – 416. [11] Andrews, P. 2004. Semantic Topic Extraction and Segmentation for Efficient Document Visualization. Tesis Tidak Diterbitkan. Lausanne-Swiss: School of Computer & Communication Sciences, Swiss Federal Institute of Technology. [12] Manning, C.D., Raghavan, P. dan Schütze, H. 2008. Introduction to Information Retrieval. Cambridge University Press. [13] Purwitasari, D., Okazaki, Y. dan Watanabe, K. 2009. Adaptive Content-based Navigation Generating System: Data Mining on Unorganized Multi Web Resources. Internetworking Indonesia Journal (IIJ), 1(2): 37–44. [14] Qu, C., Li, Y., Zhu, J., Huang, P., Yuan, R., dan Hu, R. 2008. Term Weighting Evaluation in Bipartite Partitioning for Text Clustering. Proc. of the 4th Asia Information Retrieval Conf. on Information Retrieval Tech., HarbinChina, hal: 393-400. [15] Salton, G. dan Buckley, C. 1988. Term-Weighting Approaches in Automatic Text Retrieval. Information Processing and Management, 24(5), 513-523. [16] Trifunovic, A. 2006. Parallel Hypergraph Partitioning Software. (Online). (http://www.doc.ic.ac.uk/~at701/parkway, diakses 26 Agustus 2009). [17] Wu, F., Han, YH., dan Zhuang, YT. 2010. Multiple Hypergraph clustering of Web Images by Mining Word2Image Correlations. Journal of Computer Science and Technology, 25(4): 750-760.