2015-03-12 사회과학 연구방법론 - 연세대학교 정보대학원 수업내용

이 과목은 여러분들에게
 
1. 논문 쓰는 데에 도움이 될 것이다.
2. 앞으로 생각을 하고 판단을 하는 데에 도움이 될 것이다.
 
러브 스토리라는 영화
이 긴 이야기를 어떻게 설명해야 하나.
 
방법은 하나 밖에 없는 것 같아.
학자들의 정의를 짚고 가는 것.
 
그 전에 여러분들에게 리서치는 뭐에요?
내가 궁금한 것에 대한 답을 구하는 것.
 
 
MECE 하는지. (말이 되는지)
 
예) KISTI 프로젝트. 일단 지식서비스의 정의를 내가 이해한 것과 발주처와 같은가.
 
사회과학적 연구의 조건
1) Logicality : 너무나 당연한 이야기도 논리성에서 떨어진다고 판단할 수 있다.
2) Reproducivility : 재생산 가능해야 함.
예) 김영란 법이 중소 IT기업에 경제적으로 미치는 영향은 무엇인가.
학술 논문이 될 수 없을 가능성이 많다. 왜냐면 반복 불가능 하니까. (김영란 법을 다시 만들리가 없으므로)
3) Verifiability : 검증이 가능해야 함.
4) Generality : 일반화 될 수 있어야 한다. (상품도 너무 일찍 출시하면 대중들이 따라가지 못한다.)
+ 새로운 insight가 있어야 한다. (좋은데, 재미가 없네.)
 
“Systematic gathering, recording, and analyzing of data about problems relating to the management of Information, IS, and IT.”
 
Applied Research vs. Basic Research
- Applied Research – an immediate problem-solving purpose, transient, lack of research tradition
즉각적인 현상의 분석, 문제 해결을 위한 리서치. Rigor가 훨씬 느슨하다. 졸업 논문으로 그리고 출간될 확률이 낮아진다. 이론을 만드는 것보단 현상 분석을 주로 해야하는 분야는 이런 리서치를 행한다.
- Basic/Pure Research – theory-based, -building, little impact on immediate problem, interested in nature of phenomenon
목적 자체가 패턴을 찾아내서 예측을 할 수 있고 현상을 이해도 할 수 있는 이론을 만들어 내는 것.
Investigative Reporting 조사 보고서. (Research라고 할 수는 없다) ex) 웹 3.0 에 대해 조사해봐라.
inquiry level, secondary data, little or no inference or conclusion, problem recognition
Descriptive Research ex) 웹 3.0이 시맨틱 웹이라고? 그럼 시맨틱 웹을 현재 누가 매출을 올리고 있고, major 플레이어가 누구고, 언제부터 비즈니스화 되었고 기타 등등… 이걸로 석사 논문 가능한가. Yes or No. 되어 있는 리서치가 없고. 굉장히 새로운 아이템이다. 그러면 가능.
discover answers to  the questions who, what , when, where, and how; determining the frequency with which something occurs or the relationship between multi-variables
Explanatory/Causal/Predictive Research 이론이나 가설을 가지고 이론을 만들어 내는 것.
determining the cause- and-effect relationships, theory and hypothesis-based,
이미 되어 있는 연구들과 현황 분석 자료안에서 이론을 뽑아내는 것.
 

예측을 할 수 있으면 시사점을 도출할 수 있다.
 
컨설팅 업체의 문제 - 재고문제. 그거 나랑 인터뷰한 내용이잖아? 그래서 어떻게 하라고. 그걸 해달라고 부른건데. 대부분의 컨설팅 업체에서 여기 선에서 끝난다. root cause

 
 
Concomitant Variation(X와 Y가 함께 변해야 한다.), Time order of occurrence(같은 시간에 일어난 결과를 비교해야), Elimination of other possible causal factors(다른 영향을 주는 요소를 모두 제거하기 힘들다)
때문에 사회과학에서는 추론했다고 하지 증명했다고 하지는 않는다.
 
연구에는 두 가지 수준이 존재한다.
첫 번째는 개념과 명제로 구성된  추상화된 수준이며,
두 번째는 변수와 연구가설로 구성된 경험적 수준이다. (학술 논문, 졸업 논문)
 
