Fotoğraf Mikechie Esparagoza
Her gün, çoğu zaman etiketlenmemiş metinle uğraşıyoruz ve denetimli öğrenme algoritmaları, verilerden bilgi çıkarmak için hiçbir şekilde kullanılamaz. Doğal dilin bir alt alanı, büyük miktarda metinde altta yatan yapıyı ortaya çıkarabilir. Bu disipline, metinden konuların çıkarılmasında uzmanlaşmış olan Konu Modelleme adı verilir.
Bu bağlamda, Gizli Dirichlet Tahsisi ve Negatif Olmayan Matris Çarpanlarına Ayırma gibi geleneksel yaklaşımlar, sözcük torbasına dayalı oldukları için sözcükler arasındaki ilişkileri iyi yakalayamadıklarını gösterdi.
Bu nedenle, konu oluşturmak için önceden eğitilmiş dil modellerinden yararlanarak bu dezavantajları ele alan iki gelecek vaat eden yaklaşıma, Top2Vec ve BerTopic'e odaklanacağız. Başlayalım!
Top2Vec, önceden eğitilmiş kelime vektörlerini kullanarak ve anlamlı gömülü konular, belgeler ve kelime vektörleri oluşturarak metindeki konuları otomatik olarak tespit edebilen bir modeldir.
Bu yaklaşımda, konuları çıkarma prosedürü farklı adımlara bölünebilir:
- Anlamsal Gömme Oluştur: ortak gömülü belge ve kelime vektörleri oluşturulur. Fikir, benzer belgelerin gömme alanında daha yakın, farklı belgelerin ise aralarında uzak olması gerektiğidir.
- Belge yerleştirmenin boyutsallığını azaltın: Boyut azaltma yaklaşımının uygulanması, yüksek boyutlu alanı azaltırken belgelerin gömülmesindeki değişkenliğin çoğunu korumak için önemlidir. Ayrıca, her noktanın bir belge vektörünü temsil ettiği yoğun alanların tanımlanmasına izin verir. UMAP, yüksek boyutlu verilerin yerel ve küresel yapısını koruyabildiği için bu adımda seçilen tipik boyut indirgeme yaklaşımıdır.
- Belge kümelerini tanımlayın: Yoğunluğa dayalı bir kümeleme yaklaşımı olan HDBScan, benzer belgelerin yoğun alanlarını bulmak için uygulanır. Her belge, yoğun bir kümede değilse gürültü, yoğun bir alana aitse bir etiket olarak atanır.
- Orijinal gömme uzayındaki ağırlık merkezlerini hesapla: Ağırlık merkezi, azaltılmış gömme alanı yerine yüksek boyutlu alan dikkate alınarak hesaplanır. Klasik strateji, HDBSCAN ile önceki adımda elde edilen, yoğun bir alana ait tüm belge vektörlerinin aritmetik ortalamasının hesaplanmasından oluşur. Bu şekilde her küme için bir konu vektörü oluşturulur.
- Her konu vektörü için kelimeleri bulun: belge vektörüne en yakın sözcük vektörleri anlamsal olarak en temsili olanlardır.
Top2Vec Örneği
Bu eğitimde, McDonald's'ın olumsuz yorumlarını şu adreste bulunan bir veri kümesinden analiz edeceğiz: veri.dünya. Bu incelemelerden konuların belirlenmesi, verilerin sağladığı ABD lokasyonlarındaki bu fast food zincirinin ürünlerini ve organizasyonunu iyileştirmek için çok uluslu şirket için değerli olabilir.
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()
Tek bir kod satırında, daha önce açıklanan top2vec'in tüm adımlarını gerçekleştireceğiz.
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"},
)
Top2Vec'in ana argümanları şunlardır:
- docs_bad: dizelerin bir listesidir.
- evrensel cümle kodlayıcı: seçilen önceden eğitilmiş katıştırma modelidir.
- derin öğrenme: üretilen belge vektörünün kalitesini belirleyen bir parametredir.
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)
En
Kelime bulutlarından, konu 0'ın McDonald'daki hizmetle ilgili "yavaş servis", "korkunç hizmet" ve "yanlış sipariş" gibi genel şikayetlerle ilgili olduğunu, konu 1 ve 2'nin ise sırasıyla kahvaltı yemeklerini ifade ettiğini çıkarabiliriz ( McMuffin, bisküvi, yumurta) ve kahve (buzlu kahve ve fincan kahve).
Şimdi, yanlış ve yavaş olmak üzere iki anahtar kelime kullanarak belgeleri aramaya çalışıyoruz:
( 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()
Çıktı:
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, konu açıklamalarında önemli kelimeleri tutarken kolayca yorumlanabilen konulara olanak tanıyan yoğun kümeler oluşturmak için transformatörleri ve c-TF-IDF'yi kullanan bir konu modelleme tekniğidir."
Adından da anlaşılacağı gibi, BERTpic metinde yer alan konuları belirlemek için güçlü dönüştürücü modelleri kullanır. Bu konu modelleme algoritmasının bir diğer özelliği, TF-IDF'nin sınıf tabanlı varyasyonu olarak adlandırılan bir TF-IDF varyantının kullanılmasıdır.
Top2Vec gibi, konu sayısını bilmesine gerek yoktur, ancak konuları otomatik olarak çıkarır.
Ayrıca Top2Vec'e benzer şekilde farklı aşamaları içeren bir algoritmadır. İlk üç adım aynıdır: gömülü belgelerin oluşturulması, UMAP ile boyut azaltma ve HDBScan ile kümeleme.
Ardışık aşamalar Top2Vec'ten ayrılmaya başlar. HDBSCAN ile yoğun alanlar bulunduktan sonra, her konu, kelimenin belgede görünüp görünmediğini dikkate alan bir kelime çantası temsiline dönüştürülür. Bir kümeye ait belgeler özgün belge olarak değerlendirildikten sonra TF-IDF uygulanır. Bu nedenle, her konu için, en yüksek c-TF-IDF'ye sahip olması gereken en alakalı kelimeleri belirliyoruz.
BERTopic Örneği
Analizi aynı veri kümesi üzerinde tekrarlıyoruz.
BERTpic kullanarak incelemelerden konuları çıkaracağız:
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()
Model tarafından döndürülen tablo, çıkarılan 14 konu hakkında bilgi sağlar. Konu, -1 olarak etiketlenen yok sayılan tüm aykırı değerler dışında, konu tanımlayıcısına karşılık gelir.
Şimdi, her konu için en alakalı terimlerin görselleştirilmesi, intertopik mesafe haritası, gömme uzayının iki boyutlu gösterimi gibi konularımızın etkileşimli grafiklere dönüştürülmesiyle ilgili en ilginç kısma geçeceğiz. konu hiyerarşisi.
İlk on konu için çubuk grafikleri göstermeye başlayalım. Her konu için, c-TF-IDF puanına göre azalan düzende sıralanan en önemli kelimeleri gözlemleyebiliriz. Bir kelime ne kadar alakalı olursa, puan o kadar yüksek olur.
İlk konu, konum ve yemek, konu 1 sipariş ve bekleme, konu 2 en kötü ve hizmet, konu 3 yer ve kirli, reklam gibi genel sözcükleri içerir.
Çubuk grafikleri görselleştirdikten sonra, intertopik mesafe haritasına bir göz atmanın zamanı geldi. Konuları bir olay örgüsünde görselleştirmek için c-TF-IDF puanının boyutsallığını iki boyutlu bir alana indirgiyoruz. Alt kısımda kırmızı renkle renklendirilecek konunun seçilmesine izin veren bir kaydırıcı vardır. Konuların biri yemek, tavuk ve konum gibi genel temalara sahip, diğeri ise en kötü servis, kirli, yer ve soğuk gibi farklı olumsuz yönleri olan iki farklı kümede toplandığını fark edebiliyoruz.
Bir sonraki grafik, incelemeler ve konular arasındaki ilişkiyi görmenizi sağlar. Özellikle, bir incelemenin neden belirli bir konuya atandığını ve bulunan en alakalı kelimelerle uyumlu olduğunu anlamak yararlı olabilir. Örneğin, konu 2'ye karşılık gelen kırmızı kümeye en kötü hizmet hakkında bazı kelimelerle odaklanabiliriz. Bu yoğun alandaki belgeler, "Korkunç müşteri hizmetleri ve hatta daha kötü yemek" gibi oldukça olumsuz görünüyor.
İlk bakışta, bu yaklaşımların birçok ortak yönü vardır; konu sayısını otomatik olarak bulma, çoğu durumda ön işlemeye gerek duymama, UMAP uygulamasının belge gömmelerinin boyutsallığını azaltmak için kullanılması ve ardından HDBSCAN'ın kullanılması gibi. Bu azaltılmış belge yerleştirmelerini modellemek, ancak konuları belgelere atama biçimlerine bakıldığında temelde farklıdırlar.
Top2Vec, bir kümenin merkez noktasına yakın konumlanmış sözcükleri bularak konu temsilleri oluşturur.
Top2Vec'ten farklı olarak, BerTopic kümenin merkezini hesaba katmaz, ancak bir kümedeki tüm belgeleri benzersiz bir belge olarak kabul eder ve TF-IDF'nin sınıf tabanlı bir varyasyonunu kullanarak konu temsillerini çıkarır.
Top2Vec | BERKonu |
Kümenin merkezlerine dayalı olarak konuları ayıklama stratejisi. | c-TF-IDF'ye dayalı konuları ayıklama stratejisi. |
Dinamik Konu Modellemeyi desteklemez. | Dinamik Konu Modellemeyi destekler. |
Her konu için kelime bulutları oluşturur ve konular, belgeler ve kelimeler için arama araçları sağlar. | Çıkartılan konuların yorumlanmasına izin vererek Etkileşimli görselleştirme çizimleri oluşturmaya izin verir. |
Konu Modelleme, Doğal Dil İşleme'nin büyüyen bir alanıdır ve incelemeler, sesli ve sosyal medya gönderileri gibi çok sayıda olası uygulama vardır. Gösterildiği gibi, bu makale, birkaç satır kodla konuları belirlemenize ve sonuçları veri görselleştirmeleri aracılığıyla yorumlamanıza yardımcı olabilecek, umut verici iki yaklaşım olan Topi2Vec ve BerTopic'e genel bir bakış sunmaktadır. Bu teknikler hakkında sorularınız varsa veya konuları tespit etmeye yönelik diğer yaklaşımlar hakkında başka önerileriniz varsa, yorumlara yazın.
Eugenia Anello şu anda İtalya Padova Üniversitesi Bilgi Mühendisliği Bölümü'nde araştırma görevlisidir. Araştırma projesi, Anomali Tespiti ile birlikte Sürekli Öğrenmeye odaklanmıştır.
- SEO Destekli İçerik ve Halkla İlişkiler Dağıtımı. Bugün Gücünüzü Artırın.
- Plato blok zinciri. Web3 Metaverse Zekası. Bilgi Güçlendirildi. Buradan Erişin.
- Kaynak: 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
- Yapabilmek
- Hakkımızda
- Hesap
- Ad
- adres
- Sonra
- algoritma
- algoritmalar
- hizalı
- Türkiye
- tahsis
- Izin
- veriyor
- tutarları
- analiz
- çözümlemek
- ve
- anomali tespiti
- Başka
- Uygulama
- uygulamaları
- uygulamalı
- yaklaşım
- yaklaşımlar
- ALAN
- alanlar
- argümanlar
- göre
- yönleri
- atanmış
- ses
- otomatik olarak
- mevcut
- Kötü
- bar
- merkezli
- Çünkü
- arasında
- Alt
- Kahvaltı
- bina
- inşa
- hesaplanması
- denilen
- yapamam
- yetenekli
- ele geçirmek
- durumlarda
- zincir
- karakteristik
- Grafikler
- seçilmiş
- Şehir
- klasik
- Kapanış
- yakın
- Küme
- kümeleme
- kod
- Kahve
- kombine
- yorumlar
- ortak
- şikayetleri
- kabul
- düşünen
- içeren
- bağlam
- geleneksel
- uyan
- tekabül
- yaratmak
- çevrimiçi kurslar düzenliyorlar.
- oluşturur
- Oluşturma
- oluşturma
- Fincan
- Şu anda
- müşteri
- Müşteri Hizmetleri
- veri
- gün
- ilgili
- gösterdi
- bölüm
- Bulma
- belirleyen
- farklı
- mesafe
- Uzak
- Uzaklaş
- belge
- evraklar
- Değil
- sakıncaları
- sürücü
- arabaya servis
- dinamik
- her
- kolayca
- başka yerde
- gömülü
- Mühendislik
- Hatta
- örnek
- Dışında
- açıkladı
- çıkarmak
- Hulasa
- son derece
- HIZLI
- adam
- az
- alan
- bulmak
- bulma
- Ad
- odak
- odaklanmış
- Gıda
- bulundu
- itibaren
- esasen
- genel
- oluşturmak
- oluşturulan
- almak
- Küresel
- Go
- gidiş
- grafik
- grafikler
- Büyüyen
- yardım et
- hiyerarşi
- Yüksek
- daha yüksek
- en yüksek
- HTTPS
- Fikir
- Kimlik
- tanımlayıcı
- belirlemek
- belirlenmesi
- ithalat
- önemli
- iyileştirmek
- in
- bilgi
- yerine
- interaktif
- ilginç
- yorumlama
- IT
- İtalya
- KDNuggets
- koruma
- Bilmek
- etiket
- dil
- büyük
- öğrenme
- leverages
- çizgi
- hatları
- Liste
- yerel
- bulunan
- yer
- yerleri
- Bakın
- bakıyor
- Ana
- çok
- harita
- Matris
- MCDONALD
- anlamlı
- medya
- model
- Modelleme
- modelleme
- modelleri
- Daha
- çoğu
- çok uluslu
- isim
- Doğal (Madenden)
- Doğal lisan
- Doğal Dil İşleme
- gerek
- negatif
- sonraki
- Gürültü
- numara
- sayısız
- gözlemek
- elde
- ONE
- sipariş
- organizasyon
- orijinal
- Diğer
- pandalar
- parametre
- Bölüm
- belirli
- yüzde
- yapmak
- ifadeler
- yer
- Platon
- Plato Veri Zekası
- PlatoVeri
- Nokta
- mümkün
- Mesajlar
- güçlü
- mevcut
- önceki
- Önceden
- işleme
- Üretilmiş
- Ürünler
- proje
- umut verici
- sağlanan
- sağlar
- kalite
- Sorular
- neden
- Kırmızı
- azaltmak
- Indirimli
- azaltarak
- ilişkin
- ilişki
- İlişkiler
- uygun
- tekrar et
- temsil
- temsilci
- temsil
- araştırma
- Sonuçlar
- açığa vurmak
- yorum
- Yorumları
- aynı
- Ara
- arama
- seçme
- hizmet
- meli
- şov
- gösterilen
- görme
- benzer
- benzer şekilde
- beri
- tek
- kaydırıcı
- yavaş
- So
- Sosyal Medya
- sosyal medya
- Sosyal Medya Gönderileri
- biraz
- uzay
- özel
- özel
- bölmek
- adım
- Basamaklar
- Stratejileri
- yapı
- böyle
- Önerdi
- denetimli öğrenme
- destek
- Destekler
- tablo
- Bizi daha iyi tanımak için
- alır
- teknikleri
- on
- şartlar
- The
- Orada.
- üç
- İçinden
- zaman
- için
- simgeleþtirilmiþ
- araçlar
- üst
- En iyi on
- konu
- Konular
- transformatörler
- öğretici
- tipik
- altında yatan
- anlamak
- benzersiz
- üniversite
- Amerika Birleşik Devletleri
- kullanım
- Değerli
- Değerler
- Varyant
- görüntüleme
- beklemek
- hangi
- süre
- sırasında
- irade
- içinde
- Word
- sözler
- En kötü
- yazmak
- Yanlış
- zefirnet