Pemrosesan bahasa alami adalah aspek pembelajaran mesin yang memungkinkan Anda memproses kata-kata tertulis menjadi bahasa yang ramah mesin. Teks tersebut kemudian menjadi tweakable, dan Anda dapat menjalankan algoritma komputasi pada mereka yang Anda inginkan.
Logika di balik teknologi menawan ini tampaknya rumit, tetapi sebenarnya tidak. Dan bahkan sekarang, dengan pemahaman yang kuat tentang pemrograman Python dasar, Anda dapat membuat pengolah kata DIY baru dengan toolkit bahasa alami (NLTK).
Berikut cara memulai dengan NLTK Python.
Apa itu NLTK dan Bagaimana Cara Kerjanya?
Ditulis dengan Python, NLTK menampilkan berbagai fungsi manipulasi string. Ini adalah perpustakaan bahasa alami serbaguna dengan repositori model yang luas untuk berbagai aplikasi bahasa alami.
Dengan NLTK, Anda dapat memproses teks mentah dan mengekstrak fitur yang berarti darinya. Ini juga menawarkan model analisis teks, tata bahasa berbasis fitur, dan sumber daya leksikal yang kaya untuk membangun model bahasa yang lengkap.
Cara Mengatur NLTK
Pertama, buat folder root proyek di mana saja di PC Anda. Untuk mulai menggunakan perpustakaan NLTK, buka terminal Anda ke folder root yang Anda buat sebelumnya dan membuat lingkungan virtual.
Kemudian, instal toolkit bahasa alami ke lingkungan ini menggunakan pip:
pip install nltk
NLTK, bagaimanapun, menampilkan berbagai kumpulan data yang berfungsi sebagai dasar untuk model bahasa alami yang baru. Untuk mengaksesnya, Anda perlu memutar pengunduh data bawaan NLTK.
Jadi, setelah Anda berhasil menginstal NLTK, buka file Python Anda menggunakan editor kode apa pun.
Kemudian impor nltk modul dan instantiate pengunduh data menggunakan kode berikut:
pip install nltk
nltk.download()
Menjalankan kode di atas melalui terminal akan menampilkan antarmuka pengguna grafis untuk memilih dan mengunduh paket data. Di sini, Anda harus memilih paket dan klik Unduh tombol untuk mendapatkannya.
Paket data apa pun yang Anda unduh masuk ke direktori tertentu yang ditulis dalam Unduh Direktori bidang. Anda dapat mengubah ini jika Anda suka. Tetapi cobalah untuk mempertahankan lokasi default pada level ini.
Terkait: Editor Kode Gratis Terbaik untuk Menulis Aplikasi Pertama Anda
Catatan: Paket data ditambahkan ke variabel sistem secara default. Jadi, Anda dapat terus menggunakannya untuk proyek berikutnya terlepas dari lingkungan Python yang Anda gunakan.
Cara Menggunakan Tokenizer NLTK
Pada akhirnya, NLTK menawarkan model tokenizing terlatih untuk kata dan kalimat. Dengan menggunakan alat ini, Anda dapat membuat daftar kata dari sebuah kalimat. Atau ubah paragraf menjadi susunan kalimat yang masuk akal.
Berikut adalah contoh cara menggunakan NLTK kata_tokenizer:
impor nltk
dari nltk.tokenize impor word_tokenize
word = "Ini adalah contoh teks"
tokenWord = word_tokenizer (kata)
cetak (tokenWord)
Keluaran:
['Ini', 'adalah', 'an', 'contoh', 'teks']
NLTK juga menggunakan tokenizer kalimat yang telah dilatih sebelumnya yang disebut PunktSentenceTokenizer. Ini bekerja dengan memotong paragraf menjadi daftar kalimat.
Mari kita lihat bagaimana ini bekerja dengan paragraf dua kalimat:
impor nltk
dari nltk.tokenize impor word_tokenize, PunktSentenceTokenizer
kalimat = "Ini adalah contoh teks. Ini adalah tutorial untuk NLTK"
token = PunktSentenceTokenizer()
tokenized_sentence = token.tokenize (kalimat)
cetak (tokenized_sentence)
Keluaran:
['Ini adalah contoh teks.', 'Ini adalah tutorial untuk NLTK']
Anda selanjutnya dapat menandai setiap kalimat dalam array yang dihasilkan dari kode di atas menggunakan kata_tokenizer dan Python untuk loop.
Contoh Cara Menggunakan NLTK
Jadi, meskipun kami tidak dapat mendemonstrasikan semua kemungkinan kasus penggunaan NLTK, berikut adalah beberapa contoh bagaimana Anda dapat mulai menggunakannya untuk memecahkan masalah kehidupan nyata.
Dapatkan Definisi Kata dan Bagian Pidatonya
NLTK menampilkan model untuk menentukan bagian pembicaraan, mendapatkan semantik terperinci, dan kemungkinan penggunaan kontekstual dari berbagai kata.
Anda dapat menggunakan jaring kata model untuk menghasilkan variabel untuk teks. Kemudian tentukan artinya dan bagian dari pidatonya.
Misalnya, mari kita periksa kemungkinan variabel untuk "Monyet:"
impor nltk
dari nltk.corpus impor wordnet sebagai wn
print (wn.synsets('monyet'))
Keluaran:
[Synset('monkey.n.01'), Synset('imp.n.02'), Synset('tamper.v.01'), Synset('putter.v.02')]
Kode di atas menampilkan kemungkinan alternatif kata atau sintaksis dan bagian ucapan untuk "Monyet."
Sekarang periksa arti "Monyet" menggunakan definisi metode:
Monyet = wn.synset('monkey.n.01').definition()
Keluaran:
salah satu dari berbagai primata ekor panjang (tidak termasuk prosimians)
Anda dapat mengganti string dalam tanda kurung dengan alternatif lain yang dihasilkan untuk melihat keluaran NLTK.
NS pos_tag model, bagaimanapun, menentukan bagian dari pidato sebuah kata. Anda dapat menggunakan ini dengan kata_tokenizer atau PunktSentenceTokenizer() jika Anda berurusan dengan paragraf yang lebih panjang.
Berikut cara kerjanya:
impor nltk
dari nltk.tokenize impor word_tokenize, PunktSentenceTokenizer
word = "Ini adalah contoh teks. Ini adalah tutorial tentang NLTK"
token = PunktSentenceTokenizer()
tokenized_sentence = token.tokenize (kata)
untuk saya di tokenized_sentence:
tokenWordArray = word_tokenize (i)
partsOfSpeech = nltk.pos_tag (tokenWordArray)
cetak (partsOfSpeech)
Keluaran:
[('Ini', 'DT'), ('adalah', 'VBZ'), ('an', 'DT'), ('contoh', 'NN'), ('teks', 'NN'), ('.', '.')]
[('Ini', 'DT'), ('adalah', 'VBZ'), ('a', 'DT'), ('tutorial', 'JJ'), ('on', 'IN'), ('NLTK', 'NNP')]
Kode di atas memasangkan setiap kata yang diberi token dengan tag ucapannya dalam sebuah tupel. Anda dapat memeriksa arti dari tag ini di Penn Treebank.
Untuk hasil yang lebih bersih, Anda dapat menghapus titik dalam output menggunakan mengganti() metode:
untuk saya di tokenized_sentence:
tokenWordArray = word_tokenize (i.replace('.', ''))
partsOfSpeech = nltk.pos_tag (tokenWordArray)
cetak (partsOfSpeech)
Keluaran lebih bersih:
[('Ini', 'DT'), ('adalah', 'VBZ'), ('an', 'DT'), ('contoh', 'NN'), ('teks', 'NN') ]
[('Ini', 'DT'), ('adalah', 'VBZ'), ('a', 'DT'), ('tutorial', 'JJ'), ('on', 'IN'), ('NLTK', 'NNP')]
Memvisualisasikan Tren Fitur Menggunakan Plot NLTK
Mengekstrak fitur dari teks mentah seringkali membosankan dan memakan waktu. Tetapi Anda dapat melihat penentu fitur terkuat dalam teks menggunakan plot tren distribusi frekuensi NLTK.
NLTK, bagaimanapun, disinkronkan dengan matplotlib. Anda dapat memanfaatkan ini untuk melihat tren tertentu dalam data Anda.
Kode di bawah ini, misalnya, membandingkan satu set kata positif dan negatif pada plot distribusi menggunakan dua abjad terakhir mereka:
impor nltk
dari nltk impor ConditionalFreqDist
Daftar kata negatif dan positif:
negatif = [
'tidak normal', 'menghapuskan', 'menjijikkan',
'keji', 'keji', 'kekejian'
]
positif = [
'berlimpah', 'berlimpah', 'berlimpah',
'berlimpah', 'dapat diakses', 'dapat diakses'
]
# Bagi item di setiap array menjadi pasangan tupple berlabel
# dan gabungkan kedua array:
pos_negData = ([("negatif", neg) untuk neg dalam negatif]+[("positif", pos) untuk pos dalam positif])
# Ekstrak dua huruf terakhir dari array yang dihasilkan:
f = ((pos, i[-2:],) untuk (pos, i) di pos_negData)
# Buat plot distribusi abjad ini
cfd = ConditionalFreqDist (f)
cfd.plot()
Plot distribusi alfabet terlihat seperti ini:
Melihat lebih dekat pada grafik, kata-kata yang diakhiri dengan ce, ds, le, dan, dan tidak memiliki kemungkinan lebih tinggi untuk menjadi teks positif. Tapi yang berakhiran dengan Al, ly, pada, dan te lebih mungkin kata-kata negatif.
Catatan: Meskipun kami telah menggunakan data yang dihasilkan sendiri di sini, Anda dapat mengakses beberapa set data bawaan NLTK menggunakan pembaca Corpus dengan memanggilnya dari badan kelas nltk. Anda mungkin ingin melihat dokumentasi paket corpus untuk melihat bagaimana Anda dapat menggunakannya.
Dengan munculnya teknologi seperti Alexa, deteksi spam, chatbots, analisis sentimen, dan banyak lagi, pemrosesan bahasa alami tampaknya berkembang menjadi fase sub-manusia. Meskipun kami hanya mempertimbangkan beberapa contoh dari apa yang ditawarkan NLTK dalam artikel ini, alat ini memiliki aplikasi yang lebih canggih daripada cakupan tutorial ini.
Setelah membaca artikel ini, Anda harus memiliki ide bagus tentang cara menggunakan NLTK di tingkat dasar. Yang tersisa untuk Anda lakukan sekarang adalah menerapkan pengetahuan ini sendiri!
Tertarik dengan bidang Machine Learning? Mulailah dengan perpustakaan ini.
Baca Selanjutnya
- Pemrograman
- Python
- Bahasa pemrograman
- Pemrograman
Idowu sangat menyukai teknologi dan produktivitas yang cerdas. Di waktu luangnya, dia bermain-main dengan coding dan beralih ke papan catur ketika dia bosan, tetapi dia juga suka melepaskan diri dari rutinitas sesekali. Semangatnya untuk menunjukkan kepada orang-orang tentang teknologi modern memotivasinya untuk menulis lebih banyak.
Berlangganan newsletter kami
Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!
Klik di sini untuk berlangganan