Twitter Veri Madenciliği: Python Kullanarak Büyük Veri Analitiği Kılavuzu
Yayınlanan: 2022-03-11Büyük veri her yerde. Dönem. Günümüz çağında başarılı bir iş yürütme sürecinde, isteseniz de istemeseniz de büyük olasılıkla onunla karşılaşacaksınız.
Zamana ayak uydurmaya çalışan bir iş adamı veya bir sonraki projesini arayan bir kodlama dahisi olun, bu eğitim size büyük verinin ne olduğuna dair kısa bir genel bakış sunacaktır. Size nasıl uygulanabilir olduğunu ve Twitter API ve Python aracılığıyla nasıl hızlı bir şekilde başlayabileceğinizi öğreneceksiniz.
Büyük Veri Nedir?
Büyük veri tam olarak kulağa nasıl geliyorsa öyledir - çok fazla veri. Tek başına, tek bir veri noktası size fazla bilgi veremez. Ancak terabaytlarca veri, karmaşık matematiksel modeller ve şiddetli bilgi işlem gücüyle birleştiğinde, insanların üretemeyeceği içgörüler yaratabilir. Büyük veri Analitiğinin bir işletmeye sağladığı değer soyuttur ve her gün insan yeteneklerini aşar.
Büyük veri analitiğinin ilk adımı, verilerin kendisini toplamaktır. Bu, “veri madenciliği” olarak bilinir. Veriler her yerden gelebilir. Çoğu işletme gigabaytlarca kullanıcı, ürün ve konum verisiyle ilgilenir. Bu eğitimde, düşündüğünüzden daha faydalı olabilecek Twitter verilerini toplamak için veri madenciliği tekniklerini nasıl kullanabileceğimizi keşfedeceğiz.
Örneğin, Facebook'u çalıştırdığınızı ve hedef kitlenize nasıl daha iyi reklam verebileceğinize ilişkin bilgiler sağlamak için Messenger verilerini kullanmak istediğinizi varsayalım. Messenger'ın aylık 1,2 milyar aktif kullanıcısı var. Bu durumda, büyük veriler kullanıcılar arasındaki konuşmalardır. Her kullanıcının konuşmalarını tek tek okusaydınız, nelerden hoşlandığını iyi anlayabilir ve ona göre ürünler önerebilirsiniz. Doğal Dil İşleme (NLP) olarak bilinen bir makine öğrenimi tekniğini kullanarak, tüm süreç otomatikleştirilmiş ve makinelere bırakılmış olarak bunu büyük ölçekte yapabilirsiniz.
Bu, makine öğrenimi ve büyük veri analitiğinin şirketinize nasıl değer katabileceğinin sayısız örneğinden sadece biridir.
Neden Twitter verileri?
Twitter bir veri madeni. Diğer sosyal platformlardan farklı olarak, hemen hemen her kullanıcının tweetleri tamamen herkese açık ve çekilebilir. Analitiği çalıştırmak için büyük miktarda veri almaya çalışıyorsanız, bu çok büyük bir artı. Twitter verileri de oldukça spesifik. Twitter'ın API'si, son yirmi dakika içinde belirli bir konu hakkındaki her tweet'i çekmek veya belirli bir kullanıcının retweet'lenmemiş tweet'lerini çekmek gibi karmaşık sorgular yapmanıza olanak tanır.
Bunun basit bir uygulaması, şirketinizin kamuoyunda nasıl karşılandığını analiz etmek olabilir. Şirketinizden (veya istediğiniz herhangi bir terimden) bahseden son 2.000 tweet'i toplayabilir ve bunun üzerinde bir duygu analizi algoritması çalıştırabilirsiniz.
Ayrıca, uzamsal veri olarak bilinen belirli bir konumda yaşayan kullanıcıları da hedefleyebiliriz. Bunun bir başka uygulaması da dünya üzerinde şirketinizin en çok anıldığı bölgelerin haritasını çıkarmak olabilir.
Gördüğünüz gibi, Twitter verileri genel halkın içgörülerine ve bir konuyu nasıl aldıklarına dair büyük bir kapı olabilir. Bu, Twitter'ın API'sinin açıklığı ve cömert oran sınırlaması ile birleştiğinde, güçlü sonuçlar üretebilir.
Araçlara Genel Bakış
Bu örnekler için Python 2.7 kullanacağız. İdeal olarak, bu kodu yazmak için bir IDE'niz olmalıdır. PyCharm - Community Edition kullanacağım.
Twitter'ın API'sine bağlanmak için birazdan kuracağımız Tweepy adlı bir Python kütüphanesi kullanacağız.
Başlarken
Twitter Geliştirici Hesabı
Twitter'ın API'sini kullanmak için Twitter uygulamaları sitesinde bir geliştirici hesabı oluşturmamız gerekiyor.
- https://apps.twitter.com/ adresinde oturum açın veya bir Twitter hesabı oluşturun.
- Yeni bir uygulama oluşturun (sağ üstteki düğme)
- Uygulama oluşturma sayfasını benzersiz bir ad, bir web sitesi adı (eğer yoksa bir yer tutucu web sitesi kullanın) ve bir proje açıklaması ile doldurun. Hüküm ve koşulları kabul edin ve sonraki sayfaya geçin.
- Projeniz oluşturulduktan sonra “Anahtarlar ve Erişim Simgeleri” sekmesine tıklayın. Artık tüketici sırrınızı ve tüketici anahtarınızı görebilmeniz gerekir.
- Ayrıca bir çift erişim belirtecine ihtiyacınız olacak. Aşağı kaydırın ve bu jetonları isteyin. Sayfa yenilenmeli ve artık bir erişim belirteciniz ve erişim belirteci sırrınız olmalıdır.
Bunların hepsine daha sonra ihtiyacımız olacak, bu yüzden bu sekmeyi açık tuttuğunuzdan emin olun.
Tweepy'yi Yükleme
Tweepy, Twitter API'sine erişmek için mükemmel şekilde desteklenen bir araçtır. Python 2.6, 2.7, 3.3, 3.4, 3.5 ve 3.6'yı destekler. Tweepy'yi kurmanın birkaç farklı yolu vardır. En kolay yol pip
kullanmaktır.
Pip'i kullanma
Terminalinize pip install tweepy
yeterlidir.
GitHub'ı Kullanma
Tweepy'nin GitHub deposundaki talimatları takip edebilirsiniz. Temel adımlar aşağıdaki gibidir:
git clone https://github.com/tweepy/tweepy.git cd tweepy python setup.py install
Herhangi bir kurulum sorununu orada da giderebilirsiniz.
kimlik doğrulama
Gerekli araçlar hazır olduğuna göre artık kodlamaya başlayabiliriz! Bugün oluşturacağımız her uygulamanın temeli, işlevleri çağırabileceğimiz bir API nesnesi oluşturmak için Tweepy'yi kullanmayı gerektirir. Ancak API nesnesini oluşturmak için önce geliştirici bilgilerimizle kendimizi doğrulamamız gerekir.
İlk önce Tweepy'yi içe aktaralım ve kendi kimlik doğrulama bilgilerimizi ekleyelim.
import tweepy consumer_key = "wXXXXXXXXXXXXXXXXXXXXXXX1" consumer_secret = "qXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXh" access_token = "9XXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXi" access_token_secret = "kXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT"
Şimdi API nesnemizi oluşturma zamanı.
# Creating the authentication object auth = tweepy.OAuthHandler(consumer_key, consumer_secret) # Setting your access token and secret auth.set_access_token(access_token, access_token_secret) # Creating the API object while passing in auth information api = tweepy.API(auth)
Bu, oluşturduğumuz her uygulamanın temeli olacaktır, bu yüzden onu silmediğinizden emin olun.
Örnek 1: Zaman Çizelgeniz
Bu örnekte, Twitter akışınızdan en son on tweet'i alacağız. Bunu API nesnesinin home_timeline()
işlevini kullanarak yapacağız. Daha sonra sonucu bir değişkende saklayabilir ve sonuçları yazdırmak için bunun arasında dolaşabiliriz.
# Using the API object to get tweets from your timeline, and storing it in a variable called public_tweets public_tweets = api.home_timeline() # foreach through all tweets pulled for tweet in public_tweets: # printing the text stored inside the tweet object print tweet.text
Sonuç, bir grup rastgele tweet gibi görünmeli ve ardından tweet'in URL'si gelmelidir.

Tweet'in bağlantısını takip etmek sizi genellikle tweet'in kendisine götürür. İlk tweet'teki bağlantıyı takip etmek bize şu sonucu verir:
Bunu PyCharm gibi bir IDE değil de terminal üzerinden çalıştırıyorsanız, tweet metnini yazdırmaya çalışırken bazı biçimlendirme sorunlarınız olabileceğini unutmayın.
Sonuçların Arkasındaki JSON
Yukarıdaki örnekte, tweet.text
kullanarak her tweetin metnini yazdırdık. Her tweet nesnesinin belirli özelliklerine atıfta bulunmak için Twitter API'si tarafından döndürülen JSON'a bakmamız gerekir.
Twitter API'sinden aldığınız sonuç bir JSON biçimindedir ve ekli oldukça fazla bilgi içerir. Kolaylık sağlamak için, bu eğitimde esas olarak her bir tweet'in "metin" niteliğine ve tweeter (tweet'i oluşturan kullanıcı) hakkındaki bilgilere odaklanır. Yukarıdaki örnek için, döndürülen JSON nesnesinin tamamını burada görebilirsiniz.
İşte bir tweet'in sunduğu bazı özelliklere hızlı bir bakış.
Tweet'in oluşturulduğu tarihi bulmak isteseydiniz, print tweet.created_at
ile sorgulardınız.
Ayrıca her tweet nesnesinin tweeter hakkında bilgilerle birlikte geldiğini görebilirsiniz.
Tweeter'ın "ad" ve "konum" özniteliğini almak için, print tweet.user.screen_name
ve print tweet.user.location
.
Uygulamanız uzamsal verilere bağlıysa, bu özniteliklerin son derece yararlı olabileceğini unutmayın.
Örnek 2: Belirli Bir Kullanıcıdan Gelen Tweetler
Bu örnekte, seçtiğimiz bir kullanıcıdan en son yirmi tweet'i alacağız.
İlk olarak, böyle bir işlevin var olup olmadığını görmek için Tweepy belgelerini inceleyeceğiz. Biraz araştırma ile user_timeline()
işlevi olduğunu bulduk.
user_timeline()
işlevinin, özellikle id
(kullanıcının kimliği) ve count
(çekmek istediğimiz tweet miktarı) gibi kullanabileceğimiz bazı yararlı parametrelere sahip olduğunu görebiliriz. Twitter'ın hız limitleri nedeniyle sorgu başına yalnızca sınırlı sayıda tweet çekebileceğimizi unutmayın.
@NyTimes twitter hesabından en son yirmi tweet'i çekmeyi deneyelim.
Çekmek istediğimiz (saymak) tweet miktarını ve onları çekmek istediğimiz kullanıcıyı (isim) saklamak için değişkenler oluşturabiliriz. Daha sonra bu iki parametreyle user_timeline işlevini çağırabiliriz. Aşağıda güncellenmiş kod bulunmaktadır (kimlik doğrulama ve API nesnesi oluşturmayı kodunuzun en üstünde tutmanız gerektiğini unutmayın).
# Creating the API object while passing in auth information api = tweepy.API(auth) # The Twitter user who we want to get tweets from name = "nytimes" # Number of tweets to pull tweetCount = 20 # Calling the user_timeline function with our parameters results = api.user_timeline(id=name, count=tweetCount) # foreach through all tweets pulled for tweet in results: # printing the text stored inside the tweet object print tweet.text
Sonuçlarımız şöyle görünmelidir:
Bu tür verilerin popüler uygulamaları şunları içerebilir:
- Belirli kullanıcılar ve dünyayla nasıl etkileşime girdikleri üzerinde analiz çalıştırma
- Twitter etkileyicilerini bulma ve takipçi eğilimlerini ve etkileşimlerini analiz etme
- Bir kullanıcının takipçilerindeki değişiklikleri izleme
Örnek 3: Anahtar Kelime Kullanarak Tweet Bulma
Son bir örnek yapalım: Bir anahtar kelime içeren en son tweetleri almak. Bu, Twitter dünyasında özel olarak bahsedilen konuları izlemek veya hatta işletmenizden nasıl bahsedildiğini görmek istiyorsanız son derece yararlı olabilir. Diyelim ki Twitter'ın Toptal'dan nasıl bahsettiğini görmek istiyoruz.
Tweepy belgelerine baktıktan sonra, search()
işlevi hedefimize ulaşmak için en iyi araç gibi görünüyor.
Buradaki en önemli parametre q
- aradığımız anahtar kelime olan sorgu parametresidir.
Ayrıca dil parametresini istenmeyen bir dilden tweet almamak için ayarlayabiliriz. Sadece İngilizce (“en”) tweetleri döndürelim.
Artık kodumuzu, yapmak istediğimiz değişiklikleri yansıtacak şekilde değiştirebiliriz. Önce parametrelerimizi (sorgu ve dil) depolamak için değişkenler oluşturuyoruz ve ardından API nesnesi aracılığıyla işlevi çağırıyoruz. Döngümüze tweeti oluşturan kullanıcının ekran adını da yazdıralım.
# Creating the API object while passing in auth information api = tweepy.API(auth) # The search term you want to find query = "Toptal" # Language code (follows ISO 639-1 standards) language = "en" # Calling the user_timeline function with our parameters results = api.search(q=query, lang=language) # foreach through all tweets pulled for tweet in results: # printing the text stored inside the tweet object print tweet.user.screen_name,"Tweeted:",tweet.text
Sonuçlarımız şöyle görünmelidir:
İşte bu bilgileri kullanmanın bazı pratik yolları:
- Şirketinizin dünyada en çok bahsedildiği yerin uzamsal grafiğini oluşturun
- Şirketinizin genel görüşünün olumlu mu yoksa olumsuz mu olduğunu görmek için tweet'lerde duygu analizi yapın
- Şirketiniz veya ürününüz hakkında tweet atan en popüler kullanıcıların sosyal grafiklerini oluşturun
Bu konuların bazılarını ilerideki makalelerde ele alabiliriz.
Çözüm
Twitter'ın API'si, veri madenciliği uygulamalarında son derece faydalıdır ve kamuoyuna ilişkin geniş içgörüler sağlayabilir. Twitter API'si ve büyük veri analizi daha fazla ilgi duyduğunuz bir konuysa, Twitter API, Tweepy ve Twitter'ın Hız Sınırlama yönergeleri hakkında daha fazla bilgi edinmenizi tavsiye ederim.
Sadece erişim ve çekmenin temellerini ele aldık. Twitter'ın API'si, insan aklının tek başına kavrayamayacağı kadar karmaşık olan insanları, eğilimleri ve sosyal grafikleri içeren çok karmaşık büyük veri problemlerinde kullanılabilir.