Inverted Index dengan Google Colab – Python

Beberapa buku teks memiliki index yang diletakan di akhir buku. Isi index adalah kata-kata penting beserta halaman dimana kata tersebut berada. Biasanya kata-kata tersebut disebutkan lebih dari satu halaman.

Sementara itu ketika seseorang mengetikan kata di mesin Google, misalnya “American Revolution”, maka Google akan mencari di mana saja kata tersebut berada, misalnya pada Index di gambar di atas di halaman 84,98, dan 166. Karena diletakan di muka yang mirip daftar isi, maka di situlah kata “inverted” bermula, yang seharusnya di belakang tapi di muka sebagai alat pencari. Sebagai contoh, puisi “Aku” karya Chairil Anwar berikut. Anggap saja satu line/baris merupakan satu berkas dokumen, atau kalau dalam satu buku adalah halaman.

  • Doc 1.Kalau sampai waktuku
  • Doc 2.’Ku mau tak seorang ‘kan merayu
  • Doc 3.Tidak juga kau
  • Doc 4.Tak perlu sedu sedan itu
  • Doc 5.Aku ini binatang jalang
  • Doc 6.Dari kumpulannya terbuang
  • Doc 7.Biar peluru menembus kulitku
  • Doc 8.Aku tetap meradang menerjang
  • Doc 9.Luka dan bisa kubawa berlari .. Berlari
  • Doc 10.Hingga hilang pedih peri
  • Doc 11.Dan aku akan lebih tidak peduli
  • Doc 12.Aku mau hidup seribu tahun lagi!

Aslinya sih satu dokumen itu satu berkas berupa buku pdf, postingan internet, jurnal, dll, tapi di sini dianggap satu baris/line saja. Atau bisa juga sih, satu berkas tersebut dijadikan satu baris dengan doc-id sebagai penunjuk line/baris berkas itu. Kalau forward index membuat index dari konten, inverted index memetakan kata/istilah ke konten. Kita memanfaatkan inverted index Google yang setiap hari membuat index (forward index) dari data yang di crawler di seluruh dunia. Berikutnya, untuk praktik siapkan sebuah file txt yang berisi puisi di atas, atau contoh sembarang. Buka Google Colab dan upload file tersebut.

Silahkan lihat kode di referensi di akhir postingan ini. Jika dijalankan, dihasilkan inverted index seperti di bawah ini. Cek apakah benar beberapa kata tepat berada di dokumen/line pada file “Aku.txt” di atas.

Di sini kita tinggal memasukan frekuensi, misalnya ‘berlari’ itu ada dua kali. Untuk jelasnya silahkan lihat video tutorial saya berikut ini.

Ref:

Link: geeksforgeeks.org/create-inverted-index-for-file-using-python/

Menghitung Jumlah Kata dengan Python

Menghitung jumlah kata merupakan tugas wajib yang harus bisa diselesaikan oleh mesin pengelola teks. Teknik telah digunakan oleh word processing misalnya MS Word. Ketika kita mengetik, di bagian bawah langsung tercetak jumlah kata yang telah diketik. Nah, di sini kita coba teknik yang digunakan dalam bahasa pemrograman Python.

Library yang digunakan untuk menghitung kata adalah collections yang memiliki satu fungsi bernama Counter. Gunakan instruksi Open untuk mengambil file txt yang akan dikelola.

  • f2 =  open(‘Praktek.txt’‘r’)
  • content = f2.read()
  • print(content)

Variabel content ketika di-print akan menampilkan isi dari file “Praktek.txt” seperti praktek sebelumnya (lihat pos yang lalu). Tetapi kali ini kita menggunakan fungsi split untuk memisahkan kata dari file tersebut.

  • words = open(‘Praktek.txt’).read().split()
  • words

Terakhir kita menggunakan fungsi Counter baik untuk menampilkan jumlah per kata maupun jumlah total kata (dengan fungsi len).

Untuk jelasnya lihat video tutorial ini.

Konversi Huruf Besar dan Huruf Kecil Pada Python (Google Colab)

Untuk mengolah teks diperlukan proses konversi ke huruf kecil semua sebelum diolah lebih lanjut seperti stemming, pencarian kata dasar, dan operasi pada teks lainnya. Gunakan sembarang file txt untuk praktek yang diunggah ke Google Colab.

  • f2 = open(‘Praktek.txt’‘r’)
  • content = f2.read()
  • print(content)

Perhatikan di sini fungsi open memiliki parameter ‘r’ yang berbeda dengan post yang lalu (tanpa parameter ‘r’). Di sini ketika berganti baris, teks tidak ditulis dalam kode \n melainkan berganti baris.

Gunakan fungsi “upper” atau “lower” untuk beruturut-turut merabah seluruh teks menjadi huruf besar atau huruf kecil semua.

  • content.upper()

Sebagai penutup, ada satu fungsi split untuk memisah teks tersebut menjadi kata per kata ke bawah dengan kode sebagai berikut.

  • list_ = open(“Praktek.txt”).read().split()
  • list_

Ini merupakan teknik menghitung berapa jumlah kata yang ada dalam satu paragraph.

Untuk lebih jelasnya simak video berikut ini:

Mengimpor Teks di Google Colab

Google colab merupakan fasilitas pemrograman Python yang disediakan secara online oleh Google. Untuk mengaksesnya silahkan kunjungi: https://colab.research.google.com/. Sebagai bahan praktek, siapkan sebuah file teks, misalnya Praktek.txt yang dapat Anda buat secara kilat dengan text editor, misalnya notepad.

Buat notebook baru dengan file – New Notebook di Google Colab. Jika Anda lihat gambar di atas ada fasilitas Files yang harus Anda buka dulu dengan menekan simbol “File” di kiri bawah gambar di atas. Setelah fasilitas file muncul, tekan simbol “Upload” berupa gambar panah ke atas untuk mengupload sembarang file txt.

Perhatikan di jendela Code Anda bisa menyisipkan kode. Salah satu keunggulan notebook adalah bisa memisahkan kode menjadi beberapa sel terpisah yang bisa dirun sendiri-sendiri. Kata kunci “open” dan “read” di atas muncul ketika satu huruf ditekan. Sangat membantu bagi yang kurang hafal instruksi-instruksi Python.

Silahkan lihat video berikut untuk lebih jelasnya. Salam.

 

Instal Plug-in TwitterStreamImporter di Gephi Untuk Scrap Twitter Langsung

Twitter dapat dimanfaatkan untuk mencari tahu akun mana yang aktif membicarakan topik tertentu. Salah satu aplikasi tak berbayar yang mampu men-scrap (istilah mengambil data) Twitter adalah Gephi. Biasanya scrap menggunakan bahasa pemrograman tertentu, tetapi perlu usaha untuk membuat networknya. Nah, Gephi memiliki kemampuan selain men-scrap juga membuat networknya.

Menambahkan Plug-In

Buka Gephi dan masuk ke menu Tools – Plug-In. Banyak fasilitas yang tersedia, salah satunya yang akan digunakan kali ini adalah TwitterStreamImporter.

Cari di tabel Plug-In dan ceklis ketika plugin tersebut ditemukan. Tekan Install untuk melakukan proses instalasi plugin TwitterStreamImporter. Tunggu beberapa saat hingga proses pengunduhan dan instalasi selesai.

Agar memiliki efek ada baiknya memilih Restart Now ketika muncul pilihan pada jendela “Plugin Installer”. Gephi akan shutdown dan muncul kembali dengan fasilitas tambahan yaitu “plugin” yang baru saja kita install.

Ciri-ciri Plugin telah terinstal adalah di bagian kiri bawah muncul tab “Twitter Streaming Importer”. Nah selanjutnya kita tinggal melakukan langkah: 1) Set Credentials, 2) Define the Query.

Silahkan lihat postingan yang lalu untuk mendaftarkan Credential twitter. Postingan berikutnya akan berlanjut menscrap data dengan plugin tersebut sekaligus analisanya dengan Gephi. Sekian, semoga bermanfaat.

Nucoll dan Gephi Untuk Profiling Twitter

Profiling terkadang diperlukan ketika ingin mengetahui informasi seseorang misalnya calon pegawai, caleg, dan sebagainya. Mula-mula dilakukan secara manual lewat searching di media sosial. Namun ketika teknologi kian berkembang, banyak aplikasi-aplikasi tersedia untuk membantu proses profiling, salah satunya nucoll dan Gephi.

Nucoll

Nucoll merupakan aplikasi versi baru dari Tweecoll yang banyak dikeluhkan karena tidak mudah berjalan di Windows. Nucoll dapat diunduh programnya di link resminya berikut ini (sesuaikan dengan sistem operasi Anda). Aplikasi ini hanya berisi EXE saja dan dijalankan menggunakan konsol Python.

