Chris Choi's Blog

Twitter Stream 분석

with one comment

 

Twitter API를 이용해 Twitter Stream을 분석한다.

 

Development Environment

다음의 Software를 이용해 분석을 진행한다.

 

  • Python
  • IntelliJ IDEA
  • TwitterSearch Library for Python
  • MongoDB
  • R

 

Python을 설치한다.

Twitter Stream 분석_Image 1.png

[Image 1. Python을 Download 한다. 출처: Python (http://www.python.org/download/)]

 

언어 별 – Java, Go, Python, C++ 등 – 로 Twitter API (Version 1.1) 를 지원하는 Library는 다양하다. 용도에 맞게 선택하도록 한다.

 

Twitter Stream 분석_Image 1.png

[Image 2. Twitter API를 지원하는 언어 별 Library들 출처: “Twitter Libraries”, Twitter Developers]

 

Terminal에서 다음의 Command를 실행해 TwitterSearch를 설치한다.

==========================================================================pip install TwitterSearch

==========================================================================

 

MongoDB를 설치한다. MongoDB를 설치한다. Python에서 MongoDB를 사용하기 위해 Python용 MongoDB Driver인 ‘PyMongo’ () 를 설치한다.

==========================================================================

pip install pymongo

==========================================================================

 

R을 설치한다.

 

Twitter Application 등록

Twitter Application을 등록하면 인증을 위한 Consumer Key / Consumer Secret, Access Token / Access Token Secret을 부여 받아야 한다. Twitter Application Management에 접속하셔서 사용하고 계신 Twitter 계정으로 Log-in을 합니다. ‘Create a new application’을 선택합니다.

Twitter Stream 분석_Image 3.png

[Image 3. Twitter Application 생성하기 출처: Twitter Application Management]

 

Twitter Stream 분석_Image 4.png

[Image 4. Create an application 출처: Twitter Application Management]

 

중복되지 않는 이름과 설명을 입력하고, Website URL을 입력합니다. 대략적인 정보를 입력하셔도 됩니다. 완료되면 다음과 같이 Application에 대한 정보가 표시됩니다. 그 중에서 OAuth는 일종의 Twitter API 사용을 위한 인증 정보입니다.

Twitter Stream 분석_Image 5.png

[Image 5. OAuth 정보를 확인합니다. 출처: Twitter Application Management]

Python 구현

Python으로 다음의 Code를 구현한다.

==========================================================================

# 한글 처리를 위해 Encoding을 설정한다.

#-*- coding: utf-8 -*-

 

# ‘TwitterSearch’ Library를 Import 한다.

from TwitterSearch import *
# MongoDB를 사용하기 위해 ‘pymongo’ Library를 Import 한다.

from pymongo import MongoClient

 

client = MongoClient()
db = client.test
coll = db.dataset

 

f = open(“abc.txt”, ‘w’)

 

# Twitter 검색에 사용되는 조건들을 설정하기 위해 TwitterSearchOrder 객체를 생성한다.

twitSearchOrd = TwitterSearchOrder()

 

# Tweet 검색어를 설정한다.

twitSearchOrd.set_keywords([‘서태지’])

 

#twitSearchOrd.set_language (‘ko’)

#twitSearchOrd.set_locale (”)

twitSearchOrd.set_include_entities (False)

# 검색 결과 건수를 설정한다.

twitSearchOrd.set_count (10)

 

# 검색을 수행하기 위해 TwitterSearch 객체를 생성한다.

twitSearch = TwitterSearch (consumer_key = ‘**********’,

consumer_secret = ‘**********’,

access_token = ‘**********’,

access_token_secret = ‘**********’)

# 검색된 Tweet을 한 건씩 처리하면서 사용자의 Twitter ID가 ‘SKtelecom’이 아닌 건들만 결과를 표시한다.

for tweet in twitSearch.search_tweets_iterable (twitSearchOrd):

if tweet[‘user’][‘screen_name’] != ‘SKtelecom’:

# print(‘@%s tweeted: %s’ % (tweet[‘user’][‘screen_name’], tweet[‘text’]))

print(‘%s:%s’ % tweet[‘text’], tweet[‘created_at’]))

f.write(tweet[‘text’].encode(‘utf-8’))

coll.insert ({“tweet”:tweet[‘text’]})

docs = coll.find()

 

for i in docs:

print i

f.close()

==========================================================================

 

R로 분석해 Word Cloud를 만든다.

==========================================================================

pkh <- Corpus(DirSource(“/Users/chrischoi/PyCharmProjects/untitled1/Files/”))

inspect(pkh)

 

pkh <- tm_map(pkh, stripWhitespace)

pkh <- tm_map(pkh, tolower)

pkh <- tm_map(pkh, removeWords, stopwords(“english”))

pkh <- tm_map(pkh, stemDocument)

#pKh <- tm_map(pkh, removeWords, “??????濡?”)

 

par(family=”AppleGothic”)

 

wordcloud(pkh, scale=c(5,0.5), max.words=100, random.order=FALSE, rot.per=0.35, use.r.layout=FALSE, colors=brewer.pal(8, “Dark2”))

==========================================================================

 

Advertisements

Written by Chris Choi

January 18, 2016 at 1:11 am

Posted in Communication

Tagged with , ,

One Response

Subscribe to comments with RSS.

  1. […] Twitter Stream 분석 […]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: