Python

Analisis Sentimen dengan TextBlob dan Python

Analisis Sentimen dengan TextBlob dan Python
Dalam pelajaran ini, kita akan menggunakan salah satu pakej Python yang sangat baik - TextBlob, untuk membina penganalisis sentimental yang mudah. Kita semua tahu bahawa tweet adalah salah satu kumpulan data contoh kegemaran ketika datang ke analisis teks dalam sains data dan pembelajaran mesin. Ini kerana Tweet adalah masa nyata (jika diperlukan), tersedia untuk umum (kebanyakannya) dan mewakili tingkah laku manusia yang sebenarnya (mungkin). Itulah sebabnya tweet biasanya digunakan semasa melakukan jenis bukti konsep atau tutorial yang berkaitan dengan Pemprosesan Bahasa Asli (NLP) dan analisis teks.

Menggunakan TextBlob dalam Industri

Sama seperti kedengarannya, TextBlob adalah pakej Python untuk melakukan operasi analisis teks yang ringkas dan kompleks pada data teks seperti penandaan ucapan, pengekstrakan frasa nama, analisis sentimen, klasifikasi, terjemahan, dan banyak lagi. Walaupun terdapat lebih banyak kes penggunaan untuk TextBlob yang mungkin kita bahas di blog lain, ini merangkumi analisis Tweet untuk sentimen mereka.

Sentimen analisis mempunyai penggunaan praktikal yang hebat untuk banyak senario:

Bermula dengan TextBlob

Kami tahu bahawa anda datang ke sini untuk melihat beberapa kod praktikal yang berkaitan dengan penganalisis sentimental dengan TextBlob. Itulah sebabnya kami akan memastikan bahagian ini sangat pendek untuk memperkenalkan TextBlob untuk pembaca baru. Cuma nota sebelum memulakan ialah kita menggunakan a persekitaran maya untuk pelajaran ini yang kami buat dengan arahan berikut

python -m virtualenv textblob
sumber teksblob / tong / aktifkan

Setelah persekitaran maya aktif, kita dapat memasang perpustakaan TextBlob dalam env maya sehingga contoh yang kita buat seterusnya dapat dilaksanakan:

pasang paip -U textblob

Sebaik sahaja anda menjalankan perintah di atas, bukan begitu. TextBlob juga memerlukan akses ke beberapa data latihan yang boleh dimuat turun dengan arahan berikut:

python -m textblob.muat turun_corpora

Anda akan melihat sesuatu seperti ini dengan memuat turun data yang diperlukannya:

Anda juga boleh menggunakan Anaconda untuk menjalankan contoh-contoh ini yang lebih mudah. Sekiranya anda ingin memasangnya di mesin anda, lihat pelajaran yang menerangkan “Cara Memasang Anaconda Python di Ubuntu 18.04 LTS ”dan kongsi maklum balas anda.

Untuk menunjukkan contoh yang sangat pantas untuk TextBlob, berikut adalah contoh langsung dari dokumentasinya:

