Isi Penting Generator HuggingFace article style#

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

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

Results generated using stochastic methods.

[1]:
%%time
import malaya
from pprint import pprint
CPU times: user 3.1 s, sys: 3.49 s, total: 6.59 s
Wall time: 2.34 s

List available HuggingFace#

[2]:
malaya.generator.isi_penting.available_huggingface()
[2]:
Size (MB) ROUGE-1 ROUGE-2 ROUGE-L Suggested length
mesolitica/finetune-isi-penting-generator-t5-small-standard-bahasa-cased 242.0 0.246203 0.058961 0.15159 1024.0
mesolitica/finetune-isi-penting-generator-t5-base-standard-bahasa-cased 892.0 0.246203 0.058961 0.15159 1024.0

Load HuggingFace#

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 huggingface(model: str = 'mesolitica/finetune-isi-penting-generator-t5-base-standard-bahasa-cased', **kwargs):
    """
    Load HuggingFace model to generate text based on isi penting.

    Parameters
    ----------
    model: str, optional (default='mesolitica/finetune-isi-penting-generator-t5-base-standard-bahasa-cased')
        Check available models at `malaya.generator.isi_penting.available_huggingface()`.

    Returns
    -------
    result: malaya.torch_model.huggingface.IsiPentingGenerator
    """
[3]:
model = malaya.generator.isi_penting.huggingface()

generate#

def generate(
    self,
    strings: List[str],
    mode: str = 'surat-khabar',
    **kwargs,
):
    """
    generate a long text given a isi penting.

    Parameters
    ----------
    strings : List[str]
    mode: str, optional (default='surat-khabar')
        Mode supported. Allowed values:

        * ``'surat-khabar'`` - news style writing.
        * ``'tajuk-surat-khabar'`` - headline news style writing.
        * ``'artikel'`` - article style writing.
        * ``'penerangan-produk'`` - product description style writing.
        * ``'karangan'`` - karangan sekolah style writing.

    **kwargs: vector arguments pass to huggingface `generate` method.
        Read more at https://huggingface.co/docs/transformers/main_classes/text_generation

    Returns
    -------
    result: List[str]
    """

Good thing about HuggingFace#

In generate method, you can do greedy, beam, sampling, nucleus decoder and so much more, read it at https://huggingface.co/blog/how-to-generate

And recently, huggingface released https://huggingface.co/blog/introducing-csearch

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

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

[9]:
pprint(model.generate(isi_penting, do_sample=True, mode = 'artikel',
    max_length=256,
    top_k=50,
    top_p=0.95, ))
['Pada usia 19 tahun, Neelofa mula berpacaran dengan Husein Zolkepli, bekas '
 'suami iparnya. Pada tahun 2018, bekas suami ipar Neelofa Zolkepli berkahwin '
 'dengan pasangan muda berusia 18 tahun. Neelofa, Neelofa, dan Zolkepli telah '
 'saling berkahwin.']
[10]:
pprint(model.generate(isi_penting, mode = 'artikel',
    do_sample=True,
    max_length=256,
    penalty_alpha=0.8, top_k=4,))
['Pada bulan September 2016, Neelofa mengumumkan niatnya untuk berkahwin '
 'dengan Husein Zolkepli. Pada bulan September 2017, Neelofa dan Zolkepli '
 'bertunang.']
[11]:
isi_penting = ['Astronomi (dari) adalah sains semula jadi yang mengkaji objek dan fenomena cakerawala.',
 'Ia menggunakan matematik, fizik, dan kimia untuk menjelaskan asal usul dan evolusi mereka.',
 'Objek yang menarik termasuk planet, bulan, bintang, nebula, galaksi, dan komet.',
 'Fenomena yang relevan termasuk letupan supernova, ledakan sinar gamma, kusar, blazar, pulsar, dan radiasi latar belakang gelombang mikro kosmik.',
 'Secara umum, astronomi mengkaji semua yang berasal dari luar atmosfer Bumi.',
 'Kosmologi adalah cabang astronomi.',
 'Ia mengkaji Alam Semesta secara keseluruhan.']
[14]:
pprint(model.generate(isi_penting, do_sample=True, mode = 'artikel',
    max_length=256,
    top_k=50,
    top_p=0.95, ))
['Astronomi telah menjadi sains yang sangat berpengaruh dalam sains fizikal '
 'dan fizikal. Salah satu daripada banyak yang dapat menangani astronomi, '
 'sains sains moden berkembang menjadi sains dan sains, yang merangkumi '
 'astronomi, astrofizik, fizik, kejuruteraan, kimia, geologi, meteorologi dan '
 'kimia, dan kajian objek dan fenomena cakerawala, di mana astronomi dan sains '
 'sosial mempengaruhi orang, planet, dan kawasan di sekelilingnya. Oleh kerana '
 'pemerhatian yang sangat tepat, yang merangkumi banyak bidang penting, '
 'astronomi sains baru mempunyai banyak kelebihan. Astronomi juga merupakan '
 'bidang yang sedang dikaji dan dikaji dengan baik dalam pelbagai konteks. '
 '"astronomi" adalah sains dalam sains yang difokuskan pada objek dan fenomena '
 'cakerawala, termasuk supernova, bulan, bintang, planet, galaksi, dan komet. '
 'Ahli astronomi mengkaji pelbagai fenomena dan evolusi cakerawala, termasuk '
 'ciri-cirinya yang unik, seperti yang terdapat pada cakera planet atau planet '
 'gergasi, planet, bulan, dan bintang, seperti sinar-X (lihat juga bintang '
 'neutron), dan radiasi latar belakang gelombang mikro kosmik. Astronomi '
 "menggunakan kaedah lain untuk mengkaji pembentukan 'bola' atau 'pesta' "
 'dengan lebih baik daripada yang terdapat di ruang fizikal yang tidak sesuai. '
 'Bidang lain yang dikaji termasuk sains permukaan, astronomi kuantum, '
 'astrofizik atmosfera,']
[13]:
pprint(model.generate(isi_penting, mode = 'artikel',
    do_sample=True,
    max_length=256,
    penalty_alpha=0.8, top_k=4,))
['Pada zaman moden, astronomi telah berkembang menjadi sains yang sangat luas '
 'dan merangkumi pelbagai disiplin. Astronomi telah berkembang dari astronomi '
 'klasik menjadi astronomi saintifik yang merangkumi pelbagai disiplin, dan '
 'telah menjadi sains yang paling berpengaruh. Astronomi moden adalah sains '
 'yang sangat besar yang merangkumi pelbagai disiplin, dan telah berkembang '
 'dalam bidang yang merangkumi astronomi saintifik dan astronomi. Astronomi '
 'adalah disiplin sains yang paling banyak dikaji dan dikaji di dunia, dan '
 'telah menjadi salah satu disiplin yang paling penting dalam bidang ini. '
 'Astronomi telah menjadi disiplin yang paling banyak dikaji dan dikaji di '
 'dunia, dan telah menjadi salah satu disiplin yang paling berpengaruh dalam '
 'bidang ini. Astronomi telah menjadi cabang astronomi, yang mengkaji semua '
 'objek dan objek dari alam semesta. Astronomi juga mengkaji alam semesta, dan '
 'telah mengembangkan sejumlah disiplin baru, termasuk: Astronomi mengkaji '
 'alam semesta, dan juga mengkaji alam semesta. Astronomi mengkaji alam '
 'semesta secara keseluruhan, dan mengkaji Alam Semesta, dan juga mengkaji '
 'alam semesta yang lain. Astronomi mengkaji alam semesta dan alam semesta '
 'secara keseluruhan, dan mengkaji alam semesta dan alam semesta secara '
 'keseluruhan. Astronomi mengkaji alam semesta dan alam semesta secara '
 'keseluruhan, dan mengkaji alam semesta secara keseluruhan. Astronomi '
 'mengkaji semua objek dan fenomena yang berasal dari alam semesta, dan '
 'mengkaji alam semesta,']
[ ]: