웰빙 식품 정보검색 시스템
• 8.1 웰빙 식품 정보검색 시스템의 필요성
• 8.2 웰빙 식품 정보검색 시스템의 구조
• 8.3 웰빙 식품 정보검색 시스템의 사용 기법
• 8.4 웰빙 페이지 선별 방법
• 8.5 알고리즘
• 8.6 정규화 실험
Contents
2
• 실제로 구현된 정보검색 시스템의 이해
• 실제로 적용된 정보검색 알고리즘의 이해
• 웰빙 식품 정보검색 시스템의 이해
Objectives
• 소비자의 웰빙식품에 대한 관심이 높아짐
• 식품정보를 얻기 위한 수단은 다양하나 전 문적이지 못함
• 대중매체의 불신과 관련정보 부재
8.1 웰빙 식품 정보검색 시스템의 필요성
4 4
• 웹 로봇으로부터 수집된 웹 페이지 → 데이터 큐
• 데이터 큐 는 웹 페이지 저장
• 인덱서에서 웹 페이지 분석
– 형태소 분석
– zipf’s law의 중요단어 추출 – 웰빙 식품단어 비교
– 최종 랭킹점수 계산 – 역파일 저장
• 해시 방식으로 역파일 보관
• 역파일을 이용하여 서비스
8.2 웰빙 식품 정보검색 시스템의 구조
5
• 인터넷에서 웹사이트의 링크를 돌아다니면서 웹 페이지를 수 집
• 시작
페이지(seed page)를 지정하면 그곳부터 시작• 웹 페이지를 파싱(parsing)하여 링크를 얻어와 큐에 저장
• 페이지 주소와 수집 날
짜
와 함께 이진 데이터 형태로 인덱 서(indexer)로 전송8.2 웰빙 식품 정보검색 시스템의 구조 – 웹 로봇
웰빙 식품 정보검색 시스템의 웹 로봇은 html 태그 제거 모듈이 추가되어
text 정보만 인덱서로 전송
6 6
8.2 웰빙 식품 정보검색 시스템의 구조 – 수집된 문서
7
• 텍스트 문서에서 단어를 추출
• 영어와 한국어 단어를 사전을 이용하여 인 식
• 문서를 토큰으로 나누어(띄어쓰기나 특수문 자) 어휘분석
• 특수기능으로 불용어, 시소러스
– 불용어 : 사용되지 않는 단어들을 사용자가 직 접 입력
8.2 웰빙 식품 정보검색 시스템의 구조 – 형태소 분석
8 8
• 웹 로봇으로부터 전송 받은 텍스트 문서를 분석
형태소분석
웰빙 페이지 선별
Zipf’s law
역파일 생성
8.2 웰빙 식품 정보검색 시스템의 구조 – 인덱서
9
• 역파일 구조
– 페이지 주소와 단어의 빈도수 웰빙 페이지 점수 등을 저장
– 단어 : 눈물
– 빈도수 : 1
– 페이지 주소 :
htt //bl / d8099
8.2 웰빙 식품 정보검색 시스템의 구조 – 역파일
10 10
• 해시 값
– Hashcode : 해시 값
– Ascii code : 각 각 문자의 아스키 코드 값 – Location : 문자의 위치
• Hashcode = hashcode + (ascii code
* location)
8.2 웰빙 식품 정보검색 시스템의 구조 – 역파일
11
• 비 주제어를 필터링
• 순위(주제)와 빈도수의 곱에는 일정한 상수가 존재
• 순위 * 빈도수 = 상수
8.3 웰빙 식품 정보검색 시스템의 사용 기법 – Zipf’s law
12 12
• 너무 많거나 너무 적은 단어는 비 주제어
• 한국어 문헌 선정실험에서 30%가 비 주제 어
– Zipf’s law를 이용하여 비 주제어 제거
• 빈도수가 많은 15%
• 빈도수가 적은 15%
• 예) ~을 ~과 등 조사 (빈도수가 너무 많은경우)
• 예) 완전히 분리되지 않은 형태소 분석 결과 (너무 적은경우)
8.3 웰빙 식품 정보검색 시스템의 사용 기법 – Zipf’s law
13 13
• 수집된 문헌 전체에 대한 빈도 고려
• 전체를 대상으로 빈도수가 많은 단어 는 식별성이 떨어짐
• Zipf’s law에 의해 걸러지지 않은 비 주 제어를 제거
8.3 웰빙 식품 정보검색 시스템의 사용 기법 – IDF
14 14
• 이 페이지가 웰빙식품과 관련이 있는 지 선별
– 웰빙 페이지인경우 가중치 추가
– W : 이 페이지의 웰빙 가충치 – I : 아이템(형태소 분석된 단어) – If : 아이템의 빈도수
– Weight : 웰빙 사전에서 얻은 가중치 값 – N : 아이템 종류
8.4 웰빙 페이지 선별 방법
15 15
• 소비자가 선호하는 식품에 더 많은 가 중치부여
– 설문 자료를 이용하여 소비형태 조사 – 자료는 논문지를 조사 순위 카테고리 추가 비율
1 잡곡, 생선류 39%
2 유제품, 음료, 과자와빵 36%
3 채소, 과일류 33%
4 육류 25%
5 나머지 식재료 20%
- 일반 키워드 0%
8.4 웰빙 페이지 선별 방법
16 16
• 페이지 예시
– 페이지 내부 웰빙식품단어 : 사과 10, 우 유 7, 고등어 3
– 사과 : 10 * 0.33 = 3.3 – 우유 : 7 * 0.36 = 2.52 – 고등어 : 3 * 0.39 = 1.17
– 최종점수 : 3.3+2.52+1.17 / 3 = 2.33
• 역파일에는 100을 곱하여 233으로 저 장
8.4 웰빙 페이지 선별 방법
17
• 인덱서 알고리즘
– 수집된 웹 페이지를 zip’s law로 중요단어를 얻는다
procedure indexer(page)
words morpheme_analysis(page) zipf's_law(words)
make_wellbeing_weight(words) make_inverse_file()
end procedure
8.5 알고리즘 – 인덱서
18 18
• zipf’s law 알고리즘
//키워드 리스트중에서 가장 큰 빈도수를 갖는 값을 찾는다 average_frequency = find_average(word_list);
for(i=0;i<all_word_num;i++)
{//평균 빈도수보다 크거나 같으면 높을수록 점수가 감소한다 if(word_list[i].frequency >= average_frequency)
{// 랭킹점수를 구한다 비율로 점수를 구한다 word_list[i].zip_score = 1000 -
(word_list[i].frequency /
(average_frequency*2)*1000);
}
if(word_list[i].frequency < average_frequency)
{ //빈도수가 평균 빈도수의 작으면 높을수록 점수가 증가한다 word_list[i].zip_score = (word_list[i].frequency
/ (average_frequency*2)*1000);
}
// 300점 이하로 받은 키워드를 cutoff 시킨다 if(word_list[i].zip_score < 300)
8.5 알고리즘 – Zipf’s Law
19
• 웰빙 페이지 식별 알고리즘
– 월빙 식품사전의 단어가 웹 페이지에 얼마나 존재하는가에 대한 수
int make_page_add_score
(page *word_list, int all_word_num){
int score=0;
for(i=0;i<all_word_num;i++) {
score = score+wellbeing_dic(word_list.[i].word);
} return score / all_word_num;
}
8.5 알고리즘 – 페이지 식별
20 20
• 웰빙 식품 가중치 계산 알고리즘
– 중요단어를 이용하여 식품 단어사전과 비교한 점수를 웹 페이지의 점수로 부여
procedure make_wellbeing_weight(words) score ← make_page_add_score(words) page.wellbeing_score ← score
end procedure
8.5 알고리즘 – 가중치 계산
21
• R : 최종으로 계산되는 랭킹점수
• F : 단어의 빈도수
• idf : IDF(inverse document frequency)
• W : 웰빙 페이지 가중치 (W ≥ 1) 8.5 알고리즘 – 최종 랭킹 계산
22 22
• 최종 랭킹점수 알고리즘
– 수집된 웹 페이지 전체 수를 이용하여 idf 계 산
for(i=0;i<all_word_num;i++){
//idf 적용 idf = log2N-log2Dk+1
word_list[i].idf_score = log2(all_page_num) - log2(count_word_page_num(word_list[i].word))+1;
//최종 랭킹점수 적용 R = F * idf * W word_list[i].score = word_list[i].frequency
* word_list[i].idf_score * word_list[i].wellbeing_score;
}
8.5 알고리즘 – 최종 랭킹점수 계산
23 23
• 실험 환경 변수
– 페이지 수 3만개
– 분석 페이지 상위 100개
• 설문조사결과대로 정규화 하여 실험한 결 과
8.6 정규화 실험
24 24
• 종류별로 가중치 편차를 증가하여 실험
생선 곡류
유제 품 음료
야채
과일 육류 나머지 범위
1 0.6 0.6 0.6 0.6 0.6 범위
2 0.78 0.72 0.66 0.5 0.4 범위
3 0.94 0.82 0.7 0.38 0.18
8.6 정규화 실험
25
• 임의로 종류별 가중치 조정
생선 곡류
유제 품 음료
야채
과일 육류 나머지 63% 0.63 0.13 0.12 0.09 0.03 53% 0.53 0.155 0.145 0.115 0.055 43% 0.43 0.18 0.17 0.14 0.08 33% 0.33 0.205 0.195 0.165 0.105
8.6 정규화 실험
26 26
• 페이지수 증가
– 1~3만 페이지로 늘어나면서 나타나는 현 상 비교
8.6 정규화 실험
27