• 검색 결과가 없습니다.

트위터 크롤러 시스템 개발

제3절 소셜 빅데이터 수집 및 분류기술 동향 10)

나. JSON

4. 트위터 크롤러 시스템 개발

제안된 트위터 크롤러 시스템은 수집, 저장, 그리고 데이터를 분석하기 위하여 설계되었고, 필요할 경우에는 현재 작업 중인 토픽에 대한 추천이 나 알림을 제공할 수 있다. 제안된 시스템은 트위터 크롤러, 알림 레벨 모 델링 그리고 R의 세 개의 주요 단계로 구성된다.

가. 트위터 크롤러

〔그림 2-14〕와 같이 시스템의 디자인은 전반적인 성능에 대한 프로세 스를 보여준다. 트위터 자료의 추출과 저장에 대한 설명과 함께 제안된 시스템의 전반적인 디자인, 크롤링 전략, 생성된 데이터베이스 그리고 제 안된 메소드를 자세히 설명한다.

〔그림 2-14〕 전반적인 시스템 디자인

〔그림 2-15〕에서는 시퀀스 다이어그램은 시스템 수행에 대한 흐름을 자세히 보여준다. 트윗을 가져오기 위해 응용 프로그램에서 트위터 API 에 메시지를 보낼 때 프로세스가 시작된다. 트위터는 사람이 읽을 수 있 는 방법으로써 트윗들이 저장된 json파일을 생성하여 다시 되돌려 보낸 다. 트윗들은 sql에서 편집할 수 있는 상태로 변경되어야 하기 때문에 응 용 프로그램을 통하여 데이터베이스에 저장된다. 다음 단계에서는 트윗 을 분석한다. 트윗들은 의미 있는 패턴을 가지고 있는 반면 불필요한 패 턴을 가진 데이터도 함께 가지고 있기 때문에 미리 분석하는 과정을 거친 다. 미리 분석하는 단계에서는 트윗에서 불필요한 단어나 숫자, 심볼같은 요소들을 제외시킨다.

〔그림 2-15〕 시퀀스 다이어그램의 흐름

트위터는 제3자의 응용 프로그램들이 사용자를 대신하여 트위터의 자 료를 추출하고 관리하는 동안 그것들을 컨트롤하기 위하여 다양한 비율 제한을 설정한다. <표 2-17>은 트위터 제한들 중 하나를 이용하여 전략 을 보여준다.

<표 2-17> 트위터 제한 전략 예시

트위터 제한 비율은 제3자의 응용프로그램들이 사용자 데이터에 비밀 번호를 노출하지 않고 사용자 데이터에 접근할 수 있도록 허락해주는 사 용자와 및 응용프로그램 인증을 포함한다. 트위터는 표준 HTTP 인증을 위한 하나의 대안으로써 OAuth를 통한 개인적인 데이터에 대한 접근을 허가한다. 또한, 트위터 제한 비율에 대한 중요한 특징들 중 하나는 매 15

Title Resource Family

Requests/15 min Window(user auth)

Requests/15 min Window(app auth)

Get earch/tweets search 180 450

분마다 많은 수의 요청을 할 수 있다는 것이다. 〔그림 2-16〕과 같이 사용 자 인증(User-auth)은 응용 프로그램이 트윗의 상태를 생성 또는 수정할 때 사용된다. 트위터는 모든 인증 없이 공개 트위터 자료에 접근하는 것 을 금지하고 있다.

〔그림 2-16〕 사용자 인증

〔그림 2-17〕에서는 트윗과 분석결과가 저장된 데이터베이스 디자인을 보여준다. 제안된 데이터베이스는 6개의 테이블(AdminInfo, Keyword, UserInfo, Tweets, Analysis and Tweet Category)을 포함한다. 각 테 이블의 고유한 속성(Attribute)은 다음과 같다.

① AdminInfo table: 이 테이블은 고객의 정보를 저장하기 위해 설계 되었다. 이것은 admin_id, twitter_ap_name, 그리고 server_name속 성을 포함한다. admin_id속성은 테이블의 고유 카운팅(Counting) 번호 를 사용한다. 데이터베이스의 모든 테이블은 id 속성을 가지고 있다.

twitter_app_name 속성은 트위터 응용 프로그램 이름을 저장하는 데 사용된다. 앞서 언급 한 바와 같이, 크롤링 트위터 데이터는 제 3자의 응 용 프로그램들을 통하여 발생된다. 그리고 그 응용 프로그램의 이름들은 AdminInfo 테이블에서 수정된다. server_name은 응용 프로그램에서 컴퓨터가 실행될지 나타낸다. 응용 프로그램이 동시에 서로 다른 컴퓨터 에서 수행될 수 있기 때문에 서버의 정보를 저장하는 것은 중요하다.

