Foto oleh Mikechi Esparagoza
Setiap hari, sebagian besar waktu kita berurusan dengan teks yang tidak berlabel dan algoritme pembelajaran yang diawasi tidak dapat digunakan sama sekali untuk mengekstrak informasi dari data. Subbidang bahasa alami dapat mengungkap struktur yang mendasarinya dalam teks dalam jumlah besar. Disiplin ini disebut Pemodelan Topik, yang berspesialisasi dalam penggalian topik dari teks.
Dalam konteks ini, pendekatan konvensional, seperti Alokasi Dirichlet Laten dan Faktorisasi Matriks Non-Negatif, terbukti tidak menangkap dengan baik hubungan antar kata karena didasarkan pada bag-of-word.
Untuk alasan ini, kami akan fokus pada dua pendekatan yang menjanjikan, Top2Vec dan BERTopic, yang mengatasi kekurangan ini dengan mengeksploitasi model bahasa terlatih untuk menghasilkan topik. Mari kita mulai!
Top2Vec adalah model yang mampu mendeteksi topik secara otomatis dari teks dengan menggunakan vektor kata yang telah dilatih sebelumnya dan membuat topik, dokumen, dan vektor kata tersemat yang berarti.
Dalam pendekatan ini, prosedur untuk mengekstrak topik dapat dibagi menjadi langkah-langkah yang berbeda:
- Buat Penyematan Semantik: dokumen yang disematkan bersama dan vektor kata dibuat. Idenya adalah bahwa dokumen serupa harus lebih dekat di ruang penyematan, sedangkan dokumen yang berbeda harus berjarak di antara keduanya.
- Kurangi dimensi penyisipan dokumen: Penerapan pendekatan pengurangan dimensi penting untuk mempertahankan sebagian besar variabilitas penyisipan dokumen sambil mengurangi ruang dimensi tinggi. Selain itu, memungkinkan untuk mengidentifikasi area padat, di mana setiap titik mewakili vektor dokumen. UMAP adalah tipikal pendekatan reduksi dimensi yang dipilih pada langkah ini karena mampu mempertahankan struktur lokal dan global dari data dimensi tinggi.
- Mengidentifikasi kumpulan dokumen: HDBScan, pendekatan pengelompokan berbasis kepadatan, diterapkan untuk menemukan area padat dari dokumen serupa. Setiap dokumen ditetapkan sebagai noise jika tidak berada di cluster yang padat, atau label jika berada di area yang padat.
- Hitung centroid di ruang penyematan asli: Centroid dihitung dengan mempertimbangkan ruang berdimensi tinggi, bukan ruang penyisipan yang dikurangi. Strategi klasik terdiri dari menghitung rata-rata aritmatika dari semua vektor dokumen yang termasuk dalam area padat, yang diperoleh pada langkah sebelumnya dengan HDBSCAN. Dengan cara ini, vektor topik dihasilkan untuk setiap cluster.
- Temukan kata untuk setiap vektor topik: vektor kata terdekat dengan vektor dokumen secara semantik paling representatif.
Contoh Top2Vec
Dalam tutorial ini, kita akan menganalisis ulasan negatif McDonald's dari kumpulan data yang tersedia di data.dunia. Mengidentifikasi topik dari ulasan ini dapat bermanfaat bagi perusahaan multinasional untuk meningkatkan produk dan pengaturan rantai makanan cepat saji ini di lokasi AS yang disediakan oleh data.
import pandas as pd
from top2vec import Top2Vec file_path = "McDonalds-Yelp-Sentiment-DFE.csv"
df = pd.read_csv( file_path, usecols=["_unit_id", "city", "review"], encoding="unicode_escape",
)
df.head()
docs_bad = df["review"].values.tolist()
Dalam satu baris kode, kita akan melakukan semua langkah top2vec yang dijelaskan sebelumnya.
topic_model = Top2Vec( docs_bad, embedding_model="universal-sentence-encoder", speed="deep-learn", tokenizer=tok, ngram_vocab=True, ngram_vocab_args={"connector_words": "phrases.ENGLISH_CONNECTOR_WORDS"},
)
Argumen utama Top2Vec adalah:
- docs_bad: adalah daftar string.
- universal-kalimat-encoder: adalah model penyematan terlatih yang dipilih.
- deep-learn: merupakan parameter yang menentukan kualitas vektor dokumen yang dihasilkan.
topic_model.get_num_topics() #3
topic_words, word_scores, topic_nums = topic_model.get_topics(3) for topic in topic_nums: topic_model.generate_topic_wordcloud(topic)
Yang paling
Dari kata cloud, kita dapat menyimpulkan bahwa topik 0 adalah tentang keluhan umum tentang layanan di McDonald, seperti "layanan lambat", "layanan mengerikan" dan "pesanan salah", sedangkan topik 1 dan 2 masing-masing mengacu pada makanan sarapan ( McMuffin, biskuit, telur) dan kopi (es kopi dan kopi cangkir).
Sekarang, kami mencoba mencari dokumen menggunakan dua kata kunci, salah dan lambat:
( documents, document_scores, document_ids,
) = topic_model.search_documents_by_keywords( keywords=["wrong", "slow"], num_docs=5
)
for doc, score, doc_id in zip(documents, document_scores, document_ids): print(f"Document: {doc_id}, Score: {score}") print("-----------") print(doc) print("-----------") print()
Keluaran:
Document: 707, Score: 0.5517634093633295
-----------
horrible.... that is all. do not go there.
----------- Document: 930, Score: 0.4242547340973836
-----------
no drive through :-/
----------- Document: 185, Score: 0.39162203345993046
-----------
the drive through line is terrible. they are painfully slow.
----------- Document: 181, Score: 0.3775083338082392
-----------
awful service and extremely slow. go elsewhere.
----------- Document: 846, Score: 0.35400602635951994
-----------
they have bad service and very rude
-----------
“BERTopic adalah teknik pemodelan topik yang memanfaatkan transformer dan c-TF-IDF untuk membuat kluster padat yang memungkinkan topik yang mudah ditafsirkan sambil menyimpan kata-kata penting dalam deskripsi topik.”
Seperti namanya, BERTopic menggunakan model transformator yang kuat untuk mengidentifikasi topik yang ada dalam teks. Karakteristik lain dari algoritma pemodelan topik ini adalah penggunaan varian TF-IDF, yang disebut variasi berbasis kelas dari TF-IDF.
Seperti Top2Vec, tidak perlu mengetahui jumlah topik, tetapi secara otomatis mengekstrak topik.
Selain itu, mirip dengan Top2Vec, ini adalah algoritme yang melibatkan berbagai fase. Tiga langkah pertama adalah sama: pembuatan dokumen penyematan, pengurangan dimensi dengan UMAP dan pengelompokan dengan HDBScan.
Fase berturut-turut mulai menyimpang dari Top2Vec. Setelah menemukan area padat dengan HDBSCAN, setiap topik dipatok menjadi representasi kumpulan kata, yang memperhitungkan apakah kata tersebut muncul dalam dokumen atau tidak. Setelah dokumen milik cluster dianggap sebagai dokumen unik dan TF-IDF diterapkan. Jadi, untuk setiap topik, kami mengidentifikasi kata yang paling relevan, yang harus memiliki c-TF-IDF tertinggi.
Contoh BERTopic
Kami mengulangi analisis pada dataset yang sama.
Kami akan mengekstrak topik dari ulasan menggunakan BERTopic:
model_path_bad = 'model/bert_bad'
topic_model_bad = train_bert(docs_bad,model_path_bad)
freq_df = topic_model_bad.get_topic_info()
print("Number of topics: {}".format( len(freq_df)))
freq_df['Percentage'] = round(freq_df['Count']/freq_df['Count'].sum() * 100,2)
freq_df = freq_df.iloc[:,[0,1,3,2]]
freq_df.head()
Tabel yang dikembalikan oleh model memberikan informasi tentang 14 topik yang diekstraksi. Topik sesuai dengan pengidentifikasi topik, kecuali untuk semua outlier yang diabaikan yang diberi label sebagai -1.
Sekarang, kita akan beralih ke bagian yang paling menarik mengenai visualisasi topik kita ke dalam grafik interaktif, seperti visualisasi istilah yang paling relevan untuk setiap topik, peta jarak antartopik, representasi dua dimensi dari ruang penyematan dan hierarki topik.
Mari kita mulai menampilkan diagram batang untuk sepuluh topik teratas. Untuk setiap topik, kita dapat mengamati kata-kata yang paling penting, diurutkan dalam urutan menurun berdasarkan skor c-TF-IDF. Semakin banyak kata yang relevan, semakin tinggi skornya.
Topik pertama berisi kata umum, seperti lokasi dan makanan, topik 1 pesan dan tunggu, topik 2 terburuk dan layanan, topik 3 tempat dan kotor, iklan seterusnya.
Setelah memvisualisasikan diagram batang, saatnya untuk melihat peta jarak intertopik. Kami mengurangi dimensi skor c-TF-IDF menjadi ruang dua dimensi untuk memvisualisasikan topik dalam plot. Di bagian bawah terdapat slider yang memungkinkan pemilihan topik yang akan diwarnai dengan warna merah. Kita dapat melihat bahwa topik dikelompokkan dalam dua kelompok yang berbeda, satu dengan tema umum seperti makanan, ayam, dan lokasi, dan satu lagi dengan aspek negatif yang berbeda, seperti layanan terburuk, kotor, tempat, dan dingin.
Grafik berikutnya memungkinkan untuk melihat hubungan antara ulasan dan topik. Secara khusus, memahami mengapa ulasan diberikan untuk topik tertentu dan diselaraskan dengan kata-kata paling relevan yang ditemukan dapat bermanfaat. Misalnya, kita dapat fokus pada kluster merah, sesuai dengan topik 2 dengan beberapa kata tentang layanan terburuk. Dokumen-dokumen di dalam area padat ini tampak cukup negatif, seperti “Layanan pelanggan yang buruk dan bahkan makanan yang lebih buruk”.
Pada pandangan pertama, pendekatan ini memiliki banyak kesamaan aspek, seperti menemukan secara otomatis jumlah topik, tidak ada kebutuhan pra-pemrosesan dalam banyak kasus, penerapan UMAP untuk mengurangi dimensi penyisipan dokumen dan, kemudian, HDBSCAN digunakan untuk memodelkan penyematan dokumen yang diperkecil ini, tetapi mereka secara fundamental berbeda ketika melihat cara mereka menetapkan topik ke dokumen.
Top2Vec membuat representasi topik dengan menemukan kata-kata yang terletak dekat dengan centroid cluster.
Berbeda dari Top2Vec, BERTopic tidak memperhitungkan centroid cluster, tetapi menganggap semua dokumen dalam cluster sebagai dokumen unik dan mengekstraksi representasi topik menggunakan variasi TF-IDF berbasis kelas.
Teratas2Vec | BERTopik |
Strategi untuk mengekstrak topik berdasarkan centroid cluster. | Strategi untuk mengekstrak topik berdasarkan c-TF-IDF. |
Itu tidak mendukung Pemodelan Topik Dinamis. | Ini mendukung Pemodelan Topik Dinamis. |
Itu membangun awan kata untuk setiap topik dan menyediakan alat pencarian untuk topik, dokumen, dan kata. | Ini memungkinkan untuk membangun plot visualisasi Interaktif, memungkinkan interpretasi topik yang diekstraksi. |
Pemodelan Topik adalah bidang Pemrosesan Bahasa Alami yang berkembang dan ada banyak aplikasi yang mungkin, seperti ulasan, audio, dan posting media sosial. Seperti yang telah ditunjukkan, artikel ini memberikan ikhtisar Topi2Vec dan BERTopic, yang merupakan dua pendekatan yang menjanjikan, yang dapat membantu Anda mengidentifikasi topik dengan beberapa baris kode dan menginterpretasikan hasilnya melalui visualisasi data. Jika Anda memiliki pertanyaan tentang teknik ini atau Anda memiliki saran lain tentang pendekatan lain untuk mendeteksi topik, tulis di komentar.
Eugenia Anello saat ini menjadi peneliti di Departemen Teknik Informasi Universitas Padova, Italia. Proyek penelitiannya difokuskan pada Pembelajaran Berkelanjutan yang dikombinasikan dengan Deteksi Anomali.
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- Platoblockchain. Intelijen Metaverse Web3. Pengetahuan Diperkuat. Akses Di Sini.
- Sumber: https://www.kdnuggets.com/2023/01/topic-modeling-approaches-top2vec-bertopic.html?utm_source=rss&utm_medium=rss&utm_campaign=topic-modeling-approaches-top2vec-vs-bertopic
- 1
- 10
- 100
- 7
- a
- Sanggup
- Tentang Kami
- Akun
- Ad
- alamat
- Setelah
- algoritma
- algoritma
- selaras
- Semua
- alokasi
- Membiarkan
- memungkinkan
- jumlah
- analisis
- menganalisa
- dan
- deteksi anomali
- Lain
- Aplikasi
- aplikasi
- terapan
- pendekatan
- pendekatan
- DAERAH
- daerah
- argumen
- artikel
- aspek
- ditugaskan
- audio
- secara otomatis
- tersedia
- Buruk
- bar
- berdasarkan
- karena
- antara
- Bawah
- Sarapan
- Bangunan
- membangun
- menghitung
- bernama
- tidak bisa
- mampu
- menangkap
- kasus
- rantai
- ciri
- Charts
- terpilih
- Kota
- klasik
- Penyelesaian
- lebih dekat
- Kelompok
- kekelompokan
- kode
- Tanaman
- bergabung
- komentar
- Umum
- keluhan
- dianggap
- mengingat
- mengandung
- konteks
- konvensional
- Sesuai
- berkorespondensi
- membuat
- dibuat
- menciptakan
- membuat
- penciptaan
- Cangkir
- Sekarang
- pelanggan
- Layanan Pelanggan
- data
- hari
- berurusan
- menunjukkan
- Departemen
- Deteksi
- ditentukan
- berbeda
- jarak
- Jauh
- Menyimpang
- dokumen
- dokumen
- Tidak
- kekurangannya
- mendorong
- melewati
- dinamis
- setiap
- mudah
- di tempat lain
- tertanam
- Teknik
- Bahkan
- contoh
- Kecuali
- menjelaskan
- ekstrak
- Ekstrak
- sangat
- FAST
- sesama
- beberapa
- bidang
- Menemukan
- temuan
- Pertama
- Fokus
- terfokus
- makanan
- ditemukan
- dari
- secara fundamental
- Umum
- menghasilkan
- dihasilkan
- mendapatkan
- Aksi
- Go
- akan
- grafik
- grafik
- Pertumbuhan
- membantu
- hirarki
- High
- lebih tinggi
- paling tinggi
- HTTPS
- ide
- Identifikasi
- identifier
- mengenali
- mengidentifikasi
- mengimpor
- penting
- memperbaiki
- in
- informasi
- sebagai gantinya
- interaktif
- menarik
- interpretasi
- IT
- Italia
- KDnugget
- pemeliharaan
- Tahu
- label
- bahasa
- besar
- pengetahuan
- memanfaatkan
- baris
- baris
- Daftar
- lokal
- terletak
- tempat
- lokasi
- melihat
- mencari
- Utama
- banyak
- peta
- Matriks
- MCDONALD
- berarti
- Media
- model
- pemodelan
- pemodelan
- model
- lebih
- paling
- multinasional
- nama
- Alam
- Bahasa Alami
- Pengolahan Bahasa alami
- Perlu
- negatif
- berikutnya
- Kebisingan
- jumlah
- banyak sekali
- mengamati
- diperoleh
- ONE
- urutan
- organisasi
- asli
- Lainnya
- panda
- parameter
- bagian
- tertentu
- persentase
- melakukan
- frase
- Tempat
- plato
- Kecerdasan Data Plato
- Data Plato
- Titik
- mungkin
- Posts
- kuat
- menyajikan
- sebelumnya
- sebelumnya
- pengolahan
- Diproduksi
- Produk
- proyek
- menjanjikan
- disediakan
- menyediakan
- kualitas
- Pertanyaan
- alasan
- Merah
- menurunkan
- mengurangi
- mengurangi
- mengenai
- hubungan
- Hubungan
- relevan
- ulangi
- perwakilan
- wakil
- merupakan
- penelitian
- Hasil
- mengungkapkan
- ulasan
- Review
- sama
- Pencarian
- mencari
- memilih
- layanan
- harus
- Menunjukkan
- ditunjukkan
- Melihat
- mirip
- Demikian pula
- sejak
- tunggal
- slider
- lambat
- So
- Sosial
- media sosial
- Posting Media Sosial
- beberapa
- Space
- khusus
- tertentu
- membagi
- Langkah
- Tangga
- Penyelarasan
- struktur
- seperti itu
- Menyarankan
- pembelajaran yang diawasi
- mendukung
- Mendukung
- tabel
- Mengambil
- Dibutuhkan
- teknik
- sepuluh
- istilah
- Grafik
- Sana.
- tiga
- Melalui
- waktu
- untuk
- dipatok
- alat
- puncak
- Sepuluh Teratas
- tema
- Topik
- transformer
- tutorial
- khas
- pokok
- memahami
- unik
- universitas
- Amerika Serikat
- menggunakan
- Berharga
- Nilai - Nilai
- Varian
- visualisasi
- menunggu
- yang
- sementara
- Sementara
- akan
- dalam
- Word
- kata
- terburuk
- menulis
- Salah
- zephyrnet.dll