Untuk menghasilkan file yang akan dilihat network-nya diperlukan tiga langkah sesuai dengan instruksi pada gambar di atas:

  • nucoll init <akuntwitter>
  • nucoll fetch <akuntwitter>
  • nucoll edgelist <akuntwitter>

Terdapat file berekstensi dat, gml, dan qry (jika menggunakan fungsi tweets). Hasil yang akan dikirim ke Gephi adalah file berekstensi GML di folder kerja. Berikutnya perlu menginstall Gephi. Sebagai informasi, jika akun twitter yang akan dicari memiliki banyak follower, dibutuhkan proses yang lumayan lama.

Gephi

Gephi sering digunakan untuk mendeteksi network pengguna twitter. Aplikasi ini dapat diunduh di link berikut. Banyak yang sudah menerapkan, salah satunya adalah drone emprit.

Ketika tulisan ini dibuat, sudah masuk versi 0.9.2. Aplikasi Gephi dibuat dengan menggunakan bahasa Java.

Ikuti saja instruksinya hingga proses selesai. Tunggu beberapa saat hingga selesai.

Berikutnya jalankan Gephi untuk menampilkan network yang berasal dari Nucoll. Buat satu project baru. Impor file GML dari nucoll lewat menu file – open.

Ketika file GML hasil scrapping dengan nucoll diimpor, akan muncul network di Gephi. Tekan simbol “T” di bagian bawah untuk melihat labelnya.

Silahkan yang tertarik bisa melihat tutorialnya di link berikut ini. Banyak fasilitas-fasilitas lain (pewarnaan, indikator-indikator dan sebagainya). Oiya, silahkan gunakan fugnsi “tweets” dari Nucoll untuk men-scrap tweets seseorang. Selamat mencoba, semoga bermanfaat.

NOTE: Untuk menjalankan Nucoll perlu mendaftarkan Consumer Key (lihat post terdahulu).

Menganalisa Akun Twitter – Mendapatkan Keys & Token Twitter API

Twitter menyediakan API untuk mengunduh tweets seseorang. Walaupun yang tepat istilahnya “wrapper” bukan Application Programming Interface (API). Langkah pertama, tentu saja harus punya akun Twitter dulu. Berikut langkah-langkah yang perlu dilakukan.

Mendaftar Sebagai Developer

Pertama-tama masuk ke situs https://developer.twitter.com/ setelah login Twitter di browser, misalnya Mozilla. Atau langsung saja ke sini untuk membuat application baru: https://developer.twitter.com/en/apps. Tekan Create Account untuk membuat app baru.

Tiap saat sepertinya peraturan berubah-ubah. Ketika tulisan ini dibuat harus meng-apply akun sebagai developer.

Kemudian muncul pesan untuk verifikasi via nomor handphone. Tekan Add a valid phone number.

Setelah memasukan nomor ponsel yang sesuai, tunggu sms dari twitter untuk memasukan nomor verifikasi. Setelah meinginput nomor tersebut, maka phone number kita sudah terverifikasi. Tekan Continue. Berikutnya pilih perorangan atau organisasi app yang akan digunakan. Ada pertanyaan yang agak sulit mengenai mengapa membutuhkan API? Serta untuk apa dan metode apa yang digunakan nanti. Nah di sini kita diminta menjawab dengan gaya “mengarang bebas” karena diminta menulis jawaban lebih dari 300 kata. Akhiri dengan menekan Accept setelah membaca (kalau sempat) Term of Service.

Jangan lupa menceklis kotak di bagian bawan TOS. Selanjutnya diminta membuka email dari akun kita. Jika sudah ada pesan masuk dari Twitter, tekan konfirmasi.

Selesai sudah mendaftar sebagai developer yang menggunakan fasilitas Twitter. Pastikan akan masuk ke jendela developer https://developer.twitter.com/en/account/get-started.

Mendapatkan Twitter API Key

Setelah terdaftar sebagai developer berikutnya adalah membuat app. Di bagian dashboard tekan Apps dan jika tidak ada akan muncul tombol Create an App. Cukup banyak yang harus diisi, tetapi ikuti saja sampai selesai, terutama yang required harus diisi. Jika sudah maka terakhir konfirmasi kembali. Di sini beberapa kali ditolak karena nama aplikasi sudah ada yang punya, akhirnya setelah diganti, misalnya “kepo_movie”, baru lah bisa, hehe.

