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 |
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.
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
|
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. |