All Projects → laymonage → kbbi-python

laymonage / kbbi-python

Licence: MIT license
A Python module that fetches a page of a word/phrase from the Online Indonesian Dictionary (https://kbbi.kemdikbud.go.id).

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to kbbi-python

indic nlp resources
Resources to go with the Indic NLP Library
Stars: ✭ 55 (-5.17%)
Mutual labels:  nlp-resources
minie
An open information extraction system that provides compact extractions
Stars: ✭ 83 (+43.1%)
Mutual labels:  nlp-resources
NLP-Natural-Language-Processing
Projects and useful articles / links
Stars: ✭ 149 (+156.9%)
Mutual labels:  nlp-resources
pdpcid-kumpulan-ide
Kumpulan ide-ide menarik untuk dibahas di podcast anggota PDPC atau ide-ide lainnya.
Stars: ✭ 24 (-58.62%)
Mutual labels:  indonesian-language
Dataset-Sentimen-Analisis-Bahasa-Indonesia
Repositori ini merupakan kumpulan dataset terkait analisis sentimen Berbahasa Indonesia. Apabila Anda menggunakan dataset-dataset yang ada pada repositori ini untuk penelitian, maka cantumkanlah/kutiplah jurnal artikel terkait dataset tersebut. Dataset yang tersedia telah diimplementasikan dalam beberapa penelitian dan hasilnya telah dipublikasi…
Stars: ✭ 38 (-34.48%)
Mutual labels:  indonesian-language
TextFeatureSelection
Python library for feature selection for text features. It has filter method, genetic algorithm and TextFeatureSelectionEnsemble for improving text classification models. Helps improve your machine learning models
Stars: ✭ 42 (-27.59%)
Mutual labels:  nlp-resources
belajar-nodejs
Pengenalan Node.js dan Contoh Aplikasi
Stars: ✭ 56 (-3.45%)
Mutual labels:  indonesian-language
TutorialBank
No description or website provided.
Stars: ✭ 85 (+46.55%)
Mutual labels:  nlp-resources
linguistic-datasets-portuguese
Linguistic Datasets for Portuguese: Lista de conjuntos de dados linguísticos para língua portuguesa com licença flexíveis: banco de dados, lista de palavras, sinônimos, antônimos, dicionário temático, tesauro, linked data, semântica, ontologia e representação de conhecimento
Stars: ✭ 46 (-20.69%)
Mutual labels:  nlp-resources
ppdb
Interface for reading the Paraphrase Database (PPDB)
Stars: ✭ 22 (-62.07%)
Mutual labels:  nlp-resources
awesome-yoruba-nlp
📖 A curated list of resources dedicated to Natural Language Processing (NLP) in the Yoruba Language.
Stars: ✭ 21 (-63.79%)
Mutual labels:  nlp-resources
preprocess-conll05
Scripts for preprocessing the CoNLL-2005 SRL dataset.
Stars: ✭ 17 (-70.69%)
Mutual labels:  nlp-resources
nlp-notebooks
A collection of natural language processing notebooks.
Stars: ✭ 19 (-67.24%)
Mutual labels:  nlp-resources
baik-next
Baik Language Next Release
Stars: ✭ 35 (-39.66%)
Mutual labels:  indonesian-language
kbbi4
Official kbbi5 for Android
Stars: ✭ 26 (-55.17%)
Mutual labels:  indonesian-language
flarum-ext-indonesian
Indonesian Language Pack for Flarum
Stars: ✭ 13 (-77.59%)
Mutual labels:  indonesian-language

kbbi-python

pypi license Test coverage black

Modul Python untuk mengambil sebuah laman untuk kata/frasa dalam KBBI Daring.

Instalasi

Melalui pip

pip install kbbi

Manual

  1. Lakukan instalasi untuk paket-paket prasyarat (requests, BeautifulSoup4, dan appdirs).
  2. Klonakan repositori ini atau unduh kbbi.py.
  3. Letakkan kbbi.py dalam direktori yang Anda inginkan.

Penggunaan

Melalui kode Python

Buat objek KBBI baru (contoh: kata = KBBI('kata kunci')), lalu manfaatkan representasi str-nya dengan memanggil str(kata) atau ambil dict hasil serialisasinya dengan memanggil kata.serialisasi(). Apabila ingin memanfaatkan representasi str-nya tanpa contoh (jika ada), gunakan __str__(contoh=False).

Untuk lebih jelasnya, lihat contoh berikut.

>>> from kbbi import KBBI
>>> cinta = KBBI('cinta')
>>> print(cinta)
cin.ta
1. (a)  suka sekali; sayang benar: orang tuaku -- kepada kami semua; -- kepada sesama makhluk
2. (a)  kasih sekali; terpikat (antara laki-laki dan perempuan): sebenarnya dia tidak -- kepada lelaki itu, tetapi hanya menginginkan hartanya
3. (a)  ingin sekali; berharap sekali; rindu: makin ditindas makin terasa betapa --nya akan kemerdekaan
4. (a) (kl)  susah hati (khawatir); risau: tiada terperikan lagi --nya ditinggalkan ayahnya itu
>>> print(cinta.__str__(contoh=False))
cin.ta
1. (a)  suka sekali; sayang benar
2. (a)  kasih sekali; terpikat (antara laki-laki dan perempuan)
3. (a)  ingin sekali; berharap sekali; rindu
4. (a) (kl)  susah hati (khawatir); risau
>>> kata = KBBI('taksir')
>>> print(kata)
tak.sir (1)
(n)  kira-kira; hitungan (kasar)

tak.sir (2)
1. (a) (Ar)  tidak mengindahkan; lalai; alpa
2. (n) (Ar)  kelalaian; kealpaan
>>> import json
>>> print(json.dumps(kata.serialisasi(), indent=2))
{
  "pranala": "https://kbbi.kemdikbud.go.id/entri/taksir",
  "entri": [
    {
      "nama": "tak.sir",
      "nomor": "1",
      "kata_dasar": [],
      "pelafalan": "",
      "bentuk_tidak_baku": [],
      "varian": [],
      "makna": [
        {
          "kelas": [
            {
              "kode": "n",
              "nama": "Nomina",
              "deskripsi": "kata benda"
            }
          ],
          "submakna": [
            "kira-kira",
            "hitungan (kasar)"
          ],
          "info": "",
          "contoh": []
        }
      ]
    },
    {
      "nama": "tak.sir",
      "nomor": "2",
      "kata_dasar": [],
      "pelafalan": "",
      "bentuk_tidak_baku": [],
      "varian": [],
      "makna": [
        {
          "kelas": [
            {
              "kode": "a",
              "nama": "Adjektiva",
              "deskripsi": "kata yang menjelaskan nomina atau pronomina"
            },
            {
              "kode": "Ar",
              "nama": "Arab",
              "deskripsi": "-"
            }
          ],
          "submakna": [
            "tidak mengindahkan",
            "lalai",
            "alpa"
          ],
          "info": "",
          "contoh": []
        },
        {
          "kelas": [
            {
              "kode": "n",
              "nama": "Nomina",
              "deskripsi": "kata benda"
            },
            {
              "kode": "Ar",
              "nama": "Arab",
              "deskripsi": "-"
            }
          ],
          "submakna": [
            "kelalaian",
            "kealpaan"
          ],
          "info": "",
          "contoh": []
        }
      ]
    }
  ]
}

Untuk memanfaatkan fitur khusus pengguna, buat objek AutentikasiKBBI terlebih dahulu, lalu gunakan objek tersebut dalam pembuatan objek KBBI.

>>> auth = AutentikasiKBBI("[email protected]", "password_saya")
>>> roh = KBBI("roh", auth)
>>> print(roh)
roh
bentuk tidak baku: ruh
Etimologi: [Arab] (n) (sg) (f/m)  رُوْحٌ rūh: tiupan; sesuatu yang membuat manusia dapat hidup
1. (n)  sesuatu (unsur) yang ada dalam jasad yang diciptakan Tuhan sebagai penyebab adanya hidup (kehidupan); nyawa: jika -- sudah berpisah dari badan, berakhirlah kehidupan seseorang
2. (n)  makhluk hidup yang tidak berjasad, tetapi berpikiran dan berperasaan (malaikat, jin, setan, dan sebagainya)
3. (n) (ki)  semangat; spirit: kedamaian bagi seluruh warga sesuai dengan -- Islam
Gabungan Kata
roh Kudus; roh suci

Fitur khusus pengguna yang didukung saat ini adalah etimologi, entri terkait (kata turunan, gabungan kata, peribahasa, dan idiom), saran entri terkait ketika entri tidak ditemukan, dan batas pencarian yang lebih besar.

Untuk mendapatkan representasi str-nya tanpa fitur entri terkait, gunakan __str__(terkait=False).

>>> print(roh.__str__(contoh=False, terkait=False))
roh
bentuk tidak baku: ruh
Etimologi: [Arab] (n) (sg) (f/m)  رُوْحٌ rūh: tiupan; sesuatu yang membuat manusia dapat hidup
1. (n)  sesuatu (unsur) yang ada dalam jasad yang diciptakan Tuhan sebagai penyebab adanya hidup (kehidupan); nyawa
2. (n)  makhluk hidup yang tidak berjasad, tetapi berpikiran dan berperasaan (malaikat, jin, setan, dan sebagainya)
3. (n) (ki)  semangat; spirit

Untuk memanfaatkan fitur saran entri yang mirip apabila entri tidak dapat ditemukan, gunakan objek KBBI yang terdapat pada objek TidakDitemukan melalui atribut objek.

>>> from kbbi import TidakDitemukan
>>> try:
...     huk = KBBI("huk", auth)
... except TidakDitemukan as e:
...     huk = e.objek
...
>>> print(huk)
Berikut beberapa saran entri lain yang mirip.
auk, buk (1), buk (2), cuk, duk, hak (1), hak (2), hak (3), hak (4), huh, hun, hus, Hut, kuk (1), kuk (2), luk, muk, suk, tuk (1), yuk (1), yuk (2), DUK, HUT, KUK, UK, hub (2), Hud, tuk (2), guk
>>> print(huk.serialisasi())
{'pranala': 'https://kbbi.kemdikbud.go.id/entri/huk', 'entri': [], 'saran_entri': ['auk', 'buk (1)', 'buk (2)', 'cuk', 'duk', 'hak (1)', 'hak (2)', 'hak (3)', 'hak (4)', 'huh', 'hun', 'hus', 'Hut', 'kuk (1)', 'kuk (2)', 'luk', 'muk', 'suk', 'tuk (1)', 'yuk (1)', 'yuk (2)', 'DUK', 'HUT', 'KUK', 'UK', 'hub (2)', 'Hud', 'tuk (2)', 'guk']}
>>> print(huk.saran_entri)
['auk', 'buk (1)', 'buk (2)', 'cuk', 'duk', 'hak (1)', 'hak (2)', 'hak (3)', 'hak (4)', 'huh', 'hun', 'hus', 'Hut', 'kuk (1)', 'kuk (2)', 'luk', 'muk', 'suk', 'tuk (1)', 'yuk (1)', 'yuk (2)', 'DUK', 'HUT', 'KUK', 'UK', 'hub (2)', 'Hud', 'tuk (2)', 'guk']

Untuk menonaktifkan fitur khusus pengguna (selain batas pencarian yang lebih besar), tambahkan argumen fitur_pengguna=False pada pemanggilan __str__ atau serialisasi.

Apabila ingin menyimpan kuki autentikasi, panggil method simpan_kuki() pada objek AutentikasiKBBI.

>>> auth.simpan_kuki()

Berikutnya, objek AutentikasiKBBI dapat dibuat tanpa menggunakan alamat posel dan sandi. Autentikasi dilakukan dengan memanfaatkan kuki yang telah disimpan.

>>> auth_baru = AutentikasiKBBI()

Lokasi penyimpanan/pembacaan kuki bisa diatur dengan parameter lokasi_kuki ketika membuat objek AutentikasiKBBI.

>>> auth = AutentikasiKBBI("[email protected]", "sandi_saya", lokasi_kuki="~/kuki_kbbi.json")
>>> auth_baru = AutentikasiKBBI(lokasi_kuki="~/kuki_kbbi.json")

Secara default, lokasi tersebut adalah:

  • Unix: ~/.local/share/kbbi/kuki.json
  • Windows: %localappdata%\laymonage\kbbi\kuki.json
  • macOS: ~/Library/Application Support/kbbi/kuki.json

Melalui CLI

$ kbbi cinta

Pencarian dengan kata/frasa yang dipisahkan oleh spasi harus diapit oleh tanda petik.

$ kbbi "tanggung jawab"

Apabila tidak ingin menampilkan contoh, gunakan --tanpa-contoh atau -c.

$ kbbi "tanggung jawab" --tanpa-contoh

Untuk mendapatkan hasil dalam bentuk serialisasi JSON, gunakan --json atau -j.

$ kbbi "tanggung jawab" --json

Untuk mengatur indentasi pada serialisasi JSON, gunakan --indentasi N atau -i N.

$ kbbi "tanggung jawab" --json --indentasi 2

Untuk memanfaatkan fitur khusus pengguna, lakukan autentikasi terlebih dahulu dengan bantuan kbbi-autentikasi.

$ kbbi-autentikasi $KBBI_POSEL $KBBI_SANDI

Penggunaan kbbi berikutnya akan otomatis menggunakan kuki hasil autentikasi.

Untuk menonaktifkan fitur entri terkait, gunakan --tanpa-terkait atau -t.

$ kbbi alam --tanpa-terkait

Untuk menonaktifkan semua fitur khusus pengguna (selain batas pencarian yang lebih besar dan tanpa menghapus kuki), gunakan --nonpengguna atau -n.

$ kbbi alam --nonpengguna

Untuk menghapus kuki, gunakan opsi --bersihkan atau -c.

$ kbbi-autentikasi --bersihkan

Gunakan opsi --lokasi-kuki atau -l untuk menentukan lokasi kuki yang akan disimpan/dimuat.

$ kbbi-autentikasi $KBBI_POSEL $KBBI_SANDI --lokasi-kuki kukiku.json
$ kbbi alam --lokasi-kuki kukiku.json

Catatan:
kbbi juga bisa dipanggil dengan python kbbi.py.
kbbi-autentikasi juga bisa dipanggil dengan python -c "import kbbi; kbbi.autentikasi()"

Berkontribusi

Silakan lihat CONTRIBUTING.md.

Lisensi

Proyek ini didistribusikan dengan lisensi MIT.

Penafian

Proyek ini merupakan proyek pribadi yang didasari oleh rasa cinta kepada bahasa Indonesia dan bahasa pemrograman Python. Proyek ini bertujuan untuk memudahkan akses ke KBBI daring tanpa menggunakan peramban web. Proyek ini tidak dimaksudkan untuk menyalahi hak cipta KBBI daring. Proyek ini dan pengembangnya tidak berafiliasi dengan Badan Bahasa Kemdikbud maupun Python Software Foundation. Pengembang tidak bertanggung jawab atas penyalahgunaan yang mungkin muncul dari proyek ini.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].