Saturday, October 10, 2015

Twitter Data Mining Menggunakan Python : Cara Mengumpulkan Data


twitter data mining menggunakan python
Twitter Data Mining menggunakan Python
Setelah beberapa waktu lalu saya memposting meteri mengenai Metode metode dalam Data mining  dan beberapa penjelasan rinci mengenai metode-metode data mining tersebut seperti pada meteri Contoh Perhitungan Manual Metode Data Mining Klastering K-Means  maka kali ini kita akan membahah lebih detail kepada proses mining data dari twitter menggunakan bahasa pemrograman python dan disimpan ke dalam format JSON maupun kita ekstrak ke dalam bentuk file CSV menggunakan PIP, oke langsung saja ke TKP semoga bermafaat

Twitter merupakan jaringan sosial yang populer, di mana pengguna dapat berbagi pesan pendek yang disebut tweets. Pengguna berbagi pikiran, link dan gambar di Twitter, wartawan mengomentari acara live, perusahaan mempromosikan produk dan terlibat dengan pelanggan. Ada beberapa cara yang berbeda untuk menggunakan Twitter bisa menjadi sangat lama, dan dengan 500 juta tweets per hari, ada banyak data untuk menganalisis dan menggunakannya.
Ini langkah yang harus anda lakukan  jika ingin melakukan atau mining data dari twitter dengan menggunakan bahasa pemrograman python. pada bagian pertama kali ini, kita akan melihat beberapa pilihan dalam mengumpulkan data dari twiter dengan cara atau konsep data mining. setelah bahasan ini kita akan melanjutkan untuk ke arah yang lebih spesifik lagi seperti mencari kata yang sedang trends di twitter maupun hashtag yang sedang populer.


Daftarkan App anda

Untuk  bisa mengakses data pada twitter dan memiliki akses pada developer twitter kita diwajibkan untuk mendaftarkan supaya kita bisa mengakses twitter Api untuk mendapatkan secret key maupun kode akses.
Langkah pertama adalah pendaftaran aplikasi Anda. Secara khusus, jadi silahakan anda daftarkan pada link berikut ini http://apps.twitter.com, log-in ke Twitter (jika Anda belum log in) dan mendaftarkan aplikasi baru. Sekarang Anda dapat memilih nama dan deskripsi untuk aplikasi Anda (misalnya "Pertambangan Demo" atau apa gitu). Anda akan menerima costumer key dan rahasia konsumen: ini adalah pengaturan aplikasi yang harus selalu dijaga pribadi. Dari halaman konfigurasi dari aplikasi Anda, Anda juga dapat meminta token akses dan akses token rahasia. Demikian pula untuk tombol konsumen, kode ini juga harus dijaga pribadi: mereka menyediakan akses aplikasi ke Twitter atas nama akun Anda. Izin default hanya bisa membaca tidak dapat mengedit, yang kita butuhkan dalam kasus ini, tetapi jika Anda memutuskan untuk mengubah izin Anda untuk memberikan fitur tertulis dalam aplikasi Anda, Anda harus membuat akses token baru.
Contoh Cara mendapatkan kode token akses Twitter Api
Tampilan setelah mendapatkan kode akses token twitter Api

Catatan penting: ada batas tingkat dalam penggunaan API Twitter, serta keterbatasan dalam kasus Anda ingin memberikan download data set, lihat:

Mengakses Data Twitter Api

Twitter menyediakan API SISA yang dapat Anda gunakan untuk berinteraksi dengan layanan mereka. Ada juga sekelompok klien berbasis Python di luar sana yang bisa kita gunakan tanpa  menciptakan kembali dari awal. Secara khusus, Tweepy merupakan salah satu yang paling menarik dan mudah digunakan, jadi mari kita menginstalnya:
Untuk menginstal pip Anda bisa pergi ke www.pip--installer.org/en/latest/ dan klik pada instalasi.

pip install tweepy
Download dan Instal PIP

Supaya kita dapat mengotorisasi app untuk mengakses Twitter atas nama kami, kita perlu menggunakan antarmuka OAuth:
1
2
3
4
5
6
7
8
9
10
11
12
import tweepy
from tweepy import OAuthHandler
consumer_key = 'YOUR-CONSUMER-KEY'
consumer_secret = 'YOUR-CONSUMER-SECRET'
access_token = 'YOUR-ACCESS-TOKEN'
access_secret = 'YOUR-ACCESS-SECRET'
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tweepy.API(auth)

Variabel api sekarang menjadi titik masuk untuk sebagian besar operasi kita dapat melakukan dengan Twitter.
Sebagai contoh, kita dapat membaca Time Line twitter kita sendiri (yaitu homepage Twitter anda) dengan contoh code di bawah ini:
1
2
3
for status in tweepy.Cursor(api.home_timeline).items(10):
    # Process a single status
    print(status.text)
Tweepy menyediakan antarmuka yang nyaman untuk beralih melalui berbagai jenis objek. Dalam contoh di atas kita menggunakan 10 untuk membatasi jumlah tweets yang akan kita membaca, tapi kita bisa akses tentu saja lebih dari itu. Variabel Status adalah turunan dari Status () kelas, method untuk mengakses data. Apa Tweepy tidak memberikan tanggapan JSON yang langsung dari API, yang dapat berguna jika kita ingin menyimpannya dan proses nanti.

Ada pula solusi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import json
@classmethod
def parse(cls, api, raw):
    status = cls.first_parse(api, raw)
    setattr(status, 'json', json.dumps(raw))
    return status
# Status() is the data model for a tweet
tweepy.models.Status.first_parse = tweepy.models.Status.parse
tweepy.models.Status.parse = parse
# User() is the data model for a user profil
tweepy.models.User.first_parse = tweepy.models.User.parse
tweepy.models.User.parse = parse
# You need to do it for all the models you need

Jadi kode di atas dapat ditulis ulang untuk proses / menyimpan JSON yang:
1
2
3
for status in tweepy.Cursor(api.home_timeline).items(10):
    # Process a single status
    process_or_store(status.json)

Bagaimana jika kita ingin memiliki daftar semua pengikut kita? Ini dia:

1
2
for friend in tweepy.Cursor(api.friends).items():
    process_or_store(friend.json)

Dan bagaimana daftar semua tweets kami? sederhana:

1
2
for tweet in tweepy.Cursor(api.user_timeline).items():
    process_or_store(tweet.json)

Dengan cara ini kita dapat dengan mudah mengumpulkan tweet (dan lebih) dan menyimpannya dalam format JSON asli, cukup mudah untuk diubah menjadi model data yang berbeda tergantung pada penyimpanan kami (banyak teknologi NoSQL menyediakan beberapa fitur impor massal).

Streaming Data Langsung Dari Twitter

Dalam hal ini kita ingin "menjaga sambungan terbuka", dan mengumpulkan semua tweets yang akan datang tentang peristiwa tertentu, streaming API adalah apa yang kita butuhkan. Kita perlu untuk memperpanjang StreamListener () untuk menyesuaikan cara kita mengolah data yang masuk. Sebuah contoh kerja yang mengumpulkan semua tweets baru dengan hashtag #python:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from tweepy import Stream
from tweepy.streaming import StreamListener
class MyListener(StreamListener):
    def on_data(self, data):
        try:
            with open('python.json', 'a') as f:
                f.write(data)
                return True
        except BaseException as e:
            print("Error on_data: %s" % str(e))
        return True
    def on_error(self, status):
        print(status)
        return True
twitter_stream = Stream(auth, MyListener())
twitter_stream.filter(track=['#jokowi'])

Tergantung pada istilah pencarian, kita dapat mengumpulkan ton tweet dalam beberapa menit. Hal ini terutama berlaku untuk acara live dengan cakupan seluruh dunia (Piala Dunia, Jokowi, Academy Awards, dan lainnya), sehingga pada file JSON untuk memahami seberapa cepat berkembang dan mempertimbangkan berapa banyak tweet yang mungkin Anda butuhkan untuk tes Anda. Script di atas akan menyimpan setiap tweet di baris baru, sehingga Anda dapat menggunakan perintah wc python.json l dari shell Unix untuk mengetahui berapa banyak tweet Anda mengumpulkan.
Anda dapat melihat contoh kerja minimal API Twitter Streaming di link berikut:

twitter_stream_downloader.py

Kesimpulan Twitter Data Mining Menggunakan Python

Kami telah memperkenalkan tweepy sebagai alat untuk mengakses data Twitter dalam cara yang cukup mudah dengan Python. Ada berbagai jenis data yang kami dapat mengumpulkan, dengan fokus yang jelas pada objek "Tweet" .

Setelah kami telah mengumpulkan beberapa data, kemungkinan dalam hal analisis aplikasi tidak terbatas. Dalam Postingan berikutnya, kita akan membahas beberapa pilihan.

  • Cara Instal PIP tweepy twitter
  • Cari Data Spesifik Hashtag Twitter Data Mining
  • Cara Memisahkan Kata Dari Hasil ekstrak Twitter Data Mining
Disqus Comments