Rationalism(논리로) vs. Empiricism (경험/실험으로) 
데이터가 없으면 no data no research 이다.
Deduction (연역적) vs. Induction (귀납적)
 
MIS 분야 탑 저널?
MISQ 등등. 최종 목적이 이론이 아닌 경우는 아예 받지를 않는다.
 
이론(theory)의 의미.
 
진짜 정확히 빨리 의사결정을 한다. 상황에 대한 인지도 빠르다.
TAM이론. 왜 어떤 기술은 뜨고 어떤 기술은 뜨지 않는가?
 - easy of use 사용하기 쉬워야
 - useful 유용해야
 - 주변 사람들이 사용해야
 
Independent 독립변수/Dependent variables 종속변수
 
* Moderating 조절변수
(GPA와 연봉간의 상관관계에서 성별이 영향을 많이 미치더라) 
* Mediating 매개변수variables
(GPA 높은 사람이 정보대학원을 갔고, 그 사람이 연봉이 높은 경우가 더 설명을 잘하더라.)
조절 변수와 매개변수를 찾는 것이 어쩌면 석사 수준에서는 더 큰 발견이 될 수 있을 것이다.
 
기존 연구들속에서 숨겨진 조절변수와 매개변수를 찾는 것만으로도 충분한 석사논문에서의 Contribute 라고 할 수 있다.
 
정보대학원 석사학위 논문으로 적절한 연구의 제목. 연구 질문.
(제한시간 30분) 3:25
재밌고, 새롭고, 컨트리뷰션이 있고, 인사이트가 있는 질문. 
 
신상문 - 3학기. 파트. 디지털 비즈니스.
김지원 - 2학기. 정보 보호.
 
Impact 리서치가 가장 많다.
 
개인정보 제공 범위에 영향을 미치는 요인.
 - 회사의 신뢰도.
 - 기업, 정부
 
직원들 프리젠티즘이 회사에 미치는 영향.
 
재밌고, 새롭고, 컨트리뷰션이 있고, 인사이트가 있는 질문
 
 
 
2015-03-06 ICT 기술과경영 - 연세대학교 정보대학원 수업내용

--- 요점정리 ----
# 이 강의의 목적을 같은 언어 같은 단어를 교수님과 쓸 수 있도록하는 것이라 하셨음.
용어에 대한 정의를 묻는 문제가 나올 가능성이 높지 않을까….
* 2000년대
On-line business의 보편화
Application service provider/IT outsourcing
Enterprise-wide Information System
Ubiquitous computing, mobile computing
WEB 2.0 – UCC, SNS
IOT, Big data
 
* 정보통신 기술응용의 변천사
단순 계산기시대 -> 회계분석 정보처리 시대 -> 사무 전산화 시대  -> 경영 정보 시스템
 
* 경영 정보 시스템
단순자료처리 수준을 넘는 조직관리와 의사결정을 도와주는 응용업무(예, 예산 수집과 통제)
마케팅, 생산, 재정을 돕는 시스템
의사결정 지원시스템(Decision support system)

집단 지원시스템(Group Decision support System)
최종사용자 컴퓨터(End-user computing)
전문가 시스템(Expert system)
 -> 직급에 따라서 제공 받을 정보의 종류가 다르다.
Island of Technology – System Integration의 필요
 
* 전사적 정보 시스템 (enterprisewide IS)
Functional Integration - Process Innovation
System component Integration
Network-based Integration
Data Integration
 
예를 들자면,
EA/ITA
Enterprise Resource Planning system
Customer Relationship Management system
Supply Chain Management system
Human Resource Information system
Knowledge Management Systems
 
 
* 전략 경영 시스템 (Strategic Information System)
전략적 계획, 장기계획
조직의 목표설정과 달성수단 결정
기업환경과 조직의 이해
미래지향적이고 매우 제한되고 불확실한 정보를 이용(비구조적 결정)
중역 정보 시스템(Executive Information System)
경영 평가 관리 시스템: PRM, CPM, BPM (예, Balanced Score Card에 근거한 SAP SEM, Oracle’s Activa 등)
전사적 개혁 관리 시스템: 6 Sigma, Process Innovation
 
Information system:
연관된 구성요소들의 집합이 정보 시스템임.
 
