Doğal dil işleme üzerine bir uygulama geliştirmenin ana zorluğu metinin sayılara dönüştürülmesi. Genel olarak kullanılan metodlar.
- Kelimeler için vektör karşılığı ( WordVect) hesaplamak ve bu vektörleri bir dizi şekilde vermek.
- Kelimeleri bir dizi de tutup orda belli büyüklükte vektörlere eğitim esnasında çeviren Embeding katmanını kullanmak
- Metinin harf dizisi olarak düşünüp. Her harfi harf sayısı kadar uzunlukta bir vectörle ifade etmek.
Veri setimiz hakkındaki bilgilere ve verisetinin kendisine burdan ulaşabilirsiniz
thinknook.com/twitter-sentiment-analysis-training-corpus-dataset-2012-09-22/
Veri setimizde toplamda 1578624 adet kayıt var.
Olumlu : 790184olumlu ve olumsuz nitelikli metinlerin sayılarıda aşğı yukarı eşit.
Olumsuz : 788440
Biz metinin sayıya çevrilmesi için harf bazlı bir sistem uyguladık. Veri üzerinde herhangi bir filitreleme yapılmadı. Sadece küçük harfe çevrildi. Metinlerde geçen harler çıkarılıp birer sıra no karşılığla bir sözlükte -dict - tutuldu.
{'\t': 0,Veri sadece Ağ yapısı olarak LSTM bazlı basit bir sistem kuruldu. LSTM de dizinin tersine sıralamasınıda hesaba katan Bidirectional katmanı ile birlikte kullanıyoruz.
'\n': 1,
' ': 2,
'!': 3,
'"': 4,
'#': 5,
'$': 6,
'%': 7,
'&': 8,
"'": 9,
'(': 10,
')': 11,
'*': 12,
'+': 13,
',': 14,
'-': 15,
'.': 16,
'/': 17,
'0': 18,
...
Layer (type) Output Shape Param #
===================================
bidirectional_1 (Bidirection (None, 150, 278) 310248
_________________________________________________
bidirectional_2 (Bidirection (None, 278) 464816
________________________________________________
dense_1 (Dense) (None, 2) 558
________________________________________________
activation_1 (Activation) (None, 2) 0
====================================
Total params: 775,622
Trainable params: 775,622
Non-trainable params: 0
Veri epey büyük olduğunda eğitim epey uzun sürüyor biz bir kontrol başarısı %85 civarında kesdik.
Çalışmamıza burdan erişebilirsiniz
github.com/birolkuyumcu/ddm_blog_examples/tree/master/sentimentÜzerinde çalışılması lazım elbette ama bence bu halide fena değil. Bir örnek verelim
"Got the Macbook Pro seller to send me the serial number of the machine before I paid.bu twit için modelimiz. 0.623167 oranıyla olumsuz diye karar vermiş
Turns out its just a macbook so not buying it now"
aynı twitin başındaki kısmı alıp sorduğumuzda
"Got the Macbook Pro seller to send me the serial number of the machine "
haklı olarak 0.62573 oranıyla olumlu cevap vermiş.
Giriş niteliğinde, harf bazlı, LSTM içerikli bir çözüm. Bir başlangıç noktası olmasını umuyor, görüş ve önerilerinizi bekliyoruz...
1 yorum:
metinin sayıya çevrilmesi için harf bazlı bir sistemin neden kullanıldığını anlayamadım bu konuda yardımcı olurmusunuz?
Yorum Gönder