Python

Tutorial NLTK dengan Python

Tutorial NLTK dengan Python
Era data sudah ada di sini. Tingkat di mana data dihasilkan hari ini lebih tinggi dari sebelumnya dan selalu berkembang. Sebagian besar waktu, orang-orang yang berurusan dengan data sehari-hari bekerja sebagian besar dengan data tekstual yang tidak terstruktur. Beberapa data ini memiliki elemen terkait seperti gambar, video, audio, dll. Beberapa sumber data ini adalah website, blog harian, website berita dan masih banyak lagi. Menganalisis semua data ini pada tingkat yang lebih cepat diperlukan dan banyak waktu, juga penting.

Misalnya, sebuah bisnis mungkin menjalankan mesin analisis teks yang memproses tweet tentang bisnisnya yang menyebutkan nama perusahaan, lokasi, memproses, dan menganalisis emosi yang terkait dengan tweet tersebut. Tindakan yang benar dapat diambil lebih cepat jika bisnis itu mengetahui tentang menumbuhkan tweet negatif untuknya di lokasi tertentu untuk menyelamatkan diri dari kesalahan atau apa pun. Contoh umum lainnya akan untuk Youtube. Admin dan moderator Youtube mengetahui tentang efek video tergantung pada jenis komentar yang dibuat pada video atau pesan obrolan video. Ini akan membantu mereka menemukan konten yang tidak pantas di situs web lebih cepat karena sekarang, mereka telah menghapus pekerjaan manual dan menggunakan bot analisis teks pintar otomatis.

Dalam pelajaran ini, kita akan mempelajari beberapa konsep yang terkait dengan analisis teks dengan bantuan perpustakaan NLTK dengan Python. Beberapa konsep ini akan melibatkan:

NLP akan menjadi area fokus utama dalam pelajaran ini karena dapat diterapkan pada skenario kehidupan nyata yang sangat besar di mana NLP dapat memecahkan masalah besar dan krusial. Jika menurut Anda ini terdengar rumit, memang begitu, tetapi konsepnya sama mudahnya untuk dipahami jika Anda mencoba contoh secara berdampingan. Mari mulai menginstal NLTK di mesin Anda untuk memulainya.

Menginstal NLTK

Sekedar catatan sebelum memulai, Anda dapat menggunakan lingkungan virtual untuk pelajaran ini yang dapat kita buat dengan perintah berikut:

python -m virtualenv nltk
sumber nltk/bin/aktifkan

Setelah lingkungan virtual aktif, Anda dapat menginstal pustaka NLTK di dalam virtual env sehingga contoh yang kita buat selanjutnya dapat dieksekusi:

pip install nltk

Kami akan menggunakan Anaconda dan Jupyter dalam pelajaran ini. Jika Anda ingin menginstalnya di mesin Anda, lihat pelajaran yang menjelaskan "Cara Menginstal Anaconda Python di Ubuntu 18".04 LTS” dan bagikan umpan balik Anda jika Anda menghadapi masalah apa pun. Untuk menginstal NLTK dengan Anaconda, gunakan perintah berikut di terminal dari Anaconda:

conda install -c anaconda nltk

Kami melihat sesuatu seperti ini ketika kami menjalankan perintah di atas:

Setelah semua paket yang dibutuhkan terinstal dan selesai, kita dapat mulai menggunakan library NLTK dengan pernyataan impor berikut:

impor nltk

Mari kita mulai dengan contoh NLTK dasar sekarang setelah kita menginstal paket prasyarat.

Tokenisasi

Kita akan mulai dengan Tokenization yang merupakan langkah pertama dalam melakukan analisis teks. Token dapat berupa bagian yang lebih kecil dari sepotong teks yang dapat dianalisis. Ada dua jenis Tokenisasi yang dapat dilakukan dengan NLTK:

Anda dapat menebak apa yang terjadi pada masing-masing Tokenisasi jadi mari selami contoh kode code.

Tokenisasi Kalimat

Seperti namanya, Tokenizer Kalimat memecah sepotong teks menjadi kalimat. Mari kita coba cuplikan kode sederhana untuk hal yang sama di mana kita menggunakan teks yang kita ambil dari tutorial Apache Kafka. Kami akan melakukan impor yang diperlukan

impor nltk
dari nltk.tokenize impor sent_tokenize

Harap dicatat bahwa Anda mungkin menghadapi kesalahan karena ketergantungan yang hilang untuk nltk yang disebut punk. Tambahkan baris berikut tepat setelah impor dalam program untuk menghindari peringatan:

nltk.unduh ('punkt')

Bagi saya, itu memberikan output berikut:

Selanjutnya, kami menggunakan tokenizer kalimat yang kami impor:

text = """Topik dalam Kafka adalah sesuatu tempat pesan dikirim. Konsumen
aplikasi yang tertarik pada topik itu menarik pesan di dalamnya
topik dan dapat melakukan apa saja dengan data itu. Hingga waktu tertentu, sejumlah
aplikasi konsumen dapat menarik pesan ini beberapa kali."""
kalimat = sent_tokenize(teks)
cetak (kalimat)

Kami melihat sesuatu seperti ini ketika kami menjalankan skrip di atas:

Seperti yang diharapkan, teks diatur dengan benar ke dalam kalimat.

Tokenisasi Kata

Seperti namanya, Tokenizers Kata memecah sepotong teks menjadi kata-kata. Mari kita coba cuplikan kode sederhana yang sama dengan teks yang sama seperti contoh sebelumnya:

dari nltk.tokenize impor kata_tokenize
kata = word_tokenize(teks)
cetak (kata-kata)

Kami melihat sesuatu seperti ini ketika kami menjalankan skrip di atas:

