텍스트 계량 분석, 어떻게 할까?
텍스트 계량 분석 절차를 나름대로 정리해 본다.
개념도
일반적으로 …..
◇ 텍스트 관찰(단순빈도 측정)
◇ 정규화(상대빈도 도출)
◇ 비교 대상 설정 (비교 대상도 벡터로 만듬)
◇ 비교 대상과 비교(거리 or 비율 측정 등)
빈도관찰
빈도는 텍스트 분석에서 유일한 정량화 수단
전처리가 끝난 텍스트 준비
무엇을 측정할 것인가? ( 대명사 측정 or 고유명사 측정 / I am과 I’m 같이 측정? 따로 측정 etc )
- 타입(어형) : 단어의 종류 (중복 인정 X)
- 토큰(어절): 단어의 출현 (중복 인정 O)
# 타입 3, 토큰 5
a b b c a a
- token/type : 하나의 어형이 얼마나 사용되었는가? => 지표가 낮을수록 다양한 어휘 사용
- hapax : 전체적으로 단 한번만 사용된 어형(hapax legomena)의 숫자
# 박경리 토지 1권 개요 (강범모, 2014:52)
token : 74,387 # 어절이 74,387개 사용됨
type : 29,513 # 어형은 29,513개 존재함
token/type : 2.52 # 한 어형당 2.52번 반복 사용됨
hapax : 20,564 (28.6%) # 단 한 번만 사용된 어형은 20,564개로, 전체 텍스트의 28.6%를 차지함
Zipf's law
: 대부분의 텍스트에서 hapax의 비율은 큰 편인다.
정규화 (상대빈도)
percent
관찰빈도 / 전체빈도의 합
텍스트의 크기가 다르기 때문에 기본 자료로 상대빈도를 사용한다.
z-score
(관찰빈도 - 평균관찰빈도) / (관찰빈도의 표준편차)
※ 주의 : 텍스트를 대상으로 한 빈도 추출에서 z-score로 상대빈도를 추정하는 경우가 많다. 그러나 텍스트를 대상으로 한 용어의 빈도는 Zipf’s law에서 말해주 듯 정규분포를 따르지 않는다. 따라서 z-score로 상대빈도를 도출하면 전체적인 분포가 왜곡되는 효과가 발생한다.
대상설정
자기 자신과의 비교
text A에 속한 일부 text a의 특성을 파악하고자 할 때
- 관찰값(O) : a의 빈도값 ( 범위 내 빈도 )
- 기대값(E) : A 전체의 빈도값 ( = 전체 빈도 = 이론적으로 발견될 기대값 = 전체 텍스트의 평균값 )
doc D를 자기가 속한 corpus C와 비교할 때
- 관찰값(O) : D에서의 빈도값
- 기대값(E) : C에서의 빈도값
ex) chi-square
다른 상대와의 비교
text A를 text B와 비교할 때
- 관찰값(O) : A에서의 빈도값
- 기대값(E) : B에서의 빈도값
비교 방법
거리 (빼기) : 관찰값 - 기대값
벡터 모형 데이터를 대상으로 한다.
※ 출현 빈도가 낮은 단어를 빼 줘서 벡터 차원을 낮추면 더 정확한 결과가 나온다. 너무 많이 빼면 결과가 왜곡된다.
모두 가중 유클리디언 거리 공식이라고 할 수 있다.
- 대표 : t-score : ( O - E ) / sqrt( O )
- 기타 : z-score
- 예외 : 코사인 유사도( 가중 유클리디언 거리 공색이 아니다. )
※ z-score나 t-score는 무작위 분포에 대한 가설 검증에 사용되나, 텍스트에서 단어는 무작위 분포를 보이지 않기 때문에 단어 관계의 유의성을 검증하는데 사용하기 힘들다. 다만 상대적인 크기는 알 수 있다. (강범모, 2014:129)
비율 (나누기) : 관찰값 / 기대값
값이 1개인 1차원 벡터만 사용 가능하다.
값의 편향이 심하기 때문에 주로 log2 값을 취하여 사용한다. (이 경우 로그 값을 취해 뺀 것이라고도 볼 수 있기 때문에 크게 보면 거리의 의미이다. )
빈도에 민감하지 않다.
- 대표 : MI(mutual information), AS(association strength), LIFT => 의미가 동일하다.
가중치
- 대표 : df-idf