Source code for malaya.tatabahasa

from malaya.supervised.huggingface import load
from malaya.torch_model.huggingface import Tatabahasa


available_huggingface = {
    'mesolitica/finetune-tatabahasa-t5-tiny-standard-bahasa-cased': {
        'Size (MB)': 139,
        'exactly-match': 0.7665198237,
        'f1': 0.970908229,
        'exactly-match-tags': 0.87404885863,
        'f1-tags': 0.9878723587,
        'Suggested length': 256,
    },
    'mesolitica/finetune-tatabahasa-t5-small-standard-bahasa-cased': {
        'Size (MB)': 242,
        'exactly-match': 0.8145774929,
        'f1': 0.97812780,
        'exactly-match-tags': 0.89447336,
        'f1-tags': 0.990597377,
        'Suggested length': 256,
    },
    'mesolitica/finetune-tatabahasa-t5-base-standard-bahasa-cased': {
        'Size (MB)': 892,
        'exactly-match': 0.760913095,
        'f1': 0.970136249,
        'exactly-match-tags': 0.86583900,
        'f1-tags': 0.9868999035,
        'Suggested length': 256,
    },
}

describe = [
    {'class': 0,
     'Description': 'PAD',
     'salah': '',
     'betul': ''},
    {'class': 1,
     'Description': 'kesambungan subwords',
     'salah': '',
     'betul': '',
     },
    {'class': 2,
     'Description': 'tiada kesalahan',
     'salah': '',
     'betul': '',
     },
    {'class': 3,
     'Description': 'kesalahan frasa nama, Perkara yang diterangkan mesti mendahului "penerang"',
     'salah': 'Cili sos',
     'betul': 'sos cili',
     },
    {'class': 4,
     'Description': 'kesalahan kata jamak',
     'salah': 'mereka-mereka',
     'betul': 'mereka',
     },
    {'class': 5,
     'Description': 'kesalahan kata penguat',
     'salah': 'sangat tinggi sekali',
     'betul': 'sangat tinggi',
     },
    {'class': 6,
     'Description': 'kata adjektif dan imbuhan "ter" tanpa penguat.',
     'salah': 'Sani mendapat markah yang tertinggi sekali.',
     'betul': 'Sani mendapat markah yang tertinggi.',
     },
    {'class': 7,
     'Description': 'kesalahan kata hubung',
     'salah': 'Sally sedang membaca bila saya tiba di rumahnya.',
     'betul': 'Sally sedang membaca apabila saya tiba di rumahnya.',
     },
    {'class': 8,
     'Description': 'kesalahan kata bilangan',
     'salah': 'Beribu peniaga tidak membayar cukai pendapatan.',
     'betul': 'Beribu-ribu peniaga tidak membayar cukai pendapatan',
     },
    {'class': 9,
     'Description': 'kesalahan kata sendi',
     'salah': 'Umar telah berpindah daripada sekolah ini bulan lalu.',
     'betul': 'Umar telah berpindah dari sekolah ini bulan lalu.',
     },
    {'class': 10,
     'Description': 'kesalahan penjodoh bilangan',
     'salah': 'Setiap orang pelajar',
     'betul': 'Setiap pelajar.',
     },
    {'class': 11,
     'Description': 'kesalahan kata ganti diri',
     'salah': 'Pencuri itu telah ditangkap. Beliau dibawa ke balai polis.',
     'betul': 'Pencuri itu telah ditangkap. Dia dibawa ke balai polis.',
     },
    {'class': 12,
     'Description': 'kesalahan ayat pasif',
     'salah': 'Cerpen itu telah dikarang oleh saya.',
     'betul': 'Cerpen itu telah saya karang.',
     },
    {'class': 13,
     'Description': 'kesalahan kata tanya',
     'salah': 'Kamu berasal dari manakah ?',
     'betul': 'Kamu berasal dari mana ?',
     },
    {'class': 14,
     'Description': 'kesalahan tanda baca',
     'salah': 'Kamu berasal dari manakah .',
     'betul': 'Kamu berasal dari mana ?',
     },
    {'class': 15,
     'Description': 'kesalahan kata kerja tak transitif',
     'salah': 'Dia kata kepada saya',
     'betul': 'Dia berkata kepada saya',
     },
    {'class': 16,
     'Description': 'kesalahan kata kerja transitif',
     'salah': 'Dia suka baca buku',
     'betul': 'Dia suka membaca buku',
     },
    {'class': 17,
     'Description': 'penggunaan kata yang tidak tepat',
     'salah': 'Tembuk Besar negeri Cina dibina oleh Shih Huang Ti.',
     'betul': 'Tembok Besar negeri Cina dibina oleh Shih Huang Ti',
     },
]


info = """
tested on 5k generated dataset at https://f000.backblazeb2.com/file/malay-dataset/tatabahasa/test-set-tatabahasa.pkl
""".strip()


[docs]def huggingface( model: str = 'mesolitica/finetune-tatabahasa-t5-small-standard-bahasa-cased', force_check: bool = True, **kwargs, ): """ Load HuggingFace model to fix kesalahan tatabahasa. Parameters ---------- model: str, optional (default='mesolitica/finetune-tatabahasa-t5-small-standard-bahasa-cased') Check available models at `malaya.tatabahasa.available_huggingface`. force_check: bool, optional (default=True) Force check model one of malaya model. Set to False if you have your own huggingface model. Returns ------- result: malaya.torch_model.huggingface.Tatabahasa """ return load( model=model, class_model=Tatabahasa, available_huggingface=available_huggingface, path=__name__, **kwargs, )