Keys and tokens inilah yang akan digunakan untuk aplikasi meneliti tweets dari sebuah akun twitter. Langkah selanjutnya adalah memilih aplikasi untuk analisa tweeter, misalnya Tweepy yang terkenal bagi programmer Python. Selamat mencoba, semoga peraturan Twitter masih seperti ketika tulisan ini dibuat.

Sumber Belajar Pemrosesan Teks dan Perolehan Informasi

Saat ini informasi sangat mudah didapat karena era Big Data dengan konsep 5V-nya (Velocity, Veracity, Volume, Value, dan Variability). Walaupun bagi praktisi Big Data ada konsep “data yang buruk lebih baik daripada tidak ada data” tetapi bagi pelajar dan mahasiswa, dibutuhkan sumber-sumber yang memang dibutuhkannya. Banyak ebook-ebook berkualitas baik banyak dijumpai di internet baik lewat situs sharing ataupun via media sosial seperti Whatsapp. Namun toh, para mahasiswa kurang begitu berminat membacanya (bahkan saya pun agak malas ..). Tapi ya, kalo bisa sih dibaca sampai habis.

Untuk pemrosesan teks, text mining, atau perolehan informasi salah satu buku andalannya adalah terbitan MIT press (C. Manning) dengan teori-teori dasarnya. Ada juga buku karangan Banch tentang Text Mining dengan praktek aplikasinya dengan Matlab. Kebanyakan karena saking “dasanya” jadi sulit untuk diterapkan langsung seperti bagaimana implementasinya di search engine seperti Google atau Bing.

Berbicara mengenai search engine, bagi mahasiswa atau saya juga, yang ingin belajar cepat sekelebat karena limit waktu yang terbatas, Google dkk menjadi andalan utama setelah situs-situs diskusi di internet. Modal dasar yang harus dimiliki tentu saja kemampuan berbahasa Inggris. Walaupun ada translate google, tetap harus bisa bahasa Inggris jika tidak ingin repot bolak-balik buka kamus.

Ada proyek-proyek online yang beredar di internet, salah satunya adalah situs ini yang menyediakan contoh sample data yang akan diolah.

Bagaimana cara mengolahnya? Silahkan download buku Text Mining with Matlab karya Banch, atau datang ke situs-situs diskusi, misalnya tentang pembuatan model bahkan membuat mesin yang bisa membuat sebuah kalimat dengan beberapa kata kunci.

Saya sempat mencobanya. Pertama-tama dengan Matlab 2008. Ternyata dengan versi tersebut banyak masalah yang dijumpai karena sudah tertinggal jauh. Silahkan gunakan yang terkini. Beberapa fungsi m-file perlu diunduh agar bisa berfungsi, dan lumayan bisa dipakai untuk mengutak-atik teks. Mungkin pembaca punya alternatif lain yang lebih baik, silahkan ber-komentar. Yuk, belajar text mining.

Mengambil File Microsoft Word dan Indexing Pada Matlab

[inf.retrievalt.komputer|lab.software|pert.9]

Salah satu langkah perolehan informasi yang penting adalah pembuatan indeks. Indeks merupakan salah satu kunci untuk pencarian informasi. Untuk menghasilkan pengindeks yang baik perlu menggunakan teknik-teknik yang ada pada pemrosesan teks. Postingan kali ini bermaksud mengetahui cara pembuatan indeks dengan file yang diambil dari microsoft word.

Mengambil File Ms Word

Banyak informasi yang memberikan cara bagaimana mengambil file word agar bisa diproses lebih lanjut pada Matlab. Biasanya file yang langsung bisa digunakan adalah file berekstensi txt, namun karena banyaknya file berformat DOC atau DOCX maka perlu mengetahui cara pengambilan file bertipe itu agar bisa diolah lebih lanjut pada Matlab. Agar lebih nyaman, ada baiknya membuat Graphic User Interface (GUI) agar lebih mudah digunakan atau disimpan agar mudah digunakan nantinya.

Masuk ke callback Ambil File dan isikan kode berikut menggunakan uigetfile yang mengeluarkan form ambil file. Akhiri dengan membuat variabel agar bisa digunakan nantinya lewat mekanisme handles.

  • [a,b]=uigetfile(‘*.docx’)
  • handles.a=a;
  • handles.b=b;
  • guidata(hObject,handles)

Sementara pada callback Pra-Proses diisi dengan kode-kode berikut dimulai dari mengambil data dari word:

  • word = actxserver(‘Word.Application’);
  • file=strcat(handles.b,handles.a)
  • wdoc = word.Documents.Open(file);
  • sometext = wdoc.Content.Text;

