Minggu, 26 Desember 2010

NLP (Natural Language Programming)







Pendahuluan
Bahasa sebagai bagian yang penting dari kehidupan manusia, dalam bentuk tulis dapat merupakan catatan dari pengetahuan yang didapat oleh umat manusia dari satu generasi ke generasi berikutnya sedangkan dalam bentuk lisan merupakan sarana komunikasi antar individu dalam suatu masyarakat. Tujuan dalam bidang Natural Language ini adalah melakukan proses pembuatan model komputasi dari bahasa, sehingga dapat terjadi suatu interaksi antara manusia dengan komputer dengan perantaraan bahasa alami. Model komputasi ini dapat berguna untuk keperluan ilmiah misalnya meneliti sifat-sifat dari suatu bentuk bahasa alami maupun untuk keperluan sehari-hari dalam hal ini memudahkan komunikasi antara manusia dengan komputer.
Sebuah Natural Language System harus memperhatikan pengetahuan terhadap bahasa itu sendiri, baik dari segi kata yang digunakan, bagaimana kata - kata tersebut digabung untuk menghasilkan suatu kalimat, apa arti sebuah kata, apa fungsi sebuah kata dalam sebuah kalimat dan sebagainya. Akan tetapi kita juga harus mempertimbangkan ada satu hal lagi yang sangat berperan dalam bahasa, yaitu kemampuan manusia untuk mengerti dan kemampuan untuk itu didapat dari pengetahuan yang didapat secara terus menerus sewaktu hidup. Sebagai contoh dalam suatu percakapan, seseorang mungkin dapat menjawab suatu pertanyaan atau ikut dalam suatu percakapan dengan tidak hanya berdasar pada kemampuan berbahasa tapi juga harus tahu misalnya kata istilah yang umum digunakan dalam kelompok percakapan itu atau bahkan harus tahu konteks dari percakapan itu sendiri.

Bidang Pengetahuan Dalam Natural Language
Secara singkat pengolahan bahasa alami (Natural Language Processing) mengenal beberapa tingkat pengolahan yaitu :
Dibawah ini dijelaskan bidang-bidang pengetahuan yang berhubungan dengan Natural Language Processing :
1.      Fonetik dan fonologi : berhubungan dengan suara yang menghasilkan kata yang dapat dikenali. Bidang ini menjadi penting dalam proses aplikasi yang memakai metoda speech based system.

2.      Morfologi : yaitu pengetahuan tentang kata dan bentuknya dimanfaatkn untuk membedakan satu kata dengan lainnya. Pada tingkat ini juga dapat dipisahkan antara kata dan elemen lain seperti tanda baca. Sebagai contoh kata going :
going (word)
go (root)
ing (suffix)
kata understand :
under(prefix)
stand(root)

3.      Sintaksis : yaitu pemahaman tentang urutan kata dalam pembentukan kalimat dan hubungan antar kata tersebut dalam proses perubahan bentuk dari kalimat menjadi bentuk yang sistematis. Meliputi proses pengaturan tata letak suatu kata dalam kalimat akan membentuk kalimat yang dapat dikenali. Selain itu dapat pula dikenali bagian - bagian kalimat dalam suatu kalimat yang lebih besar. Sebagai contoh kalimat S dibentuk dari noun phrase (NP) dan verb phrase (VP)
S -> NP,VP
Dan berikutnya :
NP -> DET,N
VP -> V,NP
NP -> N

4.      Semantik : yaitu pemetaan bentuk struktur sintaksis dengan memanfaatkan tiap kata ke dalam bentuk yang lebih mendasar dan tidak tergantung struktur kalimat. Semantik mempelajari arti suatu kata dan bagaimana dari arti kata - arti kata tersebut membentuk suatu arti dari kalimat yang utuh. Dalam tingkatan ini belum tercakup konteks dari kalimat tersebut.

5.      Pragmatik : pengetahuan pada tingkatan ini berkaitan dengan masing – masing konteks yang berbeda tergantung pada situasi dan tujuan pembuatan sistem.

