Isi Penting Generator#

Generate a long text given isi penting (important facts).

This tutorial is available as an IPython notebook at Malaya/example/isi-penting-generator.

This module trained heavily on news structure.

Results generated using stochastic methods.

This interface deprecated, use HuggingFace interface instead.

[1]:
%%time
import malaya
from pprint import pprint
CPU times: user 3.22 s, sys: 3.48 s, total: 6.7 s
Wall time: 2.25 s
[2]:
import warnings
warnings.filterwarnings('default')

List available Transformer#

[3]:
malaya.generator.isi_penting.available_transformer()
/home/husein/dev/malaya/malaya/generator/isi_penting.py:57: DeprecationWarning: `malaya.generator.isi_penting.available_transformer` is deprecated, use `malaya.generator.isi_penting.available_huggingface` instead
  warnings.warn(
[3]:
Size (MB) Quantized Size (MB) ROUGE-1 ROUGE-2 ROUGE-L Maximum Length
t5 1250.0 481.0 0.37174 0.184714 0.258272 1024.0
small-t5 355.6 195.0 0.37174 0.184714 0.258272 1024.0

Load Transformer#

Transformer Generator in Malaya is quite unique, most of the text generative model we found on the internet like GPT2 or Markov, simply just continue prefix input from user, but not for Transformer Generator. We want to generate an article or karangan like high school when the users give ‘isi penting’.

def transformer(model: str = 't5', quantized: bool = False, **kwargs):
    """
    Load Transformer model to generate a string given a isu penting.

    Parameters
    ----------
    model: str, optional (default='base')
        Check available models at `malaya.generator.isi_penting.available_transformer()`.
    quantized: bool, optional (default=False)
        if True, will load 8-bit quantized model.
        Quantized model not necessary faster, totally depends on the machine.

    Returns
    -------
    result: malaya.model.t5.Generator class
    """
[ ]:
model = malaya.generator.isi_penting.transformer(model = 't5', quantized = True)
/home/husein/dev/malaya/malaya/generator/isi_penting.py:90: DeprecationWarning: `malaya.generator.isi_penting.transformer` is deprecated, use `malaya.generator.isi_penting.huggingface` instead
  warnings.warn(
Load quantized model will cause accuracy drop.
[4]:
isi_penting = ['Dr M perlu dikekalkan sebagai perdana menteri',
              'Muhyiddin perlulah menolong Dr M',
              'rakyat perlu menolong Muhyiddin']

I just want to test the model given this isi penting, because we all know, Dr M and Muhyiddin are not supporting each others in the real world.

generate#

def greedy_decoder(self, strings: List[str]):
    """
    generate a long text given a isi penting.
    Decoder is greedy decoder with beam width size 1, alpha 0.5 .

    Parameters
    ----------
    strings: List[str]

    Returns
    -------
    result: str
    """
[5]:
pprint(model.greedy_decoder(isi_penting))
(': Presiden Bersatu, Tan Sri Muhyiddin Yassin perlu mengekalkan Tun Dr '
 'Mahathir Mohamad sebagai perdana menteri berbanding Datuk Seri Anwar Ibrahim '
 'yang hanya minta bantuan untuk menyelesaikan kemelut kedudukan '
 'negara.Muhyiddin berkata, ini kerana semua pihak tahu masalah yang dihadapi '
 'oleh Perdana Menteri adalah di luar bidang kuasa beliau sendiri.Katanya, '
 'Muhyiddin perlu membantu beliau kerana beliau percaya rakyat Malaysia tahu '
 'apa yang berlaku di luar bidang kuasa beliau."Apa yang berlaku di luar '
 'bidang kuasa Dr Mahathir... semua tahu bahawa ini berlaku di bawah '
 'kepimpinan Anwar."Muhyiddin dan seluruh rakyat yang tahu apa yang berlaku di '
 'Johor."Ini kerana di Johor ini, majoriti menteri-menteri dalam Pakatan '
 'Harapan banyak sangat ketua-ketua parti."Jadi Muhyiddin perlu bantu Dr '
 'Mahathir sebab rakyat tahu apa yang berlaku di Johor Bahru," katanya dalam '
 'satu kenyataan di sini, pada Jumaat.Dalam pada itu, Muhyiddin berkata, '
 'rakyat juga perlu menolong Muhyiddin untuk menyelesaikan masalah yang '
 'melanda negara ketika ini.Menurutnya, Muhyiddin perlu menggalas tugas dengan '
 'baik dan memastikan keadaan negara berada dalam keadaan baik.')

Pretty good!

[6]:
isi_penting = ['Neelofa tetap dengan keputusan untuk berkahwin akhir tahun ini',
              'Long Tiger sanggup membantu Neelofa',
              'Tiba-tiba Long Tiger bergaduh dengan Husein']

We also can give any isi penting even does not make any sense.

[7]:
pprint(model.greedy_decoder(isi_penting))
('Kuala Lumpur: Pelakon, Neelofa tetap dengan keputusan dibuat untuk berkahwin '
 'penutup tahun ini, selepas mengadakan pertemuan dengan Long Tiger. Neelofa '
 'atau nama sebenarnya, Mohd Neelofa Ahmad Noor berkata, dia tidak pernah '
 'merancang untuk berkahwin, namun menegaskan dirinya lebih mengutamakan masa '
 'depan. "Saya seronok bersama keluarga. Kalau kami berkahwin awal tahun ini, '
 'ia mengambil masa yang lama. Itu impian saya tetapi biarlah, selepas setahun '
 'saya berehat, saya akan mula bekerja. "Jadi, apabila sering sesi pertemuan '
 'dengan Long Tiger, saya kena tegas mengenai perkara ini. Bukan soal nak '
 'memalukan diri sendiri tetapi siapa yang boleh menghentam saya," katanya '
 'kepada Bh Online. Dalam sesi pertemuan itu, Neelofa yang juga pengacara '
 'acara Top 5, bergaduh dengan Husein, dalam pergaduhan yang berlaku di '
 'Kompleks Mahkamah Tinggi Syariah di sini, baru-baru ini. Ditanya mengenai '
 'hubungannya dengan wanita itu, Neelofa berkata, mereka masih belum '
 'menyelesaikan perkara itu dengan baik. "Saya tidak tahu pasal semua ini, '
 'tetapi ia akan diselesaikan menerusi cara baik. Tidak kiralah apa yang kami '
 'tidak cakap pun. "Pada mulanya kami hanya mahu membebaskan mereka daripada '
 'sebarang isu, namun selepas beberapa hari bergaduh, kami akhirnya mengambil '
 'keputusan untuk berkahwin dengan Hadiza Aziz. "Jika mereka mahu, kami akan '
 'membendung, namun pada masa yang sama, kami tidak mahu bergaduh dengan '
 'lelaki yang digelar Long Tiger," katanya.')

How about karangan like high school?

[8]:
# http://mieadham86.blogspot.com/2016/09/isi-isi-penting-karangan-bahasa-melayu.html
# KEBAIKAN AMALAN BERGOTONG-ROYONG

isi_penting = ['Dapat memupuk semangat kerjasama',
               'Dapat mengeratkan hubungan silaturahim.',
               'Kebersihan kawasan persekitaran terpelihara.',
               'Terhindar daripada wabak penyakit seperti Denggi',
               'Mengisi masa lapang',
               'Menerapkan nilai-nilai murni dalam kehidupan']
[10]:
pprint(model.greedy_decoder(isi_penting))
('Dewasa ini, kes-kes seumpama denggi semakin menular di kalangan masyarakat. '
 'Justeru, individu yang bertanggungjawab dan berkesan perlu memainkan peranan '
 'penting dalam memastikan persekitaran dalam komuniti terjamin. Persis kata '
 'peribahasa Melayu, melentur buluh biarlah dari rebungnya. Oleh itu, tindakan '
 'yang wajar perlu diambil terutamanya jika kita mengamalkan sikap-sikap di '
 'dalam komuniti supaya kehidupan kita tidak terjejas. Oleh itu, kita perlu '
 'mengamalkan sikap bekerjasama dengan masyarakat dalam memastikan '
 'persekitaran kita selamat. Jika kita sehati, sikap bekerjasama dapat dipupuk '
 'dan dibudayakan dalam masyarakat. Maka, amalan ini secara tidak langsung '
 'mampu membantu kita supaya tidak hidup lebih sejahtera. Pada masa yang sama, '
 'ia juga dapat mengelakkan berlakunya sebarang masalah kesihatan dan '
 'seterusnya membantu yang mungkin akan berlaku pada masa akan datang. '
 'Masyarakat yang prihatin perlu meluahkan perasaan dan menitik beratkan soal '
 'kebersihan kawasan persekitaran. Bak kata peribahasa Melayu, mencegah lebih '
 'baik daripada merawat. Tamsilnya, pihak kerajaan perlu menjalankan usaha '
 'yang bersungguh-sungguh sebagai tanggungjawab yang diamanahkan. Selain itu, '
 'sikap masyarakat yang mengambil berat tentang kebersihan kawasan '
 'persekitaran dapat membantu mengurangkan masalah kesihatan yang kian '
 'menular. Secara tidak langsung, masyarakat awam akan melahirkan masyarakat '
 'yang peka dan menghargai keberadaan anggota masyarakat di sekeliling mereka. '
 'Bagi memastikan kebersihan kawasan persekitaran terjamin, kita perlu '
 'memastikan komuniti yang berada ditaarapkan dalam keadaan bersih dan terurus '
 'agar keselamatan masyarakat terjamin. Para pekerja dan ahli peniaga perlu '
 'memastikan kebersihan kawasan mereka dijaga dengan baik. Hal ini kerana, '
 'kita akan berhadapan dengan pelbagai masalah kesihatan yang mengakibatkan '
 'Malaysia menjadi negara ketiga yang paling teruk terkena jangkitan demam '
 'denggi pada tahun lepas. Sekiranya kita mempraktikkan amalan berkenaan, kita '
 'akan berhadapan dengan bahaya. Sekiranya aktiviti ini diteruskan, kita akan '
 'terencat daripada jumlah kes penyakit yang menyerang. Secara tidak langsung, '
 'kita akan dapat membendung penularan wabak penyakit di kalangan masyarakat. '
 'Sebagai contoh, wabak denggi di Malaysia berkemungkinan boleh menularkan '
 'jangkitan kepada penduduk di negeri-negeri yang lain. Oleh itu, langkah ini '
 'wajar dan mempunyai sistem pengurusan kebersihan yang terbaik bagi '
 'membolehkan jumlah pesakit yang dirawat di hospital meningkat. Kesannya, ia '
 'dapat membantu kita untuk mengamalkan kaedah yang betul dan matang dalam '
 'kehidupan. Selain itu, sekiranya kita mengamalkan sikap kerja, kita akan '
 'sentiasa berusaha supaya kita terhindar daripada wabak penyakit yang '
 'menyerang penduduk di sekeliling kita. Bak kata peribahasa Melayu, mencegah '
 'lebih baik daripada merawat. Semua pihak perlu berganding bahu bagai aur '
 'dengan tebing untuk menjaga kesihatan dan keselamatan para pekerja dalam '
 'kawasan yang sangat rentan. Kebersihan kawasan persekitaran merupakan elemen '
 'yang penting dalam memastikan persekitaran kita selamat daripada jangkitan '
 'wabak seperti denggi. Kita tentunya tidak mahu ada tempat yang kotor dan '
 'busuk namun kita tidak boleh berbuat demikian kerana ia merupakan elemen '
 'yang tidak boleh dijual beli. Oleh itu, jika kita mengamalkan sikap kerja '
 "yang 'membersihkan', kita akan menjadi lebih baik dan selamat daripada wabak "
 'penyakit seperti denggi. Jika kita mengamalkan sikap ini, kita akan menjadi '
 'lebih baik dan selamat daripada ancaman penyakit-penyakit yang berbahaya. '
 'Tidak kira apabila kita sudah terbiasa dengan amalan ini, sudah pasti '
 'keselamatan kita akan terjamin. Selain itu, kita perlulah dirikan amalan '
 'seperti rajin mencuci tangan menggunakan sabun atau segala benda lain kerana '
 'kita juga mempunyai tempat yang sesuai untuk membasuh tangan dengan baik. '
 'Perkara ini boleh menjadi perubahan kepada amalan kita dalam kehidupan '
 'apabila kita berusaha untuk membersihkan kawasan yang telah dikenal pasti. '
 'Secara tidak langsung, kita dapat bertukar-tukar fikiran dan mengamalkan '
 'nilai-nilai murni dalam kehidupan. Hal ini demikian kerana, kita antara '
 'mereka yang merancang untuk melakukan sesuatu bagi mengelakkan berlakunya '
 'kemalangan. Hakikatnya, amalan membasuh tangan menggunakan sabun atau benda '
 'lain adalah berniat buruk kerana akan dapat mengganggu kelancaran proses '
 'pemanduan terutamanya apabila tidur. Kesannya, kita akan mewujudkan '
 'masyarakat yang bertimbang rasa dan bergantung kepada orang lain untuk '
 'melakukan kerja mereka walaupun di mana mereka berada. Selain itu, kita '
 'dapat mengamalkan cara yang betul dalam memastikan kebersihan kawasan '
 'persekitaran adalah terjamin. Kita tidak boleh menyembunyikan diri daripada '
 'pengetahuan umum seperti di tempat awam seperti tempat letak kereta yang '
 'sering digunakan oleh orang ramai. Jika kita menggunakan tandas awam dan '
 'menggunakan botol air untuk membersihkan kawasan berkenaan, kita akan mudah '
 'terdedah dengan wabak penyakit yang membahayakan kesihatan. Selain itu, kita '
 'juga perlu sentiasa berjaga-jaga dengan memakai penutup mulut dan hidung '
 'jika ada demam. Jika kita tidak mengamalkan kebersihan, besar kemungkinan ia '
 'boleh mengundang kepada penularan wabak penyakit. Bak kata peribahasa '
 'Melayu, mencegah lebih baik daripada merawat. Jika kita membuat keputusan '
 'untuk menutup mulut atau hidung dengan pakaian yang bersih dan bijak, kita '
 'akan menjadi lebih baik daripada menyelamatkan diri sendiri daripada '
 'jangkitan penyakit. Andai kata, pengamal media dapat menggunakan telefon '
 'pintar ketika membuat liputan di media massa, proses ini akan membuatkan '
 'kehidupan mereka lebih mudah dan sukar. Selain itu, proses nyah kuman juga '
 'dapat memastikan kebersihan di kawasan rumah kita terjamin. Contohnya, semua '
 'stesen minyak dan restoran makanan segera perlu memakai penutup mulut dan '
 'hidung secara betul agar penularan wabak penyakit dapat dihentikan. Penonton '
 'yang berada di dalam juga wajar digalakkan untuk menggunakan penutup mulut '
 'dan hidung agar mudah terkena jangkitan kuman. Selain itu, pengisian masa '
 'lapang yang terdapat di kawasan tempat awam dapat mendidik masyarakat untuk '
 'mengamalkan nilai-nilai murni seperti rajin mencuci tangan menggunakan sabun '
 'dan air supaya tidak terdedah kepada virus denggi. Walaupun kita mempunyai '
 'ramai kenalan yang ramai tetapi tidak dapat mengamalkannya kerana kita perlu '
 'adalah rakan yang sedar dan memahami tugas masing-masing. Pelbagai cara yang '
 'boleh kita lakukan bagi memastikan hospital atau klinik-klinik kerajaan '
 'menjadi')
[11]:
# http://mieadham86.blogspot.com/2016/09/isi-isi-penting-karangan-bahasa-melayu.html
# CARA MENJADI MURID CEMERLANG

isi_penting = ['Rajin berusaha – tidak mudah putus asa',
               'Menghormati orang yang lebih tua – mendapat keberkatan',
               'Melibatkan diri secara aktif dalam bidang kokurikulum',
               'Memberi tumpuan ketika guru mengajar.',
               'Berdisiplin – menepati jadual yang disediakan.',
               'Bercita-cita tinggi – mempunyai keazaman yang tinggi untuk berjaya']
[12]:
pprint(model.greedy_decoder(isi_penting))
('Sejak akhir-akhir ini, pelbagai isu yang hangat diperkatakan oleh masyarakat '
 'yang berkait dengan sambutan Hari Raya Aidilfitri. Pelbagai faktor yang '
 'melatari perkara yang berlaku dalam kalangan masyarakat hari ini, khususnya '
 'bagi golongan muda. Dikatakan bahawa kehidupan kita hari ini semakin '
 'mencabar terutamanya kesibukan dalam menjalankan tugas dan mengajar. '
 'Justeru, tidak dinafikan apabila semakin jauh kita, semakin ramai yang '
 'memilih untuk lalai atau tidak mematuhi arahan yang telah ditetapkan. '
 'Mendepani cabaran ini, golongan muda terpaksa menempuhi segala cabaran untuk '
 'menjadi lebih baik dan lebih baik. Minda yang perlu diterapkan, terutama di '
 'dalam kelas untuk mempelajari ilmu pengetahuan. Jika tidak, kita akan '
 'menjadi lebih mudah untuk menilai dan menyelesaikan masalah yang dihadapi. '
 'Oleh itu, kita perlu berfikir untuk menetapkan langkah yang patut atau perlu '
 'dilaksanakan bagi mengatasi masalah yang berlaku. Selain itu, guru-guru juga '
 'harus mendidik peserta-peserta dalam kelas supaya dapat menjalankan kegiatan '
 'dengan lebih serius dan berkesan. Guru-Guru juga seharusnya berusaha untuk '
 'meningkatkan kemahiran mereka dalam kalangan pelajar. Seperti peribahasa '
 'Melayu, melentur buluh biarlah dari rebungnya. Setiap insan mempunyai '
 'peranan masing-masing dan tanggungjawab yang masing-masing. Kesempatan untuk '
 'memberikan nasihat dan teguran adalah lebih penting dan membantu secara '
 'halus dan bijaksana dalam melakukan sesuatu. Selain itu, guru-guru hendaklah '
 'berani untuk melakukan sesuatu perkara yang memberi manfaat kepada para '
 'pelajar yang lain. Cara ini adalah dengan melakukan aktiviti-aktiviti yang '
 'boleh memberi manfaat kepada para pelajar. Selain itu, guru-guru juga '
 'perlulah menjaga disiplin mereka dengan sebaik-baiknya. Dalam menyampaikan '
 'nasihat dan teguran secara berterusan, pelajar juga boleh melakukan perkara '
 'yang boleh mendatangkan mudarat. Anak-Anak awal pelajar dan rakan-rakan '
 'mereka juga boleh melakukan tugas yang bermanfaat. Keadaan ini membolehkan '
 'mereka untuk lebih berusaha dan memberikan nasihat yang berguna kepada kaum '
 'lain. Oleh itu, mereka perlu sentiasa mengingati dan mendidik pelajar dengan '
 'nilai-nilai yang murni. Setiap orang mempunyai impian yang tinggi untuk '
 'berjaya. Sama ada kita berjaya atau tidak, pencapaian yang diperoleh setelah '
 'tamat belajar akan memberikan kita nilai yang baik dan perlu menjadi contoh '
 'yang baik untuk negara kita.')