Variabel “file” merupakan string yang diambil dari instruksi “uigetfile” pada pushbutton sebelumnya yang kemudian disimpan dalam variabel sometext. (Lihat penjelasannya di buku Text Mining dengan Matlab karya Bachs).

  • temp = sometext
  • temp = lower(temp)
  • temp = regexprep(temp,'</verse>’,’ S ‘)
  • temp = regexprep(temp,'<.*?”‘,”)
  • temp= regexprep(temp,’ ‘,”’,”’)
  • temp = regexprep(temp,’\W’,’ ‘)
  • temp = strtrim(regexprep(temp,’\s*’,’ ‘))
  • temp=regexprep(temp,’ ‘,”’,”’)
  • eval([‘wordsofverses={”’,temp,”’};’]);
  • limits = [0,find(strcmp(wordsofverses,’S’))]
  • for k=1:length(limits)-1
  • verses(k).vocab = unique(wordsofverses(limits(k)+1:limits(k+1)-1));
  • end;

Variabel “temp” berisi hasil pemrosesan yang dimulai dari lower untuk mengecilkan seluruh huruf hingga mengkonversi string word tersebut menjadi cell dalam variabel wordsofverses. Hasilnya kira-kira sebagai berikut. Semoga bermanfaat.

Fixing: “Warning: Single line Edit Controls can not have multi-line text”

[inf.retrieval|t.komputer|lab.soft|pert.8]

This problem appears when someone tries to send the result to edit text. The warning is shown in command window and the edit text in GUI is also disappeared. First we should understand that Matlab has two kinds of text format: string and cell. The cell cannot be presented, except you transpose it. But the edit text will show the text in column based. Only the string/char format can be presented in row based (see the picture below showing the string and cell).

Some text processing methods need conversion from string to cell. Therefore, the manipulation should be done in order to show the text in edit text. The algorithm are as follow:

  • Input: cell
  • Output: string in row
  • Use function char to convert cell into character
  • Transpose the characters
  • Use function sprintf to print the characters in row based

This simple method can be solve the warning above. As an impormation, some text manipulation need conversion from cell to char and vice versa, e.g. regexp (regular expression function). I hope this information is useful. This is an output when I stemmed to remove preffix (‘ber’) except when the root-word below 4 characters (e.g. “dua” from “berdua”)

Stemming Pada Matlab

[per.informasi|t.komputer|lab.soft|pert.5]

Jika pada pertemuan sebelumnya telah berhasil memisahkan kata-kata dalam suatu kalimat agar bisa menghitung jumlah katanya maka pada pertemuan kali ini akan mencoba memisahkan kata dari imbuhan (awalan dan akhiran) agar diperoleh kata dasarnya yang dikenal dengan istilah stemming/lematization. Proses ini sangat penting dalam perancangan mesin pencari (searching). Imbuhan merupakan ciri khas bahasa Indonesia yang memang berbeda sekali dengan bahasa Inggris. Coba rancang GUI berikut untuk melakukan proses stemming.

Imbuhan ada banyak misalnya me, meng, ber, per, -an, dan lain-lain. Untuk memisahkannya kita perlu memproses pencarian berdasarkan spasi dan titik (untuk akhiran). Jika tanpa spasi akan terjadi kesalahan karena sistem akan mereplace seluruh yang diduga awalan/akhiran walau terletak di tengah-tengah kata yang tentu saja salah.

  • % menghilangkan “-an”
  • y=regexprep(y,‘an+\s’,‘ ‘) % sebelum spasi
  • y=regexprep(y,‘an+\.’,‘.’) % sebelum titik
  • set(handles.edit1,‘String’,y)

Kode di atas bermaksud menghilangkan akhiran –an. Jika diinput kata “akhiran.” Akan dihasilkan kata dasarnya “akhir”. Ada dua deteksi yaitu sebelum spasi dan sebelum titik.

Logika sederhananya adalah mengganti “-an” tersebut dengan “blank”. Fungsi yang digunakan adalah regexprep yang mencari dan me-replace suatu string. Pertemuan berikutnya akan menggunakan proses perhitungan karakter tertentu, misalnya “makan”, tidak bisa jadi “mak” karena kurang dari 4 karakter. Selain itu perlu proses N-gram (dua, tiga, dst). Selamat mencoba, semoga UTS dapat dikerjakan dengan baik.

Menghitung Jumlah Kalimat dengan Regular Expression

[perolehan.inf|t.kom|lab.soft|per.4]

Jumlah kalimat dihitung berdasarkan jumlah stop indicator, dalam hal ini berupa simbol titik. Tentu saja ada beberapa kondisi khusus, misalnya ketika merepresentasikan sebuah bilangan, maka titik tidak dianggap sebagai stop condition. Termasuk juga untuk penunjukan bab atau referensi dalam tanda kurung.

Lanjutkan proyek sederhana perhitungan jumlah kata yang telah dibahas pada pertemuan yang lalu. Tambahkan sebuah tombol pushbutton dan edit text, masing-masing untuk perintah eksekusi dan mengeluarkan/mepresentasikan hasil eksekusi.

Fungsi Find

Silahkan ketik “help find” pada command window untuk mempelajari aturan penulisannya. Dengan melakukan kode di bawah ini pada fungsi Jumlah Kalimat = dapat diketahui lokasi dan jumlah titik yang dimiliki suatu string.

  • titik=find(handles.str==’.’)         %mencari lokasi karakter “.” berada
  • [baris,jlhtitik]=size(titik)            %mencari jumlah titik yang ditemukan
  • set(handles.edit3,’String’,jlhtitik)    %mengeluarkan jawab berapa banyak titik/sekaligus jlh kalimat

Perhatikan gambar di atas. Karena ada dua titik maka terhitung jumlah kalimatnya dua. Bagaimana jika ada titik yang ternyata bukan akhir sebuah kalimat, misalnya sub-bab atau angka decimal, dan lain-lain?

Fungsi Regular Expression (REGEXP)

Fungsi ini bermaksud mencari berdasarkan karakter (huruf per huruf). Fungsi ini digunakan ketika mencari kasus kusus jika ada angka dengan titik di dalamnya yang tidak dihitung sebagai stopping suatu kalimat.

  • titik=find(handles.str==’.’)            %menemukan karakter titik
  • [baris,jlhtitik]=size(titik)                %menghitung banyaknya titik
  • pat = {‘(\d)+[.]’};                    %keyword
  • angkatitik=regexp(handles.str,pat,’match’)    %mencari angka dengan titik
  • angka=angkatitik{1}                %mengeluarkan isi cell
  • [baris,jlhangka]=size(angka)            %menghitung berapa banyak angka-titik
  • jlhtitik=jlhtitik-jlhangka                %mengurangkan jlh titik
  • set(handles.edit3,’String’,jlhtitik)        %mengirim hasil pemrosesan teks

Instruksi pat={‘\d+[.]’) bermaksud mempersiapkan keyword fungsi regexp. Simbol \d+ maksudnya mencari angka desimal (simbol “d”) yang bersisian dengan titik (simbol “[.]”). Perhatikan titik harus dilingkupi dengan kurung kotak “[ ]” yang mengharuskan regexp menyamakan dengan karakter di dalam kurung tersebut, dalam hal ini titik.

Suatu string “Perhatikan gambar 3.2 di bawah ini.” jika menggunakan kode tambahan di atas akan menghasilkan jumlah kalimat yang tepat walaupun ada dua titik di sana karena titik yang berdekatan setelah angka dianggap bukan akhir kalimat. Tentu saja ada masalah jika string “Perhatikan gambar 3.”. Maka harus dibuat kode tambahan agar titik tersebut dianggap akhir kalimat, silahkan coba buat kode-nya sendiri untuk mengatasi hal tersebut.

Praktek Menghitung Jumlah Kata dan Kalimat dengan Regular Expression Matlab

[perolehan.informasi|tek.komputer|lab.software|pert.3]

Salah satu fungsi penting dalam perolehan informasi (information retrieval) adalah pencarian kata. Untuk sampai ke sana ada baiknya mengetahui berapa jumlah kata dalam suatu berkas. Dan untuk itu harus mampu membedakan antara kata dengan bukan kata. Yang bukan kata seperti tanda petik, tanda khusus (bintang, pagar), dan spasi.

Fungsi REGEXP

Regular expresion merupakan fungsi yang ditemui dalamm mata kuliah teknik komputesi dan kompilasi. Fungsinya adalah mencari serangkaian kata atau diistilahkan token dalam materi tersebut. Untuk materi perolehan informasi (dan juga text mining) fungsinya sama. Pada Matlab fungsi regular expresion dalam bentuk regexp.

Menghitung Jumlah Kata

Bagi yang sering mengetik dengan MS Word, pasti sudah mengenal indikator jumlah kata yang telah diketik. Letaknya di bagian kiri MS Word. Misalnya, ketika saya menulis sampai sini ada indikator jumlah kata yang tertulis sebanyak 143 kata.

Untuk mengetahui fungsi regexp silahkan mengetik help regexp pada command window. Tampak untuk mencari suatu kata menggunakan parameter \w+ dan ‘match’. Untuk mencobanya, masukan kode berikut pada command window:

  1. string=’Presiden Jokowi mengunjungi kota Palu’;
  2. hasil=regexp(string,’\w+’,’match’);
  3. [baris,kolom]=size(hasil);
  4. jumlahkata=kolom
  5. jumlahkata =
  6. 5

Baris ke 3 hingga 5 menghitung jumlah kata yang berhasil dipilah. Jumlah kata string tersebut sesuai dengan jumlah kata yang berhasil dipisahkan oleh fungsi regexp. Pada lab software coba buat GUI seperti di bawah ini. Jika tombol Jumlah Kata = ditekan maka akan menunjukan jumlah kata yang terdapat pada string yang dicopas dan paste-kan ke edit text di atasnya. Ada perbedaan antara kata yang dihitung MS Word dengan kode di atas, perlu diteliti lebih lanjut.

Menghitung Jumlah Kalimat

Untuk menghitung jumlah kalimat, fungsi regexp harus mampu menghitung berapa jumlah titik dalam satu berkas. Jika ada dua titik maka ada dua kalimat. Tentu saja di sini harus mampu membedakan antara titik desimal dengan titik yang merupakan akhir dari kalimat. Silahkan mencoba dahulu.

Online Education Research

Riset tentang pendidikan jarak jauh (PJJ) melibatkan banyak bidang ilmu (multidisiplin). Karakternya yang banyak melibatkan ilmu sosial membuat tiap tempat berbeda karakternya, sehingga melibatkan institusi-institusi tiap negara. Lihat postingan terdahulu tentang webinar (seminar online) PJJ. Beberapa hari yang lalu ada kiriman buku tentang riset pendidikan daring di Indonesia, cocok untuk yang ingin memulai riset di bidang ini.

Setelah membaca sekilas banyak informasi-informasi yang diberikan dalam buku itu. Kalau pun tidak detil, pembaca bisa membaca rujukan yang disertakan, kebanyakan berupa paper ilmiah (jurnal internasional). Jangan takut, banyak cara untuk mengunduh jurnal-jurnal yang berbayar tersebut. Berikut informasi yang diberikan:

  • Riset PJJ di Indonesia, bahkan di Asia, masih sangat kurang. Kebanyakan oleh negara-negara maju seperti AS, Australia, dan Eropa.
  • Banyak jurnal-jurnal rujukan yang disertakan (dalam tabel) yang bisa kita baca lebih lanjut setelah mengunduh paper tersebut. Cocok untuk yang ingin membuat proposal disertasi/studi lanjut s3.
  • Disertakan teori-teori pembelajaran (walau secara umum) sebagai referensi.
  • Dijelaskan teknik-teknik untuk riset (jenis-jenis riset, teknik pengambilan data, dan lain-lain)
  • Ada pembekalan dalam menulis artikel ilmiah (memilih jurnal sasaran, mengatur tulisan-tulisan yang disubmit, dan pengertian-pengertian tentang submit, minor/major revision, dan lain-lain)
  • Strategi untuk mengaplikasikan PJJ di Indonesia agar lebih efektif

Apapun saat ini sudah mulai di-online-kan. Mau tidak mau kita harus mengerti konsepnya, begitu juga dengan para dosen dan pengajar, konsep e-learning harus dikuasai. Ada tiga sisi dalam diri seorang dosen: Peneliti, Pengajar/pendidik, dan Pengabdi. Jadi riset untuk meningkatkan pengajaran jangan dilupakan juga. Semoga bermanfaat.

Sains Harus Belajar dari Marketing

Sepintas sungguh aneh, bahkan bagi orang murni sains marketing dianggap bukanlah ilmu, setidaknya disebut “an oxymoron” alias retorika yang ambigu yang sering dipakai politisi kita (pro maupun kontra). Benarkah marketing itu bukan ilmu? Postingan kali ini terinspirasi dari buku web mining (lihat post yang lalu) yang akan segera saya kembalikan ke perpustakaan. Di buku tersebut di bab “Using Marketing Tests to Understand Customers” disinggung masalah ilmu unik marketing.

Power of Marketing

Sebelum lanjut, sepertinya kita sadari terlebih dulu kondisi aneh perusahaan-perusahaan saat ini dalam kaitannya dengan masalah disruption. Banyak perusahaan yang terkenal mapan langsung terpuruk karena fenomena tersebut. Salah satunya adalah ditinggalkan oleh konsumennya yang memilih produk lain yang dianggap memenuhi harapannya. Salah satu aspek terpenting suatu perusahaan adalah marketing karena merupakan sarana untuk menarik konsumen yang kemudian berdampak terhadap keuntungan. Tanpa keuntungan tentu saja tidak dapat membiayai ongkos-ongkos suatu perusahaan. Bolehlah teknik, riset, dan sejenisnya terhadap suatu produk atau manufaktur, tetapi tanpa melakukan riset dalam marketing, siap-siap mengambil resiko besar terhadap kerugian. Ipad waktu itu siap dipasarkan apple, tetapi bagian riset marketing ternyata melihat animo masyarakat terhadap Iphone lebih tinggi, padahal Iphone waktu itu belum siap publish. Dan benar, dengan menahan Ipad dan melapas Iphone terlebih dahulu, apple mendulang untung besar. Para pekerja aktif seperti perawat, dokter, dan sejenisnya lebih membutuhkan piranti cerdas mungil dibanding yang lebih besar.

Marketing & Sains

Apa itu sains? Sains intinya melakukan riset runtun yang berdasarkan tahapan-tahapan yang disebut metode ilmiah: hipotesa, disain eksperimen, eksperimen, analisa hasil, dan merevisi hipotesa. Tahapan-tahapan itu haris bisa ditiru oleh periset lain sehingga terbukti keandalan dan akurasi temuannya (confidence). Bagaimana dengan marketing? Tunggu dulu, dengan data yang ada sebelumnya ternyata hasil hipotesa tidak berlaku dengan kondisi yang ada sekarang. Jangankan data beberapa tahun yang lalu, data beberapa bulan yang lalu saja belum tentu akurat untuk diterapkan saat ini. Lalu bagaimana ini?

Buku rujukan web mining menjelaskan bahwa titik penting bagian riset di marketing adalah hipotesa. Hipotesa yang tidak tepat tentu saja tidak bermanfaat walaupun benar. Walaupun mengikuti metode ilmiah tetapi jika tidak menjawab persoalan utama, tentu saja tidak bermanfaat. Untuk itu saintis harus belajar bagaimana marketing menentukan hipotesa risetnya yang terkadang bagi ilmuwan kurang greget, kurang wah, kurang berbobot, tapi ternyata dampaknya besar. Berikut hal-hal yang bisa dipelajari dari marketing dalam penentuan hipotesa:

  • Kreativitas: dibutuhkan untuk menemukan hipotesa yang menarik
  • Skeptisme/keraguan: bukan hanya solve problem, ternyata meyakinkan suatu itu penting, terutama dengan pencarian dan perbandingan alternatif-alternatif.
  • Kepercayaan diri untuk maju berdasarkan hasil riset. Terkadang di kampus kita selalu menekankan hasil riset harus OK, model harus fit, dan sejenisnya. Parahnya siswa suka mengutak-atik data agar “cakep”. Ternyata bagi orang marketing, sejelek apapun data maupun hasil riset, bisa digunakan untuk move on (termasuk diterapkan bagi yg calonnya kalah pemilu).

Marketing untuk Dana Penelitian

Sering sekali teknik marketing saya gunakan untuk memperoleh hibah penelitian. Sebagian hibah penelitian sebenarnya berdasarkan proses marketing kita, baik ketika membuat proposal maupun saat presentasi. Tidak semua judul yang lolos di jurnal lolos pula di hibah (sepertinya sebaliknya juga berlaku). Kreativitas, keraguan, dan kepercayaan untuk maju yang telah dibahas di atas, sangat diperlukan. Keahlian dalam mengemas sesuatu yang biasa-biasa saja jadi berharga dan sesuatu yang sudah berharga dikemas agar terlihat bermanfaat sangat diperlukan untuk mendapatkan dana hibah. Ketika mengajukan proposal hibah terkadang saya sengaja membuat bimbang reviewer. Bolehlah dia marah-marah ketika presentasi, setidaknya saya telah membuat mereka bimbang untuk menolaknya disaat memutuskan lolos atau tidak. Sepertinya perlu postingan tersendiri untuk masalah hibah. Sekian semoga bermanfaat.

Reference

Linoff, G. S., & Berry, M. J. A. (2001). Mining the Web. United States of America: Wiley.