네이버 검색API를 이용하여 검색 결과에 나오는 요약문을 가져와서 분석할 일이 있어서 파이썬으로 한 번 만들어 봤습니다. 확실히 파이썬은 라이브러리가 풍부하기 때문에 필요한 라이브러리를 이용해서 빠른시간안에 원하는 프로그램을 개발할 수 있다는 장점이 있는 것 같네요.



개발환경은 파이썬 2.7 버전이고 필요 라이브러리는 BeautifulSoup(XML 파서), konply(형태소 분석) 입니다. 윈도우에서 python 라이브러리 설치는 다음을 참고하시기 바랍니다.


1. pip 설치  get-pip.py 받아서 python get-pip.py 실행
2. 라이브러리 설치 
    python -m pip install beautifulsoup4
3. konply 설치방법은 공식 페이지 참조 http://konlpy.org/ko/v0.4.3/install/#id2
    Komoran 사용시 Jtype 에러 해결 위해 numpy도 추가 설치



블로그는 target 을 blog로 카페와 뉴스는 각각 cafearticle, news 로 변경해서 가져오면 됩니다. 블로그 검색API 옵션은 네이버 개발자 센터를 확인하시기 바랍니다. 

(http://developer.naver.com/wiki/pages/Blog)



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# -*- coding: utf8 -*-
 
import urllib2
import csv
from bs4 import BeautifulSoup
from konlpy.tag import Komoran
komoran = Komoran()
 
import sys
reload(sys)
sys.setdefaultencoding('utf-8'#검색 문자열 한글이 깨지지 않도록 함
 
search_word = '검색문자열' #검색문자열
 
display = '100' #default 10, max 100
page = 400 #default 1, max 1000
key = '검색API이용key'
 
#블로그 글 가져오기
 
= csv.writer(open("naverblog.csv""w"),lineterminator='\n'#공백 row가 생기지 않도록 lineterminator옵션 추가
f.writerow(['\xEF\xBB\xBF']) #엑셀에서 csv열 때 utf-8인식하도록 
f.writerow(['desc','morph'])
 
for p in range(1,page):
    url = "http://openapi.naver.com/search?key=" + key + "&display="+display+"&target=blog&sort=sim&query=" + search_word.encode('utf-8'+ "&start="+str(p) ;
    request = urllib2.Request(url)
 
    response = urllib2.urlopen(request)
    blog = BeautifulSoup(response,"html.parser")
    
    
    for item in blog.findAll('item'):
        itemDesc = item.description.contents[0]
        
        #제거 문자열 
        itemDesc = itemDesc.replace('<b>','')
        itemDesc = itemDesc.replace('</b>','')
        itemDesc = itemDesc.replace('!','')
        itemDesc = itemDesc.replace('.','')
        
        itemMorph = komoran.pos(itemDesc) #코모란 형태소 분석 
        #print itemMorph
        strMorph = []
        for word in itemMorph: #형태소와 품사 합침
            strMorph.append('/'.join(word))
        strMorph = ' '.join(strMorph) #형태소 리스트 합침
        
        f.writerow([itemDesc,strMorph]) #CSV에 데이터 입력
 
    print 'blog_page:'+str(p)+','
 
cs



신고
  1. 2016.07.28 10:14

    비밀댓글입니다

    • Favicon of http://kkwaks.net kkwaks 2016.08.01 10:25 신고

      현재는 item에 있는 description 만 가져오도록 되어 있는데 link 정보를 추가적으로 가져온 뒤 본문을 호출하여 해당 본문을 가져와서 저장하면 됩니다.

      HTML도 Beautiofulsoup을 이용하여 파싱 한 후에 원하시는 태그 데이터를 가져올 수 있으니 참고하시기 바랍니다.

피터 틸(Zero to one의 저자,벤처투자자)은 '빅데이터' 라는 단어를 언급하는 스타트업을 조심하라고 얘기했지만 사기성 짙은 트렌디한 단어로 치부하고 넘어가기에는 여전히 빅데이터 기반의 데이터분석은 기업의 경쟁력과 미래 혁신을 위해 중요합니다. 현실적인 문제에 대한 답도 데이터 안에 있고, 앞으로 어떤 방향으로 사업을 해야하는지에 대한 전략과 미래 먹거리에 대한 인사이트가 데이터에 있기 때문인데요. 특히 경쟁이 심한 사업분야라면 경쟁자와 차별화된 새로운 경쟁력을 확보하는데 데이터 분석은 선택이 아니라 필수라고 할 수 있습니다. 


하지만 기업이 막상 빅데이터를 도입하려면 생각할 게 한 두가지가 아닙니다. 오픈소스 기반으로 직접 구축할지 상용 솔루션을 구입해서 할지, 자체 서버를 구입할지, 클라우드를 이용할지, 가장 중요한 어떤 인력을 채용해야하는지, 인원 규모는 어떻게 해야 하는지 등등 말이죠. 하지만 무엇보다 가장 먼저 생각할 것이 도입 방식의 결정입니다. 빅데이터 도입시 고려할 수 있는 2가지 방식을 정리하면 아래와 같습니다. 



첫 번째로 우선 투자금의 여유가 있는 규모가 있고 통합할 데이터가 많은 경우에 해당되는 대기업, 중견 기업이라면 전사 TF 조직을 만들고 통합 대상 데이터에 대한 전수 조사를 진행한 다음, 용량에 맞는 인프라를 구축하고 데이터를 수집하는 플랫폼을 구축하는 것 부터 시작하는 것이 바람직합니다. 전사적으로 추진하지 않고 각 사업부별로 추진하게 되는 경우 인력과 인프라의 중복 투자 문제와 부서간의 이해관계에 따라 협력이 잘 이루어지지 않는 문제가 발생할 수 있기 때문입니다. 


반면에 규모가 작은 기업의 경우에는 투자를 작게 가져가면서 당면한 문제를 해결하기 위한 과제 중심으로 진행하는 것이 좋습니다. 빅데이터 분석에 대한 확신과 전문성을 가진 기업도 있긴 하지만, 일반적으로는 빅데이터 분석을 해야할 것 같은데 어떻게 해야할지 잘 모르고 확신도 없는 경우가 더 많습니다. 특히 경영진이 빅데이터에 대한 개념도 잡지 못하는 상황에서는 의사결정에서도 후순위로 밀리거나 성과가 있어도 제대로 보지 못하는 경우도 생깁니다. 


일단 작은 규모의 인프라로 시작해서 단기간에 실행을 하고 가능성을 검증한 후에, 추가적인 인프라의 도입이나 인력 충원의 방향을 정하는 것이 바람직합니다. 특히나 경영진이 빅데이터에 대해 잘 모르는 경우에는 회사가 당면한 문제를 빅데이터 분석을 통해 해결하는 방향으로 진행을 하고 작은 성과부터 하나씩 만들어 내고 단계별로 설득하고 조직과 투자를 키워나가는 방향이 가장 적합합니다. 


그렇다면 과제 선정은 어떻게 하는 것이 좋을까요?


빅데이터 과제 도출을 위해 현업부서 인터뷰를 해보면 현업담당자는 막상 뭘 할 수 있는지 몰라서 머뭇거리게 되고, 기술부서에서는 현업이 뭘 원하는 지 몰라서 진행이 잘 안되는 경우가 있습니다. 그래서 과제 선정을 위해 가장 먼저 해야할 것은 현업부서의 당면 과제에 대한 이해와 빅데이터 분석을 통해 할 수 있는 것에 대한 공유가 선행 되어야 합니다. 충분한 공유와 이해가 바탕이 되지 않으면 현업부서에서 필요하지 않은 데이터 분석을 열심히 한 뒤에 실제 서비스나 현업이 사용할 수 없는 결과를 도출하게 되게 됩니다. 한마디로 많은 시간과 돈을 들여 기술검토만 하게 될 가능성이 큽니다. 


따라서 과제 선정시에 가장 중요한 점은 현업부서에서 중요도가 높고 원하는 과제 중에 기술 난이도가 낮고 현재 인원으로 충분히 할 수 있는 과제를 선정하는 것이 가장 중요합니다. 작은 성공을 기반으로 역량과 인프라를 늘려가면서 점점 기술 난이도가 있는 과제들을 진행하는 것이 과제 선정의 키 포인트가 아닐까 하네요.




지금까지 빅데이터 도입 방식과 과제선정에 대한 생각들을 간단히 정리해봤는데요. 기업 마다 환경과 상황이 다르기 때문에 똑같이 적용할 수는 없겠지만, 기업이 빅데이터 도입하고 지속하기 위해서 가장 중요한 것은 빅데이터 분석을 통한 성공 사례가 지속적으로 나와야 한다는 점입니다. 그렇지 않으면 데이터 분석을 통해 기업의 매출을 올리고 혁신을 할 수 있는 정작 중요한 과제들을 해보기도 전에 돈 먹는 하마로 전락해버릴 가능성이 크기 때문입니다. 



신고
  1. 2015.07.21 16:56

    비밀댓글입니다

    • Favicon of http://kkwaks.net kkwaks 2015.07.22 16:30 신고

      네 안내 감사합니다. 애드센스도 이제 정착이 되어서 바꾸거나 하기가 쉽지 않을 것 같네요. 지금 마땅히 넣을 만한 지면도 없구요. 한 번 고려는해보도록 하겠습니다. 감사합니다.

회사에서 빅데이터 추진 팀을 맡게 되었는데, 빅데이터를 실제 실무에 도입하는 입장에서 이런 저런 고민들을 정리하고 공유하면 좋을 것 같아서 부족하지만 포스팅을 시작해 봅니다.


빅데이터를 설명할 때 많이 사용하는 3V(Volume,Variety,Velocity)가 Veracity(정확성)나 Value(가치)를 추가해서 4V가 되고Veracity와 Value 둘다 포함하는 5V로 진화를 하고 있는 것을 볼 때, 3V가 빅데이터에 대한 단순한 특징을 얘기했다면 4V와 5V로 넘어 가면서 빅데이터의 활용과 효과에 대한 고민이 생겨났다고 볼 수 있습니다. 어쩌면 그동안 빅데이터에 대한 모호한 목표 설정으로 거대한 자원과 리소스등을 투입했지만 투자 대비 효과를 만들어 내지 못하고 실패 사례가 되어버리는 걸 경험한 기업들의 빅데이터를 바라보는 기준이 많이 달라졌기 때문이기도 할텐데요. 그럼 빅데이터가 구체적으로 뭘까요?

빅데이터는 일반적으로 다음의 특징(3V)을 가진다고 합니다. 


Volume : 적재된 데이터의 양

Velocity : 데이터 처리 속도 

Variety : 데이터의 다양성


하지만 곰곰히 생각해보면 가장 중요한 기준이 빠져 있는데요. 양이 얼마 이상이 되어야 빅데이터고, 속도의 기준은 무엇이며, 얼마나 다양한 것이 빅데이터 인가? 이런 모호한 기준에 대한 좀 구체적인 방식으로 정의해 봤습니다. 일단 멋진 버전은 아래와 같습니다.


"빅데이터란 기업이 필요한 분석이나 서비스를 함에 있어서,

 기존의 시스템으로 필요한 시간내에 처리하지 못하는 다양한 종류의 많은 양의 데이터 뜻하며,

 그것을 처리하는 기술을 빅데이터 테크놀러지라고 한다."


다른 말로 바꿔보면 다음과 같습니다. 


"지금 구축되어 있는 시스템이나 기술로 처리할 수 없는 다양하고 큰 데이터"


이런 기준에서 본다면, 예를 들어, 100억 건의 데이터를 적재하고 분석해야하는 것도 빅데이터이지만, 객관적으로는 그리 크지 않은 데이터지만 현재 구축된 시스템으로 한달이 걸리는 작업을 빅데이터 기술을 통해 하루나 매시간 추출이 가능해져서 실제 서비스나 실무에 적용할 수 있다면 그것도 상대적인 의미에서는 빅데이터라고 할 수 있지 않을까? 합니다.


아직 좀 피부에 와닿지는 않지만 빅데이터를 어떻게 기업에 도입하는 것이 좋을지에 대해서 얘기해 보면 좀 더 구체적으로 이해가 되지 않을까 싶은데요. 다음에는 기업에서 빅데이터를 도입하는 방법과 사례에 대해서 얘기해 보도록 하겠습니다.








신고

인터넷 서비스나 온라인 마케팅에서 CPM, RPM, CPA 등 자주 사용하게 되는 용어들이 있는데 개념을 어려워하는 분들도 있고 해서 간단히 용어 정리를 해볼까 합니다. 자주 사용하는 용어 위주로 정리하고 새롭게 사용되는 개념들이 있으면 하나씩 추가하면서 업데이트 할 예정입니다. 


노출(Impressions)에 관련된 용어


사용자들에게 얼마나 많이 노출되는가? 는 인터넷 서비스에서 가장 중요한 통계 중에 하나입니다. 이것을 통해 광고 효과나 성과, 광고 단가를 산정합니다. 허수가 있긴 하지만 대략적인 웹서비스의 성과 지표로 활용할 수 있습니다. 


1. PV (Page view)


페이지뷰(PV)는 요청에 의해 웹 페이지가 노출 정도를 체크하는 가장 기본적인 지표입니다. 일반적으로 일단위나 주단위,월단위 등의 기간별 총 요청된 페이지 수를 통계 지표로 대부분의 웹 사이트의 현황을 파악할 때 사용하는 기초적인 데이터인데요. 다만 중복 방문, 중복 요청 등도 다 포함하고 페이지에 iframe 형식으로 다른 페이지가 연동되어 있는 경우에 PV 지수도 올라가기 때문에 과거에 포탈에서 PV를 올리기 위해 여러가지 꼼수를 쓰기도 하여 요즘에는 PV만으로 웹 사이트의 실제 노출 정도를 100% 믿지는 않습니다. 하지만 사용자 유입 정도를 판단할 수 있는 가장 기본적인 지표입니다.


2. UV (User visit)


방문자수(순방문자수)는 PV의 단점을 보완하기 위한 지표라고 볼 수 있는데 접속 세션 기준으로 같은 방문자로 계산하여 카운트합니다. 일반적으로 사이트 방문 후에 아무런 액션없이 30분이 지나면 새로운 세션으로 간주하도록 되어 있고 같은 세션의 경우에는 한 건으로 카운트 합니다. 일반적으로 웹사이트의 노출되는 정도를 파악하기 위해 PV, UV를 같이 보게 됩니다. 






3. CPM (Cost per mille)


CPM을 Cost per 1000 impressions 라고 하면 이해가 쉽게 되실 것 같네요. 즉 1,000명에게 노출되는 기준의 비용을 뜻합니다. mille 가 천개를 뜻하는 라틴어입니다. 


4. RPM (Revenue per mille)


RPM은 1000회 노출 시 발생되는 수익을 뜻하는 지표로 CPM이 광고주 관점에서의 지표라면, RPM은 광고를 통해 수익을 얻는 블로그나 웹사이트 운영자를 위한 지표라고 할 수 있겠습니다. 



클릭에 관련된 지표


클릭수는 배너 광고나 온라인 링크등을 사용자가 클릭을 한 숫자를 말하며 광고 효과를 측정하는데 있어서 중요한 지표가 됩니다. 


5. CTR (Click though rate)


클릭율(CTR)은 노출당 클릭 수입니다. 1000번 노출되었는데 클릭이 3번 되었다면 3/1000*100% 해서 0.3% 가 됩니다. 실제로 일반적인 매체 광고가 약 0.1% 정도의 CTR을 보이는데 반해 페이스북 광고의 경우에는 0.2% 정도 됩니다. 클릭율이 좋다는 것은 페이지에 타게팅이 잘되었거나 어떤 콘텐츠의 광고가 노출되었는가도 연관되기 때문에 광고 게재 위치나 매체의 영향도 있겠지만 변수가 많기 때문에 항상 일정하다고 볼 수는 없습니다. 


따라서 매체의 CTR이 높다는 것은 경쟁력이 있을 수 있지만 그 수치가 모든 광고 콘텐츠에 동일하게 나오는 것은 아니니 주의해야 합니다. 특히 페이스북 광고는 비딩가로 진행되기 때문에 개런티 하지 않는 다는 점도 생각할 필요가 있습니다. 


6. CPC (Cost per click)


클릭당 단가(CPC)는 온라인 광고 단가의 가장 고전적인 방식입니다. 사용자가 광고나 링크를 클릭하는 것을 체크해서 비용을 산정게 되며 클릭 기준으로 광고주가 비용을 지불해야하기 때문에 유효 클릭에 대한 기준 및 중복 클릭, 부정 클릭 등을 걸러내는 것이 광고 업체(구글,페이스북)등이 고민해야 할 내용 중에 하나입니다. 평균 비용은 300~600원 정도 되며 특히 페이스북의 경우에는 비딩가로 적용되어 일정하다고 볼 수 없고 개런티도 되지 않습니다. 


새로운 용어들


온라인 광고 시장에 새로운 광고 유형과 플랫폼이 생겨나게 되면서 새로운 용어들이 


7. CPA (Cost per action)


액션당 단가(CPA)는 사용자가 어떤 액션을 취하는 것에 대한 단가입니다. 특정 사이트에 회원가입을 한다던가, 대출 상담 연락처를 남겨서 상담을 받는다던가 하는 특정 액션이 완료되면 지급하는 비용입니다. 해당 광고 유형은 확실한 결과를 얻을 수 있다는 점에서 장점은 있으나 복잡성때문에 단순 클릭보다는 참여율이 저조할 수 밖에 없습니다. 대신 광고 단가는 클릭당 단가보다는 월등히 높습니다. 


8. CPI (Cost per install)


설치당 단가(CPI)는 CPA와 비슷한 개념이지만 요즘 모바일 앱에서 많이 사용되는 광고 유형으로 앱을 설치하는 기준으로 단가가 책정됩니다. 앱을 설치하면 사용자에게 리워드를 주는 형태의 새로운 사업 모델들도 나오고 있어서 모바일 앱의 성장과 함께 해당 광고 유형의 매출도 더 상승할 것으로 보입니다. 



페이스북에서 중요한 지표


온라인 광고 시장에서 페이스북을 빼놓고 생각할 수 없는 시대가 되었고 대부분의 이벤트와 프로모션을 진행할 때 페이스북은 거의 디폴트로 진행됩니다. 


9. Likes(Page likes)


페이스북 페이지 운영시에 가장 기본적인 통계 지표는 바로 페이지 팬 수인 Likes 입니다. 회원수와 비슷한 개념이라고 생각할 수도 있지만 좋아요 취소는 매우 쉽게 할 수 있기 때문에 팬 수를 유지하기 위해서는 지속적인 활동과 이벤트, 혜택등을 제공해야 합니다. 평균적으로 팬 수를 한 명 증가시키기 위한 비용은 $1 정도 되기때문에 팬 수를 유지하거나 증가시키기 위해서는 이탈율을 기준으로 마케팅 비용이 책정되어야 합니다. 


10. Reach and TAT (Taking about this)


요즘 인게이지먼트(engagement)와 고객충성도(customer loyalty)가 중요해지면서 단순히 팬 수가 많은 것보다 실제적인 효과나 소통에 대한 수치를 더욱 중요시 하고 있습니다. 그래서 등록된 콘텐츠가 얼마나 많은 사람들에게 노출 되어는가를 확인할 수 있는 콘텐츠 도달(Reach)과 댓글이나 좋아요를 통해 해당 콘텐츠에 대해서 반응을 보이는 이야기하는사람(TAT or PTAT)을 중요하게 생각합니다. 


이런 Reach와 TAT 지수를 늘리기 위해서는 광고가 필수긴 하지만 우선 먼저 공유하고 싶을만한 가치를 주는 콘텐츠인가 입니다. 온라인에서 주목하는 콘텐츠는 '재미', '정보', '감동' 의 3가지만 있다고 해도 과언이 아닙니다. 그래서 이러한 방향성에 맞는 콘텐츠를 브랜드나 제품 방향과 매칭해서 진행하는 것이 가장 중요하며 단순한 제품 소개 및 정보 만으로는 사용자들의 공감을 얻을 수 없다는 점에서 콘텐츠 하나하나에 많은 고민이 담겨야 합니다. 




지금까지 온라인 마케팅에서 많이 사용되는 용어들을 정리해 봤는데요. 간단하게 정리해볼까 했는데 쓰다보니 내용이 많아졌네요. 온라인 광고 시장은 새로운 광고 유형과 플랫폼의 출현으로 다른 시장에 비해 급진적으로 변화하기 때문에 새로운 용어들과 지표들이 계속 추가될 것으로 생각됩니다. 새로운 용어들이나 개념들이 추가되면 한 번씩 정리해서 포스팅하도록 하겠습니다. 





신고

드디어 두번째 번역서인 서브라임 텍스트(Sublime Text) 따라잡기가 출간됩니다. 이번주에 마지막 리뷰 작업이 끝나면 바로 출간될 예정인데요. 서브라임 관련 책이 출간된다는 소식에 반가워하는 분들도 많은 것 같습니다.


서브라임 텍스트를 단순히 무료 텍스트 에디터로만 사용하시는 분들에게 서브라임 텍스트를 보다 더 잘 사용하실 수 있도록 여러가지 기능 설명과 스니펫이나 플러그인 확장, 디버깅과 린팅까지 지원하는 차세대 통합개발환경으로서의 서브라임 텍스트에 대해 설명하고 있습니다. Sublime Text 3 버전을 기준으로 설명하고 있고 책 말미에 플러그인을 직접 개발하고 커뮤니티에 게시하는 것까지 담고 있어서 서브라임 텍스트의 기능을 제대로 써보고 싶으신 분들에게 좋은 가이드가 될 것으로 생각됩니다.



현재 예약판매 중이니 아래 출판사 책 소개 참고하시길 바랍니다. 


에이콘출판사 책 소개 페이지 바로가기 http://www.acornpub.co.kr/book/sublime-text




신고
  1. Favicon of http://mcfuture.net/ 맥퓨처 2014.04.10 17:46 신고

    작업할 때 몇가지 에디터를 번갈아 가며 사용하는데 서브라임 텍스트는 막강한 기능을 매번 제대로 활용하지 못하는 것 같아 아쉬웠습니다. 무척 기대되는 책이네요. :)

    • Favicon of http://kkwaks.net kkwaks 2014.04.11 14:48 신고

      앗!! 기대하신다니 부담이... 번역 원고 리뷰를 더 꼼꼼하게 해야겠습니다. T_T

  2. 윤종화 2014.04.16 00:45 신고

    이건.. 사야겠는데요.. 잘 지내시죠? ^^;

    • Favicon of http://kkwaks.net kkwaks 2014.04.16 18:42 신고

      ㅎㅎ 기대해주셔서 감사합니다.
      언제나 그렇듯 잘 지내고 있습니다. ^^;

  3. jkf942 2014.05.05 00:45 신고

    안녕하세요 우연히 검색하다가 이책 번역하신분 블로그까지 흘러들어왔네요. 이책 보다가 뒤에 web inspector 플러그인 설치하는 부분에서 이해가 잘 안가서 이렇게 댓글 답니다. 정확히 설치하는 법 설명해주시면 안될까요? ㅠㅠ

    • Favicon of http://kkwaks.net kkwaks 2014.05.06 13:14 신고

      제가 웹 인스펙터 설치하는 부분 좀 정리해서 포스팅 하도록 하겠습니다. ^^;

  4. Olaf 2014.05.14 10:30 신고

    안녕하세요? 책이 무거워 아이패드에 교재를 넣고 다니는 대학생이라..,
    혹시 pdf나 eBook으로도 판매하실 계획이 있는지 여쭤보고싶습니다

    • Favicon of http://kkwaks.net kkwaks 2014.05.14 10:35 신고

      아 네 그런 부분은 출판사에서 결정할 부분이라서 제가 출판사에 전달드리도록 하겠습니다. 감사합니다. ^^

+ Recent posts