server_name 속성을 통해 어떤 서버가 응용 프로그램을 실행하고 있는 지 알 수 있다.

② Keyword table: 이 테이블은 키워드 정보를 저장하기 위해 구성되 었다. keyword_id, input_word, type and language 속성을 포함한 다. keyword_id는 테이블의 고유 카운터로 제공되었다. input_word는 키워드와 일치하는 단어를 찾는 트위터 사용자에 의해 입력되는 키워드 를 저장하기 위해 설계되었다. type and language 속성은 트윗의 카테 고리를 표시한다.

③ UserInfo table: 트위터 사용자 계정에 대한 정보를 보유하고 있다.

이것은 소셜 데이터 분석에 있어서 필수적인 부분이기 때문에 데이터의 종류를 가지는 것이 중요하다. 사용자 정보 테이블은 userinfo_id, screen_name, location 그리고 language의 4가지 속성으로 구성되어 있다. 테이블의 고유 카운트 번호는 Userinfo_id이다. Screen_name은 데이터베이스에서 추출하고 저장한 트윗에 대한 사용자의 트위터 계정의 이름이다. Screen_name은 트윗에서 항상 @ 기호와 함께 제공된다. 다 음의 속성은 트위터 사용자의 국가, 도시 또는 어떤 장소를 나타내는 위 치이다. language속성은 사용자가 선택한 언어에 대한 현재 정보를 나타 낸다.

④ Tweets table: 이 테이블은 데이터베이스에서 중요한 역할을 한다.

Tweets table은 tweets_id, text, type, location, created_at 그리고 saved_at의 총 6가지의 속성을 가지고 있다. Tweets_id 고유의 카운팅 번호를 위해 사용된다. text속성은 트윗 자체이다. 트위터에서 추출 된 모든 트윗은 text속성에 배치된다. next 속성은 자신의 환경설정에서 고 향으로 설정한 곳을 나타내는 위치이다. 위치 정보는 지역 또는 국가별로 데이터 분석 결과를 나누는 데 유용할 수 있다. created_at 속성은 언제 트윗이 게시 되었는지 나타낸다. 정보는 날짜와 시간으로 구성되어 있다.

반면에 saved_at 속성은 트윗이 데이터베이스에 저장된 시간을 나타낸 다. 또한 이전의 속성과 같이 날짜와 시간을 보여준다.

⑤ Analysis table: 이 테이블은 테이블이 트윗을 분석 한 후 나오는 출력 데이터에 대한 저장 공간으로 설계되었다. 이 테이블은 처리되지 않 은 데이터를 저장하는 이전 테이블과는 반대로 의미 있는 데이터를 저장 하기 때문에 데이터 분석의 관점에서 가장 중요한 하나이다. Analysis table은 analysis_id, anaylsis_type 그리고 analysis_result 속성을 가 지고 있다. analysis_id 속성은 테이블의 고유 카운터이다. 다음의 속성 은 다양한 알고리즘을 나타내는 분석 유형이다. 이러한 알고리즘들은 앞 서 언급하였던 의미 있는 데이터의 형태로 결과를 얻기 위해 트위터 데이 터에 이용된다. analysis_result는 이름에서 알 수 있듯이, 실험 결과를 보유하는 속성이다.

⑥ TweetCategory table: 이 테이블은 Tweets table의 보완 테이블 로 볼 수 있다. TweetCategory table은 tweetcategory_id, count and category_name와 같은 3가지 속성이 포함되어 있다. Tweetcategory_

id는 테이블의 고유 카운트 수를 가진다. 다음의 속성은 같은 카테고리의 트윗의 수량을 나타낸다. 예를 들어, TweetCategory는 health라는 카 테고리 관련 트윗을 저장할 수 있다. 마지막 속성은 category_name으

로, 이것은 테이블에 저장된 트윗의 카테고리를 나타낸다. 건강, 스포츠, 엔터테인먼트 등은 트윗 카테고리의 예가 될 수 있다.

〔그림 2-17〕 개체 관계 다이어그램

나. 모델링 알림 레벨

모델링 알림 레벨은 자살과 관련된 트윗들을 감지하기 위한 모델로써 자살 위험 요소들을 위한 트위터 검색어와 문장을 제공하며, 검색어 문장 에 대한 가중치를 설정한다.

관련 문서