Information vs. data
데이터는 단순 사실의 나열이지만 정보는 의미있는 정제된 데이터.
Collect, process, store, and distribute information
Support decision making, coordination, and control
 
six strategic business objectives:
정보시스템에 투자하는 6가지 비즈니스 목적
1. Operational excellence (운영을 잘하고)
2. New products, services, and business models (신제품을 만들고)
3. Customer and supplier intimacy(고객과 친해지고)
4. Improved decision making(향상된 의사결정을 내리고)
5. Competitive advantage(경쟁상의 이점을 가지려고)
6. Survival(생존을 위해서)
 
Perspectives on Information Systems
정보시스템을 보는 3가지 관점 : 조직, 기술, 관리.

 
기업정보시스템과  정보의 관계

 

 
--- 예상문제 ----
2000년대에 대두된 IT 기술을 나열하고 정보대학원의 역할을 서술하시오.
정보시스템에 투자하는 6가지 비즈니스 목적을 설명하시오.
데이터와 정보의 차이를 설명하시오.
의사결정지원시스템에서 각 요구 레벨마다 제공되는 정보의 특징을 서술하시오. (직급에 따라 제공되는 정보의 특징이 다름)
 
 
--- 강의록 ---
 
같은 언어 같은 단어를 교수님과 쓸 수 있도록.
대화의 시간을 가질게요. 궁금한 거 희망사항 불만사항.
 
이중정 원장님
MIS 경영정보. USC 박사. 매릴랜드 주립대학 교수. 9년.
ROI 쪽. IT 투자 성과 분석. 시스템 분석.
 
정량적인 방법을 중심으로 했음. 리서치 재밌어해요.
교수의 롤이 Research, 강의, Service (리서치가 제일 중요하다고 생각함)
Ph.d가 무엇인가. 나혼자 연구할 수 있는 자격증이다.
 
첫 째, 남미
둘 째, 셋 째, 남가주
 
information technology가 어떻게 진화되었는지.
이 클래스는 교수님 소개 + 과목에 대한 소개.
 
It에 있어서는 공군에 온 것이라고 생각할 것.
1940년대 - 286정도?
1950년대~80년대 - IBM (당시의 구글 이상)
1969년 - 인터넷의 전신인 알파넷.
1975년 - 최초의 LAN. Xerox. 복사기 독점기업. Paperless 오피스가 될거라고?? PARC 연구소 설립.
IT분야에서 IBM이 적이 되었을 때, 우리를 디펜스 할 수 있는 아이디어를 만들어 내라.
 -> GUI, 마우스, 퍼스널 컴퓨터, 이더넷 프로토콜. OOP(객체지향 프로그래밍) 이게 여기에서 나옴. ㄷㄷ
빌게이츠, 스티브 잡스가 여기 많이 놀러갔음.
그런데, 이러한 엄청난 성과에도 불구하고 성과에 대한 보상이 제대로 이루어지지 않았다. 때문에 다들 흩어짐.
 
퍼스널 컴퓨팅이 대세가 될 것이다. (시장도 형성되어 있지 않았을 때)
IBM에서 시장을 선점해야 겠다고 생각함.
컴퓨터는 있었는데 OS시스템이 없었다.
빌게이츠 -> 도스를 패터슨한테 사왔다. 5만달러. 그리고 1pc당 $50불을 달라고 함. 엄청난 돈을 벌었음.
 
기술의 진화 - paradigm shifting
  전기, 철도, 전화, tv, 비행기 그리고 it
  IT - Lego처럼 조립하면 다양한 폼에 사용법이 무궁무진, value added, 지속적이고 다양한 진화.
응용의 진화. - 적용된 분야가 진화되었음.
  Tangible -> Intangible 눈에 보이는 수익에서 눈에 보이지 않는 수익쪽으로 진화.
 
전에는 Passive했어요. 자동화를 해준다던지. 이제는 그 상태를 넘었죠.
IT와 기관간의 연합이 굉장히 중요해지고 있죠.
 
MIS라는 학문이 없었다.
현업도 알고, IT쪽도 아는 사람이 필요하겠다.
처음에는 Computer Science 공부한 친구들을 데리고 와서 공부를 시켰다.
 
 
 
