Advanced Indonesian Natural Language Processing Library
Project description
nahiarhdNLP - Advanced Indonesian Natural Language Processing Library
Advanced Indonesian Natural Language Processing Library dengan fitur preprocessing teks, normalisasi slang, konversi emoji, koreksi ejaan, dan banyak lagi.
๐ Instalasi
pip install nahiarhdNLP
๐ฆ Import Library
# Import module preprocessing
from nahiarhdNLP import preprocessing
# Import fungsi spesifik
from nahiarhdNLP.preprocessing import (
remove_html, remove_url, remove_mentions, replace_slang,
emoji_to_words, correct_spelling, clean_text
)
# Import kelas untuk penggunaan advanced
from nahiarhdNLP.preprocessing import (
TextCleaner, SpellCorrector, StopwordRemover,
Stemmer, EmojiConverter, Tokenizer
)
# Import dataset loader (dua cara)
from nahiarhdNLP.datasets import DatasetLoader
# atau
from nahiarhdNLP.datasets.loaders import DatasetLoader
๐ Contoh Penggunaan
1. ๐งน TextCleaner - Membersihkan Teks
from nahiarhdNLP.preprocessing import TextCleaner
cleaner = TextCleaner()
# Membersihkan URL
url_text = "kunjungi https://google.com sekarang!"
clean_result = cleaner.clean_urls(url_text)
print(clean_result)
# Output: "kunjungi sekarang!"
# Membersihkan mentions
mention_text = "Halo @user123 apa kabar?"
clean_result = cleaner.clean_mentions(mention_text)
print(clean_result)
# Output: "Halo apa kabar?"
# Membersihkan teks secara menyeluruh
messy_text = "Halooo!!! @user #trending https://example.com ๐"
clean_result = cleaner.clean(messy_text)
print(clean_result)
# Output: teks yang sudah dibersihkan
2. โ๏ธ SpellCorrector - Koreksi Ejaan & Normalisasi Slang
from nahiarhdNLP.preprocessing import SpellCorrector
spell = SpellCorrector()
# Koreksi kata salah eja
word = "mencri"
corrected = spell.correct_word(word)
print(corrected)
# Output: "mencuri"
# Koreksi kalimat lengkap (termasuk normalisasi slang)
sentence = "gw lg mencri informsi"
corrected = spell.correct_sentence(sentence)
print(corrected)
# Output: "saya lagi mencuri informasi"
3. ๐ซ StopwordRemover - Menghapus Stopwords
from nahiarhdNLP.preprocessing import StopwordRemover
stopword = StopwordRemover()
stopword._load_data() # Load dataset stopwords
# Menghapus stopwords
text = "saya suka makan nasi goreng"
result = stopword.remove_stopwords(text)
print(result)
# Output: "suka makan nasi goreng"
# Menambah custom stopwords
stopword.add_custom_stopwords(["adalah", "akan"])
4. ๐ EmojiConverter - Konversi Emoji
from nahiarhdNLP.preprocessing import EmojiConverter
emoji = EmojiConverter()
emoji._load_data() # Load dataset emoji
# Emoji ke teks
emoji_text = "๐ ๐ ๐"
text_result = emoji.emoji_to_text_convert(emoji_text)
print(text_result)
# Output: "wajah_gembira wajah_tertawa wajah_bercinta"
# Teks ke emoji
text = "wajah_gembira"
emoji_result = emoji.text_to_emoji_convert(text)
print(emoji_result)
# Output: "๐"
5. ๐ช Tokenizer - Tokenisasi
from nahiarhdNLP.preprocessing import Tokenizer
tokenizer = Tokenizer()
# Tokenisasi teks
text = "ini contoh tokenisasi"
tokens = tokenizer.tokenize(text)
print(tokens)
# Output: ['ini', 'contoh', 'tokenisasi']
6. ๐ฟ Stemmer - Stemming (Memerlukan Sastrawi)
from nahiarhdNLP.preprocessing import Stemmer
try:
stemmer = Stemmer()
text = "bermain-main dengan senang"
result = stemmer.stem(text)
print(result)
# Output: "main main dengan senang"
except ImportError:
print("Install Sastrawi dengan: pip install Sastrawi")
7. ๐ ๏ธ Fungsi Individual
from nahiarhdNLP.preprocessing import (
remove_html, remove_url, remove_mentions,
replace_slang, emoji_to_words, correct_spelling,
remove_stopwords, clean_text
)
# Menghapus HTML
html_text = "website <a href='https://google.com'>google</a>"
clean_text_result = remove_html(html_text)
print(clean_text_result)
# Output: "website google"
# Menghapus URL
url_text = "kunjungi https://google.com sekarang!"
clean_text_result = remove_url(url_text)
print(clean_text_result)
# Output: "kunjungi sekarang!"
# Normalisasi slang (menggunakan SpellCorrector)
slang_text = "emg siapa yg nanya?"
normal_text = replace_slang(slang_text)
print(normal_text)
# Output: "memang siapa yang bertanya?"
# Konversi emoji
emoji_text = "๐ ๐ ๐"
text_result = emoji_to_words(emoji_text)
print(text_result)
# Output: "wajah_gembira wajah_tertawa wajah_bercinta"
# Koreksi ejaan
spell_text = "saya mencri informsi"
corrected = correct_spelling(spell_text)
print(corrected)
# Output: "saya mencuri informasi"
# Cleaning menyeluruh
messy_text = "Halooo!!! @user #trending https://example.com"
cleaned = clean_text(messy_text)
print(cleaned)
# Output: teks yang sudah dibersihkan
8. ๐ Dataset Loader
from nahiarhdNLP.datasets import DatasetLoader
loader = DatasetLoader()
# Load stopwords dari CSV lokal
stopwords = loader.load_stopwords_dataset()
print(f"Jumlah stopwords: {len(stopwords)}")
# Load slang dictionary dari CSV lokal
slang_dict = loader.load_slang_dataset()
print(f"Jumlah slang: {len(slang_dict)}")
# Load emoji dictionary dari CSV lokal
emoji_dict = loader.load_emoji_dataset()
print(f"Jumlah emoji: {len(emoji_dict)}")
# Load wordlist dari JSON lokal
wordlist = loader.load_wordlist_dataset()
print(f"Jumlah kata: {len(wordlist)}")
Catatan: Semua dataset (stopword, slang, emoji, wordlist) di-load langsung dari file CSV/JSON di folder
nahiarhdNLP/datasets/. Tidak ada proses cache atau download dari HuggingFace.
๐จ Error Handling
try:
from nahiarhdNLP.preprocessing import SpellCorrector
spell = SpellCorrector()
result = spell.correct_sentence("test")
except ImportError:
print("Package nahiarhdNLP belum terinstall")
print("Install dengan: pip install nahiarhdNLP")
except Exception as e:
print(f"Error: {e}")
๐ก Tips Penggunaan
- Untuk cleaning dasar: Gunakan
clean_text()atau kelasTextCleaner - Untuk kontrol penuh: Gunakan kelas individual (
TextCleaner,SpellCorrector, dll) - Untuk spell correction + slang: Gunakan
SpellCorrectoryang menggabungkan kedua fitur - Untuk stemming: Install Sastrawi terlebih dahulu:
pip install Sastrawi - Untuk load dataset: Gunakan
DatasetLoaderdarinahiarhdNLP.datasets - Untuk inisialisasi kelas: Jangan lupa panggil
_load_data()untuk kelas yang memerlukan dataset
โก Performance & Dataset
Mulai versi terbaru, nahiarhdNLP menggunakan dataset lokal yang sudah disediakan:
- Stopwords: File
stop_word.csv - Slang Dictionary: File
slang.csv - Emoji Mapping: File
emoji.csv - Wordlist: File
wordlist.json - KBBI Dictionary: File
kata_dasar_kbbi.csv
Semua dataset tersimpan di folder nahiarhdNLP/datasets/ dan diakses melalui DatasetLoader.
๐ฆ Dependencies
Package ini membutuhkan:
pandas- untuk load dan proses dataset CSV/JSONsastrawi- untuk stemming (opsional)rich- untuk output formatting (opsional)
๐ง Struktur Modul
nahiarhdNLP/
โโโ datasets/
โ โโโ loaders.py # DatasetLoader class
โ โโโ emoji.csv # Dataset emoji
โ โโโ slang.csv # Dataset slang
โ โโโ stop_word.csv # Dataset stopwords
โ โโโ wordlist.json # Dataset wordlist
โ โโโ kata_dasar_kbbi.csv # Dataset KBBI
โโโ preprocessing/
โ โโโ cleaning/
โ โ โโโ text_cleaner.py # TextCleaner class
โ โโโ linguistic/
โ โ โโโ stemmer.py # Stemmer class
โ โ โโโ stopwords.py # StopwordRemover class
โ โโโ normalization/
โ โ โโโ emoji.py # EmojiConverter class
โ โ โโโ spell_corrector.py # SpellCorrector class
โ โโโ tokenization/
โ โ โโโ tokenizer.py # Tokenizer class
โ โโโ utils.py # Fungsi utility individual
โโโ demo.py # File demo penggunaan
๐ Perubahan Versi 1.1.0
- โ
Menggabungkan spell correction dan slang normalization dalam
SpellCorrector - โ Semua dataset menggunakan file lokal (CSV/JSON)
- โ Struktur yang lebih terorganisir dengan pemisahan kelas dan fungsi
- โ
Penambahan
DatasetLoaderuntuk manajemen dataset terpusat - โ Menghapus dependency HuggingFace untuk dataset
- โ Menghapus fitur
preprocess()all-in-one danpipeline()(akan ditambahkan di versi mendatang)
๐ Troubleshooting
Error saat import dataset:
# Pastikan memanggil _load_data() untuk kelas yang memerlukan dataset
stopword = StopwordRemover()
stopword._load_data() # Penting!
Error Sastrawi tidak ditemukan:
pip install Sastrawi
Error pandas tidak ditemukan:
pip install pandas
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nahiarhdnlp-1.1.0.tar.gz.
File metadata
- Download URL: nahiarhdnlp-1.1.0.tar.gz
- Upload date:
- Size: 781.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f80a8860f762b22a8eb1b7966e1114e8bd2f7de1ea2678ed575616a9a492181
|
|
| MD5 |
3e371ff50db81c89f185401bc589dd06
|
|
| BLAKE2b-256 |
76a3f79d5a19769b1e7e226b1f2d7cc6cb24706fd96cb2172bbc247e96296468
|
File details
Details for the file nahiarhdnlp-1.1.0-py3-none-any.whl.
File metadata
- Download URL: nahiarhdnlp-1.1.0-py3-none-any.whl
- Upload date:
- Size: 786.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1566966a3c5c7c475918a6b3ae49b4456c15ff5648ca04843a216d0cfe07004e
|
|
| MD5 |
75dd55d5d128efcf7f4304972187c9c9
|
|
| BLAKE2b-256 |
24fc360861b193fd6658c04089e6749431f039e037e70ff80ed97bd989a0a88a
|