Log In
|
Sign Up
Search
색인된 TEXT 필드에서 출현 빈도가 높은 단어(명사) 내림차순 사전 목록 생성 스크립트 (K언어)
Writer
정종인
Description
> 사용 조건 1) TEXT 필드에만 사용 가능 2) 해당 필드의 인덱싱이 되어있는 상태에서 사용 가능 > 사용 순서 1) export_kwd_list.kql 파일 다운로드 2) export_kwd_list.kql 파일 수정 볼륨명, 테이블명, 필드명, 사전파일 최대 개수, 최소 글자길이 개수 제한 설정 6행: int list_limit=[사전파일 최대개수]; 8행: int min_wlength = [최소 글자길이]; 13행: use volume [볼륨명]; 16행: put index summary of [테이블명].[필드명] to temp_kwd.txt 3) kql 인터프리터에서 스크립트 수행 run ../script/export_kwd_list.kql; 4) 결과물 파일 확인 경로: 검색엔진홈/bin/recommend_kwd.txt > export_kwd_list.kql file temp_file; string str; string result; //사전파일 개수제한 int list_limit=1000; //최소 글자길이 개수제한, 2로 설정 시(2글자 부터 추출) int min_wlength = 2; ECHO "[##### kwd_list - BEGIN #####]"; //볼륨명으로 수정 use volume sample; //sample.title -> 테이블명.필드명으로 수정 필요 put index summary of sample.title to temp_kwd.txt; //추출된 인덱싱 결과물 파일 open temp_file = fopen("temp_kwd.txt"); //행으로 구분지어 리스트 생성, for문에 사용 for str in temp_file.read().split("\n"){ //추출된 단어 목록 중, 단어의 글자 수가 최소 글자길이 개수제한과 같거나 큰 && 단어를 형태소분석 했을 때 NN(명사)이거나 NE(영문명사)인 단어만 결과값에 담는다. try if (str.split(" ")[0].wlength()>min_wlength-1 && kwd(str.split(" ")[0],"korean","utf-8","q+").split("\t")[1] in {"NN","NE"}){ //(단어 출현빈도)로 출력되는 포맷을 (단어: 출현빈도)로 replace result += str.replace(" ",": ")+"\n"; //행의 수가 사전파일 개수제한 수치를 넘어가면 반복문 중지 if (result.lcount() > list_limit) break; } } fclose(temp_file); touch("recommend_kwd.txt"); temp_file = fopen("recommend_kwd.txt","w"); fputs(result,temp_file); fclose(temp_file); remove("temp_kwd.txt"); ECHO "[##### kwd_list - END #####]"; > 사전 품질 관련 부사, 의존명사, 동사 등 불필요한 키워드를 제외시킨 사전을 생성하고 싶은 경우 검색엔진홈/data 디렉터리의 Korean.rc 파일에 설정 추가가 필요합니다. [관련 설정 참고 링크(IRIS 매뉴얼)][1] 설정 추가 > 재기동(설정 적용) > 해당 필드 build indexing > export_kwd_list.kql 실행으로 사전파일 품질 조정이 가능합니다. 해당 설정 수정 시 검색 서비스 품질에 영향을 미칠 수 있습니다. [1]: http://iris.konantech.com/pages/viewpage.action?pageId=500957275
Tag
단어 출현 빈도 사전 추천 명사 검색어
Module Name
kql005.mod
Attachments
export_kwd_list.kql (1.2kb)
Comments
Save
Save
Cancel
Save
Cancel
Warning
Login