2015-06-30 EndNote 논문 참조 문헌 관리 프로그램

# EndNote 다운로드
 
 !!!! 중요 !!!!!
 엔드노트를 실행시키면 자동으로 학교라이센스 인증을 인터넷으로 진행함.
 때문에 DB를 별도로 구축하지 않으면 읽는게 불가능함.
 예를 들어, 학교에서 a라는 라이브러리를 구축했는데 집에서 a를 열면 뻑날 가능성이 매우 높음.
 
# 내가 주로 사용하는 기능
 1. 출처 내보내기 (구글 스칼라에서 서지반입과정 포함)

 

원래는 EndNote로 가져오기 버튼이 안나옴. 구글 스칼라 설정에서 나오도록 해야함.

 

엔드노트로 가져오기 파일인 enw 파일을 실행시키면 자동으로 가져옴.

 
 2. 워드에 바로 삽입. 자동 참고 문헌 작성
 
1) 마우스로 넣고 싶은 문헌을 클릭하고 Ctrl+C를 누른다.

 
 2) 넣고 싶은 워드 문서뒤에 Ctrl+V를 누른다. 그러면 아래 그림처럼 됩니다.

 
 3) 자동 참고 문헌 작성 - Update Citations and Bibliography 버튼을 누르면 되는데, 양식은 Style 란에서 지정할 수 있음.

 
참고문헌을 작성하면 아래처럼 양식이 바뀌고 (이 양식은 별도로 지정할 수도 있음)

 
 자동으로 아래처럼 참고문헌이 들어감

 
 3. 커스텀 양식 지정
 why? URL 을 보여주지 않는 경우가 많은데, 학회지에 따라 URL이 필수인 경우도 있고, 표준 양식을 따르지 않는 경우도 있기 때문에 필요한 기능임.
 
Endnote 서울대학교 의학도서관 사용방법 안내
 

 

 
 4. 워드에 바로 삽입시, 숫자로 변환 Numbered 누르면 숫자로 표기됩니다.
 

 
 5. 캡션 활용
 
* 아래의 화면이 일반적인 화면임

 
* 캡션 보기를 누르고, 가장 좌측으로 드래그해서 넣으면

 
* 아래와 같은 화면을 볼 수 있음

 
* 캡션에는 내가 나중에 구분할 수 있는 정보를 넣으면 추후에 참고 문헌 삽입시 도움이 됩니다. (캡션은 참고문헌 삽입시 들어가지 않는 항목임)
 
6. 그림 및 표/차트 삽입
* 작성 중인 논문  MS-Word를 기본으로
1. Figure(s) 삽입
삽입할 곳에 커서를 두고 -> word/엔드노트 메뉴 -> insert citation -> (Alt+2) 클릭 -> Find Figure 선택 -> Figures(s) 검색후 -> Insert
 
 
7. 수동입력시 주의사항
저자를 2명 이상 입력할 경우, 줄을 바꿔줘야 한다. (1줄에 1명만)
 
8. 자습할 수 있는 사이트, 학습자료, 동영상 강의
 
 
EndNote 영문 매뉴얼 (4.05 MB) 

EndNote 교육 자료 (Windows 용) 

EndNote 교육 자료 (Mac 용)       

EndNote 교육 동영상 보기
Introduction
 
 
 
1. EndNote란?

 00:32
 
2. EndNote 프로그램 설치하기 [EndNote 다운로드]

 01:35
 
3. Library 만들기

 01:01
Reference 수집
 
 
 
4. Reference 직접 입력하기

 01:50
 
5. Web of Science

 00:48
 
6. Google Scholar

 00:42
 
7. 서울대학교 중앙도서관

 02:27
 
8. 학술연구정보서비스(RISS)

 02:04
 
9. PubMed

 00:36
 
10. PDF 반입을 통한 Reference 자동 생성

 01:42
 
11. 원문파일 자동으로 첨부하기 (Find Fulltext)

 01:25
Reference 관리
 
 
 
12. Groups 만들기

 01:24
 
13. Reference 중복 제거하기

 00:35
MS Word에서 논문 작성
 
 
 
14. MS Word에서 Reference 인용

 01:46
 
15. 인용한 Reference - 수정, 삭제

 00:47
 
16. 투고저널 규정 맞추기

 00:49
