Le long de la route


Bonjour. Cette mon premier article de blog en français. Je veux parler le Français. Je veux essayer d’utiliser les méthodes dans le livre “Fluent Forever“. Lorsque j’écris je ne regarde du lexicon. Cette ne facile pas mais nécessite. J’utilise l’application “Anki” pour développement mon lexicon. Je repete. J’aime journal en français. J’aime Le Monde. J’écris ce pour moi. Peut-être tu penses cette ne parfait pas. Vrai. Je ne parfait pas mais je pense les plus rationale route et essayé. Salut 🙂

Reklamlar

Drawing Semantic Networks with Python and NetworkX library


import networkx as nx
G = nx.Graph()
G.add_node("kids",repeat=2)
G.add_node("netflix",repeat=4)
G.add_node("strategy",repeat=1)
G.add_node("app",repeat=1,)
G.add_node("chinese",repeat=2)
G.add_node("movie",repeat=1)
G.add_node("language",repeat=2)
G.add_node("alibaba",repeat=1)
G.add_edges_from([
                  ('kids','netflix'),
                  ('kids','suat'),
                  ('kids','app'),
                  ('netflix','app'),
                  ('netflix','movie'),
                  ('netflix','strategy'),
                  ('strategy','movie'),
                  ('chinese','language'),
                  ('netflix','language'),
                  ('strategy','chinese'),
                  ('netflix','alibaba')
                 ])

#colorizing according to the frequency
#https://stackoverflow.com/questions/27030473/how-to-set-colors-for-nodes-in-networkx-python
color_map = []
for node in G:
    #https://stackoverflow.com/questions/13698352/storing-and-accessing-node-attributes-python-networkx
    node_repeat = G.node[node]['repeat']
    if node_repeat > 2:
        color_map.append('red')
    else: color_map.append('orange')
    

import matplotlib.pyplot as plt
pos=nx.circular_layout(G)
nx.draw(G,node_color = color_map,with_labels = True , pos = pos)
plt.show()

Data Wrangling Cases: Case #1: Emre’s Language Score Problem


userscore_typescore
jimmytoefl80
catherineielts33
fitzwilliamtoefl90
emreielts100
emretoefl99

Let’s contemplate a data set like above. Any user can have TOEFL or IELTS score. Some of them like ‘Emre’ has two score together. Let’s think we want to convert this dataset like below:

userieltstoefl
jimmyNone80
catherine33None
fitzwilliam90None
emre100None
emreNone99

What we did? We just converted two factor type of score_type as a column and get the corresponding values from to the newly generated score columns. During this conversation if person has not given type of exam we put ‘None’ and if any person has more than one exam we put each score within a new row.

How can we perform this conversion? Manually? Perfect for a few row! What we do when there is 40.000 of row? The GG should answer this question? 🙂

Use Python Language:

import pandas as pd
df = pd.read_csv("/home/satan/Masaüstü/data.csv",sep="|")
# you can either use a function disctincts kind of factors from score_type column by df['colname'].unique().tolist()
score_factors = ['toefl','ielts']
for factor in score_factors:
    df[factor] = None
# distribute the values to added columns
j = 3 # due to additional columns should start from 3'th column
score_type_column_nr = 1 # locate where is score_type column
for factor in score_factors:
    for index,row in df.iterrows():
        stype = df.iloc[index,score_type_column_nr]
        corresponding_column_no = j
        if (factor in stype):
            df.iloc[index,corresponding_column_no] = df.iloc[index,2]
        else:
            pass
    j = j+1 

That’s all. Can you solve this problem with your veteran Excel? I think no 🙂 If you can write, please explain how, to below. Don’t forget, to add how much time you spend to solve the problem including goggling.

For me I didn’t open the browser and wrote it within 15 minutes! Huh ?

Note: This scenario and its answer is original and firstly published from Dr. Suat ATAN’s blog

Firebase Kullanmaya Giriş


Firebase Google’ın sunduğu sunucu tarafı olmasına ihtiyaç bırakmayan bir hosting, veritabanı ve barındırma hizmetidir. Firebase ile hızla site hazırlayıp yayınlayabilirsiniz. PHP, Java, Python, C# veya başka bir dil kullanmaya gerek yoktur. Veri tabanı işlemleri dahi Javascript ile yapılır. Veritabanı olarak da Firebase Collections adlı bulut sisteminde veriler JSON benzeri yapıda tutulur.

Aşağıdaki komutlarla Firebase üzerinde çalışmaya hazır ve veritabanı bağlantısı yapan (Firebase Collection ile) ve Vue gibi herhangi bir araçla bağlantısı olmayan düz bir web uygulaması hazırlanır. Vue kullanarak Vue SPA tarzı bir uygulama için yazının devamındaki başlığa bakın:

Firebase sitesine giderek yeni bir proje oluşturun.

Aşağıdaki Komutları Çalıştın

#Eğer yoksa şu komutla kurun (windoesta sudo kullanmayın)
sudo npm install -g firebase-tools
#Başlatın
firebase init
#Lokalde çalıştırın
firebase serve --only hosting

