Tuesday, 10.17.2017
My site
Site menu
Our poll
Rate my site
Total of answers: 4
Statistics

Total online: 1
Guests: 1
Users: 0
Login form
Main » 2012 » July » 30 » PERSADA STEMMER
10:06 PM
PERSADA STEMMER

PERSADA STEMMER

(PENGURAI KATA BERIMBUHAN UNTUK BAHASA INDONESIA)

 

PENDAHULUAN

Stemmer merupakan aplikasi pemotongan imbuhan pada kata berimbuhan (awalan, akhiran, sisipan, kombinasi) yang dijalankan dengan algoritma tertentu.
 
Algoritma yang pertama dikembangkan adalah oleh Martin Porter, yang mengolah pemotongan imbuhan dalam bahasa Inggris. Pemotongan imbuhan lebih banyak digunakan pada aplikasi penelusuran data seperti pada mesin pencari (misalnya google, yahoo, bing, dan lainnya).
 
Program ini difokuskan penilaiannya  pada proses stemming dalam bahasa indonesia, adapun fitur-fitur lain yang ada dalam program ini merupakan nilai lebih dari dari program ini.
 
 
LATAR BELAKANG
 
Algoritma Persada Stemmer di buat berdasarkan ketidakpuasan akan hasil software translator bahasa berbayar, dimana apabila suatu kata dasar (root) jika ditambahkan imbuhan maka software tersebut tidak menerjemahkannya.
Masalah tersebut diteliti dengan melihat langsung database kamusnya, disana masih terdapat database yang masih menggunakan kata berimbuhan baik menggunakan kata awalan me- dan pe- serta variasi-variasinya. dengan kata lain untuk menterjemahkan suatu kata ternyata masih manual alias menginput data satu-persatu dan tidak menggunakan algoritma stemming secara keseluruhan.
Maka itulah sebabnya software-software translator yang ada dipasaran berukuran besar karena tidak menggunakan algoritma stemming yang dibuat secara serius.    
 
 
VISI PEMBUATAN
 
Algotitma Persada stemmer dibuat untuk menjadi dasar suatu turunan aplikasi selanjutnya, dalam publikasi kali ini pembuat menerapkannya dalam membuat suatu kamus bahasa indonesia-daerah maupun bahasa asing.
Algoritma ini bisa juga diterapkannya untuk membuat aplikasi Answering Question System (Program pencari jawaban/defenisi)
Dan mungkin suatu hari bisa membuat search engine web dengan menggunakan algoritma ini.
 
Note : Persada Stemmer disingkat menjadi PS
 
TAHAPAN ALGORITMA PERSADA STEMMER (PS)
  1. Tokenizing data bagian kalimat Html
  2. Tokenizing data dengan karakter spasi
  3. Stemming
  4. Rebuild (penyatuan kembali) dari Tokenizing tersebut diatas
Tokenizing
 
Proses tokenizing adalah proses pemotongan string masukan berdasarkan tiap kata yang menyusunnya.
 
Pada prinsipnya proses ini adalah memisahkan setiap kata yang menyusun suatu dokumen. Pada umumnnya setiap kata terindentifikasi atau terpisahkan dengan kata yang lain oleh karakter spasi, sehingga proses tokenizing mengandalkan karakter spasi pada dokumen untuk melakukan pemisahan kata.
 
Stemming
 
Proses stemming adalah proses untuk mencari kata dasar (root) dari kata berimbuhan
 
dibawah ini  merupakan PREFIX(Awalan) dan SUFFIX(akhiran) yang didukung oleh algortima PS

PREFIX YANG DIDUKUNG

PREFIX LEVEL 1
  ke = {L1}kesatu > [ke]satu
  kan = {butuh awalan level selanjutnya}
  ku = {L1}kulihat, kudengar, kurasa > [ku]lihat, [ku]dengar, [ku]rasa
  mem = {L1}membaca,| memainkan, memakai  > [mem]baca, [me]main[kan], [mem]pakai
  di = {L1}dibaca > [di]baca
  se =  
 
PREFIX LEVEL 2
  ke = {L1+L2}sekedalaman > [se-ke]dalam[an]
  ku = {L1+L2}kankubaca > [kan-ku]baca
  di = {L1+L2}kudirayu > [ku-di]rayu
  se =
{L1+L2}diseimbangkan > [di-se]imbang[kan]
{L2}semangkok, sesendok >[se]mangkok, [se]sendok
  mem = {L1+L2}kumembacakan > [ku-mem]baca[kan]
  ter = {L1+L2}kuterhina > [ku-ter]hina
  tidak = {L1+L2}ketidaktahuan > [ke-tidak]tahu[an]
  ber = {L1} bersama > [ber]sama
 
 
PREFIX LEVEL 3
  menge = {L3}mengesahkan, mengedarkan > [menge]sah[kan], [meng]edar[kan]
  meng = {L3}mengurangi , menggantung, mengambil > [meng]kurang[i] , [meng]gantung, [meng]ambil
  meny = {L3}menyakiti > [meny]sakit[i]
  men = {L3}menilai, menikah, menikam > [me]nilai, [me]nikah, [men]tikam
  me = {L3}melukis >[me]lukis
  pem = {L3}pembaca, pemain, pamakai > [pem]baca, [pe]main, [pem]pakai
  penge = {L3}pengetahuan > [penge]tahu[an], {L1+L3}sepengetahuan > [se-penge]tahu[an]
  peng = {L3}pengguna > [peng]guna
  peny = {L3}penyakit > [peny]sakit
  pen = {L3}penari, pening > [pen]tari, pening
  per =
{L3}perlihatkan, perenang > [per]lihat[kan], [pe]renang
{L1+L3}memperlihatkan, dipercaya, > [mem-per]lihat[kan], [di]percaya
  pel = {L3}pelajar >[pel]ajar
  pe = {L3}pepohonan > [pe]pohon[an]
  ter = {L3}terbaca >[ter]baca
  te = {L3}tetamu > [te]tamu
  tidak = {jika 'tidak' level 2 ada, maka dilewati}
  ku = {L1+L3} dikubacakan > [di-ku]baca[kan]
  ber = {L3}bersatu, berenang > [ber]satu, [be]renang
  bel = {L3}belajar >[bel]ajar
  be = {L3}bebatuan > [be]batu[an]
 
PREFIX LEVEL 4
  per = {L3+L4} berpertahankan > [ber-per]tahan[kan]
  se =
{L3+L4}berseimbangan > [ber-se]imbang[an]
{L1+L3+L4}kuperseimbangkan > [ku-per-se]imbang[kan],
{L1+L2+L3+L4}ketidakkeseimbangan > [ke-tidak-ke-se]imbang[an]
  si = {L3+L4} bersikeras > [ber-si]keras
  ke = {L3+L4} perkebutuhan > perkebutuhan > [per-ke]butuh[an]
 
PREFIX LEVEL 5
  anti = {L5}antivirus > [anti]virus
  dwi = {L5}dwibahasa > [dwi]bahasa
  pra = {L5}prasejarah > [pra]sejarah
  trans = {L5}transform > [trans]form
  inter = {L5}interlokal > [inter]lokal
 
PREFIX LEVEL BAHASA SLANK
  m = mukul,  meluk > [m]pukul,  [me]peluk
  nge = ngerokin > [ng]kerok[in]
  ng = ngambilin >[ng]ambil[in]
  ny = nyolong > [ny]colong,
  n = nulis > [n]tulis
 
Dalam tahap penyempurnaan
Tabel Kombinasi Level Awalan+Awalan Yang Tidak Diijinkan
  ke+ke = {L1+L2}
  ku+ku = {L1+L2}
  se+se = {L1+L2}
  mem+ke = {L1+L2}
  mem+mem = {L1+L2}
 

SUFFIX YANG DIDUKUNG

SUFFIX LEVEL 5
 
kah =
{L5}bagaimanakah > bagaimana[kah]
{L4+L5}bagaimanapunkah > bagaimana[pun-kah]
{L1+L2+L3+L4+L5} mempertanyakannyalahpunkah > [mem-per]tanya[kan-nya-lah-pun-kah]
  lah =
{L5} biarlah > biar[lah]
{L2+L3}cepatkanlah, mainkanlah > cepat[kan-lah], main[kan-lah]
  pun =
{L5} bagaimanapun > bagaimana[pun]
{L4+L5}bagaimanapunlah > bagaimana[pun-lah]
{L4+L5}bagaimanapunkah > bagaimana[pun-kah]
{L3+L4+L5}bagaimanalahpunkah > bagaimana[lah-pun-kah]
{L3+L4+L5}bagaimanakahlahpun > bagaimana[kah-lah-pun]
{L1+L2+L3+:L4}menemanikanmupun >[men]teman[i-kan-mu-pun]
{L1+L2+L3+L4+L5}mempertanyaikannyalahpun > [mem-per]tanya[i-kan-nya-lah-pun]
 
SUFFIX LEVEL 4
  kah = {jika 'kah' level 5 ada, maka dilewati}
  lah = {jika 'lah' level 5 ada, maka dilewati}
  pun = {jika 'pun' level 5 ada, maka dilewati}
  nya = {jika 'nya' level 5 ada, maka dilewati}
 
SUFFIX LEVEL 3
  kah = {jika 'kah' level 4 ada, maka dilewati}
lah = {jika 'lah' level 4 ada, maka dilewati}
nya = {L3}bajunya > baju[nya]
kan = {L3}biarkan > biar[kan]
an = {L3} ucapan > ucap[an]
in = {L3}biarin > biar[in]
ku = {L3}bajuku > baju[ku]
    {L2+L3} minumanku > minum[an-ku]
mu =
{L3}bajumu > baju[mu]
{L2+L3}menemanimu >[men]teman[i-mu]
 
SUFFIX LEVEL 2
  nya = {jika 'nya' level 3 ada, maka dilewati}
  ir = {L1+L2} dramatisir > drama[tis-ir]
  onal = {L1+L2} konsepsional > konsep[si-onal]
  ial = {L2} foktorial > faktor[ial]
  al = {L2} musikal > musik[al]
  ual = {L2} seksual, faktual > seks[ual], fakta[ual]
 
Dalam tahap penyempurnaan
SUFFIX LEVEL 1
  isme = {L1} liberalisme > liberal[isme]
  tif,if =  
  iah = {L1}alamiah > alam[iah]
  i = {L1}biari > biar[i], {L1+L3} tanyaikan
  atik,tik,ik = sistematik, dramatik > sistem[atik], drama[tik],
  kan = {jika 'kan' level 3 ada, maka dilewati}
  an = {jika 'kan' level 3 ada, maka dilewati}
  tor,or = {L1}promotor > promo[tor]
  tur =  
  itas = {L1} minoritas > minor[itas-nya]
  si = {L1}proteksi, promosi > protek[si], promo[si]
  atis,tis,is = {L1}sistematis, dramatis > sistem[atis], drama[tis]
  ual = {L1}seksual > seks[ual]
  us = {L1} kritikus, musikus > kritik[us], musik[us]
  wan = {L1}peragawan > [pe]raga[wan]
  wati = {L1}peragawati > [pe]raga[wati]
 
Dalam tahap penyempurnaan
Tabel Kombinasi Level Akhiran+Akhiran Yang Tidak Diijinkan
  kah+kah = {L4+L5}
  lah+lah = {L4+L5}
kan+kan = {L2+L3}
kan+an = {L2+L3}
pun+pun = {L4+L5}
nya+nya = {L3+L4}
nya+ku = {L2+L3}
nya+mu = {L2+L3}
nya+an = {L2+L3}
nya+in = {L2+L3}
i+in = {L1+L2}
i+an = {L1+L2}
i+i = {L1+L2}
i+wan = {L1+L2}
i+wati = {L1+L2}
i+si = {L1+L2}
     

Algoritma PS merupakan algoritma yang unik dikarenakan mendukung 5 tingkatan awalan maupun akhiran, sejauh ini algortima yang telah ada hanya menggunakan 3 tingkatan awalan maupun akhiran.

Algoritma ini juga ditambah fitur untuk mengembalikan teks yang telah diterjemahkan kembali kedalam format aslinya. baik dalam format Html maupun teks biasa, serta fitur tokenizing output (Translite+Translate+Source)

Kali ini pembuat sengaja mengeluarkan source database kamusnya dan menjelaskan cara memodifikasinya agar para penggunanya dapat berpartisipasi untuk melengkapi database kamus ini.

Selain itu program ini dibuat se-fleksibel mungkin agar pengguna juga dapat mengganti slot-slot bahasa yang telah saya buat, diganti dengan bahasa daerah anda misalnya bahasa aceh, sasak, ambon, papua dan bahasa nusantara lainnya. dan anda juga dapat mengisi slot-slot bahasa asing dengan bahasa asing lainnya misalnya bahasa korea, rusia, perancis, belanda dsb.

