Penganalisis Sentimen Berita Saham Real-Time – Menuju AI — Publikasi AI dan Teknologi Terkemuka di Dunia

Pengarang: Raviraj Shinde

Pemrosesan Bahasa Alami

Berinvestasi di Pasar Saham adalah cara yang bagus untuk mengatasi Inflasi. Inflasi mengacu pada kenaikan harga sebagian besar barang dan jasa penggunaan sehari-hari atau umum, seperti makanan, pakaian, perumahan, rekreasi, transportasi, kebutuhan pokok konsumen, dll. Pada dasarnya, dengan 100 rupee Anda tidak akan dapat membeli sebagai banyak vada pavs (wadapavs) yang Anda bisa tahun lalu.

Pada tahun keuangan yang dilanda pandemi 2020–2021, 142 lakh investor baru telah mulai berdagang di pasar saham.

Salah satu keterampilan utama yang diperlukan untuk melakukan investasi yang baik di pasar saham adalah mampu menganalisis berita yang berkaitan dengan keuangan dan sektor bisnis dengan benar. Perusahaan mana yang mendiversifikasi sektornya atau perusahaan mana yang menunjukkan tanda-tanda menuju kebangkrutan? Anda perlu terus memperbarui diri dengan setiap kesepakatan kecil dan kejatuhan yang terjadi di pasar. Berita keuangan bisa sedikit rumit untuk dipahami terutama bagi mereka yang baru mengenal dunia keuangan.

Untuk membuat prosesnya sedikit mudah, saya berencana membuat alat yang mengekstrak berita utama terbaru dari setiap saham di pasar Saham India dan menjalankannya melalui penganalisis sentimen yang dilatih khusus tentang berita keuangan untuk menciptakan sentimen agregat untuk setiap saham untuk membantu pemula investor saham dalam memahami berita dengan lebih baik.

Analisis Berita Saham Waktu Nyata

Persyaratan:

Pustaka BeautifulSoup HuggingFace Transformers Urllib Numpy Pandas

Mendapatkan Data

Mari kita mulai dengan berita keuangan pengikisan web dari sumber tepercaya.

Setelah melihat melalui beberapa situs web saya menemukan bahwa tickertape memisahkan sahamnya menurut abjad dan menggunakan tanda centang (kata kunci) di URL-nya untuk menavigasi ke saham tertentu. Antarmuka semacam ini terbukti cukup berguna untuk data pengikisan web.

Pertama, mari kita buat daftar semua tick dari tickertape.

https://medium.com/media/96d44ff10ea473a0e420ee310eb13565/href

Saya telah membuat fungsi get_ticks() untuk mengekstrak semua kutu sekaligus dari tickertape/saham. Di sini setiap nama saham tertaut ke halaman penyaringannya. Tautan dalam format “/stocks/stock-name-tick”.

Kita perlu mengekstrak centang ini untuk menavigasi ke setiap saham dengan mulus.

Menggunakan BeautifulSoup dan urllib saya telah mengekstrak centang dan nama stok dan menyimpannya di Pandas DataFrame dalam urutan abjad.

https://medium.com/media/9d53280bac7af7524ccc4d95b4b4d1b2/hrefhttps://medium.com/media/110e192e4078594bed34813f259d469c/href

Outputnya terlihat seperti ini:

Sekarang beralih ke bagian berita. Untuk ini, kami mengikuti pola yang sama seperti get_ticks(). Berita terkait masing-masing saham terdapat di “tickertape/stock-tick/news?checklist=basic&ref=stock-overview_overview-sections&type=news”. Sekali lagi dengan menggunakan BeautifulSoup dan urllib kita dapat mengekstrak berita ini.

https://medium.com/media/530f30521725df5af4275f1c19465db1/href

Menjalankan for loop di mana kita mengganti bagian stock-tick dengan elemen di kolom tick dari DataFrame kita, kita dapat mengekstrak berita dari setiap saham dan menyimpannya dalam daftar yang disebut news.

https://medium.com/media/c212436d3f22067ee5f98987c54c405e/href

Sekarang kita memiliki berita dalam format yang kita butuhkan, kita dapat beralih ke bagian analisis sentimen.

Analisis Sentimen Berita Keuangan

Untuk proyek ini, saya berencana menggunakan model terlatih yang dikenal sebagai FinBERT.

FinBERT adalah model yang dirancang khusus untuk bekerja pada berita dan teks keuangan. Ini adalah model berdasarkan arsitektur BERT. Seiring dengan perpustakaan transformer HuggingFace, FinBERT menjadi sangat mudah diimplementasikan.

Untuk detail lebih lanjut tentang BERT dan FinBERT Anda dapat merujuk ke blog saya:

Analisis Sentimen Berita Keuangan menggunakan FinBERT

https://medium.com/media/235d1fbaca13018804a619a386b23336/href

Sekarang FinBERT telah dimuat, kami memulai proses analisis.

Karena FinBERT mengembalikan sentimen dalam format numerik, kita perlu memetakan output ke format yang lebih Ramah Manusia. Untuk ini, kami akan membuat kamus python yang disebut label.

https://medium.com/media/1c39c6ecbf2fd3cd55fcaa2caa78cf78/href

Sekarang bagian yang baik. Di sini kita menggunakan objek tokenizer untuk melakukan praproses teks sesuai dengan praktik NLP yang baik dan kemudian meneruskan output dari tokenizer ke objek finbert untuk analisis sentimen.

https://medium.com/media/4abc8c3bfe734f416975b420565b7590/href

Kami melakukan ini untuk setiap stok dalam daftar kami. Sentimen untuk setiap judul disimpan dalam daftar sehingga nanti kami dapat mengelompokkannya untuk membuat sentimen agregat dari setiap saham. Kami menyimpan output dari fungsi dalam daftar daftar yang disebut tot_val. Beberapa daftar tampak kosong karena situs web tidak memuat berita. Untuk saham-saham tersebut, saya hanya mengembalikan netral sebagai sentimen.

Akhirnya, kami melanjutkan untuk membuat kumpulan sentimen dengan menggabungkan sentimen dari setiap headline dari setiap saham. Untuk tujuan ini, saya cukup menambahkan +1 ke variabel agg jika judulnya positif dan -1 jika judulnya negatif. Berdasarkan nilai akhir dari variabel agg saya menetapkan positif, negatif, atau netral untuk saham.

https://medium.com/media/b0f42fab537e0ab55a539a25555ee22e/href

Terakhir, kita melewati daftar sentimen melalui get_sent() dan mendapatkan sentimen agregat. Kami menyimpan sentimen ini dalam daftar yang kemudian kami tetapkan ke dalam kolom sentimen dari tick_df DataFrame asli kami.

https://medium.com/media/f9d53a2cc597e75cc6d3539b9f7743ac/href

Outputnya terlihat seperti ini:

Dengan demikian, kami telah berhasil membuat penganalisis sentimen untuk pasar saham India berdasarkan berita keuangan.

Proyek ini hanya untuk tujuan pendidikan dan tidak boleh digunakan untuk membuat keputusan investasi. Juga, blog ini sama sekali bukan sponsor untuk tickertape atau entitas lain yang disebutkan di blog

Seluruh kode tersedia di profil git saya:

GitHub – Raviraj2000/Realtime-Stock-News-Sentiment-Analyzer

Terima kasih sudah membaca! 😄

Penganalisis Sentimen Berita Saham Real-Time awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI