Bilgisayar Programlamasına ve Veri Analizine Giriş - VIII

Slides:



Advertisements
Benzer bir sunumlar
HAZİRAN / JUNE 2013 PAZARTESİ MON SALI TUE ÇARŞAMBA WED PERŞEMBE THU CUMA FRI CUMARTESİ SAT PAZAR SUN
Advertisements

Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
Özdeğerler ve özvektörler
Determinant Bir kare matrisin tersinir olup olmadığına dair bilgi veriyor n- boyutlu uzayda matrisin satırlarından oluşmuş bir paralel kenarın hacmine.
A1 sistemi A2 sistemi Hangisi daha hızlı sıfıra yaklaşıyor ? Hatırlatma.
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
Hazırlayan: Dr. Emine CABI
Hopfield Ağı Ayrık zamanSürekli zaman Denge noktasının kararlılığı Lyapunov Anlamında kararlılık Lineer olmayan sistemin kararlılığı Tam Kararlılık Dinamik.
AKIL (ZİHİN) HARİTASI.
TC Windows Editörü DevC++. KURULUM PROGRAMIN KURULACAĞI YER BURADA BELİRLENİYOR.
9. HAFTA 25 Nisan2016. Fonksiyon M-Dosyaları Fonksiyon dosyaları ilk satırda “function” kelimesi bulunan “.m” uzantısı bulunan dosyalardır. MATLAB içinde.
Yazılım Mühendisliği1[ 3.hft ]. Yazılım Mühendisliği2 Yazılım İ sterlerinin Çözümlemesi Yazılım Yaşam Çevrimi “ Yazılım Yaşam çevrimin herhangi bir yazılım.
EQUIZSHOW.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
İngilizce Kelime Öğrenme Teknikleri Öğr. Ertuğrul TAŞKIN.
YÖNLENDİRME. Yönlendirme ● Statik ● Dinamik ● Kaynakta yönlendirme ● Hop by hop yönlendirme.
BİLGİSAYAR PROGRAMLAMA DERSİ
NERO NEDİR NASIL KURULUR ?
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
7.SINIFLAR TEKNOLOJİ TASARIM
Hazırlayan: Safiye Çakır Mat.2-A
Hazırlayanlar: Sinan AYTULU Emine DİLAVER Güneş KARTAL Hasan ATLI
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı
Çiğdem ÇOBAN Bilgisayar Mühendisi
Bölüm 9 İş Yönetim Stratejileri : Rekabet Stratejileri
DOSYA BÜYÜKLÜKLERİ İkili Sistem Dosya Büyüklükleri ve Hesaplamalar
Klavye Kullanımı.
“Bilgi”’nin Gösterimi “Bilgi” İnsan veya Makina Yorumlama Öngörme
Hürriyet Anadolu Lisesi
GÖRSEL PROGRAMLAMA DİLİ:
İNTERNETTE ARAMAYI ÖĞRENİYORUM
BİLİMSEL ARAŞTIRMA TEKNİKLERİ VE ETİĞİ Latex Editörü ve Kullanımı-2
3.hafta METODLAR.
Bilgisayar Programlamasına ve Veri Analizine Giriş
Bilgisayar Programlamasına ve Veri Analizine Giriş
Bilgisayar Programlamasına ve Veri Analizine Giriş
Bilgisayar Programlamasına ve Veri Analizine Giriş - VI
Globalpiyasa.com’da Firma Web Sitesi Nasıl Oluşturulur?
Okul Öncesi Dönemde Fen Eğitimi
Bilgisayar Programlamasına ve Veri Analizine Giriş - VII
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
İleri Algoritma Analizi
NİŞANTAŞI ÜNİVERSİTESİ
TEKNOLOJİ VE TASARIM DERSİ 7.D.1. Özgün Ürünümü Tasarlıyorum.
SAYI ÖRÜNTÜLERİ ANAHTAR KAVRAMLAR MODELLEME ÖRÜNTÜ SAYI ÖRÜNTÜSÜ ÜS
Doğrusal Mantık Yapısı İle Problem Çözme
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
Bilgisayar Programlamasına ve Veri Analizine Giriş
İleri Algoritma Analizi
Bilgisayar Bilimi Koşullu Durumlar.
NİŞANTAŞI ÜNİVERSİTESİ
Bilgisayar Bilimi Fonksiyon Yazma.
Değerler ve Değişkenler
İşlemciler.
NİŞANTAŞI ÜNİVERSİTESİ
Bilgisayar Programlamasına ve Veri Analizine Giriş - VII
Bilgisayar Programlamasına ve Veri Analizine Giriş - III
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler
Bilgisayar Programlamasına ve Veri Analizine Giriş - VI
NİŞANTAŞI ÜNİVERSİTESİ
MTM216 GÖRSEL PROGRAMLAMA
MTM216 GÖRSEL PROGRAMLAMA
Kesikli Olay benzetimi Bileşenleri
İleri Algoritma Analizi
KİMYA DERSİNİ SEVMENİN YOLU
Bilimsel bir Bildiri veya Makale Nasıl Yazılır ve Yayımlanır?
Sunum transkripti:

Bilgisayar Programlamasına ve Veri Analizine Giriş - VIII Hüsnü Yenigün Sabancı Üniversitesi Lise Yaz Okulu 2015

Sabancı Üniversitesi Lise Yaz Okulu Modül 8 için Planımız Gerçek TWEET verilerini inceleyeceğiz 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Hatırlatma: Liste Değişkeni Birden fazla değeri tek bir değişkende tutabiliriz. Bu değişken tipine list adı verilir. Değerler arasında "," karakteri vardır, bir de [] kullanırız Örnek: liste1 = [0,2,3,4,5] liste2 = ['a', 'b', 'c', 'd'] liste3 = ["fizik", "kimya", "biyoloji", "tarih", "cografya", "turkce"] Listelerin elemanlarına sıra numaralarını kullanarak erişebiliriz print liste1[1], liste2[0], liste3[-4] 2 a biyoloji 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Hatırlatma: Liste Değişkeni Örnek: liste3 = ["fizik", "kimya", "biyoloji", "tarih", "cografya", "turkce"] for ders in liste3: print ders >>> fizik kimya biyoloji tarih Cografya turkce 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Hatırlatma: Liste Değişkeni split() fonksiyonu bir cümleyi bırakılan boşluklara göre parçalara ayırıp bir liste oluşturur. Örnek cumle = "Akilli adam aklini kullanir daha akilli adam baskalarinin da aklini kullanir " listem = cumle.split() print listem >>> ['Akilli', 'adam', 'aklini', 'kullanir', 'daha', 'akilli', 'adam', 'baskalarinin', 'da', 'aklini', 'kullanir'] 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Hatırlatma: Dictionary Veri Tipi Listelere çok benzerler ama her değere belli bir ‘key’, yani anahtar atanır. Bu sözlüklerin içinde değer aramayı çok kolaylaştırır. Örnek: gunler = {'Pazartesi': 1, 'Sali':2, 'Carsamba':3, 'Persembe':4, 'Cuma':5, 'Cumartesi': 6, 'Pazar':7} print gunler['Pazartesi'] print gunler['Cumartesi'] maks = max(gunler, key=gunler.get) print maks gunler[maks] >>> 5 Pazar 7 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

readlines() fonksiyonu Açılan dosyaların satırlarını bir listeye ekler Örnek: dosya1 = open("arkadaslar.txt", "r") listem = dosya1.readlines() print listem Erkay Savas 01.05.1891 Istanbul Mazhar Alanson 05.06.1950 Trabzon Barrack Obama 04.08.1960 Hawai Angela Merkel 01.02.1770 Almanya >>> ['Erkay Savas 01.05.1891 Istanbul\n', 'Mazhar Alanson 05.06.1950 Trabzon\n', 'Barrack Obama 04.08.1960 Hawai\n', 'Angela Merkel 01.02.1770 Almanya'] 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu TWEET Dosyası Biz bu dosyayı turkcell.txt adı altında saklıyoruz. TWEET örnekleri: itscoollana @SeaIsAnIdiot bu sarqi benden sana gelsin turkcell @Turkcell Tue Jul 22 13:06:39 EET 2014 1657 medceziirnet Tesekkurler turkcell sen olmasan bana mesaj atanda yokk ^^ @Turkcell Tue Jul 22 14:03:28 EET 2014 974 AnnaLianaUyar @Turkcell #turkcell Yolladiginiz kol gibi faturaya sonsuz tesekkurler ? Tue Jul 22 16:54:10 EET 2014 273 TechnopatNet Turkcell Akilli Otomobil Platformu tanitiliyor #turkcell #akilliotomobil http://t.co/X2WSBFxaXA Fri Jul 11 10:43:26 EET 2014 3362 Fehmi_Y_ Iyiki Turkcell liyim hepsi ni kullandim ama en güzel Turkcell Sun Jul 13 13:43:49 EET 2014 3378 GkcAyhan Turkcell beni sesimden tanir he he tanir emin ol ? @Turkcell Wed Jul 09 13:53:02 EET 2014 174 basakbasak78 RT @emaybo: @Turkcell çözüm bulmayan bir firmadan hizmet almak!!! #turkcell Thu Jul 17 22:45:40 EET 2014 73 son_er_ak RT @zuhalbalkas_: @TurkcellHizmet Turkcell müsteri hizmetleri nerede ??? Turkcell e yakismiyor!! Tue Jul 22 10:02:26 EET 2014 758 anti_hashasi RT @zuhalbalkas_: @TurkcellHizmet Turkcell müsteri hizmetleri nerede ??? Turkcell e yakismiyor!! Tue Jul 22 10:02:27 EET 2014 1105 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu Toplam Tweet Sayısı Bize verilen data dosyasında satır başına bir tweet geldiği söyleniyor. Toplam tweet sayısını bulan bir fonksiyon yazalım def toplamTweet(liste): liste_eleman_sayisi = len(liste) return liste_eleman_sayisi turkcell_tweet = open("turkcell.txt", "r") tweet_listesi = turkcell_tweet.readlines() turkcell_tweet.close() toplam_tweet_sayisi = toplamTweet(tweet_listesi) print toplam_tweet_sayisi 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu Nasıl Yaptık? Öncelikle tweet veri (turkcell.txt) dosyasını açtık ‘tweet_listesi’ isimli bir değişkende (string listesi) saklıyoruz. Sonra da tweet_listesi isimli listeye her satır bir eleman olacak şekilde tweetleri yazdık ... turkcell_tweet = open("turkcell.txt", "r") tweet_listesi = turkcell_tweet.readlines() turkcell_tweet.close() toplam_tweet_sayisi = toplamTweet(tweet_listesi) print toplam_tweet_sayisi 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu Toplam Retweet Sayısı Öncelikle elimizdeki veri dosyasını incelemeliyiz. Tweet’lerin nasıl yazıldığını öğrenmeli/anlamalıyız. Retweet’leri nasıl buluruz, ayırdedici özelliği nedir Aşağıda veri dosyamızdan üç tane örnek retweet var. Gizemsoylu34 RT @TunaOnurOztekin: Turkcell Müsteri Hizmetleri ??? Tue Jul 08 16:09:23 EET 2014 604 Cengiiz41 RT @HadesPoeta: Ve sonunda. Türkcell @Turkcell Fri Jul 11 20:51:16 EET 2014 161 T_ygmr RT @Maviliadamm: Turkcell bayramimi niye kutlamadin askim. Mon Jul 28 21:38:52 EET 2014 167 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu Toplam Retweet Sayısı Aralarındaki ortak noktayı görebilen var mı? Gizemsoylu34 RT @TunaOnurOztekin: Turkcell Müsteri Hizmetleri ??? Tue Jul 08 16:09:23 EET 2014 604 Cengiiz41 RT @HadesPoeta: Ve sonunda. Türkcell @Turkcell Fri Jul 11 20:51:16 EET 2014 161 T_ygmr RT @Maviliadamm: Turkcell bayramimi niye kutlamadin askim. Mon Jul 28 21:38:52 EET 2014 167 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu Ortak Notka Retweetlerde 2. kelime her zaman ‘RT’ Ve ondan bir sonraki kelime her zaman ‘@’ simgesi ile başlayıp bir kullanıcı ismi ile devam etmekte. Demek ki data dosyamızda herhangi bir satırın 2. kelimesi ‘RT’ ise ve 3. kelimesi ‘@’ ile başlıyorsa biz bu satırın bir retweet olduğunu söyleyebiliriz. Retweet olmayıp da bu koşulları sağlayan satırlar olabilir ama bunun olasılığı çok düşük olduğundan dikkate almıyoruz. 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

O Zaman Kodumuzu Yazalım def toplamReTweet(liste): sayi = 0 for tweet in liste: satir = tweet.split() if satir[1] == 'RT' and satir[2][0] =='@': sayi += 1 return sayi toplam_retweet_sayisi = toplamReTweet(tweet_listesi) print toplam_retweet_sayisi 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu Nasıl Yaptık? Toplam retweet sayısını saklamak için ‘sayi’ değişkenini kullandık. Ne zaman bir retweet bulunursa o değişkene 1 ekledik Fonksiyonun sonunda sayı değişkenini geri döndürdük (return). def toplamReTweet(liste): sayi = 0 for tweet in liste: satir = tweet.split() if satir[1] == 'RT' and satir[2][0] =='@': sayi += 1 return sayi 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu Nasıl Yaptık? Her bir tweet’i tek tek kontrol etmemiz gerekli. Binlerce defa aynı şeyi yazmak yerine for döngüsü kullanıyoruz. Kaç defa tekrar edeceği listemizin uzunluğuna bağlı. def toplamReTweet(liste): sayi = 0 for tweet in liste: satir = tweet.split() if satir[1] == 'RT' and satir[2][0] =='@': sayi += 1 return sayi 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu Nasıl Yaptık? Tekrar edilecek işlem: her bir satırı retweet mi değil mi diye kontrol etmek Önce tek bir tweet’i alıp split() fonksiyonu ile parçalara (kelimelere) bölüyoruz. def toplamReTweet(liste): sayi = 0 for tweet in liste: satir = tweet.split() if satir[1] == 'RT' and satir[2][0] =='@': sayi += 1 return sayi 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu En Çok Tweet Atılan Gün Tweet’lerin içerisinde tarih verisi bulunmakta, yani her birinin tek tek üstünden geçip hangi gün çıkarsa o güne +1 eklememiz gerekli. 7 tane farklı gün değişkeni yapmaktansa tek bir sözlük yaratıp günleri içlerine koyabiliriz. Twitter verimizde günlerimiz şu formatta: Mon, Tue, Wed, Thu, Fri, Sat, Sun Yani string tipi değişken kullanabiliriz 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Gün Verisi Tweet’in Neresinde? Örnek Tweet’lere bakalım d_cuneyt Turkcell Sun Jul 06 22:32:33 EET 2014 1 ozdemirmustafaa @Turkcell Turkcell T50yi üretiyor... Fri Jul 11 16:09:42 EET 2014 55 areuslnbthn tesekkurler @Turkcell Tue Jul 01 00:50:18 EET 2014 260 Gün verisinin her bir satırda sondan 7. element/kelime olduğunu görebiliyoruz. 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu O Zaman Başlayalım Elimizdeki bu bilgiler ile her bir tweet’in hangi gün atıldığını öğrenip o güne artı 1 ekleyebiliriz. Önce bir dictionary değişkeninin nasıl tanımlandığını hatırlayalım gun_sayaci = {'Mon': 0, 'Tue' : 0, 'Wed': 0, 'Thu': 0, 'Fri': 0, 'Sat': 0, 'Sun': 0} Burada her gun ismi ile bir sayaç tanımladık ve bu sayaçların hepsini 0’ladık. Çünkü henüz saymaya başlamadık 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu Kod def MaxTweetGunu(liste): gun_sayaci = {'Mon': 0, 'Tue' : 0, 'Wed': 0, 'Thu': 0, 'Fri': 0, 'Sat': 0, 'Sun': 0} for tweet in liste: satir = tweet.split() gun = satir[-7] gun_sayaci[gun] += 1 max_tweet_gunu = max(gun_sayaci, key=gun_sayaci.get) return max_tweet_gunu + " "+ str(gun_sayaci[max_tweet_gunu]) 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu Nasıl Yaptık? Öncelikle bir gün sayacı oluşturup her birinin değerini 0’a eşitliyoruz. def MaxTweetGunu(liste): gun_sayaci = {'Mon': 0, 'Tue' : 0, 'Wed': 0, 'Thu': 0, 'Fri': 0, 'Sat': 0, 'Sun': 0} 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu Nasıl Yaptık? Sonra da önceki problemlerde olduğu gibi twitter verisinin her bir satırını parçalara/kelimelere ayırıyoruz. Bilindiği gibi sondan 7. element o tweet’in atıldığı gün oluyor. O günü sözlükte bulup sayaç değerine 1 ekliyoruz. for tweet in liste: satir = tweet.split() gun = satir[-7] gun_sayaci[gun] += 1 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu Nasıl Yaptık? max_tweet_gunu isimli değişkene en çok tweet atılan günü koyuyoruz. Oradaki ‘max()’ fonksiyonu sözlüğü aratıp en büyük değere sahip anahtarı geri döndürüyor. for tweet in liste: satir = tweet.split() gun = satir[-7] gun_sayaci[gun] += 1 max_tweet_gunu = max(gun_sayaci, key=gun_sayaci.get) 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu Nasıl Yaptık? Sonunda da maksimum günü ve o günde kaç tane tweet atıldığını geri dönüyoruz. Sayaç değerini string veri tipine dönüştürmemiz gerekiyor Return değerini string yapmak istiyoruz çünkü for tweet in liste: satir = tweet.split() gun = satir[-7] gun_sayaci[gun] += 1 max_tweet_gunu = max(gun_sayaci, key=gun_sayaci.get) return max_tweet_gunu + " "+ str(gun_sayaci[max_tweet_gunu]) 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