6.      Discourse Knowledge : melakukan pengenalan apakah suatu kalimat yang sudah dibaca dan dikenali sebelumnya akan mempengaruhi arti dari kalimat selanjutnya. Informasi ini penting diketahui untuk melakukan pengolahan arti terhadap kata ganti orang dan untuk mengartikan aspek sementara dari informasi.

7.      World Knowledge : mencakup arti sebuah kata secara umum dan apakah ada arti khusus bagi suatu kata dalam suatu percakapan dengan konteks tertentu.

Definisi ini tidaklah bersifat kaku, dan untuk setiap bentuk bahasa alami yang ada biasanya ada pendefinisian lagi yang lebih spesifik sesuai dengan karakter bahasa tersebut. Pada beberapa masalah mungkin hanya mengambil beberapa dari pendekatan tersebut bahkan mungkin ada yang melakukan tambahan proses sesuai dengan karakter dari bahasa yang digunakan dan sistem yang dibentuk.
Selain yang sudah disebutkan di atas masih ada lagi satu masalah yang cukup menantang dalam Natural Language yaitu ambiguitas atau makna ganda dari suatu kata atau kalimat. Dari satu masukan yang sama dapat menjadi beberapa arti yang berbeda dan masing - masing dapat bernilai benar tergantung pada keperluan pemakai. Hal ini dapat terjadi pada hampir semua tingkatan pendekatan di atas.

Aplikasi Dalam Bidang Natural Language
Jenis aplikasi yang bisa dibuat pada bidang bidang Natural Language adalah :
text - based application dan dialogue - based applications.

Text - based application mencakup segala macam aplikasi yang melakukan proses terhadap text tertulis seperti misalnya buku, berita di surat kabar, e-mail dan lain sebagainya. Contoh penggunaan dari text - based application ini adalah :
a.       mencari topik tertentu dari buku yang ada pada perpustakaan.
b.      mencari isi dari surat atau e-mail
c.       menterjemahkan dokumen dari satu bahasa ke bahasa yang lain.

Akan tetapi tidak semua system yang dapat melakukan hal - hal seperti di atas menggunakan pendekatan Natural Language, karena seperti misalnya contoh pencarian topik dari suatu buku di perpustakaan dapat didekati dengan sistem database yang cukup lengkap. Tetapi kalau dihadapkan pada pertanyaan yang cukup kompleks dengan bahasa alami yang ada maka akan dirasakan bahwa pendekatan dengan Natural Language lebih efisien. Salah satu bentuk yang cukup menarik adalah apabila sistem diminta untuk mencari isi dari suatu berita atau artikel, untuk hal ini pendekatan yang dilakukan hampir serupa dengan pendekatan yang dilakukan manusia apabila menghadapi suatu tes reading and comprehension.
Bentuk berikutnya adalah bentuk dialogue - based application. Idealnya pedekatan ini melibatkan bahasa lisan atau pengenalan suara, akan tetapi bidang ini juga memasukkan interaksi dengan cara memasukkan teks pertanyaan melalui keyboard. Aplikasi yang sering ditemui untuk bidang ini adalah :
a.       sistem tanya jawab, dimana Natural Language digunakan dalam mendapatkan informasi dari suatu database.
b.      sistem otomatis pelayanan melalui telepon
c.       control suara pada peralatan elektronik
d.      sistem problem - solving yang membantu untuk melakukan penyelesaian masalah yang umum dihadapi dalam suatu pekerjaan.

Sebelumnya perlu diberikan batasan bahwa untuk sistem yang dapat melakukan interaksi melalui bahasa lisan ada bagian speech recognition yang merupakan bagian terpisah dari Natural Language.

