Chris Choi's Blog

Posts Tagged ‘Twitter

Twitter

leave a comment »

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

with 2 comments

제가 굳이 소개를 드리지 않아도 될만큼 Twitter의 사용법을 모르시는 분은 매우 드물 것입니다. Twitter는 Facebook, Google+에 버금가는 유명한 Social Media이기 때문입니다. 오늘은 지식 관리 측면에서의 Twitter의 유용성을 설명 드리려고 합니다.

 지식의 통로, Twitter_Image 1

[Figure 1. Twitter 출처: Twitter]

저는 Twitter 출시 초기에 잠깐 한 두 달 사용하다가, 그 후로 몇 년 간 Twitter를 덮어 두고 있었습니다. 기껏해야 140자인 텍스트에 무엇을 담고 무엇을 공유할 수 있는지 회의적이었기 때문입니다. Blog에 익숙해서인지 평소에 조금은 긴 호흡의 글을 쓰는 것이 좋았지만, Blog와 달리 Twitter는 짧은 호흡이 특징이어서 저에게는 잘 맞지 않았습니다.

그러다 일 년 전에 우연한 기회에 Twitter를 다시 열어 보게 되었습니다. MacBook을 구입했는데 Twitter용 App이 설치되어 있었습니다. 그 사이 제 계정을 Follow 한 친구들이 있어서 한 번 써 보기로 했습니다.

Follow 하기

가장 먼저 한 것은 제가 자주 방문하는 Blogger를 Follow 하는 것이었습니다. IT 업계에서도 유명한 Blogger인 임정욱씨의 Twitter (@estima7) 를 Follow 했습니다. IT 분야와 관련된 주요 뉴스는 물론, 유용한 Tech 정보를 하루에도 수 차례 전달해 주시는 것이었습니다. 핵심적인 메시지와 URL Link, 한 두 장의 이미지를 담기에 Tweet의 공간은 작지 않았습니다.

 지식의 통로, Twitter_Image 2

[Figure 2. 임정욱씨의 Twitter 출처: 임정욱씨 Twitter]

이전부터 Twitter를 애용하셨던 분들에게는 조금 우스운 이야기일 수 있겠지만, 저에게는 그 순간이 일종의 충격이었습니다. 140자라는 제한된 이야기의 공간에 이렇게 유용한 정보를 담을 수 있다는 것이 놀라웠습니다. 그 후로 몇 분의 Blogger를 추가로 Follow 하고 있습니다. IT 분야에서 유명한 분들을 몇 분 소개해 드립니다.

  • @estima7 (Jungwook Lim, Daum)
  • @mickeyk (Mickey Kim, Google)
  • @sungmoon (Sungmoon Cho, Oracle)
  • @waltmossberg (Walt Mossberg, The Wall Street Journal)
  • @kwang82 (김광현 기자, 한국 경제 신문)
  • @oojoo (김지현)
  • @shinsoojung (신수정, 인포섹)

누구를 Follow 할 지 고민이 되실 때는 Twitter에서 자동으로 추천해 주는 분을 Follow해 보셔도 좋습니다. 언제나 손쉽게 Follow와 Unfollow를 하실 수 있으므로, 우선 Follow 하신 후에 컨텐츠가 마음에 드시지 않으면 바로 Unfollow 하시면 됩니다.

 지식의 통로, Twitter_Image 3

[Figure 3. Twitter가 추천해 주는 분을 Follow해 보실 수 있습니다. 출처: Twitter]

제가 Web site를 이곳 저곳 둘러 보면서 찾아보면서 습득하기에는 어려운 정보들을 Twitter를 통해 만나 볼 수 있다는 것이 저에게는 놀라운 발견이었습니다. 물론 원칙은 한 가지 있습니다. 수 백 명, 수 천 명을 Follow 하지 않는 것입니다. 아무리 유용한 정보가 널려 있다고 해도, Timeline을 따라가기도 벅찰 만큼 많은 Tweet을 보는 것은 소화하기 어렵기 때문입니다.

저에게 Twitter는 ‘지식의 통로’입니다. 신문과 잡지, Blog 등을 통해 지식을 접하고 있지만, 하루에도 몇 번씩 PC와 Smart phone, Tablet을 통해 수시로 Tweet을 확인할 수 있기 때문에, Twitter는 가장 유용한  도구입니다.

Twitter 더하기 Evernote

요즘 저의 가장 큰 관심사는 MOOC Massive Open Online Course 입니다.[1] MIT, Stanford 등 미국의 명문대들도 MOOC에 적극적으로 동참하고 있습니다. 얼마 전에 Tweet을 확인하다가 MOOC에 대한 Tweet을 발견했습니다.

지식의 통로, Twitter_Image 4

[Figure 4. Stanford d.school의 MOOC에 관한 Tweet 출처: 배기홍씨 Twitter]

Web은 물론, Mobile에서도 손쉽게 Tweet을 Evernote에 저장할 수 있습니다. 위의 Tweet을 제 Evernote의 Education Notebook에 다음과 같이 저장해 두었습니다.

 지식의 통로, Twitter_Image 5

[Figure 5. Evernote에 저장된 MOOC 관련 Tweet]

이렇게 주제 별로 관심 있는 Tweet들을 저장해 두는 것은 일종의 공부 거리를 차곡차곡 정리해 두는 것과 같습니다.

그 외에도 Twitter 상에서 실시간으로 가장 많이 언급되고 있는  Keyword를 표시해 줍니다. 관심 있는 Keyword를 선택하시면 관련 Tweet을 보실 수 있으며, 이를 이용해 Trend를 이해하시는 것도 하나의 방법이 될 것입니다.

 지식의 통로, Twitter_Image 6

[Figure 6. Twitter 상에서 가장 많이 언급되고 있는 Keyword가 표시됩니다. 출처: Twitter]

Social Media, 지식의 Channel

Twitter를 포함한 Social Media는 단순히 엄청난 Traffic을 유발하는 대상이 아닙니다. 개인에게는 지식을 접할 수 있는 하나의 중요한 Channel이 되었습니다. Entertainment, Communication 외에도 지식 습득의 목적으로 Social Media를 이용하신다면 지식 형성에 더 많은 도움이 되실 것입니다.


[1] MOOC에 대한 자세한 내용은 저의 Blog post를 참고하세요.

Written by Chris Choi

July 1, 2013 at 11:51 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