Skip to main content
Input Teks dan Kata Pencarian
  1. Belajar/
  2. Python Fundamental/
  3. Mini Proyek 1: Pencarian Kata dalam Teks/

Input Teks dan Kata Pencarian

467 words·9 mins· loading · loading ·
Rumah Coding
Author
Rumah Coding
Tempatnya belajar coding
Table of Contents
Mini Proyek 1 Pencarian Kata dalam Teks - This article is part of a series.
Part 4: This Article

Pada bagian ini, kita akan mengembangkan fungsionalitas dari aplikasi pencarian kata. Kita akan memperluas metode pencarian kata dalam teks dengan menggunakan fitur-fitur NLTK yang lebih canggih. Salah satu aspek yang akan kita tambahkan adalah penanganan sinonim menggunakan WordNet, sebuah tesaurus dan database bahasa Inggris yang disediakan oleh NLTK. Walaupun menggunakan bahasa Inggris, tetapi hasilnya masih cukup akurat jika digunakan untuk bahasa Indonesia.

a. Pencarian Kata dengan Sinonim Menggunakan WordNet
#

Kita akan menambahkan kemampuan pencarian kata dengan sinonim. Jika kata yang dicari tidak ditemukan dalam teks, kita akan mencoba mencari sinonimnya dan memberikan informasi tentang sinonim yang ditemukan. Buat fungsi search_word_with_synonyms berikut:

def search_word_with_synonyms(tokens, kata_pencarian):
    """
    Fungsi untuk mencari kata dalam teks dengan penanganan sinonim menggunakan WordNet.
    """
    # Mencari kata secara langsung
    indeks_kata = ' '.join(tokens).lower().find(kata_pencarian.lower())

    if indeks_kata != -1:
        print(f"Kata '{kata_pencarian}' ditemukan dalam teks pada indeks {indeks_kata}.")
    else:
        # Jika kata tidak ditemukan, coba cari sinonim menggunakan WordNet
        sinonim = find_synonyms(kata_pencarian)

        if sinonim:
            print(f"Kata '{kata_pencarian}' tidak ditemukan dalam teks.")
            print(f"Namun, sinonim yang mungkin adalah: {', '.join(sinonim)}")
        else:
            print(f"Tidak ditemukan kata atau sinonim untuk '{kata_pencarian}'.")

Pada kode diatas, jika teks tidak ditemukan, kita akan mencari sinonim dari kata tersebut menggunakan fungsi find_synonyms yang akan kita buat pada langkah selanjutnya.

b. Fungsi untuk Mencari Sinonim dengan WordNet
#

Pada bagian ini, kita akan membuat fungsi baru untuk mencari sinonim menggunakan WordNet.

def find_synonyms(word):
    """
    Fungsi untuk mencari sinonim menggunakan WordNet.
    """
    synonyms = []

    # Mendapatkan sinonim dari WordNet
    synsets = wordnet.synsets(word)

    # Menambahkan sinonim ke daftar
    for synset in synsets:
        for lemma in synset.lemmas():
            synonyms.append(lemma.name())

    # Menghapus duplikat dan mengonversi ke huruf kecil
    synonyms = list(set(synonyms))
    synonyms = [syn.lower() for syn in synonyms]

    return synonyms

Penjelasan:

  • wordnet.synsets(word): Mengambil semua sinset (kumpulan sinonim) yang berkaitan dengan kata tertentu dari WordNet.
  • synset.lemmas(): Mengambil semua lemma (kata-kata dasar) yang terkait dengan sinset tersebut.
  • lemma.name(): Mengambil nama dari setiap lemma. list(set(synonyms)): Menghapus duplikat dari daftar sinonim.
  • [syn.lower() for syn in synonyms]: Mengonversi semua sinonim ke huruf kecil untuk keperluan keseragaman.

c. Menjalankan Fungsi Pencarian dengan Sinonim
#

Terakhir, kita perlu memperbarui bagian menjalankan fungsi pada fungsi utama.

if __name__ == "__main__":
    # Mendapatkan input teks dari pengguna
    teks = get_user_text()

    # Mendapatkan input kata pencarian dari pengguna
    kata_pencarian = get_search_word()

    # Tokenisasi teks
    tokens = tokenize_text(teks)

    # Pencarian kata dalam teks dengan penanganan sinonim
    search_word_with_synonyms(tokens, kata_pencarian)

Gunakan perintah berikut untuk menjalankan aplikasi.

python pencarian_kata.py

Berikut adalah contoh hasil print setelah menjalankan aplikasi:

Masukkan teks atau kalimat: Coding adalah salah satu langkah-langkah pemrograman.

Input teks yang dimasukkan:
Coding adalah salah satu langkah-langkah pemrograman.

Masukkan kata yang ingin kamu cari: programming

Kata 'programming' tidak ditemukan dalam teks.
Namun, sinonim yang mungkin adalah: programing, scheduling, programming_language

Dengan penambahan ini, aplikasi akan mencoba mencari kata atau sinonimnya dalam teks dan memberikan informasi yang lebih kaya kepada pengguna. Silakan jalankan kembali aplikasi untuk melihat perbedaannya.

Mini Proyek 1 Pencarian Kata dalam Teks - This article is part of a series.
Part 4: This Article