Gramatika
Grammar suatu bahasa dapat dilihat sebagai suatu aturan yang menentukan apakah sutau kumpulan kata dapat diterima sebagai kalimat oleh bahasa tersebut. Grammar dari Chomsky Hierarchy yaitu Context Free Grammar memiliki sifat lebih mudah dipahami perilakunya dan pengolahannya serta masih dapat diolah dalam bentuk program yang terstruktur.
Sebuah bahasa L dapat dijelaskan sebagai set dari string, dimana string dibentuk dari bagian terkecil yang disebut symbol. Kelompok tertentu v dari symbol biasa dikenal sebagai alfabet atau perbendaharaan kata. Sebuah kalimat yang dapat dikenali dibentuk dengan berdasarkan aturan - aturan yang ada yang biasa disebut grammar.
Sebuah grammar G dapat dibentuk dari 4 tupleyaitu : simbol non terminal, simbol terminal, simbol awal dan aturan penulisan atau (rules). Definisinya adalah :
·         G = (vn, vt, s, p)
Sebagai contoh dapat kita lihat dari grammar G sederhana berikut ini :
DictJenis = {Kata_Benda, Kata_Kerja, Frasa_Benda, Frasa_Kerja, Keterangan}
DictKata = {Orang, Makan, Telur, Ayam, Terbang, Tinggi}

dengan aturan :
s  Frasa_Benda Frasa_Kerja
Frasa_Benda  Kata_Benda Kata_Benda
Frasa_Kerja  Kata_Kerja Keterangan
Kata_Benda  {Orang, Telur, Ayam}
Kata_Kerja  {Makan, Terbang}
Keterangan  {Tinggi}

Dari grammar G dapat dibentuk kalimat :
Orang Makan Ayam
Ayam Terbang Tinggi
Orang Terbang Tinggi
Ayam Makan Orang

semua kalimat tersebut apabila dicari pembentukannya melalui grammar G dapat dikatakan benar akan tetapi harus diingat bahwa kalimat dengan grammar yang benar hanya berarti benar secara struktural bukan berarti selalu benar dalam makna. Seperti kalimat ketiga yang hanya benar apabila berada dalam konteks ‘orang memakai alat’ misalnya pesawat terbang. Sedangkan kalimat keempat malah sama sekali tidak mungkin dapat dimengerti maknanya, selain hanya akan menimbulkan tanda tanya bagi orang yang membaca. Dari grammar kita dapat mempelajari bahasa dari segi struktur dan bukan dari segi makna bahasa itu sendiri.

Chomsky Hierarchy Of Generative Grammar
Noam Chomsky menyusun grammar dalam urutan yang dia sebut tipe 0, 1, 2 dan 3. Tipe 0 adalah bentuk yang paling bebas dan paling sulit dikenali, biasa disebut recursively enumerable set, untuk mengenali bentuk ini biasa dipakai Turing Machine. Berikutnya adalah tipe 1 yang disebut context sensitive grammar. Type 2 dari grammar yaitu context free grammar dinyatakan dengan aturan umum yaitu : <symbol1>  <symbol1>…<symbolk> dengan k  1 dan bagian kiri dari rule adalah single non terminal symbol. Grammar tipe 3 bernama finite state atau regular grammar, tipe ini paling sederhana dan mudah dipahami sifatnya.
Secara umum dikatakan bahwa pemakaian context free grammar secara murni (tanpa tambahan metoda tertentu) adalah tidak cukup untuk pengolahan bahasa alami. Akan tetapi karena bentuk context free dan regular grammar tersebut yang paling dipahami perilaku dan pengolahannya, maka beberapa cara telah dikembangkan untuk dapat melakukan pengolahan bahasa alami dengan bentuk grammar tersebut.

Parsing
Parsing adalah suatu proses menganalisa suatu kumpulan kata dengan memisahkan kata tersebut dan mementukan struktur sintaksis dari tiap kata tersebut. Gramatika yang dipakai juga sangat berkaitan dengan proses parsing apa yang digunakan. Pada Bottom-Up Parsing gramatika yang dipakai akan lebih banyak bercabang ke arah simbol non-terminal. Hal lain yang juga berkaitan erat dengan proses parsing adalah kamus atau leksikon yang digunakan. Dalam leksikon disimpan daftar kata yang dapat dikenali sebagai simbol terminal dalam grammar dan informasi yang diperlukan untuk tiap kata tersebut untuk proses parsing yang bersangkutan.
Dari pendekatan dalam mengenali struktur suatu kalimat, proses parsing dapat dibagi menjadi dua bagian besar yaitu Top Down parsing dan Bottom Up parsing. Top Down parser memulai pemeriksaan dari simbol awal s dan mencoba untuk mencari bentuk simbol terminal berikutnya yang sesuai dengan jenis kata dari kalimat masukan.
Cara sebaliknya diterapkan untuk Bottom Up parser yaitu mencari dari simbol – simbol terminal menuju ke arah pembentukan simbol awal s.

