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:
- Tokenisasi, cara memecah teks menjadi kata-kata, kalimat
- Menghindari kata berhenti berdasarkan bahasa Inggris
- Melakukan stemming dan lemmatization pada sebuah teks
- Mengidentifikasi token yang akan dianalisis
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 nltksumber 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 nltkKami 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 nltkKami 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 nltkMari 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:
- Tokenisasi Kalimat
- Tokenisasi Kata
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 nltkdari 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. Konsumenaplikasi 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_tokenizekata = 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 FreqDistdistribusi = 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 commondistribusi.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 corpusnltk.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 PorterStemmerps = 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.