En Çok Tweet Atılan Saat Aralığı Öncelikle tweet dosyasını inceliyoruz d_cuneyt Turkcell Sun Jul 06 22:32:33 EET 2014 1 ozdemirmustafaa @Turkcell Turkcell T50yi üretiyor... Fri Jul 11 16:09:42 EET 2014 55 areuslnbthn tesekkurler @Turkcell Tue Jul 01 00:50:18 EET 2014 260 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu Saat Bilgisi Nerede? Görüldüğü gibi her tweette sondan 4. element o tweet’in atıldığı saattir. Yine sözlük kullanılarak bu problem çözülebilir. Günümüzü altı saatlik aralıklara bölelim (kolaylık olsun diye) 0  00:00-06:00 6  06:00-12:00 12  12:00-18:00 18  18:00-00:00 saat_sayaci = {0:0, 6:0, 12:0, 18:0} 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu Zaman Aralığı Sayacı def MaxTweetSaati(liste): saat_sayaci = {0:0, 6:0, 12:0, 18:0} for tweet in liste: satir = tweet.split() saat = satir[-4] saat = int(saat[0:2]) if saat >= 18: saat = 18 elif saat >=12: saat = 12 elif saat >= 6: saat = 6 else: saat = 0 saat_sayaci[saat] += 1 max_tweet_saati = max(saat_sayaci, key=saat_sayaci.get) return str(max_tweet_saati) + " " + str(saat_sayaci[max_tweet_saati]) 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu Nasıl Yaptık? Sondan 4. element tweet’in atıldığı zaman oluyor. Dakikaları ve saniyeleri istemediğimizden 0. karakterden 2. karaktere kadar alıyoruz, yani sadece saati. for tweet in liste: satir = tweet.split() saat = satir[-4] saat = int(saat[0:2]) … 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu Nasıl Yaptık? if-elif-else ifadelerini kullanarak saat sayacını uygun bir şekilde arttırdık for satir in liste: … if saat >= 18: saat = 18 elif saat >=12: saat = 12 elif saat >= 6: saat = 6 else: saat = 0 saat_sayaci[saat] += 1 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu

Sabancı Üniversitesi Lise Yaz Okulu Nasıl Yaptık? Saat sayaçlarındaki maksimum değeri bulduk Maksimum tweet’in atıldığı aralığı ve o saat aralığında kaç tweet atıldığını bulup fonksiyondan geri döndürdük for tweet in liste: … max_tweet_saati = max(saat_sayaci, key=saat_sayaci.get) return str(max_tweet_saati) + " " + str(saat_sayaci[max_tweet_saati]) 28.11.2018 Sabancı Üniversitesi Lise Yaz Okulu