Duyarlılık analizi şaşırtıcı derecede doğrudur ve denemek için bu basit Tkinter uygulamasını oluşturabilirsiniz.
Duygu analizi, bir metin parçasının duygusal tonunu belirlemek için kullanılan bir tekniktir. Doğal dil işleme, metin analizi ve hesaplamalı dilbilim kullanır. Bunu kullanarak tonu pozitif, nötr veya negatif olarak sınıflandırabilirsiniz. Bu, işletmelerin sosyal medya, incelemeler ve anketlerle ilgili müşteri geri bildirimlerini analiz etmesine yardımcı olur.
Bu verilere dayanarak, ürünlerini ve kampanyalarını daha etkin bir şekilde stratejilendirebilirler. Python kullanarak duyguları algılayan bir uygulamayı nasıl oluşturabileceğinizi öğrenin.
Tkinter ve vaderSentiment Modülü
Tkinter, masaüstü uygulamaları oluşturmanıza olanak tanır. Uygulama geliştirmeyi kolaylaştıran düğmeler, etiketler ve metin kutuları gibi çeşitli widget'lar sunar. Tkinter'ı şu amaçlarla kullanabilirsiniz: Python'da bir sözlük uygulaması oluşturun ya da Bir API aracılığıyla hikayeleri güncelleyen kendi haber uygulamanızı oluşturun.
Tkinter'ı kurmak için bir terminal açın ve şunu çalıştırın:
pip kurulumu tkinter
VADER (Valence Aware Dictionary and sEntiment Reasoner), sözlük ve kural tabanlı bir duygu analizi aracıdır. Önceden oluşturulmuş ve yaygın olarak kullanılan Doğal Dil İşleme. Algoritma, farklı duyguları temsil eden önceden tanımlanmış bir dizi kelimeye sahiptir. Cümlede bulunan kelimelere dayanarak, bu algoritma bir polarite puanı verir. Bu puanı kullanarak, cümlenin olumlu, olumsuz veya nötr olup olmadığını belirleyebilirsiniz.
vaderSentiment paketini Python'a kurmak için şu terminal komutunu çalıştırın:
pip kurulumu vaderSentiment
Python Kullanarak Duygular Nasıl Tespit Edilir?
Bu örnek programın kaynak kodunu kendi dosyasında bulabilirsiniz. GitHub deposu.
Gerekli VADER ve tkinter modüllerini içe aktararak başlayın:
itibaren vaderSentiment.vaderSentiment içe aktarmak SentimentIntensityAnalyzer
itibaren tkinter içe aktarmak *
Ardından bir işlev tanımlayın, hepsini temizle(). Amacı, kullanarak yapabileceğiniz giriş alanlarını temizlemektir. silmek() başlangıç dizininden yöntem 0 son dizine, SON.
kesinliklehepsini temizle():
negatifField.delete(0, SON)
nötrField.delete(0, SON)
pozitifField.delete(0, SON)
generalField.delete(0, SON)
textArea.delete(1.0, SON)
Bir işlev tanımlayın, algı_duyarlılığı(). Girilen kelimeyi almak için get yöntemini kullanın. metin alanı Widget ve bir nesne oluşturun SentimentIntensityAnalyzer sınıf. Kullan polarite_skorları yöntemini getirin ve VADER duyarlılık analizi algoritmasını uygulayın.
kesinliklealgı_duyarlılığı():
cümle = textArea.get("1.0", "son")
feel_obj = SentimentIntensityAnalyzer()
feel_dict = feel_obj.polarity_scores (cümle)
Negatif duyarlılık puanını çıkarın('neg') ve yüzdeye dönüştürün. Elde edilen değeri girin negatifAlan 10. konumdan başlayarak. Nötr duyarlılık puanı için aynı işlemi tekrarlayın ('yeni') ve olumlu duyarlılık puanı ("konum").
dizi = str (duyarlılık_dikte['neg'] * 100)
negatifField.insert(10, sicim)dizi = str (duyarlılık_dikte['yeni'] * 100)
nötrField.insert(10, sicim)
dizi = str (duyarlılık_dikte["konum"] * 100)
pozitifField.insert(10, sicim)
Cümlenin genel duygusunu içeren bileşik anahtarın değerini ayıklayın. Değer 0,05'ten büyük veya eşitse, cümle pozitiftir. Değer -0,05'ten küçük veya ona eşitse, cümle olumsuzdur. -0,05 ile 0,05 arasındaki değerler için nötr bir ifadedir.
eğer duygu_dikti['birleştirmek'] >= 0.05:
dizi = "Pozitif"
elif duygu_dikti['birleştirmek'] <= - 0.05:
dizi = "Olumsuz"
başka:
dizi = "Doğal"
Sonucu şuraya girin: genelAlan 10. pozisyondan:
generalField.insert(10, sicim)
Tkinter kullanarak bir grafik kullanıcı arayüzü penceresi başlatın. Pencerenin arka plan rengini, başlığını ve boyutlarını ayarlayın. Beş etiket oluşturun. Kullanıcıdan bir cümle girmesini isteyen ve diğer dördü farklı duygular için. Yerleştirmek istediğiniz ana öğeyi, görüntülemesi gereken metni ve arka plan rengiyle birlikte sahip olması gereken yazı tipi stillerini ayarlayın.
Kullanıcıdan cümleyi almak için bir Metin parçacığı tanımlayın. Yerleştirmek istediğiniz üst öğeyi, yüksekliğini, genişliğini, yazı tipi stillerini ve sahip olması gereken arka plan rengini ayarlayın. Üç düğme tanımlayın. Biri duyarlılık analizi yapmak için, biri kullanımdan sonra içeriği temizlemek için ve biri de uygulamadan çıkmak için. Üst penceresini, göstermesi gereken metni, arka plan rengini, yazı tipi stillerini ve tıklandığında yürütmek istediğiniz komutu ayarlayın.
eğer __isim__ == "__ana__":
gui = Tk()
gui.config (arka plan="#A020f0")
gui.title("VADER Duyarlılık Analizörü")
gui.geometri("400x700")
enterText = Etiket (gui, metin="Cümlenizi Giriniz: ",yazı tipi="arial 15 kalın",bg="#A020f0")
negatif = Etiket (gui, metin="Negatif Yüzde: ", yazı tipi="arial 15",bg="#A020f0")
nötr = Etiket (gui, metin="Nötr Yüzde: ", yazı tipi="arial 15",bg="#A020f0")
pozitif = Etiket (gui, metin="Pozitif Yüzde: ", yazı tipi="arial 15",bg="#A020f0")
genel = Etiket (gui, metin="Genel Cümle: ", yazı tipi="arial 15",bg="#A020f0")
textArea = Metin (gui, yükseklik=5, genişlik=25, yazı tipi="arial 15", bg="#cf9fff")
check = Düğme (gui, metin ="Duyarlılığı Kontrol Et", bg="#e7305b", yazı tipi=("arial", 12, "gözü pek"), komut=algılama_duyarlılığı)
clear = Düğme (gui, metin="Temizlemek", bg="#e7305b", yazı tipi=("arial", 12, "gözü pek"), komut=clearAll)
Çıkış = Düğme (gui, metin="Çıkış", bg="#e7305b", yazı tipi=("arial", 12, "gözü pek"), komut=çıkış)
Farklı duygular için dört Giriş alanı tanımlayın ve üst pencere ve yazı tipi stillerini ayarlayın.
negatifField = Giriş (gui, yazı tipi="arial 15")
nötrAlan = Giriş (gui, yazı tipi="arial 15")
pozitifField = Giriş (gui, yazı tipi="arial 15")
generalField = Giriş (gui, font="arial 15")
Genel düzen için 13 satır ve üç sütundan oluşan bir ızgara kullanın. Etiketler, metin giriş alanları ve düğmeler gibi çeşitli öğeleri gösterildiği gibi çeşitli satırlara ve sütunlara yerleştirin. Gereken yere gerekli dolguyu ekleyin. Yı kur yapışkan seçeneği "K" hücresindeki metinleri sola hizalamak için.
enterText.grid (satır=0, sütun=2, çeltik=15)
textArea.grid (satır=1, sütun=2, padx=60, çeltik=10, yapışkan=K)
check.grid (satır=2, sütun=2, çeltik=10)
negatif.grid (satır=3, sütun=2, çeltik=10)
nötr.grid (satır=5, sütun=2, çeltik=10)
pozitif.ızgara (satır=7, sütun=2, çeltik=10)
genel.ızgara (satır=9, sütun=2, çeltik=5)
negatifField.grid (satır=4, sütun=2)
nötrField.grid (satır=6, sütun=2)
pozitifField.grid (satır=8, sütun=2)
generalField.grid (satır=10, sütun=2, çeltik=10)
clear.grid (satır=11, sütun=2, çeltik=10)
Exit.grid (satır=12, sütun=2, çeltik=10)
bu Ana döngü() işlevi, Python'a Tkinter olay döngüsünü çalıştırmasını ve siz pencereyi kapatana kadar olayları dinlemesini söyler.
gui.mainloop()
Tüm kodu bir araya getirin ve ortaya çıkan kısa programı duyguları algılamak için kullanabilirsiniz.
Python Kullanarak Duyguları Tespit Etmenin Çıktısı
Bu program çalıştırıldığında, VADER Sentiment Analyzer penceresi görünür. Programı olumlu bir cümle üzerinde test ettiğimizde %79 doğrulukla tespit etti. Nötr bir ifade ve olumsuz bir ifadeyi denediğinde, program sırasıyla %100 ve %64,3 doğrulukla tespit edebildi.
Python Kullanarak Duyarlılık Analizi İçin Alternatifler
Textblob'u yaklaşım analizi, konuşma etiketleme ve metin sınıflandırması için kullanabilirsiniz. Tutarlı bir API'ye ve yerleşik bir duygu polarite sınıflandırıcısına sahiptir. NLTK, metin analizi için çok çeşitli araçlar içeren, ancak yeni başlayanlar için zorlu bir öğrenme eğrisine sahip kapsamlı bir NLP kitaplığıdır.
En popüler araçlardan biri IBM Watson NLU'dur. Bulut tabanlıdır, birkaç dili destekler ve varlık tanıma ve anahtar çıkarma gibi özelliklere sahiptir. GPT'nin kullanıma sunulmasıyla birlikte, gerçek zamanlı olarak doğru ve güvenilir müşteri duyguları elde etmek için OpenAI API'yi kullanabilir ve uygulamalarınıza entegre edebilirsiniz.