Seperti yang diharapkan, teks diatur dengan benar menjadi kata-kata.

Distribusi Frekuensi

Sekarang setelah kita memecahkan teks, kita juga dapat menghitung frekuensi setiap kata dalam teks yang kita gunakan. Ini sangat mudah dilakukan dengan NLTK, berikut adalah cuplikan kode yang kami gunakan:

dari nltk.kemungkinan impor FreqDist
distribusi = FreqDist(kata-kata)
cetak (distribusi)

Kami melihat sesuatu seperti ini ketika kami menjalankan skrip di atas:

Selanjutnya, kita dapat menemukan kata-kata yang paling umum dalam teks dengan fungsi sederhana yang menerima jumlah kata untuk ditampilkan:

# Kata-kata paling umum common
distribusi.paling_umum(2)

Kami melihat sesuatu seperti ini ketika kami menjalankan skrip di atas:

Akhirnya, kita dapat membuat plot distribusi frekuensi untuk menghapus kata-kata dan jumlah mereka dalam teks yang diberikan dan memahami dengan jelas distribusi kata-kata:

Stopwords

Sama seperti ketika kita berbicara dengan orang lain melalui panggilan, cenderung ada beberapa kebisingan selama panggilan yang merupakan informasi yang tidak diinginkan. Dengan cara yang sama, teks dari dunia nyata juga mengandung noise yang disebut sebagai Stopwords. Stopwords dapat bervariasi dari satu bahasa ke bahasa lain tetapi mereka dapat dengan mudah diidentifikasi. Beberapa Stopwords dalam bahasa Inggris dapat berupa - is, are, a, the, an etc.

Kita dapat melihat kata-kata yang dianggap sebagai Stopwords oleh NLTK untuk bahasa Inggris dengan potongan kode berikut:

dari nltk.stopword impor corpus
nltk.unduh('stopword')
bahasa = "inggris"
stop_words = set(stopwords.kata-kata (bahasa))
cetak(stop_words)

Tentu saja kumpulan stopword bisa besar, disimpan sebagai kumpulan data terpisah yang dapat diunduh dengan NLTK seperti yang kami tunjukkan di atas. Kami melihat sesuatu seperti ini ketika kami menjalankan skrip di atas:

Kata-kata berhenti ini harus dihapus dari teks jika Anda ingin melakukan analisis teks yang tepat untuk potongan teks yang disediakan. Mari kita hapus kata berhenti dari token tekstual kita:

filtered_words = []
untuk kata dalam kata:
jika kata tidak ada di stop_words:
filtered_words.tambahkan (kata)
filtered_words

Kami melihat sesuatu seperti ini ketika kami menjalankan skrip di atas:

Stemming Kata

Batang kata adalah dasar dari kata itu. Sebagai contoh:

Kami akan melakukan stemming pada kata-kata yang disaring dari mana kami menghapus kata-kata berhenti di bagian terakhir. Mari kita tulis potongan kode sederhana di mana kita menggunakan stemmer NLTK untuk melakukan operasi:

dari nltk.batang impor PorterStemmer
ps = PorterStemmer()
stemmed_words = []
untuk kata di filtered_words:
stemmed_words.tambahkan (ps.batang (kata))
print("Kalimat Berbasis:", stemmed_words)

Kami melihat sesuatu seperti ini ketika kami menjalankan skrip di atas:

Penandaan POS

Langkah selanjutnya dalam analisis tekstual adalah setelah stemming adalah mengidentifikasi dan mengelompokkan setiap kata berdasarkan nilainya, i.e. jika masing-masing kata adalah kata benda atau kata kerja atau sesuatu yang lain. Ini disebut sebagai penandaan Bagian dari Ucapan. Mari lakukan penandaan POS sekarang:

token=nltk.word_tokenize(kalimat[0])
cetak (token)

Kami melihat sesuatu seperti ini ketika kami menjalankan skrip di atas:

Sekarang, kita dapat melakukan penandaan, yang untuk itu kita harus mengunduh kumpulan data lain untuk mengidentifikasi tag yang benar:

nltk.unduh('rata-rata_perceptron_tagger')
nltk.pos_tag(token)


Berikut adalah output dari tag:

Sekarang setelah kami akhirnya mengidentifikasi kata-kata yang ditandai, ini adalah kumpulan data tempat kami dapat melakukan analisis sentimen untuk mengidentifikasi emosi di balik sebuah kalimat.

Kesimpulan

Dalam pelajaran ini, kami melihat paket bahasa alami yang sangat baik, NLTK yang memungkinkan kami bekerja dengan data tekstual tidak terstruktur untuk mengidentifikasi kata-kata berhenti dan melakukan analisis lebih dalam dengan menyiapkan kumpulan data yang tajam untuk analisis teks dengan perpustakaan seperti sklearn.

Temukan semua kode sumber yang digunakan dalam pelajaran ini di Github. Silakan bagikan umpan balik Anda tentang pelajaran di Twitter dengan @sbmaggarwal dan @LinuxHint.

Cara Mengembangkan Game di Linux
Satu dekade yang lalu, tidak banyak pengguna Linux yang memprediksi bahwa sistem operasi favorit mereka suatu hari nanti akan menjadi platform game po...
Port Sumber Terbuka dari Mesin Game Komersial
Rekreasi mesin game gratis, open source, dan lintas platform dapat digunakan untuk bermain lama serta beberapa judul game yang cukup baru. Artikel ini...
Game Baris Perintah Terbaik untuk Linux
Baris perintah bukan hanya sekutu terbesar Anda saat menggunakan Linux-ini juga dapat menjadi sumber hiburan karena Anda dapat menggunakannya untuk me...