Output Style 수정하기 (EndNote 고급교육)
 
 
 
17. Output Style 다운받기

 01:17
 
18. Output Style 수정저장하기

 00:37
 
19. 저널명 표기 – Output style 수정

 02:41
 
20. 저널명 표기 – Term list 수정

 01:35
FAQ
 
 
 
21. 간편하게 참고문헌 리스트 만들기

 00:43
 
22. PDF 부가기능 사용하기
 01:22
 
 
# 국내, 국외 참조 문헌 분리하기
 - 먼저, 각 인용되는 참조 문헌의 Language 항목에 각 나라의 언어를 입력한다.
 - 그런 뒤 Style Manager를 열고 Bibliography -> Sort Order -> Other
     -> 정렬 순서 설정 (언어 -> 저자 -> 년도 -> 제목) 

 
서울대 중앙도서관
한글 이용자를 위한 EndNote 사용방법
  1. 한글에서 논문 작성
  2. EndNote Library를 열어 인용하려는 Reference 선택 후 복사 (Ctrl + c)
  3. 한글에서 작성 중인 논문의 인용하고자 하는 위치에 붙여넣기 (Ctrl + v)
  1. {Qieni, 2001 #673}과 같은 형식으로 보임

  1. 같은 방법으로 인용하고자 하는 곳에 Reference 복사 후 붙여넣기
  2. 한글 문서를 저장할 때 다른 이름으로 저장하기 기능을 이용하여 서식있는 문서(*.rtf)로 저장하고 문서 닫기

※ 서식있는 문서(*.rtf)로 저장한 문서를 열어 {Yang, #294}와 같은 형식으로 저장되었는지 확인, 중괄호 {, }가 빠져 있는 경우 변환이 되지 않음
  1. EndNote 메뉴에서 Tools > Format Paper 선택
  2. 열기화면에서 서식있는 문서로 저장한 파일 불러오기
  3. EndNote프로그램이 서식있는 문서의 인용사항을 자동으로 스캔함
  4. 원하는 Output Style을 선택한 후 Format 버튼을 클릭

  1. 파일 이름과 저장할 경로를 선택 후 저장 (원본rtf 파일과 다른 이름으로 저장해야 함)
  • 수정이 필요할 경우 서식있는 파일(*.rtf)을 수정한 후 다시 메뉴에서 Tools > Format Paper를 실행
  • 한글 2004 이상 버전에서 가능 : 한글 2004 이전 버전에서는 {Yang, #294}에서 중괄호 {, }가 없어진 상태로 저장되므로, 저장한 파일을 다시 실행하여 중괄호를 삽입 후 재저장해야함
MS Word의 EndNote 도구바가 보이지 않을 때 생성방법
  • MS Word에서Office 단추를 누른 후 하단의 Word 옵션 클릭

  • 목록에서 추가기능 선택 > 하단의 드롭다운 메뉴에서 COM 추가 기능 > 사용할 수 없는 항목으로 변경 > 이동 클릭

  1. 팝업 창에서 EndNote Cite While You Write 선택 후 사용 클릭

  1. MS Word에 새로운 EndNote X4 메뉴바가 생성되었는지 확인하고, 없으면 MS Word를 재실행

일본어, 프랑스어, 독일어 등의 언어 입력 방법
  1. EndNote가 설치된 컴퓨터의 설정을 변경해주어야 함
  1. Windows XP : 시작 > 제어판 > 국가 및 언어 옵션 > 언어 > 자세히 > 추가 > 입력언어에서 해당 언어를 선택하면 자판이 추가됨
  2. Windows 7 : 시작 > 제어판 > 시계, 언어 및 국가별 옵션 > 국가 및 언어 > 키보드 및 언어 > 키보드 변경 > 추가 > 해당 언어를 선택하면 자판이 추가됨

 

 

  1. Alt키와 Shift키를 동시에 누르면 작업표시줄 입력도구모음의 언어설정이 바뀜

  1. 또는, 입력도구모음의 언어 부분(Ko, JP, FR 등)을 눌러 바꿀 수 있음

  1. EndNote에 입력할 때 원하는 언어로 변경하여 입력
한자, 일본어 등이 정상적으로 표시되지 않을 때 해결 방법
현재 설치된 EndNote의 폰트가 해당언어를 지원하지 않기 때문 Diplay Fonts 변경 필요
  1. EndNote 프로그램
  2. Edit > Preferences
  3. Display Fonts > Change Font > 맑은 고딕, 굴림, 돋움 등 기본 제공되는 한글 폰트를 선택

 
 
 
 
 
2015-03-05 한글 텍스트 마이닝 MALLET 

The Programming Historian
 
cmd 창에서 환경변수 설정 끝내고 명령어 입력해서 텍스트 마이닝 돌리는 절차.
 
Importing data
bin\mallet import-dir --input pathway\to\the\directory\with\the\files --output tutorial.mallet --keep-sequence --remove-stopwords
 
Your first topic model
bin\mallet train-topics  --input tutorial.mallet
 
 
한국어로 LDA(Latent Dirichlet Allocation) 돌리기
 최근 데이터마이닝(data mining)분야에서 매우 핫한 키워드가 있다.
Latent Dirichlet Allocation 혹은 그냥 LDA로 불리우는 알고리즘이다.
기존의 LSI와 비슷한 용도로 사용되는 알고리즘인데, 특정 문서 혹은 문서집합들에서 주제를 추출하는데 활용된다.
 
알고리즘에 대한 개념적인 설명과 활용방법은 다른 블로거가 LDA 겉핥기LDA실습 이라는 글에 잘 정리되어 있다.
 
따라서 여기서는 어떻게 LDA를 돌려보거나, 혹은 활용할 수 있는지에 대해 설명하려한다.
물론 데이터마이닝 전공자들은 많은 시간을 들여 LDA에 대해 공부하고, 라이브러리를 찾아서 부딛혀 볼 수 있고, 정 안되면 논문을 보고 직접 알고리즘을 구현해 볼 수 있을 것이다.
하지만, 타 분야에서 이를 단지 활용해보고 싶거나, 어떤 알고리즘인지 일단 돌려보고 싶은 사람들에겐 이건 너무 가혹하다..  왜냐면 많은 텍스트 마아닝 라이브러리는 어렵고, 배워야할 것들이 매우 많다.
 
LDA에 대한 소개는 위의 링크들에서 잘 설명되고 있으니 알고리즘에 대한 설명은 건너뛰고, LDA를 블랙박스시스템으로 놓고서 설명하면
이 블랙박스 시스템의
입력은 텍스트 문서의 집합이고
출력은 모델링된 토픽들의 집합이다.
 
기존의 벡터 스페이스 모델과 달리 LSI LDA에서는 각각의 문서들이 여럿의 토픽, 즉 주제들과 연관지어질 수 있고, 문서에 등장하는 단어들은 그 토픽들을 이루기 위한 요소들로 여긴다. , 문서에 사용된 단어들이 토픽을 구성하고, 토픽이 합쳐져서 문서를 구성하는 형태로 문서를 가정, 혹은 모델링 하고 있다. LDA는 단어들간의 문서내에서의 동시등장(co-occurrence) 빈도를 확률화하여 이로부터 숨겨진 토픽들을 도출하는 역할을 한다.
LDA의 출력 값은 아래와 같은 알흠다운 그림을 그릴 수 있게 해주는데, 아래의그림은 LDA(정확히는 L-LDA)를 활용해 특정 트위터 타임라인의 주제를 도출한 그림이다.

[출처: Characterizing Microblogs with Topic Models by Daniel Ramage, Susan Dumais, and Dan Liebling, May 2010, In Proc. ICWSM 2010]
 
이제 본격적으로 LDA를 돌려보기 위해서는 블랙박스시스템역할을 해줄 LDA 라이브러리와 분석할 대상 데이터가 필요한다.
 
LDA라이브러리는 java 기반으로 만들어진 MALLET 을 썼는데,
첫째로는, 국내 연구자들이 많이 사용하는 java를 기반으로 구현되었으며,
둘째로는, Eclipse에서 라이브러리 형태로 가져다 쓰기 용이하고,
마지막으로는 텍스트 인코딩에 UTF-8을 기본으로 쓰고 있어서, 한국어 처리에 문제가 없다는 매우 큰 장점을 가진다.
 
분석대상 될 입력데이터는 MALLET역시 한글에 대한 분석을 지원하지 않으므로, 전처리를 필요로 한다. 전처리를 위해서는 국민대의 한국어 형태소 분석 라이브러리인 HAM을 활용할 수 있다.
 
생각보다 내용이 길어져 MALLET의 구동과 HAM을 통한 데이터 전처리 과정은 다음 글에서 이어가야겠다.
 
 
 
 
한국어로 LDA(Latent Dirichlet Allocation) 돌리기 2
이전 포스트에서 다루었던 LDA로 한글을 돌리는 방법에 대해 보다 상세한 사항들을 정리하려 한다. 이전 포스트라지만.. 사실 두달전에 썼던 글을 이제서야 업데이트 한다. ㅎㅎ
 
1. Mallet eclipse에서 활용하기. 
먼저 Mallet을 사용하기 위해 패키지를 다운받는다. 현재 내가 사용해본 버전은 2.0.7이고 Mallet 다운로드페이지에서 최신버전을 제공한다. 
앞에서 언급한대로 Mallet eclipse에서 활용하기 편리한데, 먼저 압축을 해제하고(해제된 folder를 앞으로는 MALLET_HOME 으로 쓰겠다.) 
eclipse에서 새로운 프로젝트를 생성한 후 Project Property 페이지에서 Mallet활용을 위한 jar 파일들을 link시켜주어야 한다. 
[Mallet관련 jar파일들을 추가한 화면]
위의 그림처럼 mallet을 쓰기위해서는 두개의 jar파일을 link시켜야 하는데, mallet.jar mallet-deps.jar 파일은 MALLET_HOME/dist에 존재한다. 
jar와 관련된 설정을 마치고, 간단한 test를 해볼 수 있는데, mallet library는 친절하게도 example파일들을 MALLET_HOME/src/cc/mallet/examples의 위치에 포함하고 있다.
 이 포스트에서는 LDA를 활용하는 방법에 대해 적고 있으므로, examples폴더에 LDA.java 라는 example파일이 있으면 좋겠지만, Mallet에서는 LDA LDI라는 명칭을 class이름으로 쓰고 있지는 않다. 하지만 TopicModel이라는 클래스가 LDA 알고리즘을 구현한 것이라는 소개를 Mallet 페이지 어딘가에서 찾을 수 있다. 따라서 TopicModel.java를 통해서 LDA를 테스트해 볼 수 있다. 
2. Example(TopicModel.java) 실행하기 
TopicModel 클래스 파일에는 text기반의 데이터 파일을 읽는 과정과 LDA를 실행시키는 과정, 그리고 LDA의 실행결과를 콘솔에 출력하는 코드가 포함되어 있다. 
따라서 LDA실행을 위해서는 TopicModel 클래스 파일만 실행시키면 되는데, 코드를 간단히 살펴보면 알 수 있듯이, 해당파일은 입력 데이터 파일의 위치를 args로 입력받는다.  eclipse에서는 Run Configurations에 들어가서 Arguments패널에서 데이터 파일의 위치를 설정해주어야 한다. 
Mallet이 받는 데이터 파일의 구조는 3가지이고데이터 import 페이지에 설명되어 있다. 
간단하게 정리하면 
1. One instance per file은 각 text파일 마다 하나의 문서의 내용이 들어있는 형태, 폴더주소를 입력데이터의 path로 받음 
2. One file, one instance per line은 하나의 text파일에 한줄당 한 문서의 내용들이 들어가 있는 형태, 하나의 파일명을 입력 데이터 path로 받음
3. SVMLight format은  SVM 형태의 데이터를 입력으로 받음. 
2번째 파일 형식은 데이터 import 페이지에 설명되어 있드시, 
[URL] [language] [text of the page...]의 형태로 작성되어야 한다. 
여기서 URL은 문서를 지칭하는 고유의 값이어야하고, language mallet자체에 내장된 stopword list를 활용한다던지 하는 이유로 설정하여 활용할 수  있겠지만, 일단은 X로 두는걸로 한다. text of the page에 문서의 텍스트가 들어가게 된다. 
위의 형식으로 작성된 입력데이터 sample 파일과 결과는 아래의 파일로 첨부한다. 
첨부1: mallet site어딘가에서 얻는 2번째 파일 형식의 데이터, 정확한 소스가 기억안남
첨부2: 첨부 1을 넣어서 돌린 LDA의 결과, 꽤 나이스 하다
3. 한국어로 Mallet실행시키기
한국어로 mallet을 실행시키는 방법은 위의 예제처럼 간단하지 않은데 그 이유는 한국어와 영어에는 중요한 차이가 있기 때문이다. 
예를 들어 문서 A I live in South Korea라는 문장을 포함하고 있을때 우리는 꽤나 간단하게 space를 separator활용해서 이 문장의 키워드를 꺼낼 수 있다. I in 을 불용어 처리하면 live, South, Korea가 키워드가 될텐데, 이 키워드들은 대소문자 문제와 단/복수 정도의 케이스만을 제외하면 다른 문장에서 얻을 수 있는 키워드들의 비교가 용이하다.
하지만 한국어 문서를 예로들어보면, '나는 남한에 산다.' 라는 문장은 '나는', '남한에', '산다'로 분리된다. 이 단어들은 다른 문장에서 나올 같은 의미의 키워드들과 비교되기 힘들기 때문에 키워드로 활용하기에 적합한 형태가 아니다. '나는' '' ''으로, '남한에' '남한' ''로 분리하고, '산다'가 동사의 원형인지를 확인한 후 '' '남한' '산다'를 키워드로서 사용할 수 있게된다. 
위의 설명은 대략적인 설명이고 보다 자세한 한국어/영어의 언어처리방법의 차이점은 다른 많은 곳에서 찾을 수 있을 것이다. 
Mallet은 당연히 이러한 한국어 처리 과정을 지원하지 않는다. Mallet을 활용한 한국어 처리를 위해서는 이러한 한국어에 대한 전처리 과정을 수행한 후에 Mallet의 입력데이터로 제공해야 한다. 
나는 잘 알려진 국민대의 한국어형태소 분석기 HAM을 활용하여 문서에서 명사만을 걸러낸후에 Mallet의 입력으로 제공하였다. 상당히 일반적이지 않은 목적으로 테스트를 해본거라서 테스트했던 입력데이터는 크게 도움이 되지 않을 것 같아서 입력파일의 샘플만을 간단히 소개하면 아래와 같다. 
AP881218-1 X  거침 사마귀유치원 도지사 음성 기억 좌천  
AP881218-2 X  시원한프로 뉴스 거침 사마귀유치원 도지사 음성 기억 좌천 
AP881218-3 X  사마귀유치원 도지사 음성 기억 좌천 시청자 통쾌 
한국어 데이터로 LDA를 실행하기 위한 입력데이터의 준비과정을 다시 한번 설명하면.. 
1) 분석 한국어 문서들을 HAM과 같은 형태소 분석기에 돌린다. 
2) 형태소 분석기에 의해 분석된 형태소 중, LDA에서 topic추출을 위해 활용한 형태소들을 선택한다. 명사들만 활용하거나, 명사+동사, 명사+동사+부사 정도의 선택이 있을듯 하다. 
3) 각 문서와 형태소 분석기의 결과를 하나의 mallet입력파일로 변환한다. 
이렇게 정리될 수 있고, 한국어 입력데이터가 준비되면 다시 2번으로 돌아가서 sample데이터 대신 새롭게 만들어진 데이터파일을 argument로 주고 실행시키면 문제없이 구동이 가능한다.  
참고. 
HAM c기반이어서 eclipse를 활용해서 쓰는건 상당히 까다로운데, 연구실 후배가 HAM을 웹서버에 올려서 restful한 형태의 request를 지원하는 형태로 만들었다. url에 분석하고 싶은 문장을 인코딩해서 보내면 형태소분석의 결과(명사들만) soap로 보내준다. 이와 유사한 PHP모듈과 관련된 블로그 페이지 
 
 
java.lang.unsatisfiedlinkerror no in java.library.path 에러 대처법
 
LDA (topic modeling) 구현들
 
Mallet 시작하기(링크)
 
강승식 교수: 한글공학, 정보검색 연구소
 
엑셀기반 스탠포드 토픽 모델링 도구
 
한글에 대한 편집 거리 문제(한글 검색에 검색어 처리 관련 논문)
 

+ Recent posts