slot-slot bahasa yang boleh dirubah yaitu slot nomor 3 hingga nomor 13 seperti tulisan dibawah ini

CARA MENGGUNAKAN DAN CARA MEMODIFIKASI KAMUS

PENTING!

Sebelum menjalankan program ini pertama-tama adalah me-load file db.js terlebih dahulu sebagai inisialisasi data dan kamus

Hal ini karenakan file kamus ini sengaja dibuat menjadi file external agar anda dapat merubah datanya.

untuk menampilkan huruf unicode (jepang, korea, rusia dsb) di butuhkan font unicode misalnya font ARIAL UNICODE MS  yang biasanya terdapat pada microsoft office

Kemudian cara untuk memodifikasi data dan kamus
1. Buka file DB.js dengan notepad  
   
Standar DB adalah :       
Contoh :         
db['saya']=[{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13}];    
     
{0} = {reserved}         
{1} = {SPOK}  [p_=predikat, o_=objek, dst]   {default}
{2} = {SUB SPOK}   [keterangan tambahan dari SPOK, mis= ani.=binatang, pl.=tempat, dst]   {default}
{3} = {JAWA}    
{4} = {SUNDA}    
{5} = {MINANG}    
{6} = {BETAWI}    
{7} = {BALI}    
{8} = {MADURA}    
{9} = {BATAK}    
{10} = {MANDARIN}    
{11} = {JEPANG}    
{12} = {INGGRIS}    
{13} = {MALAYSIA}    
     
 
contoh pengisian databasenya seperti urutan diatas:            
db['saya']=['','','or.','aku','kuring','ambo','aye','tiang','buleh',’ahu’,'wo','watashi','i',’saye’];    
     
Anda dapat memodif menu pulldown (HTML) bahasa dengan bahasa lain, sesuai dengan kebutuhan anda. baik dengan bahasa daerah lain maupun bahasa asing lainnya.    
     
NDb=[];   {default}
NDb[0]='STEMMING';   {default}
NDb[1]='SPOK';     {default}
NDb[2]='TYPE SPOK';      
NDb[3]='1. JAWA'; *)  
NDb[4]='2. SUNDA';   *)  
NDb[5]='3. MINANG'; *)  
NDb[6]='4. BETAWI'; *)  
NDb[7]='5. BALI'; *)  
NDb[8]='6. MADURA'; *)  
NDb[9]='7. BATAK'; *)  
NDb[10]='8. MANDARIN'; *)  
NDb[11]='9. JEPANG'; *)  
NDb[12]='10. INGGRIS'; *)  
NDb[13]='11. MALAYSIA'; *)  
     
*) ganti dengan bahasa lain    
     
menjadi :    
     
NDb[3]='1. JAWA KASAR';    
NDb[4]='2. JAWA BIASA';    
NDb[5]='3. JAWA HALUS';    
NDb[6]='4. SUNDA KASAR';    
NDb[7]='5. SUNDA BIASA';    
NDb[8]='6. SUNDA HALUS';    
NDb[9]='7.ARAB';    
NDb[10]='8.KOREA';    
NDb[11]='9.PRANCIS';    
NDb[12]='10.BELANDA';    
NDb[13]='11.JERMAN';    
atau    
NDb[3]='1. ACEH';    
NDb[4]='1. SASAK';    
NDb[5]='1. AMBON';    
NDb[6]='1. PAPUA';    
     
Anda dapat merubah translate prefix dengan aturan sbb:    
     
Contoh :    
ps['$p_pe']=['pe','','',              '','pa','pa','','','','','','','',''];    
     
ganti kata yang didalam tanda kutip dengan urutan    
kolom 1 ='pe' {id} prefix}  
kolom 2 ='' {biarkan kosong/cadangan}  
kolom 3 ='' {biarkan kosong/cadangan}  
kolom 4 ='pa' {awalan pe di sunda = 'pa'} jika kolom diisi='' berarti kolom tersebut dengan sama dengan kolom 1  
kolom 5 ='pa' {awalan pe di minang = 'pa'}   dapat diganti dengan prefix bahasa lain  
kolom 6 ='' {awalan pe di betawi = 'pe'} atau di isi ''  artinya sama dengan kolom 1 dapat diganti dengan prefix bahasa lain  
... dan seterusnya hingga kolom 13    
 