Semantik
Semantic analyzer mempunyai himpunan rule dalam basis pengetahuan untuk menginterprestasikan sebuah kalimat.
Rule 1 :
IF determiner adalah bagian pertama dalam kalimat dan diikuti oleh noun THEN noun tersebut dianggap sebagai subyek.
Rule 2 :
IF verb diikuti subyek THEN verb menjelaskan tentang apa yang dikerjakan oleh subyek.
Rule 3 :
IF noun diikuti subyek dan verb THEN noun tersebut dianggap sebagai obyek
Rule 4 :
IF kalimat mempunyai bentuk subyek, ver, obyek THEN subyek mengerjakan (verb) yang ada hubungannya dengan obyek.

Kalimat 'A plane flew home' mentrigger rule 1 yang mengidentifikasi plane sebagai subyek, lalu rule 2 menjelaskan bahwa plan flew. Rule 3 dan 4 mengidentifikasikan home sebagai obyek.
Natural Language Processing dapat dipakai sebagai front (bagian depan) pada sistem AI, dimana data dilewatkan secara verbal.

Pendekatan yang dipakai adalah pendekatan Semantic Grammar yang dipadukan dengan Dictionary tambahan dan Template Grammar.
Semantic Grammar sebagai grammar utama dipilih dengan alasan dalam grammar ini sudah terkandung unsur semantic yang dapat membantu pembentukan semantic dari kalimat. Selain itu karena format dari kalimat sudah dibatasi pada bentuk tertentu (representasi data tabel) maka grammar ini dapat diandalkan terutama untuk bentuk - bentuk tanya dan perintah.
Mendefinisikan semantic dan arti sebenarnya adalah proses yang sulit karena hal ini tergantung pada maksud dalam kalimat dan juga adanya kemungkinan arti lain dalam kalimat. Seperti misalnya ‘makan hati ‘dapat diartikan makan dengan lauk hati atau perasaan sedih yang ada pada hati seseorang, tergantung pada letaknya dalam kalimat. Apabila terdapat pada kalimat; karena baru mendapat rejeki anak itu makan hati di restoran; maka artinya adalah yang pertama tetapi jika pada kalimat; dia makan hati karena ditinggal pergi pacarnya; berarti yang kedua. Pada bagian ini akan diterangkan beberapa pendekatan semantic yang biasa dilakukan pada suatu Natural Language system.

Semantic Grammar
Pada Semantik Grammar, dipakai sekumpulan rule yang bukan hanya bersifat sintaksis tapi juga bersifat semantis dan pragmatis. Hasil dari proses parsing dengan menggunakan grammar tersebut adalah langsung berupa representasi semantis dari kalimat yang diolah. Dapat dilihat pada contoh dengan domainsistem jadwal penerbangan pesawat udara :
the flight to Chicago
the 8 o’clock flight
flight 457 to Chicago

Grammar untuk sistem ini pada umumnya dikenali sebagai :
NP  DET CNP                                 (the flight)
CNP  N                                              (flight)
CNP  CNP PP                                  (flight to Chicago)
CNP  PRE-MOD CNP                   (8 o’clock flight)
NP  N NUMB                                   (flight 457)

Tetapi perlu diingat bahwa grammar tersebut masih bersifat umum, masih memungkinkan terjadi kesalahan karena luasnya jangkauan grammar seperti :
the city to Chicago
the 8 o’clock city

Untuk itu maka dilakukan pembatasan dengan jalan memberikan kategori leksikal baru pada suatu kata yang berdasar pada keperluan semantis. Dapat kita gambarkan bahwa pada :
NP  DET CNP (the flight)                                             diubah menjadi
FLIGHT-NP  DET FLIGHT-CNP
CNP  N (flight)                                                                diubah menjadi
FLIGHT-CNP  FLIGHT-N

Dengan demikian kita sudah melakukan pembatasan bahwa yang mungkin dibentuk untuk kata benda dari sistem adalah ‘the flight’ dan ‘flight’ tidak untuk yang lain. Perlu diingat perubahan ini juga akan merubah kata yang lain misal ‘Chicago’ dari NP menjadi misalnya CITY-NAME. Secara lengkap maka grammar di atas tadi berubah menjadi :
FLIGHT-NP  DET FLIGHT-CNP
FLIGHT-CNP  FLIGHT-N
FLIGHT-CNP  FLIGHT-CNP FLIGHT-DEST
FLIGHT-CNP  FLIGHT-CNP FLIGHT-SOURCE
FLIGHT-CNP  FLIGHT-N FLIGHT-PART
FLIGHT-CNP  FLIGHT-PRE-MOD FLIGHT-CNP
FLIGHT-NP  FLIGHT-N NUMB
CITY-NP  CITY-NAME
CITY-NP  DET CITY-CNP
CITY-CNP  CITY-N
CITY-CNP  CITY-MOD CITY-CNP CITY-MOD-ARG

Dari grammar dasar di atas dapat dibentuk grammar tambahan misalnya untuk pertanyaan
TIME-QUERY  When does FLIGHT-CNP (When does flight to Chicago)

Dengan pendekatan ini, interpretasi dari rule yang bersangkutan menjadi lebih mudah karena sebagian besar dari informasi semantic yang diperlukan dapat dilihat dari rule yang digunakan. Kekurangan dari pendekatan ini adalah domainsistem yang tidak begitu besar, dimana domain yang baru akan memerlukan aturan yang baru yang sesuai. Selain itu terjadi pembengkakan jumlah rule yang diperlukan, hal ini karena dengan langsung mengacu ke semantik maka banyak generalisasi linguistik yang harus diperinci lebih jauh. Seperti pada contoh di atas kita harus memisahkan antara NP untuk ‘flight’ dan ‘Chicago’ menjadi FLIGHT-NP dan CITY-NAME.

Konsep Natural Language
Secara konsep, pemrograman bisa. dikaitkan (dianalogikan) dengan disiplin rekayasa dan bahasa (alami). Kaitan dengan bahasa ini karena:
§  Konsep-konsep pemrograman adalah konsep-konsep bahasa pemrograman
§  Konsep-konsep bahasa pemrograman dalam beberapa hal mirip dengan konsep-konsep bahasa Alami. Yang dimaksud bahasa-alami adalah bahasa yang diucapkan sehari-hari antar manusia, yang tidak perlu melibatkan komputer; seperti bahasa Indonesia, bahasa Inggris, dan sebagainya. Berbekal pemahaman ini kita lihat hal berikut.
§  Suatu kalimat dalam bahasa alami beranalogi dengan sebuah peryataan (statement) di bahasa pemrograman.
§  Suatu kalimat di bahasa alami diakhiri dengan tandabaca. Sebuah statement di bahasa pemrograman juga diakhiri dengan tandabaca.

Tabulasi dibawah ini memperlihatkan kemiripan bahasa pemrograman dengan bahasa alami. Tabulasi berisi entri-entri yang dimulai dengan satuan yang lebih besar ke satuan yang lebih kecil. Kita mempelajari implementasi konsep-konsep pemrograman urutan yang hampir sama.

Analogi (perbandingan) bahasa alami vs bahasa pemrograman
Bahasa Alami
Bahasa Pemrograman
Sebuah paragraf terdiri atas satu atau lebih kalimat.
Sebuah blok terdiri atas satu atau lebih statement.
Sebuah kalimat diakhiri oleh tanda baca.      
Sebuah statement diakhiri oleh tanda baca.
Sebuah kalimat bisa terdiri atas kata benda abstrak, kata kerja, kata keadayn dan kata benda nyata.   
Sebuah statement bisa terdiri atas ipe, operasi, nilai, dan objek. (4 konsep ini akan dibahas lebih jauh)

Penerapan NLP Pada Lirik Musik