Daha sonra index.html dosyasını şöyle dizayn edin

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Atan Finans</title>

  <!-- Insert these scripts at the bottom of the HTML, but before you use any Firebase services -->

  <!-- Firebase App (the core Firebase SDK) is always required and must be listed first -->
  <script src="https://www.gstatic.com/firebasejs/5.9.4/firebase-app.js"></script>

  <!-- Add Firebase products that you want to use -->
  <script src="https://www.gstatic.com/firebasejs/5.9.4/firebase-auth.js"></script>
  <script src="https://www.gstatic.com/firebasejs/5.9.4/firebase-database.js"></script>


  <script src="https://www.gstatic.com/firebasejs/5.9.4/firebase.js"></script>
  <script>
    // Initialize Firebase
    var config = {
      apiKey: "Bu Kodu firebase konsolundan alın webden",
      authDomain: "siteadiniz.firebaseapp.com",
      databaseURL: "https://atanfinans.firebaseio.com",
      projectId: "siteadiniz",
      storageBucket: "siteadiniz.appspot.com",
      messagingSenderId: "Bu kodu fireabse konsolunda alın webden"
    };
    # Veritabanına veri ekleme
    firebase.initializeApp(config);
    var db = firebase.firestore();
    db.collection("users").add({
    first: "Ada",
    last: "Lovelace",
    born: 1815
    })
    .then(function(docRef) {
        console.log("Document written with ID: ", docRef.id);
    })
    .catch(function(error) {
        console.error("Error adding document: ", error);
    });


  </script>

  <style media="screen">

  </style>
  </head>
  <body>
    <div class="ana">
      <h1>Atan Finans</h1>

    </div>
  </body>
</html>

Firebase Üzerinde Vue Uygulaması

Vue Uygulaması kendi içinde özel bir dosya yapısı ve modüller barınıdırır. Bunun için özel bir kurulum gerektir:

vue create vue-app

Vue Uygulamasında Vuex ve Sass kullanmak için (kullanmanız önerilir) modülleri şöyle eklemelisiniz:

vue init webpack vue-app
npm i vuex
npm i node-sass sass-loader --save-dev

Projeyi lokale çalıştırmak için:

npm run dev

Projeyi sunucuya yüklemek için:

firebase deploy

Dosya transferinde upload zamanından kurtulmak


Bir arkadaşına dosya yolladığınızda dropbox, drive veya benzer bir araç kullanırsın. Bu araçlar önce dosyayı buraya yüklersiniz sonra karşı taraf onu indirir. Ancak dosyanın büyük olduğu zamanlarda upload süresinden yırtmak için bir yol var. Bu yolla senin bilgisayarınızdaki dosya direkt olarak arkadaşınızla paylaşılmış oluyor. Yani arkadaşınız dosyayı direkt sizin bilgisayarınızdan çekmiş oluyor. Bu işlemi şu site yardımıyla yapabilirsiniz:
https://takeafile.com/

Tek yapmanız gereken dosyayı bu siteye sürükleyip bırakmak. Sistem anında bir bağlantı oluşturuyor ve bu bağlantıyı arkadaşınıza yolluyorsunuz. Bağlantı tıklandığı anda arkadaşınız direkt olarak sizin bilgisayarınızdan dosyayı indiriyor.

Küçük bir not: Bilgisayarınızı kapatırsanız işlem duracaktır. Bu nedenle bu bağlantı kalıcı değildir. Bu uygulamayı devamlı açık olan bilgisayarların arasında kullanmak faydalıdır.

Market Sepeti Analizi Nedir?


Bir markette herkes sepetine farklı ürünler doldurur. Ancak her sepette genellikle bir arada bulunan ürünler vardır. Bu ürünlerden örneğin kola ile cipsin bir arada alınması beklenebilir ancak beklenmediği halde bir arada olan ürünler olabilir mi? Örneğin bira ile çocuk bezi bir arada sıkça görülür mü? Bir şehir efsanesine göre evet. İşte buna benzer kalıpları görebilmek için “market sepeti analizi” adı verilen bir analiz yapılır. Bu bir veri madenciliği yöntemidir.Bunu R ile yapmak için şurayıPython ile yapmak için şurayı okuyabilirsiniz.

R ve Regex Yardımıyla düzensiz bir metin içinden yılı yakalamak


Bir projemde aşağıdaki gibi iki tür metin vardı:

> a="Volume 29, Issue 3, July 2007, Pages 357-374"
> b="Published: 1999, Start page: 117"

a ve b değerleri içinden 2007 ve 1999 gibi sayıları çıkarmak istiyordum. Regex’te buna uygun bir patternin var olduğunu düşündüm. Şuradan test ettim: https://www.regextester.com/93651

Daha sonra R’da bulunan stringr paketindeki str_extract fonksiyonunu kullandım:

> str_extract(a,"(19|20)\\d{2}")
[1] "2007"
> str_extract(b,"(19|20)\\d{2}")
[1] "1999"

Özetle (19|20)\d{2} şeklinde yazdığım regex kodu şöyle söyler: Git o metnin içinden 19 veya 20 ile başlayan ve devamında iki sayısal karakter(d) olan veriyi yani yılı getir.

Getirdi de! Büyük veri zorlu veridir. Ama aşmak için her zaman yollar vardır.