
Pengarang: Kirsten Jiayi Pan
Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda sedang membangun produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan untuk menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.
pengantar
Pada artikel ini, kami akan menganalisis 50 ribu tweet terkait Covid yang kami kutip dari Twitter, menggunakan AI untuk mengekstrak topik utama yang diperdebatkan oleh orang-orang di seluruh dunia.
Untuk jumlah data tidak terstruktur ini, kami membutuhkan waktu berminggu-minggu untuk membaca dan mengklasifikasikan data Anda. Tugas raksasa ini, bagaimanapun, bisa menjadi sepotong kue jika kita benar-benar tahu bagaimana menggunakan model NLP yang canggih.
Untuk melakukan tugas ini, kita akan menggunakan model yang disebut encoder dan metode yang memungkinkan kita untuk mengelompokkan topik serupa bersama-sama secara otomatis yang disebut pemodelan topik.
Pengkodean Teks
Sebelum mulai mengerjakan kode kita secara langsung, pertama-tama kita akan menjelaskan logika di baliknya. Teknik utama yang akan kita gunakan untuk menjalankan tugas ini disebut encoding, atau vektorisasi. Dengan menggunakan model yang disebut embeddings, kami dapat mengubah teks biasa menjadi koordinat geometris yang dimiliki oleh ruang dimensi tinggi (ratusan dimensi).
Gambar ini diambil dari: https://openai.com/blog/introducing-text-and-code-embeddings/
Setiap titik dalam ruang mewakili sebuah teks. Nilai encoder adalah dapat menempatkan teks dengan makna yang sama lebih dekat dalam ruang. Dengan alat unik ini, kami kemudian dapat menerapkan teknik pembelajaran mesin untuk mengelompokkan data ke dalam tren umum.
Apa itu Pemodelan Topik, dan mengapa itu penting?
Pemodelan topik adalah algoritma yang, ketika diterapkan pada teks biasa, mampu mengekstrak topik utama yang dibahas dalam korpus. Setelah kami membuat vektor semua tweet kami dan kami memiliki 50.000 titik di bidang kartesius dimensi tinggi kami, kami dapat mengelompokkannya dengan menggunakan teknik pengelompokan.
Setiap kelompok titik akan berbagi arti yang sama, maka topik yang sama. Kita dapat mengelompokkan 50.000 sampel menjadi beberapa ratus kelompok terpisah. Dengan mengekstrak kata kunci yang paling sering dari setiap grup, kami kemudian dapat melabeli setiap grup individu dengan topik yang sesuai.
Gambar ini diambil dari: https://nkoenig06.github.io/gd-tm-lda.html
Di Tangan! Dalam proyek ini, kami memiliki 4 bagian untuk dibahas:
Pengikisan Web:
Pertama-tama kami akan mengikis 50 ribu tweet tentang Vaksinasi Covid-19 dalam rentang waktu 6 bulan sebagai sampel korpus kami. Pustaka Python yang akan kita gunakan disebut snscrape.
FYI: https://github.com/JustAnotherArchivist/snscrape
https://medium.com/media/f451f2aadd1313c97914cfc692aff7c8/href
Keluaran dari scraper.py
Dalam korpus sampel ini, kami hanya menyimpan dua informasi: waktu tweet yang diterbitkan dan teks tweet.
2. Pengkodean:
Sekarang kita beralih ke sorotan proyek ini! Kami juga dapat memanggil pengkodean bagian ini karena kami mengonversi data teks menjadi data numerik. Pustaka Python yang akan kita gunakan disebut SentenceTransformer yang dapat membantu kita mengimplementasikan beberapa model pengkodean yang telah dilatih sebelumnya. Model pra-latihan dari SentenceTransformer yang kami gunakan adalah all-MiniLM-L6-v2 yang akan membuat 768 dimensi untuk setiap tweet. Model ini kuat dan cepat. Untuk melihat detail lebih lanjut tentang model pra-latihan untuk SentenceTransformer, harap tinjau https://www.sbert.net/docs/pretrained_models.html untuk informasi lebih lanjut.
Catatan: Jangan lupa untuk menambahkan kolom tambahan untuk menyimpan vektor teks untuk dataset kita.
https://medium.com/media/02ed3e0cf5e8ad543d0d93d101ca7f1e/href
Keluaran dari encoder.py
3. Pengelompokan:
Anda mungkin sudah familiar dengan clustering. Kita akan mengimpor KMeans dari perpustakaan scikit-learn Python. Kemudian kita dapat menentukan berapa banyak cluster yang kita inginkan untuk corpus kita. Sebagai aturan praktis, lebih dari 10.000 sampel, kami akan mengelompokkan data kami menjadi 200 cluster.
https://medium.com/media/f1047ae5a3f37f460684ec19c09069cd/href
Keluaran dari clustering.py
4. Visualisasi:
Setelah kami selesai mengelompokkan data kami. Kami ingin memvisualisasikan hasilnya dan melihat bagaimana model pengelompokan kami mengelompokkan tweet ke dalam topik yang berbeda. Namun, kita harus mengurangi dimensi sebelum visualisasi dari 768 dimensi menjadi 2 dimensi agar kita dapat memahami visualisasi clustering kita sebagai manusia. Algoritma reduksi dimensi yang kita gunakan untuk reduksi dimensi adalah umap.
FYI: https://umap-learn.readthedocs.io/en/latest/
Berikut adalah bagaimana kami memvisualisasikan pengelompokan kami dengan menghasilkan grafik warna-warni 2 dimensi dengan menggunakan matplotlib.plotly.
FYI: https://www.activestate.com/blog/plotting-data-in-python-matplotlib-vs-plotly/
https://medium.com/media/3f5b30515e2f5463eaa1b85add9cbf8b/href
Keluaran dari visualization.py
Seperti yang dapat Anda lihat dalam gambar grafik kami yang indah, 50 ribu tweet kami dikelompokkan dalam 200 kelompok dengan 200 warna pada bidang 2 dimensi. Grafik akan mewakili tweet yang dikelompokkan di bawah topik yang sama menggunakan warna yang sama.
Kesimpulan
Karena kami telah mengelompokkan korpus dengan memindai kesamaan, frekuensi kata, dan pola dalam teks, kami dapat dengan mudah memahami tren apa yang paling populer ketika orang membahas tentang Vaksinasi Covid-19. Wawasan yang dapat diekstraksi menggunakan algoritme ini akan terbukti berharga bagi Industri Kesehatan Masyarakat dan Pemerintah yang perlu memantau data secara konstan.
Menggunakan AI untuk Menerapkan Teknologi Berbasis Vektor dalam Pemodelan Topik awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.
Diterbitkan melalui Menuju AI