Pengenalan
Ada sejumlah suara pada musik mempunyai lirik. Encode dari lirik merupakan bagian penting dari arti sebuah lagu, oleh karena  itu pelengkap dari analisis yang berupa akustik dan metadata kultural menjadi fundamental untuk pengembangan pengambilan sistem dari informasi musik yang sempurna. Lebih jauh lagi, sebuah analisis tekstual dari sebuah lagu dapat membangkitkan kebenaran dasar yang dapat dipakai untuk hasil validasi dari metode akustik yang murni. Hasil persiapan pada indentifikasi bahasa, ekstraksi struktur, pengkategorian dan persamaan pencarian menyarankan bahwa banyak sekali keuntungan yang dapat diraih dari analisis lirik.
Penerapan Pengolahan Bahasa Alami untuk analisis pada lirik musik ini terlihat dari banyak lagu-lagu populer memiliki lirik, yang relatif kita dapat dengan mudah mendapatkannya pada situs on-line. Bagian dari semantik sebuah karya musik tertinggi secara ekslusif pada liriknya. Analisis mereka melengkapi apa yang dapat dipelajari dalam kolaboratif, budaya atau akustik analisis. Seperti yang ditunjukkan oleh jumlah signifikan pada pencarian musik mengacu langsung pada lirik yaitu sekitar 28,9% dari query pencarian menggunakan fragmen lirik dan alamat 2,6% menjadi jalan cerita dari lagu. Juga, bagian yang relevan dari pencarian musik berhubungan dengan informasi yang dapat relatif mudah disimpulkan dari lirik, seperti kewarganegaraan 12,5% atau yang mempengaruhi (apakah lagu lucu, konyol, sedih) 2,4%.
Teknik NLP pada lirik musik ini dipakai pada persamaan antara teks, memperkuat alat navigasi sama juga seperti petunjuk untuk para artis bahkan pengindentifikasian plagiarisme. Tugas lain NLP, yaitu identifikasi bahasa, pendeteksi struktur atau pengategorian teks. Teknik NLP kadang-kadang dapat menjadi lebih akurat daripada rekanan audio mereka (pikirkan utuk contoh dari permasalahan pengindentifikasian bahasa dari lirik). Dengan demikian, informasi diambil dari lirik secara otomatis dapat digunakan sebagai sumber metadata yang berguba untuk pelatihan dan memvalidasi algoritma suara.



Percobaan
Hal ini relatif sederhana untuk mencari pada WWW. Terdapat banyak situs bebas dimana dapat mengunduh material ini, misalnya http://www.lyrics.com atau http://www.lyrics4u.com. Kami membuat percobaan pada empat tempat yang berbeda : pengenalan bahasa, penurunan struktur, penggolongan tematik dan kesamaan pencarian.

Pegenalan Bahasa
1. Algoritma
Kami telah menggunakan modul Perl. Ini tersedia pada http://cpan.org. Algoritma ini didasari pada algoritma identifikasi statistik-nya Ted Dunning. Untuk kualitas yang baik pada pengenalan, tidak hanya pada ukuran, tapi kualitas dari pelatihan teks juga berperan.

2. Pengindetifikasi Bahasa Lirik
Untuk evaluasi dari modul pengidentifikasian bahasa, kami telah memilih 500 lirik dari 5 buah bahasa yang berbeda: Spanyol, Italia, Prancis, German, dan Inggris. 92% dari pengidentifikasian adalah tepat. Jika lyric ditulis dalam lebih dari satu bahasa (contohnya Michelle dari The Beatles) atau terdapat onomatopoeic atau kata-kata yang tidak bermakna (seperti Jin-Go-Lo-Ba dari Santana), pengenalan biasanya gagal.

3. Pengidentifikasian judul bahasa
Ukuran dari suatu teks adalah suatu masalah pada pengidentifikasian bahasa dan sangat menyesatkan modul pengidentifikasian bahasa sampai 75% dari hasil yang tepat. Analisi lirik lebih mudah, atau setidaknya mereka memiliki judul, album, atau nama dari artis.

Pengambilan Struktur
Terdapat hubungan antara musik dengan struktur lirik. Selain musik, lirik juga dibagi dalam bagian yang sama yaitu:
Ø   Introduction / Intro : biasanya satu verse disusun oleh tiga atau empat frase yang dipakai untuk mengenalkan tema utama atau memberikan konteks kepada pendengar.
Ø   Verse: berhubungan dengan suatu bait puitis.
Ø   Chorus: bagian yang diulang-ulang (reff) pada suatu lagu.
Ø   Bridge: merupakan selingan yang menghubungkan dua bagian dari lagu itu.
Ø   Outro: ditempatkan pada akhir dari lirik dan cenderung menjadu kesimpulan dari tema utama.

Algoritma yang digunakan pada awalnya bekerja dengan lirik memiliki struktur yang dikenali dengan jelas (yang tidak selalu terjadi) dibagi ke dalam paragraf. Strategi ini didasarkan pada bobot semua paragraf dari hasil yang diberikan descriptor yang digunakan dan kemudian menandainya dengan label yang menjelaskannya.
Daftar descriptor termasuk :
·         Full length text
·         Paragraf dimana lirik dibagi secara eksplisit
·         Posisi absolut dan relatif dari setiap paragraf dalam lirik
·         Jumlah baris atau bait dari tiap paragraph
·         Kesamaan paragraf (diukur dengan jarak kosinus)
·         Persentasi dari seluruh lirik, contohnya persentasi dari chorus dibandingkan dengan persentasi bait

Algoritma ini memiliki tiga langkah yaitu :
1.      Ekstraksi deskriptor : teks dibagi dan dinormalisasi kedalam paragraph -paragraf. Digunakan modul Perl String Approx untuk mengkomputasi kesamaan antar paragraf. masalah diklasifikasikan dalam tiga tipe yang berbeda:
v  tipe 0 : paragraf-paragraf memiliki kemiripan ( diulang beberapa kali hingga ditemukan paragraf yang sama dengan memperluas batas kesamaannya )
v  tipe 1 : paragraf-paragraf berbeda sama sekali
v  tipe 2 : beberapa memiliki kesamaan dan beberapa tidak ( sering ditemui )

2.      Hipotesis Temporal tag : berperan memberikan sebuah solusi temporal pada suatu masalah. mengidentifikasi bagian yang paling tepat diidentifikasi dari suatu lirik seperti main chorus (bagian yang sering diulang) atau beberapa bait yang tidak memiliki bait lain yang sama.

3.      Final tagging : setiap unit dari lirik  tidak bersifat ambigu. Ini didasarkan pada suatu set standar aturan komposisional, contohnya sangat mungkin bahwa sebuah lagu dimulai dengan bait daripara chorus.

Dilakukan uji segmentasi algoritma terhadap 30 lirik, masing-masing 6 untuk setiap bahasa, yang telah disegmentasi secara manual sebelumnya. Algoritma ini mencapai akurasi 76,66% (unit disegmentasi dan diidentifikasi dengan tepat). Hasilnya ditunjukkan pada tabel 3.






Kategorisasi Tematik
            Tujuannya adalah untuk membangun sebuah classifier yang dapat mengklasifikasikan lirik kedalam 5 kategori yang unik, yaitu : Cinta, Kekerasan, Protes ( anti perang) , Rohani dan Drugs. Algoritma mengidentifikasikan kekerasan atau lirik eksplisit ,berguna  untuk membatasi akses anak dibawah umur.
Categorizer tematik yang digunakan adalah metode classifier probabilistik klasik Naive Bayes . Ini mengklasifikasikan sebuah instance baru dari dokumen D dari sebuah himpunan hingga C atau kelas-kelas predetermined. Diberikan sebuah set kata-kata W(D)={w1,w2 . . .wn}. Ini mengkomputasi probabilitas dari D untuk berada pada kategori C mengikuti  
dimana P(C) adalah probabilitas prior dari kategori C dan P(W|C) adalah probabilitas kondisional untuk kata W pada kategori C. Berdasarkan pada data yang diobservasi pada setiap eksperimen, probabilitas dari sebuah himpunan kata berada pada kategori tertentu dan probabilitas dari kategori dapat dihitung. Dengan informasi tersebut, kategori yang memaksimalkan nilai dari ekspresi berikut akan terpilih





