일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 명령어
- 노마쌤과 즐거운 영어 습관
- 정수인코딩
- R
- DOM
- Ajax프레임워크
- CSS
- 매일영어습관
- 자기지도학습
- Filter
- HTML
- 파이썬
- 벡터
- 노트list
- JS
- EC2
- NLP
- Mac konlpy
- 행렬
- 웹폰트
- 프로토콜
- 함수
- 클러스터링기법
- 노마쌤
- 신뢰구간
- DOMAPI
- Ajax
- 인덱스
- 유의수준
- 질의확장
- Today
- Total
채니의 개발일기
3장 텍스트의 자동색인 본문
자동색인: 문헌텍스트를 분석하여 문헌의 내용을 대표할 단어,단어구를 추출하여 색인어로 선정하는과정
자동색인 알고리즘
1. 텍스트를 구성하는 단어들을 주제어와 비주제어로 구분하고 주제어를 색인어로 선택하는 과정
2. 비주제어는 문헌의 주제와 관련이 없거나 빈번하게 사용되는 용어들로 불용어처리
예를 들어 관사, 전치사, 접속사 등이 비주제어에 해당
3. 주제어는 모든 색인어로 선택하거나 이 주제어들 중 핵심주제어만 채택
**색인어를 추출하기 위한 텍스트
1. 논문의 표제, 초록, 전문은 문헌의 내용을 요약하거나 직접 표현하는 텍스트이므로 자동색인에 적합
2. 디스크립터는 문헌의 주제를 나타내는 통제된 용어로서 텍스트이기도 합니다. 디스크립터는 이미 색인어로 사용되고 있으므로 자동색인에 활용할 수 있습니다.
***색인어 선정기준: 통계학적,언어학적, 문헌구조적
+ 색인어 가중치(색인어에 부여된 가중치로 문헌의 주제와 중요도를 나타냄, 검색시 문헌를 벡터로 구성하여 용어의 가중치로도 사용)
색인어 자동색인과정
- 색인 대상 문헌집단에 출현한 단어들을 식별한다.
- 불용어 리스트(stop words list)를 사용하여 빈도가 높은 기능어 및 주제어로서 가치가 없는 기타 고빈도어들을 제거한다.
- 형태소 분석기나 어간/어근 분리 프로그램을 사용하여 단어의 어간/어근을 분리하여 색인어로 채택한다.
- 문헌 를 표현하는 어간/어근 형태의 각 단어 에 대해 가중치를 부여한다.
- 어간/어근 형태의 색인어와 가중치 쌍의 집합으로 각 문헌을 표현한다.
문헌 에서 는 문헌의 번호를 나타냄. 예를 들어, 문헌 A와 B가 있다면, 은 문헌 A를, 는 문헌 B를 의미합니다.
즉, 는 전체 문헌집단에서 번째 문헌을 표현합니다.
통계적 기법
Luhn은 1957년에 텍스트에 출현한 단어들의 통계적 특성에 의해 색인어를 선정하는 방법을 제안
- 단어의 출현 빈도가 단어의 주제어로서의 중요성을 측정하는 기준이 된다고 가정.
- 최고 한계 빈도와 최저 한계 빈도 안에 속하는 중간 빈도의 단어들이 문헌 내용의 식별력이 크므로 색인어로 선정하는 방법을 제시
( 고빈도는 너무 일반적인 단어로 가치가 없으며 너무 낮은 빈도 단어는 주제어로 의미없음)
- 출현빈도를 직접 이용하는 방법 - 단어의 빈도 산출 방식에 따라 단순빈도와 정규화빈도 사용
- 출현빈도 · 출현확률에 따라 색인어 측정 - 단어의 문헌분리값, 신호량 가중치, 적합성 가중치
- 단어 출현빈도에 따른 확률분포 이용 - 포아송분포, 2-포아송분포, 점유분포에 따른 단어 집중도 모형
*** 출현빈도를 활용한 통계적기법 처리과정 ***
1. 텍스트를 구성하는 각 단어들을 분리한 후 불용어 리스트와 대조하여 비주제어를 제거. 이때 제거되는 불용어들은 대개 고빈도 기능어
2. 나머지 단어들을 그대로 또는 어간/어근 형태로 변환하여 각 단어의 출현빈도를 산출합니다.
3. 각 단어를 출현빈도 가중치 순으로 배열한 후 일정한 기준(threshold) 이상의 값을 갖는 단어를 색인어로 선정합니다.
4. 검색 결과를 순위화하는 검색 모형에서는 색인어에 가중치를 부여하여 검색 시 검색 문헌의 적합성 값을 산출하는 데에 사용합니다.
단순빈도: 출현빈도 산출하는 근거에 따라 3가지 구분(단어빈도, 문헌빈도, 장서빈도)
- 색인어 가중치: 색인어 선정 기준으로 사용하는 자동색인에서는 컴퓨터가 산출해낸 빈도 (=색인어가 그 문헌의 핵심 내용과 어느 정도로 부합하는지를 나타내는 값)
- 단어빈도 (Term Frequency ; TF) : 색인 대상이 되는 각 문헌 에 단어 가 출현한 횟수 (=문헌내 단어 빈도) =
- 문헌빈도 (Document Frequency ; DF) : 단어 가 출현한 문헌의 수
- 장서빈도 (Collection Frequency ; CF) :단어 가 전체 문헌집단에 출현한 총 빈도
· 색인어 선택하는 방법
- 이원색인: 가중치없이 색인어 선택
- 가중치색인: 색인에 가중치를 부여하는거
정규화빈도: 출현빈도를 문헌빈도, 장서빈도, 텍스트 길이 등에 의해 정규화한 것
출현빈도를 정규화하지 않은 단순빈도는 문헌집단의 크기, 분석 대상 텍스트의 길이, 단어의 일반적인 사용 빈도 등을 고려하지 않기때문
예시)
- 1000개의 문헌에서 "사과"라는 단어가 10번 출현했다면, 그 가중치는 100개의 문헌에서 "사과"라는 단어가 10번 출현한 것보다 작을 것이다. 하지만 단순빈도는 두 경우 모두 10으로 동일하게 측정됨
역문헌빈도 (Inverse Document Frequency ; IDF): 단어빈도에 곱해지는 문헌빈도의 역의값
- 단어가 전체 문헌집단에서 얼마나 희귀한지를 나타내는 값
- : 전체 문헌집단의 문헌 총 수
- : 단어 k가 출현한 문헌 수 = 문헌빈도
- 역문헌빈도는 TF-IDF 가중치와 같은 정규화빈도를 산출하는 데에 사용
- 역문헌빈도를 단어빈도에 곱하면, 전체 문헌집단에서는 적게 출현하면서 특정 문헌에서는 높게 출현하는 단어에 높은 값을 부여가능
- 이러한 단어들은 문헌의 주제와 관련이 높은 단어들일 가능성이 높다
TF-IDF 가중치 : 단어빈도에 역문헌빈도를 곱하는 가중치 계산법. 널리 사용
Smart System: TREC에서 실험되는 다양한 가중치들을 알파벳 3글자로 표현하는 방법
- 'TF요소 + IDF요소 + 정규화요소'로 이루어짐.
- 각 요소는 영어 알파벳의 한 문자로 기호화되어 집합되어 표현
1. 단어빈도 (TF)
1.이진 (binary) TF : 코드 b
- 단어가 문헌 내에 출현하면 1, 출현하지 않으면 0을 부여 = 단어의 출현 여부만을 표현하는 간단한 방법입니다.
2.단순 TF : 코드 n
- 단어가 문헌 내에 출현한 횟수를 그대로 부여 = 단어의 출현 빈도를 직접 반영하는 방법
3.로그 TF : 코드 l
- 대규모 문헌집단에서 검색문헌들의 순위화에 있어 가장 좋은 성능을 보이는 방법
- 1 + log tf
4.보정 TF : 코드 a
- 단어가 문헌 내에 출현한 횟수를 문헌 내 최대빈도로 정규화한 효과 = - 파라미터 b 값으로 0.5 혹은 0.6을 사용한다. - (1 - b) + b * tf / max tf
- b : 파라미터로, 0.5 혹은 0.6과 같은 값으로 설정
- tf : 단어가 문헌 내에 출현한 횟수입니다.
- max tf : 문헌 내에서 가장 많이 출현한 단어의 횟수입니다.
예시
D : 나는 사과와 바나나를 좋아한다. 사과는 맛있고 바나나는 영양가가 높다.
보정 TF를 사용하면, 문헌 내에서 한 번만 출현한 단어와 두 번 출현한 단어의 가중치 차이가 줄어든다.
2.역문헌빈도 (IDF) 역문헌빈도 요소를 사용할 경우 코드: t
- IDF = log N / df (N : 문헌집단 내 전체 문헌 수 ,df : 특정 단어가 출현한 문헌의 수)
- 모든 문헌에서 출현한 단어의 경우 df = N이 되어 가중치 값이 0이 되므로,
**( df = N이 되므로, IDF = log N / N = log 1 = 0이 된다)
IDF = 1 + log N / df을 사용하여 값의 범위를 조정가능
- 문헌빈도가 낮은 단어 즉 적은 수의 문헌에 출현한 단어에 높은 중요도를 부여하는 것
- 많은 문헌에 출현하는 단어는 문헌들을 식별하는 능력이 낮다는 가설에 기초
- 즉 역문헌빈도는 하나의 문헌에서가 아니라 전체 문헌 집단 내에서 특정한 단어가 갖는 문헌 식별 능력을 측정하는 가중치
- btn : 이진 TF * IDF :단어가 문헌 내에 출현하면 1, 출현하지 않으면 0을 부여하고, 그 값에 IDF를 곱함
(이원 색인 방법에 역문헌빈도를 적용한 방법)
- ntn : 단순 TF * IDF
- 단어가 문헌 내에 출현한 횟수를 부여하고, 그 값에 IDF를 곱한다. (단순 빈도 방법에 역문헌빈도를 적용한 방법)
- ltn : 로그 TF * IDF
- 단어가 문헌 내에 출현한 횟수에 로그를 취한 값에 1을 더하고, 그 값에 IDF를 곱한다. (로그 빈도 방법에 역문헌빈도를 적용한 방법)
- atn : 보정 TF * IDF: 보정 빈도 방법에 역문헌빈도를 적용한 방법입니다.
예
- D1 : 나는 사과와 바나나를 좋아한다.
- D2 : 나는 바나나와 오렌지를 좋아한다.
- D3 : 나는 오렌지와 포도를 좋아한다.
- D4 : 나는 포도와 사과를 좋아한다.
이 때, 각 단어의 TF와 IDF를 구하면 다음과 같다.
문헌길이 정규화 :문헌의 길이에 따른 가중치를 줄이기 위한 방법
- 긴 문헌일수록 단어의 출현 빈도가 높아지므로 긴 문헌에 출현한 단어들의 가중치가 평균적으로 커지면서 질의와의 유사도가 커짐. 문헌길이 정규화는 일반적으로 긴 문헌에서 사용됨
- 문헌길이에 의한 이차적인 정규화가 필요 -> 긴 문헌은 더 많은 수의 고유한 단어를 포함하므로 긴 문헌이 짧은 문헌보다 질의와의 유사도가 커지게 되고 따라서 긴 문헌이 검색될 확률이 높아진다.
정규화 방법
1. 코사인정규화(코드:c) :문서 벡터의 크기를 조정하여 문서 간의 유사성을 측정
wi는 용어가중치, t는 전체 용어의 개수
예시)
문헌 과 가 있을 때, 각각의 문헌을 벡터로 표현하면 다음과 같다.
2.최대TF정규화(코드 a) : 해당용어출현빈도 / 문헌벡터를 구하는 각 용어 출현빈도 중 최댓값
예)
3.바이트 크기 정규화(코드b) -> Okapi TF가중치
- 2-포아송 확률모형에 기반
- Okapi 시스템의 확률 검색 모형에서 사용
-
3.피벗정규화(코드 u)
- 문헌길이 정규화로 인해 긴 문헌의 검색 확률이 지나치게 낮아지는 점을 보완하기 위한 것
- 코사인 정규화를 적용할 경우 짧은 길이의 문헌은 긴 길이의 문헌에 비해 질의에 대한 실제 적합 확률보다 검색확률이 크다는 점을 보완하기 위한 것
- 짧은 길이의 문헌은 부적합 문헌일 경우에도 검색될 가능성이 더 크다는 점을 보완하기 위한 것
****위 a,b 그래프 참조
- 피벗(pivot): 문헌의 길이를 x축으로 하고 검색확률과 적합확률을 y축으로 하여 두 개의 확률 곡선을 그렸을 때 적합확률과 검색확률이 똑같아지는 x축의 중간 지점
- 문헌길이 정규화를 적용하였을 경우 길이가 긴 문헌은 실제 적합확률에 비해 검색확률이 낮아지는 경향이 있으므로 피벗 지점 이후에는 적합확률이 곡선이 검색확률 곡선의 위쪽에 위치
- 검색확률과 적합확률이 차이가 나는 부분을 교정하기 위한 것이 피벗 정규화
- 그래프 b: 이전정규요소 -> 코사인정규화,고유단어수, 바이트 크기 등
- PN =(1.0-slope) +slop* (old normalization / average old normalization )
이전 정규화 요소의 평균으로 피벗을 대체함으로써 다음과 같이 하나의 파라미터인 slope만을 갖는 공식으로 변환
여기서 PN은 새로운 정규화된 값이며, old normalization은 이전 정규화된 값, average old normalization은 이전 정규화된 값들의 평균값입니다. slope는 피벗값
예)
old normalization(이전 정규화 된값)이 10, 20, 30인 경우
평균값( average old normalizatio)은 (10+20+30)/3 = 20
slope가 0.5이라면 피벗값은 20*0.5 = 1.0
따라서 PN = (1-0.5) + 0.5 * (10/20) = 0.75
'정보학 > 정보검색' 카테고리의 다른 글
8장. 검색성능향상전략(질의확장,전역적질의확장) (0) | 2023.06.11 |
---|---|
8장. 정보 검색 성능향상(용어절단,인접검색,제한검색) (2) | 2023.06.11 |
2. 색인 및 시소러스 (2) | 2023.06.08 |
1.텍스트 정보검색 (6) | 2023.06.08 |
정보검색: Rocchio 알고리즘이란 (0) | 2023.06.04 |