dari textblob import TextBlob
teks = "'
Ancaman tajuk The Blob selalu menjadikan saya sebagai filem utama
raksasa: jisim yang lapar dan amuba seperti amuba yang dapat menembusi
hampir semua perlindungan, yang mampu - sebagai doktor yang ditakdirkan dengan tenang
menggambarkannya - "mengasimilasi daging semasa bersentuhan.
Perbandingan Snide dengan gelatin terkutuk, ini adalah konsep yang paling banyak
menghancurkan kemungkinan kesan, tidak seperti senario goo kelabu
dicadangkan oleh ahli teori teknologi yang ditakuti
kecerdasan buatan berleluasa.
"
gumpalan = TeksBlob (teks)
mencetak (gumpalan.teg)
mencetak (gumpalan.frasa nama
untuk ayat dalam gumpalan.ayat:
mencetak (ayat.sentimen.kekutuban)
gumpalan.terjemahkan (kepada = "es")

Apabila kita menjalankan program di atas, kita akan mendapat kata kunci berikut dan akhirnya emosi yang ditunjukkan oleh dua ayat dalam teks contoh:

Tag perkataan dan emosi membantu kita mengenal pasti kata-kata utama yang benar-benar mempengaruhi pengiraan sentimen dan kekutuban ayat yang diberikan kepada. Ini kerana makna dan sentimen kata-kata berubah mengikut urutan yang digunakan sehingga semua ini perlu dijaga dinamik.

Analisis Sentimen berasaskan leksikon

Segala Sentimen boleh didefinisikan sebagai fungsi orientasi semantik dan intensiti kata-kata yang digunakan dalam ayat. Dengan pendekatan berdasarkan leksikon untuk mengenal pasti emosi dalam kata atau ayat yang diberikan, setiap perkataan dihubungkan dengan skor yang menggambarkan emosi yang dipamerkan oleh perkataan (atau sekurang-kurangnya cuba menunjukkan). Biasanya, kebanyakan perkataan mempunyai kamus yang telah ditentukan mengenai skor leksikalnya tetapi apabila berkaitan dengan manusia, selalu ada sindiran yang dimaksudkan, jadi, kamus-kamus itu bukanlah sesuatu yang kita boleh bergantung 100%. Kamus Sentimen WordStat merangkumi lebih daripada 9164 pola kata negatif dan 4847 positif.

Akhirnya, ada kaedah lain untuk melakukan analisis sentimen (di luar ruang lingkup pelajaran ini) yang merupakan teknik Pembelajaran Mesin tetapi kita tidak dapat menggunakan semua perkataan dalam algoritma ML kerana kita pasti akan menghadapi masalah dengan pemasangan yang berlebihan. Kita boleh menggunakan salah satu algoritma pemilihan ciri seperti Chi Square atau Mutual Information sebelum kita melatih algoritma. Kami akan menghadkan perbincangan pendekatan ML untuk teks ini sahaja.

Menggunakan Twitter API

Untuk mula mendapat tweet secara langsung dari Twitter, lawati halaman utama pembangun aplikasi di sini:

https: // pembangun.twitter.com / en / aplikasi

Daftarkan permohonan anda dengan mengisi borang yang diberikan seperti ini:

Sebaik sahaja anda mempunyai semua token yang ada di tab "Kunci dan Token":

Kita boleh menggunakan kunci untuk mendapatkan tweet yang diperlukan dari Twitter API tetapi kita perlu memasang satu lagi pakej Python yang memberikan kita berat untuk mendapatkan data Twitter:

pasang tweepy

Pakej di atas akan digunakan untuk menyelesaikan semua komunikasi angkat berat dengan API Twitter. Kelebihan untuk Tweepy ialah kita tidak perlu menulis banyak kod ketika kita ingin mengesahkan aplikasi kita untuk berinteraksi dengan data Twitter dan secara automatik dibungkus dalam API yang sangat sederhana yang terdedah melalui pakej Tweepy. Kami boleh mengimport pakej di atas dalam program kami sebagai:

import tweepy

Selepas ini, kita hanya perlu menentukan pemboleh ubah yang sesuai di mana kita dapat menahan kekunci Twitter yang kita terima dari konsol pembangun:

key_key = '[user_key]'
user_key_secret = '[konsumen_key_secret]'
access_token = '[akses_token]'
access_token_secret = '[akses_token_secret]'

Setelah kita menentukan rahsia untuk Twitter dalam kod, akhirnya kita bersedia menjalin hubungan dengan Twitter untuk menerima Tweet dan menilai mereka, maksud saya, menganalisisnya. Sudah tentu, sambungan ke Twitter mesti dibuat menggunakan standard OAuth dan Pakej Tweepy akan sangat berguna untuk menjalin hubungan juga:

twitter_auth = tweepy.OAuthHandler (key_key, konsumen_key_secret)

Akhirnya kami memerlukan sambungan:

api = tweepy.API (twitter_auth)

Dengan menggunakan contoh API, kita dapat mencari di Twitter untuk topik yang kita sampaikan. Ia boleh menjadi satu kata atau beberapa perkataan. Walaupun kami akan mengesyorkan menggunakan seberapa sedikit perkataan untuk ketepatan yang mungkin. Mari cuba contoh di sini:

pm_tweets = api.cari ("India")

Pencarian di atas memberi kami banyak Tweet tetapi kami akan mengehadkan jumlah tweet yang kami terima sehingga panggilan tidak memakan banyak waktu, kerana perlu diproses kemudian oleh paket TextBlob juga:

pm_tweets = api.cari ("India", hitung = 10)

Akhirnya, kita dapat mencetak teks setiap Tweet dan sentimen yang berkaitan dengannya:

untuk tweet di pm_tweets:
cetak (tweet.teks)
analisis = TextBlob (tweet.teks)
mencetak (analisis.sentimen)

Setelah kami menjalankan skrip di atas, kami akan mula mendapatkan 10 sebutan terakhir dari pertanyaan yang disebutkan dan setiap tweet akan dianalisis untuk nilai sentimen. Berikut adalah output yang kami terima sama:

Perhatikan bahawa anda juga dapat membuat bot analisis sentimen streaming dengan TextBlob dan Tweepy juga. Tweepy memungkinkan untuk mewujudkan sambungan streaming soket web dengan API Twitter dan memungkinkan untuk mengalirkan data Twitter dalam masa nyata.

Kesimpulannya

Dalam pelajaran ini, kami melihat pakej analisis teks yang sangat baik yang membolehkan kami menganalisis sentimen teks dan banyak lagi. TextBlob sangat popular kerana cara ini memungkinkan kita hanya bekerja dengan data teks tanpa kerumitan panggilan API yang rumit. Kami juga menyatukan Tweepy untuk memanfaatkan data Twitter. Kita boleh mengubah penggunaan dengan mudah ke kes penggunaan streaming dengan paket yang sama dan sangat sedikit perubahan dalam kod itu sendiri.

Sila kongsi maklum balas anda dengan bebas mengenai pelajaran di Twitter dengan @linuxhint dan @sbmaggarwal (itu saya!).

Tutorial Battle for Wesnoth
The Battle for Wesnoth adalah salah satu permainan strategi sumber terbuka paling popular yang boleh anda mainkan pada masa ini. Bukan hanya permainan...
0 A.D. Tutorial
Daripada banyak permainan strategi di luar sana, 0 A.D. berjaya menonjol sebagai tajuk yang komprehensif dan permainan taktikal yang sangat mendalam w...
Tutorial Unity3D
Pengenalan Unity 3D Unity 3D adalah enjin pengembangan permainan yang kuat. Ini adalah platform silang yang memungkinkan anda membuat permainan untuk ...