Algoritma ini diimplementasikan menggunakan mudul Perl AI::Categorizer.

Definisi dari kategori training awal untuk kategorisasi tematik sangat subjektif, namun menghasilkan tugas penentuan. Bahkan jika kata atau frasa sangat cocok untuk satu kategori (contoh ”God” atau ”Jesus”) ada lebih banyak lagi yang tergantung pada konteks. Contohnya frasa ”you are my love” cocok untuk hampir semua kategori, namun kadang-kadang sulit untuk membuatnya tidak ambigu dan menentukan kategori untuk sebuah lirik.

Pencarian Kesamaan
            Untuk mendapatkan ukuran kesamaan, digunakan standar jarak kosinus yang dimulai dengan menghitung sebuah vektor untuk setiap dokumen seperti berikut v(D) = [w1, w2 . . .wn] where the wj didapat dari pengukuran klasik Inverse Document Frequency :




dimana N adalah jumlah total dokumen, nj adalah jumlah dokumen yang mengandung term j dan fij adalah frekuensi dari term j pada dokumen ke-i.

Jarak kosinus dnq antara vektor n dan q dnq adalah :




mendefinisikan sebuah vektor untuk setiap dokumen melalui penggabungan jarak antara dokumen q dan semua dokumen pada bahan





dilakukan sebuah tes yang dibuat untuk versi-versi dari lagu yg sama. Lagu dari ‘Eagles’ ”Hotel California” adalah sebuah lagu dengan lirik yang terdefinisi dengan baik. (Eagles’ hanya membuat satu versi dari lagu tersebut) dan kami mendapatkan relevansi 98% dengan 4 versi dari band yang berbeda. 

            Kemudian  mencoba menemukan kesamaan antara lagu dari Queen ”I want to break free” dan sebuah database dari 5000 lirik. Hasil yang didapatkan yaitu memiliki relevansi kesamaan 0,62 , yang dapat dijelaskan dengan fakta bahwa banyak lagu yang memiliki kata seperti ”break” atau ”free”.
Dengan pengukuran ini dapat membandingkan dokumen dan membuat dua tipe tes yang berbeda untuk menemukan kesamaan antara lagu. Batasan diantara cover version dan plagiarisme lebih sempit pada lirik daripada audio. Ini adalah fakta utama untuk mendapatkan hasil yang tidak terlalu baik diantara lirik dari lagu yang berbeda. Namun dapat bekerja dengan baik untuk versi dari lagu yang sama walaupun tidak terdapat versi official-nya. Ini dapat menjadi suatu teknologi yang berguna bagi entitas manajemen yang tepat untuk meregisterkan audio dan lirik.

Kesimpulan
  • Encode lyrics merupakan bagian penting dari semantik sebuah lagu. Hasil awal pada identifikasi bahasa, ekstrasi struktur, kategorisasi, dan pencarian kesamaan menunjukkan bahwa banyak keuntungan yang bisa diperoleh dari analisis liriknya.
  • Ada beberapa cara dalam mengakses isi musik antara lain pencarian dengan data editorial seperti artis atau nama lagu, dan menavigasi dalam taksonomi keturunan berasal dari manusia atau mengikuti rekomendasi yang berasal dari kolaborasi system penyaringan.   
  • Lirik mudah didapat dari sejumlah situs on-line. Biasanya pencarian musik berhubungan dengan informasi yang dapat dengan mudah disimpulkan dari sebuah lirik.
  • Tehnik NLP lebih akurat karena mengidentifikasi suatu lirik dalam 4area: identifikasi bahasa, ekstraksi struktur, dan pencarian kesamaan.
·        Meskipun hasilnya menunjukkan beberapa teknik seperti ekstraksi struktur atau kategorisasi tematik masih dapat dikembangkan, performansinya beserta ketersediaan lirik yang dapat diperoleh dari tempat penyimpanan online, mendukung Natural Language Processing akan semakin digunakan.  Lirik dapat menjadi pelengkap metadata akustik dan kultural. Dimasa depan, teknik Natural Language Processing dapat digunakan untuk menciptakan extensive ground truth metadata untuk evaluasi metode pure audio content-based.

Sumber :