KESIMPULAN
 
Apakah membuat algoritma stemming bahasa indonesia merupakan hal yang penting?
Hal itu tergantung, jika orang yang bergelut dengan bidang ilmu informasi retrival, maka ini adalah salah satu program yang patut dibandingkan
Yang pembuat tahu, ide-ide manusia itu tidak terbatas, dan algortima ini diharapkan menjadi jembatan bagi pembuatan aplikasi selanjutnya.
Dan seharusnya program ini dikerjakan secara team, dan pembuat merasa masih perlu banyak penyempurnaan teknis di karenakan keterbatasan ilmu. pembuat telah mencoba hingga puluhan/ratusan kali  merubah algoritmanya, yang paling tersulit adalah menjadikannya source kode yang singkat, mudah dibaca/diperbaiki, serta handal dalam kecepatan dalam proses stemmingnya.
 
Dan pembuat berharap software ini dapat melestarikan bahasa-bahasa di nusantara dengan cara memodifikasi database program ini,
BTW (I need a job)  rather than 'Iseng' membuat program ini, dan saya yakin algoritma ini bisa dikembangkan untuk stemming bahasa lain.
Dan jika anda mempunyai lowongan pekerjaan ataupun proyek ambisius yang berhubungan dengan program/algoritma  ini, anda dapat mengkontak saya di persadastemmer@gmail.com
 
Wassalam
Imam Persada
 
LINK DOWNLOAD

Very New Version 2 OKTOBER 2012
Perubahan/perbaikan:
  • Penambahan Spelling Checker untuk bahasa indonesia
  • Perbaikan Algoritma Stemmer
  • dll.

http://persadasoft.ucoz.com/Download/Persada_stemmer_v1.2.zip

New Version 25 Agustus 2012
Perubahan/perbaikan:
  • Menggunakan algoritma tokenizing baru
  • Stemmer yang lebih baik
  • Efisiensi ukuran Database
http://persadasoft.ucoz.com/Download/Persada_Stemmer_v1.1.zip

1st version
http://persadasoft.ucoz.com/Download/Persada_Stemmer.zip


Tags:
the best stemmer indonesian language
algoritmna stemmer untuk bahasa indonesia terumit, terkompleks, terinci, mendukung 5 tingkatan awalan/prefix dan akhiran/suffix.
information retrival, nlp, mesin penerjemah, kamus bahasa daerah, jawa, sunda, betawi,
minang, madura, bali, batak, jepang, korea, inggris, malaysia.
software translit aksara arab, jepang katakana, hiragan, yunani, rusia, korea, hebrew.
perbandingan algoritma tercepat, akurat, terkecil, portable, spell checker, text-to-speech
next projek seacrh engine, answering machice, multi stemming bahasa secara simultan dalam 1 prosedur dengan menggunakan ID pada database kamus. virtual database, vice-versa bilingual translate kamus.




Views: 12393 | Added by: pstemmer | Rating: 5.0/3
Total comments: 4
4  
structured settlement lump sum employed to payout jackpot lottery winnings. There are a few strategies to assistance figure out if you have a solution liability lawsuit. You can pick out to only sell a part of it to just take treatment of factors that will need to be dealt with, while however getting payments. Plaintiff firm is liable for repayment only if they obtain a settlement or they acquire at trial.
http://settlementfundingcompany.wordpress.com/2013/06/18/unsecured-loans-with-negative-credit-score-two-solutions-are-available/
http://settlementadvance.wordpress.com/2013/06/18/guaranteed-personal-loans-online-lenders-there-are-dangers-for-folks-with-bad-cre dit-score/

3  
bagus blognya, trus berkarya

2  
program yang anda buat sangat membantu sekali
termasuk persada translator n transliterator
terima kasih yaaa

1  
hasil karya yang bermanfaat Om,,,

Name *:
Email *:
Code *:
Search
Calendar
«  July 2012  »
SuMoTuWeThFrSa
1234567
891011121314
15161718192021
22232425262728
293031
Entries archive
Site friends
  • Create a free website
  • Online Desktop
  • Free Online Games
  • Video Tutorials
  • All HTML Tags
  • Browser Kits
  • Copyright MyCorp © 2017
    Create a free website with uCoz