Lewati ke isi

indoNLP.dataset

indoNLP.dataset adalah modul yang bertujuan untuk memudahkan mengakses open dataset dalam bidang NLP untuk Bahasa Indonesia.

Dataset(name, dataset_dir=None, auto_download=True)

Handler untuk dataset yang disupport indoNLP, berfungsi untuk mendownload, mengekstract, dan membaca data.

Parameters:

Name Type Description Default
name str

Nama dataset yang disupport indoNLP.

required
dataset_dir str

indoNLP dataset download direktori.

None
auto_download bool

Auto download dataset ketika kelas di inisiasi, jika dataset telah didownload sebelumnya maka proses download akan dilewati secara otomatis.

True

Attributes:

Name Type Description
dataset_name str

Nama dataset yang disupport indoNLP.

dataset_config Dict[str, Any]

Konfigurasi dataset.

file DatasetDirectoryHandler

indoNLP dataset download direktori handler.

downloader DataDownloader

indoNLP dataset downloader.

Examples:

Download dan Loading dataset yang disupport.

>>> handler = indoNLP.dataset.Dataset("twitter-puisi")
>>> data = handler.read()
>>> data

Melihat dataset secara keseluruhan.

>>> data.data

cite()

Mendapatkan cara mengutip dataset.

Examples:

>>> handler = indoNLP.dataset.Dataset("id-abusive-language-detection")
>>> handler.cite()
Ibrohim, M.O., Budi, I.. A Dataset and Preliminaries Study for Abusive Language Detection in Indonesian Social Media. Procedia Computer Science 2018;135:222-229.

get_info()

Mendapatkan informasi dari dataset.

Informasi

Menghasilkan output yang sama dengan fungsi get_supported_dataset_info.

read(get='all')

Membaca file yang terdapat dalam dataset dan meloadnya kedalam memori. Jika data yang terdapat dalam file adalah simetric maka data dapat diload dengan menggunakan pandas.DataFrame.

Parameters:

Name Type Description Default
get Union[str, Tuple[str]]

Nama file di dalam dataset untuk dibaca dan diload kedalam memori, jika "all" diset maka akan dibaca semua file yang ada di dalam dataset.

'all'

Returns:

Type Description
Union[Data, Tuple[Data, ...]]

Data dari file yang telah di read. Jika file yang dibaca berjumlah lebih dari 2 maka akan mengembalikan dalam bentuk Tuple sesuai dengan urutan nama file yang dispesifikasikan pada parameter get, jika "all" yang diberikan maka urutan data dari file akan sesuai dengan urutan yang ada pada metode get_info().

Examples:

Membaca dan loading sebuah file.

>>> handler = indoNLP.dataset.Dataset("twitter-puisi")
>>> puisi = handler.read()
twitter-puisi

twitter-puisi dataset hanya memiliki 1 file didalamnya.

Membaca beberapa file.

>>> handler = indoNLP.dataset.Dataset("asian-language-treebank-parallel-corpus")
>>> data_id, data_ja = handler.read(get=("id", "ja"))
asian-language-treebank-parallel-corpus

asian-language-treebank-parallel-corpus dataset memiliki banyak file didalamnya.

get_supported_dataset_list(filter_tags=None)

Mendapatkan list dataset yang disupport oleh indoNLP.

Parameters:

Name Type Description Default
filter_tags Union[str, Sequence[str]]

Filter dataset berdasarkan tags.

None

Informasi

Untuk lebih lengkapnya list dataset yang disupport indoNLP dapat dilihat pada Supported Dataset.

get_supported_dataset_info(name)

Mendapatkan informasi terkait salah satu dataset yang disupport indoNLP.

Parameters:

Name Type Description Default
name str

Nama dataset yang dipilih.

required

Raises:

Type Description
KeyError

Dataset tidak ditemukan (tidak disupport indoNLP).

DataDownloader(name, files, download_dir=None)

Dataset downloader, berfungsi untuk mendownload dan mengekstrak data secara langsung. Dapat digunakan untuk mendownload data yang tidak disupport oleh indoNLP dengan beberapa konfigurasi tambahan.

Parameters:

Name Type Description Default
name str

Nama dataset.

required
files List[Dict[str, str]]

List dari file - file yang terdapat pada dataset. Dictionary data harus mengandung elemen "filename" (str), "url" (str), dan "extract" (bool) agar proses dapat berjalan dengan baik.

required
download_dir Union[str, DatasetDirectoryHandler]

indoNLP dataset download direktori handler.

None

Attributes:

Name Type Description
dataset_name str

Nama dataset.

dataset_files List[Dict[str, str]]

List dari file - file yang terdapat pada dataset.

file DatasetDirectoryHandler

indoNLP dataset download direktori handler.

dataset_dir str

Direktori tempat dataset didownload.

Examples:

Mendownload data yang tidak disupport oleh indoNLP.

>>> downloader = indoNLP.dataset.downloader.DataDownloader(
...    "msa-all-tab",
...    files=[
...        {
...            "filename": "Bahasa-Wordnet-master.zip",
...            "url": "https://codeload.github.com/limaginaire/Bahasa-Wordnet/zip/refs/heads/master",
...            "is_large": True,
...            "extract": True,
...        }
...    ],
...    download_dir="temp",
...)
>>> downloader.download()

check()

Melakukan pengecekan apakah dataset masih tersedia pada url yang diberikan.

Returns:

Type Description
List[Dict[str, Union[str, int]]]

List status ketersediaan dari file - file di dataset. (status code)

Examples:

Mengecek ketersediaan dataset yang tidak disupport indoNLP di internet.

>>> downloader = indoNLP.dataset.downloader.DataDownloader(
...    "msa-all-tab",
...    files=[
...        {
...            "filename": "Bahasa-Wordnet-master.zip",
...            "url": "https://codeload.github.com/limaginaire/Bahasa-Wordnet/zip/refs/heads/master",
...            "is_large": True,
...            "extract": True,
...        }
...    ],
...    download_dir="temp",
...)
>>> downloader.check()
[{"filename": "Bahasa-Wordnet-master.zip", "available": True, "status": 200}]

download()

Mendownload dataset, proses ini dilakukan dengan mengiterasi setiap file yang ada di dalam dataset untuk di download. Proses ini termasuk dengan proses ekstraksi ketika file telah selesai di download dan extract=True terdapat pada dataset dictionary di parameter files.

Note

Proses ini hanya akan berjalan jika file - file dalam dataset belum pernah didownload sebelumnya.

csv_reader(path, fd_kwargs={}, reader_kwargs={})

csv file reader dimana data yang dikembalikan dapat langsung di pass kedalam pandas.DataFrame untuk melihat data dalam versi tablenya.

Parameters:

Name Type Description Default
path str

Path ke file csv.

required
fd_kwargs Dict[str, Any]

File opener kwargs.

{}
reader_kwargs Dict[str, Any]

Reader kwargs.

{}

Returns:

Type Description
Dict[str, List[Any]]

Data yang siap digunakan.

txt_table_reader(path, header=True, delimiter='\t', fd_kwargs={})

txt file reader dimana data yang dikembalikan dapat langsung di pass kedalam pandas.DataFrame untuk melihat data dalam versi tablenya.

Parameters:

Name Type Description Default
path str

Path ke file txt.

required
header bool

Apakah data memiliki header, jika True diberikan maka baris pertama dari data akan dianggap sebagai header.

True
delimiter str

Delimiter (pemisah).

'\t'
fd_kwargs Dict[str, Any]

File opener kwargs.

{}

Returns:

Type Description
Dict[str, List[Any]]

Data yang siap digunakan.

jsonl_table_reader(path, fd_kwargs={}, reader_kwargs={})

Symmetric jsonl file reader dimana data yang dikembalikan dapat langsung di pass kedalam pandas.DataFrame untuk melihat data dalam versi tablenya.

Parameters:

Name Type Description Default
path str

Path ke jsonl file.

required
fd_kwargs Dict[str, Any]

File opener kwargs.

{}
reader_kwargs Dict[str, Any]

Reader kwargs.

{}

Returns:

Type Description
Dict[str, List[Any]]

Data yang siap digunakan.

Data dataclass

Kelas yang menyimpan data utama setelah dibaca.

Attributes:

Name Type Description
name str

Nama data di dalam dataset.

data Any

Data yang telah dibaca.

part_of str

Dataset utama.

table bool

Apakah data bersifat simetrik?

Note

Jika nama yang diberikan adalah "main" maka data tersebut adalah data utama (data tunggal) dari dataset.

is_table()

Mengetahui apakah data bersifat simetrik.

Informasi

Jika dataset bersifat simetrik maka dataset dapat diload dalam bentuk tabel menggunakan kelas pandas.DataFrame.

Returns:

Type Description
bool

Kesimetrikan data.

Examples:

Melihat kesimetrikan data.

>>> handler = indoNLP.dataset.Dataset("twitter-puisi")
>>> data = handler.read()
>>> data.is_table()
True

Loading data menggunakan pandas.DataFrame.

>>> import pandas as pd
>>> df = pd.DataFrame(data.data)

DatasetDirectoryHandler(download_dir=None)

Dataset directory handler, berfungsi untuk menghandle indoNLP main direktori untuk dataset. Secara otomatis data akan ditempatkan pada ~/.cache/indoNLP.

Parameters:

Name Type Description Default
download_dir str

Path ke main direktori untuk dataset. Jika None diset maka main direktori akan diarakan ke default yaitu ~/.cache/indoNLP.

None

Attributes:

Name Type Description
download_dir str

Direktori indoNLP downloaded dataset.

config_path str

Konfigurasi file path.

handler_config Dict[str, Dict[str, Any]]

indoNLP dataset configuration.