Chris Choi

Posts Tagged ‘Twitter

Twitter

leave a comment »

Advertisements

Written by Chris Choi

April 18, 2016 at 5:34 pm

Posted in Communication

Tagged with ,

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 Analytics

with one comment

Facebook에서는 ‘좋아요’가 나의 활동이 친구들에게 어떤 영향을 미치는지 알 수 있는 척도가 됩니다. 댓글의 수나 내용도 나에 대한 친구들의 관심의 표현으로 이해할 수 있습니다. 그런데 생각해 보면 Twitter에서는 나의 활동을 평가해 볼만한 척도를 찾기가 쉽지 않습니다. Reply나 Retweet 기능이 있기는 하지만, 일반 사용자들 간에 사용하는 경우가 드뭅니다.

저도 Twitter를 사용하고 있지만, 공허한 매아리 같은 느낌이 들 때가 많아서 사용하기가 꺼려집니다. 누가 내 Tweet을 읽고는 있는 건지, 혼자 일기를 Tweet에 쓰는 것은 아닌지 궁금할 때가 많습니다. 이런 생각은 이제 접을 수 있을 듯 합니다. Twitter가 각 Tweet에 대한 다양한 수치를 손쉽게 찾아볼 수 있는 ‘Twitter Analytics’를 일반 사용자들에게도 공개했기 때문입니다.

Tweet 관련 수치 읽기

Twitter Analytics 는 사용자의 Twitter 활동을 수치로 보여 줍니다.[1] 기간을 설정하면 해당 기간에 사용자가 얻은 ‘Impression’이 그래프로 표시됩니다. Impression은 다른 사용자들이 Twitter 상에서 해당 사용자의 Tweet을 읽은 회수를 의미합니다. 지난 28일 간 다른 사용자들이 저의 Tweet을 1,400번 읽었습니다.[2]

Twitter Analytics_Image 1

[Image 1. Twitter Analytics는 사용자의 Tweet에 대한 Impression 통계를 제공합니다. 출처: Twitter Analytics]

다음으로 각 Tweet에 대한 수치를 제공합니다. 앞서 설명 드린 Impression 외에 ‘Engagement’와 ‘Engagement rate’가 표시됩니다. Engagement는 해당 Tweet 상의 Hashtag, Link, Tweet Expansion 등을 클릭한 횟수를 의미합니다. Engagement rate는 Impression에 대한 Engagement의 비율입니다. 즉, 해당 Tweet을 읽은 회수 중에서 Click으로 이어진 회수의 비율을 의미합니다. 제 Tweet의 대부분은 Engagement와 Engagement rate가 0이며, 간혹 읽은 회수가 높은Tweet을 한 두 분이 관심글로 지정해 주시는 정도입니다.

Twitter Analytics_Image 2

[Image 2. Tweet 별 Impression, Engagement, Engagement rate를 수치로 보여 줍니다. 출처: Twitter Analytics]

Tweet을 클릭하면 Tweet의 내용과 통계가 함께 표시됩니다. Impression과 더불어 Reply, Retweet, Favorite의 회수도 일자 별로 표시됩니다. 통계만 표시되는 것이 아니라, 이 화면 상에서 사용자를 Follow할 수 있으며, Reply나 Retweet 같은 Twitter의 기능들을 동일하게 사용할 수 있습니다.

Twitter Analytics_Image 3

[Image 3. Tweet의 상세 내용과 통계가 함께 표시됩니다. 출처: Twitter Analytics]

항목 별로 요약해 그래프로 보여 줍니다. Engagement rate, Lick click, Retweet, Favorite, Reply가 표시됩니다.

Twitter Analytics_Image 4

Twitter Analytics_Image 5

[Image 4, 5. 조회 기간에 해당하는 Engagement와 Favorite 수치를 보여 줍니다. 출처: Twitter Analytics]

Follower에 대한 정보도 함께 제공합니다. Follower들의 관심사와 거주 지역, 성별, 그리고 함께 Follow 하고 있는 사용자들을 표시합니다. 더 많은 Impression과 Engagement를 끌어내기 위해서는 친구들의 관심사에 집중을 해야 하는데, 아래 통계를 통해 데이터 기반의 컨텐츠 선정이 가능하게 되었습니다.

Twitter Analytics_Image 6

[Image 6. Follower들의 관심사에 집중해야 합니다. 출처: Twitter Analytics]

Export Data: Quantified Self

상세 데이터는 CSV File로 Download 할 수 있습니다. 각 Tweet의 URL과 내용, 저장한 시각, 그리고 위 화면에서 표시한 정보들이 모두 담겨 있습니다.

Twitter Analytics_Image 7

[Image 7. CSV로 Download 한 Twitter Analytics]

이 데이터를 이용해 개인이나 회사는 좀 더 의미 있는 분석을 할 수 있을 것입니다. Tableau라는 Data Visualization Software를 이용해 위의 데이터를 표현해 봤습니다.

Twitter Analytics_Image 8

[Image 8. Tableau로 Tweet 현황 분석하기]

Twitter 역시 개인을 수치화 해 볼 수 있는 대상이 되었습니다. Twitter Analytics는 ‘Quantified Self’의 시대에 개인의 온라인 상에서의 사회성을 측정해 보고, 사업적으로나 인맥 측면에서 개선해 나가야 할 점들을 잘 지적해 주는 도구입니다.

References

[1] Twitter Analytics는 iOS와 Android, Web 상의 Twitter 활동을 측정합니다. 일반 사용자들에게는 Device 별 통계를 제공하지는 않습니다. 향후에 이 점도 고려해 통계를 세분화하는 것도 의미가 있을 듯 합니다.

[2] 같은 화면에서 ‘Export Data’ 기능을 이용해 CSV File을 Download 해 보니 Impression의 합계는 713이었습니다. 또한 일 평균 Impression 값도 7이 훨씬 넘는 숫자였습니다. 제가 잘 못 계산한 것인지 모르겠지만, 수치는 확인해 볼 필요가 있을 것입니다.

Written by Chris Choi

November 1, 2014 at 3:59 pm

Posted in Communication

Tagged with ,

나의 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 ,

Trend in Twitter

leave a comment »

이제는 Twitter 상의 Trend를 볼 수 있게 되었다. Twitter는 실시간으로 가장 많이 언급되는 Keyword를 Web과 Mobile 상에 표시해 준다. 지역을 변경할 수도 있다.

[Twitter에서가장많이언급되는 Keyword (Web)]

 

 [Twitter에서가장많이언급되는 Keyword (Mobile)]

Written by Chris Choi

October 27, 2012 at 7:07 am

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