Chris Choi

Posts Tagged ‘Twitter

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”))

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

 

Written by Chris Choi

January 18, 2016 at 1:11 am

Posted in Communication

Tagged with , ,

Biz Stone (Draft)

with 3 comments

2003년 9월, Twitter의 Co-founder인 Biz Stone그의 Blog짧은 글을 하나 남깁니다. 그가 사용하고 있던 Shrook이라는 RSS Really Simple Syndication Reader가 255자의 글자 수 제한이 있으며, iPod나 Cell phone에서 많은 Blog 글을 읽을 때 글자 수 제한이 유용할 수도 있겠다는 내용입니다.

Biz Stone_Image 1

[Image 1. 글자 수 제한의 유용함을 언급한 Biz Stone의 Blog 출처: Biz Stone’s Blog]

그 당시에는 Blog에 무심코 기록했던 Web에 대한 그의 생각이 훗날에 Twitter를 비롯한 Web Service에 적용될 것이라 예상하지 못했을 것입니다. 하지만 세상을 바꾼 그의 아이디어들은 우연히 나온 것이 아닙니다. 그가 ‘Alter ego’라 부르는 Blogging이 원동력이 되었습니다.

To me, like lots of people, blogging was a revelation, even a revolution-a democratization of information on a whole new scale.

Things a Little Bird Told Me, Biz Stone

Biz Stone_Image 2

[Image 2. 『Things a Little Bird Told Me』 출처: Amazon]

About People, not just Technology

Evan Williams는 Pyra라는 Startup을 공동 창업했습니다.  Pyra의 서비스에 관심이 많았던 Biz Stone은 꾸준히 Blogging을 하면서 Evan Williams의Blog를 Following 했으며, Evan Williams도 Biz Stone의 Blog를 Following 했습니다. 1999년 Blogger라는 Web Logging 서비스를 개발했는데, Biz Stone이 테스트에 참여하게 됩니다. Blogger는 2003년에 Google에 인수 되었는데, 이 때 Biz Stone도 Evan Williams와 함께 Google에 입사하게 되었습니다. Biz Stone이 강조하는 것은 ‘사람’입니다. 기술만으로 Social Media를 만들 수 없습니다. 그것이 Evan Williams가 Biz Stone을 선택하고 함께 Google에서 일하게 된 이유였습니다.

But my move to Silicon Valley wasn’t about a cozy job-it was about taking a risk, imagining a future, and reinventing myself. My first startup had failed. But my next startup was Twitter.

Things a Little Bird Told Me, Biz Stone

내가 꿈꾸는 것은 ‘Cozy job’이 아닐까 하는 반성을 해 봅니다. Biz Stone을 비롯한 Silicon Valley의 창업가들이 대단한 점은 편안한 자리에 안주하지 않고 끊임 없이 도전한다는 사실입니다. 오늘은 실패하지만 미래를 꿈꾸면 내일은 성공할 거라는 믿음을 갖고 있다는 사실입니다.

Biz Stone_Image 3

[Image 3]

만나 본 적은 없지만 Biz Stone은 굉장히 유쾌한 분인 듯 합니다. 책을 읽으면서 내 기분도 유쾌해집니다. 꼭 한 번 만나 보고 싶습니다.

References

Written by Chris Choi

May 25, 2015 at 1:54 am

나의 Twitter 이용법

leave a comment »

내게 IT 관련 Trend를 가장 빠르고 손쉽게 접하는 방법은 Twitter이다.

 

Follow

Jack Dorsey, Walt Mossberg, 김지현씨 등 IT 관련 소식을 발빠르게 전해 주시는 분들을 Follow 하고 있다. 단, Timeline을 따라가지 못할 정도로 지나치게 많은 사람들을 Follow 하지는 않는다.

 

Timeline

Timeline은 하루에 서 너 번 정도 확인한다. 출퇴근 길과 점심 시간, 오후 휴식 시간에 확인하는데, 눈에 띄는 주제에 관한 Tweet을 ‘Read It Later’를 위해 Evernote에 저장한다. Timeline이 많지 않아 최신 Tweet에서 마지막으로 읽은 Tweet 순으로 읽어 내려간다. MacBook과 PC에서는 Chrome으로, iPad와 Smart Phone에서는 Mobile Application으로 Timeline을 확인한다.

Written by Chris Choi

May 18, 2013 at 10:06 pm

Posted in Communication

Tagged with ,

Social Media와 過剩

leave a comment »

트위터는 더욱 무섭다. 나를 트위터로 끌어들이지 말라. 물론 트위터를 효율적으로 생산적으로 활용하는 사람들도 있다. 몇몇 사람들에게는 (극소수의 사람들에게는) 작업을 하는 데 도움이 될지 모른다. 하지만 나머지 사람들은? 트위터는 완벽한 저항이다. 트위터는 끝이 없다. 언제 들여다보아도 읽어야 할 트윗이 넘쳐나고 답을 달아야 할 트윗이 넘쳐난다. 물론 트위터는 작업에 몰두하지 못하도록 방해한다.

트위터에 빠져 있는 동안 당신의 예술은 어디로 가고 있는가?

『린치핀』, Page 198, Seth Godin

 

Social Media는 분명한 대세이다. 시간과 공간을 넘어 사람과 사람을 이어주고 있으며, 그 흐름은 앞으로도 계속 될 것으로 보인다. 이제는 Facebook과 Twitter를 하지 않으면 Digital 문맹이 될 수도 있다. 그 만큼 Social Media의 영향력은 급속도로 커지고 있다.

때로 Twitter에서 수 천 명을 Following 하고, Facebook에서 수 천 명을 Friend로 두는 사람들을 본다. 더욱 폭넓게 소통하고자 하는 의지 정도로 긍정적으로 보려 한다. 그러나 쉽지 않다. 그것은 지나친 것이며, 과욕 혹은 과잉이기 때문이다. 달리 말하면 ‘소통 아닌 소통’이라 할 수 있다. 그 많은 사람들이 내어 놓는 Tweet과 News Feed를 소화하기에는 우리의 시간이 그리 길지 않다. 그리고 잘 알지 못하는 사람들이 내어 놓는 메시지를 통해, 그리고 나를 모르는 사람들에게 우리가 내어 놓는 메시지를 통해 소통하는 것이 쉬울 리 만무하다. 정보의 과잉, 인맥의 과잉이라 할 만하다.

그래서일까? Facebook, Twitter를 떠나는 사람들의 수가 늘고 있다. 물론 새로 가입하는 사용자들의 수 역시 여전히 많기 때문에 이를 어떻게 해석해는 것이 적절한 지는 알 수 없다. 그러나 분명한 것은, Social Media를 통한 소통의 한계를 느끼는 사람들이 점점 늘고 있다는 것이다.

 

Reference

  • 린치핀, pp. 198, Seth Godin

Written by Chris Choi

October 19, 2012 at 3:29 pm